From 671d841861d179e22944469a56952c6d80dd1ffd Mon Sep 17 00:00:00 2001 From: junseopark-digipen Date: Fri, 11 Sep 2026 10:38:25 +0900 Subject: [PATCH] Add weird codes --- .gitignore | 1 + Makefile | 18 + Makefile-linux | 50 + Makefile-web | 44 + Makefile-windows | 50 + README.txt | 5 + lib/windows/bin/SDL2.dll | Bin 0 -> 1785344 bytes lib/windows/bin/glew32.dll | Bin 0 -> 472576 bytes lib/windows/bin/glewinfo.exe | Bin 0 -> 540672 bytes lib/windows/bin/sdl2-config | 65 + lib/windows/bin/visualinfo.exe | Bin 0 -> 350208 bytes lib/windows/include/GL/eglew.h | 3332 ++ lib/windows/include/GL/glew.h | 27052 ++++++++++++++++ lib/windows/include/GL/glxew.h | 1843 ++ lib/windows/include/GL/wglew.h | 1468 + lib/windows/include/SDL2/SDL.h | 234 + lib/windows/include/SDL2/SDL_assert.h | 324 + lib/windows/include/SDL2/SDL_atomic.h | 408 + lib/windows/include/SDL2/SDL_audio.h | 1502 + lib/windows/include/SDL2/SDL_bits.h | 132 + lib/windows/include/SDL2/SDL_blendmode.h | 199 + lib/windows/include/SDL2/SDL_clipboard.h | 141 + lib/windows/include/SDL2/SDL_config.h | 59 + lib/windows/include/SDL2/SDL_config_android.h | 194 + .../include/SDL2/SDL_config_emscripten.h | 218 + .../include/SDL2/SDL_config_iphoneos.h | 217 + lib/windows/include/SDL2/SDL_config_macosx.h | 277 + lib/windows/include/SDL2/SDL_config_minimal.h | 95 + lib/windows/include/SDL2/SDL_config_ngage.h | 89 + lib/windows/include/SDL2/SDL_config_os2.h | 204 + lib/windows/include/SDL2/SDL_config_pandora.h | 141 + lib/windows/include/SDL2/SDL_config_windows.h | 333 + lib/windows/include/SDL2/SDL_config_wingdk.h | 253 + lib/windows/include/SDL2/SDL_config_winrt.h | 220 + lib/windows/include/SDL2/SDL_config_xbox.h | 240 + lib/windows/include/SDL2/SDL_cpuinfo.h | 603 + lib/windows/include/SDL2/SDL_egl.h | 2351 ++ lib/windows/include/SDL2/SDL_endian.h | 396 + lib/windows/include/SDL2/SDL_error.h | 163 + lib/windows/include/SDL2/SDL_events.h | 1196 + lib/windows/include/SDL2/SDL_filesystem.h | 149 + lib/windows/include/SDL2/SDL_gamecontroller.h | 1110 + lib/windows/include/SDL2/SDL_gesture.h | 117 + lib/windows/include/SDL2/SDL_guid.h | 107 + lib/windows/include/SDL2/SDL_haptic.h | 1354 + lib/windows/include/SDL2/SDL_hidapi.h | 443 + lib/windows/include/SDL2/SDL_hints.h | 3303 ++ lib/windows/include/SDL2/SDL_joystick.h | 1088 + lib/windows/include/SDL2/SDL_keyboard.h | 361 + lib/windows/include/SDL2/SDL_keycode.h | 358 + lib/windows/include/SDL2/SDL_loadso.h | 117 + lib/windows/include/SDL2/SDL_locale.h | 103 + lib/windows/include/SDL2/SDL_log.h | 405 + lib/windows/include/SDL2/SDL_main.h | 282 + lib/windows/include/SDL2/SDL_messagebox.h | 196 + lib/windows/include/SDL2/SDL_metal.h | 114 + lib/windows/include/SDL2/SDL_misc.h | 79 + lib/windows/include/SDL2/SDL_mouse.h | 464 + lib/windows/include/SDL2/SDL_mutex.h | 545 + lib/windows/include/SDL2/SDL_name.h | 33 + lib/windows/include/SDL2/SDL_opengl.h | 2126 ++ lib/windows/include/SDL2/SDL_opengl_glext.h | 13213 ++++++++ lib/windows/include/SDL2/SDL_opengles.h | 38 + lib/windows/include/SDL2/SDL_opengles2.h | 51 + lib/windows/include/SDL2/SDL_opengles2_gl2.h | 656 + .../include/SDL2/SDL_opengles2_gl2ext.h | 4033 +++ .../include/SDL2/SDL_opengles2_gl2platform.h | 27 + .../include/SDL2/SDL_opengles2_khrplatform.h | 311 + lib/windows/include/SDL2/SDL_pixels.h | 686 + lib/windows/include/SDL2/SDL_platform.h | 275 + lib/windows/include/SDL2/SDL_power.h | 87 + lib/windows/include/SDL2/SDL_quit.h | 50 + lib/windows/include/SDL2/SDL_rect.h | 376 + lib/windows/include/SDL2/SDL_render.h | 1932 ++ lib/windows/include/SDL2/SDL_revision.h | 7 + lib/windows/include/SDL2/SDL_rwops.h | 844 + lib/windows/include/SDL2/SDL_scancode.h | 438 + lib/windows/include/SDL2/SDL_sensor.h | 329 + lib/windows/include/SDL2/SDL_shape.h | 155 + lib/windows/include/SDL2/SDL_stdinc.h | 873 + lib/windows/include/SDL2/SDL_surface.h | 1001 + lib/windows/include/SDL2/SDL_system.h | 642 + lib/windows/include/SDL2/SDL_syswm.h | 386 + lib/windows/include/SDL2/SDL_test.h | 69 + lib/windows/include/SDL2/SDL_test_assert.h | 105 + lib/windows/include/SDL2/SDL_test_common.h | 236 + lib/windows/include/SDL2/SDL_test_compare.h | 69 + lib/windows/include/SDL2/SDL_test_crc32.h | 124 + lib/windows/include/SDL2/SDL_test_font.h | 168 + lib/windows/include/SDL2/SDL_test_fuzzer.h | 387 + lib/windows/include/SDL2/SDL_test_harness.h | 134 + lib/windows/include/SDL2/SDL_test_images.h | 78 + lib/windows/include/SDL2/SDL_test_log.h | 67 + lib/windows/include/SDL2/SDL_test_md5.h | 129 + lib/windows/include/SDL2/SDL_test_memory.h | 63 + lib/windows/include/SDL2/SDL_test_random.h | 115 + lib/windows/include/SDL2/SDL_thread.h | 468 + lib/windows/include/SDL2/SDL_timer.h | 222 + lib/windows/include/SDL2/SDL_touch.h | 150 + lib/windows/include/SDL2/SDL_types.h | 24 + lib/windows/include/SDL2/SDL_version.h | 205 + lib/windows/include/SDL2/SDL_video.h | 2228 ++ lib/windows/include/SDL2/SDL_vulkan.h | 219 + lib/windows/include/SDL2/begin_code.h | 189 + lib/windows/include/SDL2/close_code.h | 40 + .../lib/cmake/SDL2/sdl2-config-version.cmake | 12 + lib/windows/lib/cmake/SDL2/sdl2-config.cmake | 225 + lib/windows/lib/glew32.lib | Bin 0 -> 770808 bytes lib/windows/lib/glew32s.lib | Bin 0 -> 2903496 bytes lib/windows/lib/libSDL2.a | Bin 0 -> 15679018 bytes lib/windows/lib/libSDL2.dll.a | Bin 0 -> 553152 bytes lib/windows/lib/libSDL2.la | 41 + lib/windows/lib/libSDL2_test.a | Bin 0 -> 633760 bytes lib/windows/lib/libSDL2_test.la | 41 + lib/windows/lib/libSDL2main.a | Bin 0 -> 9540 bytes lib/windows/lib/libSDL2main.la | 41 + lib/windows/lib/pkgconfig/sdl2.pc | 15 + lib/windows/share/aclocal/sdl2.m4 | 215 + src/main.cpp | 64 + src/rectangle.cpp | 78 + src/rectangle.h | 30 + src/shader.cpp | 186 + src/shader.h | 36 + src/simple.frag | 8 + src/simple.vert | 10 + src/window.cpp | 205 + src/window.h | 56 + 127 files changed, 90133 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 Makefile-linux create mode 100644 Makefile-web create mode 100644 Makefile-windows create mode 100644 README.txt create mode 100755 lib/windows/bin/SDL2.dll create mode 100755 lib/windows/bin/glew32.dll create mode 100755 lib/windows/bin/glewinfo.exe create mode 100755 lib/windows/bin/sdl2-config create mode 100755 lib/windows/bin/visualinfo.exe create mode 100644 lib/windows/include/GL/eglew.h create mode 100644 lib/windows/include/GL/glew.h create mode 100644 lib/windows/include/GL/glxew.h create mode 100644 lib/windows/include/GL/wglew.h create mode 100644 lib/windows/include/SDL2/SDL.h create mode 100644 lib/windows/include/SDL2/SDL_assert.h create mode 100644 lib/windows/include/SDL2/SDL_atomic.h create mode 100644 lib/windows/include/SDL2/SDL_audio.h create mode 100644 lib/windows/include/SDL2/SDL_bits.h create mode 100644 lib/windows/include/SDL2/SDL_blendmode.h create mode 100644 lib/windows/include/SDL2/SDL_clipboard.h create mode 100644 lib/windows/include/SDL2/SDL_config.h create mode 100644 lib/windows/include/SDL2/SDL_config_android.h create mode 100644 lib/windows/include/SDL2/SDL_config_emscripten.h create mode 100644 lib/windows/include/SDL2/SDL_config_iphoneos.h create mode 100644 lib/windows/include/SDL2/SDL_config_macosx.h create mode 100644 lib/windows/include/SDL2/SDL_config_minimal.h create mode 100644 lib/windows/include/SDL2/SDL_config_ngage.h create mode 100644 lib/windows/include/SDL2/SDL_config_os2.h create mode 100644 lib/windows/include/SDL2/SDL_config_pandora.h create mode 100644 lib/windows/include/SDL2/SDL_config_windows.h create mode 100644 lib/windows/include/SDL2/SDL_config_wingdk.h create mode 100644 lib/windows/include/SDL2/SDL_config_winrt.h create mode 100644 lib/windows/include/SDL2/SDL_config_xbox.h create mode 100644 lib/windows/include/SDL2/SDL_cpuinfo.h create mode 100644 lib/windows/include/SDL2/SDL_egl.h create mode 100644 lib/windows/include/SDL2/SDL_endian.h create mode 100644 lib/windows/include/SDL2/SDL_error.h create mode 100644 lib/windows/include/SDL2/SDL_events.h create mode 100644 lib/windows/include/SDL2/SDL_filesystem.h create mode 100644 lib/windows/include/SDL2/SDL_gamecontroller.h create mode 100644 lib/windows/include/SDL2/SDL_gesture.h create mode 100644 lib/windows/include/SDL2/SDL_guid.h create mode 100644 lib/windows/include/SDL2/SDL_haptic.h create mode 100644 lib/windows/include/SDL2/SDL_hidapi.h create mode 100644 lib/windows/include/SDL2/SDL_hints.h create mode 100644 lib/windows/include/SDL2/SDL_joystick.h create mode 100644 lib/windows/include/SDL2/SDL_keyboard.h create mode 100644 lib/windows/include/SDL2/SDL_keycode.h create mode 100644 lib/windows/include/SDL2/SDL_loadso.h create mode 100644 lib/windows/include/SDL2/SDL_locale.h create mode 100644 lib/windows/include/SDL2/SDL_log.h create mode 100644 lib/windows/include/SDL2/SDL_main.h create mode 100644 lib/windows/include/SDL2/SDL_messagebox.h create mode 100644 lib/windows/include/SDL2/SDL_metal.h create mode 100644 lib/windows/include/SDL2/SDL_misc.h create mode 100644 lib/windows/include/SDL2/SDL_mouse.h create mode 100644 lib/windows/include/SDL2/SDL_mutex.h create mode 100644 lib/windows/include/SDL2/SDL_name.h create mode 100644 lib/windows/include/SDL2/SDL_opengl.h create mode 100644 lib/windows/include/SDL2/SDL_opengl_glext.h create mode 100644 lib/windows/include/SDL2/SDL_opengles.h create mode 100644 lib/windows/include/SDL2/SDL_opengles2.h create mode 100644 lib/windows/include/SDL2/SDL_opengles2_gl2.h create mode 100644 lib/windows/include/SDL2/SDL_opengles2_gl2ext.h create mode 100644 lib/windows/include/SDL2/SDL_opengles2_gl2platform.h create mode 100644 lib/windows/include/SDL2/SDL_opengles2_khrplatform.h create mode 100644 lib/windows/include/SDL2/SDL_pixels.h create mode 100644 lib/windows/include/SDL2/SDL_platform.h create mode 100644 lib/windows/include/SDL2/SDL_power.h create mode 100644 lib/windows/include/SDL2/SDL_quit.h create mode 100644 lib/windows/include/SDL2/SDL_rect.h create mode 100644 lib/windows/include/SDL2/SDL_render.h create mode 100644 lib/windows/include/SDL2/SDL_revision.h create mode 100644 lib/windows/include/SDL2/SDL_rwops.h create mode 100644 lib/windows/include/SDL2/SDL_scancode.h create mode 100644 lib/windows/include/SDL2/SDL_sensor.h create mode 100644 lib/windows/include/SDL2/SDL_shape.h create mode 100644 lib/windows/include/SDL2/SDL_stdinc.h create mode 100644 lib/windows/include/SDL2/SDL_surface.h create mode 100644 lib/windows/include/SDL2/SDL_system.h create mode 100644 lib/windows/include/SDL2/SDL_syswm.h create mode 100644 lib/windows/include/SDL2/SDL_test.h create mode 100644 lib/windows/include/SDL2/SDL_test_assert.h create mode 100644 lib/windows/include/SDL2/SDL_test_common.h create mode 100644 lib/windows/include/SDL2/SDL_test_compare.h create mode 100644 lib/windows/include/SDL2/SDL_test_crc32.h create mode 100644 lib/windows/include/SDL2/SDL_test_font.h create mode 100644 lib/windows/include/SDL2/SDL_test_fuzzer.h create mode 100644 lib/windows/include/SDL2/SDL_test_harness.h create mode 100644 lib/windows/include/SDL2/SDL_test_images.h create mode 100644 lib/windows/include/SDL2/SDL_test_log.h create mode 100644 lib/windows/include/SDL2/SDL_test_md5.h create mode 100644 lib/windows/include/SDL2/SDL_test_memory.h create mode 100644 lib/windows/include/SDL2/SDL_test_random.h create mode 100644 lib/windows/include/SDL2/SDL_thread.h create mode 100644 lib/windows/include/SDL2/SDL_timer.h create mode 100644 lib/windows/include/SDL2/SDL_touch.h create mode 100644 lib/windows/include/SDL2/SDL_types.h create mode 100644 lib/windows/include/SDL2/SDL_version.h create mode 100644 lib/windows/include/SDL2/SDL_video.h create mode 100644 lib/windows/include/SDL2/SDL_vulkan.h create mode 100644 lib/windows/include/SDL2/begin_code.h create mode 100644 lib/windows/include/SDL2/close_code.h create mode 100644 lib/windows/lib/cmake/SDL2/sdl2-config-version.cmake create mode 100644 lib/windows/lib/cmake/SDL2/sdl2-config.cmake create mode 100644 lib/windows/lib/glew32.lib create mode 100644 lib/windows/lib/glew32s.lib create mode 100644 lib/windows/lib/libSDL2.a create mode 100755 lib/windows/lib/libSDL2.dll.a create mode 100755 lib/windows/lib/libSDL2.la create mode 100644 lib/windows/lib/libSDL2_test.a create mode 100755 lib/windows/lib/libSDL2_test.la create mode 100644 lib/windows/lib/libSDL2main.a create mode 100755 lib/windows/lib/libSDL2main.la create mode 100644 lib/windows/lib/pkgconfig/sdl2.pc create mode 100644 lib/windows/share/aclocal/sdl2.m4 create mode 100644 src/main.cpp create mode 100644 src/rectangle.cpp create mode 100644 src/rectangle.h create mode 100644 src/shader.cpp create mode 100644 src/shader.h create mode 100644 src/simple.frag create mode 100644 src/simple.vert create mode 100644 src/window.cpp create mode 100644 src/window.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..567609b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c19cf5a --- /dev/null +++ b/Makefile @@ -0,0 +1,18 @@ +.PHONY: all +all: linux windows web + +.PHONY: linux +linux: + $(MAKE) -f Makefile-linux + +.PHONY: windows +windows: + $(MAKE) -f Makefile-windows + +.PHONY: web +web: + $(MAKE) -f Makefile-web + +.PHONY: clean +clean: + rm -rf build diff --git a/Makefile-linux b/Makefile-linux new file mode 100644 index 0000000..a460db3 --- /dev/null +++ b/Makefile-linux @@ -0,0 +1,50 @@ +# Specify our compiler +CXX := g++ +# Specify where our source files are +SOURCE_DIR := src +# Specify where our object and program files should go +BUILD_DIR := build/linux +# Specify our program's name +BINARY := game + +# Specify what flags to give to the compiler +CXX_FLAGS := -g -std=c++20 -Wall -Werror -Wextra -c + +# Specify what flags to give to the linker +LINK_FLAGS := -lSDL2 -lGL -lGLEW -lGLU -lpthread + +# Find all the source files +CXX_FILES := $(shell find $(SOURCE_DIR) -name *.cpp) + +# Find all the source shaders +SHADER_FILES := $(shell find $(SOURCE_DIR) -name *.vert) $(shell find $(SOURCE_DIR) -name *.frag) + +# Determine a list of object and dependency files from all the source files +OBJ_FILES := $(patsubst $(SOURCE_DIR)/%.cpp,$(BUILD_DIR)/%.o,$(CXX_FILES)) +DEP_FILES := $(patsubst %.o,%.d,$(OBJ_FILES)) +COPIED_FILES := $(patsubst $(SOURCE_DIR)/%,$(BUILD_DIR)/%,$(SHADER_FILES)) + +.PHONY: program +program: $(BUILD_DIR)/$(BINARY) $(COPIED_FILES) + +.PHONY: clean +clean: + rm -rf $(BUILD_DIR) + +$(BUILD_DIR)/$(BINARY): $(OBJ_FILES) $(BUILD_DIR) + $(CXX) $(OBJ_FILES) $(LINK_FLAGS) -o "$@" + +$(BUILD_DIR): + mkdir -p $@ + +-include $(DEP_FILES) + +$(BUILD_DIR)/%.o: $(SOURCE_DIR)/%.cpp + @mkdir -p "$(@D)" + $(CXX) $(CXX_FLAGS) -MMD -c "$<" -o "$@" + +$(BUILD_DIR)/%.vert: $(SOURCE_DIR)/%.vert + cp $< $@ + +$(BUILD_DIR)/%.frag: $(SOURCE_DIR)/%.frag + cp $< $@ diff --git a/Makefile-web b/Makefile-web new file mode 100644 index 0000000..39691ec --- /dev/null +++ b/Makefile-web @@ -0,0 +1,44 @@ +# Specify our compiler +CXX := em++ +# Specify where our source files are +SOURCE_DIR := src +# Specify where our object and program files should go +BUILD_DIR := build/web +# Specify our program's name +BINARY := game.html + +# Specify what flags to give to the compiler +CXX_FLAGS := -g -std=c++20 -Wall -Werror -Wextra -c -s USE_SDL=2 + +# Specify what flags to give to the linker +LINK_FLAGS := -lSDL2 -lGL -lGLEW -lGLU -s MIN_WEBGL_VERSION=2 + +# Find all the source files +CXX_FILES := $(shell find $(SOURCE_DIR) -name *.cpp) + +# Find all the source shaders +SHADER_FILES := $(shell find $(SOURCE_DIR) -name *.vert) $(shell find $(SOURCE_DIR) -name *.frag) +LINK_FLAGS += $(foreach SHADER,$(SHADER_FILES),$(shell echo "$(SHADER)" | sed -e 's/src\/\(.*\)/--preload-file "src\/\1@\1"/')) + +# Determine a list of object and dependency files from all the source files +OBJ_FILES := $(patsubst $(SOURCE_DIR)/%.cpp,$(BUILD_DIR)/%.o,$(CXX_FILES)) +DEP_FILES := $(patsubst %.o,%.d,$(OBJ_FILES)) + +.PHONY: program +program: $(BUILD_DIR)/$(BINARY) + +.PHONY: clean +clean: + rm -rf $(BUILD_DIR) + +$(BUILD_DIR)/$(BINARY): $(OBJ_FILES) $(BUILD_DIR) $(SHADER_FILES) + $(CXX) $(OBJ_FILES) $(LINK_FLAGS) -o "$@" + +$(BUILD_DIR): + mkdir -p $@ + +-include $(DEP_FILES) + +$(BUILD_DIR)/%.o: $(SOURCE_DIR)/%.cpp + @mkdir -p "$(@D)" + $(CXX) $(CXX_FLAGS) -MMD -c "$<" -o "$@" diff --git a/Makefile-windows b/Makefile-windows new file mode 100644 index 0000000..18fa8fd --- /dev/null +++ b/Makefile-windows @@ -0,0 +1,50 @@ +# Specify our compiler +CXX := x86_64-w64-mingw32-g++ +# Specify where our source files are +SOURCE_DIR := src +# Specify where our object and program files should go +BUILD_DIR := build/windows +# Specify our program's name +BINARY := game.exe + +# Specify what flags to give to the compiler +CXX_FLAGS := -g -std=c++20 -Wall -Werror -Wextra -c -I ./lib/windows/include -D GLEW_STATIC -D SDL_MAIN_HANDLED + +# Specify what flags to give to the linker +LINK_FLAGS := -lglew32s -lopengl32 -lSDL2 -L ./lib/windows/lib + +# Find all the source files +CXX_FILES := $(shell find $(SOURCE_DIR) -name *.cpp) + +# Find all the source shaders +SHADER_FILES := $(shell find $(SOURCE_DIR) -name *.vert) $(shell find $(SOURCE_DIR) -name *.frag) + +# Determine a list of object and dependency files from all the source files +OBJ_FILES := $(patsubst $(SOURCE_DIR)/%.cpp,$(BUILD_DIR)/%.o,$(CXX_FILES)) +DEP_FILES := $(patsubst %.o,%.d,$(OBJ_FILES)) +COPIED_FILES := $(patsubst $(SOURCE_DIR)/%,$(BUILD_DIR)/%,$(SHADER_FILES)) + +.PHONY: program +program: $(BUILD_DIR)/$(BINARY) $(COPIED_FILES) + +.PHONY: clean +clean: + rm -rf $(BUILD_DIR) + +$(BUILD_DIR)/$(BINARY): $(OBJ_FILES) $(BUILD_DIR) + $(CXX) $(OBJ_FILES) $(LINK_FLAGS) -o "$@" + +$(BUILD_DIR): + mkdir -p $@ + +-include $(DEP_FILES) + +$(BUILD_DIR)/%.o: $(SOURCE_DIR)/%.cpp + @mkdir -p "$(@D)" + $(CXX) $(CXX_FLAGS) -MMD -c "$<" -o "$@" + +$(BUILD_DIR)/%.vert: $(SOURCE_DIR)/%.vert + cp $< $@ + +$(BUILD_DIR)/%.frag: $(SOURCE_DIR)/%.frag + cp $< $@ diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..600242b --- /dev/null +++ b/README.txt @@ -0,0 +1,5 @@ +CS200 Assignment 2 - Drawing a Rectangle +Junseo Park (박준서) + +Draws a rectangle in a black window. +The arrow keys move the rectangle. \ No newline at end of file diff --git a/lib/windows/bin/SDL2.dll b/lib/windows/bin/SDL2.dll new file mode 100755 index 0000000000000000000000000000000000000000..1bba76f6b03f862d518e8446301ea3438139a1f9 GIT binary patch literal 1785344 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

0)+lhlw1m=vCr@=Kn8 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

tm3s6!>oonn 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≪=jDfVu%9{| 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,>4S?~D{U)1LAEL!S*`kQ_g~ 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 z"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 E17^s)bpQYW literal 0 HcmV?d00001 diff --git a/lib/windows/bin/glew32.dll b/lib/windows/bin/glew32.dll new file mode 100755 index 0000000000000000000000000000000000000000..9df2b39127a204795326a1e1d5b4237289b8754b GIT binary patch literal 472576 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
PT>{!xaXVLto<_rD)J)bOvF`&?xH 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 literal 0 HcmV?d00001 diff --git a/lib/windows/bin/glewinfo.exe b/lib/windows/bin/glewinfo.exe new file mode 100755 index 0000000000000000000000000000000000000000..de9014babeeebdf10d53f8f63547f0a3eb7f16c5 GIT binary patch literal 540672 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 z z&>xW2BAY}4?m*gzY!*p&7t&T_g~*>GYwknddjQ!e@Aq_?5i(C^anF}&pWWUJe5Xc+3A%jKsh`91VT8S(ZS^GL9ZC*$- zk;NjnM9Suaj1f63k|jSRPXS0zku4(03qm49=89YunOX=^xCo?XQOGorUqqT0gM1}Y zsW@b!$Sb8FKbD5fsR+3uQmhhWh{#@%^lw29RfdcYgT#sysS4R75>O3NPh`1Bvg(kw zA}d7x6scSTGFRlPNb#DGp(6W4JhdQo--di5a!I6UZO9;zv2`Fnie#+|St{~}$lQ96 zt0HUbL!OG%jDSoN`9&mu14v(y!y;K4LOO|jDe_n(d1FX~$Xt=DBE_3PhKlSH32F*? ztr?_wbI2u;qAeg3TS9&k$KsJhuY7IFglDQ3}gUBk8hazLzLJo@* zXb1UFIn(!1(`3Bzc*xz$T^V$eIOr-d@GW=FXUs9oF78o6WJ(I zr5_}1e@HWt#Ug);Oc(&kFc8v4WVuMGL68w52Skn!hU6Rqc~4}c$P1A=Lm{(7E{YTx z1{o-_OXTI@kQO5U6Zu`F{0PW65!XmaE0JX)cSI_Tg3J=RC{koJWRnO!rNev{nJsc( zkO+~vA{*yGUWnA03+XZsvQFfs`H#!OFOvtjV{XDKIyUs2yE2}u*oI$u2835SIG}8|ppfx+tsiK< zg4*~tVX~BO$MT-NZkM-w(Sy-@!z=CX_cL0$mS4&Sc0<_-kLt$+zJnL2I}ZQU5304x zom1<(zC$th8hMacAJmB+knc_T#=gT|ejgnk)zkUVx@EN%)ijFGb9JJh)Q|o<`sRc~ zK~sC+!$x$mWKa;rcNR)6|ct zof73*qgg0mvYR>NgWZ_mx534u2t8`3$EAAF10JWrXN+Z( zo^q!nO&i%TU9y{}G)bp`^8mZ=;p0%W{v}xQo8Jh-@2(uzpUG;f>*P4s%Hz&Q}&Rp^3-i0Z)FrGi=X-NM}bX91x0AN1an2@KkP`I_#Wk=~x88;y~@p zh&SMNPU%Td%s($M2|6Ff;|HO~H9PrHHY&BkDGLBg?~-w<8XnzKKC&N>uaOK^wGP$V zci5}nXT^_~e#ua+S=^}A!r$-@+I*{i^ltQ|+A10E`#5(WGi7^TOo8+_Jf2WYz@yO@ z-QVKjg=+G*7Xs>I28ITONDffJH3KD4{Uua)pT92i^(f|F42o;%aNqgYRm6O#U-?RUh*+CioY;iU_K;&pi(w)hgZ{kQ3fz>AeT6)_4yJYKg(xiYpsnwTgEJ zWUDp)5ez;@p*lgeenlyFbCkH94kzd0q`NkI<$fxU(njt|HlUR6`uXW~?SDThnUf_w z2i!;WvD@%u_$CBv=M4I?lI7l(au2UboUYk8<(`0&2xeeb^l)HC^ktx{=9^{b76}X( zm@@9Oc>mFf9+9tA+z?f3>;HXFre?m}p}WE( z_oVUQ%M*MN^B`z6PPyOv$Kx5lYe30u$uS`A-{g7O=!1y8WDQKsdg$p^nN8u*^|6Za zjlj^Ml7)TYNIJg3at}j+w~`Gk%i7DmwTDS<7ohtLW`Vy&xj2i+5&6nsFGF}ip9Fqh z7}@BtD;XBpfU?mC-2r&1uHn&V+!0>mIxvU2e}+kEdodQjQLWs1sHua+qyEjRV6@g8{P8}G&`kF z=0>~nNJ%WgKzATwbyq|o%nEJ*&JfQY>wo*ca&nXB9=RG7svjL&=fEy(Kb~-W z%a9wMFzz} zc8h#@4ASx^$WoDF$00*RQk;Ms6^S|tX?6+{avE|=B>!1RUy;Ki1%82iDAM*EWQE9| zB8z^7xJ5$GL#kYW91{8ZBGM@L0NXG5-2?FXnOdR8!((y=TuvEKZTsF7xK?`iqk1tZ zGlkC!FS;lECtOYshDT@K>y|HGC+r%UDkA0`&+SyBvP8r*P8Lz=#HbVD&TvKU%iU&g z9c<$I!tag)TYLSYd#VL(PMKl+u7N4vOg;erf%MTCMx+V%?78g@-L-eC4ESDM-m($# z`#6~c6Lt;BfU9Qo3t2%a#ke$DbQO{FCBH;*<_fH~!qfG`Oy6M)7TGTxPw` zKRwV|5$sPYe#ISI%IQxznjMg1yFURa?Fr7vGOL|3@%?$K&JPxANV6RLul;#hO?ODG z7*{zQARis#`m>y7EgdtLnae!P-t_d63$vGCtIoHdCDTKJjb{KV}o{Ey;P#I-HV zale7z#i9EpEu2cbc98g03#V4Rk~q1A8TVx3+r^oiM8+j<4|B$+ojNy^s=9w|LhYpI z~2A4WTUNMb%Z?Z>EFEPhYN_9Ona{Th3u{Y6qE#?=4^ zXg?&b{fTlqDlqGRZvS(2Yv^tNTCqgpclx_Y%ZGT&??|k?cYi&sHU8iqXt==sPD3rt z*C{!T{K>IBpO0zP4J^~cDU-;!dfQvDSMoEG?JdUv{L9C+*Nt8!5^it0R;|u5nVd55 z>u0Ruyu|;!!7j(+VTw}{U$gLV#nRhO^Ih&_)o=Uh(|g&(X4p;`#`Hb z=O34Nfdllfw$zsW;kulT3Ji1HjO&YAtL|Z$yjF)UD_%yN&ceSa9#8xb?^-1z@zEYu z+?Du(g}+t&Ht_)qZ&F;4_$vn|nhZ=5Z$8-WAN+$3r(lEl2aAE^8({5UIr`m|AF#a)OaEL=%(E#h(( zenW8q;t&TX607VH-gsAQ#XtB58NR~-;=55OZv5qRRNzH9Mt=Xx_#alkMf5vGzZG$Q z6Y00u@iW%fL9O~O%S1Y5;`6s#aSh_04o)mYZ+v^Tmdmd{<>UJENd7KERA7mu`g5FR zG9}%hx4jeE-Xf_K`*Bhs|Mm|bv)puE@s8c49h`jC9&`QPFUIVuGIKR_g z7JA*4V|%{6sa5~P2gvBt38zf_e5;`N1o5{PuBiBH;?FHyN%1GdQ!V_K;z7iNEnHb~ zOX7|euA=x&;yM_ei z_bB3>7A~vi9f-eha3WJcwsG(Oyz?Pc9de38jO%S2Aja-ur0;)d+`%zUVn27*3;Po* z9|h}rDTbO!t(W}T`eJYSz{JWM{p}?+Vq7w==h z_yK-b2aDev{IBz)(tg?BcStR)FC3uqI;kxESx&PRj+wc?Yt?Zq6K(aUl;Y0B11wxb zaZTcO7A~qdKk?fZenW98;u01vruc^Z35ck`Y!)uA_#kmI3zty5lK7T;$arPqbDsAk{@%ij zJA!zvg&B8o;yD(6sBH%kkFoF_#rGy?-0xfXuHv7Fn^^ds;tj-=EPP+_OyYbN=6DYv zc3GI~yE*Zr9A;9vzRM9`v@qk&N_^159PcONHSYBme*C>GgR{i*EzG#TA&#^#=lKHS zo)+f%9zopP!d&0&h^ttb>$?hZK?`$zhY)A5FxPhg@zd;PQn|h_M`~KGSeX0T9^%6m z=DxO!_-hL@?(xKnEPPdS-j#Twg*o1D6Zf$&<1R?t%EG7AJPmO*3&$$HIZop)V&Q{| ze<03e;oXW?6aVv?nbdC-Pa(c$;f;!W5g)bimx>z@Z?W*_ic1hLvGAvgGZ05vc(LO9 zV>Rx67M`p4IB^>b&r`gSxTb|aRy>Qin1!Pi4le=V&QR$7ZMM&aHQgq#O*E2xZ4xgwlL!kBQ9xS z#+{q^RR^$D}d;7zARE+(R`HuD*#`Px)&1xsyAI|ST zM`@j+R)09ZPY`GRul-q|Q7n>L-uzt5>f~o4%}&cP@{`2-QEzf_~R=fcO^2 z`IV#J9LLXizja2dW@MS+PMP?8Usn8Jq*``y@W1B!w$|DqwPIY4*q;({{aH@4f(iHM zl2#qZGA~>GIjguc@n2b(qWJFqqPQmUc?+LVoS%5Vg@06>ig=xck0`z|LUS?K!uu5; zBpz$wor+fye_-LQiYF5{weU8@J&513@CL>8iSt`{wc=vL=`H-3;`GFigUzI_QG9o} z#(l}cYZV_OK4js=iq{iwu<%^P9}_RI@C?QMiN`zmU+3ROtyNiS#kju1fvk6_ET2CV zpjmCl%vcX!Y1QN`Q`G9udc{|Vsb%K>Uw_s}EpLA=W_J2Bn`Wow*xnD9XoLM&X1h}+ zkpy`6gJoK>YmX1H?ZmuDt^E8tr%`vA;O`{~~p}I}|p$|3{!^f}eMJ+h_iFNR1em z(|$-?`^)7tK96$RH}cQtTuy7v5J&511@N0_e69-#3lj35;FEW}* zO{X|L@eKRG+v`;WZDWi0%Q)=o*B)50edUmK*ENM+%l74Ij$`-++7lZsam zpRq9Ce|$u|+roVR@jme?3m;SSy2LXr{FCCM#3L+xTyZ+$t`_F!%YO{ixEombN3DI7 zxV(jrC|*aL+rmc`PbW@m;RA|4B>pplnN+^-YC?R@!u{aOAF%L9?b=S_uPi)B@e<;B7Ve{XEb%xCzo+^G14>2Z)_X6!c|wZY>o^B}#M$;OH| z68~ypeos1!_3RzJ*IDe)^#X-^9X& z6#qh8$-;#dZzs-Y;nx)}Bz9RiyW)|=k6dO_b0}_4e9^)=6^9WYv~YUGxrx_XI7o3a z;`tWNp!iB(O-rPO(<%yA`A0*s2Jjj7XDV-?oHgs z!kZK~ByMHl<%&xZS95TJTY~rggU@?C?~Pz%T>DWU`$3S@l>OkkoQ?`i?KmZI|LpbS z^Hpo;=REHf`?BLVn|=r6*uMYg^IrW}X0=l$!QMN6KM(&MEDbnJs_6atNYqO3e%-mh z=kq&3-tx^8EANfxsxm*(dV^HWgzCi&Sfr|~?u(^q4^6|<7V`i^Yb{%EO5%i_m|HjZX_OW;SHMjS;W08yiD;x;ua20G@SU)`&h5C z)WiEv#uFmdC7uGb%j(!AF`mx)SfjnT`vKf^JzYza$a?bTll#XGso`yZ3u#NjboXaPMP?8{!ejd;t>{}uec_0R}0TnoS(RXg{LS^MO@y(6BOTgU%Q{% z!lM))Bu;DL!HQQB|CyS>#|PF|@nqt27JgrG58{0mephjQ;x!g-qqrFHYzsG2oSt~J zg(DQ-eNW?l&%$pjK1STw!eNTn6IZnGn~Fas&THXPiu)6%vv3i`&4?eSGLxEDaarOE z7S5qK3-JL92P=NuUE}`B!t$KCC-@BUJPW5*yp4FAg##4NC+=b4r+dYGIB_!z^LGtx zi7Q+9w$`ppT)@J=Db7V4Wa0CQJ>4|!CxK>C<@tX+|3G}%!m)~X6aV1gg!e4(e!<@t z#7LbO*HIW?f0!dxWxpCkt7(pvvHxz>=9;iff2%hu6^9bHweWn!nTcyzc&6fqUA05S zEj&f>DdMaa9;tW>ae#vp&IBLPjQhSx>y4Iry5Am2`EUCze@_u1HSjz+sw01kQA_hz zjvbgI$4P&m;ljT_RGh$zgbS>`FW>(WBjsd)sI;w zlT#*sTYObf~uXUO?;_s+cKW3SFPMP@lJ1Oo@T*kuO_nQ&tv@rMmvc#z@ zTwl$z5Z_I1CbzQU$M0(Q&sey);xoj%EgYhF8}TX&bKK_>&$RF>T6;M02n)ZYxGiy4 z3#U+AnYe+4Q!36yT;9UZ_sRz6>7;Szwy^wO3Hu*$S_|J*yqoyXWM)$N`>>_N=PbNd3CjQpKR}}Xo{@lXO^`CgEg@4xC#fb-7 z_=w^l;*J*HulQbDjk}J8cPjpgxU_|Nf3|@*yM@xxRL!8ILA&PIlqjA4v;oORUAb#-7 zOlls*tBHTL@au}F5Pxssyo!4fueESK#SMt(SeS8_ARc4k0$Mu*@%t7osQ7*>jk}43 z3n@NMT*<lWYXW=4>XA!$BTvYKu;zxg*N#%IAAiikfVp_XA@j(k0SDcM_y@g9C ze%eywo^Rojihm)Fv@qk|PTbSM|8|9S?ys7w^=PT9_g7_6J?Z-^=lAbY!~6FYQcI(H z|Hn>vo-%z&eBS51pX7D)c?C6bt{Yp^qmXXyFHnyArpz@b8M>Ca!JaYl;gJm$dK&#c7CNwJ<-|xY=BTPj2B| zTKfm$+fU4?x?AyT;-4+NNAVQm9TwiMxEJwq3xBP+0r4~ouTflrc!-6UE6zaN$-;{j z-*2XI*R}9m#m9+5EgYqIBXJH34^upgIMBkp&J85K^Vm#kTdm!K__T#16qhI7W#KA{ zvk|Yfu(SS~YTO@NnEU-N#KSH8ikfdH?qcEOiWd?`Sopynxz!v=T+YJ3DQ-_3V&RjD z!-&&Zc)#M@#P=VWN!_A28SyU`{zCDUCYqML7XF{&y~JNyc)sG#h(EFLOvMw3M_G7^ z;%>y<9h}6b>g=aSv|0(N#{CpElip9yX^rQNQ3HS94hPupQcHWf|H1IfoJIgQWv977`?A8FMMER)IV(^$nbiU0Y_oQ&Kb1`uDfaDT1c zocO4N6OYK55BxhgAyP}{!y;5na6UNYcW5hj8^)C%m{@u5^^@<9cSsHVKAhLj+R{DA z*K#?HzaQju*T`1}y+Dp*nY>P!`1!-@XJ_Jc7UuT?HHjZSFw@ER{rQP6SeWk13;+rP*CEm?)8qeQ4eo5SaIQjlw-9}3_9iQf?nbi3Fq2(KT z%NI+mymx#uX_9lYzqvR*o?HAoHFs_?R@@CJl?{uX&}vrds&#D%aubF7+$Q2n zE%jx*_sePQkN25BBi^lAbt%hSb;`uYyIyf5@sAEptV`bf58p5SiC}+5;Q;N=k;>Aa zax|NkaDO^#)r>6DKj{X&?RC~l=j&R-Hoa;m+};pvuOG`4b;_9eYD%2h!XIeuGQ`jC zGNSm}9LHed>lW^!wI9{dSYsWWNUZWHsW)CeXTL)#;`<=RJ4fp4{!hPYj-QcV&W~{{ z)8Fb+C+$*a;^dYg=Qg+SrYrR*N?w%I3KR@$?twJe{S4y;@dB$ z@%OCc*q%T9ozGI1+3S>v9})h}CzAL}2Pc+tZ-4e`RwCG+qwLS%xc-!*S)Zi(laXbb zCeoh=wKb%-Ec}f&{4;TW3o}ofh|^p6ORYVd`0*d+?BwrG1`}Vhu&i58a4X_N7M`ZK z0`Ue1CzeTm#_!E1e=qg?Z5`juFv55a77Llb*X1<6-*haE`ODwy>|vRvRA9U?K3i$kD>b#wRi{jRKDj^bCH~RE+>bva-eh6sa{}?F79OE(cO#x; z;R%Xs6Zf^S+!x^aU*dNxJXmpB;_4RetN2z8jk~CY-&cH?IJ1M39u1%CMH{UhBei2( z-Ee^MIDN|*k3lqzm1BE9ZKPG3u*^oMO#FCMQyfaX(8Bz?IhlzkSU9iNepp>Q)Z4E%Fh1)1DOWeZ3Z53xB4zqAO#gD_Z`-LprUhx^? zS1jB?@iyYWZ!n?pfwfXRpZKbU`Ma6n#6McNiPmmQyvf4#6jvtx)WS6t=OUhD;mV3V zRW$Ct7Uu6}E)lM!N^vA{W(${A+=cl0bu+1p6_vsyS%aS(BUgX3ifg{)zawh3_feK)l_;Hx;Kx z6b~SdvG6&?&4~wD_-DoCh&x#Lh~lio;TGPn_(>&=yOf1@Dn3j6nuWJ2{)RY(h1V-y zK>Yh}W>Qxv9zlH4!pju5BmU093l&!(USZ)+6o(K`xA0WO0mMTsJW288ikg;pEj&i? z9^!fy9;$d5aTyEuQ#_tHr-gec?n<1>!d(=yNnbdZQ3lg8Pa0|t0h<97Kq2ikr zH11Uv4p;mG@k|R>Q@omZgoP_Ao1l%*0?_B)~5e_Q|sKm!ki}3wDtCh57yQ$HaLp%QRDOS4 zmiU5&`TcPg;sX}u_s5URYTRF0nBO0tA)aU9@*4Lx;&B${^CR<#dsw)z)*epW%))$L zs4a123uo8bm5B>jIJ4qh#6cEzDfX1nxSw1!lbTBLCF08#e!NGP!EWLoEX?mmmlAKZ z@L8=LNxaa)KPc`(Ji)@-71tu}?chWd_3v8;Sq9VCHh1;#tJkEZkr5K;oko?y0y1@fHhrRa~BUiG|xM&PE(% z;g*V@me%0=IXLlL$|s24{lA{p-63_c|KmXNDHgi_)3StPY2>r2RvpJOnXFz_P~4gL zpYvuuODnEPe9gi|73U{DYT{4}r@j4hIx6t79NV8SvAv}%bIvIfe;dH(L?em!IXIE- z#IHB*_Yv%mJkN>tr^WTB9L**r+@B1Zx{NH-!|G33#SeWS+g&!&&O#I{*b6U!CIr#pA__BrXDy~5MgN1n=dX0Fag)eLEXT>z`g%gtWZnQ1v*#4LA>rQBYiqX&c z@3-AO>-c4%-wip&eElze?BDq}w11A@x;Vf6avI+!|3Ccrd{GSjW@FNzexEqMLG_dsmSeVb*XC}^RVctJJEUFz!Wnn&Ne~S3-8FPYm)!Dy= z_>6_SDV|Hb+rk|b4<%k@;Z}-U6VJ48W5tz-M>zQ3W}tWeHPzbBi|F|F#sS77OiX0{ zU6<3io;#+-c)X`o_pnU%q#O3O$2`Zdy-{rM#%ZU$LG-#P$M$~8_L{KFUZ+g__;=Fo zgc5&g;ns>X6Mtf1=HX#s4S1A=>uc>(#N91iOYs)sMi%D#hq=TREX?;0Ly2FvFyBA4 zCVtt%eE(31_^(su)a3hz9K`1>%$uU=KF`8#B(jo_YX^m$6DB< zd(~Lt4=nsd@w>!LEqq^b4dS;fd`odY;`|oAsyL81y@mOF<@JJ^md7W}r1H7j1H_js zd{oW9AU+DiP6h57z!9&vRGH`1ODBQ9#;I*Qv6XSQ&4#cvTmKf$E_ z+x8!S|KU9UoDYF}pMTydF1r8AX?&jNxc-;>g?hRZuA!e?_fUUyoZoEv4R-vD>q$qg z+K*-0IAs!v#CtvA{X}K9_bJ;e7}s6_dW9t1-bdPAa+XPvbbHS8suQ$IY+i)L=kJau z{r-mK7kkUENvym#o|)Q0FR2mZT8jh8A8P4%w2;$yK1Yu2>mxs3E6p-(oHB{z&xvOZ z8o=-0UyqBYSYrM2dtNuzTR!k#%AZ&N#oqGge@Y}@-uTaHjb2j2`}Zx@q1OLVb|-K; zR_!0a8OD;v*oJy*&{(Dt%9@yH>>)*{kQ$+~6^6=^X6(~M*21L5mNXF>p$TJ8jD1O{ zu?%UlWoa4nKj-(m&hzNG<{AF)=kvba`~IHmI_F&Xx$ozG*5Ul^ZganBw{yRLmGSOJ zwsM~Sqi@+ie@7wnKJ?#nBl>IZ`afWIoBN|%_wShx^Cd9fi_BNhp7Lzdk}}3AULlZM^qSAA>KK#}waJJQKW+9Ibd3_#5(z ziupd(baHdW35Xs-epvA*;OEG9E1mkqQEwPCpaG&PYqzP{pFFR_RS zW&ig5KGT00*M9-_A1wX*te3YCnqC$$mv{Qs?M?6o^3RH22hSsK682j+&v?5dtgj7= z59((&%y=i-Xj`w2%r;iCznqrvZzUs5~*{1UmPV*bwL6XY6-c|8v!-=mnnGntQ^UvU)rK3N)N z$=vE&R6fpZA|Fu9>-hrmTE)>wK9>BsV*9w29r7yqL&cnTOY%F4dEfFNxw~S1E~yB) zwc>Zs_wON?cWuQ(!8^!h74vw1MJ}kApU0X=zOco&s64;lARkuDb^Z)FRWYyUHOPw< z^Lk#AJXJBTYk!u)yoW1Zj(P7V_f-5PIGNm5G0*QA%@!m{6u9)k5A$hA}`#dN+WE}Zx z#k^m8jXYEFI7B~5j#WG!T!q|6@dWUlFC~1jY5iSBhcYV-(i{A0YQvTot^M{G8&- z;E%{pC=Lg|O@2^udGHJ5l8WyJ*C+qG!MCU-!1t0*DJ}xe3dX#5D$Wl+Mqa5n3$HJ& zC4Z{;D)>|Kc*WxG}kj;-A13$yF8ebAo~7(u#jX^y#7~OLnSn zQFnm1kk2UI3I3eCTk#g~c=Bq+TfwiB=PF(gZbg1yaVq#BaWpkls$eVn{b@o6MqM_#0u=l5si$%?NdI)*${ab8?{x|3f~ddM#TCIt$-NYZg3lMmyq{LgdG8|EQyh%wugPJG3xOw-izw#t9!UQ4 zd*7n|jn(oj`KaQ{;M(NPiurqKrO8VapF;GtLYVhQijRR0k>68%5WI@~y5e2nndJ70 zw}FR}8z|=a-Gy99@ft)&kc%o_0WM3vmf~AfdH<^*=KYIeUe|shZ&S?QOIuG~rkL-? zC6Z?;=Jh<5JW4UI=dY0aDxQUjH6?dc%-=(;Om3(+0nr7?_bayVqnh8pEr7BVSIl{D zBme!KZ&CR;_67Nb;?Iygj{KwIL~tMSH;Os$HsntfPepV!@>s?3;9&9_ipPL21Y+LL zD;^8pO^#H|_mh{At0*3i=qcn4IJu1C4&ZX+ zJc>Jl^N`Q3_N_TTm-lNvlx2@%&O4R7M)7M%K9@XC@$2AG6%PY9BX?8G z&mDx5TL}Aks|jyf%KJ?`Kh6i38RPw?5EGjF`%P0YkQ5tX-rqDE=KZgXRi={m{iX$W zxA}b-yRAR3FcP6LY_mby-1L4ExI6hv#ZllU1HWKyE{PtG$uYiaM8)1Hb&TN=^uQgGqe`O9~ zrQO!`zYC!OY%@#RcS`m+-^(#+%;?(M1hyW{n6SAd^r^>IbQ;DsRn(Yv zgY%I~-C|6hxOU!rv|K2?R{x;gKuhVw7`Fl2!&1ZcT z!hllQrj;5{VenjXEycWkj3S3BE`sPD+E7+g;}n6TWhC-)#C>o1I7&ew3;8P>nuZT`Nebe_xSjpY8R zDzYuHVSM~vcB}q*pEsQSk1*k;zqKX`{r6=5EA6(vUc8FVBH3n^wDH!D_n#HWqZIT0 zDL=Wd;_gU(>N*P0Q8B*{vzgpbaSucCZX@yd&rIbclh66}IYPtOCSPv7-E_af{xYwkzwg;!+EVH7fZc8WK7ifM z{qfy1{^b}%0`qNVzKJg180H%*`FzIzEkdK%rnj{5E`zVZjmgg{{sLT)9HE%=3?x@p z%-2s&U%`BX6;DI*E#&J7cC_}pqSrt`jA{g@xw?yfc(!_zD0ci+@5?= zaTvH3d52SfG(j^ZHjLGn1o_C7Q_TiQKctw?TN;o<6!Uvdq2wD$zD4EtoNipgyfYN@drrs6yA<<#PV3046!U)KGjgJE zj+Z;{_fa_BzBb15eU$z-)L!p8GF2~0<#WCG1vd;e*rt^l4e!fJl4~j6gXljmq7tEs zd0)1lTtM+YL?@Haf9YFh-j~fFA5xr*=(ou06)yolPyRwU=Q_Gipv(OT`z>c9aX%7m zf^)ndlJqDTAj!et$WX{mJ*2=eYg~FxL#pmCOB|Pre=JF@E{Jb~l$V+3q&K zMa+G3T8~-Y)ECz5eI?>u*DFz9yKc9M4zJdgO7Buo0f; zU;S-g_Ig>FefN^SZ-0Gf{(f`5>Mq{_yW8AP|_cFFAB5l0uo3A%bA^-U~i|MBv z-p2#J-qV%ixnYin>3^*a#{Dmot(0W9Ge71FVm|x0ZSuYA@?AZL`3?Dh>q*-4`zGhl zxb{J}Xult$UF&IoYJTqdv(SE`r+tdQ_MY{2&nCOxy4ncy_r}eJsmDYU#q;0pHh*u% zZtL}Z7ed3>rnj{59^bpc`N+=-`#VCO@$h$scVu8Z{WzX-Zam3$xA}fu&g0?l08eI{ zf9CnFH~tRrK=Mi9TaITaW)Z>hjNo{d*kD}$nQWmX%VoWI=GPthGEd(;zy2=Y0lVA0 z9xVBMuK%3hGPY?YZM^m7{HBm=DSi?i4ni5?R*qa= z@l~9TdB}x@b6j$s_3;lvcAUieC}4Uw>)~LcthZ#ldwgJ;-PY&h1%ys!o8{8RyFM<0 z2a;zi{tf&rd9>nl;M(MVicf+|lRF9LI8#1@lI!77gdIO&riJTgB@>zB_0vnkv4wj z?Cw7haz5S7w}*+!eZJcfkzymv{U^s)*Ntz1-EH1KlfG|fzWjSdeVI@G{>QaXrG6cm z@4VgC>+7S<_MxH%+w7G#xzBg_78{cNtDEn96P4q9r9S)7KF!m9xWD$E^>7Xm2{s}= z=&IQ;^=NCyX0OjB{&u&yU$oo$c$P@4Mn+-GGj8A0zo9%A%`4+pa$G;Sz ziEOh$+IYvm2pmiPQt=nySIE;8&jmLnj}Z1Z`0aRaT)W8CLa^_KOZ?CuOO1!=H&J|v^CwqT zd=4BwkgWZJxi}x_{4n8Y5p{=Ih9ObzQ!W%vW9V`5d1{2(7_3C8dq`_|yZJ zB>y|hcLCM_|9J!>KBc%Oct3fk;s)Sk@=9U7n08i=TZ)D zJ-D9w+DOlOT4EE}dURyMg_6*x9uK3_8f+7nd#9fD#^aiG82vqNGMM^za{ZmQyUpWu z&iy@#{!-bdrnK>{w@1Kp$@eOL5Il+;sJH^S2lU}&E9Q0Z2l7zi+z#%|uW$T=>s7oB_FS(T+8p-y4rb1}lGEq-UO;F&wz)?Q z>ms-&IltoHz@^BUANdxP*WW7#G3Nt{e@FBI@><2Gz$?k0D?SGPi2R}A*o0Dd4r_3p0F+nhgGwd|2^H@O$J` z#ovOX$cq)P0yid4RlFKpkvv@Sa&REIr{XWcr}v{QZ57W4Zy`Ub_!IEwa(%`3f!mWSDlP%8MGjJ&4;(_iI?cDJf8s{+>R!zIxZ+dbgXFD>4}iZV zf30{6_+#=+;oL8np2w%m_oUN4(5WhY7LbG_vAk1)2WpL@4H{blaC zxxa$0zXNu+`Fqb(S-xDJ&&&PfCX9ZL4a5EU4ilN<{p5ez_xH4)e~b1!E)6~Hhu@+- zpDzS^+IR5R-ct`gUpl%Q^{8eRk(qzEi9-E1+ui2#fp%Lz|GOVcE|G2WNgMC|!2{q} z^6yia!pjeWUm@>TTm{^e{JpUMHRYKPuX{l@&a5Ys#EgHe4Y%v*>MqRZT}hYA@%7{@ ziF<_<8))ADG8-mebC+)c^EH%wKI^j>LSxvbg0%4#pg6cY`A)@mfSZu7O!h5bK5!-S zF~#}81;|?z2ZA%wP>!X-{;PY_^K0JUB-u#M{ml@Yz}9y<6ZV&cKJ~bcLpp$M+N&|~ z`DJ@@1I2$Mx)!;T;>+L=a#3ObGx8i?#vR>>`PlnLb9@heDD&BDcbnIH?RM_ZFFpD0 zL1p8auMYFgaQOx^-^5$zlj}v$PWx=Wp$)_JrK^d|@%rNJ9}z+9zp~jdcI7#X^hPl%0w!VH8LTD7*ESEOk^CK^~ zF?qJIpW%3)U*$to5XV!L1D@ks1ocd@vF7z8 zsi#e0&-VpP*-cXBay|XedhTz-u%4@$$lTX+EA$`1{yVb&><^^>%IyD|-PY@?5kdpl z=7_ZMmb@PL#1E*-M#VM28_7wEtAOW|rz@@q9z%XtaR|5<`BlYs-J0M3BR``!8^`kj z@?*leAJ6~P|NJ&r|3DL*d;RNUC@D4~KIn0?VXu$z?)cl?=K5&2b^XgDG=^=KOB-+f z?*?}#&ldJK3(tC-i>Rs`&sQ8zFE^gjOx7*u@qC2POItDK#%eqtg7=aiQak~?f*d03 zZ@Av;(O!fNw_)b-hUpzn;u?&~E4c_#(%zcA8xn)omEgpZO*-_v1GU5m{T% z{{pjN`XA!@KW%rL*Ds}ipT~nq2u)?1_R_|C{KkXlk{c+F0gobAQalvggIrYcAaFDC zwK&$t+jn1ZIQbXFJ;8;@+Z1;LpWTefFH`&+_y_VV#m|5jlSe6j68t{7uj0nwzT}RI z8-Sl8H&iUgpM1aKYKSgIF0MEnd~p-z{r3dlqLv5mA)iouH+VVuN5v(;Q_0^bE&`4w zf1)@)xFdP2;w+p+b;)lC`#t$?em$-g5@&71`hU@EnDt)QCa{lRr|oWYeNXe8Bm1vf;Kqo9%A%`mm()xjwvw5hb!s&D^{6>96m9`pX_C{dHunYj#`L zZzTGw!8S*vjkkX9flHD%3j3>o&v=feV*X<||A}rqo9%A%{85tSvOeVcoP;qGyaURQs1lVF`wghJNL&M zPrjPSmtq6W<3IB)bomxA-yF&3vp()eXbjuLN*nL-dH~#=+(+?);3nh_imQMtksnw5 z5V!z2Tya%!#yXUvnBqF%t>nMPuv*@c*99*krz?IGJb}DjaXoNv@(RT@z^%y%!v2;q zZ`N!H>hFPTlD|{@4!9I~zT$!4E8n94A1LkvK0qF# zxCeM8`6b0Kfzi1p6kg_blBI1#0Py~HthPek#>D{WTsA%>2}v=IUC0H zX(Dr6pK^VkkKWIJ=h|n*=HC7a+OPGr-+zntwRhXA??g}gq+7J_fcD)y?MM4-@2THF zL{zmA@j-*lhN)jC6NUPfw!6*awcXa|*GmY!v<7WzN}C*ymgoEC^AWPvhM>NIw;bOr zM8w;O_@D(G-@zCe-(dEgX18;H{E_38fNTvt{U?~n9FMQ3K2s18#QvwV|NgH3tE(~h zUedqM{Wuoagv?;pEOh-XV6Hj2^%ui7vC_tSe4aq&?&Lm-Yk-@OJ1DLIu0(!ZaVc;Ca=5Ucx!U^5 z`PLO-X)DcaalT)9_g3c{>yuz3JlCTwCJNW1F?P54K9k+n$KzFW7R5GmrH!{fuYntr z-&g!PxFR`PG0&?&@{7X$3n23k-D9ucX~}N>RZU=y*Bfcy6z%7D+6UgEeGjzn?`eN@ zMDF<$(7vIk{Wt#Fd)Dg_LkVK|5H9oiq@yU2$XUjzTO0+UZwd>#A~ zd9mV);5Fo_!v0s1J)3U2UTsJ8a2p*Tbj)m+rcqb7e0^R4JU@MiKs#rwev$?Fs!0FNUtQhX5n8hNr}uEQtE zLltu!Rw2J4eA~yP!d`oZXD-9>sAe|I@d&p`?D05YcboUSC8^KxxC^1n*e0JES8?zZ z^6x`^D|!cb5P84ieBch`?-l0<*C8)doP~;(Ax~0#6@2|`%7cEft!)*DxL-oCzn_J0k{yku;Q`cvr91VOKHocW__wbj4l3Pm$kM+y-2o{Ho$+;9}%w6gLE4{0j4a zOgQH&hv)IMK4MaAjCuXbY?$jqK^tnX7Ympw`z@Bx=Xy~dp)qW8LfUvAw2FhflYdkk z0B%D5M)76b{!}7=qWC1Z0C}w9qu`7rRN@WA2f$m&&nr#?FCs@O-U^;TuA+E7xHq|! z;?>~RF@J&Fr~ zXOh<_{tK_63?&gF9 z{3$q*oKNw`;8^nS(Y{5U41R^YUvV6`DfxTFqrjEP3l$Fs7bH(oJQ#dt5z6wm;{M=m zyAOWKfmgW z_QyYW?dSVz?|D4n>)S~-!t?s}5EF&RgXwm+c|YB5>*rS=p|b&O(_Y$m9}l=*+LIe7 zo{8vMc;dqico?dP|b(pMMZsRGzHjUMI79sQH1(?!9w>zH8h)S_h@j*8@ zo@)c7J`0%ayxrFIIfKv`w%IFfy!H7N+@1WL;-A1x$nzEN1y>?}AndQYH$NXmT;_bt z=YZKT$G4LW$MYY%+q`}(>3r^Iwjy*H+tgGeS`VH=zE|;T@E~%a;^p8D|7Putz&17}D+pZVU8$F)?p8Jc^ap7q-b zLGkSGDfZXg^*5Ng8s^+zBZRhNn+np#TY`Gvn&dkbKL##EzVe1|0c(P<%*BL{DXs`U zK;EJ_1iX^GRB=)8N92zc7X-gej!~Qk`~tbRV%|U0CqJwB5?02&Udt(fOiMe=CHYtVNf zxu0U5Pp3aaSvo1^`(#_ljTGDWb+bc0CqJNg26#NVgyKoy*UA6%^DXLla4Ygj#S_2} zk#{JL1qYFn6%Pad@hRp#M=|f4(#Yc!^S)^*`Ax;VZ~Bn@g5sCZ_W*KZ#m|G=lOIyt z4qS^IqL}aVhLCUc^(`vj=e;@y^UhFQ8_5rncPX}?BQd}KNnWM69Qb2$qT=%4cgS&y z?*?}!4^mtL+<@FwaS?DRxtZep;2WP{-qjTcf{&B$QhWm+&RIv!tN1+lGxBeJd~1FN z97Eo#_*Zau@^^~&fSZu#E8Y&SME*eWkKh92A&Pf^GZIjimlSUXZzZ=>yal|7Tto3X z@C5QbinoD#lk+S70o$fZOm1e$hm#-P~mAiF5dH%!o9Bjkz z{3r8uKhJ+W{c}D?XWcxXwI&Ml*=%=@4_s-tbGW}nDH7RcmbCHSuW)_Gl1C}#`hJDn zS22%sQ*uXP|3}I*AD$OMHqN}?Vn%4jU(SZx<8yT;=2J$}<#K$aoYGf+ z5AI1$6V7GUp7mZIZ-iF0f$>34nGG}F88+U|w>0xjlzcw(ZG_NEQ!(FxYDo3Kd&ylC zKL%bwZmPHncpAByu>T3k<4Yw(b+b`;e93y{R*x?w_t{(Vsy4#>-k8}i^G`EToIktY zVz>3<%l!zwGzIftEN#5!=Of^~fBv51c@A-1ZJhc2IJ05q zQ{9H!>f~@20lzKp?DW~ zHTjI~9^anKxl(fa9N$9-jbxiy(#Biw!{7?! zQHp;8=O_17%yFHXgpzbrybsZv$qj{bnX_lU753ZnGu{T8-=8xZX1)b&yq)i0=F5IL z$MsbVq3zh_gtYO_H!rv*`A5ZnW5lJ%-zes~zcLZ?{Y3Gfh(16btN03dCHW1-e}F$C zKd(3g{5CmKIG19Y6(rZkQ;2M6BXNBUGQl~19?w(%BB)Z3jWFLwXZ?@AB=x`g0j7V@ zZr|qpP<`Y}v4Q6ChWX~Wd<&RwhUD{Ezl{(Y!!|>ujrVxg19vCCqPPaQ3Av5pD&R`w zI*KcT3y{kx4h3h#qa1}4mj-VoU+l(ec}E@$UPS&$aUt*o@&?6R$Gyp4D&{(FO`fKh z>$oa;gyP?^V2YA^Ddu`Q|32pZwBlok-bJpb_#pUea+qRXCnuAO2>V&)p7qM>epegh zxjr6zQPyiS=1Q~M`tfKhh7-m%%cYI?D6I$QBhOa68hkPir5LSvId~JfpW=Do1>{bO z6ToB1jTCnuUtN4F+7P^ooUZs$@J#Y{#r42L$tx7|zOoBBL2(sCN07%Tt_Utm z?yoomoIMWneok=#@Gs;i6lde^d_DO=#n-`! z{5!ZZd8Oh^a6$5?ijRTMj73?-D?SL`MjoJe7x)WuXT{sVapWe7Q^9@6RTZxRw;`8S zyaHT}oc)4tQIo*I=}ymu>}1Kv$ut@tDGGV)x-AA+Zl-&Z^VJct~vI2PQ2 z{G#Gv;5y{yilf10$PX*-2fjWU^S)bgFYsY*%{wIqzBIeZsdoCZ6LV=f91P59(+J zV(LG`Cb7q(8Iw+wq(1js99J0I3{>NK1hdLV?xHvhd~zge(o`|e&rRfNiurwv1>`b{ z`F)JB-l;6i_N#3LQ3{HXv$!iq<3NAvPCw!~pAF%=@7{ehqD>_V|slyUp*d$RKig|3UiaI&SOfKhR(Q(!K)@VmVLy zqtE&o?|<5#AK~Wr%`MueApcrV`*?rtJ?r@%+)~Ed2+!-Y-AokfG1%@lpSQEy`ucJg zLff%TeQD#pz7z-7Bv(`%04_xiQhXURxiTCBxZ2)#$(;lrARkw}AH0&hRXDdb<*7$^ z3~RWJG~b^!8)p6!Z34SKdNScyN$7KaKZnprw&|_L^gOr%`B}y7!1>7$ira%v4MROD zD}ENdnH;RR19&0%dOP20J_Q~}{#9{v@N48B6gL7tNnWn_8E_TyY{i`So#fGq`8+an zDCXTyaT6rpN$w<^+kuv6(4OPX=g;vrfq6g5WHZORjLl<@_h9A?mb|%K4?OweFrWzL zo6dX(pOJi(nJ>+5>+|U?ga)w9a%tmdEyrW}vk39`TFd<>W4k)4@~8O%?A2N0X~5-U#kUE~EGx za9wg9#S6f9k6x&M>jh{JpS9==6*;<>~lOCAvBV0>Ps8%@u&x`K&~k4Z_=LeEJsx4AdF`x$8)~5 zjOT#eZLXJgJNNY_^~gfDIW~;-Gm*K~ug5`qHS6zbAMdZdXS@Ru5yA0}F&k!l-Q0L9 zbG)5oygv1N3!wpQQ(xM6>-RSJ#6V2BqVO&2$MGcDDD(Kv@tkiZ^_$LQ8FpJgzPy1B z2e8d{Y2zKwo8b236^aLdYmpNab6g?hF^c;j`sx5ow!dN?mxJWzg#FdxKd&eBM&bk; zX+G~~Hq7xUXA{`{C2LtQ!s*f=KF;Cn!9|1nXlok^T~XI4%zdi zp$)@)f=pzN^O5!uXdmopf2w8f?VF<^_gg*P_OBB zxB0ylyPf;>!;|ka@^xjttIXHdhJ_N2oUZZ$7xFmU= z;#BaTeKGHN#mm9_$%7To11FQaDV_$NL2jYgURSb1-XcGu_+9Yx5e2QN~ z^gZO?oB0;?1@OOpFz@|}TY-;~zgOG<{5^T0u)mA2JQx1Y<3klB7;Y1o*MrQ4xjyu= zd2s*3yxkO7Rl#Yve@5pM#$y$0_~{T!lPH@l5cY84sKJ*Q@ zapw1f%!aA&wRD+JPo_I>w{x$zte?@yR^5h;US~3;n8@7M&l*Hz^+5mMv;T>%|I>E2 zxnI5Q{;we05*vp8JKVDW3O`}~?7xoLF#UzQ{(G|ja?-!g@w^|Qk!+Js+IWxW1KtUZ^+}ypTLeacS^4^4p4o!LN~{6c++NNp7XM zFt`f2mf`^Lo#ar(`M{aoG4BG3^MiMi&;R0E)IjhO@*%|qz>~=9g>yVfWIb0!KsOtJ z^)$`IdC z*&(THbC0y~F0j9lc`iA>;=jS8$eG7|E6H*7ARkctC!(8?*DB5ghm${7d>UMc{GsCG z;Il7d^6w}<1pa~CT{y?1=)K|f)cZ1m<883{y%e)y&v%={)_X8>mXn-5^}c}6c5IVR z4eKnpCi(YcEU3R>$$F`cLzw-N8O`W*W+W*lEXVcb8GjricGw8>`{Z0N6K!X9{KmRk_ zkFXKu^Y>=MjJK`r%pQ-*?7X>jemlpbG4f@;hx|VJ-bn*ZcXc4G64i1I_ol z&4!upN*izITblWnNIswW9zy7)E|~8WY2!V9hrxTv!xaAnUP11m_y~9!`6&zB$@VZQ%jHcZsPpQJulJ7ex?c3YqCg%G-j zZI(+LZ+-HDmy>5J{u@J`N*=BFGB}#tPw}7Nj^s{?S%f2w!2L|?Y6Gp{Ro}RHfyAfw|@752a@M0{vY^Ra=c<5 z*V^R4itj{pX>vE=TnglQy!!`*Kl(i8Tfk&7^9#4}_I%oGcboS!B%jaubOE7>Y?Dt7 z=^{9m{QDu6%v+92;8)1|6`un)C4aB@B)Bqpq2i<9g5*hx4}i}+huOWYI1Rjw9Hn?G z_zQ9?#k;|A_rZ0@brmOo%aF?}{tA4(Bj#OL@e=T1 z@}&d5MO_MBO+KRdYw#@cM#am(!^laB*MPf{rz_qFew_TS;!WUk7xd7{+y-2d6#=KJS4-~Sat=rXn`DQ&zLw7<;i%MO`B{#WjJ{Ef+b z{Y6w)j^_p!@D>|vufNThY^@~ox&EF(Xc*hfRkv8bg7cBzSNs$BWP8jwTJc`+Ci07l z_kkCXn=9TA9!q{$@d5CwN7_3W z@9G^2-cSBR-GJHawt4l_&M-nWkayiAd!E?xk6juX}Bwti_Na5g@$v-JB4~`^nP<%JI z0{KhDCBXT~(-ap0pK6P;j8L2(yqVlfah7>V$qrdaep>NW@Hlck#pl7Vk;4?90Y6DD zqWD*E74o0z4(TWGo#dm6_kuH@!n`*N`@2f#@cPyo#3$MK_@M92hIzagYtz{4^>n6v zSJL`iuRlfT0JiC_M)ondJ-M~w$>3V#+KOYrA>^`(2Z67)!FUTQ?g2hXzMyW9I)c9? zA6DEJ{4qIIaSQM} z@_mZSfIlPOp|}`0hJ0DwAQc98C;zNC0NjMUN%24C-X}Yx68S5|e}W5;XDH4DXS70D zMk+oH-b#K=@p14Xay!L`z!S*z74HW3CRbGa1GqIgNbv@6Rq|DJWB47oDEYYJZ@}lD z#JsmEUI5-j{#x-2@Ym#-ipPN`lVcUX4IW7Dqxg03v*ZqnJA-SJA6MKOT$&uNI0AgF zCFWgBaW(KE@?ZOW?+waX_?A}vc9lVYFy5jr6Uy$1?z7HHn zZlL&o;6CI^ic5mqkc%q56I_jaZI5qJv&>z8c1SS!7sY>oFEqovw<$gj-c4Snco%pX zd6uxBwdQ$#w+2DOZIHQNFdJq)^|G;cef4CnZj#GqeSMD5NVaLLhVvP?0{J1ulfn7P zA&O(cr@Ku2for6^Zr2bN$>&k5XJk!E6Fb@-VFYT+*0ut@Z01Xir0Z(Am5{S z6}Ub*zv5-!d&!w;zD1o2&Wgmm4=A1rK1N=vcrpRNNo@9{C-`uY#k< z-4(wKZcJ{ixE;76xwhiQ;6QR&#kIhvpFmj(Dy{_HLcXxmx2UDTpOX(OE(jh^PE~x} zJXOyQd7Zpi@mX*y@>In?fgd6dSG*k@MDD5hJMbTkFz>dClfY@@M-_hpUP``C@kH>4 zrz-r-x+H^J@6KP!G6T#LL(ad&VC`76a;z*ie$-ZK=p0UsofRNM^wE%`OY z4Z$Ci+bMn&{0_Ok;zz)p$rTkp2yQ?QQd|KXO1}D|Z&B|B-*_DJKCUJES|gkK#+G-cIhL_zv)wpHn;r{3!Ve#Y4b%lOI(4D){f(n0HCVFN2Se|J~$U)EB_tkxwbM?^k4pB#?J1 zZVetmUa7b#xEuLX#gBsUMGXS?BA-!Q0NjGSTXD8|w<9~`0rG0a*THv?=PJGkK35a-eqZr#;2+7+ zicf%($S*4X8T9-JxOHj4ygQAD%b{XMUS(-!Rqw#9Di`aO!! zc5Jg)+W4t}d_K7EYWr#5ayDeNJ-$gx{TyHS{QtlQ^1wT$%DlFr(W?k)KjmzHiKP{gPF0qWb|2&tXDg>DX9kaAqG{G z{O>ZB)8C-vcqbtyyQ&$@XuCdkn6Ml_|19k*t+DGV&C`CqzxJN_wns#QjWFk**)Y8f zv4gYo9bi^YvrCx-MTG=BqCGeCqccLQAksNonI-*eviXd+5kjNbCNB3LJ@saN zsu&D-oR_B*>GQfyFs&~&q5=9g`*GCcp8>zdux=l?i_ z#<0y1Y2z*UcyM>}Mqz&im-RUfG1YC%=yhf!(@a>7>)BJU4T#8k5aZuzHcV76+nGH+ zr|oX@eRt{ncGl-!_3%Mq6K0OtR_*)a2+W1}&DyW9Lenq>1C?^1-Ovdz%kd-T-%2!i6--)Z*O z-1Rq@xf)8Y+o|_I$QQwUMN=^Tf-YZW=F9$y#k&1`nfId}1( z9wZM{%=4%S`4wS*$H6@T@f;6cFLqSM`f%sBO=8zavfXX&eBpVSQF%P`bhF*x%kYfJ+8~dxw$CrbPq`$$;m1ehfeTpHp9osCIHs1Oa2G=CdRvZ8>MINn~kE2)a z!-V?@`z@dM{(*5RHqQLMJLgl^hTHlrV7ls(?sgu3`FPit`EHmBoBCh-T=I2fzVmil z*N2b4HP~jawDH#GFC4Ctm}KI*3Sj> z7{fNL)PT-{yOV1vP6sz3hbrc}u0$>%>~}ie-RFYSuAb5_2=Ws6!KKXshH0o@^Hm#z#Ygvh5gT`#prE=N{*~oKDubn;Brm!Z-erKN(Pr}lxNhsK}CX-pU7+4H7Fl_(KT}q|39`E-=$)q z7UTO=EY@QDpo({OGS|oQE#t1Yj{B)a+}Sfb^W@1BccEqdT?1pD{Y*2v z|4{u4(IuM1t!o*#w?*8JGpS~udFw7LzE$4V`3|?Pe|*5+8tYobb*cDpi?}`&A8ipg zsA8iQu^Y>G+psk6xePaen(JD}t+$gZ9h_Wv)V4vvkNq&HNcOtO;N&~=jM^4`5tDL_ z&A+z&53S>Nw-~)=Q03s{J50!3al4*)Z0n%nCTiTBCE|A3*g_`ux45m5oAVdX^Pdzo z*V)dBKbm(?5bBq`Ze)W(d7`hoMm5(pjoXU++XmIQokTV@3*y1nRravnHhBr#X_MgO zfTpIp!KUx%JF?fc$WDEt{`vvO&HtDOo((26x?t1M+oA)O=5@L4G^F0cDi&)JSHczg za8uLKgFK#b=5X1gcV~k;1{G=$G$?{5ppD#8b+eAelXIJU*gfF9`Jd?0Pnf#q&9^jf(+7&!qfn?toauA}{;xeQcEgRQ zb==`5_3ju@-%Q@5EZaJ+xS8xId${x9Ktw)zXEBp}ot@wx=6|A#o8&ER@+J@5fs8Ki z2F@?;CsRV3vNKcO(>m^MZ~gL^e0TjPUoF#iP}#VxE#m@$lS}0t`FHst_qAA+r*fV= zdCeGF1kc?)kX@Q;Hj(*wy0m5W{Ks6s-uwMi6SOLzTpsg)^w7QL%#Pc-tXk{1t!E}? zWoM6G7d&cCojiHsTV&Tf(#({uaD0orc9w->*YA2OF!ry)BLd>KKM~((SM2q|!D9!R zrccCPey?^9HlOR`A$2%n+js$Np6yIJSrRzvDvd&(3EV(;@v1eRJFYc*f6PjlG zY_pJOWM}ZG?bvR_?MGy~DcJeoO*_qWmtbe9n|7M! z+MOd!?b-bpv$Mv!v+tRIHV5uEmUnaD4*s)=|D^DrZ}?9V|C!H!68O(F{u6KiS(bNP z$SCuFHU|#l-a-7Q5C3_E|8(I$&+?zv_MfGB#|1Vv|0lT9x)$+)i~h`)r)kY~s|uQd zO$siaC%AZ{V&=c)&3_*@|7~Rc`?UG*OD*C@jxEz$L(E}&z=|u%t_HA?)sVchnP2>Ov`+m^W<$2mv*N0 zP21TU>N9-Uwia<5$H<7_gnVWkaU6Mc;gJ!KeQb6NDsyJ?hV1N7>w>2SK4^A~jL0x+ z+ng68BkmOs*eHG{e2ep}k0gGZc&6DgGGd|gW8#r%;ydAEov#&-*)6^V-pl!?;;BE2 zPl7jh{+{@NqvCJE!<|Qow>v4`4qniCWAQ!CYr-?kV#oX|ibtK2_)_pK&I82CL z;(NdgI`1f+>bw~|!<--JzpnTt=i%@z&O^nc%*w;~g5V3C- zgl}s`QOu6pLFNHnH?h|dO1HLe#!ZEcys5e;*syj{FcGP zozE4YJXCxNyrA=O;)%}Rf@j!eZRh`*_%i3u!?!qpQao~)O>j`5$Hz*C*%4;LV-y6;F4*0UqxBTk&Nhr2o(11)a}y@y;i}Gwiaq^B*eS z?p=xR4d3Fti+G~**6@YS9~U1mQsS$@$2u=39`K%cFua%ZJmMvsUzlR+)7<$9vuW!S z=6o+a-1$cF0nS&z3p$@K9u+J7PlIRJWozd@MtrjK!SF54dxL|9dj#@BEzEwDXU0egq!we5d#T=ikE%I$t85=zI=5!!AoZ z|HbyIAq4N&ndz?3gk9Gc-c;slA|AX*e&hHVwG)cS&yt(s#Kji!a zJ{14m>=+pl?)<3u0Ovd41)YB{p6>iBc!phecK(aROH7vhAH%mepCBIN{2lm0=Y7P} zr%HSm_*my{#M@01kAU}bUQImFd0BXK=fUE8oM%tM{GDGkn|6JqJO344(D@$mfRCjA zRCtD6c6R>Xh_{<9J|Dit`E>EfPsPW;7djszKEQb|_*m!9iKjYm0q^C!p7NY3=enSUcBA+65kkJ(0MKKMCTRZ8Fty&`Ii zz_&QR7RUO8InOXV%=16zhr|as-wGe=e3f|QI?2BX-plz+@ny~@z?(ZCCZ6uR4?Ns? zSMhf1C4U=uLFWy{V^YPd!!zu%u=6i3e#v<;_!j4R#ltpA{KW~Fzw>mnX|FGnH;M0o zk9EF5Jax19a(FN2^TbPR6`u-k?tC=--ZPWa#G}oQGbgv)$Q~IH<{CvwlB2FsJ0uBk z-dMcvK1os&o^Fr5EkZ@{g#F^B;Hl0FiN_xlzdqg;A<_8-vuTTv;QSYOjPu>%NzT{9 zqns}j&vKp!k90moyze3DKNcS5e2{qPPvWn@1DtmhZ{xffJl!5!JO8@k!<~o2Q=OL; zPjX%qp6EP#9OobUv-E%7>=+pln5J! zye&M{d8Bxz^BQowN)cZ{d^kQ~ZH`Y#c#QM>;z`c`9E15gKV>%U`IF*&KRnX;X7M(s zrM}7VFy{-!hdZAE4{$zCJjwZ6@N|3F?EGI7&vO1eJk@zC@t_Rpzdk(C`9tDW^U8~0 z_rhbG2Z={G&l-*SJO9IM+WGelkoaTpNatzd!=0~%hdEy=UNxV@e+mz9{-Jnie)0F< z>GrVL`413}cOC^#b>3b)#d%|RqVrnfJDgX9$2boW&vG6Jk8*x(6z5+xP{x;Gc8rXO zbbeSo#rZaPnDf=*M+-{)7w`b*3F2)EiO0j!?P0O=A0gh=c|Uln^KRnt&fCHhoj)O- z;QSGIjPpv)?~wjO;8D&Ch-WjJZm&oG;IeS{W~_=E5;=i9`q28*wP2RL6W-nE$c zEO@#-EO!3yi}!Ut44&$|pZIX+FTxX@w-t|f-Vh$+{9*B<&dbB2oEH}lDlX&83y*Yu zDTecJQ&K$L>@bi2&i9IUb-n=};CzL6yz_bRbX#^i|LNjc&d0!0oevSOT1xuw1y6MT zym(jVE#WcF>x;)buL6&99x9&TJP01?JWxE-`IYxDf9Dxy)2@%MAu_&$@BruA#DhwU zuY#xBvfKH8As*p;COp-7oOm1OL*a?e`-*pU-W49>ysda&=MCXe&L0sU?)*M@r1KE* zOy_~{Fz44t%KXd7{LYviBO?Nw9~O^yz71|y5$3HjygV`N0C^CRL}&bPx8oo^No zDl75H@EGR{#Z#QmfJZr>AfD;`9eAYk-r`x#JHx}Aw-&EjPWo>E4{%=1#XBzxPq$^U z^DiczSzhAvz*C)H9M1Yg+$a94*S$MjgmYsh~@v7A&z8*Z)c~uwhJQSYj zytsI#^StmF=U3igeX^XNGCR!kKj(+UkJga>x56WxuNDugDgFgK%=s+w6z6g90O!M8 zd@YIZ15dZZw)5{QKHPa5c&hV;;z`b{!xNp~C!XTGI2?z?<_{3hbbje=%-_YIFq^o) ztu5o*3y*ZZQ9P-R_zHNK^UuYPI{yeB;C#Gzrt`Pq>2_Fle0`ihD*3y>Q=PXF53MI2 z0Z(*ZO}wh}vhWz^#l$0==YdB#zw{R8-^O{m*ROem9vz)hvCpwQ14|+`MQxzWLysUVF^P=!5=Xu1F>P!5E zA(+4ObhByKN0#$F@G$3_#dkE2_+)s1^M&F^ozH;VDr5ff;_(p@KOCOwyuWyY^KS4& z=TD0#Id24yab80_#d#P!%6W+R4(EaJNat4vbN&$xWqha24)grS`A_0Wjl_R|2RL6N zp3+2oF&t&J$3H>5&6DEs@Kif2>m$UwI`0QhbpDcfU*}K5W1K%B9@u5L=L5u3oJYZ9oVORx{6F&U#J`5~djNkTE+XREg3yqV*ivh%mPjSm8xs4zFGcNJ zf?8@xl(=qDv=p_srA1q{7fCD;OKq*CcB*cKqH166@0>Gd<{Tg2-|P1W{Q7x)?lR{+ z=b7`&GtbPOn}iu}Nbx>q{5_7pGUK5XZ(zm)IKH6+w{N3(88iMg!KnX|8F#}1n0C$h zC63=UqFeP<)yhAH?y>ojHFO ziuW<&tvSBC3&&$9-oT94=D4dX$1700j2RE)cvLrz`%*lI8TaORycvHm8vExuF2?%Z z@RsHmGk%WZ>1I5Wdj_fU?nr}#88zLevYhjV;3#rv4?NgR(d<3lOlz>N3e_)s(6 zisEI=cnrrUneplr&tb;PaNK3a3sL+!F2?$EaeSE>e>{@vH{;pxmgW~Teu3hv%=k%; zFB`%2rBQsE8UKajLq~CZ4aNJI@h{Bv&G@GjZ(zp9ar~|s|A^vc%y>_ZcOT99TT(oS z8E?e#p=SI&ieJaYSpT~m4@%(m-=TQA8TaS-F*E*Z1oqD=GyV^}#s1ly$m?IG_%t(q zg5!71cq+yFnDMO~e>H~J|AyiX%=nia_aDpg85A#L#>a6y$c%qP@f>En2ghAzyamOt z<6^8on&Z38cr}WroAFSNA2Z`cD89;!=i>M!GyZru_Rlmkehc1W|HO~u?LSNLK4$z7 z$D=;x_;!jnFyreuzQK$yrg#}MK8xeK&G>kV=P=`gIeyoSccu7sT#WU%{6xc?MhzXiq9&3Ju|2buAz6klb= zLpfgAj2EH!G&64Fcy}}YXeiZh#@+B1$A`;|pQCsKGoH!u-DZ3T#mkuSA2?olDsTT% zisvxnE{;c;@ktcFj*GGWVH_W7#(Pja-Hf;9_%bsdL-AE+{5_5zGvlEYpJv9xI6i3_ zZ(jh#`XqX;;YPfPmTwf@s<>yX2xSUKJ-&wzdFVHnDH=4&qWE=OjP?J_@$P1P6~)ud z_(F~!Gvm`Kj*8Zw%<)TRd^p9Ynekp6_n*nz*NWnO%y?6d?>6JLDBi$~SK_!Uh1V}Z z@iJySAIH1T;`qx!*grYU_&@L#`)8;bzfAG#xESj{!SU`+UO$!M>1OOX- zFL<+@AFGC@e}i=<(36(426m zm@m&c!Vf#9KAQr+s57a0%#XniS6pbYyBVx(yb5lle%FR#mmBIO&AlQ2s5Mz%LId03 zm$ziYtY2?C>P*{V!wCGAVbe7Dm7foL;jggfG=BLL82)~{dmE?CW8dlpzj9e&A3ac# zh*amvq-Qx{%`UK}y-B)W*;@Y){+?W-FRqrgeibx_Noali{l4PuJ9La`7t=nbLrh19 z^A7&Xs3Rrb;a&k9Vc!~5sUP-vR46^wECo;SyOK4F8P8D#jOQ?4 z`+-T5qP^^&?ttG7i`fDD-Yd>!JC+Q;EbVF^?QlUGzd{@EQ*_BQN#rraCM_yKf1`k9 zl4G$Jok%1=@9fKJN_ntLp{21})i9KAw0&zvRf^Up{ z>%pvZ1}LRLrhtsBZ3ghx;5z~Pv%WCEUrDM{W(YWtm1uwr4f-1(9~=tv`}%lgwKmMR z+B6U|0!?MZ%+RKkn0Pe4h8dvE^8?ub3D{O8G&h%1pET9xjF{YL(hO5xo1ew})d$Qn z!{pZHGcjpsJ~qs)X{vJuiTN5$d&6XC(?rY!G}R6Btu|%EbVB2Am>Jr<-fz`j6HV6F zI0kui_0}@kke|ft@bjYnX|AJNCC@*-A8+*P_)Wg#ak+5o3mYPPs_N6ClB+f5@}^ux4S8P6JCut?Lj{y)mr)JJv^gZk zhGsLEm>q?TY`e7lTI5BTzOqtC<}>6vEfYj;M%j~O5kt<=vYE(PC~NB0CutchvNuXU zlEFsK!CF2}x5hzjl-HJGMei7Lpq58P+EH#Jnb(j#wOl3g@17uCBm)fDSj%xDccbh} zvZNs+v}_@A0m?cg3mCGZmZ2gCqqKvBu^6O{mly|{>?K$=_qm^zXVR?xDUC9XB#*Rb zQ`AWNLFD5eAipGOH@5JWmeWKYLphWr_s=mcJBeI_vY~E$mzGsTPCyw*(%)!(ot8O8 zwn2ICD|PJ5(elq!tM-a04}gT8Owwknm|SR9Qa0W%Bek3@@=|w@V@bYaY++9=`-uDn zWjx71L$=qlwn!(+vLw0c=33?#*$3sb#aMN)k+Zs%f9a^+p4-P%1d8j|M1A1uH_+-l~8Ub$=7xhv}|F> zO4h70R7a;so*P{t&tS>}Co!y|tCqP)+LP~i<2Lcgj?v;h$+ZY`m8M+0C(3J?SLAS% zkG{a1#f(-1w7mMO)gw(%9wEs&eYD&vG6>~Ll6-!B@QE6Qvqk>b8RS@!JYKJ8*+=9N zl<_2s8{2t6%i1DWp)3m$dN56!B4Q?^@hl{>Tbuj4ta`hlxd6uM?af*q6d8f?Cz5<+ zv{=ifBJ-l0L6WPOtmPiC&@>!pO&A9{I?^>fx7i) zlhn9rCo&UdeUf~odPU1hB3GacAj#KUyS4NZITmI1e5{?X<5p{VW`{L0TA)lL$;ZsK z32Hlk5E+K@OOkxd4A42JiG0}s9ez{GA4OJ0xr8M5(mpLe6`2d=NRV*EZqufZ zm>ccE#8WmN?Q6BHEpjKyvLuTbRnONlzsPwgpUqRFeX5p!ZL_NW2<35-d;|^9a;M1p zDA$rKY_uM)zu|?CE3Lj1!X+O<&4Z z(CC+4TDA~*p)JTdBnudFotB{@e@1C1$!E?lwR}#u;HZ`qlsD&K)tqyZmM28^Lb;11 zS3OwEZ$#EYIgccdp3YiM6qz680FrzyQD4h8B5$?<8Kqkf)3SodUr`n&$+Z{O^7Sv) zD4&lq>ocsK=b&ff)hzJ4$U!LglH{>_Ma%UfV^A(6$*nINp>j?USsdkHlEKE_T&;6< z5P7dP$QY9O4Y^XwcSRmVS&SrKx6jZrhsb3p@49GYCTVkdv(-Q2(PVOPSW3~x}=uxi#®e33B7`>hOL~cO& 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

gd3`^j;k; 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 N2<-C!E9Lk0^}p!yLLdMD literal 0 HcmV?d00001 diff --git a/lib/windows/bin/sdl2-config b/lib/windows/bin/sdl2-config new file mode 100755 index 0000000..35e5936 --- /dev/null +++ b/lib/windows/bin/sdl2-config @@ -0,0 +1,65 @@ +#!/bin/sh + +# Get the canonical path of the folder containing this script +bindir=`cd -P -- "\`dirname -- "$0"\`" && printf '%s\n' "\`pwd -P\`"` + +# Calculate the canonical path of the prefix, relative to the folder of this script +prefix=`cd -P -- "$bindir/.." && printf '%s\n' "\`pwd -P\`"` +exec_prefix=${prefix}/bin +exec_prefix_set=no +libdir=${prefix}/lib + +#usage="\ +#Usage: $0 [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--cflags] [--libs]" +usage="\ +Usage: $0 [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--cflags] [--libs] [--static-libs]" + +if test $# -eq 0; then + echo "${usage}" 1>&2 + exit 1 +fi + +while test $# -gt 0; do + case "$1" in + -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + case $1 in + --prefix=*) + prefix=$optarg + if test $exec_prefix_set = no ; then + exec_prefix=$optarg + fi + ;; + --prefix) + echo $prefix + ;; + --exec-prefix=*) + exec_prefix=$optarg + exec_prefix_set=yes + ;; + --exec-prefix) + echo $exec_prefix + ;; + --version) + echo 2.32.10 + ;; + --cflags) + echo -I${prefix}/include/SDL2 -Dmain=SDL_main + ;; + --libs) + echo -L${prefix}/lib -lmingw32 -lSDL2main -lSDL2 -mwindows + ;; + --static-libs) +# --libs|--static-libs) + sdl_static_libs=$(echo "-lmingw32 -lSDL2main -lSDL2 -mwindows -Wl,--dynamicbase -Wl,--nxcompat -Wl,--high-entropy-va -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lsetupapi -lversion -luuid" | sed -E "s#-lSDL2[ $]#$libdir/libSDL2.a #g") + echo -L${prefix}/lib $sdl_static_libs + ;; + *) + echo "${usage}" 1>&2 + exit 1 + ;; + esac + shift +done diff --git a/lib/windows/bin/visualinfo.exe b/lib/windows/bin/visualinfo.exe new file mode 100755 index 0000000000000000000000000000000000000000..1a6714cc665ae7fd4cdc0f205fbe9bd9f3cffe99 GIT binary patch literal 350208 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

i5n`P_;XPMAr}KP9IF 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 SJ;C621ex~(JX`+9{`@a@pi>|K literal 0 HcmV?d00001 diff --git a/lib/windows/include/GL/eglew.h b/lib/windows/include/GL/eglew.h new file mode 100644 index 0000000..daca63c --- /dev/null +++ b/lib/windows/include/GL/eglew.h @@ -0,0 +1,3332 @@ +/* +** The OpenGL Extension Wrangler Library +** Copyright (C) 2008-2025, Nigel Stewart +** Copyright (C) 2002-2008, Milan Ikits +** Copyright (C) 2002-2008, Marcelo E. Magallon +** Copyright (C) 2002, Lev Povalahev +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are met: +** +** * Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** * The name of the author may be used to endorse or promote products +** derived from this software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +** THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* + * Mesa 3-D graphics library + * Version: 7.0 + * + * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* +** Copyright (c) 2007 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +#ifndef __eglew_h__ +#define __eglew_h__ +#define __EGLEW_H__ + +#ifdef __eglext_h_ +#error eglext.h included before eglew.h +#endif + +#if defined(__egl_h_) +#error egl.h included before eglew.h +#endif + +#define __eglext_h_ + +#define __egl_h_ + +#ifndef EGLAPIENTRY +#define EGLAPIENTRY +#endif +#ifndef EGLAPI +#define EGLAPI extern +#endif + +/* EGL Types */ +#include + +#include +#include + +#ifndef GLEW_INCLUDE +# include +#else +# include GLEW_INCLUDE +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef int32_t EGLint; + +typedef unsigned int EGLBoolean; +typedef void *EGLDisplay; +typedef void *EGLConfig; +typedef void *EGLSurface; +typedef void *EGLContext; +typedef void (*__eglMustCastToProperFunctionPointerType)(void); + +typedef unsigned int EGLenum; +typedef void *EGLClientBuffer; + +typedef void *EGLSync; +typedef intptr_t EGLAttrib; +typedef khronos_utime_nanoseconds_t EGLTime; +typedef void *EGLImage; + +typedef void *EGLSyncKHR; +typedef intptr_t EGLAttribKHR; +typedef void *EGLLabelKHR; +typedef void *EGLObjectKHR; +typedef void (EGLAPIENTRY *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message); +typedef khronos_utime_nanoseconds_t EGLTimeKHR; +typedef void *EGLImageKHR; +typedef void *EGLStreamKHR; +typedef khronos_uint64_t EGLuint64KHR; +typedef int EGLNativeFileDescriptorKHR; +typedef khronos_ssize_t EGLsizeiANDROID; +typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize); +typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize); +typedef void *EGLDeviceEXT; +typedef void *EGLOutputLayerEXT; +typedef void *EGLOutputPortEXT; +typedef void *EGLSyncNV; +typedef khronos_utime_nanoseconds_t EGLTimeNV; +typedef khronos_utime_nanoseconds_t EGLuint64NV; +typedef khronos_stime_nanoseconds_t EGLnsecsANDROID; + +struct EGLClientPixmapHI; +struct AHardwareBuffer; + +/* Wayland types for WL_bind_wayland_display purposes */ +struct wl_buffer; +struct wl_display; +struct wl_resource; + +EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname); +/* ---------------------------- EGL_VERSION_1_0 ---------------------------- */ + +#ifndef EGL_VERSION_1_0 +#define EGL_VERSION_1_0 1 + +#define EGL_DONT_CARE EGL_CAST(EGLint,-1) +#define EGL_NO_CONTEXT EGL_CAST(EGLContext,0) +#define EGL_NO_DISPLAY EGL_CAST(EGLDisplay,0) +#define EGL_NO_SURFACE EGL_CAST(EGLSurface,0) +#define EGL_FALSE 0 +#define EGL_PBUFFER_BIT 0x0001 +#define EGL_TRUE 1 +#define EGL_PIXMAP_BIT 0x0002 +#define EGL_WINDOW_BIT 0x0004 +#define EGL_SUCCESS 0x3000 +#define EGL_NOT_INITIALIZED 0x3001 +#define EGL_BAD_ACCESS 0x3002 +#define EGL_BAD_ALLOC 0x3003 +#define EGL_BAD_ATTRIBUTE 0x3004 +#define EGL_BAD_CONFIG 0x3005 +#define EGL_BAD_CONTEXT 0x3006 +#define EGL_BAD_CURRENT_SURFACE 0x3007 +#define EGL_BAD_DISPLAY 0x3008 +#define EGL_BAD_MATCH 0x3009 +#define EGL_BAD_NATIVE_PIXMAP 0x300A +#define EGL_BAD_NATIVE_WINDOW 0x300B +#define EGL_BAD_PARAMETER 0x300C +#define EGL_BAD_SURFACE 0x300D +#define EGL_BUFFER_SIZE 0x3020 +#define EGL_ALPHA_SIZE 0x3021 +#define EGL_BLUE_SIZE 0x3022 +#define EGL_GREEN_SIZE 0x3023 +#define EGL_RED_SIZE 0x3024 +#define EGL_DEPTH_SIZE 0x3025 +#define EGL_STENCIL_SIZE 0x3026 +#define EGL_CONFIG_CAVEAT 0x3027 +#define EGL_CONFIG_ID 0x3028 +#define EGL_LEVEL 0x3029 +#define EGL_MAX_PBUFFER_HEIGHT 0x302A +#define EGL_MAX_PBUFFER_PIXELS 0x302B +#define EGL_MAX_PBUFFER_WIDTH 0x302C +#define EGL_NATIVE_RENDERABLE 0x302D +#define EGL_NATIVE_VISUAL_ID 0x302E +#define EGL_NATIVE_VISUAL_TYPE 0x302F +#define EGL_SAMPLES 0x3031 +#define EGL_SAMPLE_BUFFERS 0x3032 +#define EGL_SURFACE_TYPE 0x3033 +#define EGL_TRANSPARENT_TYPE 0x3034 +#define EGL_TRANSPARENT_BLUE_VALUE 0x3035 +#define EGL_TRANSPARENT_GREEN_VALUE 0x3036 +#define EGL_TRANSPARENT_RED_VALUE 0x3037 +#define EGL_NONE 0x3038 +#define EGL_SLOW_CONFIG 0x3050 +#define EGL_NON_CONFORMANT_CONFIG 0x3051 +#define EGL_TRANSPARENT_RGB 0x3052 +#define EGL_VENDOR 0x3053 +#define EGL_VERSION 0x3054 +#define EGL_EXTENSIONS 0x3055 +#define EGL_HEIGHT 0x3056 +#define EGL_WIDTH 0x3057 +#define EGL_LARGEST_PBUFFER 0x3058 +#define EGL_DRAW 0x3059 +#define EGL_READ 0x305A +#define EGL_CORE_NATIVE_ENGINE 0x305B + +typedef EGLBoolean ( * PFNEGLCHOOSECONFIGPROC) (EGLDisplay dpy, const EGLint * attrib_list, EGLConfig * configs, EGLint config_size, EGLint * num_config); +typedef EGLBoolean ( * PFNEGLCOPYBUFFERSPROC) (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target); +typedef EGLContext ( * PFNEGLCREATECONTEXTPROC) (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint * attrib_list); +typedef EGLSurface ( * PFNEGLCREATEPBUFFERSURFACEPROC) (EGLDisplay dpy, EGLConfig config, const EGLint * attrib_list); +typedef EGLSurface ( * PFNEGLCREATEPIXMAPSURFACEPROC) (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint * attrib_list); +typedef EGLSurface ( * PFNEGLCREATEWINDOWSURFACEPROC) (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint * attrib_list); +typedef EGLBoolean ( * PFNEGLDESTROYCONTEXTPROC) (EGLDisplay dpy, EGLContext ctx); +typedef EGLBoolean ( * PFNEGLDESTROYSURFACEPROC) (EGLDisplay dpy, EGLSurface surface); +typedef EGLBoolean ( * PFNEGLGETCONFIGATTRIBPROC) (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint * value); +typedef EGLBoolean ( * PFNEGLGETCONFIGSPROC) (EGLDisplay dpy, EGLConfig * configs, EGLint config_size, EGLint * num_config); +typedef EGLDisplay ( * PFNEGLGETCURRENTDISPLAYPROC) ( void ); +typedef EGLSurface ( * PFNEGLGETCURRENTSURFACEPROC) (EGLint readdraw); +typedef EGLDisplay ( * PFNEGLGETDISPLAYPROC) (EGLNativeDisplayType display_id); +typedef EGLint ( * PFNEGLGETERRORPROC) ( void ); +typedef EGLBoolean ( * PFNEGLINITIALIZEPROC) (EGLDisplay dpy, EGLint * major, EGLint * minor); +typedef EGLBoolean ( * PFNEGLMAKECURRENTPROC) (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); +typedef EGLBoolean ( * PFNEGLQUERYCONTEXTPROC) (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint * value); +typedef const char * ( * PFNEGLQUERYSTRINGPROC) (EGLDisplay dpy, EGLint name); +typedef EGLBoolean ( * PFNEGLQUERYSURFACEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint * value); +typedef EGLBoolean ( * PFNEGLSWAPBUFFERSPROC) (EGLDisplay dpy, EGLSurface surface); +typedef EGLBoolean ( * PFNEGLTERMINATEPROC) (EGLDisplay dpy); +typedef EGLBoolean ( * PFNEGLWAITGLPROC) ( void ); +typedef EGLBoolean ( * PFNEGLWAITNATIVEPROC) (EGLint engine); + +#define eglChooseConfig EGLEW_GET_FUN(__eglewChooseConfig) +#define eglCopyBuffers EGLEW_GET_FUN(__eglewCopyBuffers) +#define eglCreateContext EGLEW_GET_FUN(__eglewCreateContext) +#define eglCreatePbufferSurface EGLEW_GET_FUN(__eglewCreatePbufferSurface) +#define eglCreatePixmapSurface EGLEW_GET_FUN(__eglewCreatePixmapSurface) +#define eglCreateWindowSurface EGLEW_GET_FUN(__eglewCreateWindowSurface) +#define eglDestroyContext EGLEW_GET_FUN(__eglewDestroyContext) +#define eglDestroySurface EGLEW_GET_FUN(__eglewDestroySurface) +#define eglGetConfigAttrib EGLEW_GET_FUN(__eglewGetConfigAttrib) +#define eglGetConfigs EGLEW_GET_FUN(__eglewGetConfigs) +#define eglGetCurrentDisplay EGLEW_GET_FUN(__eglewGetCurrentDisplay) +#define eglGetCurrentSurface EGLEW_GET_FUN(__eglewGetCurrentSurface) +#define eglGetDisplay EGLEW_GET_FUN(__eglewGetDisplay) +#define eglGetError EGLEW_GET_FUN(__eglewGetError) +#define eglInitialize EGLEW_GET_FUN(__eglewInitialize) +#define eglMakeCurrent EGLEW_GET_FUN(__eglewMakeCurrent) +#define eglQueryContext EGLEW_GET_FUN(__eglewQueryContext) +#define eglQueryString EGLEW_GET_FUN(__eglewQueryString) +#define eglQuerySurface EGLEW_GET_FUN(__eglewQuerySurface) +#define eglSwapBuffers EGLEW_GET_FUN(__eglewSwapBuffers) +#define eglTerminate EGLEW_GET_FUN(__eglewTerminate) +#define eglWaitGL EGLEW_GET_FUN(__eglewWaitGL) +#define eglWaitNative EGLEW_GET_FUN(__eglewWaitNative) + +#define EGLEW_VERSION_1_0 EGLEW_GET_VAR(__EGLEW_VERSION_1_0) + +#endif /* EGL_VERSION_1_0 */ + +/* ---------------------------- EGL_VERSION_1_1 ---------------------------- */ + +#ifndef EGL_VERSION_1_1 +#define EGL_VERSION_1_1 1 + +#define EGL_CONTEXT_LOST 0x300E +#define EGL_BIND_TO_TEXTURE_RGB 0x3039 +#define EGL_BIND_TO_TEXTURE_RGBA 0x303A +#define EGL_MIN_SWAP_INTERVAL 0x303B +#define EGL_MAX_SWAP_INTERVAL 0x303C +#define EGL_NO_TEXTURE 0x305C +#define EGL_TEXTURE_RGB 0x305D +#define EGL_TEXTURE_RGBA 0x305E +#define EGL_TEXTURE_2D 0x305F +#define EGL_TEXTURE_FORMAT 0x3080 +#define EGL_TEXTURE_TARGET 0x3081 +#define EGL_MIPMAP_TEXTURE 0x3082 +#define EGL_MIPMAP_LEVEL 0x3083 +#define EGL_BACK_BUFFER 0x3084 + +typedef EGLBoolean ( * PFNEGLBINDTEXIMAGEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint buffer); +typedef EGLBoolean ( * PFNEGLRELEASETEXIMAGEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint buffer); +typedef EGLBoolean ( * PFNEGLSURFACEATTRIBPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value); +typedef EGLBoolean ( * PFNEGLSWAPINTERVALPROC) (EGLDisplay dpy, EGLint interval); + +#define eglBindTexImage EGLEW_GET_FUN(__eglewBindTexImage) +#define eglReleaseTexImage EGLEW_GET_FUN(__eglewReleaseTexImage) +#define eglSurfaceAttrib EGLEW_GET_FUN(__eglewSurfaceAttrib) +#define eglSwapInterval EGLEW_GET_FUN(__eglewSwapInterval) + +#define EGLEW_VERSION_1_1 EGLEW_GET_VAR(__EGLEW_VERSION_1_1) + +#endif /* EGL_VERSION_1_1 */ + +/* ---------------------------- EGL_VERSION_1_2 ---------------------------- */ + +#ifndef EGL_VERSION_1_2 +#define EGL_VERSION_1_2 1 + +#define EGL_UNKNOWN EGL_CAST(EGLint,-1) +#define EGL_OPENGL_ES_BIT 0x0001 +#define EGL_OPENVG_BIT 0x0002 +#define EGL_LUMINANCE_SIZE 0x303D +#define EGL_ALPHA_MASK_SIZE 0x303E +#define EGL_COLOR_BUFFER_TYPE 0x303F +#define EGL_RENDERABLE_TYPE 0x3040 +#define EGL_SINGLE_BUFFER 0x3085 +#define EGL_RENDER_BUFFER 0x3086 +#define EGL_COLORSPACE 0x3087 +#define EGL_ALPHA_FORMAT 0x3088 +#define EGL_COLORSPACE_sRGB 0x3089 +#define EGL_COLORSPACE_LINEAR 0x308A +#define EGL_ALPHA_FORMAT_NONPRE 0x308B +#define EGL_ALPHA_FORMAT_PRE 0x308C +#define EGL_CLIENT_APIS 0x308D +#define EGL_RGB_BUFFER 0x308E +#define EGL_LUMINANCE_BUFFER 0x308F +#define EGL_HORIZONTAL_RESOLUTION 0x3090 +#define EGL_VERTICAL_RESOLUTION 0x3091 +#define EGL_PIXEL_ASPECT_RATIO 0x3092 +#define EGL_SWAP_BEHAVIOR 0x3093 +#define EGL_BUFFER_PRESERVED 0x3094 +#define EGL_BUFFER_DESTROYED 0x3095 +#define EGL_OPENVG_IMAGE 0x3096 +#define EGL_CONTEXT_CLIENT_TYPE 0x3097 +#define EGL_OPENGL_ES_API 0x30A0 +#define EGL_OPENVG_API 0x30A1 +#define EGL_DISPLAY_SCALING 10000 + +typedef EGLBoolean ( * PFNEGLBINDAPIPROC) (EGLenum api); +typedef EGLSurface ( * PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC) (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint * attrib_list); +typedef EGLenum ( * PFNEGLQUERYAPIPROC) ( void ); +typedef EGLBoolean ( * PFNEGLRELEASETHREADPROC) ( void ); +typedef EGLBoolean ( * PFNEGLWAITCLIENTPROC) ( void ); + +#define eglBindAPI EGLEW_GET_FUN(__eglewBindAPI) +#define eglCreatePbufferFromClientBuffer EGLEW_GET_FUN(__eglewCreatePbufferFromClientBuffer) +#define eglQueryAPI EGLEW_GET_FUN(__eglewQueryAPI) +#define eglReleaseThread EGLEW_GET_FUN(__eglewReleaseThread) +#define eglWaitClient EGLEW_GET_FUN(__eglewWaitClient) + +#define EGLEW_VERSION_1_2 EGLEW_GET_VAR(__EGLEW_VERSION_1_2) + +#endif /* EGL_VERSION_1_2 */ + +/* ---------------------------- EGL_VERSION_1_3 ---------------------------- */ + +#ifndef EGL_VERSION_1_3 +#define EGL_VERSION_1_3 1 + +#define EGL_OPENGL_ES2_BIT 0x0004 +#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 +#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 +#define EGL_MATCH_NATIVE_PIXMAP 0x3041 +#define EGL_CONFORMANT 0x3042 +#define EGL_VG_COLORSPACE 0x3087 +#define EGL_VG_ALPHA_FORMAT 0x3088 +#define EGL_VG_COLORSPACE_sRGB 0x3089 +#define EGL_VG_COLORSPACE_LINEAR 0x308A +#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B +#define EGL_VG_ALPHA_FORMAT_PRE 0x308C +#define EGL_CONTEXT_CLIENT_VERSION 0x3098 + +#define EGLEW_VERSION_1_3 EGLEW_GET_VAR(__EGLEW_VERSION_1_3) + +#endif /* EGL_VERSION_1_3 */ + +/* ---------------------------- EGL_VERSION_1_4 ---------------------------- */ + +#ifndef EGL_VERSION_1_4 +#define EGL_VERSION_1_4 1 + +#define EGL_DEFAULT_DISPLAY EGL_CAST(EGLNativeDisplayType,0) +#define EGL_OPENGL_BIT 0x0008 +#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 +#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 +#define EGL_MULTISAMPLE_RESOLVE 0x3099 +#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A +#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B +#define EGL_OPENGL_API 0x30A2 + +typedef EGLContext ( * PFNEGLGETCURRENTCONTEXTPROC) ( void ); + +#define eglGetCurrentContext EGLEW_GET_FUN(__eglewGetCurrentContext) + +#define EGLEW_VERSION_1_4 EGLEW_GET_VAR(__EGLEW_VERSION_1_4) + +#endif /* EGL_VERSION_1_4 */ + +/* ---------------------------- EGL_VERSION_1_5 ---------------------------- */ + +#ifndef EGL_VERSION_1_5 +#define EGL_VERSION_1_5 1 + +#define EGL_NO_IMAGE EGL_CAST(EGLImage,0) +#define EGL_NO_SYNC EGL_CAST(EGLSync,0) +#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001 +#define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001 +#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002 +#define EGL_OPENGL_ES3_BIT 0x00000040 +#define EGL_GL_COLORSPACE_SRGB 0x3089 +#define EGL_GL_COLORSPACE_LINEAR 0x308A +#define EGL_CONTEXT_MAJOR_VERSION 0x3098 +#define EGL_CL_EVENT_HANDLE 0x309C +#define EGL_GL_COLORSPACE 0x309D +#define EGL_GL_TEXTURE_2D 0x30B1 +#define EGL_GL_TEXTURE_3D 0x30B2 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8 +#define EGL_GL_RENDERBUFFER 0x30B9 +#define EGL_GL_TEXTURE_LEVEL 0x30BC +#define EGL_GL_TEXTURE_ZOFFSET 0x30BD +#define EGL_IMAGE_PRESERVED 0x30D2 +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0 +#define EGL_SYNC_STATUS 0x30F1 +#define EGL_SIGNALED 0x30F2 +#define EGL_UNSIGNALED 0x30F3 +#define EGL_TIMEOUT_EXPIRED 0x30F5 +#define EGL_CONDITION_SATISFIED 0x30F6 +#define EGL_SYNC_TYPE 0x30F7 +#define EGL_SYNC_CONDITION 0x30F8 +#define EGL_SYNC_FENCE 0x30F9 +#define EGL_CONTEXT_MINOR_VERSION 0x30FB +#define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD +#define EGL_SYNC_CL_EVENT 0x30FE +#define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF +#define EGL_CONTEXT_OPENGL_DEBUG 0x31B0 +#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1 +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2 +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD +#define EGL_NO_RESET_NOTIFICATION 0x31BE +#define EGL_LOSE_CONTEXT_ON_RESET 0x31BF +#define EGL_FOREVER 0xFFFFFFFFFFFFFFFF + +typedef EGLint ( * PFNEGLCLIENTWAITSYNCPROC) (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout); +typedef EGLImage ( * PFNEGLCREATEIMAGEPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib * attrib_list); +typedef EGLSurface ( * PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC) (EGLDisplay dpy, EGLConfig config, void * native_pixmap, const EGLAttrib * attrib_list); +typedef EGLSurface ( * PFNEGLCREATEPLATFORMWINDOWSURFACEPROC) (EGLDisplay dpy, EGLConfig config, void * native_window, const EGLAttrib * attrib_list); +typedef EGLSync ( * PFNEGLCREATESYNCPROC) (EGLDisplay dpy, EGLenum type, const EGLAttrib * attrib_list); +typedef EGLBoolean ( * PFNEGLDESTROYIMAGEPROC) (EGLDisplay dpy, EGLImage image); +typedef EGLBoolean ( * PFNEGLDESTROYSYNCPROC) (EGLDisplay dpy, EGLSync sync); +typedef EGLDisplay ( * PFNEGLGETPLATFORMDISPLAYPROC) (EGLenum platform, void * native_display, const EGLAttrib * attrib_list); +typedef EGLBoolean ( * PFNEGLGETSYNCATTRIBPROC) (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib * value); +typedef EGLBoolean ( * PFNEGLWAITSYNCPROC) (EGLDisplay dpy, EGLSync sync, EGLint flags); + +#define eglClientWaitSync EGLEW_GET_FUN(__eglewClientWaitSync) +#define eglCreateImage EGLEW_GET_FUN(__eglewCreateImage) +#define eglCreatePlatformPixmapSurface EGLEW_GET_FUN(__eglewCreatePlatformPixmapSurface) +#define eglCreatePlatformWindowSurface EGLEW_GET_FUN(__eglewCreatePlatformWindowSurface) +#define eglCreateSync EGLEW_GET_FUN(__eglewCreateSync) +#define eglDestroyImage EGLEW_GET_FUN(__eglewDestroyImage) +#define eglDestroySync EGLEW_GET_FUN(__eglewDestroySync) +#define eglGetPlatformDisplay EGLEW_GET_FUN(__eglewGetPlatformDisplay) +#define eglGetSyncAttrib EGLEW_GET_FUN(__eglewGetSyncAttrib) +#define eglWaitSync EGLEW_GET_FUN(__eglewWaitSync) + +#define EGLEW_VERSION_1_5 EGLEW_GET_VAR(__EGLEW_VERSION_1_5) + +#endif /* EGL_VERSION_1_5 */ + +/* ------------------------ EGL_ANDROID_GLES_layers ------------------------ */ + +#ifndef EGL_ANDROID_GLES_layers +#define EGL_ANDROID_GLES_layers 1 + +#define EGLEW_ANDROID_GLES_layers EGLEW_GET_VAR(__EGLEW_ANDROID_GLES_layers) + +#endif /* EGL_ANDROID_GLES_layers */ + +/* ------------------------- EGL_ANDROID_blob_cache ------------------------ */ + +#ifndef EGL_ANDROID_blob_cache +#define EGL_ANDROID_blob_cache 1 + +typedef void ( * PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); + +#define eglSetBlobCacheFuncsANDROID EGLEW_GET_FUN(__eglewSetBlobCacheFuncsANDROID) + +#define EGLEW_ANDROID_blob_cache EGLEW_GET_VAR(__EGLEW_ANDROID_blob_cache) + +#endif /* EGL_ANDROID_blob_cache */ + +/* ---------------- EGL_ANDROID_create_native_client_buffer ---------------- */ + +#ifndef EGL_ANDROID_create_native_client_buffer +#define EGL_ANDROID_create_native_client_buffer 1 + +#define EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID 0x00000001 +#define EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID 0x00000002 +#define EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID 0x00000004 +#define EGL_NATIVE_BUFFER_USAGE_ANDROID 0x3143 + +typedef EGLClientBuffer ( * PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC) (const EGLint* attrib_list); + +#define eglCreateNativeClientBufferANDROID EGLEW_GET_FUN(__eglewCreateNativeClientBufferANDROID) + +#define EGLEW_ANDROID_create_native_client_buffer EGLEW_GET_VAR(__EGLEW_ANDROID_create_native_client_buffer) + +#endif /* EGL_ANDROID_create_native_client_buffer */ + +/* --------------------- EGL_ANDROID_framebuffer_target -------------------- */ + +#ifndef EGL_ANDROID_framebuffer_target +#define EGL_ANDROID_framebuffer_target 1 + +#define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147 + +#define EGLEW_ANDROID_framebuffer_target EGLEW_GET_VAR(__EGLEW_ANDROID_framebuffer_target) + +#endif /* EGL_ANDROID_framebuffer_target */ + +/* ----------------- EGL_ANDROID_front_buffer_auto_refresh ----------------- */ + +#ifndef EGL_ANDROID_front_buffer_auto_refresh +#define EGL_ANDROID_front_buffer_auto_refresh 1 + +#define EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID 0x314C + +#define EGLEW_ANDROID_front_buffer_auto_refresh EGLEW_GET_VAR(__EGLEW_ANDROID_front_buffer_auto_refresh) + +#endif /* EGL_ANDROID_front_buffer_auto_refresh */ + +/* -------------------- EGL_ANDROID_get_frame_timestamps ------------------- */ + +#ifndef EGL_ANDROID_get_frame_timestamps +#define EGL_ANDROID_get_frame_timestamps 1 + +#define EGL_TIMESTAMP_INVALID_ANDROID EGL_CAST(EGLnsecsANDROID,-1) +#define EGL_TIMESTAMP_PENDING_ANDROID EGL_CAST(EGLnsecsANDROID,-2) +#define EGL_TIMESTAMPS_ANDROID 0x3430 +#define EGL_COMPOSITE_DEADLINE_ANDROID 0x3431 +#define EGL_COMPOSITE_INTERVAL_ANDROID 0x3432 +#define EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID 0x3433 +#define EGL_REQUESTED_PRESENT_TIME_ANDROID 0x3434 +#define EGL_RENDERING_COMPLETE_TIME_ANDROID 0x3435 +#define EGL_COMPOSITION_LATCH_TIME_ANDROID 0x3436 +#define EGL_FIRST_COMPOSITION_START_TIME_ANDROID 0x3437 +#define EGL_LAST_COMPOSITION_START_TIME_ANDROID 0x3438 +#define EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID 0x3439 +#define EGL_DISPLAY_PRESENT_TIME_ANDROID 0x343A +#define EGL_DEQUEUE_READY_TIME_ANDROID 0x343B +#define EGL_READS_DONE_TIME_ANDROID 0x343C + +typedef EGLBoolean ( * PFNEGLGETCOMPOSITORTIMINGANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint* names, EGLnsecsANDROID* values); +typedef EGLBoolean ( * PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint name); +typedef EGLBoolean ( * PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint timestamp); +typedef EGLBoolean ( * PFNEGLGETFRAMETIMESTAMPSANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint* timestamps, EGLnsecsANDROID* values); +typedef EGLBoolean ( * PFNEGLGETNEXTFRAMEIDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR* frameId); + +#define eglGetCompositorTimingANDROID EGLEW_GET_FUN(__eglewGetCompositorTimingANDROID) +#define eglGetCompositorTimingSupportedANDROID EGLEW_GET_FUN(__eglewGetCompositorTimingSupportedANDROID) +#define eglGetFrameTimestampSupportedANDROID EGLEW_GET_FUN(__eglewGetFrameTimestampSupportedANDROID) +#define eglGetFrameTimestampsANDROID EGLEW_GET_FUN(__eglewGetFrameTimestampsANDROID) +#define eglGetNextFrameIdANDROID EGLEW_GET_FUN(__eglewGetNextFrameIdANDROID) + +#define EGLEW_ANDROID_get_frame_timestamps EGLEW_GET_VAR(__EGLEW_ANDROID_get_frame_timestamps) + +#endif /* EGL_ANDROID_get_frame_timestamps */ + +/* ------------------ EGL_ANDROID_get_native_client_buffer ----------------- */ + +#ifndef EGL_ANDROID_get_native_client_buffer +#define EGL_ANDROID_get_native_client_buffer 1 + +typedef EGLClientBuffer ( * PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC) (const struct AHardwareBuffer* buffer); + +#define eglGetNativeClientBufferANDROID EGLEW_GET_FUN(__eglewGetNativeClientBufferANDROID) + +#define EGLEW_ANDROID_get_native_client_buffer EGLEW_GET_VAR(__EGLEW_ANDROID_get_native_client_buffer) + +#endif /* EGL_ANDROID_get_native_client_buffer */ + +/* -------------------- EGL_ANDROID_image_native_buffer -------------------- */ + +#ifndef EGL_ANDROID_image_native_buffer +#define EGL_ANDROID_image_native_buffer 1 + +#define EGL_NATIVE_BUFFER_ANDROID 0x3140 + +#define EGLEW_ANDROID_image_native_buffer EGLEW_GET_VAR(__EGLEW_ANDROID_image_native_buffer) + +#endif /* EGL_ANDROID_image_native_buffer */ + +/* --------------------- EGL_ANDROID_native_fence_sync --------------------- */ + +#ifndef EGL_ANDROID_native_fence_sync +#define EGL_ANDROID_native_fence_sync 1 + +#define EGL_NO_NATIVE_FENCE_FD_ANDROID -1 +#define EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144 +#define EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145 +#define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146 + +typedef EGLint ( * PFNEGLDUPNATIVEFENCEFDANDROIDPROC) (EGLDisplay dpy, EGLSyncKHR sync); + +#define eglDupNativeFenceFDANDROID EGLEW_GET_FUN(__eglewDupNativeFenceFDANDROID) + +#define EGLEW_ANDROID_native_fence_sync EGLEW_GET_VAR(__EGLEW_ANDROID_native_fence_sync) + +#endif /* EGL_ANDROID_native_fence_sync */ + +/* --------------------- EGL_ANDROID_presentation_time --------------------- */ + +#ifndef EGL_ANDROID_presentation_time +#define EGL_ANDROID_presentation_time 1 + +typedef EGLBoolean ( * PFNEGLPRESENTATIONTIMEANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time); + +#define eglPresentationTimeANDROID EGLEW_GET_FUN(__eglewPresentationTimeANDROID) + +#define EGLEW_ANDROID_presentation_time EGLEW_GET_VAR(__EGLEW_ANDROID_presentation_time) + +#endif /* EGL_ANDROID_presentation_time */ + +/* ------------------------- EGL_ANDROID_recordable ------------------------ */ + +#ifndef EGL_ANDROID_recordable +#define EGL_ANDROID_recordable 1 + +#define EGL_RECORDABLE_ANDROID 0x3142 + +#define EGLEW_ANDROID_recordable EGLEW_GET_VAR(__EGLEW_ANDROID_recordable) + +#endif /* EGL_ANDROID_recordable */ + +/* ----------------------- EGL_ANDROID_telemetry_hint ---------------------- */ + +#ifndef EGL_ANDROID_telemetry_hint +#define EGL_ANDROID_telemetry_hint 1 + +#define EGL_TELEMETRY_HINT_ANDROID 0x3570 + +#define EGLEW_ANDROID_telemetry_hint EGLEW_GET_VAR(__EGLEW_ANDROID_telemetry_hint) + +#endif /* EGL_ANDROID_telemetry_hint */ + +/* ---------------- EGL_ANGLE_d3d_share_handle_client_buffer --------------- */ + +#ifndef EGL_ANGLE_d3d_share_handle_client_buffer +#define EGL_ANGLE_d3d_share_handle_client_buffer 1 + +#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200 + +#define EGLEW_ANGLE_d3d_share_handle_client_buffer EGLEW_GET_VAR(__EGLEW_ANGLE_d3d_share_handle_client_buffer) + +#endif /* EGL_ANGLE_d3d_share_handle_client_buffer */ + +/* -------------------------- EGL_ANGLE_device_d3d ------------------------- */ + +#ifndef EGL_ANGLE_device_d3d +#define EGL_ANGLE_device_d3d 1 + +#define EGL_D3D9_DEVICE_ANGLE 0x33A0 +#define EGL_D3D11_DEVICE_ANGLE 0x33A1 + +#define EGLEW_ANGLE_device_d3d EGLEW_GET_VAR(__EGLEW_ANGLE_device_d3d) + +#endif /* EGL_ANGLE_device_d3d */ + +/* -------------------- EGL_ANGLE_query_surface_pointer -------------------- */ + +#ifndef EGL_ANGLE_query_surface_pointer +#define EGL_ANGLE_query_surface_pointer 1 + +typedef EGLBoolean ( * PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void** value); + +#define eglQuerySurfacePointerANGLE EGLEW_GET_FUN(__eglewQuerySurfacePointerANGLE) + +#define EGLEW_ANGLE_query_surface_pointer EGLEW_GET_VAR(__EGLEW_ANGLE_query_surface_pointer) + +#endif /* EGL_ANGLE_query_surface_pointer */ + +/* ------------- EGL_ANGLE_surface_d3d_texture_2d_share_handle ------------- */ + +#ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle +#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1 + +#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200 + +#define EGLEW_ANGLE_surface_d3d_texture_2d_share_handle EGLEW_GET_VAR(__EGLEW_ANGLE_surface_d3d_texture_2d_share_handle) + +#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */ + +/* ---------------------- EGL_ANGLE_sync_control_rate ---------------------- */ + +#ifndef EGL_ANGLE_sync_control_rate +#define EGL_ANGLE_sync_control_rate 1 + +typedef EGLBoolean ( * PFNEGLGETMSCRATEANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint* numerator, EGLint* denominator); + +#define eglGetMscRateANGLE EGLEW_GET_FUN(__eglewGetMscRateANGLE) + +#define EGLEW_ANGLE_sync_control_rate EGLEW_GET_VAR(__EGLEW_ANGLE_sync_control_rate) + +#endif /* EGL_ANGLE_sync_control_rate */ + +/* ---------------------- EGL_ANGLE_window_fixed_size ---------------------- */ + +#ifndef EGL_ANGLE_window_fixed_size +#define EGL_ANGLE_window_fixed_size 1 + +#define EGL_FIXED_SIZE_ANGLE 0x3201 + +#define EGLEW_ANGLE_window_fixed_size EGLEW_GET_VAR(__EGLEW_ANGLE_window_fixed_size) + +#endif /* EGL_ANGLE_window_fixed_size */ + +/* -------------------------- EGL_ARM_image_format ------------------------- */ + +#ifndef EGL_ARM_image_format +#define EGL_ARM_image_format 1 + +#define EGL_COLOR_COMPONENT_TYPE_UNSIGNED_INTEGER_ARM 0x3287 +#define EGL_COLOR_COMPONENT_TYPE_INTEGER_ARM 0x3288 + +#define EGLEW_ARM_image_format EGLEW_GET_VAR(__EGLEW_ARM_image_format) + +#endif /* EGL_ARM_image_format */ + +/* --------------------- EGL_ARM_implicit_external_sync -------------------- */ + +#ifndef EGL_ARM_implicit_external_sync +#define EGL_ARM_implicit_external_sync 1 + +#define EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM 0x328A + +#define EGLEW_ARM_implicit_external_sync EGLEW_GET_VAR(__EGLEW_ARM_implicit_external_sync) + +#endif /* EGL_ARM_implicit_external_sync */ + +/* ------------------- EGL_ARM_pixmap_multisample_discard ------------------ */ + +#ifndef EGL_ARM_pixmap_multisample_discard +#define EGL_ARM_pixmap_multisample_discard 1 + +#define EGL_DISCARD_SAMPLES_ARM 0x3286 + +#define EGLEW_ARM_pixmap_multisample_discard EGLEW_GET_VAR(__EGLEW_ARM_pixmap_multisample_discard) + +#endif /* EGL_ARM_pixmap_multisample_discard */ + +/* ------------------------- EGL_EXT_bind_to_front ------------------------- */ + +#ifndef EGL_EXT_bind_to_front +#define EGL_EXT_bind_to_front 1 + +#define EGL_FRONT_BUFFER_EXT 0x3464 + +#define EGLEW_EXT_bind_to_front EGLEW_GET_VAR(__EGLEW_EXT_bind_to_front) + +#endif /* EGL_EXT_bind_to_front */ + +/* --------------------------- EGL_EXT_buffer_age -------------------------- */ + +#ifndef EGL_EXT_buffer_age +#define EGL_EXT_buffer_age 1 + +#define EGL_BUFFER_AGE_EXT 0x313D + +#define EGLEW_EXT_buffer_age EGLEW_GET_VAR(__EGLEW_EXT_buffer_age) + +#endif /* EGL_EXT_buffer_age */ + +/* ----------------------- EGL_EXT_client_extensions ----------------------- */ + +#ifndef EGL_EXT_client_extensions +#define EGL_EXT_client_extensions 1 + +#define EGLEW_EXT_client_extensions EGLEW_GET_VAR(__EGLEW_EXT_client_extensions) + +#endif /* EGL_EXT_client_extensions */ + +/* -------------------------- EGL_EXT_client_sync -------------------------- */ + +#ifndef EGL_EXT_client_sync +#define EGL_EXT_client_sync 1 + +#define EGL_SYNC_CLIENT_EXT 0x3364 +#define EGL_SYNC_CLIENT_SIGNAL_EXT 0x3365 + +typedef EGLBoolean ( * PFNEGLCLIENTSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib* attrib_list); + +#define eglClientSignalSyncEXT EGLEW_GET_FUN(__eglewClientSignalSyncEXT) + +#define EGLEW_EXT_client_sync EGLEW_GET_VAR(__EGLEW_EXT_client_sync) + +#endif /* EGL_EXT_client_sync */ + +/* --------------------------- EGL_EXT_compositor -------------------------- */ + +#ifndef EGL_EXT_compositor +#define EGL_EXT_compositor 1 + +#define EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT 0x3460 +#define EGL_EXTERNAL_REF_ID_EXT 0x3461 +#define EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT 0x3462 +#define EGL_COMPOSITOR_KEEP_NEWEST_FRAME_EXT 0x3463 + +typedef EGLBoolean ( * PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC) (EGLint external_win_id); +typedef EGLBoolean ( * PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC) (EGLint external_ref_id, const EGLint* context_attributes, EGLint num_entries); +typedef EGLBoolean ( * PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC) (const EGLint* external_ref_ids, EGLint num_entries); +typedef EGLBoolean ( * PFNEGLCOMPOSITORSETSIZEEXTPROC) (EGLint external_win_id, EGLint width, EGLint height); +typedef EGLBoolean ( * PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC) (EGLint external_win_id, const EGLint* window_attributes, EGLint num_entries); +typedef EGLBoolean ( * PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC) (EGLint external_ref_id, const EGLint* external_win_ids, EGLint num_entries); +typedef EGLBoolean ( * PFNEGLCOMPOSITORSWAPPOLICYEXTPROC) (EGLint external_win_id, EGLint policy); + +#define eglCompositorBindTexWindowEXT EGLEW_GET_FUN(__eglewCompositorBindTexWindowEXT) +#define eglCompositorSetContextAttributesEXT EGLEW_GET_FUN(__eglewCompositorSetContextAttributesEXT) +#define eglCompositorSetContextListEXT EGLEW_GET_FUN(__eglewCompositorSetContextListEXT) +#define eglCompositorSetSizeEXT EGLEW_GET_FUN(__eglewCompositorSetSizeEXT) +#define eglCompositorSetWindowAttributesEXT EGLEW_GET_FUN(__eglewCompositorSetWindowAttributesEXT) +#define eglCompositorSetWindowListEXT EGLEW_GET_FUN(__eglewCompositorSetWindowListEXT) +#define eglCompositorSwapPolicyEXT EGLEW_GET_FUN(__eglewCompositorSwapPolicyEXT) + +#define EGLEW_EXT_compositor EGLEW_GET_VAR(__EGLEW_EXT_compositor) + +#endif /* EGL_EXT_compositor */ + +/* ---------------------- EGL_EXT_config_select_group ---------------------- */ + +#ifndef EGL_EXT_config_select_group +#define EGL_EXT_config_select_group 1 + +#define EGL_CONFIG_SELECT_GROUP_EXT 0x34C0 + +#define EGLEW_EXT_config_select_group EGLEW_GET_VAR(__EGLEW_EXT_config_select_group) + +#endif /* EGL_EXT_config_select_group */ + +/* ------------------- EGL_EXT_create_context_robustness ------------------- */ + +#ifndef EGL_EXT_create_context_robustness +#define EGL_EXT_create_context_robustness 1 + +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138 +#define EGL_NO_RESET_NOTIFICATION_EXT 0x31BE +#define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF + +#define EGLEW_EXT_create_context_robustness EGLEW_GET_VAR(__EGLEW_EXT_create_context_robustness) + +#endif /* EGL_EXT_create_context_robustness */ + +/* -------------------------- EGL_EXT_device_base -------------------------- */ + +#ifndef EGL_EXT_device_base +#define EGL_EXT_device_base 1 + +#define EGL_NO_DEVICE_EXT EGL_CAST(EGLDeviceEXT,0) +#define EGL_BAD_DEVICE_EXT 0x322B +#define EGL_DEVICE_EXT 0x322C + +#define EGLEW_EXT_device_base EGLEW_GET_VAR(__EGLEW_EXT_device_base) + +#endif /* EGL_EXT_device_base */ + +/* --------------------------- EGL_EXT_device_drm -------------------------- */ + +#ifndef EGL_EXT_device_drm +#define EGL_EXT_device_drm 1 + +#define EGL_DRM_DEVICE_FILE_EXT 0x3233 +#define EGL_DRM_MASTER_FD_EXT 0x333C + +#define EGLEW_EXT_device_drm EGLEW_GET_VAR(__EGLEW_EXT_device_drm) + +#endif /* EGL_EXT_device_drm */ + +/* --------------------- EGL_EXT_device_drm_render_node -------------------- */ + +#ifndef EGL_EXT_device_drm_render_node +#define EGL_EXT_device_drm_render_node 1 + +#define EGL_DRM_RENDER_NODE_FILE_EXT 0x3377 + +#define EGLEW_EXT_device_drm_render_node EGLEW_GET_VAR(__EGLEW_EXT_device_drm_render_node) + +#endif /* EGL_EXT_device_drm_render_node */ + +/* ----------------------- EGL_EXT_device_enumeration ---------------------- */ + +#ifndef EGL_EXT_device_enumeration +#define EGL_EXT_device_enumeration 1 + +typedef EGLBoolean ( * PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT* devices, EGLint* num_devices); + +#define eglQueryDevicesEXT EGLEW_GET_FUN(__eglewQueryDevicesEXT) + +#define EGLEW_EXT_device_enumeration EGLEW_GET_VAR(__EGLEW_EXT_device_enumeration) + +#endif /* EGL_EXT_device_enumeration */ + +/* ------------------------- EGL_EXT_device_openwf ------------------------- */ + +#ifndef EGL_EXT_device_openwf +#define EGL_EXT_device_openwf 1 + +#define EGL_OPENWF_DEVICE_ID_EXT 0x3237 +#define EGL_OPENWF_DEVICE_EXT 0x333D + +#define EGLEW_EXT_device_openwf EGLEW_GET_VAR(__EGLEW_EXT_device_openwf) + +#endif /* EGL_EXT_device_openwf */ + +/* ---------------------- EGL_EXT_device_persistent_id --------------------- */ + +#ifndef EGL_EXT_device_persistent_id +#define EGL_EXT_device_persistent_id 1 + +#define EGL_DEVICE_UUID_EXT 0x335C +#define EGL_DRIVER_UUID_EXT 0x335D +#define EGL_DRIVER_NAME_EXT 0x335E + +typedef EGLBoolean ( * PFNEGLQUERYDEVICEBINARYEXTPROC) (EGLDeviceEXT device, EGLint name, EGLint max_size, void* value, EGLint* size); + +#define eglQueryDeviceBinaryEXT EGLEW_GET_FUN(__eglewQueryDeviceBinaryEXT) + +#define EGLEW_EXT_device_persistent_id EGLEW_GET_VAR(__EGLEW_EXT_device_persistent_id) + +#endif /* EGL_EXT_device_persistent_id */ + +/* -------------------------- EGL_EXT_device_query ------------------------- */ + +#ifndef EGL_EXT_device_query +#define EGL_EXT_device_query 1 + +#define EGL_NO_DEVICE_EXT EGL_CAST(EGLDeviceEXT,0) +#define EGL_BAD_DEVICE_EXT 0x322B +#define EGL_DEVICE_EXT 0x322C + +typedef EGLBoolean ( * PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib* value); +typedef const char* ( * PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name); +typedef EGLBoolean ( * PFNEGLQUERYDISPLAYATTRIBEXTPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib* value); + +#define eglQueryDeviceAttribEXT EGLEW_GET_FUN(__eglewQueryDeviceAttribEXT) +#define eglQueryDeviceStringEXT EGLEW_GET_FUN(__eglewQueryDeviceStringEXT) +#define eglQueryDisplayAttribEXT EGLEW_GET_FUN(__eglewQueryDisplayAttribEXT) + +#define EGLEW_EXT_device_query EGLEW_GET_VAR(__EGLEW_EXT_device_query) + +#endif /* EGL_EXT_device_query */ + +/* ----------------------- EGL_EXT_device_query_name ----------------------- */ + +#ifndef EGL_EXT_device_query_name +#define EGL_EXT_device_query_name 1 + +#define EGL_RENDERER_EXT 0x335F + +#define EGLEW_EXT_device_query_name EGLEW_GET_VAR(__EGLEW_EXT_device_query_name) + +#endif /* EGL_EXT_device_query_name */ + +/* ------------------------- EGL_EXT_display_alloc ------------------------- */ + +#ifndef EGL_EXT_display_alloc +#define EGL_EXT_display_alloc 1 + +#define EGL_ALLOC_NEW_DISPLAY_EXT 0x3379 + +typedef EGLBoolean ( * PFNEGLDESTROYDISPLAYEXTPROC) (EGLDisplay dpy); + +#define eglDestroyDisplayEXT EGLEW_GET_FUN(__eglewDestroyDisplayEXT) + +#define EGLEW_EXT_display_alloc EGLEW_GET_VAR(__EGLEW_EXT_display_alloc) + +#endif /* EGL_EXT_display_alloc */ + +/* ------------------------ EGL_EXT_explicit_device ------------------------ */ + +#ifndef EGL_EXT_explicit_device +#define EGL_EXT_explicit_device 1 + +#define EGL_DEVICE_EXT 0x322C + +#define EGLEW_EXT_explicit_device EGLEW_GET_VAR(__EGLEW_EXT_explicit_device) + +#endif /* EGL_EXT_explicit_device */ + +/* -------------------- EGL_EXT_gl_colorspace_bt2020_hlg ------------------- */ + +#ifndef EGL_EXT_gl_colorspace_bt2020_hlg +#define EGL_EXT_gl_colorspace_bt2020_hlg 1 + +#define EGL_GL_COLORSPACE_BT2020_HLG_EXT 0x3540 + +#define EGLEW_EXT_gl_colorspace_bt2020_hlg EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_bt2020_hlg) + +#endif /* EGL_EXT_gl_colorspace_bt2020_hlg */ + +/* ------------------ EGL_EXT_gl_colorspace_bt2020_linear ------------------ */ + +#ifndef EGL_EXT_gl_colorspace_bt2020_linear +#define EGL_EXT_gl_colorspace_bt2020_linear 1 + +#define EGL_GL_COLORSPACE_BT2020_LINEAR_EXT 0x333F + +#define EGLEW_EXT_gl_colorspace_bt2020_linear EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_bt2020_linear) + +#endif /* EGL_EXT_gl_colorspace_bt2020_linear */ + +/* -------------------- EGL_EXT_gl_colorspace_bt2020_pq -------------------- */ + +#ifndef EGL_EXT_gl_colorspace_bt2020_pq +#define EGL_EXT_gl_colorspace_bt2020_pq 1 + +#define EGL_GL_COLORSPACE_BT2020_PQ_EXT 0x3340 + +#define EGLEW_EXT_gl_colorspace_bt2020_pq EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_bt2020_pq) + +#endif /* EGL_EXT_gl_colorspace_bt2020_pq */ + +/* -------------------- EGL_EXT_gl_colorspace_display_p3 ------------------- */ + +#ifndef EGL_EXT_gl_colorspace_display_p3 +#define EGL_EXT_gl_colorspace_display_p3 1 + +#define EGL_GL_COLORSPACE_DISPLAY_P3_EXT 0x3363 + +#define EGLEW_EXT_gl_colorspace_display_p3 EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_display_p3) + +#endif /* EGL_EXT_gl_colorspace_display_p3 */ + +/* ---------------- EGL_EXT_gl_colorspace_display_p3_linear ---------------- */ + +#ifndef EGL_EXT_gl_colorspace_display_p3_linear +#define EGL_EXT_gl_colorspace_display_p3_linear 1 + +#define EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT 0x3362 + +#define EGLEW_EXT_gl_colorspace_display_p3_linear EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_display_p3_linear) + +#endif /* EGL_EXT_gl_colorspace_display_p3_linear */ + +/* -------------- EGL_EXT_gl_colorspace_display_p3_passthrough ------------- */ + +#ifndef EGL_EXT_gl_colorspace_display_p3_passthrough +#define EGL_EXT_gl_colorspace_display_p3_passthrough 1 + +#define EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT 0x3490 + +#define EGLEW_EXT_gl_colorspace_display_p3_passthrough EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_display_p3_passthrough) + +#endif /* EGL_EXT_gl_colorspace_display_p3_passthrough */ + +/* ---------------------- EGL_EXT_gl_colorspace_scrgb ---------------------- */ + +#ifndef EGL_EXT_gl_colorspace_scrgb +#define EGL_EXT_gl_colorspace_scrgb 1 + +#define EGL_GL_COLORSPACE_SCRGB_EXT 0x3351 + +#define EGLEW_EXT_gl_colorspace_scrgb EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_scrgb) + +#endif /* EGL_EXT_gl_colorspace_scrgb */ + +/* ------------------- EGL_EXT_gl_colorspace_scrgb_linear ------------------ */ + +#ifndef EGL_EXT_gl_colorspace_scrgb_linear +#define EGL_EXT_gl_colorspace_scrgb_linear 1 + +#define EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT 0x3350 + +#define EGLEW_EXT_gl_colorspace_scrgb_linear EGLEW_GET_VAR(__EGLEW_EXT_gl_colorspace_scrgb_linear) + +#endif /* EGL_EXT_gl_colorspace_scrgb_linear */ + +/* ---------------------- EGL_EXT_image_dma_buf_import --------------------- */ + +#ifndef EGL_EXT_image_dma_buf_import +#define EGL_EXT_image_dma_buf_import 1 + +#define EGL_LINUX_DMA_BUF_EXT 0x3270 +#define EGL_LINUX_DRM_FOURCC_EXT 0x3271 +#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272 +#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273 +#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274 +#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275 +#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276 +#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277 +#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278 +#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279 +#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A +#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B +#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C +#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D +#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E +#define EGL_ITU_REC601_EXT 0x327F +#define EGL_ITU_REC709_EXT 0x3280 +#define EGL_ITU_REC2020_EXT 0x3281 +#define EGL_YUV_FULL_RANGE_EXT 0x3282 +#define EGL_YUV_NARROW_RANGE_EXT 0x3283 +#define EGL_YUV_CHROMA_SITING_0_EXT 0x3284 +#define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285 + +#define EGLEW_EXT_image_dma_buf_import EGLEW_GET_VAR(__EGLEW_EXT_image_dma_buf_import) + +#endif /* EGL_EXT_image_dma_buf_import */ + +/* ----------------- EGL_EXT_image_dma_buf_import_modifiers ---------------- */ + +#ifndef EGL_EXT_image_dma_buf_import_modifiers +#define EGL_EXT_image_dma_buf_import_modifiers 1 + +#define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440 +#define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441 +#define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442 +#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443 +#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444 +#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445 +#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446 +#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447 +#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448 +#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449 +#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A + +typedef EGLBoolean ( * PFNEGLQUERYDMABUFFORMATSEXTPROC) (EGLDisplay dpy, EGLint max_formats, EGLint* formats, EGLint* num_formats); +typedef EGLBoolean ( * PFNEGLQUERYDMABUFMODIFIERSEXTPROC) (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR* modifiers, EGLBoolean* external_only, EGLint* num_modifiers); + +#define eglQueryDmaBufFormatsEXT EGLEW_GET_FUN(__eglewQueryDmaBufFormatsEXT) +#define eglQueryDmaBufModifiersEXT EGLEW_GET_FUN(__eglewQueryDmaBufModifiersEXT) + +#define EGLEW_EXT_image_dma_buf_import_modifiers EGLEW_GET_VAR(__EGLEW_EXT_image_dma_buf_import_modifiers) + +#endif /* EGL_EXT_image_dma_buf_import_modifiers */ + +/* ---------------------- EGL_EXT_image_gl_colorspace ---------------------- */ + +#ifndef EGL_EXT_image_gl_colorspace +#define EGL_EXT_image_gl_colorspace 1 + +#define EGL_GL_COLORSPACE 0x309D +#define EGL_GL_COLORSPACE_DEFAULT_EXT 0x314D + +#define EGLEW_EXT_image_gl_colorspace EGLEW_GET_VAR(__EGLEW_EXT_image_gl_colorspace) + +#endif /* EGL_EXT_image_gl_colorspace */ + +/* ------------------ EGL_EXT_image_implicit_sync_control ------------------ */ + +#ifndef EGL_EXT_image_implicit_sync_control +#define EGL_EXT_image_implicit_sync_control 1 + +#define EGL_IMPORT_SYNC_TYPE_EXT 0x3470 +#define EGL_IMPORT_IMPLICIT_SYNC_EXT 0x3471 +#define EGL_IMPORT_EXPLICIT_SYNC_EXT 0x3472 + +#define EGLEW_EXT_image_implicit_sync_control EGLEW_GET_VAR(__EGLEW_EXT_image_implicit_sync_control) + +#endif /* EGL_EXT_image_implicit_sync_control */ + +/* ------------------------ EGL_EXT_multiview_window ----------------------- */ + +#ifndef EGL_EXT_multiview_window +#define EGL_EXT_multiview_window 1 + +#define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134 + +#define EGLEW_EXT_multiview_window EGLEW_GET_VAR(__EGLEW_EXT_multiview_window) + +#endif /* EGL_EXT_multiview_window */ + +/* -------------------------- EGL_EXT_output_base -------------------------- */ + +#ifndef EGL_EXT_output_base +#define EGL_EXT_output_base 1 + +#define EGL_NO_OUTPUT_LAYER_EXT EGL_CAST(EGLOutputLayerEXT,0) +#define EGL_NO_OUTPUT_PORT_EXT EGL_CAST(EGLOutputPortEXT,0) +#define EGL_BAD_OUTPUT_LAYER_EXT 0x322D +#define EGL_BAD_OUTPUT_PORT_EXT 0x322E +#define EGL_SWAP_INTERVAL_EXT 0x322F + +typedef EGLBoolean ( * PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib* attrib_list, EGLOutputLayerEXT* layers, EGLint max_layers, EGLint* num_layers); +typedef EGLBoolean ( * PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib* attrib_list, EGLOutputPortEXT* ports, EGLint max_ports, EGLint* num_ports); +typedef EGLBoolean ( * PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); +typedef EGLBoolean ( * PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); +typedef EGLBoolean ( * PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib* value); +typedef const char* ( * PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); +typedef EGLBoolean ( * PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib* value); +typedef const char* ( * PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); + +#define eglGetOutputLayersEXT EGLEW_GET_FUN(__eglewGetOutputLayersEXT) +#define eglGetOutputPortsEXT EGLEW_GET_FUN(__eglewGetOutputPortsEXT) +#define eglOutputLayerAttribEXT EGLEW_GET_FUN(__eglewOutputLayerAttribEXT) +#define eglOutputPortAttribEXT EGLEW_GET_FUN(__eglewOutputPortAttribEXT) +#define eglQueryOutputLayerAttribEXT EGLEW_GET_FUN(__eglewQueryOutputLayerAttribEXT) +#define eglQueryOutputLayerStringEXT EGLEW_GET_FUN(__eglewQueryOutputLayerStringEXT) +#define eglQueryOutputPortAttribEXT EGLEW_GET_FUN(__eglewQueryOutputPortAttribEXT) +#define eglQueryOutputPortStringEXT EGLEW_GET_FUN(__eglewQueryOutputPortStringEXT) + +#define EGLEW_EXT_output_base EGLEW_GET_VAR(__EGLEW_EXT_output_base) + +#endif /* EGL_EXT_output_base */ + +/* --------------------------- EGL_EXT_output_drm -------------------------- */ + +#ifndef EGL_EXT_output_drm +#define EGL_EXT_output_drm 1 + +#define EGL_DRM_CRTC_EXT 0x3234 +#define EGL_DRM_PLANE_EXT 0x3235 +#define EGL_DRM_CONNECTOR_EXT 0x3236 + +#define EGLEW_EXT_output_drm EGLEW_GET_VAR(__EGLEW_EXT_output_drm) + +#endif /* EGL_EXT_output_drm */ + +/* ------------------------- EGL_EXT_output_openwf ------------------------- */ + +#ifndef EGL_EXT_output_openwf +#define EGL_EXT_output_openwf 1 + +#define EGL_OPENWF_PIPELINE_ID_EXT 0x3238 +#define EGL_OPENWF_PORT_ID_EXT 0x3239 + +#define EGLEW_EXT_output_openwf EGLEW_GET_VAR(__EGLEW_EXT_output_openwf) + +#endif /* EGL_EXT_output_openwf */ + +/* ----------------------- EGL_EXT_pixel_format_float ---------------------- */ + +#ifndef EGL_EXT_pixel_format_float +#define EGL_EXT_pixel_format_float 1 + +#define EGL_COLOR_COMPONENT_TYPE_EXT 0x3339 +#define EGL_COLOR_COMPONENT_TYPE_FIXED_EXT 0x333A +#define EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B + +#define EGLEW_EXT_pixel_format_float EGLEW_GET_VAR(__EGLEW_EXT_pixel_format_float) + +#endif /* EGL_EXT_pixel_format_float */ + +/* ------------------------- EGL_EXT_platform_base ------------------------- */ + +#ifndef EGL_EXT_platform_base +#define EGL_EXT_platform_base 1 + +typedef EGLSurface ( * PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void* native_pixmap, const EGLint* attrib_list); +typedef EGLSurface ( * PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void* native_window, const EGLint* attrib_list); +typedef EGLDisplay ( * PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void* native_display, const EGLint* attrib_list); + +#define eglCreatePlatformPixmapSurfaceEXT EGLEW_GET_FUN(__eglewCreatePlatformPixmapSurfaceEXT) +#define eglCreatePlatformWindowSurfaceEXT EGLEW_GET_FUN(__eglewCreatePlatformWindowSurfaceEXT) +#define eglGetPlatformDisplayEXT EGLEW_GET_FUN(__eglewGetPlatformDisplayEXT) + +#define EGLEW_EXT_platform_base EGLEW_GET_VAR(__EGLEW_EXT_platform_base) + +#endif /* EGL_EXT_platform_base */ + +/* ------------------------ EGL_EXT_platform_device ------------------------ */ + +#ifndef EGL_EXT_platform_device +#define EGL_EXT_platform_device 1 + +#define EGL_PLATFORM_DEVICE_EXT 0x313F + +#define EGLEW_EXT_platform_device EGLEW_GET_VAR(__EGLEW_EXT_platform_device) + +#endif /* EGL_EXT_platform_device */ + +/* ------------------------ EGL_EXT_platform_wayland ----------------------- */ + +#ifndef EGL_EXT_platform_wayland +#define EGL_EXT_platform_wayland 1 + +#define EGL_PLATFORM_WAYLAND_EXT 0x31D8 + +#define EGLEW_EXT_platform_wayland EGLEW_GET_VAR(__EGLEW_EXT_platform_wayland) + +#endif /* EGL_EXT_platform_wayland */ + +/* -------------------------- EGL_EXT_platform_x11 ------------------------- */ + +#ifndef EGL_EXT_platform_x11 +#define EGL_EXT_platform_x11 1 + +#define EGL_PLATFORM_X11_EXT 0x31D5 +#define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6 + +#define EGLEW_EXT_platform_x11 EGLEW_GET_VAR(__EGLEW_EXT_platform_x11) + +#endif /* EGL_EXT_platform_x11 */ + +/* -------------------------- EGL_EXT_platform_xcb ------------------------- */ + +#ifndef EGL_EXT_platform_xcb +#define EGL_EXT_platform_xcb 1 + +#define EGL_PLATFORM_XCB_EXT 0x31DC +#define EGL_PLATFORM_XCB_SCREEN_EXT 0x31DE + +#define EGLEW_EXT_platform_xcb EGLEW_GET_VAR(__EGLEW_EXT_platform_xcb) + +#endif /* EGL_EXT_platform_xcb */ + +/* ------------------------- EGL_EXT_present_opaque ------------------------ */ + +#ifndef EGL_EXT_present_opaque +#define EGL_EXT_present_opaque 1 + +#define EGL_PRESENT_OPAQUE_EXT 0x31DF + +#define EGLEW_EXT_present_opaque EGLEW_GET_VAR(__EGLEW_EXT_present_opaque) + +#endif /* EGL_EXT_present_opaque */ + +/* ----------------------- EGL_EXT_protected_content ----------------------- */ + +#ifndef EGL_EXT_protected_content +#define EGL_EXT_protected_content 1 + +#define EGL_PROTECTED_CONTENT_EXT 0x32C0 + +#define EGLEW_EXT_protected_content EGLEW_GET_VAR(__EGLEW_EXT_protected_content) + +#endif /* EGL_EXT_protected_content */ + +/* ----------------------- EGL_EXT_protected_surface ----------------------- */ + +#ifndef EGL_EXT_protected_surface +#define EGL_EXT_protected_surface 1 + +#define EGL_PROTECTED_CONTENT_EXT 0x32C0 + +#define EGLEW_EXT_protected_surface EGLEW_GET_VAR(__EGLEW_EXT_protected_surface) + +#endif /* EGL_EXT_protected_surface */ + +/* --------------- EGL_EXT_query_reset_notification_strategy --------------- */ + +#ifndef EGL_EXT_query_reset_notification_strategy +#define EGL_EXT_query_reset_notification_strategy 1 + +#define EGLEW_EXT_query_reset_notification_strategy EGLEW_GET_VAR(__EGLEW_EXT_query_reset_notification_strategy) + +#endif /* EGL_EXT_query_reset_notification_strategy */ + +/* ------------------- EGL_EXT_stream_consumer_egloutput ------------------- */ + +#ifndef EGL_EXT_stream_consumer_egloutput +#define EGL_EXT_stream_consumer_egloutput 1 + +typedef EGLBoolean ( * PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); + +#define eglStreamConsumerOutputEXT EGLEW_GET_FUN(__eglewStreamConsumerOutputEXT) + +#define EGLEW_EXT_stream_consumer_egloutput EGLEW_GET_VAR(__EGLEW_EXT_stream_consumer_egloutput) + +#endif /* EGL_EXT_stream_consumer_egloutput */ + +/* ------------------- EGL_EXT_surface_CTA861_3_metadata ------------------- */ + +#ifndef EGL_EXT_surface_CTA861_3_metadata +#define EGL_EXT_surface_CTA861_3_metadata 1 + +#define EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT 0x3360 +#define EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT 0x3361 + +#define EGLEW_EXT_surface_CTA861_3_metadata EGLEW_GET_VAR(__EGLEW_EXT_surface_CTA861_3_metadata) + +#endif /* EGL_EXT_surface_CTA861_3_metadata */ + +/* ------------------- EGL_EXT_surface_SMPTE2086_metadata ------------------ */ + +#ifndef EGL_EXT_surface_SMPTE2086_metadata +#define EGL_EXT_surface_SMPTE2086_metadata 1 + +#define EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT 0x3341 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT 0x3342 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT 0x3343 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT 0x3344 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT 0x3345 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT 0x3346 +#define EGL_SMPTE2086_WHITE_POINT_X_EXT 0x3347 +#define EGL_SMPTE2086_WHITE_POINT_Y_EXT 0x3348 +#define EGL_SMPTE2086_MAX_LUMINANCE_EXT 0x3349 +#define EGL_SMPTE2086_MIN_LUMINANCE_EXT 0x334A +#define EGL_METADATA_SCALING_EXT 50000 + +#define EGLEW_EXT_surface_SMPTE2086_metadata EGLEW_GET_VAR(__EGLEW_EXT_surface_SMPTE2086_metadata) + +#endif /* EGL_EXT_surface_SMPTE2086_metadata */ + +/* ---------------------- EGL_EXT_surface_compression ---------------------- */ + +#ifndef EGL_EXT_surface_compression +#define EGL_EXT_surface_compression 1 + +#define EGL_SURFACE_COMPRESSION_PLANE1_EXT 0x328E +#define EGL_SURFACE_COMPRESSION_PLANE2_EXT 0x328F +#define EGL_SURFACE_COMPRESSION_EXT 0x34B0 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT 0x34B1 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT 0x34B2 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT 0x34B4 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT 0x34B5 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT 0x34B6 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT 0x34B7 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT 0x34B8 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT 0x34B9 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT 0x34BA +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT 0x34BB +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT 0x34BC +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT 0x34BD +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT 0x34BE +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT 0x34BF + +typedef EGLBoolean ( * PFNEGLQUERYSUPPORTEDCOMPRESSIONRATESEXTPROC) (EGLDisplay dpy, EGLConfig config, const EGLAttrib* attrib_list, EGLint* rates, EGLint rate_size, EGLint* num_rates); + +#define eglQuerySupportedCompressionRatesEXT EGLEW_GET_FUN(__eglewQuerySupportedCompressionRatesEXT) + +#define EGLEW_EXT_surface_compression EGLEW_GET_VAR(__EGLEW_EXT_surface_compression) + +#endif /* EGL_EXT_surface_compression */ + +/* -------------------- EGL_EXT_swap_buffers_with_damage ------------------- */ + +#ifndef EGL_EXT_swap_buffers_with_damage +#define EGL_EXT_swap_buffers_with_damage 1 + +typedef EGLBoolean ( * PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint* rects, EGLint n_rects); + +#define eglSwapBuffersWithDamageEXT EGLEW_GET_FUN(__eglewSwapBuffersWithDamageEXT) + +#define EGLEW_EXT_swap_buffers_with_damage EGLEW_GET_VAR(__EGLEW_EXT_swap_buffers_with_damage) + +#endif /* EGL_EXT_swap_buffers_with_damage */ + +/* --------------------------- EGL_EXT_sync_reuse -------------------------- */ + +#ifndef EGL_EXT_sync_reuse +#define EGL_EXT_sync_reuse 1 + +typedef EGLBoolean ( * PFNEGLUNSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib* attrib_list); + +#define eglUnsignalSyncEXT EGLEW_GET_FUN(__eglewUnsignalSyncEXT) + +#define EGLEW_EXT_sync_reuse EGLEW_GET_VAR(__EGLEW_EXT_sync_reuse) + +#endif /* EGL_EXT_sync_reuse */ + +/* -------------------------- EGL_EXT_yuv_surface -------------------------- */ + +#ifndef EGL_EXT_yuv_surface +#define EGL_EXT_yuv_surface 1 + +#define EGL_YUV_BUFFER_EXT 0x3300 +#define EGL_YUV_ORDER_EXT 0x3301 +#define EGL_YUV_ORDER_YUV_EXT 0x3302 +#define EGL_YUV_ORDER_YVU_EXT 0x3303 +#define EGL_YUV_ORDER_YUYV_EXT 0x3304 +#define EGL_YUV_ORDER_UYVY_EXT 0x3305 +#define EGL_YUV_ORDER_YVYU_EXT 0x3306 +#define EGL_YUV_ORDER_VYUY_EXT 0x3307 +#define EGL_YUV_ORDER_AYUV_EXT 0x3308 +#define EGL_YUV_CSC_STANDARD_EXT 0x330A +#define EGL_YUV_CSC_STANDARD_601_EXT 0x330B +#define EGL_YUV_CSC_STANDARD_709_EXT 0x330C +#define EGL_YUV_CSC_STANDARD_2020_EXT 0x330D +#define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311 +#define EGL_YUV_SUBSAMPLE_EXT 0x3312 +#define EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313 +#define EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314 +#define EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315 +#define EGL_YUV_DEPTH_RANGE_EXT 0x3317 +#define EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318 +#define EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319 +#define EGL_YUV_PLANE_BPP_EXT 0x331A +#define EGL_YUV_PLANE_BPP_0_EXT 0x331B +#define EGL_YUV_PLANE_BPP_8_EXT 0x331C +#define EGL_YUV_PLANE_BPP_10_EXT 0x331D + +#define EGLEW_EXT_yuv_surface EGLEW_GET_VAR(__EGLEW_EXT_yuv_surface) + +#endif /* EGL_EXT_yuv_surface */ + +/* -------------------------- EGL_HI_clientpixmap -------------------------- */ + +#ifndef EGL_HI_clientpixmap +#define EGL_HI_clientpixmap 1 + +#define EGL_CLIENT_PIXMAP_POINTER_HI 0x8F74 + +typedef EGLSurface ( * PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap); + +#define eglCreatePixmapSurfaceHI EGLEW_GET_FUN(__eglewCreatePixmapSurfaceHI) + +#define EGLEW_HI_clientpixmap EGLEW_GET_VAR(__EGLEW_HI_clientpixmap) + +#endif /* EGL_HI_clientpixmap */ + +/* -------------------------- EGL_HI_colorformats -------------------------- */ + +#ifndef EGL_HI_colorformats +#define EGL_HI_colorformats 1 + +#define EGL_COLOR_FORMAT_HI 0x8F70 +#define EGL_COLOR_RGB_HI 0x8F71 +#define EGL_COLOR_RGBA_HI 0x8F72 +#define EGL_COLOR_ARGB_HI 0x8F73 + +#define EGLEW_HI_colorformats EGLEW_GET_VAR(__EGLEW_HI_colorformats) + +#endif /* EGL_HI_colorformats */ + +/* ------------------------ EGL_IMG_context_priority ----------------------- */ + +#ifndef EGL_IMG_context_priority +#define EGL_IMG_context_priority 1 + +#define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100 +#define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101 +#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102 +#define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103 + +#define EGLEW_IMG_context_priority EGLEW_GET_VAR(__EGLEW_IMG_context_priority) + +#endif /* EGL_IMG_context_priority */ + +/* ---------------------- EGL_IMG_image_plane_attribs ---------------------- */ + +#ifndef EGL_IMG_image_plane_attribs +#define EGL_IMG_image_plane_attribs 1 + +#define EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG 0x3105 +#define EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG 0x3106 + +#define EGLEW_IMG_image_plane_attribs EGLEW_GET_VAR(__EGLEW_IMG_image_plane_attribs) + +#endif /* EGL_IMG_image_plane_attribs */ + +/* ---------------------------- EGL_KHR_cl_event --------------------------- */ + +#ifndef EGL_KHR_cl_event +#define EGL_KHR_cl_event 1 + +#define EGL_CL_EVENT_HANDLE_KHR 0x309C +#define EGL_SYNC_CL_EVENT_KHR 0x30FE +#define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF + +#define EGLEW_KHR_cl_event EGLEW_GET_VAR(__EGLEW_KHR_cl_event) + +#endif /* EGL_KHR_cl_event */ + +/* --------------------------- EGL_KHR_cl_event2 --------------------------- */ + +#ifndef EGL_KHR_cl_event2 +#define EGL_KHR_cl_event2 1 + +#define EGL_CL_EVENT_HANDLE_KHR 0x309C +#define EGL_SYNC_CL_EVENT_KHR 0x30FE +#define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF + +typedef EGLSyncKHR ( * PFNEGLCREATESYNC64KHRPROC) (EGLDisplay dpy, EGLenum type, const EGLAttribKHR* attrib_list); + +#define eglCreateSync64KHR EGLEW_GET_FUN(__eglewCreateSync64KHR) + +#define EGLEW_KHR_cl_event2 EGLEW_GET_VAR(__EGLEW_KHR_cl_event2) + +#endif /* EGL_KHR_cl_event2 */ + +/* ----------------- EGL_KHR_client_get_all_proc_addresses ----------------- */ + +#ifndef EGL_KHR_client_get_all_proc_addresses +#define EGL_KHR_client_get_all_proc_addresses 1 + +#define EGLEW_KHR_client_get_all_proc_addresses EGLEW_GET_VAR(__EGLEW_KHR_client_get_all_proc_addresses) + +#endif /* EGL_KHR_client_get_all_proc_addresses */ + +/* ------------------------- EGL_KHR_config_attribs ------------------------ */ + +#ifndef EGL_KHR_config_attribs +#define EGL_KHR_config_attribs 1 + +#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020 +#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040 +#define EGL_CONFORMANT_KHR 0x3042 + +#define EGLEW_KHR_config_attribs EGLEW_GET_VAR(__EGLEW_KHR_config_attribs) + +#endif /* EGL_KHR_config_attribs */ + +/* --------------------- EGL_KHR_context_flush_control --------------------- */ + +#ifndef EGL_KHR_context_flush_control +#define EGL_KHR_context_flush_control 1 + +#define EGL_CONTEXT_RELEASE_BEHAVIOR_NONE_KHR 0 +#define EGL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x2097 +#define EGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x2098 + +#define EGLEW_KHR_context_flush_control EGLEW_GET_VAR(__EGLEW_KHR_context_flush_control) + +#endif /* EGL_KHR_context_flush_control */ + +/* ------------------------- EGL_KHR_create_context ------------------------ */ + +#ifndef EGL_KHR_create_context +#define EGL_KHR_create_context 1 + +#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001 +#define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001 +#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 +#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002 +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004 +#define EGL_OPENGL_ES3_BIT 0x00000040 +#define EGL_OPENGL_ES3_BIT_KHR 0x00000040 +#define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098 +#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB +#define EGL_CONTEXT_FLAGS_KHR 0x30FC +#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD +#define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE +#define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF + +#define EGLEW_KHR_create_context EGLEW_GET_VAR(__EGLEW_KHR_create_context) + +#endif /* EGL_KHR_create_context */ + +/* -------------------- EGL_KHR_create_context_no_error -------------------- */ + +#ifndef EGL_KHR_create_context_no_error +#define EGL_KHR_create_context_no_error 1 + +#define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3 + +#define EGLEW_KHR_create_context_no_error EGLEW_GET_VAR(__EGLEW_KHR_create_context_no_error) + +#endif /* EGL_KHR_create_context_no_error */ + +/* ----------------------------- EGL_KHR_debug ----------------------------- */ + +#ifndef EGL_KHR_debug +#define EGL_KHR_debug 1 + +#define EGL_OBJECT_THREAD_KHR 0x33B0 +#define EGL_OBJECT_DISPLAY_KHR 0x33B1 +#define EGL_OBJECT_CONTEXT_KHR 0x33B2 +#define EGL_OBJECT_SURFACE_KHR 0x33B3 +#define EGL_OBJECT_IMAGE_KHR 0x33B4 +#define EGL_OBJECT_SYNC_KHR 0x33B5 +#define EGL_OBJECT_STREAM_KHR 0x33B6 +#define EGL_DEBUG_CALLBACK_KHR 0x33B8 +#define EGL_DEBUG_MSG_CRITICAL_KHR 0x33B9 +#define EGL_DEBUG_MSG_ERROR_KHR 0x33BA +#define EGL_DEBUG_MSG_WARN_KHR 0x33BB +#define EGL_DEBUG_MSG_INFO_KHR 0x33BC + +typedef EGLint ( * PFNEGLDEBUGMESSAGECONTROLKHRPROC) (EGLDEBUGPROCKHR callback, const EGLAttrib* attrib_list); +typedef EGLint ( * PFNEGLLABELOBJECTKHRPROC) (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label); +typedef EGLBoolean ( * PFNEGLQUERYDEBUGKHRPROC) (EGLint attribute, EGLAttrib* value); + +#define eglDebugMessageControlKHR EGLEW_GET_FUN(__eglewDebugMessageControlKHR) +#define eglLabelObjectKHR EGLEW_GET_FUN(__eglewLabelObjectKHR) +#define eglQueryDebugKHR EGLEW_GET_FUN(__eglewQueryDebugKHR) + +#define EGLEW_KHR_debug EGLEW_GET_VAR(__EGLEW_KHR_debug) + +#endif /* EGL_KHR_debug */ + +/* ----------------------- EGL_KHR_display_reference ----------------------- */ + +#ifndef EGL_KHR_display_reference +#define EGL_KHR_display_reference 1 + +#define EGL_TRACK_REFERENCES_KHR 0x3352 + +typedef EGLBoolean ( * PFNEGLQUERYDISPLAYATTRIBKHRPROC) (EGLDisplay dpy, EGLint name, EGLAttrib* value); + +#define eglQueryDisplayAttribKHR EGLEW_GET_FUN(__eglewQueryDisplayAttribKHR) + +#define EGLEW_KHR_display_reference EGLEW_GET_VAR(__EGLEW_KHR_display_reference) + +#endif /* EGL_KHR_display_reference */ + +/* --------------------------- EGL_KHR_fence_sync -------------------------- */ + +#ifndef EGL_KHR_fence_sync +#define EGL_KHR_fence_sync 1 + +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0 +#define EGL_SYNC_CONDITION_KHR 0x30F8 +#define EGL_SYNC_FENCE_KHR 0x30F9 + +#define EGLEW_KHR_fence_sync EGLEW_GET_VAR(__EGLEW_KHR_fence_sync) + +#endif /* EGL_KHR_fence_sync */ + +/* --------------------- EGL_KHR_get_all_proc_addresses -------------------- */ + +#ifndef EGL_KHR_get_all_proc_addresses +#define EGL_KHR_get_all_proc_addresses 1 + +#define EGLEW_KHR_get_all_proc_addresses EGLEW_GET_VAR(__EGLEW_KHR_get_all_proc_addresses) + +#endif /* EGL_KHR_get_all_proc_addresses */ + +/* ------------------------- EGL_KHR_gl_colorspace ------------------------- */ + +#ifndef EGL_KHR_gl_colorspace +#define EGL_KHR_gl_colorspace 1 + +#define EGL_GL_COLORSPACE_SRGB_KHR 0x3089 +#define EGL_GL_COLORSPACE_LINEAR_KHR 0x308A +#define EGL_GL_COLORSPACE_KHR 0x309D + +#define EGLEW_KHR_gl_colorspace EGLEW_GET_VAR(__EGLEW_KHR_gl_colorspace) + +#endif /* EGL_KHR_gl_colorspace */ + +/* --------------------- EGL_KHR_gl_renderbuffer_image --------------------- */ + +#ifndef EGL_KHR_gl_renderbuffer_image +#define EGL_KHR_gl_renderbuffer_image 1 + +#define EGL_GL_RENDERBUFFER_KHR 0x30B9 + +#define EGLEW_KHR_gl_renderbuffer_image EGLEW_GET_VAR(__EGLEW_KHR_gl_renderbuffer_image) + +#endif /* EGL_KHR_gl_renderbuffer_image */ + +/* ---------------------- EGL_KHR_gl_texture_2D_image ---------------------- */ + +#ifndef EGL_KHR_gl_texture_2D_image +#define EGL_KHR_gl_texture_2D_image 1 + +#define EGL_GL_TEXTURE_2D_KHR 0x30B1 +#define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC + +#define EGLEW_KHR_gl_texture_2D_image EGLEW_GET_VAR(__EGLEW_KHR_gl_texture_2D_image) + +#endif /* EGL_KHR_gl_texture_2D_image */ + +/* ---------------------- EGL_KHR_gl_texture_3D_image ---------------------- */ + +#ifndef EGL_KHR_gl_texture_3D_image +#define EGL_KHR_gl_texture_3D_image 1 + +#define EGL_GL_TEXTURE_3D_KHR 0x30B2 +#define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD + +#define EGLEW_KHR_gl_texture_3D_image EGLEW_GET_VAR(__EGLEW_KHR_gl_texture_3D_image) + +#endif /* EGL_KHR_gl_texture_3D_image */ + +/* -------------------- EGL_KHR_gl_texture_cubemap_image ------------------- */ + +#ifndef EGL_KHR_gl_texture_cubemap_image +#define EGL_KHR_gl_texture_cubemap_image 1 + +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8 + +#define EGLEW_KHR_gl_texture_cubemap_image EGLEW_GET_VAR(__EGLEW_KHR_gl_texture_cubemap_image) + +#endif /* EGL_KHR_gl_texture_cubemap_image */ + +/* ----------------------------- EGL_KHR_image ----------------------------- */ + +#ifndef EGL_KHR_image +#define EGL_KHR_image 1 + +#define EGL_NO_IMAGE_KHR EGL_CAST(EGLImageKHR,0) +#define EGL_NATIVE_PIXMAP_KHR 0x30B0 + +typedef EGLImageKHR ( * PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint* attrib_list); +typedef EGLBoolean ( * PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image); + +#define eglCreateImageKHR EGLEW_GET_FUN(__eglewCreateImageKHR) +#define eglDestroyImageKHR EGLEW_GET_FUN(__eglewDestroyImageKHR) + +#define EGLEW_KHR_image EGLEW_GET_VAR(__EGLEW_KHR_image) + +#endif /* EGL_KHR_image */ + +/* --------------------------- EGL_KHR_image_base -------------------------- */ + +#ifndef EGL_KHR_image_base +#define EGL_KHR_image_base 1 + +#define EGL_NO_IMAGE_KHR EGL_CAST(EGLImageKHR,0) +#define EGL_IMAGE_PRESERVED_KHR 0x30D2 + +#define EGLEW_KHR_image_base EGLEW_GET_VAR(__EGLEW_KHR_image_base) + +#endif /* EGL_KHR_image_base */ + +/* -------------------------- EGL_KHR_image_pixmap ------------------------- */ + +#ifndef EGL_KHR_image_pixmap +#define EGL_KHR_image_pixmap 1 + +#define EGL_NATIVE_PIXMAP_KHR 0x30B0 + +#define EGLEW_KHR_image_pixmap EGLEW_GET_VAR(__EGLEW_KHR_image_pixmap) + +#endif /* EGL_KHR_image_pixmap */ + +/* -------------------------- EGL_KHR_lock_surface ------------------------- */ + +#ifndef EGL_KHR_lock_surface +#define EGL_KHR_lock_surface 1 + +#define EGL_READ_SURFACE_BIT_KHR 0x0001 +#define EGL_WRITE_SURFACE_BIT_KHR 0x0002 +#define EGL_LOCK_SURFACE_BIT_KHR 0x0080 +#define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100 +#define EGL_MATCH_FORMAT_KHR 0x3043 +#define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0 +#define EGL_FORMAT_RGB_565_KHR 0x30C1 +#define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2 +#define EGL_FORMAT_RGBA_8888_KHR 0x30C3 +#define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4 +#define EGL_LOCK_USAGE_HINT_KHR 0x30C5 +#define EGL_BITMAP_POINTER_KHR 0x30C6 +#define EGL_BITMAP_PITCH_KHR 0x30C7 +#define EGL_BITMAP_ORIGIN_KHR 0x30C8 +#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9 +#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA +#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB +#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC +#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD +#define EGL_LOWER_LEFT_KHR 0x30CE +#define EGL_UPPER_LEFT_KHR 0x30CF + +typedef EGLBoolean ( * PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint* attrib_list); +typedef EGLBoolean ( * PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface); + +#define eglLockSurfaceKHR EGLEW_GET_FUN(__eglewLockSurfaceKHR) +#define eglUnlockSurfaceKHR EGLEW_GET_FUN(__eglewUnlockSurfaceKHR) + +#define EGLEW_KHR_lock_surface EGLEW_GET_VAR(__EGLEW_KHR_lock_surface) + +#endif /* EGL_KHR_lock_surface */ + +/* ------------------------- EGL_KHR_lock_surface2 ------------------------- */ + +#ifndef EGL_KHR_lock_surface2 +#define EGL_KHR_lock_surface2 1 + +#define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110 + +#define EGLEW_KHR_lock_surface2 EGLEW_GET_VAR(__EGLEW_KHR_lock_surface2) + +#endif /* EGL_KHR_lock_surface2 */ + +/* ------------------------- EGL_KHR_lock_surface3 ------------------------- */ + +#ifndef EGL_KHR_lock_surface3 +#define EGL_KHR_lock_surface3 1 + +#define EGL_READ_SURFACE_BIT_KHR 0x0001 +#define EGL_WRITE_SURFACE_BIT_KHR 0x0002 +#define EGL_LOCK_SURFACE_BIT_KHR 0x0080 +#define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100 +#define EGL_MATCH_FORMAT_KHR 0x3043 +#define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0 +#define EGL_FORMAT_RGB_565_KHR 0x30C1 +#define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2 +#define EGL_FORMAT_RGBA_8888_KHR 0x30C3 +#define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4 +#define EGL_LOCK_USAGE_HINT_KHR 0x30C5 +#define EGL_BITMAP_POINTER_KHR 0x30C6 +#define EGL_BITMAP_PITCH_KHR 0x30C7 +#define EGL_BITMAP_ORIGIN_KHR 0x30C8 +#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9 +#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA +#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB +#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC +#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD +#define EGL_LOWER_LEFT_KHR 0x30CE +#define EGL_UPPER_LEFT_KHR 0x30CF +#define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110 + +typedef EGLBoolean ( * PFNEGLQUERYSURFACE64KHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR * value); + +#define eglQuerySurface64KHR EGLEW_GET_FUN(__eglewQuerySurface64KHR) + +#define EGLEW_KHR_lock_surface3 EGLEW_GET_VAR(__EGLEW_KHR_lock_surface3) + +#endif /* EGL_KHR_lock_surface3 */ + +/* --------------------- EGL_KHR_mutable_render_buffer --------------------- */ + +#ifndef EGL_KHR_mutable_render_buffer +#define EGL_KHR_mutable_render_buffer 1 + +#define EGL_MUTABLE_RENDER_BUFFER_BIT_KHR 0x1000 + +#define EGLEW_KHR_mutable_render_buffer EGLEW_GET_VAR(__EGLEW_KHR_mutable_render_buffer) + +#endif /* EGL_KHR_mutable_render_buffer */ + +/* ----------------------- EGL_KHR_no_config_context ----------------------- */ + +#ifndef EGL_KHR_no_config_context +#define EGL_KHR_no_config_context 1 + +#define EGL_NO_CONFIG_KHR EGL_CAST(EGLConfig,0) + +#define EGLEW_KHR_no_config_context EGLEW_GET_VAR(__EGLEW_KHR_no_config_context) + +#endif /* EGL_KHR_no_config_context */ + +/* ------------------------- EGL_KHR_partial_update ------------------------ */ + +#ifndef EGL_KHR_partial_update +#define EGL_KHR_partial_update 1 + +#define EGL_BUFFER_AGE_KHR 0x313D + +typedef EGLBoolean ( * PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint* rects, EGLint n_rects); + +#define eglSetDamageRegionKHR EGLEW_GET_FUN(__eglewSetDamageRegionKHR) + +#define EGLEW_KHR_partial_update EGLEW_GET_VAR(__EGLEW_KHR_partial_update) + +#endif /* EGL_KHR_partial_update */ + +/* ------------------------ EGL_KHR_platform_android ----------------------- */ + +#ifndef EGL_KHR_platform_android +#define EGL_KHR_platform_android 1 + +#define EGL_PLATFORM_ANDROID_KHR 0x3141 + +#define EGLEW_KHR_platform_android EGLEW_GET_VAR(__EGLEW_KHR_platform_android) + +#endif /* EGL_KHR_platform_android */ + +/* -------------------------- EGL_KHR_platform_gbm ------------------------- */ + +#ifndef EGL_KHR_platform_gbm +#define EGL_KHR_platform_gbm 1 + +#define EGL_PLATFORM_GBM_KHR 0x31D7 + +#define EGLEW_KHR_platform_gbm EGLEW_GET_VAR(__EGLEW_KHR_platform_gbm) + +#endif /* EGL_KHR_platform_gbm */ + +/* ------------------------ EGL_KHR_platform_wayland ----------------------- */ + +#ifndef EGL_KHR_platform_wayland +#define EGL_KHR_platform_wayland 1 + +#define EGL_PLATFORM_WAYLAND_KHR 0x31D8 + +#define EGLEW_KHR_platform_wayland EGLEW_GET_VAR(__EGLEW_KHR_platform_wayland) + +#endif /* EGL_KHR_platform_wayland */ + +/* -------------------------- EGL_KHR_platform_x11 ------------------------- */ + +#ifndef EGL_KHR_platform_x11 +#define EGL_KHR_platform_x11 1 + +#define EGL_PLATFORM_X11_KHR 0x31D5 +#define EGL_PLATFORM_X11_SCREEN_KHR 0x31D6 + +#define EGLEW_KHR_platform_x11 EGLEW_GET_VAR(__EGLEW_KHR_platform_x11) + +#endif /* EGL_KHR_platform_x11 */ + +/* ------------------------- EGL_KHR_reusable_sync ------------------------- */ + +#ifndef EGL_KHR_reusable_sync +#define EGL_KHR_reusable_sync 1 + +#define EGL_NO_SYNC_KHR EGL_CAST(EGLSyncKHR,0) +#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001 +#define EGL_SYNC_STATUS_KHR 0x30F1 +#define EGL_SIGNALED_KHR 0x30F2 +#define EGL_UNSIGNALED_KHR 0x30F3 +#define EGL_TIMEOUT_EXPIRED_KHR 0x30F5 +#define EGL_CONDITION_SATISFIED_KHR 0x30F6 +#define EGL_SYNC_TYPE_KHR 0x30F7 +#define EGL_SYNC_REUSABLE_KHR 0x30FA +#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFF + +typedef EGLint ( * PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); +typedef EGLSyncKHR ( * PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint* attrib_list); +typedef EGLBoolean ( * PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync); +typedef EGLBoolean ( * PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint* value); +typedef EGLBoolean ( * PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); + +#define eglClientWaitSyncKHR EGLEW_GET_FUN(__eglewClientWaitSyncKHR) +#define eglCreateSyncKHR EGLEW_GET_FUN(__eglewCreateSyncKHR) +#define eglDestroySyncKHR EGLEW_GET_FUN(__eglewDestroySyncKHR) +#define eglGetSyncAttribKHR EGLEW_GET_FUN(__eglewGetSyncAttribKHR) +#define eglSignalSyncKHR EGLEW_GET_FUN(__eglewSignalSyncKHR) + +#define EGLEW_KHR_reusable_sync EGLEW_GET_VAR(__EGLEW_KHR_reusable_sync) + +#endif /* EGL_KHR_reusable_sync */ + +/* ----------------------------- EGL_KHR_stream ---------------------------- */ + +#ifndef EGL_KHR_stream +#define EGL_KHR_stream 1 + +#define EGL_NO_STREAM_KHR EGL_CAST(EGLStreamKHR,0) +#define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210 +#define EGL_PRODUCER_FRAME_KHR 0x3212 +#define EGL_CONSUMER_FRAME_KHR 0x3213 +#define EGL_STREAM_STATE_KHR 0x3214 +#define EGL_STREAM_STATE_CREATED_KHR 0x3215 +#define EGL_STREAM_STATE_CONNECTING_KHR 0x3216 +#define EGL_STREAM_STATE_EMPTY_KHR 0x3217 +#define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218 +#define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219 +#define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A +#define EGL_BAD_STREAM_KHR 0x321B +#define EGL_BAD_STATE_KHR 0x321C + +typedef EGLStreamKHR ( * PFNEGLCREATESTREAMKHRPROC) (EGLDisplay dpy, const EGLint* attrib_list); +typedef EGLBoolean ( * PFNEGLDESTROYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLBoolean ( * PFNEGLQUERYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint* value); +typedef EGLBoolean ( * PFNEGLQUERYSTREAMU64KHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR* value); +typedef EGLBoolean ( * PFNEGLSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); + +#define eglCreateStreamKHR EGLEW_GET_FUN(__eglewCreateStreamKHR) +#define eglDestroyStreamKHR EGLEW_GET_FUN(__eglewDestroyStreamKHR) +#define eglQueryStreamKHR EGLEW_GET_FUN(__eglewQueryStreamKHR) +#define eglQueryStreamu64KHR EGLEW_GET_FUN(__eglewQueryStreamu64KHR) +#define eglStreamAttribKHR EGLEW_GET_FUN(__eglewStreamAttribKHR) + +#define EGLEW_KHR_stream EGLEW_GET_VAR(__EGLEW_KHR_stream) + +#endif /* EGL_KHR_stream */ + +/* ------------------------- EGL_KHR_stream_attrib ------------------------- */ + +#ifndef EGL_KHR_stream_attrib +#define EGL_KHR_stream_attrib 1 + +#define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210 +#define EGL_STREAM_STATE_KHR 0x3214 +#define EGL_STREAM_STATE_CREATED_KHR 0x3215 +#define EGL_STREAM_STATE_CONNECTING_KHR 0x3216 + +typedef EGLStreamKHR ( * PFNEGLCREATESTREAMATTRIBKHRPROC) (EGLDisplay dpy, const EGLAttrib* attrib_list); +typedef EGLBoolean ( * PFNEGLQUERYSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib* value); +typedef EGLBoolean ( * PFNEGLSETSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value); +typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib* attrib_list); +typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib* attrib_list); + +#define eglCreateStreamAttribKHR EGLEW_GET_FUN(__eglewCreateStreamAttribKHR) +#define eglQueryStreamAttribKHR EGLEW_GET_FUN(__eglewQueryStreamAttribKHR) +#define eglSetStreamAttribKHR EGLEW_GET_FUN(__eglewSetStreamAttribKHR) +#define eglStreamConsumerAcquireAttribKHR EGLEW_GET_FUN(__eglewStreamConsumerAcquireAttribKHR) +#define eglStreamConsumerReleaseAttribKHR EGLEW_GET_FUN(__eglewStreamConsumerReleaseAttribKHR) + +#define EGLEW_KHR_stream_attrib EGLEW_GET_VAR(__EGLEW_KHR_stream_attrib) + +#endif /* EGL_KHR_stream_attrib */ + +/* ------------------- EGL_KHR_stream_consumer_gltexture ------------------- */ + +#ifndef EGL_KHR_stream_consumer_gltexture +#define EGL_KHR_stream_consumer_gltexture 1 + +#define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E + +typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERACQUIREKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERRELEASEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); + +#define eglStreamConsumerAcquireKHR EGLEW_GET_FUN(__eglewStreamConsumerAcquireKHR) +#define eglStreamConsumerGLTextureExternalKHR EGLEW_GET_FUN(__eglewStreamConsumerGLTextureExternalKHR) +#define eglStreamConsumerReleaseKHR EGLEW_GET_FUN(__eglewStreamConsumerReleaseKHR) + +#define EGLEW_KHR_stream_consumer_gltexture EGLEW_GET_VAR(__EGLEW_KHR_stream_consumer_gltexture) + +#endif /* EGL_KHR_stream_consumer_gltexture */ + +/* -------------------- EGL_KHR_stream_cross_process_fd -------------------- */ + +#ifndef EGL_KHR_stream_cross_process_fd +#define EGL_KHR_stream_cross_process_fd 1 + +#define EGL_NO_FILE_DESCRIPTOR_KHR EGL_CAST(EGLNativeFileDescriptorKHR,-1) + +typedef EGLStreamKHR ( * PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); +typedef EGLNativeFileDescriptorKHR ( * PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); + +#define eglCreateStreamFromFileDescriptorKHR EGLEW_GET_FUN(__eglewCreateStreamFromFileDescriptorKHR) +#define eglGetStreamFileDescriptorKHR EGLEW_GET_FUN(__eglewGetStreamFileDescriptorKHR) + +#define EGLEW_KHR_stream_cross_process_fd EGLEW_GET_VAR(__EGLEW_KHR_stream_cross_process_fd) + +#endif /* EGL_KHR_stream_cross_process_fd */ + +/* -------------------------- EGL_KHR_stream_fifo -------------------------- */ + +#ifndef EGL_KHR_stream_fifo +#define EGL_KHR_stream_fifo 1 + +#define EGL_STREAM_FIFO_LENGTH_KHR 0x31FC +#define EGL_STREAM_TIME_NOW_KHR 0x31FD +#define EGL_STREAM_TIME_CONSUMER_KHR 0x31FE +#define EGL_STREAM_TIME_PRODUCER_KHR 0x31FF + +typedef EGLBoolean ( * PFNEGLQUERYSTREAMTIMEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR* value); + +#define eglQueryStreamTimeKHR EGLEW_GET_FUN(__eglewQueryStreamTimeKHR) + +#define EGLEW_KHR_stream_fifo EGLEW_GET_VAR(__EGLEW_KHR_stream_fifo) + +#endif /* EGL_KHR_stream_fifo */ + +/* ----------------- EGL_KHR_stream_producer_aldatalocator ----------------- */ + +#ifndef EGL_KHR_stream_producer_aldatalocator +#define EGL_KHR_stream_producer_aldatalocator 1 + +#define EGLEW_KHR_stream_producer_aldatalocator EGLEW_GET_VAR(__EGLEW_KHR_stream_producer_aldatalocator) + +#endif /* EGL_KHR_stream_producer_aldatalocator */ + +/* ------------------- EGL_KHR_stream_producer_eglsurface ------------------ */ + +#ifndef EGL_KHR_stream_producer_eglsurface +#define EGL_KHR_stream_producer_eglsurface 1 + +#define EGL_STREAM_BIT_KHR 0x0800 + +typedef EGLSurface ( * PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint* attrib_list); + +#define eglCreateStreamProducerSurfaceKHR EGLEW_GET_FUN(__eglewCreateStreamProducerSurfaceKHR) + +#define EGLEW_KHR_stream_producer_eglsurface EGLEW_GET_VAR(__EGLEW_KHR_stream_producer_eglsurface) + +#endif /* EGL_KHR_stream_producer_eglsurface */ + +/* ---------------------- EGL_KHR_surfaceless_context ---------------------- */ + +#ifndef EGL_KHR_surfaceless_context +#define EGL_KHR_surfaceless_context 1 + +#define EGLEW_KHR_surfaceless_context EGLEW_GET_VAR(__EGLEW_KHR_surfaceless_context) + +#endif /* EGL_KHR_surfaceless_context */ + +/* -------------------- EGL_KHR_swap_buffers_with_damage ------------------- */ + +#ifndef EGL_KHR_swap_buffers_with_damage +#define EGL_KHR_swap_buffers_with_damage 1 + +typedef EGLBoolean ( * PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint* rects, EGLint n_rects); + +#define eglSwapBuffersWithDamageKHR EGLEW_GET_FUN(__eglewSwapBuffersWithDamageKHR) + +#define EGLEW_KHR_swap_buffers_with_damage EGLEW_GET_VAR(__EGLEW_KHR_swap_buffers_with_damage) + +#endif /* EGL_KHR_swap_buffers_with_damage */ + +/* ------------------------ EGL_KHR_vg_parent_image ------------------------ */ + +#ifndef EGL_KHR_vg_parent_image +#define EGL_KHR_vg_parent_image 1 + +#define EGL_VG_PARENT_IMAGE_KHR 0x30BA + +#define EGLEW_KHR_vg_parent_image EGLEW_GET_VAR(__EGLEW_KHR_vg_parent_image) + +#endif /* EGL_KHR_vg_parent_image */ + +/* --------------------------- EGL_KHR_wait_sync --------------------------- */ + +#ifndef EGL_KHR_wait_sync +#define EGL_KHR_wait_sync 1 + +typedef EGLint ( * PFNEGLWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); + +#define eglWaitSyncKHR EGLEW_GET_FUN(__eglewWaitSyncKHR) + +#define EGLEW_KHR_wait_sync EGLEW_GET_VAR(__EGLEW_KHR_wait_sync) + +#endif /* EGL_KHR_wait_sync */ + +/* --------------------------- EGL_MESA_drm_image -------------------------- */ + +#ifndef EGL_MESA_drm_image +#define EGL_MESA_drm_image 1 + +#define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001 +#define EGL_DRM_BUFFER_USE_SHARE_MESA 0x00000002 +#define EGL_DRM_BUFFER_USE_CURSOR_MESA 0x00000004 +#define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0 +#define EGL_DRM_BUFFER_USE_MESA 0x31D1 +#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2 +#define EGL_DRM_BUFFER_MESA 0x31D3 +#define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4 + +typedef EGLImageKHR ( * PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint* attrib_list); +typedef EGLBoolean ( * PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint* name, EGLint* handle, EGLint* stride); + +#define eglCreateDRMImageMESA EGLEW_GET_FUN(__eglewCreateDRMImageMESA) +#define eglExportDRMImageMESA EGLEW_GET_FUN(__eglewExportDRMImageMESA) + +#define EGLEW_MESA_drm_image EGLEW_GET_VAR(__EGLEW_MESA_drm_image) + +#endif /* EGL_MESA_drm_image */ + +/* --------------------- EGL_MESA_image_dma_buf_export --------------------- */ + +#ifndef EGL_MESA_image_dma_buf_export +#define EGL_MESA_image_dma_buf_export 1 + +typedef EGLBoolean ( * PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int* fds, EGLint* strides, EGLint* offsets); +typedef EGLBoolean ( * PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int* fourcc, int* num_planes, EGLuint64KHR* modifiers); + +#define eglExportDMABUFImageMESA EGLEW_GET_FUN(__eglewExportDMABUFImageMESA) +#define eglExportDMABUFImageQueryMESA EGLEW_GET_FUN(__eglewExportDMABUFImageQueryMESA) + +#define EGLEW_MESA_image_dma_buf_export EGLEW_GET_VAR(__EGLEW_MESA_image_dma_buf_export) + +#endif /* EGL_MESA_image_dma_buf_export */ + +/* ------------------------- EGL_MESA_platform_gbm ------------------------- */ + +#ifndef EGL_MESA_platform_gbm +#define EGL_MESA_platform_gbm 1 + +#define EGL_PLATFORM_GBM_MESA 0x31D7 + +#define EGLEW_MESA_platform_gbm EGLEW_GET_VAR(__EGLEW_MESA_platform_gbm) + +#endif /* EGL_MESA_platform_gbm */ + +/* --------------------- EGL_MESA_platform_surfaceless --------------------- */ + +#ifndef EGL_MESA_platform_surfaceless +#define EGL_MESA_platform_surfaceless 1 + +#define EGL_PLATFORM_SURFACELESS_MESA 0x31DD + +#define EGLEW_MESA_platform_surfaceless EGLEW_GET_VAR(__EGLEW_MESA_platform_surfaceless) + +#endif /* EGL_MESA_platform_surfaceless */ + +/* ------------------------- EGL_MESA_query_driver ------------------------- */ + +#ifndef EGL_MESA_query_driver +#define EGL_MESA_query_driver 1 + +typedef char* ( * PFNEGLGETDISPLAYDRIVERCONFIGPROC) (EGLDisplay dpy); +typedef const char* ( * PFNEGLGETDISPLAYDRIVERNAMEPROC) (EGLDisplay dpy); + +#define eglGetDisplayDriverConfig EGLEW_GET_FUN(__eglewGetDisplayDriverConfig) +#define eglGetDisplayDriverName EGLEW_GET_FUN(__eglewGetDisplayDriverName) + +#define EGLEW_MESA_query_driver EGLEW_GET_VAR(__EGLEW_MESA_query_driver) + +#endif /* EGL_MESA_query_driver */ + +/* -------------------------- EGL_NOK_swap_region -------------------------- */ + +#ifndef EGL_NOK_swap_region +#define EGL_NOK_swap_region 1 + +typedef EGLBoolean ( * PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint* rects); + +#define eglSwapBuffersRegionNOK EGLEW_GET_FUN(__eglewSwapBuffersRegionNOK) + +#define EGLEW_NOK_swap_region EGLEW_GET_VAR(__EGLEW_NOK_swap_region) + +#endif /* EGL_NOK_swap_region */ + +/* -------------------------- EGL_NOK_swap_region2 ------------------------- */ + +#ifndef EGL_NOK_swap_region2 +#define EGL_NOK_swap_region2 1 + +typedef EGLBoolean ( * PFNEGLSWAPBUFFERSREGION2NOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint* rects); + +#define eglSwapBuffersRegion2NOK EGLEW_GET_FUN(__eglewSwapBuffersRegion2NOK) + +#define EGLEW_NOK_swap_region2 EGLEW_GET_VAR(__EGLEW_NOK_swap_region2) + +#endif /* EGL_NOK_swap_region2 */ + +/* ---------------------- EGL_NOK_texture_from_pixmap ---------------------- */ + +#ifndef EGL_NOK_texture_from_pixmap +#define EGL_NOK_texture_from_pixmap 1 + +#define EGL_Y_INVERTED_NOK 0x307F + +#define EGLEW_NOK_texture_from_pixmap EGLEW_GET_VAR(__EGLEW_NOK_texture_from_pixmap) + +#endif /* EGL_NOK_texture_from_pixmap */ + +/* ------------------------ EGL_NV_3dvision_surface ------------------------ */ + +#ifndef EGL_NV_3dvision_surface +#define EGL_NV_3dvision_surface 1 + +#define EGL_AUTO_STEREO_NV 0x3136 + +#define EGLEW_NV_3dvision_surface EGLEW_GET_VAR(__EGLEW_NV_3dvision_surface) + +#endif /* EGL_NV_3dvision_surface */ + +/* -------------------- EGL_NV_context_priority_realtime ------------------- */ + +#ifndef EGL_NV_context_priority_realtime +#define EGL_NV_context_priority_realtime 1 + +#define EGL_CONTEXT_PRIORITY_REALTIME_NV 0x3357 + +#define EGLEW_NV_context_priority_realtime EGLEW_GET_VAR(__EGLEW_NV_context_priority_realtime) + +#endif /* EGL_NV_context_priority_realtime */ + +/* ------------------------- EGL_NV_coverage_sample ------------------------ */ + +#ifndef EGL_NV_coverage_sample +#define EGL_NV_coverage_sample 1 + +#define EGL_COVERAGE_BUFFERS_NV 0x30E0 +#define EGL_COVERAGE_SAMPLES_NV 0x30E1 + +#define EGLEW_NV_coverage_sample EGLEW_GET_VAR(__EGLEW_NV_coverage_sample) + +#endif /* EGL_NV_coverage_sample */ + +/* --------------------- EGL_NV_coverage_sample_resolve -------------------- */ + +#ifndef EGL_NV_coverage_sample_resolve +#define EGL_NV_coverage_sample_resolve 1 + +#define EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131 +#define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132 +#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133 + +#define EGLEW_NV_coverage_sample_resolve EGLEW_GET_VAR(__EGLEW_NV_coverage_sample_resolve) + +#endif /* EGL_NV_coverage_sample_resolve */ + +/* --------------------------- EGL_NV_cuda_event --------------------------- */ + +#ifndef EGL_NV_cuda_event +#define EGL_NV_cuda_event 1 + +#define EGL_CUDA_EVENT_HANDLE_NV 0x323B +#define EGL_SYNC_CUDA_EVENT_NV 0x323C +#define EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D + +#define EGLEW_NV_cuda_event EGLEW_GET_VAR(__EGLEW_NV_cuda_event) + +#endif /* EGL_NV_cuda_event */ + +/* ------------------------- EGL_NV_depth_nonlinear ------------------------ */ + +#ifndef EGL_NV_depth_nonlinear +#define EGL_NV_depth_nonlinear 1 + +#define EGL_DEPTH_ENCODING_NONE_NV 0 +#define EGL_DEPTH_ENCODING_NV 0x30E2 +#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3 + +#define EGLEW_NV_depth_nonlinear EGLEW_GET_VAR(__EGLEW_NV_depth_nonlinear) + +#endif /* EGL_NV_depth_nonlinear */ + +/* --------------------------- EGL_NV_device_cuda -------------------------- */ + +#ifndef EGL_NV_device_cuda +#define EGL_NV_device_cuda 1 + +#define EGL_CUDA_DEVICE_NV 0x323A + +#define EGLEW_NV_device_cuda EGLEW_GET_VAR(__EGLEW_NV_device_cuda) + +#endif /* EGL_NV_device_cuda */ + +/* -------------------------- EGL_NV_native_query -------------------------- */ + +#ifndef EGL_NV_native_query +#define EGL_NV_native_query 1 + +typedef EGLBoolean ( * PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType* display_id); +typedef EGLBoolean ( * PFNEGLQUERYNATIVEPIXMAPNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType* pixmap); +typedef EGLBoolean ( * PFNEGLQUERYNATIVEWINDOWNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType* window); + +#define eglQueryNativeDisplayNV EGLEW_GET_FUN(__eglewQueryNativeDisplayNV) +#define eglQueryNativePixmapNV EGLEW_GET_FUN(__eglewQueryNativePixmapNV) +#define eglQueryNativeWindowNV EGLEW_GET_FUN(__eglewQueryNativeWindowNV) + +#define EGLEW_NV_native_query EGLEW_GET_VAR(__EGLEW_NV_native_query) + +#endif /* EGL_NV_native_query */ + +/* ---------------------- EGL_NV_post_convert_rounding --------------------- */ + +#ifndef EGL_NV_post_convert_rounding +#define EGL_NV_post_convert_rounding 1 + +#define EGLEW_NV_post_convert_rounding EGLEW_GET_VAR(__EGLEW_NV_post_convert_rounding) + +#endif /* EGL_NV_post_convert_rounding */ + +/* ------------------------- EGL_NV_post_sub_buffer ------------------------ */ + +#ifndef EGL_NV_post_sub_buffer +#define EGL_NV_post_sub_buffer 1 + +#define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE + +typedef EGLBoolean ( * PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); + +#define eglPostSubBufferNV EGLEW_GET_FUN(__eglewPostSubBufferNV) + +#define EGLEW_NV_post_sub_buffer EGLEW_GET_VAR(__EGLEW_NV_post_sub_buffer) + +#endif /* EGL_NV_post_sub_buffer */ + +/* ------------------------ EGL_NV_quadruple_buffer ------------------------ */ + +#ifndef EGL_NV_quadruple_buffer +#define EGL_NV_quadruple_buffer 1 + +#define EGL_QUADRUPLE_BUFFER_NV 0x3231 + +#define EGLEW_NV_quadruple_buffer EGLEW_GET_VAR(__EGLEW_NV_quadruple_buffer) + +#endif /* EGL_NV_quadruple_buffer */ + +/* ------------------ EGL_NV_robustness_video_memory_purge ----------------- */ + +#ifndef EGL_NV_robustness_video_memory_purge +#define EGL_NV_robustness_video_memory_purge 1 + +#define EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x334C + +#define EGLEW_NV_robustness_video_memory_purge EGLEW_GET_VAR(__EGLEW_NV_robustness_video_memory_purge) + +#endif /* EGL_NV_robustness_video_memory_purge */ + +/* -------------------- EGL_NV_stream_consumer_eglimage -------------------- */ + +#ifndef EGL_NV_stream_consumer_eglimage +#define EGL_NV_stream_consumer_eglimage 1 + +#define EGL_STREAM_CONSUMER_IMAGE_NV 0x3373 +#define EGL_STREAM_IMAGE_ADD_NV 0x3374 +#define EGL_STREAM_IMAGE_REMOVE_NV 0x3375 +#define EGL_STREAM_IMAGE_AVAILABLE_NV 0x3376 + +typedef EGLint ( * PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLTime timeout, EGLenum* event, EGLAttrib* aux); +typedef EGLBoolean ( * PFNEGLSTREAMACQUIREIMAGENVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLImage* pImage, EGLSync sync); +typedef EGLBoolean ( * PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint num_modifiers, const EGLuint64KHR* modifiers, const EGLAttrib* attrib_list); +typedef EGLBoolean ( * PFNEGLSTREAMRELEASEIMAGENVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLImage image, EGLSync sync); + +#define eglQueryStreamConsumerEventNV EGLEW_GET_FUN(__eglewQueryStreamConsumerEventNV) +#define eglStreamAcquireImageNV EGLEW_GET_FUN(__eglewStreamAcquireImageNV) +#define eglStreamImageConsumerConnectNV EGLEW_GET_FUN(__eglewStreamImageConsumerConnectNV) +#define eglStreamReleaseImageNV EGLEW_GET_FUN(__eglewStreamReleaseImageNV) + +#define EGLEW_NV_stream_consumer_eglimage EGLEW_GET_VAR(__EGLEW_NV_stream_consumer_eglimage) + +#endif /* EGL_NV_stream_consumer_eglimage */ + +/* ----------- EGL_NV_stream_consumer_eglimage_use_scanout_attrib ---------- */ + +#ifndef EGL_NV_stream_consumer_eglimage_use_scanout_attrib +#define EGL_NV_stream_consumer_eglimage_use_scanout_attrib 1 + +#define EGL_STREAM_CONSUMER_IMAGE_USE_SCANOUT_NV 0x3378 + +#define EGLEW_NV_stream_consumer_eglimage_use_scanout_attrib EGLEW_GET_VAR(__EGLEW_NV_stream_consumer_eglimage_use_scanout_attrib) + +#endif /* EGL_NV_stream_consumer_eglimage_use_scanout_attrib */ + +/* ------------------ EGL_NV_stream_consumer_gltexture_yuv ----------------- */ + +#ifndef EGL_NV_stream_consumer_gltexture_yuv +#define EGL_NV_stream_consumer_gltexture_yuv 1 + +#define EGL_YUV_BUFFER_EXT 0x3300 +#define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311 +#define EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C +#define EGL_YUV_PLANE1_TEXTURE_UNIT_NV 0x332D +#define EGL_YUV_PLANE2_TEXTURE_UNIT_NV 0x332E + +typedef EGLBoolean ( * PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib* attrib_list); + +#define eglStreamConsumerGLTextureExternalAttribsNV EGLEW_GET_FUN(__eglewStreamConsumerGLTextureExternalAttribsNV) + +#define EGLEW_NV_stream_consumer_gltexture_yuv EGLEW_GET_VAR(__EGLEW_NV_stream_consumer_gltexture_yuv) + +#endif /* EGL_NV_stream_consumer_gltexture_yuv */ + +/* ---------------------- EGL_NV_stream_cross_display ---------------------- */ + +#ifndef EGL_NV_stream_cross_display +#define EGL_NV_stream_cross_display 1 + +#define EGL_STREAM_CROSS_DISPLAY_NV 0x334E + +#define EGLEW_NV_stream_cross_display EGLEW_GET_VAR(__EGLEW_NV_stream_cross_display) + +#endif /* EGL_NV_stream_cross_display */ + +/* ----------------------- EGL_NV_stream_cross_object ---------------------- */ + +#ifndef EGL_NV_stream_cross_object +#define EGL_NV_stream_cross_object 1 + +#define EGL_STREAM_CROSS_OBJECT_NV 0x334D + +#define EGLEW_NV_stream_cross_object EGLEW_GET_VAR(__EGLEW_NV_stream_cross_object) + +#endif /* EGL_NV_stream_cross_object */ + +/* --------------------- EGL_NV_stream_cross_partition --------------------- */ + +#ifndef EGL_NV_stream_cross_partition +#define EGL_NV_stream_cross_partition 1 + +#define EGL_STREAM_CROSS_PARTITION_NV 0x323F + +#define EGLEW_NV_stream_cross_partition EGLEW_GET_VAR(__EGLEW_NV_stream_cross_partition) + +#endif /* EGL_NV_stream_cross_partition */ + +/* ---------------------- EGL_NV_stream_cross_process ---------------------- */ + +#ifndef EGL_NV_stream_cross_process +#define EGL_NV_stream_cross_process 1 + +#define EGL_STREAM_CROSS_PROCESS_NV 0x3245 + +#define EGLEW_NV_stream_cross_process EGLEW_GET_VAR(__EGLEW_NV_stream_cross_process) + +#endif /* EGL_NV_stream_cross_process */ + +/* ----------------------- EGL_NV_stream_cross_system ---------------------- */ + +#ifndef EGL_NV_stream_cross_system +#define EGL_NV_stream_cross_system 1 + +#define EGL_STREAM_CROSS_SYSTEM_NV 0x334F + +#define EGLEW_NV_stream_cross_system EGLEW_GET_VAR(__EGLEW_NV_stream_cross_system) + +#endif /* EGL_NV_stream_cross_system */ + +/* --------------------------- EGL_NV_stream_dma --------------------------- */ + +#ifndef EGL_NV_stream_dma +#define EGL_NV_stream_dma 1 + +#define EGL_STREAM_DMA_NV 0x3371 +#define EGL_STREAM_DMA_SERVER_NV 0x3372 + +#define EGLEW_NV_stream_dma EGLEW_GET_VAR(__EGLEW_NV_stream_dma) + +#endif /* EGL_NV_stream_dma */ + +/* ------------------------ EGL_NV_stream_fifo_next ------------------------ */ + +#ifndef EGL_NV_stream_fifo_next +#define EGL_NV_stream_fifo_next 1 + +#define EGL_PENDING_FRAME_NV 0x3329 +#define EGL_STREAM_TIME_PENDING_NV 0x332A + +#define EGLEW_NV_stream_fifo_next EGLEW_GET_VAR(__EGLEW_NV_stream_fifo_next) + +#endif /* EGL_NV_stream_fifo_next */ + +/* --------------------- EGL_NV_stream_fifo_synchronous -------------------- */ + +#ifndef EGL_NV_stream_fifo_synchronous +#define EGL_NV_stream_fifo_synchronous 1 + +#define EGL_STREAM_FIFO_SYNCHRONOUS_NV 0x3336 + +#define EGLEW_NV_stream_fifo_synchronous EGLEW_GET_VAR(__EGLEW_NV_stream_fifo_synchronous) + +#endif /* EGL_NV_stream_fifo_synchronous */ + +/* -------------------------- EGL_NV_stream_flush -------------------------- */ + +#ifndef EGL_NV_stream_flush +#define EGL_NV_stream_flush 1 + +typedef EGLBoolean ( * PFNEGLSTREAMFLUSHNVPROC) (EGLDisplay dpy, EGLStreamKHR stream); + +#define eglStreamFlushNV EGLEW_GET_FUN(__eglewStreamFlushNV) + +#define EGLEW_NV_stream_flush EGLEW_GET_VAR(__EGLEW_NV_stream_flush) + +#endif /* EGL_NV_stream_flush */ + +/* ----------------------- EGL_NV_stream_frame_limits ---------------------- */ + +#ifndef EGL_NV_stream_frame_limits +#define EGL_NV_stream_frame_limits 1 + +#define EGL_PRODUCER_MAX_FRAME_HINT_NV 0x3337 +#define EGL_CONSUMER_MAX_FRAME_HINT_NV 0x3338 + +#define EGLEW_NV_stream_frame_limits EGLEW_GET_VAR(__EGLEW_NV_stream_frame_limits) + +#endif /* EGL_NV_stream_frame_limits */ + +/* ------------------------- EGL_NV_stream_metadata ------------------------ */ + +#ifndef EGL_NV_stream_metadata +#define EGL_NV_stream_metadata 1 + +#define EGL_MAX_STREAM_METADATA_BLOCKS_NV 0x3250 +#define EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV 0x3251 +#define EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV 0x3252 +#define EGL_PRODUCER_METADATA_NV 0x3253 +#define EGL_CONSUMER_METADATA_NV 0x3254 +#define EGL_METADATA0_SIZE_NV 0x3255 +#define EGL_METADATA1_SIZE_NV 0x3256 +#define EGL_METADATA2_SIZE_NV 0x3257 +#define EGL_METADATA3_SIZE_NV 0x3258 +#define EGL_METADATA0_TYPE_NV 0x3259 +#define EGL_METADATA1_TYPE_NV 0x325A +#define EGL_METADATA2_TYPE_NV 0x325B +#define EGL_METADATA3_TYPE_NV 0x325C +#define EGL_PENDING_METADATA_NV 0x3328 + +typedef EGLBoolean ( * PFNEGLQUERYDISPLAYATTRIBNVPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib* value); +typedef EGLBoolean ( * PFNEGLQUERYSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void* data); +typedef EGLBoolean ( * PFNEGLSETSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void* data); + +#define eglQueryDisplayAttribNV EGLEW_GET_FUN(__eglewQueryDisplayAttribNV) +#define eglQueryStreamMetadataNV EGLEW_GET_FUN(__eglewQueryStreamMetadataNV) +#define eglSetStreamMetadataNV EGLEW_GET_FUN(__eglewSetStreamMetadataNV) + +#define EGLEW_NV_stream_metadata EGLEW_GET_VAR(__EGLEW_NV_stream_metadata) + +#endif /* EGL_NV_stream_metadata */ + +/* -------------------------- EGL_NV_stream_origin ------------------------- */ + +#ifndef EGL_NV_stream_origin +#define EGL_NV_stream_origin 1 + +#define EGL_STREAM_FRAME_ORIGIN_X_NV 0x3366 +#define EGL_STREAM_FRAME_ORIGIN_Y_NV 0x3367 +#define EGL_STREAM_FRAME_MAJOR_AXIS_NV 0x3368 +#define EGL_CONSUMER_AUTO_ORIENTATION_NV 0x3369 +#define EGL_PRODUCER_AUTO_ORIENTATION_NV 0x336A +#define EGL_LEFT_NV 0x336B +#define EGL_RIGHT_NV 0x336C +#define EGL_TOP_NV 0x336D +#define EGL_BOTTOM_NV 0x336E +#define EGL_X_AXIS_NV 0x336F +#define EGL_Y_AXIS_NV 0x3370 + +#define EGLEW_NV_stream_origin EGLEW_GET_VAR(__EGLEW_NV_stream_origin) + +#endif /* EGL_NV_stream_origin */ + +/* -------------------------- EGL_NV_stream_remote ------------------------- */ + +#ifndef EGL_NV_stream_remote +#define EGL_NV_stream_remote 1 + +#define EGL_STREAM_STATE_INITIALIZING_NV 0x3240 +#define EGL_STREAM_TYPE_NV 0x3241 +#define EGL_STREAM_PROTOCOL_NV 0x3242 +#define EGL_STREAM_ENDPOINT_NV 0x3243 +#define EGL_STREAM_LOCAL_NV 0x3244 +#define EGL_STREAM_PROTOCOL_FD_NV 0x3246 +#define EGL_STREAM_PRODUCER_NV 0x3247 +#define EGL_STREAM_CONSUMER_NV 0x3248 + +#define EGLEW_NV_stream_remote EGLEW_GET_VAR(__EGLEW_NV_stream_remote) + +#endif /* EGL_NV_stream_remote */ + +/* -------------------------- EGL_NV_stream_reset -------------------------- */ + +#ifndef EGL_NV_stream_reset +#define EGL_NV_stream_reset 1 + +#define EGL_SUPPORT_RESET_NV 0x3334 +#define EGL_SUPPORT_REUSE_NV 0x3335 + +typedef EGLBoolean ( * PFNEGLRESETSTREAMNVPROC) (EGLDisplay dpy, EGLStreamKHR stream); + +#define eglResetStreamNV EGLEW_GET_FUN(__eglewResetStreamNV) + +#define EGLEW_NV_stream_reset EGLEW_GET_VAR(__EGLEW_NV_stream_reset) + +#endif /* EGL_NV_stream_reset */ + +/* -------------------------- EGL_NV_stream_socket ------------------------- */ + +#ifndef EGL_NV_stream_socket +#define EGL_NV_stream_socket 1 + +#define EGL_STREAM_PROTOCOL_SOCKET_NV 0x324B +#define EGL_SOCKET_HANDLE_NV 0x324C +#define EGL_SOCKET_TYPE_NV 0x324D + +#define EGLEW_NV_stream_socket EGLEW_GET_VAR(__EGLEW_NV_stream_socket) + +#endif /* EGL_NV_stream_socket */ + +/* ----------------------- EGL_NV_stream_socket_inet ----------------------- */ + +#ifndef EGL_NV_stream_socket_inet +#define EGL_NV_stream_socket_inet 1 + +#define EGL_SOCKET_TYPE_INET_NV 0x324F + +#define EGLEW_NV_stream_socket_inet EGLEW_GET_VAR(__EGLEW_NV_stream_socket_inet) + +#endif /* EGL_NV_stream_socket_inet */ + +/* ----------------------- EGL_NV_stream_socket_unix ----------------------- */ + +#ifndef EGL_NV_stream_socket_unix +#define EGL_NV_stream_socket_unix 1 + +#define EGL_SOCKET_TYPE_UNIX_NV 0x324E + +#define EGLEW_NV_stream_socket_unix EGLEW_GET_VAR(__EGLEW_NV_stream_socket_unix) + +#endif /* EGL_NV_stream_socket_unix */ + +/* --------------------------- EGL_NV_stream_sync -------------------------- */ + +#ifndef EGL_NV_stream_sync +#define EGL_NV_stream_sync 1 + +#define EGL_SYNC_TYPE_KHR 0x30F7 +#define EGL_SYNC_NEW_FRAME_NV 0x321F + +typedef EGLSyncKHR ( * PFNEGLCREATESTREAMSYNCNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint* attrib_list); + +#define eglCreateStreamSyncNV EGLEW_GET_FUN(__eglewCreateStreamSyncNV) + +#define EGLEW_NV_stream_sync EGLEW_GET_VAR(__EGLEW_NV_stream_sync) + +#endif /* EGL_NV_stream_sync */ + +/* ------------------------------ EGL_NV_sync ------------------------------ */ + +#ifndef EGL_NV_sync +#define EGL_NV_sync 1 + +#define EGL_NO_SYNC_NV EGL_CAST(EGLSyncNV,0) +#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001 +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6 +#define EGL_SYNC_STATUS_NV 0x30E7 +#define EGL_SIGNALED_NV 0x30E8 +#define EGL_UNSIGNALED_NV 0x30E9 +#define EGL_ALREADY_SIGNALED_NV 0x30EA +#define EGL_TIMEOUT_EXPIRED_NV 0x30EB +#define EGL_CONDITION_SATISFIED_NV 0x30EC +#define EGL_SYNC_TYPE_NV 0x30ED +#define EGL_SYNC_CONDITION_NV 0x30EE +#define EGL_SYNC_FENCE_NV 0x30EF +#define EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFF + +typedef EGLint ( * PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); +typedef EGLSyncNV ( * PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint* attrib_list); +typedef EGLBoolean ( * PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync); +typedef EGLBoolean ( * PFNEGLFENCENVPROC) (EGLSyncNV sync); +typedef EGLBoolean ( * PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint* value); +typedef EGLBoolean ( * PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode); + +#define eglClientWaitSyncNV EGLEW_GET_FUN(__eglewClientWaitSyncNV) +#define eglCreateFenceSyncNV EGLEW_GET_FUN(__eglewCreateFenceSyncNV) +#define eglDestroySyncNV EGLEW_GET_FUN(__eglewDestroySyncNV) +#define eglFenceNV EGLEW_GET_FUN(__eglewFenceNV) +#define eglGetSyncAttribNV EGLEW_GET_FUN(__eglewGetSyncAttribNV) +#define eglSignalSyncNV EGLEW_GET_FUN(__eglewSignalSyncNV) + +#define EGLEW_NV_sync EGLEW_GET_VAR(__EGLEW_NV_sync) + +#endif /* EGL_NV_sync */ + +/* --------------------------- EGL_NV_system_time -------------------------- */ + +#ifndef EGL_NV_system_time +#define EGL_NV_system_time 1 + +typedef EGLuint64NV ( * PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void); +typedef EGLuint64NV ( * PFNEGLGETSYSTEMTIMENVPROC) (void); + +#define eglGetSystemTimeFrequencyNV EGLEW_GET_FUN(__eglewGetSystemTimeFrequencyNV) +#define eglGetSystemTimeNV EGLEW_GET_FUN(__eglewGetSystemTimeNV) + +#define EGLEW_NV_system_time EGLEW_GET_VAR(__EGLEW_NV_system_time) + +#endif /* EGL_NV_system_time */ + +/* -------------------------- EGL_NV_triple_buffer ------------------------- */ + +#ifndef EGL_NV_triple_buffer +#define EGL_NV_triple_buffer 1 + +#define EGL_TRIPLE_BUFFER_NV 0x3230 + +#define EGLEW_NV_triple_buffer EGLEW_GET_VAR(__EGLEW_NV_triple_buffer) + +#endif /* EGL_NV_triple_buffer */ + +/* ---------------------- EGL_QNX_image_native_buffer ---------------------- */ + +#ifndef EGL_QNX_image_native_buffer +#define EGL_QNX_image_native_buffer 1 + +#define EGL_NATIVE_BUFFER_QNX 0x3551 + +#define EGLEW_QNX_image_native_buffer EGLEW_GET_VAR(__EGLEW_QNX_image_native_buffer) + +#endif /* EGL_QNX_image_native_buffer */ + +/* ------------------------ EGL_QNX_platform_screen ------------------------ */ + +#ifndef EGL_QNX_platform_screen +#define EGL_QNX_platform_screen 1 + +#define EGL_PLATFORM_SCREEN_QNX 0x3550 + +#define EGLEW_QNX_platform_screen EGLEW_GET_VAR(__EGLEW_QNX_platform_screen) + +#endif /* EGL_QNX_platform_screen */ + +/* --------------------- EGL_TIZEN_image_native_buffer --------------------- */ + +#ifndef EGL_TIZEN_image_native_buffer +#define EGL_TIZEN_image_native_buffer 1 + +#define EGL_NATIVE_BUFFER_TIZEN 0x32A0 + +#define EGLEW_TIZEN_image_native_buffer EGLEW_GET_VAR(__EGLEW_TIZEN_image_native_buffer) + +#endif /* EGL_TIZEN_image_native_buffer */ + +/* --------------------- EGL_TIZEN_image_native_surface -------------------- */ + +#ifndef EGL_TIZEN_image_native_surface +#define EGL_TIZEN_image_native_surface 1 + +#define EGL_NATIVE_SURFACE_TIZEN 0x32A1 + +#define EGLEW_TIZEN_image_native_surface EGLEW_GET_VAR(__EGLEW_TIZEN_image_native_surface) + +#endif /* EGL_TIZEN_image_native_surface */ + +/* ---------------------- EGL_WL_bind_wayland_display ---------------------- */ + +#ifndef EGL_WL_bind_wayland_display +#define EGL_WL_bind_wayland_display 1 + +#define EGL_WAYLAND_BUFFER_WL 0x31D5 +#define EGL_WAYLAND_PLANE_WL 0x31D6 +#define EGL_TEXTURE_Y_U_V_WL 0x31D7 +#define EGL_TEXTURE_Y_UV_WL 0x31D8 +#define EGL_TEXTURE_Y_XUXV_WL 0x31D9 +#define EGL_TEXTURE_EXTERNAL_WL 0x31DA +#define EGL_WAYLAND_Y_INVERTED_WL 0x31DB + +typedef EGLBoolean ( * PFNEGLBINDWAYLANDDISPLAYWLPROC) (EGLDisplay dpy, struct wl_display* display); +typedef EGLBoolean ( * PFNEGLQUERYWAYLANDBUFFERWLPROC) (EGLDisplay dpy, struct wl_resource* buffer, EGLint attribute, EGLint* value); +typedef EGLBoolean ( * PFNEGLUNBINDWAYLANDDISPLAYWLPROC) (EGLDisplay dpy, struct wl_display* display); + +#define eglBindWaylandDisplayWL EGLEW_GET_FUN(__eglewBindWaylandDisplayWL) +#define eglQueryWaylandBufferWL EGLEW_GET_FUN(__eglewQueryWaylandBufferWL) +#define eglUnbindWaylandDisplayWL EGLEW_GET_FUN(__eglewUnbindWaylandDisplayWL) + +#define EGLEW_WL_bind_wayland_display EGLEW_GET_VAR(__EGLEW_WL_bind_wayland_display) + +#endif /* EGL_WL_bind_wayland_display */ + +/* ---------------- EGL_WL_create_wayland_buffer_from_image ---------------- */ + +#ifndef EGL_WL_create_wayland_buffer_from_image +#define EGL_WL_create_wayland_buffer_from_image 1 + +typedef struct wl_buffer* ( * PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC) (EGLDisplay dpy, EGLImageKHR image); + +#define eglCreateWaylandBufferFromImageWL EGLEW_GET_FUN(__eglewCreateWaylandBufferFromImageWL) + +#define EGLEW_WL_create_wayland_buffer_from_image EGLEW_GET_VAR(__EGLEW_WL_create_wayland_buffer_from_image) + +#endif /* EGL_WL_create_wayland_buffer_from_image */ + +/* ------------------------------------------------------------------------- */ + +#define EGLEW_FUN_EXPORT GLEW_FUN_EXPORT +#define EGLEW_VAR_EXPORT GLEW_VAR_EXPORT + +EGLEW_FUN_EXPORT PFNEGLCHOOSECONFIGPROC __eglewChooseConfig; +EGLEW_FUN_EXPORT PFNEGLCOPYBUFFERSPROC __eglewCopyBuffers; +EGLEW_FUN_EXPORT PFNEGLCREATECONTEXTPROC __eglewCreateContext; +EGLEW_FUN_EXPORT PFNEGLCREATEPBUFFERSURFACEPROC __eglewCreatePbufferSurface; +EGLEW_FUN_EXPORT PFNEGLCREATEPIXMAPSURFACEPROC __eglewCreatePixmapSurface; +EGLEW_FUN_EXPORT PFNEGLCREATEWINDOWSURFACEPROC __eglewCreateWindowSurface; +EGLEW_FUN_EXPORT PFNEGLDESTROYCONTEXTPROC __eglewDestroyContext; +EGLEW_FUN_EXPORT PFNEGLDESTROYSURFACEPROC __eglewDestroySurface; +EGLEW_FUN_EXPORT PFNEGLGETCONFIGATTRIBPROC __eglewGetConfigAttrib; +EGLEW_FUN_EXPORT PFNEGLGETCONFIGSPROC __eglewGetConfigs; +EGLEW_FUN_EXPORT PFNEGLGETCURRENTDISPLAYPROC __eglewGetCurrentDisplay; +EGLEW_FUN_EXPORT PFNEGLGETCURRENTSURFACEPROC __eglewGetCurrentSurface; +EGLEW_FUN_EXPORT PFNEGLGETDISPLAYPROC __eglewGetDisplay; +EGLEW_FUN_EXPORT PFNEGLGETERRORPROC __eglewGetError; +EGLEW_FUN_EXPORT PFNEGLINITIALIZEPROC __eglewInitialize; +EGLEW_FUN_EXPORT PFNEGLMAKECURRENTPROC __eglewMakeCurrent; +EGLEW_FUN_EXPORT PFNEGLQUERYCONTEXTPROC __eglewQueryContext; +EGLEW_FUN_EXPORT PFNEGLQUERYSTRINGPROC __eglewQueryString; +EGLEW_FUN_EXPORT PFNEGLQUERYSURFACEPROC __eglewQuerySurface; +EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSPROC __eglewSwapBuffers; +EGLEW_FUN_EXPORT PFNEGLTERMINATEPROC __eglewTerminate; +EGLEW_FUN_EXPORT PFNEGLWAITGLPROC __eglewWaitGL; +EGLEW_FUN_EXPORT PFNEGLWAITNATIVEPROC __eglewWaitNative; + +EGLEW_FUN_EXPORT PFNEGLBINDTEXIMAGEPROC __eglewBindTexImage; +EGLEW_FUN_EXPORT PFNEGLRELEASETEXIMAGEPROC __eglewReleaseTexImage; +EGLEW_FUN_EXPORT PFNEGLSURFACEATTRIBPROC __eglewSurfaceAttrib; +EGLEW_FUN_EXPORT PFNEGLSWAPINTERVALPROC __eglewSwapInterval; + +EGLEW_FUN_EXPORT PFNEGLBINDAPIPROC __eglewBindAPI; +EGLEW_FUN_EXPORT PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC __eglewCreatePbufferFromClientBuffer; +EGLEW_FUN_EXPORT PFNEGLQUERYAPIPROC __eglewQueryAPI; +EGLEW_FUN_EXPORT PFNEGLRELEASETHREADPROC __eglewReleaseThread; +EGLEW_FUN_EXPORT PFNEGLWAITCLIENTPROC __eglewWaitClient; + +EGLEW_FUN_EXPORT PFNEGLGETCURRENTCONTEXTPROC __eglewGetCurrentContext; + +EGLEW_FUN_EXPORT PFNEGLCLIENTWAITSYNCPROC __eglewClientWaitSync; +EGLEW_FUN_EXPORT PFNEGLCREATEIMAGEPROC __eglewCreateImage; +EGLEW_FUN_EXPORT PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC __eglewCreatePlatformPixmapSurface; +EGLEW_FUN_EXPORT PFNEGLCREATEPLATFORMWINDOWSURFACEPROC __eglewCreatePlatformWindowSurface; +EGLEW_FUN_EXPORT PFNEGLCREATESYNCPROC __eglewCreateSync; +EGLEW_FUN_EXPORT PFNEGLDESTROYIMAGEPROC __eglewDestroyImage; +EGLEW_FUN_EXPORT PFNEGLDESTROYSYNCPROC __eglewDestroySync; +EGLEW_FUN_EXPORT PFNEGLGETPLATFORMDISPLAYPROC __eglewGetPlatformDisplay; +EGLEW_FUN_EXPORT PFNEGLGETSYNCATTRIBPROC __eglewGetSyncAttrib; +EGLEW_FUN_EXPORT PFNEGLWAITSYNCPROC __eglewWaitSync; + +EGLEW_FUN_EXPORT PFNEGLSETBLOBCACHEFUNCSANDROIDPROC __eglewSetBlobCacheFuncsANDROID; + +EGLEW_FUN_EXPORT PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC __eglewCreateNativeClientBufferANDROID; + +EGLEW_FUN_EXPORT PFNEGLGETCOMPOSITORTIMINGANDROIDPROC __eglewGetCompositorTimingANDROID; +EGLEW_FUN_EXPORT PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC __eglewGetCompositorTimingSupportedANDROID; +EGLEW_FUN_EXPORT PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC __eglewGetFrameTimestampSupportedANDROID; +EGLEW_FUN_EXPORT PFNEGLGETFRAMETIMESTAMPSANDROIDPROC __eglewGetFrameTimestampsANDROID; +EGLEW_FUN_EXPORT PFNEGLGETNEXTFRAMEIDANDROIDPROC __eglewGetNextFrameIdANDROID; + +EGLEW_FUN_EXPORT PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC __eglewGetNativeClientBufferANDROID; + +EGLEW_FUN_EXPORT PFNEGLDUPNATIVEFENCEFDANDROIDPROC __eglewDupNativeFenceFDANDROID; + +EGLEW_FUN_EXPORT PFNEGLPRESENTATIONTIMEANDROIDPROC __eglewPresentationTimeANDROID; + +EGLEW_FUN_EXPORT PFNEGLQUERYSURFACEPOINTERANGLEPROC __eglewQuerySurfacePointerANGLE; + +EGLEW_FUN_EXPORT PFNEGLGETMSCRATEANGLEPROC __eglewGetMscRateANGLE; + +EGLEW_FUN_EXPORT PFNEGLCLIENTSIGNALSYNCEXTPROC __eglewClientSignalSyncEXT; + +EGLEW_FUN_EXPORT PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC __eglewCompositorBindTexWindowEXT; +EGLEW_FUN_EXPORT PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC __eglewCompositorSetContextAttributesEXT; +EGLEW_FUN_EXPORT PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC __eglewCompositorSetContextListEXT; +EGLEW_FUN_EXPORT PFNEGLCOMPOSITORSETSIZEEXTPROC __eglewCompositorSetSizeEXT; +EGLEW_FUN_EXPORT PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC __eglewCompositorSetWindowAttributesEXT; +EGLEW_FUN_EXPORT PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC __eglewCompositorSetWindowListEXT; +EGLEW_FUN_EXPORT PFNEGLCOMPOSITORSWAPPOLICYEXTPROC __eglewCompositorSwapPolicyEXT; + +EGLEW_FUN_EXPORT PFNEGLQUERYDEVICESEXTPROC __eglewQueryDevicesEXT; + +EGLEW_FUN_EXPORT PFNEGLQUERYDEVICEBINARYEXTPROC __eglewQueryDeviceBinaryEXT; + +EGLEW_FUN_EXPORT PFNEGLQUERYDEVICEATTRIBEXTPROC __eglewQueryDeviceAttribEXT; +EGLEW_FUN_EXPORT PFNEGLQUERYDEVICESTRINGEXTPROC __eglewQueryDeviceStringEXT; +EGLEW_FUN_EXPORT PFNEGLQUERYDISPLAYATTRIBEXTPROC __eglewQueryDisplayAttribEXT; + +EGLEW_FUN_EXPORT PFNEGLDESTROYDISPLAYEXTPROC __eglewDestroyDisplayEXT; + +EGLEW_FUN_EXPORT PFNEGLQUERYDMABUFFORMATSEXTPROC __eglewQueryDmaBufFormatsEXT; +EGLEW_FUN_EXPORT PFNEGLQUERYDMABUFMODIFIERSEXTPROC __eglewQueryDmaBufModifiersEXT; + +EGLEW_FUN_EXPORT PFNEGLGETOUTPUTLAYERSEXTPROC __eglewGetOutputLayersEXT; +EGLEW_FUN_EXPORT PFNEGLGETOUTPUTPORTSEXTPROC __eglewGetOutputPortsEXT; +EGLEW_FUN_EXPORT PFNEGLOUTPUTLAYERATTRIBEXTPROC __eglewOutputLayerAttribEXT; +EGLEW_FUN_EXPORT PFNEGLOUTPUTPORTATTRIBEXTPROC __eglewOutputPortAttribEXT; +EGLEW_FUN_EXPORT PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC __eglewQueryOutputLayerAttribEXT; +EGLEW_FUN_EXPORT PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC __eglewQueryOutputLayerStringEXT; +EGLEW_FUN_EXPORT PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC __eglewQueryOutputPortAttribEXT; +EGLEW_FUN_EXPORT PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC __eglewQueryOutputPortStringEXT; + +EGLEW_FUN_EXPORT PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC __eglewCreatePlatformPixmapSurfaceEXT; +EGLEW_FUN_EXPORT PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC __eglewCreatePlatformWindowSurfaceEXT; +EGLEW_FUN_EXPORT PFNEGLGETPLATFORMDISPLAYEXTPROC __eglewGetPlatformDisplayEXT; + +EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMEROUTPUTEXTPROC __eglewStreamConsumerOutputEXT; + +EGLEW_FUN_EXPORT PFNEGLQUERYSUPPORTEDCOMPRESSIONRATESEXTPROC __eglewQuerySupportedCompressionRatesEXT; + +EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC __eglewSwapBuffersWithDamageEXT; + +EGLEW_FUN_EXPORT PFNEGLUNSIGNALSYNCEXTPROC __eglewUnsignalSyncEXT; + +EGLEW_FUN_EXPORT PFNEGLCREATEPIXMAPSURFACEHIPROC __eglewCreatePixmapSurfaceHI; + +EGLEW_FUN_EXPORT PFNEGLCREATESYNC64KHRPROC __eglewCreateSync64KHR; + +EGLEW_FUN_EXPORT PFNEGLDEBUGMESSAGECONTROLKHRPROC __eglewDebugMessageControlKHR; +EGLEW_FUN_EXPORT PFNEGLLABELOBJECTKHRPROC __eglewLabelObjectKHR; +EGLEW_FUN_EXPORT PFNEGLQUERYDEBUGKHRPROC __eglewQueryDebugKHR; + +EGLEW_FUN_EXPORT PFNEGLQUERYDISPLAYATTRIBKHRPROC __eglewQueryDisplayAttribKHR; + +EGLEW_FUN_EXPORT PFNEGLCREATEIMAGEKHRPROC __eglewCreateImageKHR; +EGLEW_FUN_EXPORT PFNEGLDESTROYIMAGEKHRPROC __eglewDestroyImageKHR; + +EGLEW_FUN_EXPORT PFNEGLLOCKSURFACEKHRPROC __eglewLockSurfaceKHR; +EGLEW_FUN_EXPORT PFNEGLUNLOCKSURFACEKHRPROC __eglewUnlockSurfaceKHR; + +EGLEW_FUN_EXPORT PFNEGLQUERYSURFACE64KHRPROC __eglewQuerySurface64KHR; + +EGLEW_FUN_EXPORT PFNEGLSETDAMAGEREGIONKHRPROC __eglewSetDamageRegionKHR; + +EGLEW_FUN_EXPORT PFNEGLCLIENTWAITSYNCKHRPROC __eglewClientWaitSyncKHR; +EGLEW_FUN_EXPORT PFNEGLCREATESYNCKHRPROC __eglewCreateSyncKHR; +EGLEW_FUN_EXPORT PFNEGLDESTROYSYNCKHRPROC __eglewDestroySyncKHR; +EGLEW_FUN_EXPORT PFNEGLGETSYNCATTRIBKHRPROC __eglewGetSyncAttribKHR; +EGLEW_FUN_EXPORT PFNEGLSIGNALSYNCKHRPROC __eglewSignalSyncKHR; + +EGLEW_FUN_EXPORT PFNEGLCREATESTREAMKHRPROC __eglewCreateStreamKHR; +EGLEW_FUN_EXPORT PFNEGLDESTROYSTREAMKHRPROC __eglewDestroyStreamKHR; +EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMKHRPROC __eglewQueryStreamKHR; +EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMU64KHRPROC __eglewQueryStreamu64KHR; +EGLEW_FUN_EXPORT PFNEGLSTREAMATTRIBKHRPROC __eglewStreamAttribKHR; + +EGLEW_FUN_EXPORT PFNEGLCREATESTREAMATTRIBKHRPROC __eglewCreateStreamAttribKHR; +EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMATTRIBKHRPROC __eglewQueryStreamAttribKHR; +EGLEW_FUN_EXPORT PFNEGLSETSTREAMATTRIBKHRPROC __eglewSetStreamAttribKHR; +EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC __eglewStreamConsumerAcquireAttribKHR; +EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC __eglewStreamConsumerReleaseAttribKHR; + +EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERACQUIREKHRPROC __eglewStreamConsumerAcquireKHR; +EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC __eglewStreamConsumerGLTextureExternalKHR; +EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERRELEASEKHRPROC __eglewStreamConsumerReleaseKHR; + +EGLEW_FUN_EXPORT PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC __eglewCreateStreamFromFileDescriptorKHR; +EGLEW_FUN_EXPORT PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC __eglewGetStreamFileDescriptorKHR; + +EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMTIMEKHRPROC __eglewQueryStreamTimeKHR; + +EGLEW_FUN_EXPORT PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC __eglewCreateStreamProducerSurfaceKHR; + +EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC __eglewSwapBuffersWithDamageKHR; + +EGLEW_FUN_EXPORT PFNEGLWAITSYNCKHRPROC __eglewWaitSyncKHR; + +EGLEW_FUN_EXPORT PFNEGLCREATEDRMIMAGEMESAPROC __eglewCreateDRMImageMESA; +EGLEW_FUN_EXPORT PFNEGLEXPORTDRMIMAGEMESAPROC __eglewExportDRMImageMESA; + +EGLEW_FUN_EXPORT PFNEGLEXPORTDMABUFIMAGEMESAPROC __eglewExportDMABUFImageMESA; +EGLEW_FUN_EXPORT PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC __eglewExportDMABUFImageQueryMESA; + +EGLEW_FUN_EXPORT PFNEGLGETDISPLAYDRIVERCONFIGPROC __eglewGetDisplayDriverConfig; +EGLEW_FUN_EXPORT PFNEGLGETDISPLAYDRIVERNAMEPROC __eglewGetDisplayDriverName; + +EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSREGIONNOKPROC __eglewSwapBuffersRegionNOK; + +EGLEW_FUN_EXPORT PFNEGLSWAPBUFFERSREGION2NOKPROC __eglewSwapBuffersRegion2NOK; + +EGLEW_FUN_EXPORT PFNEGLQUERYNATIVEDISPLAYNVPROC __eglewQueryNativeDisplayNV; +EGLEW_FUN_EXPORT PFNEGLQUERYNATIVEPIXMAPNVPROC __eglewQueryNativePixmapNV; +EGLEW_FUN_EXPORT PFNEGLQUERYNATIVEWINDOWNVPROC __eglewQueryNativeWindowNV; + +EGLEW_FUN_EXPORT PFNEGLPOSTSUBBUFFERNVPROC __eglewPostSubBufferNV; + +EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC __eglewQueryStreamConsumerEventNV; +EGLEW_FUN_EXPORT PFNEGLSTREAMACQUIREIMAGENVPROC __eglewStreamAcquireImageNV; +EGLEW_FUN_EXPORT PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC __eglewStreamImageConsumerConnectNV; +EGLEW_FUN_EXPORT PFNEGLSTREAMRELEASEIMAGENVPROC __eglewStreamReleaseImageNV; + +EGLEW_FUN_EXPORT PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC __eglewStreamConsumerGLTextureExternalAttribsNV; + +EGLEW_FUN_EXPORT PFNEGLSTREAMFLUSHNVPROC __eglewStreamFlushNV; + +EGLEW_FUN_EXPORT PFNEGLQUERYDISPLAYATTRIBNVPROC __eglewQueryDisplayAttribNV; +EGLEW_FUN_EXPORT PFNEGLQUERYSTREAMMETADATANVPROC __eglewQueryStreamMetadataNV; +EGLEW_FUN_EXPORT PFNEGLSETSTREAMMETADATANVPROC __eglewSetStreamMetadataNV; + +EGLEW_FUN_EXPORT PFNEGLRESETSTREAMNVPROC __eglewResetStreamNV; + +EGLEW_FUN_EXPORT PFNEGLCREATESTREAMSYNCNVPROC __eglewCreateStreamSyncNV; + +EGLEW_FUN_EXPORT PFNEGLCLIENTWAITSYNCNVPROC __eglewClientWaitSyncNV; +EGLEW_FUN_EXPORT PFNEGLCREATEFENCESYNCNVPROC __eglewCreateFenceSyncNV; +EGLEW_FUN_EXPORT PFNEGLDESTROYSYNCNVPROC __eglewDestroySyncNV; +EGLEW_FUN_EXPORT PFNEGLFENCENVPROC __eglewFenceNV; +EGLEW_FUN_EXPORT PFNEGLGETSYNCATTRIBNVPROC __eglewGetSyncAttribNV; +EGLEW_FUN_EXPORT PFNEGLSIGNALSYNCNVPROC __eglewSignalSyncNV; + +EGLEW_FUN_EXPORT PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC __eglewGetSystemTimeFrequencyNV; +EGLEW_FUN_EXPORT PFNEGLGETSYSTEMTIMENVPROC __eglewGetSystemTimeNV; + +EGLEW_FUN_EXPORT PFNEGLBINDWAYLANDDISPLAYWLPROC __eglewBindWaylandDisplayWL; +EGLEW_FUN_EXPORT PFNEGLQUERYWAYLANDBUFFERWLPROC __eglewQueryWaylandBufferWL; +EGLEW_FUN_EXPORT PFNEGLUNBINDWAYLANDDISPLAYWLPROC __eglewUnbindWaylandDisplayWL; + +EGLEW_FUN_EXPORT PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC __eglewCreateWaylandBufferFromImageWL; +EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_0; +EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_1; +EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_2; +EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_3; +EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_4; +EGLEW_VAR_EXPORT GLboolean __EGLEW_VERSION_1_5; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_GLES_layers; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_blob_cache; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_create_native_client_buffer; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_framebuffer_target; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_front_buffer_auto_refresh; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_get_frame_timestamps; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_get_native_client_buffer; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_image_native_buffer; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_native_fence_sync; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_presentation_time; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_recordable; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANDROID_telemetry_hint; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_d3d_share_handle_client_buffer; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_device_d3d; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_query_surface_pointer; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_surface_d3d_texture_2d_share_handle; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_sync_control_rate; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ANGLE_window_fixed_size; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ARM_image_format; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ARM_implicit_external_sync; +EGLEW_VAR_EXPORT GLboolean __EGLEW_ARM_pixmap_multisample_discard; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_bind_to_front; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_buffer_age; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_client_extensions; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_client_sync; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_compositor; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_config_select_group; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_create_context_robustness; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_base; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_drm; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_drm_render_node; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_enumeration; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_openwf; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_persistent_id; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_query; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_device_query_name; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_display_alloc; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_explicit_device; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_bt2020_hlg; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_bt2020_linear; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_bt2020_pq; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_display_p3; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_display_p3_linear; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_display_p3_passthrough; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_scrgb; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_gl_colorspace_scrgb_linear; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_image_dma_buf_import; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_image_dma_buf_import_modifiers; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_image_gl_colorspace; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_image_implicit_sync_control; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_multiview_window; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_output_base; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_output_drm; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_output_openwf; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_pixel_format_float; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_platform_base; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_platform_device; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_platform_wayland; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_platform_x11; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_platform_xcb; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_present_opaque; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_protected_content; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_protected_surface; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_query_reset_notification_strategy; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_stream_consumer_egloutput; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_surface_CTA861_3_metadata; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_surface_SMPTE2086_metadata; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_surface_compression; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_swap_buffers_with_damage; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_sync_reuse; +EGLEW_VAR_EXPORT GLboolean __EGLEW_EXT_yuv_surface; +EGLEW_VAR_EXPORT GLboolean __EGLEW_HI_clientpixmap; +EGLEW_VAR_EXPORT GLboolean __EGLEW_HI_colorformats; +EGLEW_VAR_EXPORT GLboolean __EGLEW_IMG_context_priority; +EGLEW_VAR_EXPORT GLboolean __EGLEW_IMG_image_plane_attribs; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_cl_event; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_cl_event2; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_client_get_all_proc_addresses; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_config_attribs; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_context_flush_control; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_create_context; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_create_context_no_error; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_debug; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_display_reference; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_fence_sync; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_get_all_proc_addresses; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_colorspace; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_renderbuffer_image; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_texture_2D_image; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_texture_3D_image; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_gl_texture_cubemap_image; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_image; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_image_base; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_image_pixmap; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_lock_surface; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_lock_surface2; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_lock_surface3; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_mutable_render_buffer; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_no_config_context; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_partial_update; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_platform_android; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_platform_gbm; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_platform_wayland; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_platform_x11; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_reusable_sync; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_attrib; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_consumer_gltexture; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_cross_process_fd; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_fifo; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_producer_aldatalocator; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_stream_producer_eglsurface; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_surfaceless_context; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_swap_buffers_with_damage; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_vg_parent_image; +EGLEW_VAR_EXPORT GLboolean __EGLEW_KHR_wait_sync; +EGLEW_VAR_EXPORT GLboolean __EGLEW_MESA_drm_image; +EGLEW_VAR_EXPORT GLboolean __EGLEW_MESA_image_dma_buf_export; +EGLEW_VAR_EXPORT GLboolean __EGLEW_MESA_platform_gbm; +EGLEW_VAR_EXPORT GLboolean __EGLEW_MESA_platform_surfaceless; +EGLEW_VAR_EXPORT GLboolean __EGLEW_MESA_query_driver; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NOK_swap_region; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NOK_swap_region2; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NOK_texture_from_pixmap; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_3dvision_surface; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_context_priority_realtime; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_coverage_sample; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_coverage_sample_resolve; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_cuda_event; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_depth_nonlinear; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_device_cuda; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_native_query; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_post_convert_rounding; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_post_sub_buffer; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_quadruple_buffer; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_robustness_video_memory_purge; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_consumer_eglimage; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_consumer_eglimage_use_scanout_attrib; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_consumer_gltexture_yuv; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_display; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_object; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_partition; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_process; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_cross_system; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_dma; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_fifo_next; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_fifo_synchronous; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_flush; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_frame_limits; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_metadata; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_origin; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_remote; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_reset; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_socket; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_socket_inet; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_socket_unix; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_stream_sync; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_sync; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_system_time; +EGLEW_VAR_EXPORT GLboolean __EGLEW_NV_triple_buffer; +EGLEW_VAR_EXPORT GLboolean __EGLEW_QNX_image_native_buffer; +EGLEW_VAR_EXPORT GLboolean __EGLEW_QNX_platform_screen; +EGLEW_VAR_EXPORT GLboolean __EGLEW_TIZEN_image_native_buffer; +EGLEW_VAR_EXPORT GLboolean __EGLEW_TIZEN_image_native_surface; +EGLEW_VAR_EXPORT GLboolean __EGLEW_WL_bind_wayland_display; +EGLEW_VAR_EXPORT GLboolean __EGLEW_WL_create_wayland_buffer_from_image; +/* ------------------------------------------------------------------------ */ + +GLEWAPI GLenum GLEWAPIENTRY eglewInit (EGLDisplay display); +GLEWAPI GLboolean GLEWAPIENTRY eglewIsSupported (const char *name); + +#define EGLEW_GET_VAR(x) (*(const GLboolean*)&x) +#define EGLEW_GET_FUN(x) x + +GLEWAPI GLboolean GLEWAPIENTRY eglewGetExtension (const char *name); + +#ifdef __cplusplus +} +#endif + +#endif /* __eglew_h__ */ diff --git a/lib/windows/include/GL/glew.h b/lib/windows/include/GL/glew.h new file mode 100644 index 0000000..9f07edc --- /dev/null +++ b/lib/windows/include/GL/glew.h @@ -0,0 +1,27052 @@ +/* +** The OpenGL Extension Wrangler Library +** Copyright (C) 2008-2025, Nigel Stewart +** Copyright (C) 2002-2008, Milan Ikits +** Copyright (C) 2002-2008, Marcelo E. Magallon +** Copyright (C) 2002, Lev Povalahev +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are met: +** +** * Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** * The name of the author may be used to endorse or promote products +** derived from this software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +** THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* + * Mesa 3-D graphics library + * Version: 7.0 + * + * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* +** Copyright (c) 2007 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +#ifndef __glew_h__ +#define __glew_h__ +#define __GLEW_H__ + +#if defined(__gl_h_) || defined(__GL_H__) || defined(_GL_H) || defined(__gl_gl_h_) || defined(__X_GL_H) +#error gl.h included before glew.h +#endif +#if defined(__gl2_h_) +#error gl2.h included before glew.h +#endif +#if defined(__gltypes_h_) +#error gltypes.h included before glew.h +#endif +#if defined(__REGAL_H__) +#error Regal.h included before glew.h +#endif +#if defined(__glext_h_) || defined(__GLEXT_H_) || defined(__gl_glext_h_) +#error glext.h included before glew.h +#endif +#if defined(__gl_ATI_h_) +#error glATI.h included before glew.h +#endif + +#define __gl_h_ +#define __gl2_h_ +#define __GL_H__ +#define _GL_H +#define __gl_gl_h_ +#define __gltypes_h_ +#define __REGAL_H__ +#define __X_GL_H +#define __glext_h_ +#define __GLEXT_H_ +#define __gl_glext_h_ +#define __gl_ATI_h_ + +#if defined(_WIN32) + +/* + * GLEW does not include to avoid name space pollution. + * GL needs GLAPI and GLAPIENTRY, GLU needs APIENTRY, CALLBACK, and wchar_t + * defined properly. + */ +/* and */ +#ifdef APIENTRY +# ifndef GLAPIENTRY +# define GLAPIENTRY APIENTRY +# endif +# ifndef GLEWAPIENTRY +# define GLEWAPIENTRY APIENTRY +# endif +#else +#define GLEW_APIENTRY_DEFINED +# if defined(__MINGW32__) || defined(__CYGWIN__) || (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) +# define APIENTRY __stdcall +# ifndef GLAPIENTRY +# define GLAPIENTRY __stdcall +# endif +# ifndef GLEWAPIENTRY +# define GLEWAPIENTRY __stdcall +# endif +# else +# define APIENTRY +# endif +#endif +/* */ +#ifndef CALLBACK +#define GLEW_CALLBACK_DEFINED +# if defined(__MINGW32__) || defined(__CYGWIN__) +# define CALLBACK __attribute__ ((__stdcall__)) +# elif (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +#endif +/* and */ +#ifndef WINGDIAPI +#define GLEW_WINGDIAPI_DEFINED +#define WINGDIAPI __declspec(dllimport) +#endif +/* */ +#if (defined(_MSC_VER) || defined(__BORLANDC__)) && !defined(_WCHAR_T_DEFINED) +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +#endif +/* */ +#if !defined(_W64) +# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && defined(_MSC_VER) && _MSC_VER >= 1300 +# define _W64 __w64 +# else +# define _W64 +# endif +#endif +#if !defined(_PTRDIFF_T_DEFINED) && !defined(_PTRDIFF_T_) && !defined(__MINGW64__) +# ifdef _WIN64 +typedef __int64 ptrdiff_t; +# else +typedef _W64 int ptrdiff_t; +# endif +# define _PTRDIFF_T_DEFINED +# define _PTRDIFF_T_ +#endif + +#ifndef GLAPI +# if defined(__MINGW32__) || defined(__CYGWIN__) +# define GLAPI extern +# else +# define GLAPI WINGDIAPI +# endif +#endif + +/* + * GLEW_STATIC is defined for static library. + * GLEW_BUILD is defined for building the DLL library. + */ + +#ifdef GLEW_STATIC +# define GLEWAPI extern +#else +# ifdef GLEW_BUILD +# define GLEWAPI extern __declspec(dllexport) +# else +# define GLEWAPI extern __declspec(dllimport) +# endif +#endif + +#else /* _UNIX */ + +/* + * Needed for ptrdiff_t in turn needed by VBO. This is defined by ISO + * C. On my system, this amounts to _3 lines_ of included code, all of + * them pretty much harmless. If you know of a way of detecting 32 vs + * 64 _targets_ at compile time you are free to replace this with + * something that's portable. For now, _this_ is the portable solution. + * (mem, 2004-01-04) + */ + +#if defined(__APPLE__) || defined(__linux__) +/* GCC12 errors out when including with __cplusplus < 201103L */ +# if defined(__cplusplus) && __cplusplus >= 201103L +# include +# include +# else +# include +# include +# endif +#else + +# include + +/* SGI MIPSPro doesn't like stdint.h in C++ mode */ +/* ID: 3376260 Solaris 9 has inttypes.h, but not stdint.h */ + +# if (defined(__sgi) || defined(__sun)) && !defined(__GNUC__) +# include +# else +# include +# endif +#endif + +#define GLEW_APIENTRY_DEFINED +#define APIENTRY + +/* + * GLEW_STATIC is defined for static library. + */ + +#ifdef GLEW_STATIC +# define GLEWAPI extern +#else +# if defined(__GNUC__) && __GNUC__>=4 +# define GLEWAPI extern __attribute__ ((visibility("default"))) +# elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) +# define GLEWAPI extern __global +# else +# define GLEWAPI extern +# endif +#endif + +/* */ +#ifndef GLAPI +#define GLAPI extern +#endif + +#endif /* _WIN32 */ + +#ifndef GLAPIENTRY +#define GLAPIENTRY +#endif + +#ifndef GLEWAPIENTRY +#define GLEWAPIENTRY +#endif + +#define GLEW_VAR_EXPORT GLEWAPI +#define GLEW_FUN_EXPORT GLEWAPI + +#ifdef __cplusplus +extern "C" { +#endif + +/* ----------------------------- GL_VERSION_1_1 ---------------------------- */ + +#ifndef GL_VERSION_1_1 +#define GL_VERSION_1_1 1 + +typedef unsigned int GLenum; +typedef unsigned int GLbitfield; +typedef unsigned int GLuint; +typedef int GLint; +typedef int GLsizei; +typedef unsigned char GLboolean; +typedef signed char GLbyte; +typedef short GLshort; +typedef unsigned char GLubyte; +typedef unsigned short GLushort; +typedef unsigned long GLulong; +typedef float GLfloat; +typedef float GLclampf; +typedef double GLdouble; +typedef double GLclampd; +typedef void GLvoid; +#if defined(_MSC_VER) && _MSC_VER < 1400 +typedef __int64 GLint64EXT; +typedef unsigned __int64 GLuint64EXT; +#elif defined(_MSC_VER) || defined(__BORLANDC__) +typedef signed long long GLint64EXT; +typedef unsigned long long GLuint64EXT; +#else +# if defined(__MINGW32__) || defined(__CYGWIN__) +#include +# endif +typedef int64_t GLint64EXT; +typedef uint64_t GLuint64EXT; +#endif +typedef GLint64EXT GLint64; +typedef GLuint64EXT GLuint64; +typedef struct __GLsync *GLsync; + +typedef char GLchar; + +typedef void *GLeglImageOES; /* GL_EXT_EGL_image_storage */ + +#define GL_ZERO 0 +#define GL_FALSE 0 +#define GL_LOGIC_OP 0x0BF1 +#define GL_NONE 0 +#define GL_TEXTURE_COMPONENTS 0x1003 +#define GL_NO_ERROR 0 +#define GL_POINTS 0x0000 +#define GL_CURRENT_BIT 0x00000001 +#define GL_TRUE 1 +#define GL_ONE 1 +#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 +#define GL_LINES 0x0001 +#define GL_LINE_LOOP 0x0002 +#define GL_POINT_BIT 0x00000002 +#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 +#define GL_LINE_STRIP 0x0003 +#define GL_LINE_BIT 0x00000004 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_FAN 0x0006 +#define GL_QUADS 0x0007 +#define GL_QUAD_STRIP 0x0008 +#define GL_POLYGON_BIT 0x00000008 +#define GL_POLYGON 0x0009 +#define GL_POLYGON_STIPPLE_BIT 0x00000010 +#define GL_PIXEL_MODE_BIT 0x00000020 +#define GL_LIGHTING_BIT 0x00000040 +#define GL_FOG_BIT 0x00000080 +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_ACCUM 0x0100 +#define GL_LOAD 0x0101 +#define GL_RETURN 0x0102 +#define GL_MULT 0x0103 +#define GL_ADD 0x0104 +#define GL_NEVER 0x0200 +#define GL_ACCUM_BUFFER_BIT 0x00000200 +#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_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_STENCIL_BUFFER_BIT 0x00000400 +#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_AUX0 0x0409 +#define GL_AUX1 0x040A +#define GL_AUX2 0x040B +#define GL_AUX3 0x040C +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVALID_OPERATION 0x0502 +#define GL_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#define GL_OUT_OF_MEMORY 0x0505 +#define GL_2D 0x0600 +#define GL_3D 0x0601 +#define GL_3D_COLOR 0x0602 +#define GL_3D_COLOR_TEXTURE 0x0603 +#define GL_4D_COLOR_TEXTURE 0x0604 +#define GL_PASS_THROUGH_TOKEN 0x0700 +#define GL_POINT_TOKEN 0x0701 +#define GL_LINE_TOKEN 0x0702 +#define GL_POLYGON_TOKEN 0x0703 +#define GL_BITMAP_TOKEN 0x0704 +#define GL_DRAW_PIXEL_TOKEN 0x0705 +#define GL_COPY_PIXEL_TOKEN 0x0706 +#define GL_LINE_RESET_TOKEN 0x0707 +#define GL_EXP 0x0800 +#define GL_VIEWPORT_BIT 0x00000800 +#define GL_EXP2 0x0801 +#define GL_CW 0x0900 +#define GL_CCW 0x0901 +#define GL_COEFF 0x0A00 +#define GL_ORDER 0x0A01 +#define GL_DOMAIN 0x0A02 +#define GL_CURRENT_COLOR 0x0B00 +#define GL_CURRENT_INDEX 0x0B01 +#define GL_CURRENT_NORMAL 0x0B02 +#define GL_CURRENT_TEXTURE_COORDS 0x0B03 +#define GL_CURRENT_RASTER_COLOR 0x0B04 +#define GL_CURRENT_RASTER_INDEX 0x0B05 +#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 +#define GL_CURRENT_RASTER_POSITION 0x0B07 +#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 +#define GL_CURRENT_RASTER_DISTANCE 0x0B09 +#define GL_POINT_SMOOTH 0x0B10 +#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_LINE_STIPPLE 0x0B24 +#define GL_LINE_STIPPLE_PATTERN 0x0B25 +#define GL_LINE_STIPPLE_REPEAT 0x0B26 +#define GL_LIST_MODE 0x0B30 +#define GL_MAX_LIST_NESTING 0x0B31 +#define GL_LIST_BASE 0x0B32 +#define GL_LIST_INDEX 0x0B33 +#define GL_POLYGON_MODE 0x0B40 +#define GL_POLYGON_SMOOTH 0x0B41 +#define GL_POLYGON_STIPPLE 0x0B42 +#define GL_EDGE_FLAG 0x0B43 +#define GL_CULL_FACE 0x0B44 +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_LIGHTING 0x0B50 +#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 +#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 +#define GL_LIGHT_MODEL_AMBIENT 0x0B53 +#define GL_SHADE_MODEL 0x0B54 +#define GL_COLOR_MATERIAL_FACE 0x0B55 +#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 +#define GL_COLOR_MATERIAL 0x0B57 +#define GL_FOG 0x0B60 +#define GL_FOG_INDEX 0x0B61 +#define GL_FOG_DENSITY 0x0B62 +#define GL_FOG_START 0x0B63 +#define GL_FOG_END 0x0B64 +#define GL_FOG_MODE 0x0B65 +#define GL_FOG_COLOR 0x0B66 +#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_ACCUM_CLEAR_VALUE 0x0B80 +#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_MATRIX_MODE 0x0BA0 +#define GL_NORMALIZE 0x0BA1 +#define GL_VIEWPORT 0x0BA2 +#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 +#define GL_PROJECTION_STACK_DEPTH 0x0BA4 +#define GL_TEXTURE_STACK_DEPTH 0x0BA5 +#define GL_MODELVIEW_MATRIX 0x0BA6 +#define GL_PROJECTION_MATRIX 0x0BA7 +#define GL_TEXTURE_MATRIX 0x0BA8 +#define GL_ATTRIB_STACK_DEPTH 0x0BB0 +#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 +#define GL_ALPHA_TEST 0x0BC0 +#define GL_ALPHA_TEST_FUNC 0x0BC1 +#define GL_ALPHA_TEST_REF 0x0BC2 +#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_INDEX_LOGIC_OP 0x0BF1 +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_AUX_BUFFERS 0x0C00 +#define GL_DRAW_BUFFER 0x0C01 +#define GL_READ_BUFFER 0x0C02 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_INDEX_CLEAR_VALUE 0x0C20 +#define GL_INDEX_WRITEMASK 0x0C21 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_INDEX_MODE 0x0C30 +#define GL_RGBA_MODE 0x0C31 +#define GL_DOUBLEBUFFER 0x0C32 +#define GL_STEREO 0x0C33 +#define GL_RENDER_MODE 0x0C40 +#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 +#define GL_POINT_SMOOTH_HINT 0x0C51 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_POLYGON_SMOOTH_HINT 0x0C53 +#define GL_FOG_HINT 0x0C54 +#define GL_TEXTURE_GEN_S 0x0C60 +#define GL_TEXTURE_GEN_T 0x0C61 +#define GL_TEXTURE_GEN_R 0x0C62 +#define GL_TEXTURE_GEN_Q 0x0C63 +#define GL_PIXEL_MAP_I_TO_I 0x0C70 +#define GL_PIXEL_MAP_S_TO_S 0x0C71 +#define GL_PIXEL_MAP_I_TO_R 0x0C72 +#define GL_PIXEL_MAP_I_TO_G 0x0C73 +#define GL_PIXEL_MAP_I_TO_B 0x0C74 +#define GL_PIXEL_MAP_I_TO_A 0x0C75 +#define GL_PIXEL_MAP_R_TO_R 0x0C76 +#define GL_PIXEL_MAP_G_TO_G 0x0C77 +#define GL_PIXEL_MAP_B_TO_B 0x0C78 +#define GL_PIXEL_MAP_A_TO_A 0x0C79 +#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 +#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 +#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 +#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 +#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 +#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 +#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 +#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 +#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 +#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 +#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_MAP_COLOR 0x0D10 +#define GL_MAP_STENCIL 0x0D11 +#define GL_INDEX_SHIFT 0x0D12 +#define GL_INDEX_OFFSET 0x0D13 +#define GL_RED_SCALE 0x0D14 +#define GL_RED_BIAS 0x0D15 +#define GL_ZOOM_X 0x0D16 +#define GL_ZOOM_Y 0x0D17 +#define GL_GREEN_SCALE 0x0D18 +#define GL_GREEN_BIAS 0x0D19 +#define GL_BLUE_SCALE 0x0D1A +#define GL_BLUE_BIAS 0x0D1B +#define GL_ALPHA_SCALE 0x0D1C +#define GL_ALPHA_BIAS 0x0D1D +#define GL_DEPTH_SCALE 0x0D1E +#define GL_DEPTH_BIAS 0x0D1F +#define GL_MAX_EVAL_ORDER 0x0D30 +#define GL_MAX_LIGHTS 0x0D31 +#define GL_MAX_CLIP_PLANES 0x0D32 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 +#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 +#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 +#define GL_MAX_NAME_STACK_DEPTH 0x0D37 +#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 +#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_INDEX_BITS 0x0D51 +#define GL_RED_BITS 0x0D52 +#define GL_GREEN_BITS 0x0D53 +#define GL_BLUE_BITS 0x0D54 +#define GL_ALPHA_BITS 0x0D55 +#define GL_DEPTH_BITS 0x0D56 +#define GL_STENCIL_BITS 0x0D57 +#define GL_ACCUM_RED_BITS 0x0D58 +#define GL_ACCUM_GREEN_BITS 0x0D59 +#define GL_ACCUM_BLUE_BITS 0x0D5A +#define GL_ACCUM_ALPHA_BITS 0x0D5B +#define GL_NAME_STACK_DEPTH 0x0D70 +#define GL_AUTO_NORMAL 0x0D80 +#define GL_MAP1_COLOR_4 0x0D90 +#define GL_MAP1_INDEX 0x0D91 +#define GL_MAP1_NORMAL 0x0D92 +#define GL_MAP1_TEXTURE_COORD_1 0x0D93 +#define GL_MAP1_TEXTURE_COORD_2 0x0D94 +#define GL_MAP1_TEXTURE_COORD_3 0x0D95 +#define GL_MAP1_TEXTURE_COORD_4 0x0D96 +#define GL_MAP1_VERTEX_3 0x0D97 +#define GL_MAP1_VERTEX_4 0x0D98 +#define GL_MAP2_COLOR_4 0x0DB0 +#define GL_MAP2_INDEX 0x0DB1 +#define GL_MAP2_NORMAL 0x0DB2 +#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 +#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 +#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 +#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 +#define GL_MAP2_VERTEX_3 0x0DB7 +#define GL_MAP2_VERTEX_4 0x0DB8 +#define GL_MAP1_GRID_DOMAIN 0x0DD0 +#define GL_MAP1_GRID_SEGMENTS 0x0DD1 +#define GL_MAP2_GRID_DOMAIN 0x0DD2 +#define GL_MAP2_GRID_SEGMENTS 0x0DD3 +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 +#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 +#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 +#define GL_SELECTION_BUFFER_POINTER 0x0DF3 +#define GL_SELECTION_BUFFER_SIZE 0x0DF4 +#define GL_TEXTURE_WIDTH 0x1000 +#define GL_TRANSFORM_BIT 0x00001000 +#define GL_TEXTURE_HEIGHT 0x1001 +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_TEXTURE_BORDER 0x1005 +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 +#define GL_AMBIENT 0x1200 +#define GL_DIFFUSE 0x1201 +#define GL_SPECULAR 0x1202 +#define GL_POSITION 0x1203 +#define GL_SPOT_DIRECTION 0x1204 +#define GL_SPOT_EXPONENT 0x1205 +#define GL_SPOT_CUTOFF 0x1206 +#define GL_CONSTANT_ATTENUATION 0x1207 +#define GL_LINEAR_ATTENUATION 0x1208 +#define GL_QUADRATIC_ATTENUATION 0x1209 +#define GL_COMPILE 0x1300 +#define GL_COMPILE_AND_EXECUTE 0x1301 +#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_2_BYTES 0x1407 +#define GL_3_BYTES 0x1408 +#define GL_4_BYTES 0x1409 +#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_EMISSION 0x1600 +#define GL_SHININESS 0x1601 +#define GL_AMBIENT_AND_DIFFUSE 0x1602 +#define GL_COLOR_INDEXES 0x1603 +#define GL_MODELVIEW 0x1700 +#define GL_PROJECTION 0x1701 +#define GL_TEXTURE 0x1702 +#define GL_COLOR 0x1800 +#define GL_DEPTH 0x1801 +#define GL_STENCIL 0x1802 +#define GL_COLOR_INDEX 0x1900 +#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_LUMINANCE 0x1909 +#define GL_LUMINANCE_ALPHA 0x190A +#define GL_BITMAP 0x1A00 +#define GL_POINT 0x1B00 +#define GL_LINE 0x1B01 +#define GL_FILL 0x1B02 +#define GL_RENDER 0x1C00 +#define GL_FEEDBACK 0x1C01 +#define GL_SELECT 0x1C02 +#define GL_FLAT 0x1D00 +#define GL_SMOOTH 0x1D01 +#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_S 0x2000 +#define GL_ENABLE_BIT 0x00002000 +#define GL_T 0x2001 +#define GL_R 0x2002 +#define GL_Q 0x2003 +#define GL_MODULATE 0x2100 +#define GL_DECAL 0x2101 +#define GL_TEXTURE_ENV_MODE 0x2200 +#define GL_TEXTURE_ENV_COLOR 0x2201 +#define GL_TEXTURE_ENV 0x2300 +#define GL_EYE_LINEAR 0x2400 +#define GL_OBJECT_LINEAR 0x2401 +#define GL_SPHERE_MAP 0x2402 +#define GL_TEXTURE_GEN_MODE 0x2500 +#define GL_OBJECT_PLANE 0x2501 +#define GL_EYE_PLANE 0x2502 +#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_CLAMP 0x2900 +#define GL_REPEAT 0x2901 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_R3_G3_B2 0x2A10 +#define GL_V2F 0x2A20 +#define GL_V3F 0x2A21 +#define GL_C4UB_V2F 0x2A22 +#define GL_C4UB_V3F 0x2A23 +#define GL_C3F_V3F 0x2A24 +#define GL_N3F_V3F 0x2A25 +#define GL_C4F_N3F_V3F 0x2A26 +#define GL_T2F_V3F 0x2A27 +#define GL_T4F_V4F 0x2A28 +#define GL_T2F_C4UB_V3F 0x2A29 +#define GL_T2F_C3F_V3F 0x2A2A +#define GL_T2F_N3F_V3F 0x2A2B +#define GL_T2F_C4F_N3F_V3F 0x2A2C +#define GL_T4F_C4F_N3F_V4F 0x2A2D +#define GL_CLIP_PLANE0 0x3000 +#define GL_CLIP_PLANE1 0x3001 +#define GL_CLIP_PLANE2 0x3002 +#define GL_CLIP_PLANE3 0x3003 +#define GL_CLIP_PLANE4 0x3004 +#define GL_CLIP_PLANE5 0x3005 +#define GL_LIGHT0 0x4000 +#define GL_COLOR_BUFFER_BIT 0x00004000 +#define GL_LIGHT1 0x4001 +#define GL_LIGHT2 0x4002 +#define GL_LIGHT3 0x4003 +#define GL_LIGHT4 0x4004 +#define GL_LIGHT5 0x4005 +#define GL_LIGHT6 0x4006 +#define GL_LIGHT7 0x4007 +#define GL_HINT_BIT 0x00008000 +#define GL_POLYGON_OFFSET_FILL 0x8037 +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_ALPHA4 0x803B +#define GL_ALPHA8 0x803C +#define GL_ALPHA12 0x803D +#define GL_ALPHA16 0x803E +#define GL_LUMINANCE4 0x803F +#define GL_LUMINANCE8 0x8040 +#define GL_LUMINANCE12 0x8041 +#define GL_LUMINANCE16 0x8042 +#define GL_LUMINANCE4_ALPHA4 0x8043 +#define GL_LUMINANCE6_ALPHA2 0x8044 +#define GL_LUMINANCE8_ALPHA8 0x8045 +#define GL_LUMINANCE12_ALPHA4 0x8046 +#define GL_LUMINANCE12_ALPHA12 0x8047 +#define GL_LUMINANCE16_ALPHA16 0x8048 +#define GL_INTENSITY 0x8049 +#define GL_INTENSITY4 0x804A +#define GL_INTENSITY8 0x804B +#define GL_INTENSITY12 0x804C +#define GL_INTENSITY16 0x804D +#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_TEXTURE_RED_SIZE 0x805C +#define GL_TEXTURE_GREEN_SIZE 0x805D +#define GL_TEXTURE_BLUE_SIZE 0x805E +#define GL_TEXTURE_ALPHA_SIZE 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE 0x8061 +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 +#define GL_TEXTURE_PRIORITY 0x8066 +#define GL_TEXTURE_RESIDENT 0x8067 +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_VERTEX_ARRAY 0x8074 +#define GL_NORMAL_ARRAY 0x8075 +#define GL_COLOR_ARRAY 0x8076 +#define GL_INDEX_ARRAY 0x8077 +#define GL_TEXTURE_COORD_ARRAY 0x8078 +#define GL_EDGE_FLAG_ARRAY 0x8079 +#define GL_VERTEX_ARRAY_SIZE 0x807A +#define GL_VERTEX_ARRAY_TYPE 0x807B +#define GL_VERTEX_ARRAY_STRIDE 0x807C +#define GL_NORMAL_ARRAY_TYPE 0x807E +#define GL_NORMAL_ARRAY_STRIDE 0x807F +#define GL_COLOR_ARRAY_SIZE 0x8081 +#define GL_COLOR_ARRAY_TYPE 0x8082 +#define GL_COLOR_ARRAY_STRIDE 0x8083 +#define GL_INDEX_ARRAY_TYPE 0x8085 +#define GL_INDEX_ARRAY_STRIDE 0x8086 +#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A +#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C +#define GL_VERTEX_ARRAY_POINTER 0x808E +#define GL_NORMAL_ARRAY_POINTER 0x808F +#define GL_COLOR_ARRAY_POINTER 0x8090 +#define GL_INDEX_ARRAY_POINTER 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 +#define GL_COLOR_INDEX1_EXT 0x80E2 +#define GL_COLOR_INDEX2_EXT 0x80E3 +#define GL_COLOR_INDEX4_EXT 0x80E4 +#define GL_COLOR_INDEX8_EXT 0x80E5 +#define GL_COLOR_INDEX12_EXT 0x80E6 +#define GL_COLOR_INDEX16_EXT 0x80E7 +#define GL_EVAL_BIT 0x00010000 +#define GL_LIST_BIT 0x00020000 +#define GL_TEXTURE_BIT 0x00040000 +#define GL_SCISSOR_BIT 0x00080000 +#define GL_ALL_ATTRIB_BITS 0x000fffff +#define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff + +GLAPI void GLAPIENTRY glAccum (GLenum op, GLfloat value); +GLAPI void GLAPIENTRY glAlphaFunc (GLenum func, GLclampf ref); +GLAPI GLboolean GLAPIENTRY glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences); +GLAPI void GLAPIENTRY glArrayElement (GLint i); +GLAPI void GLAPIENTRY glBegin (GLenum mode); +GLAPI void GLAPIENTRY glBindTexture (GLenum target, GLuint texture); +GLAPI void GLAPIENTRY glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); +GLAPI void GLAPIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); +GLAPI void GLAPIENTRY glCallList (GLuint list); +GLAPI void GLAPIENTRY glCallLists (GLsizei n, GLenum type, const void *lists); +GLAPI void GLAPIENTRY glClear (GLbitfield mask); +GLAPI void GLAPIENTRY glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI void GLAPIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +GLAPI void GLAPIENTRY glClearDepth (GLclampd depth); +GLAPI void GLAPIENTRY glClearIndex (GLfloat c); +GLAPI void GLAPIENTRY glClearStencil (GLint s); +GLAPI void GLAPIENTRY glClipPlane (GLenum plane, const GLdouble *equation); +GLAPI void GLAPIENTRY glColor3b (GLbyte red, GLbyte green, GLbyte blue); +GLAPI void GLAPIENTRY glColor3bv (const GLbyte *v); +GLAPI void GLAPIENTRY glColor3d (GLdouble red, GLdouble green, GLdouble blue); +GLAPI void GLAPIENTRY glColor3dv (const GLdouble *v); +GLAPI void GLAPIENTRY glColor3f (GLfloat red, GLfloat green, GLfloat blue); +GLAPI void GLAPIENTRY glColor3fv (const GLfloat *v); +GLAPI void GLAPIENTRY glColor3i (GLint red, GLint green, GLint blue); +GLAPI void GLAPIENTRY glColor3iv (const GLint *v); +GLAPI void GLAPIENTRY glColor3s (GLshort red, GLshort green, GLshort blue); +GLAPI void GLAPIENTRY glColor3sv (const GLshort *v); +GLAPI void GLAPIENTRY glColor3ub (GLubyte red, GLubyte green, GLubyte blue); +GLAPI void GLAPIENTRY glColor3ubv (const GLubyte *v); +GLAPI void GLAPIENTRY glColor3ui (GLuint red, GLuint green, GLuint blue); +GLAPI void GLAPIENTRY glColor3uiv (const GLuint *v); +GLAPI void GLAPIENTRY glColor3us (GLushort red, GLushort green, GLushort blue); +GLAPI void GLAPIENTRY glColor3usv (const GLushort *v); +GLAPI void GLAPIENTRY glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); +GLAPI void GLAPIENTRY glColor4bv (const GLbyte *v); +GLAPI void GLAPIENTRY glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); +GLAPI void GLAPIENTRY glColor4dv (const GLdouble *v); +GLAPI void GLAPIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI void GLAPIENTRY glColor4fv (const GLfloat *v); +GLAPI void GLAPIENTRY glColor4i (GLint red, GLint green, GLint blue, GLint alpha); +GLAPI void GLAPIENTRY glColor4iv (const GLint *v); +GLAPI void GLAPIENTRY glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha); +GLAPI void GLAPIENTRY glColor4sv (const GLshort *v); +GLAPI void GLAPIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); +GLAPI void GLAPIENTRY glColor4ubv (const GLubyte *v); +GLAPI void GLAPIENTRY glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha); +GLAPI void GLAPIENTRY glColor4uiv (const GLuint *v); +GLAPI void GLAPIENTRY glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha); +GLAPI void GLAPIENTRY glColor4usv (const GLushort *v); +GLAPI void GLAPIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +GLAPI void GLAPIENTRY glColorMaterial (GLenum face, GLenum mode); +GLAPI void GLAPIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void GLAPIENTRY glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); +GLAPI void GLAPIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); +GLAPI void GLAPIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +GLAPI void GLAPIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +GLAPI void GLAPIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void GLAPIENTRY glCullFace (GLenum mode); +GLAPI void GLAPIENTRY glDeleteLists (GLuint list, GLsizei range); +GLAPI void GLAPIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); +GLAPI void GLAPIENTRY glDepthFunc (GLenum func); +GLAPI void GLAPIENTRY glDepthMask (GLboolean flag); +GLAPI void GLAPIENTRY glDepthRange (GLclampd zNear, GLclampd zFar); +GLAPI void GLAPIENTRY glDisable (GLenum cap); +GLAPI void GLAPIENTRY glDisableClientState (GLenum array); +GLAPI void GLAPIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); +GLAPI void GLAPIENTRY glDrawBuffer (GLenum mode); +GLAPI void GLAPIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); +GLAPI void GLAPIENTRY glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +GLAPI void GLAPIENTRY glEdgeFlag (GLboolean flag); +GLAPI void GLAPIENTRY glEdgeFlagPointer (GLsizei stride, const void *pointer); +GLAPI void GLAPIENTRY glEdgeFlagv (const GLboolean *flag); +GLAPI void GLAPIENTRY glEnable (GLenum cap); +GLAPI void GLAPIENTRY glEnableClientState (GLenum array); +GLAPI void GLAPIENTRY glEnd (void); +GLAPI void GLAPIENTRY glEndList (void); +GLAPI void GLAPIENTRY glEvalCoord1d (GLdouble u); +GLAPI void GLAPIENTRY glEvalCoord1dv (const GLdouble *u); +GLAPI void GLAPIENTRY glEvalCoord1f (GLfloat u); +GLAPI void GLAPIENTRY glEvalCoord1fv (const GLfloat *u); +GLAPI void GLAPIENTRY glEvalCoord2d (GLdouble u, GLdouble v); +GLAPI void GLAPIENTRY glEvalCoord2dv (const GLdouble *u); +GLAPI void GLAPIENTRY glEvalCoord2f (GLfloat u, GLfloat v); +GLAPI void GLAPIENTRY glEvalCoord2fv (const GLfloat *u); +GLAPI void GLAPIENTRY glEvalMesh1 (GLenum mode, GLint i1, GLint i2); +GLAPI void GLAPIENTRY glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); +GLAPI void GLAPIENTRY glEvalPoint1 (GLint i); +GLAPI void GLAPIENTRY glEvalPoint2 (GLint i, GLint j); +GLAPI void GLAPIENTRY glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer); +GLAPI void GLAPIENTRY glFinish (void); +GLAPI void GLAPIENTRY glFlush (void); +GLAPI void GLAPIENTRY glFogf (GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glFogfv (GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glFogi (GLenum pname, GLint param); +GLAPI void GLAPIENTRY glFogiv (GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glFrontFace (GLenum mode); +GLAPI void GLAPIENTRY glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +GLAPI GLuint GLAPIENTRY glGenLists (GLsizei range); +GLAPI void GLAPIENTRY glGenTextures (GLsizei n, GLuint *textures); +GLAPI void GLAPIENTRY glGetBooleanv (GLenum pname, GLboolean *params); +GLAPI void GLAPIENTRY glGetClipPlane (GLenum plane, GLdouble *equation); +GLAPI void GLAPIENTRY glGetDoublev (GLenum pname, GLdouble *params); +GLAPI GLenum GLAPIENTRY glGetError (void); +GLAPI void GLAPIENTRY glGetFloatv (GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetIntegerv (GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetLightiv (GLenum light, GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glGetMapdv (GLenum target, GLenum query, GLdouble *v); +GLAPI void GLAPIENTRY glGetMapfv (GLenum target, GLenum query, GLfloat *v); +GLAPI void GLAPIENTRY glGetMapiv (GLenum target, GLenum query, GLint *v); +GLAPI void GLAPIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetMaterialiv (GLenum face, GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glGetPixelMapfv (GLenum map, GLfloat *values); +GLAPI void GLAPIENTRY glGetPixelMapuiv (GLenum map, GLuint *values); +GLAPI void GLAPIENTRY glGetPixelMapusv (GLenum map, GLushort *values); +GLAPI void GLAPIENTRY glGetPointerv (GLenum pname, void* *params); +GLAPI void GLAPIENTRY glGetPolygonStipple (GLubyte *mask); +GLAPI const GLubyte * GLAPIENTRY glGetString (GLenum name); +GLAPI void GLAPIENTRY glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetTexEnviv (GLenum target, GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params); +GLAPI void GLAPIENTRY glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetTexGeniv (GLenum coord, GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +GLAPI void GLAPIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glHint (GLenum target, GLenum mode); +GLAPI void GLAPIENTRY glIndexMask (GLuint mask); +GLAPI void GLAPIENTRY glIndexPointer (GLenum type, GLsizei stride, const void *pointer); +GLAPI void GLAPIENTRY glIndexd (GLdouble c); +GLAPI void GLAPIENTRY glIndexdv (const GLdouble *c); +GLAPI void GLAPIENTRY glIndexf (GLfloat c); +GLAPI void GLAPIENTRY glIndexfv (const GLfloat *c); +GLAPI void GLAPIENTRY glIndexi (GLint c); +GLAPI void GLAPIENTRY glIndexiv (const GLint *c); +GLAPI void GLAPIENTRY glIndexs (GLshort c); +GLAPI void GLAPIENTRY glIndexsv (const GLshort *c); +GLAPI void GLAPIENTRY glIndexub (GLubyte c); +GLAPI void GLAPIENTRY glIndexubv (const GLubyte *c); +GLAPI void GLAPIENTRY glInitNames (void); +GLAPI void GLAPIENTRY glInterleavedArrays (GLenum format, GLsizei stride, const void *pointer); +GLAPI GLboolean GLAPIENTRY glIsEnabled (GLenum cap); +GLAPI GLboolean GLAPIENTRY glIsList (GLuint list); +GLAPI GLboolean GLAPIENTRY glIsTexture (GLuint texture); +GLAPI void GLAPIENTRY glLightModelf (GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glLightModelfv (GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glLightModeli (GLenum pname, GLint param); +GLAPI void GLAPIENTRY glLightModeliv (GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glLightf (GLenum light, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glLighti (GLenum light, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glLightiv (GLenum light, GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glLineStipple (GLint factor, GLushort pattern); +GLAPI void GLAPIENTRY glLineWidth (GLfloat width); +GLAPI void GLAPIENTRY glListBase (GLuint base); +GLAPI void GLAPIENTRY glLoadIdentity (void); +GLAPI void GLAPIENTRY glLoadMatrixd (const GLdouble *m); +GLAPI void GLAPIENTRY glLoadMatrixf (const GLfloat *m); +GLAPI void GLAPIENTRY glLoadName (GLuint name); +GLAPI void GLAPIENTRY glLogicOp (GLenum opcode); +GLAPI void GLAPIENTRY glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +GLAPI void GLAPIENTRY glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +GLAPI void GLAPIENTRY glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +GLAPI void GLAPIENTRY glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +GLAPI void GLAPIENTRY glMapGrid1d (GLint un, GLdouble u1, GLdouble u2); +GLAPI void GLAPIENTRY glMapGrid1f (GLint un, GLfloat u1, GLfloat u2); +GLAPI void GLAPIENTRY glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); +GLAPI void GLAPIENTRY glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); +GLAPI void GLAPIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glMateriali (GLenum face, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glMaterialiv (GLenum face, GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glMatrixMode (GLenum mode); +GLAPI void GLAPIENTRY glMultMatrixd (const GLdouble *m); +GLAPI void GLAPIENTRY glMultMatrixf (const GLfloat *m); +GLAPI void GLAPIENTRY glNewList (GLuint list, GLenum mode); +GLAPI void GLAPIENTRY glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz); +GLAPI void GLAPIENTRY glNormal3bv (const GLbyte *v); +GLAPI void GLAPIENTRY glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz); +GLAPI void GLAPIENTRY glNormal3dv (const GLdouble *v); +GLAPI void GLAPIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz); +GLAPI void GLAPIENTRY glNormal3fv (const GLfloat *v); +GLAPI void GLAPIENTRY glNormal3i (GLint nx, GLint ny, GLint nz); +GLAPI void GLAPIENTRY glNormal3iv (const GLint *v); +GLAPI void GLAPIENTRY glNormal3s (GLshort nx, GLshort ny, GLshort nz); +GLAPI void GLAPIENTRY glNormal3sv (const GLshort *v); +GLAPI void GLAPIENTRY glNormalPointer (GLenum type, GLsizei stride, const void *pointer); +GLAPI void GLAPIENTRY glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +GLAPI void GLAPIENTRY glPassThrough (GLfloat token); +GLAPI void GLAPIENTRY glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values); +GLAPI void GLAPIENTRY glPixelMapuiv (GLenum map, GLsizei mapsize, const GLuint *values); +GLAPI void GLAPIENTRY glPixelMapusv (GLenum map, GLsizei mapsize, const GLushort *values); +GLAPI void GLAPIENTRY glPixelStoref (GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glPixelStorei (GLenum pname, GLint param); +GLAPI void GLAPIENTRY glPixelTransferf (GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glPixelTransferi (GLenum pname, GLint param); +GLAPI void GLAPIENTRY glPixelZoom (GLfloat xfactor, GLfloat yfactor); +GLAPI void GLAPIENTRY glPointSize (GLfloat size); +GLAPI void GLAPIENTRY glPolygonMode (GLenum face, GLenum mode); +GLAPI void GLAPIENTRY glPolygonOffset (GLfloat factor, GLfloat units); +GLAPI void GLAPIENTRY glPolygonStipple (const GLubyte *mask); +GLAPI void GLAPIENTRY glPopAttrib (void); +GLAPI void GLAPIENTRY glPopClientAttrib (void); +GLAPI void GLAPIENTRY glPopMatrix (void); +GLAPI void GLAPIENTRY glPopName (void); +GLAPI void GLAPIENTRY glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities); +GLAPI void GLAPIENTRY glPushAttrib (GLbitfield mask); +GLAPI void GLAPIENTRY glPushClientAttrib (GLbitfield mask); +GLAPI void GLAPIENTRY glPushMatrix (void); +GLAPI void GLAPIENTRY glPushName (GLuint name); +GLAPI void GLAPIENTRY glRasterPos2d (GLdouble x, GLdouble y); +GLAPI void GLAPIENTRY glRasterPos2dv (const GLdouble *v); +GLAPI void GLAPIENTRY glRasterPos2f (GLfloat x, GLfloat y); +GLAPI void GLAPIENTRY glRasterPos2fv (const GLfloat *v); +GLAPI void GLAPIENTRY glRasterPos2i (GLint x, GLint y); +GLAPI void GLAPIENTRY glRasterPos2iv (const GLint *v); +GLAPI void GLAPIENTRY glRasterPos2s (GLshort x, GLshort y); +GLAPI void GLAPIENTRY glRasterPos2sv (const GLshort *v); +GLAPI void GLAPIENTRY glRasterPos3d (GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glRasterPos3dv (const GLdouble *v); +GLAPI void GLAPIENTRY glRasterPos3f (GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glRasterPos3fv (const GLfloat *v); +GLAPI void GLAPIENTRY glRasterPos3i (GLint x, GLint y, GLint z); +GLAPI void GLAPIENTRY glRasterPos3iv (const GLint *v); +GLAPI void GLAPIENTRY glRasterPos3s (GLshort x, GLshort y, GLshort z); +GLAPI void GLAPIENTRY glRasterPos3sv (const GLshort *v); +GLAPI void GLAPIENTRY glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void GLAPIENTRY glRasterPos4dv (const GLdouble *v); +GLAPI void GLAPIENTRY glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void GLAPIENTRY glRasterPos4fv (const GLfloat *v); +GLAPI void GLAPIENTRY glRasterPos4i (GLint x, GLint y, GLint z, GLint w); +GLAPI void GLAPIENTRY glRasterPos4iv (const GLint *v); +GLAPI void GLAPIENTRY glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void GLAPIENTRY glRasterPos4sv (const GLshort *v); +GLAPI void GLAPIENTRY glReadBuffer (GLenum mode); +GLAPI void GLAPIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); +GLAPI void GLAPIENTRY glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); +GLAPI void GLAPIENTRY glRectdv (const GLdouble *v1, const GLdouble *v2); +GLAPI void GLAPIENTRY glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); +GLAPI void GLAPIENTRY glRectfv (const GLfloat *v1, const GLfloat *v2); +GLAPI void GLAPIENTRY glRecti (GLint x1, GLint y1, GLint x2, GLint y2); +GLAPI void GLAPIENTRY glRectiv (const GLint *v1, const GLint *v2); +GLAPI void GLAPIENTRY glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2); +GLAPI void GLAPIENTRY glRectsv (const GLshort *v1, const GLshort *v2); +GLAPI GLint GLAPIENTRY glRenderMode (GLenum mode); +GLAPI void GLAPIENTRY glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glScaled (GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void GLAPIENTRY glSelectBuffer (GLsizei size, GLuint *buffer); +GLAPI void GLAPIENTRY glShadeModel (GLenum mode); +GLAPI void GLAPIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); +GLAPI void GLAPIENTRY glStencilMask (GLuint mask); +GLAPI void GLAPIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); +GLAPI void GLAPIENTRY glTexCoord1d (GLdouble s); +GLAPI void GLAPIENTRY glTexCoord1dv (const GLdouble *v); +GLAPI void GLAPIENTRY glTexCoord1f (GLfloat s); +GLAPI void GLAPIENTRY glTexCoord1fv (const GLfloat *v); +GLAPI void GLAPIENTRY glTexCoord1i (GLint s); +GLAPI void GLAPIENTRY glTexCoord1iv (const GLint *v); +GLAPI void GLAPIENTRY glTexCoord1s (GLshort s); +GLAPI void GLAPIENTRY glTexCoord1sv (const GLshort *v); +GLAPI void GLAPIENTRY glTexCoord2d (GLdouble s, GLdouble t); +GLAPI void GLAPIENTRY glTexCoord2dv (const GLdouble *v); +GLAPI void GLAPIENTRY glTexCoord2f (GLfloat s, GLfloat t); +GLAPI void GLAPIENTRY glTexCoord2fv (const GLfloat *v); +GLAPI void GLAPIENTRY glTexCoord2i (GLint s, GLint t); +GLAPI void GLAPIENTRY glTexCoord2iv (const GLint *v); +GLAPI void GLAPIENTRY glTexCoord2s (GLshort s, GLshort t); +GLAPI void GLAPIENTRY glTexCoord2sv (const GLshort *v); +GLAPI void GLAPIENTRY glTexCoord3d (GLdouble s, GLdouble t, GLdouble r); +GLAPI void GLAPIENTRY glTexCoord3dv (const GLdouble *v); +GLAPI void GLAPIENTRY glTexCoord3f (GLfloat s, GLfloat t, GLfloat r); +GLAPI void GLAPIENTRY glTexCoord3fv (const GLfloat *v); +GLAPI void GLAPIENTRY glTexCoord3i (GLint s, GLint t, GLint r); +GLAPI void GLAPIENTRY glTexCoord3iv (const GLint *v); +GLAPI void GLAPIENTRY glTexCoord3s (GLshort s, GLshort t, GLshort r); +GLAPI void GLAPIENTRY glTexCoord3sv (const GLshort *v); +GLAPI void GLAPIENTRY glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q); +GLAPI void GLAPIENTRY glTexCoord4dv (const GLdouble *v); +GLAPI void GLAPIENTRY glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q); +GLAPI void GLAPIENTRY glTexCoord4fv (const GLfloat *v); +GLAPI void GLAPIENTRY glTexCoord4i (GLint s, GLint t, GLint r, GLint q); +GLAPI void GLAPIENTRY glTexCoord4iv (const GLint *v); +GLAPI void GLAPIENTRY glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q); +GLAPI void GLAPIENTRY glTexCoord4sv (const GLshort *v); +GLAPI void GLAPIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void GLAPIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glTexGend (GLenum coord, GLenum pname, GLdouble param); +GLAPI void GLAPIENTRY glTexGendv (GLenum coord, GLenum pname, const GLdouble *params); +GLAPI void GLAPIENTRY glTexGenf (GLenum coord, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glTexGeni (GLenum coord, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glTexGeniv (GLenum coord, GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void GLAPIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void GLAPIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +GLAPI void GLAPIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +GLAPI void GLAPIENTRY glTranslated (GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glVertex2d (GLdouble x, GLdouble y); +GLAPI void GLAPIENTRY glVertex2dv (const GLdouble *v); +GLAPI void GLAPIENTRY glVertex2f (GLfloat x, GLfloat y); +GLAPI void GLAPIENTRY glVertex2fv (const GLfloat *v); +GLAPI void GLAPIENTRY glVertex2i (GLint x, GLint y); +GLAPI void GLAPIENTRY glVertex2iv (const GLint *v); +GLAPI void GLAPIENTRY glVertex2s (GLshort x, GLshort y); +GLAPI void GLAPIENTRY glVertex2sv (const GLshort *v); +GLAPI void GLAPIENTRY glVertex3d (GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glVertex3dv (const GLdouble *v); +GLAPI void GLAPIENTRY glVertex3f (GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glVertex3fv (const GLfloat *v); +GLAPI void GLAPIENTRY glVertex3i (GLint x, GLint y, GLint z); +GLAPI void GLAPIENTRY glVertex3iv (const GLint *v); +GLAPI void GLAPIENTRY glVertex3s (GLshort x, GLshort y, GLshort z); +GLAPI void GLAPIENTRY glVertex3sv (const GLshort *v); +GLAPI void GLAPIENTRY glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void GLAPIENTRY glVertex4dv (const GLdouble *v); +GLAPI void GLAPIENTRY glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void GLAPIENTRY glVertex4fv (const GLfloat *v); +GLAPI void GLAPIENTRY glVertex4i (GLint x, GLint y, GLint z, GLint w); +GLAPI void GLAPIENTRY glVertex4iv (const GLint *v); +GLAPI void GLAPIENTRY glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void GLAPIENTRY glVertex4sv (const GLshort *v); +GLAPI void GLAPIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void GLAPIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); + +#define GLEW_VERSION_1_1 GLEW_GET_VAR(__GLEW_VERSION_1_1) + +#endif /* GL_VERSION_1_1 */ + +/* ---------------------------------- GLU ---------------------------------- */ + +#ifndef GLEW_NO_GLU +# ifdef __APPLE__ +# include +# if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) +# define GLEW_NO_GLU +# endif +# endif +#endif + +#ifndef GLEW_NO_GLU +/* this is where we can safely include GLU */ +# if defined(__APPLE__) && defined(__MACH__) +# include +# else +# include +# endif +#endif + +/* ----------------------------- GL_VERSION_1_2 ---------------------------- */ + +#ifndef GL_VERSION_1_2 +#define GL_VERSION_1_2 1 + +#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_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_RESCALE_NORMAL 0x803A +#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_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_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#define GL_SINGLE_COLOR 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR 0x81FA +#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_ALIASED_POINT_SIZE_RANGE 0x846D +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E + +typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); +typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); + +#define glCopyTexSubImage3D GLEW_GET_FUN(__glewCopyTexSubImage3D) +#define glDrawRangeElements GLEW_GET_FUN(__glewDrawRangeElements) +#define glTexImage3D GLEW_GET_FUN(__glewTexImage3D) +#define glTexSubImage3D GLEW_GET_FUN(__glewTexSubImage3D) + +#define GLEW_VERSION_1_2 GLEW_GET_VAR(__GLEW_VERSION_1_2) + +#endif /* GL_VERSION_1_2 */ + +/* ---------------------------- GL_VERSION_1_2_1 --------------------------- */ + +#ifndef GL_VERSION_1_2_1 +#define GL_VERSION_1_2_1 1 + +#define GLEW_VERSION_1_2_1 GLEW_GET_VAR(__GLEW_VERSION_1_2_1) + +#endif /* GL_VERSION_1_2_1 */ + +/* ----------------------------- GL_VERSION_1_3 ---------------------------- */ + +#ifndef GL_VERSION_1_3 +#define GL_VERSION_1_3 1 + +#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_CLAMP_TO_BORDER 0x812D +#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_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_MAX_TEXTURE_UNITS 0x84E2 +#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 +#define GL_SUBTRACT 0x84E7 +#define GL_COMPRESSED_ALPHA 0x84E9 +#define GL_COMPRESSED_LUMINANCE 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB +#define GL_COMPRESSED_INTENSITY 0x84EC +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_NORMAL_MAP 0x8511 +#define GL_REFLECTION_MAP 0x8512 +#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_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +#define GL_SOURCE0_RGB 0x8580 +#define GL_SOURCE1_RGB 0x8581 +#define GL_SOURCE2_RGB 0x8582 +#define GL_SOURCE0_ALPHA 0x8588 +#define GL_SOURCE1_ALPHA 0x8589 +#define GL_SOURCE2_ALPHA 0x858A +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A +#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_DOT3_RGB 0x86AE +#define GL_DOT3_RGBA 0x86AF +#define GL_MULTISAMPLE_BIT 0x20000000 + +typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREPROC) (GLenum texture); +typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * 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 (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, void *img); +typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble m[16]); +typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat m[16]); +typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble m[16]); +typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat m[16]); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); +typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); + +#define glActiveTexture GLEW_GET_FUN(__glewActiveTexture) +#define glClientActiveTexture GLEW_GET_FUN(__glewClientActiveTexture) +#define glCompressedTexImage1D GLEW_GET_FUN(__glewCompressedTexImage1D) +#define glCompressedTexImage2D GLEW_GET_FUN(__glewCompressedTexImage2D) +#define glCompressedTexImage3D GLEW_GET_FUN(__glewCompressedTexImage3D) +#define glCompressedTexSubImage1D GLEW_GET_FUN(__glewCompressedTexSubImage1D) +#define glCompressedTexSubImage2D GLEW_GET_FUN(__glewCompressedTexSubImage2D) +#define glCompressedTexSubImage3D GLEW_GET_FUN(__glewCompressedTexSubImage3D) +#define glGetCompressedTexImage GLEW_GET_FUN(__glewGetCompressedTexImage) +#define glLoadTransposeMatrixd GLEW_GET_FUN(__glewLoadTransposeMatrixd) +#define glLoadTransposeMatrixf GLEW_GET_FUN(__glewLoadTransposeMatrixf) +#define glMultTransposeMatrixd GLEW_GET_FUN(__glewMultTransposeMatrixd) +#define glMultTransposeMatrixf GLEW_GET_FUN(__glewMultTransposeMatrixf) +#define glMultiTexCoord1d GLEW_GET_FUN(__glewMultiTexCoord1d) +#define glMultiTexCoord1dv GLEW_GET_FUN(__glewMultiTexCoord1dv) +#define glMultiTexCoord1f GLEW_GET_FUN(__glewMultiTexCoord1f) +#define glMultiTexCoord1fv GLEW_GET_FUN(__glewMultiTexCoord1fv) +#define glMultiTexCoord1i GLEW_GET_FUN(__glewMultiTexCoord1i) +#define glMultiTexCoord1iv GLEW_GET_FUN(__glewMultiTexCoord1iv) +#define glMultiTexCoord1s GLEW_GET_FUN(__glewMultiTexCoord1s) +#define glMultiTexCoord1sv GLEW_GET_FUN(__glewMultiTexCoord1sv) +#define glMultiTexCoord2d GLEW_GET_FUN(__glewMultiTexCoord2d) +#define glMultiTexCoord2dv GLEW_GET_FUN(__glewMultiTexCoord2dv) +#define glMultiTexCoord2f GLEW_GET_FUN(__glewMultiTexCoord2f) +#define glMultiTexCoord2fv GLEW_GET_FUN(__glewMultiTexCoord2fv) +#define glMultiTexCoord2i GLEW_GET_FUN(__glewMultiTexCoord2i) +#define glMultiTexCoord2iv GLEW_GET_FUN(__glewMultiTexCoord2iv) +#define glMultiTexCoord2s GLEW_GET_FUN(__glewMultiTexCoord2s) +#define glMultiTexCoord2sv GLEW_GET_FUN(__glewMultiTexCoord2sv) +#define glMultiTexCoord3d GLEW_GET_FUN(__glewMultiTexCoord3d) +#define glMultiTexCoord3dv GLEW_GET_FUN(__glewMultiTexCoord3dv) +#define glMultiTexCoord3f GLEW_GET_FUN(__glewMultiTexCoord3f) +#define glMultiTexCoord3fv GLEW_GET_FUN(__glewMultiTexCoord3fv) +#define glMultiTexCoord3i GLEW_GET_FUN(__glewMultiTexCoord3i) +#define glMultiTexCoord3iv GLEW_GET_FUN(__glewMultiTexCoord3iv) +#define glMultiTexCoord3s GLEW_GET_FUN(__glewMultiTexCoord3s) +#define glMultiTexCoord3sv GLEW_GET_FUN(__glewMultiTexCoord3sv) +#define glMultiTexCoord4d GLEW_GET_FUN(__glewMultiTexCoord4d) +#define glMultiTexCoord4dv GLEW_GET_FUN(__glewMultiTexCoord4dv) +#define glMultiTexCoord4f GLEW_GET_FUN(__glewMultiTexCoord4f) +#define glMultiTexCoord4fv GLEW_GET_FUN(__glewMultiTexCoord4fv) +#define glMultiTexCoord4i GLEW_GET_FUN(__glewMultiTexCoord4i) +#define glMultiTexCoord4iv GLEW_GET_FUN(__glewMultiTexCoord4iv) +#define glMultiTexCoord4s GLEW_GET_FUN(__glewMultiTexCoord4s) +#define glMultiTexCoord4sv GLEW_GET_FUN(__glewMultiTexCoord4sv) +#define glSampleCoverage GLEW_GET_FUN(__glewSampleCoverage) + +#define GLEW_VERSION_1_3 GLEW_GET_VAR(__GLEW_VERSION_1_3) + +#endif /* GL_VERSION_1_3 */ + +/* ----------------------------- GL_VERSION_1_4 ---------------------------- */ + +#ifndef GL_VERSION_1_4 +#define GL_VERSION_1_4 1 + +#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_SIZE_MIN 0x8126 +#define GL_POINT_SIZE_MAX 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION 0x8129 +#define GL_GENERATE_MIPMAP 0x8191 +#define GL_GENERATE_MIPMAP_HINT 0x8192 +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT24 0x81A6 +#define GL_DEPTH_COMPONENT32 0x81A7 +#define GL_MIRRORED_REPEAT 0x8370 +#define GL_FOG_COORDINATE_SOURCE 0x8450 +#define GL_FOG_COORDINATE 0x8451 +#define GL_FRAGMENT_DEPTH 0x8452 +#define GL_CURRENT_FOG_COORDINATE 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 +#define GL_FOG_COORDINATE_ARRAY 0x8457 +#define GL_COLOR_SUM 0x8458 +#define GL_CURRENT_SECONDARY_COLOR 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D +#define GL_SECONDARY_COLOR_ARRAY 0x845E +#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD +#define GL_TEXTURE_FILTER_CONTROL 0x8500 +#define GL_TEXTURE_LOD_BIAS 0x8501 +#define GL_INCR_WRAP 0x8507 +#define GL_DECR_WRAP 0x8508 +#define GL_TEXTURE_DEPTH_SIZE 0x884A +#define GL_DEPTH_TEXTURE_MODE 0x884B +#define GL_TEXTURE_COMPARE_MODE 0x884C +#define GL_TEXTURE_COMPARE_FUNC 0x884D +#define GL_COMPARE_R_TO_TEXTURE 0x884E + +typedef void (GLAPIENTRY * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONPROC) (GLenum mode); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const void *pointer); +typedef void (GLAPIENTRY * PFNGLFOGCOORDDPROC) (GLdouble coord); +typedef void (GLAPIENTRY * PFNGLFOGCOORDDVPROC) (const GLdouble *coord); +typedef void (GLAPIENTRY * PFNGLFOGCOORDFPROC) (GLfloat coord); +typedef void (GLAPIENTRY * PFNGLFOGCOORDFVPROC) (const GLfloat *coord); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const* indices, GLsizei drawcount); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVPROC) (const GLdouble *p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVPROC) (const GLfloat *p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVPROC) (const GLint *p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVPROC) (const GLshort *p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVPROC) (const GLdouble *p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVPROC) (const GLfloat *p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVPROC) (const GLint *p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVPROC) (const GLshort *p); + +#define glBlendColor GLEW_GET_FUN(__glewBlendColor) +#define glBlendEquation GLEW_GET_FUN(__glewBlendEquation) +#define glBlendFuncSeparate GLEW_GET_FUN(__glewBlendFuncSeparate) +#define glFogCoordPointer GLEW_GET_FUN(__glewFogCoordPointer) +#define glFogCoordd GLEW_GET_FUN(__glewFogCoordd) +#define glFogCoorddv GLEW_GET_FUN(__glewFogCoorddv) +#define glFogCoordf GLEW_GET_FUN(__glewFogCoordf) +#define glFogCoordfv GLEW_GET_FUN(__glewFogCoordfv) +#define glMultiDrawArrays GLEW_GET_FUN(__glewMultiDrawArrays) +#define glMultiDrawElements GLEW_GET_FUN(__glewMultiDrawElements) +#define glPointParameterf GLEW_GET_FUN(__glewPointParameterf) +#define glPointParameterfv GLEW_GET_FUN(__glewPointParameterfv) +#define glPointParameteri GLEW_GET_FUN(__glewPointParameteri) +#define glPointParameteriv GLEW_GET_FUN(__glewPointParameteriv) +#define glSecondaryColor3b GLEW_GET_FUN(__glewSecondaryColor3b) +#define glSecondaryColor3bv GLEW_GET_FUN(__glewSecondaryColor3bv) +#define glSecondaryColor3d GLEW_GET_FUN(__glewSecondaryColor3d) +#define glSecondaryColor3dv GLEW_GET_FUN(__glewSecondaryColor3dv) +#define glSecondaryColor3f GLEW_GET_FUN(__glewSecondaryColor3f) +#define glSecondaryColor3fv GLEW_GET_FUN(__glewSecondaryColor3fv) +#define glSecondaryColor3i GLEW_GET_FUN(__glewSecondaryColor3i) +#define glSecondaryColor3iv GLEW_GET_FUN(__glewSecondaryColor3iv) +#define glSecondaryColor3s GLEW_GET_FUN(__glewSecondaryColor3s) +#define glSecondaryColor3sv GLEW_GET_FUN(__glewSecondaryColor3sv) +#define glSecondaryColor3ub GLEW_GET_FUN(__glewSecondaryColor3ub) +#define glSecondaryColor3ubv GLEW_GET_FUN(__glewSecondaryColor3ubv) +#define glSecondaryColor3ui GLEW_GET_FUN(__glewSecondaryColor3ui) +#define glSecondaryColor3uiv GLEW_GET_FUN(__glewSecondaryColor3uiv) +#define glSecondaryColor3us GLEW_GET_FUN(__glewSecondaryColor3us) +#define glSecondaryColor3usv GLEW_GET_FUN(__glewSecondaryColor3usv) +#define glSecondaryColorPointer GLEW_GET_FUN(__glewSecondaryColorPointer) +#define glWindowPos2d GLEW_GET_FUN(__glewWindowPos2d) +#define glWindowPos2dv GLEW_GET_FUN(__glewWindowPos2dv) +#define glWindowPos2f GLEW_GET_FUN(__glewWindowPos2f) +#define glWindowPos2fv GLEW_GET_FUN(__glewWindowPos2fv) +#define glWindowPos2i GLEW_GET_FUN(__glewWindowPos2i) +#define glWindowPos2iv GLEW_GET_FUN(__glewWindowPos2iv) +#define glWindowPos2s GLEW_GET_FUN(__glewWindowPos2s) +#define glWindowPos2sv GLEW_GET_FUN(__glewWindowPos2sv) +#define glWindowPos3d GLEW_GET_FUN(__glewWindowPos3d) +#define glWindowPos3dv GLEW_GET_FUN(__glewWindowPos3dv) +#define glWindowPos3f GLEW_GET_FUN(__glewWindowPos3f) +#define glWindowPos3fv GLEW_GET_FUN(__glewWindowPos3fv) +#define glWindowPos3i GLEW_GET_FUN(__glewWindowPos3i) +#define glWindowPos3iv GLEW_GET_FUN(__glewWindowPos3iv) +#define glWindowPos3s GLEW_GET_FUN(__glewWindowPos3s) +#define glWindowPos3sv GLEW_GET_FUN(__glewWindowPos3sv) + +#define GLEW_VERSION_1_4 GLEW_GET_VAR(__GLEW_VERSION_1_4) + +#endif /* GL_VERSION_1_4 */ + +/* ----------------------------- GL_VERSION_1_5 ---------------------------- */ + +#ifndef GL_VERSION_1_5 +#define GL_VERSION_1_5 1 + +#define GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE +#define GL_FOG_COORD GL_FOG_COORDINATE +#define GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY +#define GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING +#define GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER +#define GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE +#define GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE +#define GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE +#define GL_SRC0_ALPHA GL_SOURCE0_ALPHA +#define GL_SRC0_RGB GL_SOURCE0_RGB +#define GL_SRC1_ALPHA GL_SOURCE1_ALPHA +#define GL_SRC1_RGB GL_SOURCE1_RGB +#define GL_SRC2_ALPHA GL_SOURCE2_ALPHA +#define GL_SRC2_RGB GL_SOURCE2_RGB +#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_ARRAY_BUFFER_BINDING 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E +#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 + +typedef ptrdiff_t GLintptr; +typedef ptrdiff_t GLsizeiptr; + +typedef void (GLAPIENTRY * PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); +typedef void (GLAPIENTRY * PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void* data, GLenum usage); +typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void* data); +typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint* buffers); +typedef void (GLAPIENTRY * PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint* ids); +typedef void (GLAPIENTRY * PFNGLENDQUERYPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLGENBUFFERSPROC) (GLsizei n, GLuint* buffers); +typedef void (GLAPIENTRY * PFNGLGENQUERIESPROC) (GLsizei n, GLuint* ids); +typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void** params); +typedef void (GLAPIENTRY * PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, void* data); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERPROC) (GLuint buffer); +typedef GLboolean (GLAPIENTRY * PFNGLISQUERYPROC) (GLuint id); +typedef void* (GLAPIENTRY * PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); +typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFERPROC) (GLenum target); + +#define glBeginQuery GLEW_GET_FUN(__glewBeginQuery) +#define glBindBuffer GLEW_GET_FUN(__glewBindBuffer) +#define glBufferData GLEW_GET_FUN(__glewBufferData) +#define glBufferSubData GLEW_GET_FUN(__glewBufferSubData) +#define glDeleteBuffers GLEW_GET_FUN(__glewDeleteBuffers) +#define glDeleteQueries GLEW_GET_FUN(__glewDeleteQueries) +#define glEndQuery GLEW_GET_FUN(__glewEndQuery) +#define glGenBuffers GLEW_GET_FUN(__glewGenBuffers) +#define glGenQueries GLEW_GET_FUN(__glewGenQueries) +#define glGetBufferParameteriv GLEW_GET_FUN(__glewGetBufferParameteriv) +#define glGetBufferPointerv GLEW_GET_FUN(__glewGetBufferPointerv) +#define glGetBufferSubData GLEW_GET_FUN(__glewGetBufferSubData) +#define glGetQueryObjectiv GLEW_GET_FUN(__glewGetQueryObjectiv) +#define glGetQueryObjectuiv GLEW_GET_FUN(__glewGetQueryObjectuiv) +#define glGetQueryiv GLEW_GET_FUN(__glewGetQueryiv) +#define glIsBuffer GLEW_GET_FUN(__glewIsBuffer) +#define glIsQuery GLEW_GET_FUN(__glewIsQuery) +#define glMapBuffer GLEW_GET_FUN(__glewMapBuffer) +#define glUnmapBuffer GLEW_GET_FUN(__glewUnmapBuffer) + +#define GLEW_VERSION_1_5 GLEW_GET_VAR(__GLEW_VERSION_1_5) + +#endif /* GL_VERSION_1_5 */ + +/* ----------------------------- GL_VERSION_2_0 ---------------------------- */ + +#ifndef GL_VERSION_2_0 +#define GL_VERSION_2_0 1 + +#define GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION +#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_PROGRAM_TWO_SIDE 0x8643 +#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_POINT_SPRITE 0x8861 +#define GL_COORD_REPLACE 0x8862 +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_MAX_TEXTURE_COORDS 0x8871 +#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 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 + +typedef void (GLAPIENTRY * PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar* name); +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); +typedef void (GLAPIENTRY * PFNGLCOMPILESHADERPROC) (GLuint shader); +typedef GLuint (GLAPIENTRY * PFNGLCREATEPROGRAMPROC) (void); +typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROC) (GLenum type); +typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPROC) (GLuint program); +typedef void (GLAPIENTRY * PFNGLDELETESHADERPROC) (GLuint shader); +typedef void (GLAPIENTRY * PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum* bufs); +typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name); +typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name); +typedef void (GLAPIENTRY * PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders); +typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar* name); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint* param); +typedef void (GLAPIENTRY * PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog); +typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEPROC) (GLuint obj, GLsizei maxLength, GLsizei* length, GLchar* source); +typedef void (GLAPIENTRY * PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint* param); +typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar* name); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void** pointer); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPROC) (GLuint program); +typedef GLboolean (GLAPIENTRY * PFNGLISSHADERPROC) (GLuint shader); +typedef void (GLAPIENTRY * PFNGLLINKPROGRAMPROC) (GLuint program); +typedef void (GLAPIENTRY * PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const* string, const GLint* length); +typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); +typedef void (GLAPIENTRY * PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); +typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (GLAPIENTRY * PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); +typedef void (GLAPIENTRY * PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM1IPROC) (GLint location, GLint v0); +typedef void (GLAPIENTRY * PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); +typedef void (GLAPIENTRY * PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); +typedef void (GLAPIENTRY * PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (GLAPIENTRY * PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (GLAPIENTRY * PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (GLAPIENTRY * PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (GLAPIENTRY * PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUSEPROGRAMPROC) (GLuint program); +typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPROC) (GLuint program); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer); + +#define glAttachShader GLEW_GET_FUN(__glewAttachShader) +#define glBindAttribLocation GLEW_GET_FUN(__glewBindAttribLocation) +#define glBlendEquationSeparate GLEW_GET_FUN(__glewBlendEquationSeparate) +#define glCompileShader GLEW_GET_FUN(__glewCompileShader) +#define glCreateProgram GLEW_GET_FUN(__glewCreateProgram) +#define glCreateShader GLEW_GET_FUN(__glewCreateShader) +#define glDeleteProgram GLEW_GET_FUN(__glewDeleteProgram) +#define glDeleteShader GLEW_GET_FUN(__glewDeleteShader) +#define glDetachShader GLEW_GET_FUN(__glewDetachShader) +#define glDisableVertexAttribArray GLEW_GET_FUN(__glewDisableVertexAttribArray) +#define glDrawBuffers GLEW_GET_FUN(__glewDrawBuffers) +#define glEnableVertexAttribArray GLEW_GET_FUN(__glewEnableVertexAttribArray) +#define glGetActiveAttrib GLEW_GET_FUN(__glewGetActiveAttrib) +#define glGetActiveUniform GLEW_GET_FUN(__glewGetActiveUniform) +#define glGetAttachedShaders GLEW_GET_FUN(__glewGetAttachedShaders) +#define glGetAttribLocation GLEW_GET_FUN(__glewGetAttribLocation) +#define glGetProgramInfoLog GLEW_GET_FUN(__glewGetProgramInfoLog) +#define glGetProgramiv GLEW_GET_FUN(__glewGetProgramiv) +#define glGetShaderInfoLog GLEW_GET_FUN(__glewGetShaderInfoLog) +#define glGetShaderSource GLEW_GET_FUN(__glewGetShaderSource) +#define glGetShaderiv GLEW_GET_FUN(__glewGetShaderiv) +#define glGetUniformLocation GLEW_GET_FUN(__glewGetUniformLocation) +#define glGetUniformfv GLEW_GET_FUN(__glewGetUniformfv) +#define glGetUniformiv GLEW_GET_FUN(__glewGetUniformiv) +#define glGetVertexAttribPointerv GLEW_GET_FUN(__glewGetVertexAttribPointerv) +#define glGetVertexAttribdv GLEW_GET_FUN(__glewGetVertexAttribdv) +#define glGetVertexAttribfv GLEW_GET_FUN(__glewGetVertexAttribfv) +#define glGetVertexAttribiv GLEW_GET_FUN(__glewGetVertexAttribiv) +#define glIsProgram GLEW_GET_FUN(__glewIsProgram) +#define glIsShader GLEW_GET_FUN(__glewIsShader) +#define glLinkProgram GLEW_GET_FUN(__glewLinkProgram) +#define glShaderSource GLEW_GET_FUN(__glewShaderSource) +#define glStencilFuncSeparate GLEW_GET_FUN(__glewStencilFuncSeparate) +#define glStencilMaskSeparate GLEW_GET_FUN(__glewStencilMaskSeparate) +#define glStencilOpSeparate GLEW_GET_FUN(__glewStencilOpSeparate) +#define glUniform1f GLEW_GET_FUN(__glewUniform1f) +#define glUniform1fv GLEW_GET_FUN(__glewUniform1fv) +#define glUniform1i GLEW_GET_FUN(__glewUniform1i) +#define glUniform1iv GLEW_GET_FUN(__glewUniform1iv) +#define glUniform2f GLEW_GET_FUN(__glewUniform2f) +#define glUniform2fv GLEW_GET_FUN(__glewUniform2fv) +#define glUniform2i GLEW_GET_FUN(__glewUniform2i) +#define glUniform2iv GLEW_GET_FUN(__glewUniform2iv) +#define glUniform3f GLEW_GET_FUN(__glewUniform3f) +#define glUniform3fv GLEW_GET_FUN(__glewUniform3fv) +#define glUniform3i GLEW_GET_FUN(__glewUniform3i) +#define glUniform3iv GLEW_GET_FUN(__glewUniform3iv) +#define glUniform4f GLEW_GET_FUN(__glewUniform4f) +#define glUniform4fv GLEW_GET_FUN(__glewUniform4fv) +#define glUniform4i GLEW_GET_FUN(__glewUniform4i) +#define glUniform4iv GLEW_GET_FUN(__glewUniform4iv) +#define glUniformMatrix2fv GLEW_GET_FUN(__glewUniformMatrix2fv) +#define glUniformMatrix3fv GLEW_GET_FUN(__glewUniformMatrix3fv) +#define glUniformMatrix4fv GLEW_GET_FUN(__glewUniformMatrix4fv) +#define glUseProgram GLEW_GET_FUN(__glewUseProgram) +#define glValidateProgram GLEW_GET_FUN(__glewValidateProgram) +#define glVertexAttrib1d GLEW_GET_FUN(__glewVertexAttrib1d) +#define glVertexAttrib1dv GLEW_GET_FUN(__glewVertexAttrib1dv) +#define glVertexAttrib1f GLEW_GET_FUN(__glewVertexAttrib1f) +#define glVertexAttrib1fv GLEW_GET_FUN(__glewVertexAttrib1fv) +#define glVertexAttrib1s GLEW_GET_FUN(__glewVertexAttrib1s) +#define glVertexAttrib1sv GLEW_GET_FUN(__glewVertexAttrib1sv) +#define glVertexAttrib2d GLEW_GET_FUN(__glewVertexAttrib2d) +#define glVertexAttrib2dv GLEW_GET_FUN(__glewVertexAttrib2dv) +#define glVertexAttrib2f GLEW_GET_FUN(__glewVertexAttrib2f) +#define glVertexAttrib2fv GLEW_GET_FUN(__glewVertexAttrib2fv) +#define glVertexAttrib2s GLEW_GET_FUN(__glewVertexAttrib2s) +#define glVertexAttrib2sv GLEW_GET_FUN(__glewVertexAttrib2sv) +#define glVertexAttrib3d GLEW_GET_FUN(__glewVertexAttrib3d) +#define glVertexAttrib3dv GLEW_GET_FUN(__glewVertexAttrib3dv) +#define glVertexAttrib3f GLEW_GET_FUN(__glewVertexAttrib3f) +#define glVertexAttrib3fv GLEW_GET_FUN(__glewVertexAttrib3fv) +#define glVertexAttrib3s GLEW_GET_FUN(__glewVertexAttrib3s) +#define glVertexAttrib3sv GLEW_GET_FUN(__glewVertexAttrib3sv) +#define glVertexAttrib4Nbv GLEW_GET_FUN(__glewVertexAttrib4Nbv) +#define glVertexAttrib4Niv GLEW_GET_FUN(__glewVertexAttrib4Niv) +#define glVertexAttrib4Nsv GLEW_GET_FUN(__glewVertexAttrib4Nsv) +#define glVertexAttrib4Nub GLEW_GET_FUN(__glewVertexAttrib4Nub) +#define glVertexAttrib4Nubv GLEW_GET_FUN(__glewVertexAttrib4Nubv) +#define glVertexAttrib4Nuiv GLEW_GET_FUN(__glewVertexAttrib4Nuiv) +#define glVertexAttrib4Nusv GLEW_GET_FUN(__glewVertexAttrib4Nusv) +#define glVertexAttrib4bv GLEW_GET_FUN(__glewVertexAttrib4bv) +#define glVertexAttrib4d GLEW_GET_FUN(__glewVertexAttrib4d) +#define glVertexAttrib4dv GLEW_GET_FUN(__glewVertexAttrib4dv) +#define glVertexAttrib4f GLEW_GET_FUN(__glewVertexAttrib4f) +#define glVertexAttrib4fv GLEW_GET_FUN(__glewVertexAttrib4fv) +#define glVertexAttrib4iv GLEW_GET_FUN(__glewVertexAttrib4iv) +#define glVertexAttrib4s GLEW_GET_FUN(__glewVertexAttrib4s) +#define glVertexAttrib4sv GLEW_GET_FUN(__glewVertexAttrib4sv) +#define glVertexAttrib4ubv GLEW_GET_FUN(__glewVertexAttrib4ubv) +#define glVertexAttrib4uiv GLEW_GET_FUN(__glewVertexAttrib4uiv) +#define glVertexAttrib4usv GLEW_GET_FUN(__glewVertexAttrib4usv) +#define glVertexAttribPointer GLEW_GET_FUN(__glewVertexAttribPointer) + +#define GLEW_VERSION_2_0 GLEW_GET_VAR(__GLEW_VERSION_2_0) + +#endif /* GL_VERSION_2_0 */ + +/* ----------------------------- GL_VERSION_2_1 ---------------------------- */ + +#ifndef GL_VERSION_2_1 +#define GL_VERSION_2_1 1 + +#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F +#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_SLUMINANCE_ALPHA 0x8C44 +#define GL_SLUMINANCE8_ALPHA8 0x8C45 +#define GL_SLUMINANCE 0x8C46 +#define GL_SLUMINANCE8 0x8C47 +#define GL_COMPRESSED_SRGB 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 +#define GL_COMPRESSED_SLUMINANCE 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B + +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + +#define glUniformMatrix2x3fv GLEW_GET_FUN(__glewUniformMatrix2x3fv) +#define glUniformMatrix2x4fv GLEW_GET_FUN(__glewUniformMatrix2x4fv) +#define glUniformMatrix3x2fv GLEW_GET_FUN(__glewUniformMatrix3x2fv) +#define glUniformMatrix3x4fv GLEW_GET_FUN(__glewUniformMatrix3x4fv) +#define glUniformMatrix4x2fv GLEW_GET_FUN(__glewUniformMatrix4x2fv) +#define glUniformMatrix4x3fv GLEW_GET_FUN(__glewUniformMatrix4x3fv) + +#define GLEW_VERSION_2_1 GLEW_GET_VAR(__GLEW_VERSION_2_1) + +#endif /* GL_VERSION_2_1 */ + +/* ----------------------------- GL_VERSION_3_0 ---------------------------- */ + +#ifndef GL_VERSION_3_0 +#define GL_VERSION_3_0 1 + +#define GL_CLIP_DISTANCE0 GL_CLIP_PLANE0 +#define GL_CLIP_DISTANCE1 GL_CLIP_PLANE1 +#define GL_CLIP_DISTANCE2 GL_CLIP_PLANE2 +#define GL_CLIP_DISTANCE3 GL_CLIP_PLANE3 +#define GL_CLIP_DISTANCE4 GL_CLIP_PLANE4 +#define GL_CLIP_DISTANCE5 GL_CLIP_PLANE5 +#define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_R_TO_TEXTURE_ARB +#define GL_MAX_CLIP_DISTANCES GL_MAX_CLIP_PLANES +#define GL_MAX_VARYING_COMPONENTS GL_MAX_VARYING_FLOATS +#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 +#define GL_MAJOR_VERSION 0x821B +#define GL_MINOR_VERSION 0x821C +#define GL_NUM_EXTENSIONS 0x821D +#define GL_CONTEXT_FLAGS 0x821E +#define GL_DEPTH_BUFFER 0x8223 +#define GL_STENCIL_BUFFER 0x8224 +#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_VERTEX_COLOR 0x891A +#define GL_CLAMP_FRAGMENT_COLOR 0x891B +#define GL_CLAMP_READ_COLOR 0x891C +#define GL_FIXED_ONLY 0x891D +#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_LUMINANCE_TYPE 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 +#define GL_TEXTURE_DEPTH_TYPE 0x8C16 +#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_ALPHA_INTEGER 0x8D97 +#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 + +typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode); +typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); +typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint colorNumber, const GLchar* name); +typedef void (GLAPIENTRY * PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp); +typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawBuffer, GLfloat depth, GLint stencil); +typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawBuffer, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawBuffer, const GLint* value); +typedef void (GLAPIENTRY * PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawBuffer, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLCOLORMASKIPROC) (GLuint buf, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +typedef void (GLAPIENTRY * PFNGLDISABLEIPROC) (GLenum cap, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEIPROC) (GLenum cap, GLuint index); +typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERPROC) (void); +typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKPROC) (void); +typedef void (GLAPIENTRY * PFNGLGETBOOLEANI_VPROC) (GLenum pname, GLuint index, GLboolean* data); +typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar* name); +typedef const GLubyte* (GLAPIENTRY * PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIPROC) (GLenum cap, GLuint index); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode); +typedef void (GLAPIENTRY * PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); +typedef void (GLAPIENTRY * PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); +typedef void (GLAPIENTRY * PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (GLAPIENTRY * PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (GLAPIENTRY * PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint v0); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint* v0); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint v0); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint* v0); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint v0, GLint v1); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint* v0); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint v0, GLuint v1); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint* v0); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint v0, GLint v1, GLint v2); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint* v0); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint v0, GLuint v1, GLuint v2); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint* v0); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte* v0); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint* v0); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort* v0); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte* v0); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint* v0); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort* v0); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void*pointer); + +#define glBeginConditionalRender GLEW_GET_FUN(__glewBeginConditionalRender) +#define glBeginTransformFeedback GLEW_GET_FUN(__glewBeginTransformFeedback) +#define glBindFragDataLocation GLEW_GET_FUN(__glewBindFragDataLocation) +#define glClampColor GLEW_GET_FUN(__glewClampColor) +#define glClearBufferfi GLEW_GET_FUN(__glewClearBufferfi) +#define glClearBufferfv GLEW_GET_FUN(__glewClearBufferfv) +#define glClearBufferiv GLEW_GET_FUN(__glewClearBufferiv) +#define glClearBufferuiv GLEW_GET_FUN(__glewClearBufferuiv) +#define glColorMaski GLEW_GET_FUN(__glewColorMaski) +#define glDisablei GLEW_GET_FUN(__glewDisablei) +#define glEnablei GLEW_GET_FUN(__glewEnablei) +#define glEndConditionalRender GLEW_GET_FUN(__glewEndConditionalRender) +#define glEndTransformFeedback GLEW_GET_FUN(__glewEndTransformFeedback) +#define glGetBooleani_v GLEW_GET_FUN(__glewGetBooleani_v) +#define glGetFragDataLocation GLEW_GET_FUN(__glewGetFragDataLocation) +#define glGetStringi GLEW_GET_FUN(__glewGetStringi) +#define glGetTexParameterIiv GLEW_GET_FUN(__glewGetTexParameterIiv) +#define glGetTexParameterIuiv GLEW_GET_FUN(__glewGetTexParameterIuiv) +#define glGetTransformFeedbackVarying GLEW_GET_FUN(__glewGetTransformFeedbackVarying) +#define glGetUniformuiv GLEW_GET_FUN(__glewGetUniformuiv) +#define glGetVertexAttribIiv GLEW_GET_FUN(__glewGetVertexAttribIiv) +#define glGetVertexAttribIuiv GLEW_GET_FUN(__glewGetVertexAttribIuiv) +#define glIsEnabledi GLEW_GET_FUN(__glewIsEnabledi) +#define glTexParameterIiv GLEW_GET_FUN(__glewTexParameterIiv) +#define glTexParameterIuiv GLEW_GET_FUN(__glewTexParameterIuiv) +#define glTransformFeedbackVaryings GLEW_GET_FUN(__glewTransformFeedbackVaryings) +#define glUniform1ui GLEW_GET_FUN(__glewUniform1ui) +#define glUniform1uiv GLEW_GET_FUN(__glewUniform1uiv) +#define glUniform2ui GLEW_GET_FUN(__glewUniform2ui) +#define glUniform2uiv GLEW_GET_FUN(__glewUniform2uiv) +#define glUniform3ui GLEW_GET_FUN(__glewUniform3ui) +#define glUniform3uiv GLEW_GET_FUN(__glewUniform3uiv) +#define glUniform4ui GLEW_GET_FUN(__glewUniform4ui) +#define glUniform4uiv GLEW_GET_FUN(__glewUniform4uiv) +#define glVertexAttribI1i GLEW_GET_FUN(__glewVertexAttribI1i) +#define glVertexAttribI1iv GLEW_GET_FUN(__glewVertexAttribI1iv) +#define glVertexAttribI1ui GLEW_GET_FUN(__glewVertexAttribI1ui) +#define glVertexAttribI1uiv GLEW_GET_FUN(__glewVertexAttribI1uiv) +#define glVertexAttribI2i GLEW_GET_FUN(__glewVertexAttribI2i) +#define glVertexAttribI2iv GLEW_GET_FUN(__glewVertexAttribI2iv) +#define glVertexAttribI2ui GLEW_GET_FUN(__glewVertexAttribI2ui) +#define glVertexAttribI2uiv GLEW_GET_FUN(__glewVertexAttribI2uiv) +#define glVertexAttribI3i GLEW_GET_FUN(__glewVertexAttribI3i) +#define glVertexAttribI3iv GLEW_GET_FUN(__glewVertexAttribI3iv) +#define glVertexAttribI3ui GLEW_GET_FUN(__glewVertexAttribI3ui) +#define glVertexAttribI3uiv GLEW_GET_FUN(__glewVertexAttribI3uiv) +#define glVertexAttribI4bv GLEW_GET_FUN(__glewVertexAttribI4bv) +#define glVertexAttribI4i GLEW_GET_FUN(__glewVertexAttribI4i) +#define glVertexAttribI4iv GLEW_GET_FUN(__glewVertexAttribI4iv) +#define glVertexAttribI4sv GLEW_GET_FUN(__glewVertexAttribI4sv) +#define glVertexAttribI4ubv GLEW_GET_FUN(__glewVertexAttribI4ubv) +#define glVertexAttribI4ui GLEW_GET_FUN(__glewVertexAttribI4ui) +#define glVertexAttribI4uiv GLEW_GET_FUN(__glewVertexAttribI4uiv) +#define glVertexAttribI4usv GLEW_GET_FUN(__glewVertexAttribI4usv) +#define glVertexAttribIPointer GLEW_GET_FUN(__glewVertexAttribIPointer) + +#define GLEW_VERSION_3_0 GLEW_GET_VAR(__GLEW_VERSION_3_0) + +#endif /* GL_VERSION_3_0 */ + +/* ----------------------------- GL_VERSION_3_1 ---------------------------- */ + +#ifndef GL_VERSION_3_1 +#define GL_VERSION_3_1 1 + +#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_SAMPLER_2D_RECT 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 +#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_BUFFER_FORMAT 0x8C2E +#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_RED_SNORM 0x8F90 +#define GL_RG_SNORM 0x8F91 +#define GL_RGB_SNORM 0x8F92 +#define GL_RGBA_SNORM 0x8F93 +#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_BUFFER_ACCESS_FLAGS 0x911F +#define GL_BUFFER_MAP_LENGTH 0x9120 +#define GL_BUFFER_MAP_OFFSET 0x9121 + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint buffer); +typedef void (GLAPIENTRY * PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalFormat, GLuint buffer); + +#define glDrawArraysInstanced GLEW_GET_FUN(__glewDrawArraysInstanced) +#define glDrawElementsInstanced GLEW_GET_FUN(__glewDrawElementsInstanced) +#define glPrimitiveRestartIndex GLEW_GET_FUN(__glewPrimitiveRestartIndex) +#define glTexBuffer GLEW_GET_FUN(__glewTexBuffer) + +#define GLEW_VERSION_3_1 GLEW_GET_VAR(__GLEW_VERSION_3_1) + +#endif /* GL_VERSION_3_1 */ + +/* ----------------------------- GL_VERSION_3_2 ---------------------------- */ + +#ifndef GL_VERSION_3_2 +#define GL_VERSION_3_2 1 + +#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_GEOMETRY_VERTICES_OUT 0x8916 +#define GL_GEOMETRY_INPUT_TYPE 0x8917 +#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 +#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_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 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum value, GLint64 * data); +typedef void (GLAPIENTRY * PFNGLGETINTEGER64I_VPROC) (GLenum pname, GLuint index, GLint64 * data); + +#define glFramebufferTexture GLEW_GET_FUN(__glewFramebufferTexture) +#define glGetBufferParameteri64v GLEW_GET_FUN(__glewGetBufferParameteri64v) +#define glGetInteger64i_v GLEW_GET_FUN(__glewGetInteger64i_v) + +#define GLEW_VERSION_3_2 GLEW_GET_VAR(__GLEW_VERSION_3_2) + +#endif /* GL_VERSION_3_2 */ + +/* ----------------------------- GL_VERSION_3_3 ---------------------------- */ + +#ifndef GL_VERSION_3_3 +#define GL_VERSION_3_3 1 + +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE +#define GL_RGB10_A2UI 0x906F + +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); + +#define glVertexAttribDivisor GLEW_GET_FUN(__glewVertexAttribDivisor) + +#define GLEW_VERSION_3_3 GLEW_GET_VAR(__GLEW_VERSION_3_3) + +#endif /* GL_VERSION_3_3 */ + +/* ----------------------------- GL_VERSION_4_0 ---------------------------- */ + +#ifndef GL_VERSION_4_0 +#define GL_VERSION_4_0 1 + +#define GL_SAMPLE_SHADING 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F +#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS 0x8F9F +#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGPROC) (GLclampf value); + +#define glBlendEquationSeparatei GLEW_GET_FUN(__glewBlendEquationSeparatei) +#define glBlendEquationi GLEW_GET_FUN(__glewBlendEquationi) +#define glBlendFuncSeparatei GLEW_GET_FUN(__glewBlendFuncSeparatei) +#define glBlendFunci GLEW_GET_FUN(__glewBlendFunci) +#define glMinSampleShading GLEW_GET_FUN(__glewMinSampleShading) + +#define GLEW_VERSION_4_0 GLEW_GET_VAR(__GLEW_VERSION_4_0) + +#endif /* GL_VERSION_4_0 */ + +/* ----------------------------- GL_VERSION_4_1 ---------------------------- */ + +#ifndef GL_VERSION_4_1 +#define GL_VERSION_4_1 1 + +#define GLEW_VERSION_4_1 GLEW_GET_VAR(__GLEW_VERSION_4_1) + +#endif /* GL_VERSION_4_1 */ + +/* ----------------------------- GL_VERSION_4_2 ---------------------------- */ + +#ifndef GL_VERSION_4_2 +#define GL_VERSION_4_2 1 + +#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 +#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 +#define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C +#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D +#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E +#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F +#define GL_COPY_READ_BUFFER_BINDING 0x8F36 +#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 + +#define GLEW_VERSION_4_2 GLEW_GET_VAR(__GLEW_VERSION_4_2) + +#endif /* GL_VERSION_4_2 */ + +/* ----------------------------- GL_VERSION_4_3 ---------------------------- */ + +#ifndef GL_VERSION_4_3 +#define GL_VERSION_4_3 1 + +#define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9 +#define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E + +#define GLEW_VERSION_4_3 GLEW_GET_VAR(__GLEW_VERSION_4_3) + +#endif /* GL_VERSION_4_3 */ + +/* ----------------------------- GL_VERSION_4_4 ---------------------------- */ + +#ifndef GL_VERSION_4_4 +#define GL_VERSION_4_4 1 + +#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 +#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 +#define GL_TEXTURE_BUFFER_BINDING 0x8C2A + +#define GLEW_VERSION_4_4 GLEW_GET_VAR(__GLEW_VERSION_4_4) + +#endif /* GL_VERSION_4_4 */ + +/* ----------------------------- GL_VERSION_4_5 ---------------------------- */ + +#ifndef GL_VERSION_4_5 +#define GL_VERSION_4_5 1 + +#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004 + +typedef GLenum (GLAPIENTRY * PFNGLGETGRAPHICSRESETSTATUSPROC) (void); +typedef void (GLAPIENTRY * PFNGLGETNCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, GLsizei bufSize, GLvoid *pixels); +typedef void (GLAPIENTRY * PFNGLGETNTEXIMAGEPROC) (GLenum tex, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *pixels); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMDVPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); + +#define glGetGraphicsResetStatus GLEW_GET_FUN(__glewGetGraphicsResetStatus) +#define glGetnCompressedTexImage GLEW_GET_FUN(__glewGetnCompressedTexImage) +#define glGetnTexImage GLEW_GET_FUN(__glewGetnTexImage) +#define glGetnUniformdv GLEW_GET_FUN(__glewGetnUniformdv) + +#define GLEW_VERSION_4_5 GLEW_GET_VAR(__GLEW_VERSION_4_5) + +#endif /* GL_VERSION_4_5 */ + +/* ----------------------------- GL_VERSION_4_6 ---------------------------- */ + +#ifndef GL_VERSION_4_6 +#define GL_VERSION_4_6 1 + +#define GL_CONTEXT_FLAG_NO_ERROR_BIT 0x00000008 +#define GL_PARAMETER_BUFFER 0x80EE +#define GL_PARAMETER_BUFFER_BINDING 0x80EF +#define GL_TRANSFORM_FEEDBACK_OVERFLOW 0x82EC +#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW 0x82ED +#define GL_VERTICES_SUBMITTED 0x82EE +#define GL_PRIMITIVES_SUBMITTED 0x82EF +#define GL_VERTEX_SHADER_INVOCATIONS 0x82F0 +#define GL_TESS_CONTROL_SHADER_PATCHES 0x82F1 +#define GL_TESS_EVALUATION_SHADER_INVOCATIONS 0x82F2 +#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3 +#define GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4 +#define GL_COMPUTE_SHADER_INVOCATIONS 0x82F5 +#define GL_CLIPPING_INPUT_PRIMITIVES 0x82F6 +#define GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7 +#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF +#define GL_POLYGON_OFFSET_CLAMP 0x8E1B +#define GL_SHADER_BINARY_FORMAT_SPIR_V 0x9551 +#define GL_SPIR_V_BINARY 0x9552 +#define GL_SPIR_V_EXTENSIONS 0x9553 +#define GL_NUM_SPIR_V_EXTENSIONS 0x9554 + +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC) (GLenum mode, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC) (GLenum mode, GLenum type, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLSPECIALIZESHADERPROC) (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); + +#define glMultiDrawArraysIndirectCount GLEW_GET_FUN(__glewMultiDrawArraysIndirectCount) +#define glMultiDrawElementsIndirectCount GLEW_GET_FUN(__glewMultiDrawElementsIndirectCount) +#define glSpecializeShader GLEW_GET_FUN(__glewSpecializeShader) + +#define GLEW_VERSION_4_6 GLEW_GET_VAR(__GLEW_VERSION_4_6) + +#endif /* GL_VERSION_4_6 */ + +/* -------------------------- GL_3DFX_multisample -------------------------- */ + +#ifndef GL_3DFX_multisample +#define GL_3DFX_multisample 1 + +#define GL_MULTISAMPLE_3DFX 0x86B2 +#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 +#define GL_SAMPLES_3DFX 0x86B4 +#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 + +#define GLEW_3DFX_multisample GLEW_GET_VAR(__GLEW_3DFX_multisample) + +#endif /* GL_3DFX_multisample */ + +/* ---------------------------- GL_3DFX_tbuffer ---------------------------- */ + +#ifndef GL_3DFX_tbuffer +#define GL_3DFX_tbuffer 1 + +typedef void (GLAPIENTRY * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); + +#define glTbufferMask3DFX GLEW_GET_FUN(__glewTbufferMask3DFX) + +#define GLEW_3DFX_tbuffer GLEW_GET_VAR(__GLEW_3DFX_tbuffer) + +#endif /* GL_3DFX_tbuffer */ + +/* -------------------- GL_3DFX_texture_compression_FXT1 ------------------- */ + +#ifndef GL_3DFX_texture_compression_FXT1 +#define GL_3DFX_texture_compression_FXT1 1 + +#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 +#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 + +#define GLEW_3DFX_texture_compression_FXT1 GLEW_GET_VAR(__GLEW_3DFX_texture_compression_FXT1) + +#endif /* GL_3DFX_texture_compression_FXT1 */ + +/* ----------------------- GL_AMD_blend_minmax_factor ---------------------- */ + +#ifndef GL_AMD_blend_minmax_factor +#define GL_AMD_blend_minmax_factor 1 + +#define GL_FACTOR_MIN_AMD 0x901C +#define GL_FACTOR_MAX_AMD 0x901D + +#define GLEW_AMD_blend_minmax_factor GLEW_GET_VAR(__GLEW_AMD_blend_minmax_factor) + +#endif /* GL_AMD_blend_minmax_factor */ + +/* --------------------- GL_AMD_compressed_3DC_texture --------------------- */ + +#ifndef GL_AMD_compressed_3DC_texture +#define GL_AMD_compressed_3DC_texture 1 + +#define GL_3DC_X_AMD 0x87F9 +#define GL_3DC_XY_AMD 0x87FA + +#define GLEW_AMD_compressed_3DC_texture GLEW_GET_VAR(__GLEW_AMD_compressed_3DC_texture) + +#endif /* GL_AMD_compressed_3DC_texture */ + +/* --------------------- GL_AMD_compressed_ATC_texture --------------------- */ + +#ifndef GL_AMD_compressed_ATC_texture +#define GL_AMD_compressed_ATC_texture 1 + +#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE +#define GL_ATC_RGB_AMD 0x8C92 +#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93 + +#define GLEW_AMD_compressed_ATC_texture GLEW_GET_VAR(__GLEW_AMD_compressed_ATC_texture) + +#endif /* GL_AMD_compressed_ATC_texture */ + +/* ----------------------- GL_AMD_conservative_depth ----------------------- */ + +#ifndef GL_AMD_conservative_depth +#define GL_AMD_conservative_depth 1 + +#define GLEW_AMD_conservative_depth GLEW_GET_VAR(__GLEW_AMD_conservative_depth) + +#endif /* GL_AMD_conservative_depth */ + +/* -------------------------- GL_AMD_debug_output -------------------------- */ + +#ifndef GL_AMD_debug_output +#define GL_AMD_debug_output 1 + +#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 + +typedef void (GLAPIENTRY *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar* message, void* userParam); + +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, void *userParam); +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar* buf); +typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufsize, GLenum* categories, GLenum* severities, GLuint* ids, GLsizei* lengths, GLchar* message); + +#define glDebugMessageCallbackAMD GLEW_GET_FUN(__glewDebugMessageCallbackAMD) +#define glDebugMessageEnableAMD GLEW_GET_FUN(__glewDebugMessageEnableAMD) +#define glDebugMessageInsertAMD GLEW_GET_FUN(__glewDebugMessageInsertAMD) +#define glGetDebugMessageLogAMD GLEW_GET_FUN(__glewGetDebugMessageLogAMD) + +#define GLEW_AMD_debug_output GLEW_GET_VAR(__GLEW_AMD_debug_output) + +#endif /* GL_AMD_debug_output */ + +/* ---------------------- GL_AMD_depth_clamp_separate ---------------------- */ + +#ifndef GL_AMD_depth_clamp_separate +#define GL_AMD_depth_clamp_separate 1 + +#define GL_DEPTH_CLAMP_NEAR_AMD 0x901E +#define GL_DEPTH_CLAMP_FAR_AMD 0x901F + +#define GLEW_AMD_depth_clamp_separate GLEW_GET_VAR(__GLEW_AMD_depth_clamp_separate) + +#endif /* GL_AMD_depth_clamp_separate */ + +/* ----------------------- GL_AMD_draw_buffers_blend ----------------------- */ + +#ifndef GL_AMD_draw_buffers_blend +#define GL_AMD_draw_buffers_blend 1 + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode); +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); + +#define glBlendEquationIndexedAMD GLEW_GET_FUN(__glewBlendEquationIndexedAMD) +#define glBlendEquationSeparateIndexedAMD GLEW_GET_FUN(__glewBlendEquationSeparateIndexedAMD) +#define glBlendFuncIndexedAMD GLEW_GET_FUN(__glewBlendFuncIndexedAMD) +#define glBlendFuncSeparateIndexedAMD GLEW_GET_FUN(__glewBlendFuncSeparateIndexedAMD) + +#define GLEW_AMD_draw_buffers_blend GLEW_GET_VAR(__GLEW_AMD_draw_buffers_blend) + +#endif /* GL_AMD_draw_buffers_blend */ + +/* ---------------- GL_AMD_framebuffer_multisample_advanced ---------------- */ + +#ifndef GL_AMD_framebuffer_multisample_advanced +#define GL_AMD_framebuffer_multisample_advanced 1 + +#define GL_RENDERBUFFER_STORAGE_SAMPLES_AMD 0x91B2 +#define GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD 0x91B3 +#define GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD 0x91B4 +#define GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD 0x91B5 +#define GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B6 +#define GL_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B7 + +typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); + +#define glNamedRenderbufferStorageMultisampleAdvancedAMD GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleAdvancedAMD) +#define glRenderbufferStorageMultisampleAdvancedAMD GLEW_GET_FUN(__glewRenderbufferStorageMultisampleAdvancedAMD) + +#define GLEW_AMD_framebuffer_multisample_advanced GLEW_GET_VAR(__GLEW_AMD_framebuffer_multisample_advanced) + +#endif /* GL_AMD_framebuffer_multisample_advanced */ + +/* ------------------ GL_AMD_framebuffer_sample_positions ------------------ */ + +#ifndef GL_AMD_framebuffer_sample_positions +#define GL_AMD_framebuffer_sample_positions 1 + +#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F +#define GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD 0x91AE +#define GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD 0x91AF +#define GL_ALL_PIXELS_AMD 0xFFFFFFFF + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC) (GLenum target, GLuint numsamples, GLuint pixelindex, const GLfloat* values); +typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC) (GLenum target, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat* values); +typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC) (GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat* values); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC) (GLuint framebuffer, GLuint numsamples, GLuint pixelindex, const GLfloat* values); + +#define glFramebufferSamplePositionsfvAMD GLEW_GET_FUN(__glewFramebufferSamplePositionsfvAMD) +#define glGetFramebufferParameterfvAMD GLEW_GET_FUN(__glewGetFramebufferParameterfvAMD) +#define glGetNamedFramebufferParameterfvAMD GLEW_GET_FUN(__glewGetNamedFramebufferParameterfvAMD) +#define glNamedFramebufferSamplePositionsfvAMD GLEW_GET_FUN(__glewNamedFramebufferSamplePositionsfvAMD) + +#define GLEW_AMD_framebuffer_sample_positions GLEW_GET_VAR(__GLEW_AMD_framebuffer_sample_positions) + +#endif /* GL_AMD_framebuffer_sample_positions */ + +/* --------------------------- GL_AMD_gcn_shader --------------------------- */ + +#ifndef GL_AMD_gcn_shader +#define GL_AMD_gcn_shader 1 + +#define GLEW_AMD_gcn_shader GLEW_GET_VAR(__GLEW_AMD_gcn_shader) + +#endif /* GL_AMD_gcn_shader */ + +/* ---------------------- GL_AMD_gpu_shader_half_float --------------------- */ + +#ifndef GL_AMD_gpu_shader_half_float +#define GL_AMD_gpu_shader_half_float 1 + +#define GL_FLOAT16_NV 0x8FF8 +#define GL_FLOAT16_VEC2_NV 0x8FF9 +#define GL_FLOAT16_VEC3_NV 0x8FFA +#define GL_FLOAT16_VEC4_NV 0x8FFB +#define GL_FLOAT16_MAT2_AMD 0x91C5 +#define GL_FLOAT16_MAT3_AMD 0x91C6 +#define GL_FLOAT16_MAT4_AMD 0x91C7 +#define GL_FLOAT16_MAT2x3_AMD 0x91C8 +#define GL_FLOAT16_MAT2x4_AMD 0x91C9 +#define GL_FLOAT16_MAT3x2_AMD 0x91CA +#define GL_FLOAT16_MAT3x4_AMD 0x91CB +#define GL_FLOAT16_MAT4x2_AMD 0x91CC +#define GL_FLOAT16_MAT4x3_AMD 0x91CD + +#define GLEW_AMD_gpu_shader_half_float GLEW_GET_VAR(__GLEW_AMD_gpu_shader_half_float) + +#endif /* GL_AMD_gpu_shader_half_float */ + +/* ------------------- GL_AMD_gpu_shader_half_float_fetch ------------------ */ + +#ifndef GL_AMD_gpu_shader_half_float_fetch +#define GL_AMD_gpu_shader_half_float_fetch 1 + +#define GL_FLOAT16_SAMPLER_1D_AMD 0x91CE +#define GL_FLOAT16_SAMPLER_2D_AMD 0x91CF +#define GL_FLOAT16_SAMPLER_3D_AMD 0x91D0 +#define GL_FLOAT16_SAMPLER_CUBE_AMD 0x91D1 +#define GL_FLOAT16_SAMPLER_2D_RECT_AMD 0x91D2 +#define GL_FLOAT16_SAMPLER_1D_ARRAY_AMD 0x91D3 +#define GL_FLOAT16_SAMPLER_2D_ARRAY_AMD 0x91D4 +#define GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_AMD 0x91D5 +#define GL_FLOAT16_SAMPLER_BUFFER_AMD 0x91D6 +#define GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_AMD 0x91D7 +#define GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_ARRAY_AMD 0x91D8 +#define GL_FLOAT16_SAMPLER_1D_SHADOW_AMD 0x91D9 +#define GL_FLOAT16_SAMPLER_2D_SHADOW_AMD 0x91DA +#define GL_FLOAT16_SAMPLER_2D_RECT_SHADOW_AMD 0x91DB +#define GL_FLOAT16_SAMPLER_1D_ARRAY_SHADOW_AMD 0x91DC +#define GL_FLOAT16_SAMPLER_2D_ARRAY_SHADOW_AMD 0x91DD +#define GL_FLOAT16_SAMPLER_CUBE_SHADOW_AMD 0x91DE +#define GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_SHADOW_AMD 0x91DF +#define GL_FLOAT16_IMAGE_1D_AMD 0x91E0 +#define GL_FLOAT16_IMAGE_2D_AMD 0x91E1 +#define GL_FLOAT16_IMAGE_3D_AMD 0x91E2 +#define GL_FLOAT16_IMAGE_2D_RECT_AMD 0x91E3 +#define GL_FLOAT16_IMAGE_CUBE_AMD 0x91E4 +#define GL_FLOAT16_IMAGE_1D_ARRAY_AMD 0x91E5 +#define GL_FLOAT16_IMAGE_2D_ARRAY_AMD 0x91E6 +#define GL_FLOAT16_IMAGE_CUBE_MAP_ARRAY_AMD 0x91E7 +#define GL_FLOAT16_IMAGE_BUFFER_AMD 0x91E8 +#define GL_FLOAT16_IMAGE_2D_MULTISAMPLE_AMD 0x91E9 +#define GL_FLOAT16_IMAGE_2D_MULTISAMPLE_ARRAY_AMD 0x91EA + +#define GLEW_AMD_gpu_shader_half_float_fetch GLEW_GET_VAR(__GLEW_AMD_gpu_shader_half_float_fetch) + +#endif /* GL_AMD_gpu_shader_half_float_fetch */ + +/* ------------------------ GL_AMD_gpu_shader_int16 ------------------------ */ + +#ifndef GL_AMD_gpu_shader_int16 +#define GL_AMD_gpu_shader_int16 1 + +#define GLEW_AMD_gpu_shader_int16 GLEW_GET_VAR(__GLEW_AMD_gpu_shader_int16) + +#endif /* GL_AMD_gpu_shader_int16 */ + +/* ------------------------ GL_AMD_gpu_shader_int64 ------------------------ */ + +#ifndef GL_AMD_gpu_shader_int64 +#define GL_AMD_gpu_shader_int64 1 + +#define GLEW_AMD_gpu_shader_int64 GLEW_GET_VAR(__GLEW_AMD_gpu_shader_int64) + +#endif /* GL_AMD_gpu_shader_int64 */ + +/* ---------------------- GL_AMD_interleaved_elements ---------------------- */ + +#ifndef GL_AMD_interleaved_elements +#define GL_AMD_interleaved_elements 1 + +#define GL_RED 0x1903 +#define GL_GREEN 0x1904 +#define GL_BLUE 0x1905 +#define GL_ALPHA 0x1906 +#define GL_RG8UI 0x8238 +#define GL_RG16UI 0x823A +#define GL_RGBA8UI 0x8D7C +#define GL_VERTEX_ELEMENT_SWIZZLE_AMD 0x91A4 +#define GL_VERTEX_ID_SWIZZLE_AMD 0x91A5 + +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPARAMETERIAMDPROC) (GLuint index, GLenum pname, GLint param); + +#define glVertexAttribParameteriAMD GLEW_GET_FUN(__glewVertexAttribParameteriAMD) + +#define GLEW_AMD_interleaved_elements GLEW_GET_VAR(__GLEW_AMD_interleaved_elements) + +#endif /* GL_AMD_interleaved_elements */ + +/* ----------------------- GL_AMD_multi_draw_indirect ---------------------- */ + +#ifndef GL_AMD_multi_draw_indirect +#define GL_AMD_multi_draw_indirect 1 + +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC) (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride); + +#define glMultiDrawArraysIndirectAMD GLEW_GET_FUN(__glewMultiDrawArraysIndirectAMD) +#define glMultiDrawElementsIndirectAMD GLEW_GET_FUN(__glewMultiDrawElementsIndirectAMD) + +#define GLEW_AMD_multi_draw_indirect GLEW_GET_VAR(__GLEW_AMD_multi_draw_indirect) + +#endif /* GL_AMD_multi_draw_indirect */ + +/* ------------------------- GL_AMD_name_gen_delete ------------------------ */ + +#ifndef GL_AMD_name_gen_delete +#define GL_AMD_name_gen_delete 1 + +#define GL_DATA_BUFFER_AMD 0x9151 +#define GL_PERFORMANCE_MONITOR_AMD 0x9152 +#define GL_QUERY_OBJECT_AMD 0x9153 +#define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154 +#define GL_SAMPLER_OBJECT_AMD 0x9155 + +typedef void (GLAPIENTRY * PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint* names); +typedef void (GLAPIENTRY * PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint* names); +typedef GLboolean (GLAPIENTRY * PFNGLISNAMEAMDPROC) (GLenum identifier, GLuint name); + +#define glDeleteNamesAMD GLEW_GET_FUN(__glewDeleteNamesAMD) +#define glGenNamesAMD GLEW_GET_FUN(__glewGenNamesAMD) +#define glIsNameAMD GLEW_GET_FUN(__glewIsNameAMD) + +#define GLEW_AMD_name_gen_delete GLEW_GET_VAR(__GLEW_AMD_name_gen_delete) + +#endif /* GL_AMD_name_gen_delete */ + +/* ---------------------- GL_AMD_occlusion_query_event --------------------- */ + +#ifndef GL_AMD_occlusion_query_event +#define GL_AMD_occlusion_query_event 1 + +#define GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD 0x00000001 +#define GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD 0x00000002 +#define GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD 0x00000004 +#define GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD 0x00000008 +#define GL_OCCLUSION_QUERY_EVENT_MASK_AMD 0x874F +#define GL_QUERY_ALL_EVENT_BITS_AMD 0xFFFFFFFF + +typedef void (GLAPIENTRY * PFNGLQUERYOBJECTPARAMETERUIAMDPROC) (GLenum target, GLuint id, GLenum pname, GLuint param); + +#define glQueryObjectParameteruiAMD GLEW_GET_FUN(__glewQueryObjectParameteruiAMD) + +#define GLEW_AMD_occlusion_query_event GLEW_GET_VAR(__GLEW_AMD_occlusion_query_event) + +#endif /* GL_AMD_occlusion_query_event */ + +/* ----------------------- GL_AMD_performance_monitor ---------------------- */ + +#ifndef GL_AMD_performance_monitor +#define GL_AMD_performance_monitor 1 + +#define GL_COUNTER_TYPE_AMD 0x8BC0 +#define GL_COUNTER_RANGE_AMD 0x8BC1 +#define GL_UNSIGNED_INT64_AMD 0x8BC2 +#define GL_PERCENTAGE_AMD 0x8BC3 +#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 +#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 +#define GL_PERFMON_RESULT_AMD 0x8BC6 + +typedef void (GLAPIENTRY * PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); +typedef void (GLAPIENTRY * PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors); +typedef void (GLAPIENTRY * PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); +typedef void (GLAPIENTRY * PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors); +typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint *bytesWritten); +typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void *data); +typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, GLchar *counterString); +typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint* numCounters, GLint *maxActiveCounters, GLsizei countersSize, GLuint *counters); +typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei* length, GLchar *groupString); +typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint* numGroups, GLsizei groupsSize, GLuint *groups); +typedef void (GLAPIENTRY * PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* counterList); + +#define glBeginPerfMonitorAMD GLEW_GET_FUN(__glewBeginPerfMonitorAMD) +#define glDeletePerfMonitorsAMD GLEW_GET_FUN(__glewDeletePerfMonitorsAMD) +#define glEndPerfMonitorAMD GLEW_GET_FUN(__glewEndPerfMonitorAMD) +#define glGenPerfMonitorsAMD GLEW_GET_FUN(__glewGenPerfMonitorsAMD) +#define glGetPerfMonitorCounterDataAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterDataAMD) +#define glGetPerfMonitorCounterInfoAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterInfoAMD) +#define glGetPerfMonitorCounterStringAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterStringAMD) +#define glGetPerfMonitorCountersAMD GLEW_GET_FUN(__glewGetPerfMonitorCountersAMD) +#define glGetPerfMonitorGroupStringAMD GLEW_GET_FUN(__glewGetPerfMonitorGroupStringAMD) +#define glGetPerfMonitorGroupsAMD GLEW_GET_FUN(__glewGetPerfMonitorGroupsAMD) +#define glSelectPerfMonitorCountersAMD GLEW_GET_FUN(__glewSelectPerfMonitorCountersAMD) + +#define GLEW_AMD_performance_monitor GLEW_GET_VAR(__GLEW_AMD_performance_monitor) + +#endif /* GL_AMD_performance_monitor */ + +/* -------------------------- GL_AMD_pinned_memory ------------------------- */ + +#ifndef GL_AMD_pinned_memory +#define GL_AMD_pinned_memory 1 + +#define GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD 0x9160 + +#define GLEW_AMD_pinned_memory GLEW_GET_VAR(__GLEW_AMD_pinned_memory) + +#endif /* GL_AMD_pinned_memory */ + +/* ----------------------- GL_AMD_program_binary_Z400 ---------------------- */ + +#ifndef GL_AMD_program_binary_Z400 +#define GL_AMD_program_binary_Z400 1 + +#define GL_Z400_BINARY_AMD 0x8740 + +#define GLEW_AMD_program_binary_Z400 GLEW_GET_VAR(__GLEW_AMD_program_binary_Z400) + +#endif /* GL_AMD_program_binary_Z400 */ + +/* ----------------------- GL_AMD_query_buffer_object ---------------------- */ + +#ifndef GL_AMD_query_buffer_object +#define GL_AMD_query_buffer_object 1 + +#define GL_QUERY_BUFFER_AMD 0x9192 +#define GL_QUERY_BUFFER_BINDING_AMD 0x9193 +#define GL_QUERY_RESULT_NO_WAIT_AMD 0x9194 + +#define GLEW_AMD_query_buffer_object GLEW_GET_VAR(__GLEW_AMD_query_buffer_object) + +#endif /* GL_AMD_query_buffer_object */ + +/* ------------------------ GL_AMD_sample_positions ------------------------ */ + +#ifndef GL_AMD_sample_positions +#define GL_AMD_sample_positions 1 + +#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F + +typedef void (GLAPIENTRY * PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat* val); + +#define glSetMultisamplefvAMD GLEW_GET_FUN(__glewSetMultisamplefvAMD) + +#define GLEW_AMD_sample_positions GLEW_GET_VAR(__GLEW_AMD_sample_positions) + +#endif /* GL_AMD_sample_positions */ + +/* ------------------ GL_AMD_seamless_cubemap_per_texture ------------------ */ + +#ifndef GL_AMD_seamless_cubemap_per_texture +#define GL_AMD_seamless_cubemap_per_texture 1 + +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F + +#define GLEW_AMD_seamless_cubemap_per_texture GLEW_GET_VAR(__GLEW_AMD_seamless_cubemap_per_texture) + +#endif /* GL_AMD_seamless_cubemap_per_texture */ + +/* -------------------- GL_AMD_shader_atomic_counter_ops ------------------- */ + +#ifndef GL_AMD_shader_atomic_counter_ops +#define GL_AMD_shader_atomic_counter_ops 1 + +#define GLEW_AMD_shader_atomic_counter_ops GLEW_GET_VAR(__GLEW_AMD_shader_atomic_counter_ops) + +#endif /* GL_AMD_shader_atomic_counter_ops */ + +/* -------------------------- GL_AMD_shader_ballot ------------------------- */ + +#ifndef GL_AMD_shader_ballot +#define GL_AMD_shader_ballot 1 + +#define GLEW_AMD_shader_ballot GLEW_GET_VAR(__GLEW_AMD_shader_ballot) + +#endif /* GL_AMD_shader_ballot */ + +/* ---------------- GL_AMD_shader_explicit_vertex_parameter ---------------- */ + +#ifndef GL_AMD_shader_explicit_vertex_parameter +#define GL_AMD_shader_explicit_vertex_parameter 1 + +#define GLEW_AMD_shader_explicit_vertex_parameter GLEW_GET_VAR(__GLEW_AMD_shader_explicit_vertex_parameter) + +#endif /* GL_AMD_shader_explicit_vertex_parameter */ + +/* ------------------- GL_AMD_shader_image_load_store_lod ------------------ */ + +#ifndef GL_AMD_shader_image_load_store_lod +#define GL_AMD_shader_image_load_store_lod 1 + +#define GLEW_AMD_shader_image_load_store_lod GLEW_GET_VAR(__GLEW_AMD_shader_image_load_store_lod) + +#endif /* GL_AMD_shader_image_load_store_lod */ + +/* ---------------------- GL_AMD_shader_stencil_export --------------------- */ + +#ifndef GL_AMD_shader_stencil_export +#define GL_AMD_shader_stencil_export 1 + +#define GLEW_AMD_shader_stencil_export GLEW_GET_VAR(__GLEW_AMD_shader_stencil_export) + +#endif /* GL_AMD_shader_stencil_export */ + +/* ------------------- GL_AMD_shader_stencil_value_export ------------------ */ + +#ifndef GL_AMD_shader_stencil_value_export +#define GL_AMD_shader_stencil_value_export 1 + +#define GLEW_AMD_shader_stencil_value_export GLEW_GET_VAR(__GLEW_AMD_shader_stencil_value_export) + +#endif /* GL_AMD_shader_stencil_value_export */ + +/* ---------------------- GL_AMD_shader_trinary_minmax --------------------- */ + +#ifndef GL_AMD_shader_trinary_minmax +#define GL_AMD_shader_trinary_minmax 1 + +#define GLEW_AMD_shader_trinary_minmax GLEW_GET_VAR(__GLEW_AMD_shader_trinary_minmax) + +#endif /* GL_AMD_shader_trinary_minmax */ + +/* ------------------------- GL_AMD_sparse_texture ------------------------- */ + +#ifndef GL_AMD_sparse_texture +#define GL_AMD_sparse_texture 1 + +#define GL_TEXTURE_STORAGE_SPARSE_BIT_AMD 0x00000001 +#define GL_VIRTUAL_PAGE_SIZE_X_AMD 0x9195 +#define GL_VIRTUAL_PAGE_SIZE_Y_AMD 0x9196 +#define GL_VIRTUAL_PAGE_SIZE_Z_AMD 0x9197 +#define GL_MAX_SPARSE_TEXTURE_SIZE_AMD 0x9198 +#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD 0x9199 +#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS 0x919A +#define GL_MIN_SPARSE_LEVEL_AMD 0x919B +#define GL_MIN_LOD_WARNING_AMD 0x919C + +typedef void (GLAPIENTRY * PFNGLTEXSTORAGESPARSEAMDPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGESPARSEAMDPROC) (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); + +#define glTexStorageSparseAMD GLEW_GET_FUN(__glewTexStorageSparseAMD) +#define glTextureStorageSparseAMD GLEW_GET_FUN(__glewTextureStorageSparseAMD) + +#define GLEW_AMD_sparse_texture GLEW_GET_VAR(__GLEW_AMD_sparse_texture) + +#endif /* GL_AMD_sparse_texture */ + +/* ------------------- GL_AMD_stencil_operation_extended ------------------- */ + +#ifndef GL_AMD_stencil_operation_extended +#define GL_AMD_stencil_operation_extended 1 + +#define GL_SET_AMD 0x874A +#define GL_REPLACE_VALUE_AMD 0x874B +#define GL_STENCIL_OP_VALUE_AMD 0x874C +#define GL_STENCIL_BACK_OP_VALUE_AMD 0x874D + +typedef void (GLAPIENTRY * PFNGLSTENCILOPVALUEAMDPROC) (GLenum face, GLuint value); + +#define glStencilOpValueAMD GLEW_GET_FUN(__glewStencilOpValueAMD) + +#define GLEW_AMD_stencil_operation_extended GLEW_GET_VAR(__GLEW_AMD_stencil_operation_extended) + +#endif /* GL_AMD_stencil_operation_extended */ + +/* --------------------- GL_AMD_texture_gather_bias_lod -------------------- */ + +#ifndef GL_AMD_texture_gather_bias_lod +#define GL_AMD_texture_gather_bias_lod 1 + +#define GLEW_AMD_texture_gather_bias_lod GLEW_GET_VAR(__GLEW_AMD_texture_gather_bias_lod) + +#endif /* GL_AMD_texture_gather_bias_lod */ + +/* ------------------------ GL_AMD_texture_texture4 ------------------------ */ + +#ifndef GL_AMD_texture_texture4 +#define GL_AMD_texture_texture4 1 + +#define GLEW_AMD_texture_texture4 GLEW_GET_VAR(__GLEW_AMD_texture_texture4) + +#endif /* GL_AMD_texture_texture4 */ + +/* --------------- GL_AMD_transform_feedback3_lines_triangles -------------- */ + +#ifndef GL_AMD_transform_feedback3_lines_triangles +#define GL_AMD_transform_feedback3_lines_triangles 1 + +#define GLEW_AMD_transform_feedback3_lines_triangles GLEW_GET_VAR(__GLEW_AMD_transform_feedback3_lines_triangles) + +#endif /* GL_AMD_transform_feedback3_lines_triangles */ + +/* ----------------------- GL_AMD_transform_feedback4 ---------------------- */ + +#ifndef GL_AMD_transform_feedback4 +#define GL_AMD_transform_feedback4 1 + +#define GL_STREAM_RASTERIZATION_AMD 0x91A0 + +#define GLEW_AMD_transform_feedback4 GLEW_GET_VAR(__GLEW_AMD_transform_feedback4) + +#endif /* GL_AMD_transform_feedback4 */ + +/* ----------------------- GL_AMD_vertex_shader_layer ---------------------- */ + +#ifndef GL_AMD_vertex_shader_layer +#define GL_AMD_vertex_shader_layer 1 + +#define GLEW_AMD_vertex_shader_layer GLEW_GET_VAR(__GLEW_AMD_vertex_shader_layer) + +#endif /* GL_AMD_vertex_shader_layer */ + +/* -------------------- GL_AMD_vertex_shader_tessellator ------------------- */ + +#ifndef GL_AMD_vertex_shader_tessellator +#define GL_AMD_vertex_shader_tessellator 1 + +#define GL_SAMPLER_BUFFER_AMD 0x9001 +#define GL_INT_SAMPLER_BUFFER_AMD 0x9002 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003 +#define GL_TESSELLATION_MODE_AMD 0x9004 +#define GL_TESSELLATION_FACTOR_AMD 0x9005 +#define GL_DISCRETE_AMD 0x9006 +#define GL_CONTINUOUS_AMD 0x9007 + +typedef void (GLAPIENTRY * PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor); +typedef void (GLAPIENTRY * PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode); + +#define glTessellationFactorAMD GLEW_GET_FUN(__glewTessellationFactorAMD) +#define glTessellationModeAMD GLEW_GET_FUN(__glewTessellationModeAMD) + +#define GLEW_AMD_vertex_shader_tessellator GLEW_GET_VAR(__GLEW_AMD_vertex_shader_tessellator) + +#endif /* GL_AMD_vertex_shader_tessellator */ + +/* ------------------ GL_AMD_vertex_shader_viewport_index ------------------ */ + +#ifndef GL_AMD_vertex_shader_viewport_index +#define GL_AMD_vertex_shader_viewport_index 1 + +#define GLEW_AMD_vertex_shader_viewport_index GLEW_GET_VAR(__GLEW_AMD_vertex_shader_viewport_index) + +#endif /* GL_AMD_vertex_shader_viewport_index */ + +/* -------------------- GL_ANDROID_extension_pack_es31a -------------------- */ + +#ifndef GL_ANDROID_extension_pack_es31a +#define GL_ANDROID_extension_pack_es31a 1 + +#define GLEW_ANDROID_extension_pack_es31a GLEW_GET_VAR(__GLEW_ANDROID_extension_pack_es31a) + +#endif /* GL_ANDROID_extension_pack_es31a */ + +/* ------------------------- GL_ANGLE_depth_texture ------------------------ */ + +#ifndef GL_ANGLE_depth_texture +#define GL_ANGLE_depth_texture 1 + +#define GLEW_ANGLE_depth_texture GLEW_GET_VAR(__GLEW_ANGLE_depth_texture) + +#endif /* GL_ANGLE_depth_texture */ + +/* ----------------------- GL_ANGLE_framebuffer_blit ----------------------- */ + +#ifndef GL_ANGLE_framebuffer_blit +#define GL_ANGLE_framebuffer_blit 1 + +#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6 +#define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA + +typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); + +#define glBlitFramebufferANGLE GLEW_GET_FUN(__glewBlitFramebufferANGLE) + +#define GLEW_ANGLE_framebuffer_blit GLEW_GET_VAR(__GLEW_ANGLE_framebuffer_blit) + +#endif /* GL_ANGLE_framebuffer_blit */ + +/* -------------------- GL_ANGLE_framebuffer_multisample ------------------- */ + +#ifndef GL_ANGLE_framebuffer_multisample +#define GL_ANGLE_framebuffer_multisample 1 + +#define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56 +#define GL_MAX_SAMPLES_ANGLE 0x8D57 + +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); + +#define glRenderbufferStorageMultisampleANGLE GLEW_GET_FUN(__glewRenderbufferStorageMultisampleANGLE) + +#define GLEW_ANGLE_framebuffer_multisample GLEW_GET_VAR(__GLEW_ANGLE_framebuffer_multisample) + +#endif /* GL_ANGLE_framebuffer_multisample */ + +/* ----------------------- GL_ANGLE_instanced_arrays ----------------------- */ + +#ifndef GL_ANGLE_instanced_arrays +#define GL_ANGLE_instanced_arrays 1 + +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor); + +#define glDrawArraysInstancedANGLE GLEW_GET_FUN(__glewDrawArraysInstancedANGLE) +#define glDrawElementsInstancedANGLE GLEW_GET_FUN(__glewDrawElementsInstancedANGLE) +#define glVertexAttribDivisorANGLE GLEW_GET_FUN(__glewVertexAttribDivisorANGLE) + +#define GLEW_ANGLE_instanced_arrays GLEW_GET_VAR(__GLEW_ANGLE_instanced_arrays) + +#endif /* GL_ANGLE_instanced_arrays */ + +/* -------------------- GL_ANGLE_pack_reverse_row_order -------------------- */ + +#ifndef GL_ANGLE_pack_reverse_row_order +#define GL_ANGLE_pack_reverse_row_order 1 + +#define GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93A4 + +#define GLEW_ANGLE_pack_reverse_row_order GLEW_GET_VAR(__GLEW_ANGLE_pack_reverse_row_order) + +#endif /* GL_ANGLE_pack_reverse_row_order */ + +/* ------------------------ GL_ANGLE_program_binary ------------------------ */ + +#ifndef GL_ANGLE_program_binary +#define GL_ANGLE_program_binary 1 + +#define GL_PROGRAM_BINARY_ANGLE 0x93A6 + +#define GLEW_ANGLE_program_binary GLEW_GET_VAR(__GLEW_ANGLE_program_binary) + +#endif /* GL_ANGLE_program_binary */ + +/* ------------------- GL_ANGLE_texture_compression_dxt1 ------------------- */ + +#ifndef GL_ANGLE_texture_compression_dxt1 +#define GL_ANGLE_texture_compression_dxt1 1 + +#define GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 + +#define GLEW_ANGLE_texture_compression_dxt1 GLEW_GET_VAR(__GLEW_ANGLE_texture_compression_dxt1) + +#endif /* GL_ANGLE_texture_compression_dxt1 */ + +/* ------------------- GL_ANGLE_texture_compression_dxt3 ------------------- */ + +#ifndef GL_ANGLE_texture_compression_dxt3 +#define GL_ANGLE_texture_compression_dxt3 1 + +#define GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 + +#define GLEW_ANGLE_texture_compression_dxt3 GLEW_GET_VAR(__GLEW_ANGLE_texture_compression_dxt3) + +#endif /* GL_ANGLE_texture_compression_dxt3 */ + +/* ------------------- GL_ANGLE_texture_compression_dxt5 ------------------- */ + +#ifndef GL_ANGLE_texture_compression_dxt5 +#define GL_ANGLE_texture_compression_dxt5 1 + +#define GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 + +#define GLEW_ANGLE_texture_compression_dxt5 GLEW_GET_VAR(__GLEW_ANGLE_texture_compression_dxt5) + +#endif /* GL_ANGLE_texture_compression_dxt5 */ + +/* ------------------------- GL_ANGLE_texture_usage ------------------------ */ + +#ifndef GL_ANGLE_texture_usage +#define GL_ANGLE_texture_usage 1 + +#define GL_TEXTURE_USAGE_ANGLE 0x93A2 +#define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3 + +#define GLEW_ANGLE_texture_usage GLEW_GET_VAR(__GLEW_ANGLE_texture_usage) + +#endif /* GL_ANGLE_texture_usage */ + +/* -------------------------- GL_ANGLE_timer_query ------------------------- */ + +#ifndef GL_ANGLE_timer_query +#define GL_ANGLE_timer_query 1 + +#define GL_QUERY_COUNTER_BITS_ANGLE 0x8864 +#define GL_CURRENT_QUERY_ANGLE 0x8865 +#define GL_QUERY_RESULT_ANGLE 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_ANGLE 0x8867 +#define GL_TIME_ELAPSED_ANGLE 0x88BF +#define GL_TIMESTAMP_ANGLE 0x8E28 + +typedef void (GLAPIENTRY * PFNGLBEGINQUERYANGLEPROC) (GLenum target, GLuint id); +typedef void (GLAPIENTRY * PFNGLDELETEQUERIESANGLEPROC) (GLsizei n, const GLuint* ids); +typedef void (GLAPIENTRY * PFNGLENDQUERYANGLEPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLGENQUERIESANGLEPROC) (GLsizei n, GLuint* ids); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VANGLEPROC) (GLuint id, GLenum pname, GLint64* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVANGLEPROC) (GLuint id, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VANGLEPROC) (GLuint id, GLenum pname, GLuint64* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVANGLEPROC) (GLuint id, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYIVANGLEPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISQUERYANGLEPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLQUERYCOUNTERANGLEPROC) (GLuint id, GLenum target); + +#define glBeginQueryANGLE GLEW_GET_FUN(__glewBeginQueryANGLE) +#define glDeleteQueriesANGLE GLEW_GET_FUN(__glewDeleteQueriesANGLE) +#define glEndQueryANGLE GLEW_GET_FUN(__glewEndQueryANGLE) +#define glGenQueriesANGLE GLEW_GET_FUN(__glewGenQueriesANGLE) +#define glGetQueryObjecti64vANGLE GLEW_GET_FUN(__glewGetQueryObjecti64vANGLE) +#define glGetQueryObjectivANGLE GLEW_GET_FUN(__glewGetQueryObjectivANGLE) +#define glGetQueryObjectui64vANGLE GLEW_GET_FUN(__glewGetQueryObjectui64vANGLE) +#define glGetQueryObjectuivANGLE GLEW_GET_FUN(__glewGetQueryObjectuivANGLE) +#define glGetQueryivANGLE GLEW_GET_FUN(__glewGetQueryivANGLE) +#define glIsQueryANGLE GLEW_GET_FUN(__glewIsQueryANGLE) +#define glQueryCounterANGLE GLEW_GET_FUN(__glewQueryCounterANGLE) + +#define GLEW_ANGLE_timer_query GLEW_GET_VAR(__GLEW_ANGLE_timer_query) + +#endif /* GL_ANGLE_timer_query */ + +/* ------------------- GL_ANGLE_translated_shader_source ------------------- */ + +#ifndef GL_ANGLE_translated_shader_source +#define GL_ANGLE_translated_shader_source 1 + +#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0 + +typedef void (GLAPIENTRY * PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source); + +#define glGetTranslatedShaderSourceANGLE GLEW_GET_FUN(__glewGetTranslatedShaderSourceANGLE) + +#define GLEW_ANGLE_translated_shader_source GLEW_GET_VAR(__GLEW_ANGLE_translated_shader_source) + +#endif /* GL_ANGLE_translated_shader_source */ + +/* ----------------------- GL_APPLE_aux_depth_stencil ---------------------- */ + +#ifndef GL_APPLE_aux_depth_stencil +#define GL_APPLE_aux_depth_stencil 1 + +#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 + +#define GLEW_APPLE_aux_depth_stencil GLEW_GET_VAR(__GLEW_APPLE_aux_depth_stencil) + +#endif /* GL_APPLE_aux_depth_stencil */ + +/* ------------------------ GL_APPLE_client_storage ------------------------ */ + +#ifndef GL_APPLE_client_storage +#define GL_APPLE_client_storage 1 + +#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 + +#define GLEW_APPLE_client_storage GLEW_GET_VAR(__GLEW_APPLE_client_storage) + +#endif /* GL_APPLE_client_storage */ + +/* ------------------------- GL_APPLE_clip_distance ------------------------ */ + +#ifndef GL_APPLE_clip_distance +#define GL_APPLE_clip_distance 1 + +#define GL_MAX_CLIP_DISTANCES_APPLE 0x0D32 +#define GL_CLIP_DISTANCE0_APPLE 0x3000 +#define GL_CLIP_DISTANCE1_APPLE 0x3001 +#define GL_CLIP_DISTANCE2_APPLE 0x3002 +#define GL_CLIP_DISTANCE3_APPLE 0x3003 +#define GL_CLIP_DISTANCE4_APPLE 0x3004 +#define GL_CLIP_DISTANCE5_APPLE 0x3005 +#define GL_CLIP_DISTANCE6_APPLE 0x3006 +#define GL_CLIP_DISTANCE7_APPLE 0x3007 + +#define GLEW_APPLE_clip_distance GLEW_GET_VAR(__GLEW_APPLE_clip_distance) + +#endif /* GL_APPLE_clip_distance */ + +/* ------------------- GL_APPLE_color_buffer_packed_float ------------------ */ + +#ifndef GL_APPLE_color_buffer_packed_float +#define GL_APPLE_color_buffer_packed_float 1 + +#define GLEW_APPLE_color_buffer_packed_float GLEW_GET_VAR(__GLEW_APPLE_color_buffer_packed_float) + +#endif /* GL_APPLE_color_buffer_packed_float */ + +/* ---------------------- GL_APPLE_copy_texture_levels --------------------- */ + +#ifndef GL_APPLE_copy_texture_levels +#define GL_APPLE_copy_texture_levels 1 + +typedef void (GLAPIENTRY * PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); + +#define glCopyTextureLevelsAPPLE GLEW_GET_FUN(__glewCopyTextureLevelsAPPLE) + +#define GLEW_APPLE_copy_texture_levels GLEW_GET_VAR(__GLEW_APPLE_copy_texture_levels) + +#endif /* GL_APPLE_copy_texture_levels */ + +/* ------------------------- GL_APPLE_element_array ------------------------ */ + +#ifndef GL_APPLE_element_array +#define GL_APPLE_element_array 1 + +#define GL_ELEMENT_ARRAY_APPLE 0x8A0C +#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D +#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E + +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); +typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); +typedef void (GLAPIENTRY * PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const void *pointer); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint* first, const GLsizei *count, GLsizei primcount); + +#define glDrawElementArrayAPPLE GLEW_GET_FUN(__glewDrawElementArrayAPPLE) +#define glDrawRangeElementArrayAPPLE GLEW_GET_FUN(__glewDrawRangeElementArrayAPPLE) +#define glElementPointerAPPLE GLEW_GET_FUN(__glewElementPointerAPPLE) +#define glMultiDrawElementArrayAPPLE GLEW_GET_FUN(__glewMultiDrawElementArrayAPPLE) +#define glMultiDrawRangeElementArrayAPPLE GLEW_GET_FUN(__glewMultiDrawRangeElementArrayAPPLE) + +#define GLEW_APPLE_element_array GLEW_GET_VAR(__GLEW_APPLE_element_array) + +#endif /* GL_APPLE_element_array */ + +/* ----------------------------- GL_APPLE_fence ---------------------------- */ + +#ifndef GL_APPLE_fence +#define GL_APPLE_fence 1 + +#define GL_DRAW_PIXELS_APPLE 0x8A0A +#define GL_FENCE_APPLE 0x8A0B + +typedef void (GLAPIENTRY * PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint* fences); +typedef void (GLAPIENTRY * PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); +typedef void (GLAPIENTRY * PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); +typedef void (GLAPIENTRY * PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint* fences); +typedef GLboolean (GLAPIENTRY * PFNGLISFENCEAPPLEPROC) (GLuint fence); +typedef void (GLAPIENTRY * PFNGLSETFENCEAPPLEPROC) (GLuint fence); +typedef GLboolean (GLAPIENTRY * PFNGLTESTFENCEAPPLEPROC) (GLuint fence); +typedef GLboolean (GLAPIENTRY * PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); + +#define glDeleteFencesAPPLE GLEW_GET_FUN(__glewDeleteFencesAPPLE) +#define glFinishFenceAPPLE GLEW_GET_FUN(__glewFinishFenceAPPLE) +#define glFinishObjectAPPLE GLEW_GET_FUN(__glewFinishObjectAPPLE) +#define glGenFencesAPPLE GLEW_GET_FUN(__glewGenFencesAPPLE) +#define glIsFenceAPPLE GLEW_GET_FUN(__glewIsFenceAPPLE) +#define glSetFenceAPPLE GLEW_GET_FUN(__glewSetFenceAPPLE) +#define glTestFenceAPPLE GLEW_GET_FUN(__glewTestFenceAPPLE) +#define glTestObjectAPPLE GLEW_GET_FUN(__glewTestObjectAPPLE) + +#define GLEW_APPLE_fence GLEW_GET_VAR(__GLEW_APPLE_fence) + +#endif /* GL_APPLE_fence */ + +/* ------------------------- GL_APPLE_float_pixels ------------------------- */ + +#ifndef GL_APPLE_float_pixels +#define GL_APPLE_float_pixels 1 + +#define GL_HALF_APPLE 0x140B +#define GL_RGBA_FLOAT32_APPLE 0x8814 +#define GL_RGB_FLOAT32_APPLE 0x8815 +#define GL_ALPHA_FLOAT32_APPLE 0x8816 +#define GL_INTENSITY_FLOAT32_APPLE 0x8817 +#define GL_LUMINANCE_FLOAT32_APPLE 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 +#define GL_RGBA_FLOAT16_APPLE 0x881A +#define GL_RGB_FLOAT16_APPLE 0x881B +#define GL_ALPHA_FLOAT16_APPLE 0x881C +#define GL_INTENSITY_FLOAT16_APPLE 0x881D +#define GL_LUMINANCE_FLOAT16_APPLE 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F +#define GL_COLOR_FLOAT_APPLE 0x8A0F + +#define GLEW_APPLE_float_pixels GLEW_GET_VAR(__GLEW_APPLE_float_pixels) + +#endif /* GL_APPLE_float_pixels */ + +/* ---------------------- GL_APPLE_flush_buffer_range ---------------------- */ + +#ifndef GL_APPLE_flush_buffer_range +#define GL_APPLE_flush_buffer_range 1 + +#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 +#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 + +typedef void (GLAPIENTRY * PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); + +#define glBufferParameteriAPPLE GLEW_GET_FUN(__glewBufferParameteriAPPLE) +#define glFlushMappedBufferRangeAPPLE GLEW_GET_FUN(__glewFlushMappedBufferRangeAPPLE) + +#define GLEW_APPLE_flush_buffer_range GLEW_GET_VAR(__GLEW_APPLE_flush_buffer_range) + +#endif /* GL_APPLE_flush_buffer_range */ + +/* -------------------- GL_APPLE_framebuffer_multisample ------------------- */ + +#ifndef GL_APPLE_framebuffer_multisample +#define GL_APPLE_framebuffer_multisample 1 + +#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6 +#define GL_READ_FRAMEBUFFER_APPLE 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA +#define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56 +#define GL_MAX_SAMPLES_APPLE 0x8D57 + +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void); + +#define glRenderbufferStorageMultisampleAPPLE GLEW_GET_FUN(__glewRenderbufferStorageMultisampleAPPLE) +#define glResolveMultisampleFramebufferAPPLE GLEW_GET_FUN(__glewResolveMultisampleFramebufferAPPLE) + +#define GLEW_APPLE_framebuffer_multisample GLEW_GET_VAR(__GLEW_APPLE_framebuffer_multisample) + +#endif /* GL_APPLE_framebuffer_multisample */ + +/* ----------------------- GL_APPLE_object_purgeable ----------------------- */ + +#ifndef GL_APPLE_object_purgeable +#define GL_APPLE_object_purgeable 1 + +#define GL_BUFFER_OBJECT_APPLE 0x85B3 +#define GL_RELEASED_APPLE 0x8A19 +#define GL_VOLATILE_APPLE 0x8A1A +#define GL_RETAINED_APPLE 0x8A1B +#define GL_UNDEFINED_APPLE 0x8A1C +#define GL_PURGEABLE_APPLE 0x8A1D + +typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint* params); +typedef GLenum (GLAPIENTRY * PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); +typedef GLenum (GLAPIENTRY * PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); + +#define glGetObjectParameterivAPPLE GLEW_GET_FUN(__glewGetObjectParameterivAPPLE) +#define glObjectPurgeableAPPLE GLEW_GET_FUN(__glewObjectPurgeableAPPLE) +#define glObjectUnpurgeableAPPLE GLEW_GET_FUN(__glewObjectUnpurgeableAPPLE) + +#define GLEW_APPLE_object_purgeable GLEW_GET_VAR(__GLEW_APPLE_object_purgeable) + +#endif /* GL_APPLE_object_purgeable */ + +/* ------------------------- GL_APPLE_pixel_buffer ------------------------- */ + +#ifndef GL_APPLE_pixel_buffer +#define GL_APPLE_pixel_buffer 1 + +#define GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10 + +#define GLEW_APPLE_pixel_buffer GLEW_GET_VAR(__GLEW_APPLE_pixel_buffer) + +#endif /* GL_APPLE_pixel_buffer */ + +/* ---------------------------- GL_APPLE_rgb_422 --------------------------- */ + +#ifndef GL_APPLE_rgb_422 +#define GL_APPLE_rgb_422 1 + +#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB +#define GL_RGB_422_APPLE 0x8A1F +#define GL_RGB_RAW_422_APPLE 0x8A51 + +#define GLEW_APPLE_rgb_422 GLEW_GET_VAR(__GLEW_APPLE_rgb_422) + +#endif /* GL_APPLE_rgb_422 */ + +/* --------------------------- GL_APPLE_row_bytes -------------------------- */ + +#ifndef GL_APPLE_row_bytes +#define GL_APPLE_row_bytes 1 + +#define GL_PACK_ROW_BYTES_APPLE 0x8A15 +#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 + +#define GLEW_APPLE_row_bytes GLEW_GET_VAR(__GLEW_APPLE_row_bytes) + +#endif /* GL_APPLE_row_bytes */ + +/* ------------------------ GL_APPLE_specular_vector ----------------------- */ + +#ifndef GL_APPLE_specular_vector +#define GL_APPLE_specular_vector 1 + +#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 + +#define GLEW_APPLE_specular_vector GLEW_GET_VAR(__GLEW_APPLE_specular_vector) + +#endif /* GL_APPLE_specular_vector */ + +/* ----------------------------- GL_APPLE_sync ----------------------------- */ + +#ifndef GL_APPLE_sync +#define GL_APPLE_sync 1 + +#define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001 +#define GL_SYNC_OBJECT_APPLE 0x8A53 +#define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111 +#define GL_OBJECT_TYPE_APPLE 0x9112 +#define GL_SYNC_CONDITION_APPLE 0x9113 +#define GL_SYNC_STATUS_APPLE 0x9114 +#define GL_SYNC_FLAGS_APPLE 0x9115 +#define GL_SYNC_FENCE_APPLE 0x9116 +#define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117 +#define GL_UNSIGNALED_APPLE 0x9118 +#define GL_SIGNALED_APPLE 0x9119 +#define GL_ALREADY_SIGNALED_APPLE 0x911A +#define GL_TIMEOUT_EXPIRED_APPLE 0x911B +#define GL_CONDITION_SATISFIED_APPLE 0x911C +#define GL_WAIT_FAILED_APPLE 0x911D +#define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull + +typedef GLenum (GLAPIENTRY * PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync GLsync, GLbitfield flags, GLuint64 timeout); +typedef void (GLAPIENTRY * PFNGLDELETESYNCAPPLEPROC) (GLsync GLsync); +typedef GLsync (GLAPIENTRY * PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags); +typedef void (GLAPIENTRY * PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64* params); +typedef void (GLAPIENTRY * PFNGLGETSYNCIVAPPLEPROC) (GLsync GLsync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint *values); +typedef GLboolean (GLAPIENTRY * PFNGLISSYNCAPPLEPROC) (GLsync GLsync); +typedef void (GLAPIENTRY * PFNGLWAITSYNCAPPLEPROC) (GLsync GLsync, GLbitfield flags, GLuint64 timeout); + +#define glClientWaitSyncAPPLE GLEW_GET_FUN(__glewClientWaitSyncAPPLE) +#define glDeleteSyncAPPLE GLEW_GET_FUN(__glewDeleteSyncAPPLE) +#define glFenceSyncAPPLE GLEW_GET_FUN(__glewFenceSyncAPPLE) +#define glGetInteger64vAPPLE GLEW_GET_FUN(__glewGetInteger64vAPPLE) +#define glGetSyncivAPPLE GLEW_GET_FUN(__glewGetSyncivAPPLE) +#define glIsSyncAPPLE GLEW_GET_FUN(__glewIsSyncAPPLE) +#define glWaitSyncAPPLE GLEW_GET_FUN(__glewWaitSyncAPPLE) + +#define GLEW_APPLE_sync GLEW_GET_VAR(__GLEW_APPLE_sync) + +#endif /* GL_APPLE_sync */ + +/* -------------------- GL_APPLE_texture_2D_limited_npot ------------------- */ + +#ifndef GL_APPLE_texture_2D_limited_npot +#define GL_APPLE_texture_2D_limited_npot 1 + +#define GLEW_APPLE_texture_2D_limited_npot GLEW_GET_VAR(__GLEW_APPLE_texture_2D_limited_npot) + +#endif /* GL_APPLE_texture_2D_limited_npot */ + +/* -------------------- GL_APPLE_texture_format_BGRA8888 ------------------- */ + +#ifndef GL_APPLE_texture_format_BGRA8888 +#define GL_APPLE_texture_format_BGRA8888 1 + +#define GL_BGRA_EXT 0x80E1 +#define GL_BGRA8_EXT 0x93A1 + +#define GLEW_APPLE_texture_format_BGRA8888 GLEW_GET_VAR(__GLEW_APPLE_texture_format_BGRA8888) + +#endif /* GL_APPLE_texture_format_BGRA8888 */ + +/* ----------------------- GL_APPLE_texture_max_level ---------------------- */ + +#ifndef GL_APPLE_texture_max_level +#define GL_APPLE_texture_max_level 1 + +#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D + +#define GLEW_APPLE_texture_max_level GLEW_GET_VAR(__GLEW_APPLE_texture_max_level) + +#endif /* GL_APPLE_texture_max_level */ + +/* --------------------- GL_APPLE_texture_packed_float --------------------- */ + +#ifndef GL_APPLE_texture_packed_float +#define GL_APPLE_texture_packed_float 1 + +#define GL_R11F_G11F_B10F_APPLE 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE 0x8C3B +#define GL_RGB9_E5_APPLE 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV_APPLE 0x8C3E + +#define GLEW_APPLE_texture_packed_float GLEW_GET_VAR(__GLEW_APPLE_texture_packed_float) + +#endif /* GL_APPLE_texture_packed_float */ + +/* ------------------------- GL_APPLE_texture_range ------------------------ */ + +#ifndef GL_APPLE_texture_range +#define GL_APPLE_texture_range 1 + +#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 +#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 +#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC +#define GL_STORAGE_PRIVATE_APPLE 0x85BD +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF + +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, void **params); +typedef void (GLAPIENTRY * PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, void *pointer); + +#define glGetTexParameterPointervAPPLE GLEW_GET_FUN(__glewGetTexParameterPointervAPPLE) +#define glTextureRangeAPPLE GLEW_GET_FUN(__glewTextureRangeAPPLE) + +#define GLEW_APPLE_texture_range GLEW_GET_VAR(__GLEW_APPLE_texture_range) + +#endif /* GL_APPLE_texture_range */ + +/* ------------------------ GL_APPLE_transform_hint ------------------------ */ + +#ifndef GL_APPLE_transform_hint +#define GL_APPLE_transform_hint 1 + +#define GL_TRANSFORM_HINT_APPLE 0x85B1 + +#define GLEW_APPLE_transform_hint GLEW_GET_VAR(__GLEW_APPLE_transform_hint) + +#endif /* GL_APPLE_transform_hint */ + +/* ---------------------- GL_APPLE_vertex_array_object --------------------- */ + +#ifndef GL_APPLE_vertex_array_object +#define GL_APPLE_vertex_array_object 1 + +#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 + +typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); +typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays); +typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays); +typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); + +#define glBindVertexArrayAPPLE GLEW_GET_FUN(__glewBindVertexArrayAPPLE) +#define glDeleteVertexArraysAPPLE GLEW_GET_FUN(__glewDeleteVertexArraysAPPLE) +#define glGenVertexArraysAPPLE GLEW_GET_FUN(__glewGenVertexArraysAPPLE) +#define glIsVertexArrayAPPLE GLEW_GET_FUN(__glewIsVertexArrayAPPLE) + +#define GLEW_APPLE_vertex_array_object GLEW_GET_VAR(__GLEW_APPLE_vertex_array_object) + +#endif /* GL_APPLE_vertex_array_object */ + +/* ---------------------- GL_APPLE_vertex_array_range ---------------------- */ + +#ifndef GL_APPLE_vertex_array_range +#define GL_APPLE_vertex_array_range 1 + +#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E +#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F +#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE 0x8520 +#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 +#define GL_STORAGE_CLIENT_APPLE 0x85B4 +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF + +typedef void (GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer); + +#define glFlushVertexArrayRangeAPPLE GLEW_GET_FUN(__glewFlushVertexArrayRangeAPPLE) +#define glVertexArrayParameteriAPPLE GLEW_GET_FUN(__glewVertexArrayParameteriAPPLE) +#define glVertexArrayRangeAPPLE GLEW_GET_FUN(__glewVertexArrayRangeAPPLE) + +#define GLEW_APPLE_vertex_array_range GLEW_GET_VAR(__GLEW_APPLE_vertex_array_range) + +#endif /* GL_APPLE_vertex_array_range */ + +/* ------------------- GL_APPLE_vertex_program_evaluators ------------------ */ + +#ifndef GL_APPLE_vertex_program_evaluators +#define GL_APPLE_vertex_program_evaluators 1 + +#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 +#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 +#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 +#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 +#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 +#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 +#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 +#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 +#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 +#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 + +typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); +typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); +typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname); +typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points); +typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points); +typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points); +typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points); + +#define glDisableVertexAttribAPPLE GLEW_GET_FUN(__glewDisableVertexAttribAPPLE) +#define glEnableVertexAttribAPPLE GLEW_GET_FUN(__glewEnableVertexAttribAPPLE) +#define glIsVertexAttribEnabledAPPLE GLEW_GET_FUN(__glewIsVertexAttribEnabledAPPLE) +#define glMapVertexAttrib1dAPPLE GLEW_GET_FUN(__glewMapVertexAttrib1dAPPLE) +#define glMapVertexAttrib1fAPPLE GLEW_GET_FUN(__glewMapVertexAttrib1fAPPLE) +#define glMapVertexAttrib2dAPPLE GLEW_GET_FUN(__glewMapVertexAttrib2dAPPLE) +#define glMapVertexAttrib2fAPPLE GLEW_GET_FUN(__glewMapVertexAttrib2fAPPLE) + +#define GLEW_APPLE_vertex_program_evaluators GLEW_GET_VAR(__GLEW_APPLE_vertex_program_evaluators) + +#endif /* GL_APPLE_vertex_program_evaluators */ + +/* --------------------------- GL_APPLE_ycbcr_422 -------------------------- */ + +#ifndef GL_APPLE_ycbcr_422 +#define GL_APPLE_ycbcr_422 1 + +#define GL_YCBCR_422_APPLE 0x85B9 + +#define GLEW_APPLE_ycbcr_422 GLEW_GET_VAR(__GLEW_APPLE_ycbcr_422) + +#endif /* GL_APPLE_ycbcr_422 */ + +/* ------------------------ GL_ARB_ES2_compatibility ----------------------- */ + +#ifndef GL_ARB_ES2_compatibility +#define GL_ARB_ES2_compatibility 1 + +#define GL_FIXED 0x140C +#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B +#define GL_RGB565 0x8D62 +#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_BINARY_FORMATS 0x8DF8 +#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 +#define GL_SHADER_COMPILER 0x8DFA +#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB +#define GL_MAX_VARYING_VECTORS 0x8DFC +#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD + +typedef int GLfixed; + +typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFPROC) (GLclampf d); +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f); +typedef void (GLAPIENTRY * PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint* range, GLint *precision); +typedef void (GLAPIENTRY * PFNGLRELEASESHADERCOMPILERPROC) (void); +typedef void (GLAPIENTRY * PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint* shaders, GLenum binaryformat, const void*binary, GLsizei length); + +#define glClearDepthf GLEW_GET_FUN(__glewClearDepthf) +#define glDepthRangef GLEW_GET_FUN(__glewDepthRangef) +#define glGetShaderPrecisionFormat GLEW_GET_FUN(__glewGetShaderPrecisionFormat) +#define glReleaseShaderCompiler GLEW_GET_FUN(__glewReleaseShaderCompiler) +#define glShaderBinary GLEW_GET_FUN(__glewShaderBinary) + +#define GLEW_ARB_ES2_compatibility GLEW_GET_VAR(__GLEW_ARB_ES2_compatibility) + +#endif /* GL_ARB_ES2_compatibility */ + +/* ----------------------- GL_ARB_ES3_1_compatibility ---------------------- */ + +#ifndef GL_ARB_ES3_1_compatibility +#define GL_ARB_ES3_1_compatibility 1 + +typedef void (GLAPIENTRY * PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers); + +#define glMemoryBarrierByRegion GLEW_GET_FUN(__glewMemoryBarrierByRegion) + +#define GLEW_ARB_ES3_1_compatibility GLEW_GET_VAR(__GLEW_ARB_ES3_1_compatibility) + +#endif /* GL_ARB_ES3_1_compatibility */ + +/* ----------------------- GL_ARB_ES3_2_compatibility ---------------------- */ + +#ifndef GL_ARB_ES3_2_compatibility +#define GL_ARB_ES3_2_compatibility 1 + +#define GL_PRIMITIVE_BOUNDING_BOX_ARB 0x92BE +#define GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB 0x9381 +#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB 0x9382 + +typedef void (GLAPIENTRY * PFNGLPRIMITIVEBOUNDINGBOXARBPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); + +#define glPrimitiveBoundingBoxARB GLEW_GET_FUN(__glewPrimitiveBoundingBoxARB) + +#define GLEW_ARB_ES3_2_compatibility GLEW_GET_VAR(__GLEW_ARB_ES3_2_compatibility) + +#endif /* GL_ARB_ES3_2_compatibility */ + +/* ------------------------ GL_ARB_ES3_compatibility ----------------------- */ + +#ifndef GL_ARB_ES3_compatibility +#define GL_ARB_ES3_compatibility 1 + +#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF +#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 +#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A +#define GL_MAX_ELEMENT_INDEX 0x8D6B +#define GL_COMPRESSED_R11_EAC 0x9270 +#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 +#define GL_COMPRESSED_RG11_EAC 0x9272 +#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 +#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 GLEW_ARB_ES3_compatibility GLEW_GET_VAR(__GLEW_ARB_ES3_compatibility) + +#endif /* GL_ARB_ES3_compatibility */ + +/* ------------------------ GL_ARB_arrays_of_arrays ------------------------ */ + +#ifndef GL_ARB_arrays_of_arrays +#define GL_ARB_arrays_of_arrays 1 + +#define GLEW_ARB_arrays_of_arrays GLEW_GET_VAR(__GLEW_ARB_arrays_of_arrays) + +#endif /* GL_ARB_arrays_of_arrays */ + +/* -------------------------- GL_ARB_base_instance ------------------------- */ + +#ifndef GL_ARB_base_instance +#define GL_ARB_base_instance 1 + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLuint baseinstance); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLint basevertex, GLuint baseinstance); + +#define glDrawArraysInstancedBaseInstance GLEW_GET_FUN(__glewDrawArraysInstancedBaseInstance) +#define glDrawElementsInstancedBaseInstance GLEW_GET_FUN(__glewDrawElementsInstancedBaseInstance) +#define glDrawElementsInstancedBaseVertexBaseInstance GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertexBaseInstance) + +#define GLEW_ARB_base_instance GLEW_GET_VAR(__GLEW_ARB_base_instance) + +#endif /* GL_ARB_base_instance */ + +/* ------------------------ GL_ARB_bindless_texture ------------------------ */ + +#ifndef GL_ARB_bindless_texture +#define GL_ARB_bindless_texture 1 + +#define GL_UNSIGNED_INT64_ARB 0x140F + +typedef GLuint64 (GLAPIENTRY * PFNGLGETIMAGEHANDLEARBPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); +typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTUREHANDLEARBPROC) (GLuint texture); +typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTURESAMPLERHANDLEARBPROC) (GLuint texture, GLuint sampler); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLUI64VARBPROC) (GLuint index, GLenum pname, GLuint64EXT* params); +typedef GLboolean (GLAPIENTRY * PFNGLISIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle); +typedef GLboolean (GLAPIENTRY * PFNGLISTEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle); +typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC) (GLuint64 handle); +typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle, GLenum access); +typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC) (GLuint64 handle); +typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC) (GLuint program, GLint location, GLuint64 value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* values); +typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64ARBPROC) (GLint location, GLuint64 value); +typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64VARBPROC) (GLint location, GLsizei count, const GLuint64* value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64ARBPROC) (GLuint index, GLuint64EXT x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64VARBPROC) (GLuint index, const GLuint64EXT* v); + +#define glGetImageHandleARB GLEW_GET_FUN(__glewGetImageHandleARB) +#define glGetTextureHandleARB GLEW_GET_FUN(__glewGetTextureHandleARB) +#define glGetTextureSamplerHandleARB GLEW_GET_FUN(__glewGetTextureSamplerHandleARB) +#define glGetVertexAttribLui64vARB GLEW_GET_FUN(__glewGetVertexAttribLui64vARB) +#define glIsImageHandleResidentARB GLEW_GET_FUN(__glewIsImageHandleResidentARB) +#define glIsTextureHandleResidentARB GLEW_GET_FUN(__glewIsTextureHandleResidentARB) +#define glMakeImageHandleNonResidentARB GLEW_GET_FUN(__glewMakeImageHandleNonResidentARB) +#define glMakeImageHandleResidentARB GLEW_GET_FUN(__glewMakeImageHandleResidentARB) +#define glMakeTextureHandleNonResidentARB GLEW_GET_FUN(__glewMakeTextureHandleNonResidentARB) +#define glMakeTextureHandleResidentARB GLEW_GET_FUN(__glewMakeTextureHandleResidentARB) +#define glProgramUniformHandleui64ARB GLEW_GET_FUN(__glewProgramUniformHandleui64ARB) +#define glProgramUniformHandleui64vARB GLEW_GET_FUN(__glewProgramUniformHandleui64vARB) +#define glUniformHandleui64ARB GLEW_GET_FUN(__glewUniformHandleui64ARB) +#define glUniformHandleui64vARB GLEW_GET_FUN(__glewUniformHandleui64vARB) +#define glVertexAttribL1ui64ARB GLEW_GET_FUN(__glewVertexAttribL1ui64ARB) +#define glVertexAttribL1ui64vARB GLEW_GET_FUN(__glewVertexAttribL1ui64vARB) + +#define GLEW_ARB_bindless_texture GLEW_GET_VAR(__GLEW_ARB_bindless_texture) + +#endif /* GL_ARB_bindless_texture */ + +/* ----------------------- GL_ARB_blend_func_extended ---------------------- */ + +#ifndef GL_ARB_blend_func_extended +#define GL_ARB_blend_func_extended 1 + +#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 + +typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar * name); +typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar * name); + +#define glBindFragDataLocationIndexed GLEW_GET_FUN(__glewBindFragDataLocationIndexed) +#define glGetFragDataIndex GLEW_GET_FUN(__glewGetFragDataIndex) + +#define GLEW_ARB_blend_func_extended GLEW_GET_VAR(__GLEW_ARB_blend_func_extended) + +#endif /* GL_ARB_blend_func_extended */ + +/* ------------------------- GL_ARB_buffer_storage ------------------------- */ + +#ifndef GL_ARB_buffer_storage +#define GL_ARB_buffer_storage 1 + +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MAP_PERSISTENT_BIT 0x00000040 +#define GL_MAP_COHERENT_BIT 0x00000080 +#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 + +typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); + +#define glBufferStorage GLEW_GET_FUN(__glewBufferStorage) + +#define GLEW_ARB_buffer_storage GLEW_GET_VAR(__GLEW_ARB_buffer_storage) + +#endif /* GL_ARB_buffer_storage */ + +/* ---------------------------- GL_ARB_cl_event ---------------------------- */ + +#ifndef GL_ARB_cl_event +#define GL_ARB_cl_event 1 + +#define GL_SYNC_CL_EVENT_ARB 0x8240 +#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241 + +typedef struct _cl_context *cl_context; +typedef struct _cl_event *cl_event; + +typedef GLsync (GLAPIENTRY * PFNGLCREATESYNCFROMCLEVENTARBPROC) (cl_context context, cl_event event, GLbitfield flags); + +#define glCreateSyncFromCLeventARB GLEW_GET_FUN(__glewCreateSyncFromCLeventARB) + +#define GLEW_ARB_cl_event GLEW_GET_VAR(__GLEW_ARB_cl_event) + +#endif /* GL_ARB_cl_event */ + +/* ----------------------- GL_ARB_clear_buffer_object ---------------------- */ + +#ifndef GL_ARB_clear_buffer_object +#define GL_ARB_clear_buffer_object 1 + +typedef void (GLAPIENTRY * PFNGLCLEARBUFFERDATAPROC) (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data); +typedef void (GLAPIENTRY * PFNGLCLEARBUFFERSUBDATAPROC) (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); +typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); +typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); + +#define glClearBufferData GLEW_GET_FUN(__glewClearBufferData) +#define glClearBufferSubData GLEW_GET_FUN(__glewClearBufferSubData) +#define glClearNamedBufferDataEXT GLEW_GET_FUN(__glewClearNamedBufferDataEXT) +#define glClearNamedBufferSubDataEXT GLEW_GET_FUN(__glewClearNamedBufferSubDataEXT) + +#define GLEW_ARB_clear_buffer_object GLEW_GET_VAR(__GLEW_ARB_clear_buffer_object) + +#endif /* GL_ARB_clear_buffer_object */ + +/* -------------------------- GL_ARB_clear_texture ------------------------- */ + +#ifndef GL_ARB_clear_texture +#define GL_ARB_clear_texture 1 + +#define GL_CLEAR_TEXTURE 0x9365 + +typedef void (GLAPIENTRY * PFNGLCLEARTEXIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); +typedef void (GLAPIENTRY * PFNGLCLEARTEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); + +#define glClearTexImage GLEW_GET_FUN(__glewClearTexImage) +#define glClearTexSubImage GLEW_GET_FUN(__glewClearTexSubImage) + +#define GLEW_ARB_clear_texture GLEW_GET_VAR(__GLEW_ARB_clear_texture) + +#endif /* GL_ARB_clear_texture */ + +/* -------------------------- GL_ARB_clip_control -------------------------- */ + +#ifndef GL_ARB_clip_control +#define GL_ARB_clip_control 1 + +#define GL_LOWER_LEFT 0x8CA1 +#define GL_UPPER_LEFT 0x8CA2 +#define GL_CLIP_ORIGIN 0x935C +#define GL_CLIP_DEPTH_MODE 0x935D +#define GL_NEGATIVE_ONE_TO_ONE 0x935E +#define GL_ZERO_TO_ONE 0x935F + +typedef void (GLAPIENTRY * PFNGLCLIPCONTROLPROC) (GLenum origin, GLenum depth); + +#define glClipControl GLEW_GET_FUN(__glewClipControl) + +#define GLEW_ARB_clip_control GLEW_GET_VAR(__GLEW_ARB_clip_control) + +#endif /* GL_ARB_clip_control */ + +/* ----------------------- GL_ARB_color_buffer_float ----------------------- */ + +#ifndef GL_ARB_color_buffer_float +#define GL_ARB_color_buffer_float 1 + +#define GL_RGBA_FLOAT_MODE_ARB 0x8820 +#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A +#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B +#define GL_CLAMP_READ_COLOR_ARB 0x891C +#define GL_FIXED_ONLY_ARB 0x891D + +typedef void (GLAPIENTRY * PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); + +#define glClampColorARB GLEW_GET_FUN(__glewClampColorARB) + +#define GLEW_ARB_color_buffer_float GLEW_GET_VAR(__GLEW_ARB_color_buffer_float) + +#endif /* GL_ARB_color_buffer_float */ + +/* -------------------------- GL_ARB_compatibility ------------------------- */ + +#ifndef GL_ARB_compatibility +#define GL_ARB_compatibility 1 + +#define GLEW_ARB_compatibility GLEW_GET_VAR(__GLEW_ARB_compatibility) + +#endif /* GL_ARB_compatibility */ + +/* ---------------- GL_ARB_compressed_texture_pixel_storage ---------------- */ + +#ifndef GL_ARB_compressed_texture_pixel_storage +#define GL_ARB_compressed_texture_pixel_storage 1 + +#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 GLEW_ARB_compressed_texture_pixel_storage GLEW_GET_VAR(__GLEW_ARB_compressed_texture_pixel_storage) + +#endif /* GL_ARB_compressed_texture_pixel_storage */ + +/* ------------------------- GL_ARB_compute_shader ------------------------- */ + +#ifndef GL_ARB_compute_shader +#define GL_ARB_compute_shader 1 + +#define GL_COMPUTE_SHADER_BIT 0x00000020 +#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 +#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 +#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 +#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 +#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 +#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 +#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB +#define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED +#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE +#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF +#define GL_COMPUTE_SHADER 0x91B9 +#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB +#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC +#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD +#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE +#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF + +typedef void (GLAPIENTRY * PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); +typedef void (GLAPIENTRY * PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect); + +#define glDispatchCompute GLEW_GET_FUN(__glewDispatchCompute) +#define glDispatchComputeIndirect GLEW_GET_FUN(__glewDispatchComputeIndirect) + +#define GLEW_ARB_compute_shader GLEW_GET_VAR(__GLEW_ARB_compute_shader) + +#endif /* GL_ARB_compute_shader */ + +/* ------------------- GL_ARB_compute_variable_group_size ------------------ */ + +#ifndef GL_ARB_compute_variable_group_size +#define GL_ARB_compute_variable_group_size 1 + +#define GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB 0x90EB +#define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF +#define GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB 0x9344 +#define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345 + +typedef void (GLAPIENTRY * 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); + +#define glDispatchComputeGroupSizeARB GLEW_GET_FUN(__glewDispatchComputeGroupSizeARB) + +#define GLEW_ARB_compute_variable_group_size GLEW_GET_VAR(__GLEW_ARB_compute_variable_group_size) + +#endif /* GL_ARB_compute_variable_group_size */ + +/* ------------------- GL_ARB_conditional_render_inverted ------------------ */ + +#ifndef GL_ARB_conditional_render_inverted +#define GL_ARB_conditional_render_inverted 1 + +#define GL_QUERY_WAIT_INVERTED 0x8E17 +#define GL_QUERY_NO_WAIT_INVERTED 0x8E18 +#define GL_QUERY_BY_REGION_WAIT_INVERTED 0x8E19 +#define GL_QUERY_BY_REGION_NO_WAIT_INVERTED 0x8E1A + +#define GLEW_ARB_conditional_render_inverted GLEW_GET_VAR(__GLEW_ARB_conditional_render_inverted) + +#endif /* GL_ARB_conditional_render_inverted */ + +/* ----------------------- GL_ARB_conservative_depth ----------------------- */ + +#ifndef GL_ARB_conservative_depth +#define GL_ARB_conservative_depth 1 + +#define GLEW_ARB_conservative_depth GLEW_GET_VAR(__GLEW_ARB_conservative_depth) + +#endif /* GL_ARB_conservative_depth */ + +/* --------------------------- GL_ARB_copy_buffer -------------------------- */ + +#ifndef GL_ARB_copy_buffer +#define GL_ARB_copy_buffer 1 + +#define GL_COPY_READ_BUFFER 0x8F36 +#define GL_COPY_WRITE_BUFFER 0x8F37 + +typedef void (GLAPIENTRY * PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size); + +#define glCopyBufferSubData GLEW_GET_FUN(__glewCopyBufferSubData) + +#define GLEW_ARB_copy_buffer GLEW_GET_VAR(__GLEW_ARB_copy_buffer) + +#endif /* GL_ARB_copy_buffer */ + +/* --------------------------- GL_ARB_copy_image --------------------------- */ + +#ifndef GL_ARB_copy_image +#define GL_ARB_copy_image 1 + +typedef void (GLAPIENTRY * 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); + +#define glCopyImageSubData GLEW_GET_FUN(__glewCopyImageSubData) + +#define GLEW_ARB_copy_image GLEW_GET_VAR(__GLEW_ARB_copy_image) + +#endif /* GL_ARB_copy_image */ + +/* -------------------------- GL_ARB_cull_distance ------------------------- */ + +#ifndef GL_ARB_cull_distance +#define GL_ARB_cull_distance 1 + +#define GL_MAX_CULL_DISTANCES 0x82F9 +#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES 0x82FA + +#define GLEW_ARB_cull_distance GLEW_GET_VAR(__GLEW_ARB_cull_distance) + +#endif /* GL_ARB_cull_distance */ + +/* -------------------------- GL_ARB_debug_output -------------------------- */ + +#ifndef GL_ARB_debug_output +#define GL_ARB_debug_output 1 + +#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 + +typedef void (GLAPIENTRY *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam); + +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, const void *userParam); +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf); +typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog); + +#define glDebugMessageCallbackARB GLEW_GET_FUN(__glewDebugMessageCallbackARB) +#define glDebugMessageControlARB GLEW_GET_FUN(__glewDebugMessageControlARB) +#define glDebugMessageInsertARB GLEW_GET_FUN(__glewDebugMessageInsertARB) +#define glGetDebugMessageLogARB GLEW_GET_FUN(__glewGetDebugMessageLogARB) + +#define GLEW_ARB_debug_output GLEW_GET_VAR(__GLEW_ARB_debug_output) + +#endif /* GL_ARB_debug_output */ + +/* ----------------------- GL_ARB_depth_buffer_float ----------------------- */ + +#ifndef GL_ARB_depth_buffer_float +#define GL_ARB_depth_buffer_float 1 + +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH32F_STENCIL8 0x8CAD +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD + +#define GLEW_ARB_depth_buffer_float GLEW_GET_VAR(__GLEW_ARB_depth_buffer_float) + +#endif /* GL_ARB_depth_buffer_float */ + +/* --------------------------- GL_ARB_depth_clamp -------------------------- */ + +#ifndef GL_ARB_depth_clamp +#define GL_ARB_depth_clamp 1 + +#define GL_DEPTH_CLAMP 0x864F + +#define GLEW_ARB_depth_clamp GLEW_GET_VAR(__GLEW_ARB_depth_clamp) + +#endif /* GL_ARB_depth_clamp */ + +/* -------------------------- GL_ARB_depth_texture ------------------------- */ + +#ifndef GL_ARB_depth_texture +#define GL_ARB_depth_texture 1 + +#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 GLEW_ARB_depth_texture GLEW_GET_VAR(__GLEW_ARB_depth_texture) + +#endif /* GL_ARB_depth_texture */ + +/* ----------------------- GL_ARB_derivative_control ----------------------- */ + +#ifndef GL_ARB_derivative_control +#define GL_ARB_derivative_control 1 + +#define GLEW_ARB_derivative_control GLEW_GET_VAR(__GLEW_ARB_derivative_control) + +#endif /* GL_ARB_derivative_control */ + +/* ----------------------- GL_ARB_direct_state_access ---------------------- */ + +#ifndef GL_ARB_direct_state_access +#define GL_ARB_direct_state_access 1 + +#define GL_TEXTURE_TARGET 0x1006 +#define GL_QUERY_TARGET 0x82EA + +typedef void (GLAPIENTRY * PFNGLBINDTEXTUREUNITPROC) (GLuint unit, GLuint texture); +typedef void (GLAPIENTRY * 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 GLenum (GLAPIENTRY * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC) (GLuint framebuffer, GLenum target); +typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERDATAPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); +typedef void (GLAPIENTRY * PFNGLCLEARNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); +typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERFVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint* value); +typedef void (GLAPIENTRY * PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * 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 (GLAPIENTRY * PFNGLCOPYNAMEDBUFFERSUBDATAPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLCREATEBUFFERSPROC) (GLsizei n, GLuint* buffers); +typedef void (GLAPIENTRY * PFNGLCREATEFRAMEBUFFERSPROC) (GLsizei n, GLuint* framebuffers); +typedef void (GLAPIENTRY * PFNGLCREATEPROGRAMPIPELINESPROC) (GLsizei n, GLuint* pipelines); +typedef void (GLAPIENTRY * PFNGLCREATEQUERIESPROC) (GLenum target, GLsizei n, GLuint* ids); +typedef void (GLAPIENTRY * PFNGLCREATERENDERBUFFERSPROC) (GLsizei n, GLuint* renderbuffers); +typedef void (GLAPIENTRY * PFNGLCREATESAMPLERSPROC) (GLsizei n, GLuint* samplers); +typedef void (GLAPIENTRY * PFNGLCREATETEXTURESPROC) (GLenum target, GLsizei n, GLuint* textures); +typedef void (GLAPIENTRY * PFNGLCREATETRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint* ids); +typedef void (GLAPIENTRY * PFNGLCREATEVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays); +typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index); +typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); +typedef void (GLAPIENTRY * PFNGLGENERATETEXTUREMIPMAPPROC) (GLuint texture); +typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLsizei bufSize, void *pixels); +typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERI64VPROC) (GLuint buffer, GLenum pname, GLint64* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERIVPROC) (GLuint buffer, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPOINTERVPROC) (GLuint buffer, GLenum pname, void** params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); +typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC) (GLuint framebuffer, GLenum pname, GLint* param); +typedef void (GLAPIENTRY * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC) (GLuint renderbuffer, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTUI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLGETQUERYBUFFEROBJECTUIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); +typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERFVPROC) (GLuint texture, GLint level, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERIVPROC) (GLuint texture, GLint level, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKI64_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint64* param); +typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKI_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint* param); +typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKIVPROC) (GLuint xfb, GLenum pname, GLint* param); +typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINDEXED64IVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint64* param); +typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINDEXEDIVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint* param); +typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYIVPROC) (GLuint vaobj, GLenum pname, GLint* param); +typedef void (GLAPIENTRY * PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum* attachments); +typedef void (GLAPIENTRY * PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERPROC) (GLuint buffer, GLenum access); +typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERDATAPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC) (GLuint framebuffer, GLenum mode); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC) (GLuint framebuffer, GLsizei n, const GLenum* bufs); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC) (GLuint framebuffer, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC) (GLuint framebuffer, GLenum mode); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFERPROC) (GLuint texture, GLenum internalformat, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFERRANGEPROC) (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFPROC) (GLuint texture, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, const GLfloat* param); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIPROC) (GLuint texture, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, const GLint* param); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE1DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * 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 (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC) (GLuint xfb, GLuint index, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC) (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef GLboolean (GLAPIENTRY * PFNGLUNMAPNAMEDBUFFERPROC) (GLuint buffer); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBBINDINGPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBIFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYATTRIBLFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYBINDINGDIVISORPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYELEMENTBUFFERPROC) (GLuint vaobj, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXBUFFERPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXBUFFERSPROC) (GLuint vaobj, GLuint first, GLsizei count, const GLuint* buffers, const GLintptr *offsets, const GLsizei *strides); + +#define glBindTextureUnit GLEW_GET_FUN(__glewBindTextureUnit) +#define glBlitNamedFramebuffer GLEW_GET_FUN(__glewBlitNamedFramebuffer) +#define glCheckNamedFramebufferStatus GLEW_GET_FUN(__glewCheckNamedFramebufferStatus) +#define glClearNamedBufferData GLEW_GET_FUN(__glewClearNamedBufferData) +#define glClearNamedBufferSubData GLEW_GET_FUN(__glewClearNamedBufferSubData) +#define glClearNamedFramebufferfi GLEW_GET_FUN(__glewClearNamedFramebufferfi) +#define glClearNamedFramebufferfv GLEW_GET_FUN(__glewClearNamedFramebufferfv) +#define glClearNamedFramebufferiv GLEW_GET_FUN(__glewClearNamedFramebufferiv) +#define glClearNamedFramebufferuiv GLEW_GET_FUN(__glewClearNamedFramebufferuiv) +#define glCompressedTextureSubImage1D GLEW_GET_FUN(__glewCompressedTextureSubImage1D) +#define glCompressedTextureSubImage2D GLEW_GET_FUN(__glewCompressedTextureSubImage2D) +#define glCompressedTextureSubImage3D GLEW_GET_FUN(__glewCompressedTextureSubImage3D) +#define glCopyNamedBufferSubData GLEW_GET_FUN(__glewCopyNamedBufferSubData) +#define glCopyTextureSubImage1D GLEW_GET_FUN(__glewCopyTextureSubImage1D) +#define glCopyTextureSubImage2D GLEW_GET_FUN(__glewCopyTextureSubImage2D) +#define glCopyTextureSubImage3D GLEW_GET_FUN(__glewCopyTextureSubImage3D) +#define glCreateBuffers GLEW_GET_FUN(__glewCreateBuffers) +#define glCreateFramebuffers GLEW_GET_FUN(__glewCreateFramebuffers) +#define glCreateProgramPipelines GLEW_GET_FUN(__glewCreateProgramPipelines) +#define glCreateQueries GLEW_GET_FUN(__glewCreateQueries) +#define glCreateRenderbuffers GLEW_GET_FUN(__glewCreateRenderbuffers) +#define glCreateSamplers GLEW_GET_FUN(__glewCreateSamplers) +#define glCreateTextures GLEW_GET_FUN(__glewCreateTextures) +#define glCreateTransformFeedbacks GLEW_GET_FUN(__glewCreateTransformFeedbacks) +#define glCreateVertexArrays GLEW_GET_FUN(__glewCreateVertexArrays) +#define glDisableVertexArrayAttrib GLEW_GET_FUN(__glewDisableVertexArrayAttrib) +#define glEnableVertexArrayAttrib GLEW_GET_FUN(__glewEnableVertexArrayAttrib) +#define glFlushMappedNamedBufferRange GLEW_GET_FUN(__glewFlushMappedNamedBufferRange) +#define glGenerateTextureMipmap GLEW_GET_FUN(__glewGenerateTextureMipmap) +#define glGetCompressedTextureImage GLEW_GET_FUN(__glewGetCompressedTextureImage) +#define glGetNamedBufferParameteri64v GLEW_GET_FUN(__glewGetNamedBufferParameteri64v) +#define glGetNamedBufferParameteriv GLEW_GET_FUN(__glewGetNamedBufferParameteriv) +#define glGetNamedBufferPointerv GLEW_GET_FUN(__glewGetNamedBufferPointerv) +#define glGetNamedBufferSubData GLEW_GET_FUN(__glewGetNamedBufferSubData) +#define glGetNamedFramebufferAttachmentParameteriv GLEW_GET_FUN(__glewGetNamedFramebufferAttachmentParameteriv) +#define glGetNamedFramebufferParameteriv GLEW_GET_FUN(__glewGetNamedFramebufferParameteriv) +#define glGetNamedRenderbufferParameteriv GLEW_GET_FUN(__glewGetNamedRenderbufferParameteriv) +#define glGetQueryBufferObjecti64v GLEW_GET_FUN(__glewGetQueryBufferObjecti64v) +#define glGetQueryBufferObjectiv GLEW_GET_FUN(__glewGetQueryBufferObjectiv) +#define glGetQueryBufferObjectui64v GLEW_GET_FUN(__glewGetQueryBufferObjectui64v) +#define glGetQueryBufferObjectuiv GLEW_GET_FUN(__glewGetQueryBufferObjectuiv) +#define glGetTextureImage GLEW_GET_FUN(__glewGetTextureImage) +#define glGetTextureLevelParameterfv GLEW_GET_FUN(__glewGetTextureLevelParameterfv) +#define glGetTextureLevelParameteriv GLEW_GET_FUN(__glewGetTextureLevelParameteriv) +#define glGetTextureParameterIiv GLEW_GET_FUN(__glewGetTextureParameterIiv) +#define glGetTextureParameterIuiv GLEW_GET_FUN(__glewGetTextureParameterIuiv) +#define glGetTextureParameterfv GLEW_GET_FUN(__glewGetTextureParameterfv) +#define glGetTextureParameteriv GLEW_GET_FUN(__glewGetTextureParameteriv) +#define glGetTransformFeedbacki64_v GLEW_GET_FUN(__glewGetTransformFeedbacki64_v) +#define glGetTransformFeedbacki_v GLEW_GET_FUN(__glewGetTransformFeedbacki_v) +#define glGetTransformFeedbackiv GLEW_GET_FUN(__glewGetTransformFeedbackiv) +#define glGetVertexArrayIndexed64iv GLEW_GET_FUN(__glewGetVertexArrayIndexed64iv) +#define glGetVertexArrayIndexediv GLEW_GET_FUN(__glewGetVertexArrayIndexediv) +#define glGetVertexArrayiv GLEW_GET_FUN(__glewGetVertexArrayiv) +#define glInvalidateNamedFramebufferData GLEW_GET_FUN(__glewInvalidateNamedFramebufferData) +#define glInvalidateNamedFramebufferSubData GLEW_GET_FUN(__glewInvalidateNamedFramebufferSubData) +#define glMapNamedBuffer GLEW_GET_FUN(__glewMapNamedBuffer) +#define glMapNamedBufferRange GLEW_GET_FUN(__glewMapNamedBufferRange) +#define glNamedBufferData GLEW_GET_FUN(__glewNamedBufferData) +#define glNamedBufferStorage GLEW_GET_FUN(__glewNamedBufferStorage) +#define glNamedBufferSubData GLEW_GET_FUN(__glewNamedBufferSubData) +#define glNamedFramebufferDrawBuffer GLEW_GET_FUN(__glewNamedFramebufferDrawBuffer) +#define glNamedFramebufferDrawBuffers GLEW_GET_FUN(__glewNamedFramebufferDrawBuffers) +#define glNamedFramebufferParameteri GLEW_GET_FUN(__glewNamedFramebufferParameteri) +#define glNamedFramebufferReadBuffer GLEW_GET_FUN(__glewNamedFramebufferReadBuffer) +#define glNamedFramebufferRenderbuffer GLEW_GET_FUN(__glewNamedFramebufferRenderbuffer) +#define glNamedFramebufferTexture GLEW_GET_FUN(__glewNamedFramebufferTexture) +#define glNamedFramebufferTextureLayer GLEW_GET_FUN(__glewNamedFramebufferTextureLayer) +#define glNamedRenderbufferStorage GLEW_GET_FUN(__glewNamedRenderbufferStorage) +#define glNamedRenderbufferStorageMultisample GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisample) +#define glTextureBuffer GLEW_GET_FUN(__glewTextureBuffer) +#define glTextureBufferRange GLEW_GET_FUN(__glewTextureBufferRange) +#define glTextureParameterIiv GLEW_GET_FUN(__glewTextureParameterIiv) +#define glTextureParameterIuiv GLEW_GET_FUN(__glewTextureParameterIuiv) +#define glTextureParameterf GLEW_GET_FUN(__glewTextureParameterf) +#define glTextureParameterfv GLEW_GET_FUN(__glewTextureParameterfv) +#define glTextureParameteri GLEW_GET_FUN(__glewTextureParameteri) +#define glTextureParameteriv GLEW_GET_FUN(__glewTextureParameteriv) +#define glTextureStorage1D GLEW_GET_FUN(__glewTextureStorage1D) +#define glTextureStorage2D GLEW_GET_FUN(__glewTextureStorage2D) +#define glTextureStorage2DMultisample GLEW_GET_FUN(__glewTextureStorage2DMultisample) +#define glTextureStorage3D GLEW_GET_FUN(__glewTextureStorage3D) +#define glTextureStorage3DMultisample GLEW_GET_FUN(__glewTextureStorage3DMultisample) +#define glTextureSubImage1D GLEW_GET_FUN(__glewTextureSubImage1D) +#define glTextureSubImage2D GLEW_GET_FUN(__glewTextureSubImage2D) +#define glTextureSubImage3D GLEW_GET_FUN(__glewTextureSubImage3D) +#define glTransformFeedbackBufferBase GLEW_GET_FUN(__glewTransformFeedbackBufferBase) +#define glTransformFeedbackBufferRange GLEW_GET_FUN(__glewTransformFeedbackBufferRange) +#define glUnmapNamedBuffer GLEW_GET_FUN(__glewUnmapNamedBuffer) +#define glVertexArrayAttribBinding GLEW_GET_FUN(__glewVertexArrayAttribBinding) +#define glVertexArrayAttribFormat GLEW_GET_FUN(__glewVertexArrayAttribFormat) +#define glVertexArrayAttribIFormat GLEW_GET_FUN(__glewVertexArrayAttribIFormat) +#define glVertexArrayAttribLFormat GLEW_GET_FUN(__glewVertexArrayAttribLFormat) +#define glVertexArrayBindingDivisor GLEW_GET_FUN(__glewVertexArrayBindingDivisor) +#define glVertexArrayElementBuffer GLEW_GET_FUN(__glewVertexArrayElementBuffer) +#define glVertexArrayVertexBuffer GLEW_GET_FUN(__glewVertexArrayVertexBuffer) +#define glVertexArrayVertexBuffers GLEW_GET_FUN(__glewVertexArrayVertexBuffers) + +#define GLEW_ARB_direct_state_access GLEW_GET_VAR(__GLEW_ARB_direct_state_access) + +#endif /* GL_ARB_direct_state_access */ + +/* -------------------------- GL_ARB_draw_buffers -------------------------- */ + +#ifndef GL_ARB_draw_buffers +#define GL_ARB_draw_buffers 1 + +#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 + +typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum* bufs); + +#define glDrawBuffersARB GLEW_GET_FUN(__glewDrawBuffersARB) + +#define GLEW_ARB_draw_buffers GLEW_GET_VAR(__GLEW_ARB_draw_buffers) + +#endif /* GL_ARB_draw_buffers */ + +/* ----------------------- GL_ARB_draw_buffers_blend ----------------------- */ + +#ifndef GL_ARB_draw_buffers_blend +#define GL_ARB_draw_buffers_blend 1 + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst); + +#define glBlendEquationSeparateiARB GLEW_GET_FUN(__glewBlendEquationSeparateiARB) +#define glBlendEquationiARB GLEW_GET_FUN(__glewBlendEquationiARB) +#define glBlendFuncSeparateiARB GLEW_GET_FUN(__glewBlendFuncSeparateiARB) +#define glBlendFunciARB GLEW_GET_FUN(__glewBlendFunciARB) + +#define GLEW_ARB_draw_buffers_blend GLEW_GET_VAR(__GLEW_ARB_draw_buffers_blend) + +#endif /* GL_ARB_draw_buffers_blend */ + +/* -------------------- GL_ARB_draw_elements_base_vertex ------------------- */ + +#ifndef GL_ARB_draw_elements_base_vertex +#define GL_ARB_draw_elements_base_vertex 1 + +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei* count, GLenum type, const void*const *indices, GLsizei drawcount, const GLint *basevertex); + +#define glDrawElementsBaseVertex GLEW_GET_FUN(__glewDrawElementsBaseVertex) +#define glDrawElementsInstancedBaseVertex GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertex) +#define glDrawRangeElementsBaseVertex GLEW_GET_FUN(__glewDrawRangeElementsBaseVertex) +#define glMultiDrawElementsBaseVertex GLEW_GET_FUN(__glewMultiDrawElementsBaseVertex) + +#define GLEW_ARB_draw_elements_base_vertex GLEW_GET_VAR(__GLEW_ARB_draw_elements_base_vertex) + +#endif /* GL_ARB_draw_elements_base_vertex */ + +/* -------------------------- GL_ARB_draw_indirect ------------------------- */ + +#ifndef GL_ARB_draw_indirect +#define GL_ARB_draw_indirect 1 + +#define GL_DRAW_INDIRECT_BUFFER 0x8F3F +#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect); + +#define glDrawArraysIndirect GLEW_GET_FUN(__glewDrawArraysIndirect) +#define glDrawElementsIndirect GLEW_GET_FUN(__glewDrawElementsIndirect) + +#define GLEW_ARB_draw_indirect GLEW_GET_VAR(__GLEW_ARB_draw_indirect) + +#endif /* GL_ARB_draw_indirect */ + +/* ------------------------- GL_ARB_draw_instanced ------------------------- */ + +#ifndef GL_ARB_draw_instanced +#define GL_ARB_draw_instanced 1 + +#define GLEW_ARB_draw_instanced GLEW_GET_VAR(__GLEW_ARB_draw_instanced) + +#endif /* GL_ARB_draw_instanced */ + +/* ------------------------ GL_ARB_enhanced_layouts ------------------------ */ + +#ifndef GL_ARB_enhanced_layouts +#define GL_ARB_enhanced_layouts 1 + +#define GL_LOCATION_COMPONENT 0x934A +#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B +#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C + +#define GLEW_ARB_enhanced_layouts GLEW_GET_VAR(__GLEW_ARB_enhanced_layouts) + +#endif /* GL_ARB_enhanced_layouts */ + +/* -------------------- GL_ARB_explicit_attrib_location -------------------- */ + +#ifndef GL_ARB_explicit_attrib_location +#define GL_ARB_explicit_attrib_location 1 + +#define GLEW_ARB_explicit_attrib_location GLEW_GET_VAR(__GLEW_ARB_explicit_attrib_location) + +#endif /* GL_ARB_explicit_attrib_location */ + +/* -------------------- GL_ARB_explicit_uniform_location ------------------- */ + +#ifndef GL_ARB_explicit_uniform_location +#define GL_ARB_explicit_uniform_location 1 + +#define GL_MAX_UNIFORM_LOCATIONS 0x826E + +#define GLEW_ARB_explicit_uniform_location GLEW_GET_VAR(__GLEW_ARB_explicit_uniform_location) + +#endif /* GL_ARB_explicit_uniform_location */ + +/* ------------------- GL_ARB_fragment_coord_conventions ------------------- */ + +#ifndef GL_ARB_fragment_coord_conventions +#define GL_ARB_fragment_coord_conventions 1 + +#define GLEW_ARB_fragment_coord_conventions GLEW_GET_VAR(__GLEW_ARB_fragment_coord_conventions) + +#endif /* GL_ARB_fragment_coord_conventions */ + +/* --------------------- GL_ARB_fragment_layer_viewport -------------------- */ + +#ifndef GL_ARB_fragment_layer_viewport +#define GL_ARB_fragment_layer_viewport 1 + +#define GLEW_ARB_fragment_layer_viewport GLEW_GET_VAR(__GLEW_ARB_fragment_layer_viewport) + +#endif /* GL_ARB_fragment_layer_viewport */ + +/* ------------------------ GL_ARB_fragment_program ------------------------ */ + +#ifndef GL_ARB_fragment_program +#define GL_ARB_fragment_program 1 + +#define GL_FRAGMENT_PROGRAM_ARB 0x8804 +#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_MAX_TEXTURE_COORDS_ARB 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 + +#define GLEW_ARB_fragment_program GLEW_GET_VAR(__GLEW_ARB_fragment_program) + +#endif /* GL_ARB_fragment_program */ + +/* --------------------- GL_ARB_fragment_program_shadow -------------------- */ + +#ifndef GL_ARB_fragment_program_shadow +#define GL_ARB_fragment_program_shadow 1 + +#define GLEW_ARB_fragment_program_shadow GLEW_GET_VAR(__GLEW_ARB_fragment_program_shadow) + +#endif /* GL_ARB_fragment_program_shadow */ + +/* ------------------------- GL_ARB_fragment_shader ------------------------ */ + +#ifndef GL_ARB_fragment_shader +#define GL_ARB_fragment_shader 1 + +#define GL_FRAGMENT_SHADER_ARB 0x8B30 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B + +#define GLEW_ARB_fragment_shader GLEW_GET_VAR(__GLEW_ARB_fragment_shader) + +#endif /* GL_ARB_fragment_shader */ + +/* -------------------- GL_ARB_fragment_shader_interlock ------------------- */ + +#ifndef GL_ARB_fragment_shader_interlock +#define GL_ARB_fragment_shader_interlock 1 + +#define GLEW_ARB_fragment_shader_interlock GLEW_GET_VAR(__GLEW_ARB_fragment_shader_interlock) + +#endif /* GL_ARB_fragment_shader_interlock */ + +/* ------------------- GL_ARB_framebuffer_no_attachments ------------------- */ + +#ifndef GL_ARB_framebuffer_no_attachments +#define GL_ARB_framebuffer_no_attachments 1 + +#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 +#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312 +#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 +#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 +#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 +#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 +#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317 +#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC) (GLuint framebuffer, GLenum pname, GLint param); + +#define glFramebufferParameteri GLEW_GET_FUN(__glewFramebufferParameteri) +#define glGetFramebufferParameteriv GLEW_GET_FUN(__glewGetFramebufferParameteriv) +#define glGetNamedFramebufferParameterivEXT GLEW_GET_FUN(__glewGetNamedFramebufferParameterivEXT) +#define glNamedFramebufferParameteriEXT GLEW_GET_FUN(__glewNamedFramebufferParameteriEXT) + +#define GLEW_ARB_framebuffer_no_attachments GLEW_GET_VAR(__GLEW_ARB_framebuffer_no_attachments) + +#endif /* GL_ARB_framebuffer_no_attachments */ + +/* ----------------------- GL_ARB_framebuffer_object ----------------------- */ + +#ifndef GL_ARB_framebuffer_object +#define GL_ARB_framebuffer_object 1 + +#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_INDEX 0x8222 +#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_UNSIGNED_NORMALIZED 0x8C17 +#define GL_SRGB 0x8C40 +#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_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_ATTACHMENT0 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_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#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 + +typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); +typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint* framebuffers); +typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint* renderbuffers); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target,GLenum attachment, GLuint texture,GLint level,GLint layer); +typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint* framebuffers); +typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint* renderbuffers); +typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); +typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); + +#define glBindFramebuffer GLEW_GET_FUN(__glewBindFramebuffer) +#define glBindRenderbuffer GLEW_GET_FUN(__glewBindRenderbuffer) +#define glBlitFramebuffer GLEW_GET_FUN(__glewBlitFramebuffer) +#define glCheckFramebufferStatus GLEW_GET_FUN(__glewCheckFramebufferStatus) +#define glDeleteFramebuffers GLEW_GET_FUN(__glewDeleteFramebuffers) +#define glDeleteRenderbuffers GLEW_GET_FUN(__glewDeleteRenderbuffers) +#define glFramebufferRenderbuffer GLEW_GET_FUN(__glewFramebufferRenderbuffer) +#define glFramebufferTexture1D GLEW_GET_FUN(__glewFramebufferTexture1D) +#define glFramebufferTexture2D GLEW_GET_FUN(__glewFramebufferTexture2D) +#define glFramebufferTexture3D GLEW_GET_FUN(__glewFramebufferTexture3D) +#define glFramebufferTextureLayer GLEW_GET_FUN(__glewFramebufferTextureLayer) +#define glGenFramebuffers GLEW_GET_FUN(__glewGenFramebuffers) +#define glGenRenderbuffers GLEW_GET_FUN(__glewGenRenderbuffers) +#define glGenerateMipmap GLEW_GET_FUN(__glewGenerateMipmap) +#define glGetFramebufferAttachmentParameteriv GLEW_GET_FUN(__glewGetFramebufferAttachmentParameteriv) +#define glGetRenderbufferParameteriv GLEW_GET_FUN(__glewGetRenderbufferParameteriv) +#define glIsFramebuffer GLEW_GET_FUN(__glewIsFramebuffer) +#define glIsRenderbuffer GLEW_GET_FUN(__glewIsRenderbuffer) +#define glRenderbufferStorage GLEW_GET_FUN(__glewRenderbufferStorage) +#define glRenderbufferStorageMultisample GLEW_GET_FUN(__glewRenderbufferStorageMultisample) + +#define GLEW_ARB_framebuffer_object GLEW_GET_VAR(__GLEW_ARB_framebuffer_object) + +#endif /* GL_ARB_framebuffer_object */ + +/* ------------------------ GL_ARB_framebuffer_sRGB ------------------------ */ + +#ifndef GL_ARB_framebuffer_sRGB +#define GL_ARB_framebuffer_sRGB 1 + +#define GL_FRAMEBUFFER_SRGB 0x8DB9 + +#define GLEW_ARB_framebuffer_sRGB GLEW_GET_VAR(__GLEW_ARB_framebuffer_sRGB) + +#endif /* GL_ARB_framebuffer_sRGB */ + +/* ------------------------ GL_ARB_geometry_shader4 ------------------------ */ + +#ifndef GL_ARB_geometry_shader4 +#define GL_ARB_geometry_shader4 1 + +#define GL_LINES_ADJACENCY_ARB 0xA +#define GL_LINE_STRIP_ADJACENCY_ARB 0xB +#define GL_TRIANGLES_ADJACENCY_ARB 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0xD +#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 +#define GL_GEOMETRY_SHADER_ARB 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value); + +#define glFramebufferTextureARB GLEW_GET_FUN(__glewFramebufferTextureARB) +#define glFramebufferTextureFaceARB GLEW_GET_FUN(__glewFramebufferTextureFaceARB) +#define glFramebufferTextureLayerARB GLEW_GET_FUN(__glewFramebufferTextureLayerARB) +#define glProgramParameteriARB GLEW_GET_FUN(__glewProgramParameteriARB) + +#define GLEW_ARB_geometry_shader4 GLEW_GET_VAR(__GLEW_ARB_geometry_shader4) + +#endif /* GL_ARB_geometry_shader4 */ + +/* ----------------------- GL_ARB_get_program_binary ----------------------- */ + +#ifndef GL_ARB_get_program_binary +#define GL_ARB_get_program_binary 1 + +#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 +#define GL_PROGRAM_BINARY_LENGTH 0x8741 +#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE +#define GL_PROGRAM_BINARY_FORMATS 0x87FF + +typedef void (GLAPIENTRY * PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLenum *binaryFormat, void*binary); +typedef void (GLAPIENTRY * PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); + +#define glGetProgramBinary GLEW_GET_FUN(__glewGetProgramBinary) +#define glProgramBinary GLEW_GET_FUN(__glewProgramBinary) +#define glProgramParameteri GLEW_GET_FUN(__glewProgramParameteri) + +#define GLEW_ARB_get_program_binary GLEW_GET_VAR(__GLEW_ARB_get_program_binary) + +#endif /* GL_ARB_get_program_binary */ + +/* ---------------------- GL_ARB_get_texture_sub_image --------------------- */ + +#ifndef GL_ARB_get_texture_sub_image +#define GL_ARB_get_texture_sub_image 1 + +typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels); +typedef void (GLAPIENTRY * 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); + +#define glGetCompressedTextureSubImage GLEW_GET_FUN(__glewGetCompressedTextureSubImage) +#define glGetTextureSubImage GLEW_GET_FUN(__glewGetTextureSubImage) + +#define GLEW_ARB_get_texture_sub_image GLEW_GET_VAR(__GLEW_ARB_get_texture_sub_image) + +#endif /* GL_ARB_get_texture_sub_image */ + +/* ---------------------------- GL_ARB_gl_spirv ---------------------------- */ + +#ifndef GL_ARB_gl_spirv +#define GL_ARB_gl_spirv 1 + +#define GL_SHADER_BINARY_FORMAT_SPIR_V_ARB 0x9551 +#define GL_SPIR_V_BINARY_ARB 0x9552 + +typedef void (GLAPIENTRY * PFNGLSPECIALIZESHADERARBPROC) (GLuint shader, const GLchar* pEntryPoint, GLuint numSpecializationConstants, const GLuint* pConstantIndex, const GLuint* pConstantValue); + +#define glSpecializeShaderARB GLEW_GET_FUN(__glewSpecializeShaderARB) + +#define GLEW_ARB_gl_spirv GLEW_GET_VAR(__GLEW_ARB_gl_spirv) + +#endif /* GL_ARB_gl_spirv */ + +/* --------------------------- GL_ARB_gpu_shader5 -------------------------- */ + +#ifndef GL_ARB_gpu_shader5 +#define GL_ARB_gpu_shader5 1 + +#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C +#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D +#define GL_MAX_VERTEX_STREAMS 0x8E71 + +#define GLEW_ARB_gpu_shader5 GLEW_GET_VAR(__GLEW_ARB_gpu_shader5) + +#endif /* GL_ARB_gpu_shader5 */ + +/* ------------------------- GL_ARB_gpu_shader_fp64 ------------------------ */ + +#ifndef GL_ARB_gpu_shader_fp64 +#define GL_ARB_gpu_shader_fp64 1 + +#define GL_DOUBLE_MAT2 0x8F46 +#define GL_DOUBLE_MAT3 0x8F47 +#define GL_DOUBLE_MAT4 0x8F48 +#define GL_DOUBLE_MAT2x3 0x8F49 +#define GL_DOUBLE_MAT2x4 0x8F4A +#define GL_DOUBLE_MAT3x2 0x8F4B +#define GL_DOUBLE_MAT3x4 0x8F4C +#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 + +typedef void (GLAPIENTRY * PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLUNIFORM1DPROC) (GLint location, GLdouble x); +typedef void (GLAPIENTRY * PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); + +#define glGetUniformdv GLEW_GET_FUN(__glewGetUniformdv) +#define glUniform1d GLEW_GET_FUN(__glewUniform1d) +#define glUniform1dv GLEW_GET_FUN(__glewUniform1dv) +#define glUniform2d GLEW_GET_FUN(__glewUniform2d) +#define glUniform2dv GLEW_GET_FUN(__glewUniform2dv) +#define glUniform3d GLEW_GET_FUN(__glewUniform3d) +#define glUniform3dv GLEW_GET_FUN(__glewUniform3dv) +#define glUniform4d GLEW_GET_FUN(__glewUniform4d) +#define glUniform4dv GLEW_GET_FUN(__glewUniform4dv) +#define glUniformMatrix2dv GLEW_GET_FUN(__glewUniformMatrix2dv) +#define glUniformMatrix2x3dv GLEW_GET_FUN(__glewUniformMatrix2x3dv) +#define glUniformMatrix2x4dv GLEW_GET_FUN(__glewUniformMatrix2x4dv) +#define glUniformMatrix3dv GLEW_GET_FUN(__glewUniformMatrix3dv) +#define glUniformMatrix3x2dv GLEW_GET_FUN(__glewUniformMatrix3x2dv) +#define glUniformMatrix3x4dv GLEW_GET_FUN(__glewUniformMatrix3x4dv) +#define glUniformMatrix4dv GLEW_GET_FUN(__glewUniformMatrix4dv) +#define glUniformMatrix4x2dv GLEW_GET_FUN(__glewUniformMatrix4x2dv) +#define glUniformMatrix4x3dv GLEW_GET_FUN(__glewUniformMatrix4x3dv) + +#define GLEW_ARB_gpu_shader_fp64 GLEW_GET_VAR(__GLEW_ARB_gpu_shader_fp64) + +#endif /* GL_ARB_gpu_shader_fp64 */ + +/* ------------------------ GL_ARB_gpu_shader_int64 ------------------------ */ + +#ifndef GL_ARB_gpu_shader_int64 +#define GL_ARB_gpu_shader_int64 1 + +#define GL_INT64_ARB 0x140E +#define GL_UNSIGNED_INT64_ARB 0x140F +#define GL_INT64_VEC2_ARB 0x8FE9 +#define GL_INT64_VEC3_ARB 0x8FEA +#define GL_INT64_VEC4_ARB 0x8FEB +#define GL_UNSIGNED_INT64_VEC2_ARB 0x8FF5 +#define GL_UNSIGNED_INT64_VEC3_ARB 0x8FF6 +#define GL_UNSIGNED_INT64_VEC4_ARB 0x8FF7 + +typedef void (GLAPIENTRY * PFNGLGETUNIFORMI64VARBPROC) (GLuint program, GLint location, GLint64* params); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMUI64VARBPROC) (GLuint program, GLint location, GLuint64* params); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMI64VARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint64* params); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMUI64VARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint64* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64ARBPROC) (GLuint program, GLint location, GLint64 x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64ARBPROC) (GLuint program, GLint location, GLuint64 x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64ARBPROC) (GLuint program, GLint location, GLint64 x, GLint64 y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64ARBPROC) (GLuint program, GLint location, GLuint64 x, GLuint64 y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64ARBPROC) (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64ARBPROC) (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64ARBPROC) (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64ARBPROC) (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM1I64ARBPROC) (GLint location, GLint64 x); +typedef void (GLAPIENTRY * PFNGLUNIFORM1I64VARBPROC) (GLint location, GLsizei count, const GLint64* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64ARBPROC) (GLint location, GLuint64 x); +typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64VARBPROC) (GLint location, GLsizei count, const GLuint64* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2I64ARBPROC) (GLint location, GLint64 x, GLint64 y); +typedef void (GLAPIENTRY * PFNGLUNIFORM2I64VARBPROC) (GLint location, GLsizei count, const GLint64* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64ARBPROC) (GLint location, GLuint64 x, GLuint64 y); +typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64VARBPROC) (GLint location, GLsizei count, const GLuint64* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3I64ARBPROC) (GLint location, GLint64 x, GLint64 y, GLint64 z); +typedef void (GLAPIENTRY * PFNGLUNIFORM3I64VARBPROC) (GLint location, GLsizei count, const GLint64* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64ARBPROC) (GLint location, GLuint64 x, GLuint64 y, GLuint64 z); +typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64VARBPROC) (GLint location, GLsizei count, const GLuint64* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4I64ARBPROC) (GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); +typedef void (GLAPIENTRY * PFNGLUNIFORM4I64VARBPROC) (GLint location, GLsizei count, const GLint64* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64ARBPROC) (GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); +typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64VARBPROC) (GLint location, GLsizei count, const GLuint64* value); + +#define glGetUniformi64vARB GLEW_GET_FUN(__glewGetUniformi64vARB) +#define glGetUniformui64vARB GLEW_GET_FUN(__glewGetUniformui64vARB) +#define glGetnUniformi64vARB GLEW_GET_FUN(__glewGetnUniformi64vARB) +#define glGetnUniformui64vARB GLEW_GET_FUN(__glewGetnUniformui64vARB) +#define glProgramUniform1i64ARB GLEW_GET_FUN(__glewProgramUniform1i64ARB) +#define glProgramUniform1i64vARB GLEW_GET_FUN(__glewProgramUniform1i64vARB) +#define glProgramUniform1ui64ARB GLEW_GET_FUN(__glewProgramUniform1ui64ARB) +#define glProgramUniform1ui64vARB GLEW_GET_FUN(__glewProgramUniform1ui64vARB) +#define glProgramUniform2i64ARB GLEW_GET_FUN(__glewProgramUniform2i64ARB) +#define glProgramUniform2i64vARB GLEW_GET_FUN(__glewProgramUniform2i64vARB) +#define glProgramUniform2ui64ARB GLEW_GET_FUN(__glewProgramUniform2ui64ARB) +#define glProgramUniform2ui64vARB GLEW_GET_FUN(__glewProgramUniform2ui64vARB) +#define glProgramUniform3i64ARB GLEW_GET_FUN(__glewProgramUniform3i64ARB) +#define glProgramUniform3i64vARB GLEW_GET_FUN(__glewProgramUniform3i64vARB) +#define glProgramUniform3ui64ARB GLEW_GET_FUN(__glewProgramUniform3ui64ARB) +#define glProgramUniform3ui64vARB GLEW_GET_FUN(__glewProgramUniform3ui64vARB) +#define glProgramUniform4i64ARB GLEW_GET_FUN(__glewProgramUniform4i64ARB) +#define glProgramUniform4i64vARB GLEW_GET_FUN(__glewProgramUniform4i64vARB) +#define glProgramUniform4ui64ARB GLEW_GET_FUN(__glewProgramUniform4ui64ARB) +#define glProgramUniform4ui64vARB GLEW_GET_FUN(__glewProgramUniform4ui64vARB) +#define glUniform1i64ARB GLEW_GET_FUN(__glewUniform1i64ARB) +#define glUniform1i64vARB GLEW_GET_FUN(__glewUniform1i64vARB) +#define glUniform1ui64ARB GLEW_GET_FUN(__glewUniform1ui64ARB) +#define glUniform1ui64vARB GLEW_GET_FUN(__glewUniform1ui64vARB) +#define glUniform2i64ARB GLEW_GET_FUN(__glewUniform2i64ARB) +#define glUniform2i64vARB GLEW_GET_FUN(__glewUniform2i64vARB) +#define glUniform2ui64ARB GLEW_GET_FUN(__glewUniform2ui64ARB) +#define glUniform2ui64vARB GLEW_GET_FUN(__glewUniform2ui64vARB) +#define glUniform3i64ARB GLEW_GET_FUN(__glewUniform3i64ARB) +#define glUniform3i64vARB GLEW_GET_FUN(__glewUniform3i64vARB) +#define glUniform3ui64ARB GLEW_GET_FUN(__glewUniform3ui64ARB) +#define glUniform3ui64vARB GLEW_GET_FUN(__glewUniform3ui64vARB) +#define glUniform4i64ARB GLEW_GET_FUN(__glewUniform4i64ARB) +#define glUniform4i64vARB GLEW_GET_FUN(__glewUniform4i64vARB) +#define glUniform4ui64ARB GLEW_GET_FUN(__glewUniform4ui64ARB) +#define glUniform4ui64vARB GLEW_GET_FUN(__glewUniform4ui64vARB) + +#define GLEW_ARB_gpu_shader_int64 GLEW_GET_VAR(__GLEW_ARB_gpu_shader_int64) + +#endif /* GL_ARB_gpu_shader_int64 */ + +/* ------------------------ GL_ARB_half_float_pixel ------------------------ */ + +#ifndef GL_ARB_half_float_pixel +#define GL_ARB_half_float_pixel 1 + +#define GL_HALF_FLOAT_ARB 0x140B + +#define GLEW_ARB_half_float_pixel GLEW_GET_VAR(__GLEW_ARB_half_float_pixel) + +#endif /* GL_ARB_half_float_pixel */ + +/* ------------------------ GL_ARB_half_float_vertex ----------------------- */ + +#ifndef GL_ARB_half_float_vertex +#define GL_ARB_half_float_vertex 1 + +#define GL_HALF_FLOAT 0x140B + +#define GLEW_ARB_half_float_vertex GLEW_GET_VAR(__GLEW_ARB_half_float_vertex) + +#endif /* GL_ARB_half_float_vertex */ + +/* ----------------------------- GL_ARB_imaging ---------------------------- */ + +#ifndef GL_ARB_imaging +#define GL_ARB_imaging 1 + +#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_BLEND_COLOR 0x8005 +#define GL_FUNC_ADD 0x8006 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_BLEND_EQUATION 0x8009 +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#define GL_CONVOLUTION_1D 0x8010 +#define GL_CONVOLUTION_2D 0x8011 +#define GL_SEPARABLE_2D 0x8012 +#define GL_CONVOLUTION_BORDER_MODE 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS 0x8015 +#define GL_REDUCE 0x8016 +#define GL_CONVOLUTION_FORMAT 0x8017 +#define GL_CONVOLUTION_WIDTH 0x8018 +#define GL_CONVOLUTION_HEIGHT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 +#define GL_HISTOGRAM 0x8024 +#define GL_PROXY_HISTOGRAM 0x8025 +#define GL_HISTOGRAM_WIDTH 0x8026 +#define GL_HISTOGRAM_FORMAT 0x8027 +#define GL_HISTOGRAM_RED_SIZE 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C +#define GL_HISTOGRAM_SINK 0x802D +#define GL_MINMAX 0x802E +#define GL_MINMAX_FORMAT 0x802F +#define GL_MINMAX_SINK 0x8030 +#define GL_TABLE_TOO_LARGE 0x8031 +#define GL_COLOR_MATRIX 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB +#define GL_COLOR_TABLE 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 +#define GL_PROXY_COLOR_TABLE 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 +#define GL_COLOR_TABLE_SCALE 0x80D6 +#define GL_COLOR_TABLE_BIAS 0x80D7 +#define GL_COLOR_TABLE_FORMAT 0x80D8 +#define GL_COLOR_TABLE_WIDTH 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF +#define GL_IGNORE_BORDER 0x8150 +#define GL_CONSTANT_BORDER 0x8151 +#define GL_WRAP_BORDER 0x8152 +#define GL_REPLICATE_BORDER 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR 0x8154 + +typedef void (GLAPIENTRY * PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); +typedef void (GLAPIENTRY * PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); +typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (GLAPIENTRY * PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +typedef void (GLAPIENTRY * PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, void *table); +typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, void *image); +typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (GLAPIENTRY * PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum types, void *values); +typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (GLAPIENTRY * PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); +typedef void (GLAPIENTRY * PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (GLAPIENTRY * PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (GLAPIENTRY * PFNGLRESETHISTOGRAMPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLRESETMINMAXPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); + +#define glColorSubTable GLEW_GET_FUN(__glewColorSubTable) +#define glColorTable GLEW_GET_FUN(__glewColorTable) +#define glColorTableParameterfv GLEW_GET_FUN(__glewColorTableParameterfv) +#define glColorTableParameteriv GLEW_GET_FUN(__glewColorTableParameteriv) +#define glConvolutionFilter1D GLEW_GET_FUN(__glewConvolutionFilter1D) +#define glConvolutionFilter2D GLEW_GET_FUN(__glewConvolutionFilter2D) +#define glConvolutionParameterf GLEW_GET_FUN(__glewConvolutionParameterf) +#define glConvolutionParameterfv GLEW_GET_FUN(__glewConvolutionParameterfv) +#define glConvolutionParameteri GLEW_GET_FUN(__glewConvolutionParameteri) +#define glConvolutionParameteriv GLEW_GET_FUN(__glewConvolutionParameteriv) +#define glCopyColorSubTable GLEW_GET_FUN(__glewCopyColorSubTable) +#define glCopyColorTable GLEW_GET_FUN(__glewCopyColorTable) +#define glCopyConvolutionFilter1D GLEW_GET_FUN(__glewCopyConvolutionFilter1D) +#define glCopyConvolutionFilter2D GLEW_GET_FUN(__glewCopyConvolutionFilter2D) +#define glGetColorTable GLEW_GET_FUN(__glewGetColorTable) +#define glGetColorTableParameterfv GLEW_GET_FUN(__glewGetColorTableParameterfv) +#define glGetColorTableParameteriv GLEW_GET_FUN(__glewGetColorTableParameteriv) +#define glGetConvolutionFilter GLEW_GET_FUN(__glewGetConvolutionFilter) +#define glGetConvolutionParameterfv GLEW_GET_FUN(__glewGetConvolutionParameterfv) +#define glGetConvolutionParameteriv GLEW_GET_FUN(__glewGetConvolutionParameteriv) +#define glGetHistogram GLEW_GET_FUN(__glewGetHistogram) +#define glGetHistogramParameterfv GLEW_GET_FUN(__glewGetHistogramParameterfv) +#define glGetHistogramParameteriv GLEW_GET_FUN(__glewGetHistogramParameteriv) +#define glGetMinmax GLEW_GET_FUN(__glewGetMinmax) +#define glGetMinmaxParameterfv GLEW_GET_FUN(__glewGetMinmaxParameterfv) +#define glGetMinmaxParameteriv GLEW_GET_FUN(__glewGetMinmaxParameteriv) +#define glGetSeparableFilter GLEW_GET_FUN(__glewGetSeparableFilter) +#define glHistogram GLEW_GET_FUN(__glewHistogram) +#define glMinmax GLEW_GET_FUN(__glewMinmax) +#define glResetHistogram GLEW_GET_FUN(__glewResetHistogram) +#define glResetMinmax GLEW_GET_FUN(__glewResetMinmax) +#define glSeparableFilter2D GLEW_GET_FUN(__glewSeparableFilter2D) + +#define GLEW_ARB_imaging GLEW_GET_VAR(__GLEW_ARB_imaging) + +#endif /* GL_ARB_imaging */ + +/* ----------------------- GL_ARB_indirect_parameters ---------------------- */ + +#ifndef GL_ARB_indirect_parameters +#define GL_ARB_indirect_parameters 1 + +#define GL_PARAMETER_BUFFER_ARB 0x80EE +#define GL_PARAMETER_BUFFER_BINDING_ARB 0x80EF + +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC) (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC) (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); + +#define glMultiDrawArraysIndirectCountARB GLEW_GET_FUN(__glewMultiDrawArraysIndirectCountARB) +#define glMultiDrawElementsIndirectCountARB GLEW_GET_FUN(__glewMultiDrawElementsIndirectCountARB) + +#define GLEW_ARB_indirect_parameters GLEW_GET_VAR(__GLEW_ARB_indirect_parameters) + +#endif /* GL_ARB_indirect_parameters */ + +/* ------------------------ GL_ARB_instanced_arrays ------------------------ */ + +#ifndef GL_ARB_instanced_arrays +#define GL_ARB_instanced_arrays 1 + +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor); + +#define glDrawArraysInstancedARB GLEW_GET_FUN(__glewDrawArraysInstancedARB) +#define glDrawElementsInstancedARB GLEW_GET_FUN(__glewDrawElementsInstancedARB) +#define glVertexAttribDivisorARB GLEW_GET_FUN(__glewVertexAttribDivisorARB) + +#define GLEW_ARB_instanced_arrays GLEW_GET_VAR(__GLEW_ARB_instanced_arrays) + +#endif /* GL_ARB_instanced_arrays */ + +/* ---------------------- GL_ARB_internalformat_query ---------------------- */ + +#ifndef GL_ARB_internalformat_query +#define GL_ARB_internalformat_query 1 + +#define GL_NUM_SAMPLE_COUNTS 0x9380 + +typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params); + +#define glGetInternalformativ GLEW_GET_FUN(__glewGetInternalformativ) + +#define GLEW_ARB_internalformat_query GLEW_GET_VAR(__GLEW_ARB_internalformat_query) + +#endif /* GL_ARB_internalformat_query */ + +/* ---------------------- GL_ARB_internalformat_query2 --------------------- */ + +#ifndef GL_ARB_internalformat_query2 +#define GL_ARB_internalformat_query2 1 + +#define GL_INTERNALFORMAT_SUPPORTED 0x826F +#define GL_INTERNALFORMAT_PREFERRED 0x8270 +#define GL_INTERNALFORMAT_RED_SIZE 0x8271 +#define GL_INTERNALFORMAT_GREEN_SIZE 0x8272 +#define GL_INTERNALFORMAT_BLUE_SIZE 0x8273 +#define GL_INTERNALFORMAT_ALPHA_SIZE 0x8274 +#define GL_INTERNALFORMAT_DEPTH_SIZE 0x8275 +#define GL_INTERNALFORMAT_STENCIL_SIZE 0x8276 +#define GL_INTERNALFORMAT_SHARED_SIZE 0x8277 +#define GL_INTERNALFORMAT_RED_TYPE 0x8278 +#define GL_INTERNALFORMAT_GREEN_TYPE 0x8279 +#define GL_INTERNALFORMAT_BLUE_TYPE 0x827A +#define GL_INTERNALFORMAT_ALPHA_TYPE 0x827B +#define GL_INTERNALFORMAT_DEPTH_TYPE 0x827C +#define GL_INTERNALFORMAT_STENCIL_TYPE 0x827D +#define GL_MAX_WIDTH 0x827E +#define GL_MAX_HEIGHT 0x827F +#define GL_MAX_DEPTH 0x8280 +#define GL_MAX_LAYERS 0x8281 +#define GL_MAX_COMBINED_DIMENSIONS 0x8282 +#define GL_COLOR_COMPONENTS 0x8283 +#define GL_DEPTH_COMPONENTS 0x8284 +#define GL_STENCIL_COMPONENTS 0x8285 +#define GL_COLOR_RENDERABLE 0x8286 +#define GL_DEPTH_RENDERABLE 0x8287 +#define GL_STENCIL_RENDERABLE 0x8288 +#define GL_FRAMEBUFFER_RENDERABLE 0x8289 +#define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A +#define GL_FRAMEBUFFER_BLEND 0x828B +#define GL_READ_PIXELS 0x828C +#define GL_READ_PIXELS_FORMAT 0x828D +#define GL_READ_PIXELS_TYPE 0x828E +#define GL_TEXTURE_IMAGE_FORMAT 0x828F +#define GL_TEXTURE_IMAGE_TYPE 0x8290 +#define GL_GET_TEXTURE_IMAGE_FORMAT 0x8291 +#define GL_GET_TEXTURE_IMAGE_TYPE 0x8292 +#define GL_MIPMAP 0x8293 +#define GL_MANUAL_GENERATE_MIPMAP 0x8294 +#define GL_AUTO_GENERATE_MIPMAP 0x8295 +#define GL_COLOR_ENCODING 0x8296 +#define GL_SRGB_READ 0x8297 +#define GL_SRGB_WRITE 0x8298 +#define GL_SRGB_DECODE_ARB 0x8299 +#define GL_FILTER 0x829A +#define GL_VERTEX_TEXTURE 0x829B +#define GL_TESS_CONTROL_TEXTURE 0x829C +#define GL_TESS_EVALUATION_TEXTURE 0x829D +#define GL_GEOMETRY_TEXTURE 0x829E +#define GL_FRAGMENT_TEXTURE 0x829F +#define GL_COMPUTE_TEXTURE 0x82A0 +#define GL_TEXTURE_SHADOW 0x82A1 +#define GL_TEXTURE_GATHER 0x82A2 +#define GL_TEXTURE_GATHER_SHADOW 0x82A3 +#define GL_SHADER_IMAGE_LOAD 0x82A4 +#define GL_SHADER_IMAGE_STORE 0x82A5 +#define GL_SHADER_IMAGE_ATOMIC 0x82A6 +#define GL_IMAGE_TEXEL_SIZE 0x82A7 +#define GL_IMAGE_COMPATIBILITY_CLASS 0x82A8 +#define GL_IMAGE_PIXEL_FORMAT 0x82A9 +#define GL_IMAGE_PIXEL_TYPE 0x82AA +#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC +#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD +#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE +#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF +#define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1 +#define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2 +#define GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3 +#define GL_CLEAR_BUFFER 0x82B4 +#define GL_TEXTURE_VIEW 0x82B5 +#define GL_VIEW_COMPATIBILITY_CLASS 0x82B6 +#define GL_FULL_SUPPORT 0x82B7 +#define GL_CAVEAT_SUPPORT 0x82B8 +#define GL_IMAGE_CLASS_4_X_32 0x82B9 +#define GL_IMAGE_CLASS_2_X_32 0x82BA +#define GL_IMAGE_CLASS_1_X_32 0x82BB +#define GL_IMAGE_CLASS_4_X_16 0x82BC +#define GL_IMAGE_CLASS_2_X_16 0x82BD +#define GL_IMAGE_CLASS_1_X_16 0x82BE +#define GL_IMAGE_CLASS_4_X_8 0x82BF +#define GL_IMAGE_CLASS_2_X_8 0x82C0 +#define GL_IMAGE_CLASS_1_X_8 0x82C1 +#define GL_IMAGE_CLASS_11_11_10 0x82C2 +#define GL_IMAGE_CLASS_10_10_10_2 0x82C3 +#define GL_VIEW_CLASS_128_BITS 0x82C4 +#define GL_VIEW_CLASS_96_BITS 0x82C5 +#define GL_VIEW_CLASS_64_BITS 0x82C6 +#define GL_VIEW_CLASS_48_BITS 0x82C7 +#define GL_VIEW_CLASS_32_BITS 0x82C8 +#define GL_VIEW_CLASS_24_BITS 0x82C9 +#define GL_VIEW_CLASS_16_BITS 0x82CA +#define GL_VIEW_CLASS_8_BITS 0x82CB +#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_CLASS_RGTC1_RED 0x82D0 +#define GL_VIEW_CLASS_RGTC2_RG 0x82D1 +#define GL_VIEW_CLASS_BPTC_UNORM 0x82D2 +#define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3 + +typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATI64VPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64* params); + +#define glGetInternalformati64v GLEW_GET_FUN(__glewGetInternalformati64v) + +#define GLEW_ARB_internalformat_query2 GLEW_GET_VAR(__GLEW_ARB_internalformat_query2) + +#endif /* GL_ARB_internalformat_query2 */ + +/* ----------------------- GL_ARB_invalidate_subdata ----------------------- */ + +#ifndef GL_ARB_invalidate_subdata +#define GL_ARB_invalidate_subdata 1 + +typedef void (GLAPIENTRY * PFNGLINVALIDATEBUFFERDATAPROC) (GLuint buffer); +typedef void (GLAPIENTRY * PFNGLINVALIDATEBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); +typedef void (GLAPIENTRY * PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum* attachments); +typedef void (GLAPIENTRY * PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLINVALIDATETEXIMAGEPROC) (GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLINVALIDATETEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); + +#define glInvalidateBufferData GLEW_GET_FUN(__glewInvalidateBufferData) +#define glInvalidateBufferSubData GLEW_GET_FUN(__glewInvalidateBufferSubData) +#define glInvalidateFramebuffer GLEW_GET_FUN(__glewInvalidateFramebuffer) +#define glInvalidateSubFramebuffer GLEW_GET_FUN(__glewInvalidateSubFramebuffer) +#define glInvalidateTexImage GLEW_GET_FUN(__glewInvalidateTexImage) +#define glInvalidateTexSubImage GLEW_GET_FUN(__glewInvalidateTexSubImage) + +#define GLEW_ARB_invalidate_subdata GLEW_GET_VAR(__GLEW_ARB_invalidate_subdata) + +#endif /* GL_ARB_invalidate_subdata */ + +/* ---------------------- GL_ARB_map_buffer_alignment ---------------------- */ + +#ifndef GL_ARB_map_buffer_alignment +#define GL_ARB_map_buffer_alignment 1 + +#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC + +#define GLEW_ARB_map_buffer_alignment GLEW_GET_VAR(__GLEW_ARB_map_buffer_alignment) + +#endif /* GL_ARB_map_buffer_alignment */ + +/* ------------------------ GL_ARB_map_buffer_range ------------------------ */ + +#ifndef GL_ARB_map_buffer_range +#define GL_ARB_map_buffer_range 1 + +#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 + +typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); +typedef void * (GLAPIENTRY * PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); + +#define glFlushMappedBufferRange GLEW_GET_FUN(__glewFlushMappedBufferRange) +#define glMapBufferRange GLEW_GET_FUN(__glewMapBufferRange) + +#define GLEW_ARB_map_buffer_range GLEW_GET_VAR(__GLEW_ARB_map_buffer_range) + +#endif /* GL_ARB_map_buffer_range */ + +/* ------------------------- GL_ARB_matrix_palette ------------------------- */ + +#ifndef GL_ARB_matrix_palette +#define GL_ARB_matrix_palette 1 + +#define GL_MATRIX_PALETTE_ARB 0x8840 +#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 +#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 +#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 +#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 +#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 +#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 +#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 +#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 +#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 + +typedef void (GLAPIENTRY * PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); +typedef void (GLAPIENTRY * PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, void *pointer); +typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUBVARBPROC) (GLint size, GLubyte *indices); +typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUIVARBPROC) (GLint size, GLuint *indices); +typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUSVARBPROC) (GLint size, GLushort *indices); + +#define glCurrentPaletteMatrixARB GLEW_GET_FUN(__glewCurrentPaletteMatrixARB) +#define glMatrixIndexPointerARB GLEW_GET_FUN(__glewMatrixIndexPointerARB) +#define glMatrixIndexubvARB GLEW_GET_FUN(__glewMatrixIndexubvARB) +#define glMatrixIndexuivARB GLEW_GET_FUN(__glewMatrixIndexuivARB) +#define glMatrixIndexusvARB GLEW_GET_FUN(__glewMatrixIndexusvARB) + +#define GLEW_ARB_matrix_palette GLEW_GET_VAR(__GLEW_ARB_matrix_palette) + +#endif /* GL_ARB_matrix_palette */ + +/* --------------------------- GL_ARB_multi_bind --------------------------- */ + +#ifndef GL_ARB_multi_bind +#define GL_ARB_multi_bind 1 + +typedef void (GLAPIENTRY * PFNGLBINDBUFFERSBASEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint* buffers); +typedef void (GLAPIENTRY * PFNGLBINDBUFFERSRANGEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint* buffers, const GLintptr *offsets, const GLsizeiptr *sizes); +typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTURESPROC) (GLuint first, GLsizei count, const GLuint* textures); +typedef void (GLAPIENTRY * PFNGLBINDSAMPLERSPROC) (GLuint first, GLsizei count, const GLuint* samplers); +typedef void (GLAPIENTRY * PFNGLBINDTEXTURESPROC) (GLuint first, GLsizei count, const GLuint* textures); +typedef void (GLAPIENTRY * PFNGLBINDVERTEXBUFFERSPROC) (GLuint first, GLsizei count, const GLuint* buffers, const GLintptr *offsets, const GLsizei *strides); + +#define glBindBuffersBase GLEW_GET_FUN(__glewBindBuffersBase) +#define glBindBuffersRange GLEW_GET_FUN(__glewBindBuffersRange) +#define glBindImageTextures GLEW_GET_FUN(__glewBindImageTextures) +#define glBindSamplers GLEW_GET_FUN(__glewBindSamplers) +#define glBindTextures GLEW_GET_FUN(__glewBindTextures) +#define glBindVertexBuffers GLEW_GET_FUN(__glewBindVertexBuffers) + +#define GLEW_ARB_multi_bind GLEW_GET_VAR(__GLEW_ARB_multi_bind) + +#endif /* GL_ARB_multi_bind */ + +/* ----------------------- GL_ARB_multi_draw_indirect ---------------------- */ + +#ifndef GL_ARB_multi_draw_indirect +#define GL_ARB_multi_draw_indirect 1 + +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride); + +#define glMultiDrawArraysIndirect GLEW_GET_FUN(__glewMultiDrawArraysIndirect) +#define glMultiDrawElementsIndirect GLEW_GET_FUN(__glewMultiDrawElementsIndirect) + +#define GLEW_ARB_multi_draw_indirect GLEW_GET_VAR(__GLEW_ARB_multi_draw_indirect) + +#endif /* GL_ARB_multi_draw_indirect */ + +/* --------------------------- GL_ARB_multisample -------------------------- */ + +#ifndef GL_ARB_multisample +#define GL_ARB_multisample 1 + +#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 + +typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert); + +#define glSampleCoverageARB GLEW_GET_FUN(__glewSampleCoverageARB) + +#define GLEW_ARB_multisample GLEW_GET_VAR(__GLEW_ARB_multisample) + +#endif /* GL_ARB_multisample */ + +/* -------------------------- GL_ARB_multitexture -------------------------- */ + +#ifndef GL_ARB_multitexture +#define GL_ARB_multitexture 1 + +#define GL_TEXTURE0_ARB 0x84C0 +#define GL_TEXTURE1_ARB 0x84C1 +#define GL_TEXTURE2_ARB 0x84C2 +#define GL_TEXTURE3_ARB 0x84C3 +#define GL_TEXTURE4_ARB 0x84C4 +#define GL_TEXTURE5_ARB 0x84C5 +#define GL_TEXTURE6_ARB 0x84C6 +#define GL_TEXTURE7_ARB 0x84C7 +#define GL_TEXTURE8_ARB 0x84C8 +#define GL_TEXTURE9_ARB 0x84C9 +#define GL_TEXTURE10_ARB 0x84CA +#define GL_TEXTURE11_ARB 0x84CB +#define GL_TEXTURE12_ARB 0x84CC +#define GL_TEXTURE13_ARB 0x84CD +#define GL_TEXTURE14_ARB 0x84CE +#define GL_TEXTURE15_ARB 0x84CF +#define GL_TEXTURE16_ARB 0x84D0 +#define GL_TEXTURE17_ARB 0x84D1 +#define GL_TEXTURE18_ARB 0x84D2 +#define GL_TEXTURE19_ARB 0x84D3 +#define GL_TEXTURE20_ARB 0x84D4 +#define GL_TEXTURE21_ARB 0x84D5 +#define GL_TEXTURE22_ARB 0x84D6 +#define GL_TEXTURE23_ARB 0x84D7 +#define GL_TEXTURE24_ARB 0x84D8 +#define GL_TEXTURE25_ARB 0x84D9 +#define GL_TEXTURE26_ARB 0x84DA +#define GL_TEXTURE27_ARB 0x84DB +#define GL_TEXTURE28_ARB 0x84DC +#define GL_TEXTURE29_ARB 0x84DD +#define GL_TEXTURE30_ARB 0x84DE +#define GL_TEXTURE31_ARB 0x84DF +#define GL_ACTIVE_TEXTURE_ARB 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 +#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 + +typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); + +#define glActiveTextureARB GLEW_GET_FUN(__glewActiveTextureARB) +#define glClientActiveTextureARB GLEW_GET_FUN(__glewClientActiveTextureARB) +#define glMultiTexCoord1dARB GLEW_GET_FUN(__glewMultiTexCoord1dARB) +#define glMultiTexCoord1dvARB GLEW_GET_FUN(__glewMultiTexCoord1dvARB) +#define glMultiTexCoord1fARB GLEW_GET_FUN(__glewMultiTexCoord1fARB) +#define glMultiTexCoord1fvARB GLEW_GET_FUN(__glewMultiTexCoord1fvARB) +#define glMultiTexCoord1iARB GLEW_GET_FUN(__glewMultiTexCoord1iARB) +#define glMultiTexCoord1ivARB GLEW_GET_FUN(__glewMultiTexCoord1ivARB) +#define glMultiTexCoord1sARB GLEW_GET_FUN(__glewMultiTexCoord1sARB) +#define glMultiTexCoord1svARB GLEW_GET_FUN(__glewMultiTexCoord1svARB) +#define glMultiTexCoord2dARB GLEW_GET_FUN(__glewMultiTexCoord2dARB) +#define glMultiTexCoord2dvARB GLEW_GET_FUN(__glewMultiTexCoord2dvARB) +#define glMultiTexCoord2fARB GLEW_GET_FUN(__glewMultiTexCoord2fARB) +#define glMultiTexCoord2fvARB GLEW_GET_FUN(__glewMultiTexCoord2fvARB) +#define glMultiTexCoord2iARB GLEW_GET_FUN(__glewMultiTexCoord2iARB) +#define glMultiTexCoord2ivARB GLEW_GET_FUN(__glewMultiTexCoord2ivARB) +#define glMultiTexCoord2sARB GLEW_GET_FUN(__glewMultiTexCoord2sARB) +#define glMultiTexCoord2svARB GLEW_GET_FUN(__glewMultiTexCoord2svARB) +#define glMultiTexCoord3dARB GLEW_GET_FUN(__glewMultiTexCoord3dARB) +#define glMultiTexCoord3dvARB GLEW_GET_FUN(__glewMultiTexCoord3dvARB) +#define glMultiTexCoord3fARB GLEW_GET_FUN(__glewMultiTexCoord3fARB) +#define glMultiTexCoord3fvARB GLEW_GET_FUN(__glewMultiTexCoord3fvARB) +#define glMultiTexCoord3iARB GLEW_GET_FUN(__glewMultiTexCoord3iARB) +#define glMultiTexCoord3ivARB GLEW_GET_FUN(__glewMultiTexCoord3ivARB) +#define glMultiTexCoord3sARB GLEW_GET_FUN(__glewMultiTexCoord3sARB) +#define glMultiTexCoord3svARB GLEW_GET_FUN(__glewMultiTexCoord3svARB) +#define glMultiTexCoord4dARB GLEW_GET_FUN(__glewMultiTexCoord4dARB) +#define glMultiTexCoord4dvARB GLEW_GET_FUN(__glewMultiTexCoord4dvARB) +#define glMultiTexCoord4fARB GLEW_GET_FUN(__glewMultiTexCoord4fARB) +#define glMultiTexCoord4fvARB GLEW_GET_FUN(__glewMultiTexCoord4fvARB) +#define glMultiTexCoord4iARB GLEW_GET_FUN(__glewMultiTexCoord4iARB) +#define glMultiTexCoord4ivARB GLEW_GET_FUN(__glewMultiTexCoord4ivARB) +#define glMultiTexCoord4sARB GLEW_GET_FUN(__glewMultiTexCoord4sARB) +#define glMultiTexCoord4svARB GLEW_GET_FUN(__glewMultiTexCoord4svARB) + +#define GLEW_ARB_multitexture GLEW_GET_VAR(__GLEW_ARB_multitexture) + +#endif /* GL_ARB_multitexture */ + +/* ------------------------- GL_ARB_occlusion_query ------------------------ */ + +#ifndef GL_ARB_occlusion_query +#define GL_ARB_occlusion_query 1 + +#define GL_QUERY_COUNTER_BITS_ARB 0x8864 +#define GL_CURRENT_QUERY_ARB 0x8865 +#define GL_QUERY_RESULT_ARB 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 +#define GL_SAMPLES_PASSED_ARB 0x8914 + +typedef void (GLAPIENTRY * PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); +typedef void (GLAPIENTRY * PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint* ids); +typedef void (GLAPIENTRY * PFNGLENDQUERYARBPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint* ids); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISQUERYARBPROC) (GLuint id); + +#define glBeginQueryARB GLEW_GET_FUN(__glewBeginQueryARB) +#define glDeleteQueriesARB GLEW_GET_FUN(__glewDeleteQueriesARB) +#define glEndQueryARB GLEW_GET_FUN(__glewEndQueryARB) +#define glGenQueriesARB GLEW_GET_FUN(__glewGenQueriesARB) +#define glGetQueryObjectivARB GLEW_GET_FUN(__glewGetQueryObjectivARB) +#define glGetQueryObjectuivARB GLEW_GET_FUN(__glewGetQueryObjectuivARB) +#define glGetQueryivARB GLEW_GET_FUN(__glewGetQueryivARB) +#define glIsQueryARB GLEW_GET_FUN(__glewIsQueryARB) + +#define GLEW_ARB_occlusion_query GLEW_GET_VAR(__GLEW_ARB_occlusion_query) + +#endif /* GL_ARB_occlusion_query */ + +/* ------------------------ GL_ARB_occlusion_query2 ------------------------ */ + +#ifndef GL_ARB_occlusion_query2 +#define GL_ARB_occlusion_query2 1 + +#define GL_ANY_SAMPLES_PASSED 0x8C2F + +#define GLEW_ARB_occlusion_query2 GLEW_GET_VAR(__GLEW_ARB_occlusion_query2) + +#endif /* GL_ARB_occlusion_query2 */ + +/* --------------------- GL_ARB_parallel_shader_compile -------------------- */ + +#ifndef GL_ARB_parallel_shader_compile +#define GL_ARB_parallel_shader_compile 1 + +#define GL_MAX_SHADER_COMPILER_THREADS_ARB 0x91B0 +#define GL_COMPLETION_STATUS_ARB 0x91B1 + +typedef void (GLAPIENTRY * PFNGLMAXSHADERCOMPILERTHREADSARBPROC) (GLuint count); + +#define glMaxShaderCompilerThreadsARB GLEW_GET_FUN(__glewMaxShaderCompilerThreadsARB) + +#define GLEW_ARB_parallel_shader_compile GLEW_GET_VAR(__GLEW_ARB_parallel_shader_compile) + +#endif /* GL_ARB_parallel_shader_compile */ + +/* -------------------- GL_ARB_pipeline_statistics_query ------------------- */ + +#ifndef GL_ARB_pipeline_statistics_query +#define GL_ARB_pipeline_statistics_query 1 + +#define GL_VERTICES_SUBMITTED_ARB 0x82EE +#define GL_PRIMITIVES_SUBMITTED_ARB 0x82EF +#define GL_VERTEX_SHADER_INVOCATIONS_ARB 0x82F0 +#define GL_TESS_CONTROL_SHADER_PATCHES_ARB 0x82F1 +#define GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB 0x82F2 +#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB 0x82F3 +#define GL_FRAGMENT_SHADER_INVOCATIONS_ARB 0x82F4 +#define GL_COMPUTE_SHADER_INVOCATIONS_ARB 0x82F5 +#define GL_CLIPPING_INPUT_PRIMITIVES_ARB 0x82F6 +#define GL_CLIPPING_OUTPUT_PRIMITIVES_ARB 0x82F7 +#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F + +#define GLEW_ARB_pipeline_statistics_query GLEW_GET_VAR(__GLEW_ARB_pipeline_statistics_query) + +#endif /* GL_ARB_pipeline_statistics_query */ + +/* ----------------------- GL_ARB_pixel_buffer_object ---------------------- */ + +#ifndef GL_ARB_pixel_buffer_object +#define GL_ARB_pixel_buffer_object 1 + +#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF + +#define GLEW_ARB_pixel_buffer_object GLEW_GET_VAR(__GLEW_ARB_pixel_buffer_object) + +#endif /* GL_ARB_pixel_buffer_object */ + +/* ------------------------ GL_ARB_point_parameters ------------------------ */ + +#ifndef GL_ARB_point_parameters +#define GL_ARB_point_parameters 1 + +#define GL_POINT_SIZE_MIN_ARB 0x8126 +#define GL_POINT_SIZE_MAX_ARB 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 + +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat* params); + +#define glPointParameterfARB GLEW_GET_FUN(__glewPointParameterfARB) +#define glPointParameterfvARB GLEW_GET_FUN(__glewPointParameterfvARB) + +#define GLEW_ARB_point_parameters GLEW_GET_VAR(__GLEW_ARB_point_parameters) + +#endif /* GL_ARB_point_parameters */ + +/* -------------------------- GL_ARB_point_sprite -------------------------- */ + +#ifndef GL_ARB_point_sprite +#define GL_ARB_point_sprite 1 + +#define GL_POINT_SPRITE_ARB 0x8861 +#define GL_COORD_REPLACE_ARB 0x8862 + +#define GLEW_ARB_point_sprite GLEW_GET_VAR(__GLEW_ARB_point_sprite) + +#endif /* GL_ARB_point_sprite */ + +/* ---------------------- GL_ARB_polygon_offset_clamp ---------------------- */ + +#ifndef GL_ARB_polygon_offset_clamp +#define GL_ARB_polygon_offset_clamp 1 + +#define GL_POLYGON_OFFSET_CLAMP 0x8E1B + +typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETCLAMPPROC) (GLfloat factor, GLfloat units, GLfloat clamp); + +#define glPolygonOffsetClamp GLEW_GET_FUN(__glewPolygonOffsetClamp) + +#define GLEW_ARB_polygon_offset_clamp GLEW_GET_VAR(__GLEW_ARB_polygon_offset_clamp) + +#endif /* GL_ARB_polygon_offset_clamp */ + +/* ----------------------- GL_ARB_post_depth_coverage ---------------------- */ + +#ifndef GL_ARB_post_depth_coverage +#define GL_ARB_post_depth_coverage 1 + +#define GLEW_ARB_post_depth_coverage GLEW_GET_VAR(__GLEW_ARB_post_depth_coverage) + +#endif /* GL_ARB_post_depth_coverage */ + +/* --------------------- GL_ARB_program_interface_query -------------------- */ + +#ifndef GL_ARB_program_interface_query +#define GL_ARB_program_interface_query 1 + +#define GL_UNIFORM 0x92E1 +#define GL_UNIFORM_BLOCK 0x92E2 +#define GL_PROGRAM_INPUT 0x92E3 +#define GL_PROGRAM_OUTPUT 0x92E4 +#define GL_BUFFER_VARIABLE 0x92E5 +#define GL_SHADER_STORAGE_BLOCK 0x92E6 +#define GL_IS_PER_PATCH 0x92E7 +#define GL_VERTEX_SUBROUTINE 0x92E8 +#define GL_TESS_CONTROL_SUBROUTINE 0x92E9 +#define GL_TESS_EVALUATION_SUBROUTINE 0x92EA +#define GL_GEOMETRY_SUBROUTINE 0x92EB +#define GL_FRAGMENT_SUBROUTINE 0x92EC +#define GL_COMPUTE_SUBROUTINE 0x92ED +#define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE +#define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF +#define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0 +#define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1 +#define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2 +#define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3 +#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 +#define GL_ACTIVE_RESOURCES 0x92F5 +#define GL_MAX_NAME_LENGTH 0x92F6 +#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 +#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8 +#define GL_NAME_LENGTH 0x92F9 +#define GL_TYPE 0x92FA +#define GL_ARRAY_SIZE 0x92FB +#define GL_OFFSET 0x92FC +#define GL_BLOCK_INDEX 0x92FD +#define GL_ARRAY_STRIDE 0x92FE +#define GL_MATRIX_STRIDE 0x92FF +#define GL_IS_ROW_MAJOR 0x9300 +#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 +#define GL_BUFFER_BINDING 0x9302 +#define GL_BUFFER_DATA_SIZE 0x9303 +#define GL_NUM_ACTIVE_VARIABLES 0x9304 +#define GL_ACTIVE_VARIABLES 0x9305 +#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308 +#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309 +#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A +#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B +#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C +#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D +#define GL_LOCATION 0x930E +#define GL_LOCATION_INDEX 0x930F + +typedef void (GLAPIENTRY * PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint* params); +typedef GLuint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar* name); +typedef GLint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar* name); +typedef GLint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC) (GLuint program, GLenum programInterface, const GLchar* name); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, GLchar *name); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei *length, GLint *params); + +#define glGetProgramInterfaceiv GLEW_GET_FUN(__glewGetProgramInterfaceiv) +#define glGetProgramResourceIndex GLEW_GET_FUN(__glewGetProgramResourceIndex) +#define glGetProgramResourceLocation GLEW_GET_FUN(__glewGetProgramResourceLocation) +#define glGetProgramResourceLocationIndex GLEW_GET_FUN(__glewGetProgramResourceLocationIndex) +#define glGetProgramResourceName GLEW_GET_FUN(__glewGetProgramResourceName) +#define glGetProgramResourceiv GLEW_GET_FUN(__glewGetProgramResourceiv) + +#define GLEW_ARB_program_interface_query GLEW_GET_VAR(__GLEW_ARB_program_interface_query) + +#endif /* GL_ARB_program_interface_query */ + +/* ------------------------ GL_ARB_provoking_vertex ------------------------ */ + +#ifndef GL_ARB_provoking_vertex +#define GL_ARB_provoking_vertex 1 + +#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 + +typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXPROC) (GLenum mode); + +#define glProvokingVertex GLEW_GET_FUN(__glewProvokingVertex) + +#define GLEW_ARB_provoking_vertex GLEW_GET_VAR(__GLEW_ARB_provoking_vertex) + +#endif /* GL_ARB_provoking_vertex */ + +/* ----------------------- GL_ARB_query_buffer_object ---------------------- */ + +#ifndef GL_ARB_query_buffer_object +#define GL_ARB_query_buffer_object 1 + +#define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000 +#define GL_QUERY_BUFFER 0x9192 +#define GL_QUERY_BUFFER_BINDING 0x9193 +#define GL_QUERY_RESULT_NO_WAIT 0x9194 + +#define GLEW_ARB_query_buffer_object GLEW_GET_VAR(__GLEW_ARB_query_buffer_object) + +#endif /* GL_ARB_query_buffer_object */ + +/* ------------------ GL_ARB_robust_buffer_access_behavior ----------------- */ + +#ifndef GL_ARB_robust_buffer_access_behavior +#define GL_ARB_robust_buffer_access_behavior 1 + +#define GLEW_ARB_robust_buffer_access_behavior GLEW_GET_VAR(__GLEW_ARB_robust_buffer_access_behavior) + +#endif /* GL_ARB_robust_buffer_access_behavior */ + +/* --------------------------- GL_ARB_robustness --------------------------- */ + +#ifndef GL_ARB_robustness +#define GL_ARB_robustness 1 + +#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004 +#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 +#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253 +#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254 +#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255 +#define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 +#define GL_NO_RESET_NOTIFICATION_ARB 0x8261 + +typedef GLenum (GLAPIENTRY * PFNGLGETGRAPHICSRESETSTATUSARBPROC) (void); +typedef void (GLAPIENTRY * PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* table); +typedef void (GLAPIENTRY * PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, void* img); +typedef void (GLAPIENTRY * PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* image); +typedef void (GLAPIENTRY * PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values); +typedef void (GLAPIENTRY * PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble* v); +typedef void (GLAPIENTRY * PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat* v); +typedef void (GLAPIENTRY * PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint* v); +typedef void (GLAPIENTRY * PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values); +typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat* values); +typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint* values); +typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort* values); +typedef void (GLAPIENTRY * PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte* pattern); +typedef void (GLAPIENTRY * PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void* row, GLsizei columnBufSize, void*column, void*span); +typedef void (GLAPIENTRY * PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* img); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint* params); +typedef void (GLAPIENTRY * PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void* data); + +#define glGetGraphicsResetStatusARB GLEW_GET_FUN(__glewGetGraphicsResetStatusARB) +#define glGetnColorTableARB GLEW_GET_FUN(__glewGetnColorTableARB) +#define glGetnCompressedTexImageARB GLEW_GET_FUN(__glewGetnCompressedTexImageARB) +#define glGetnConvolutionFilterARB GLEW_GET_FUN(__glewGetnConvolutionFilterARB) +#define glGetnHistogramARB GLEW_GET_FUN(__glewGetnHistogramARB) +#define glGetnMapdvARB GLEW_GET_FUN(__glewGetnMapdvARB) +#define glGetnMapfvARB GLEW_GET_FUN(__glewGetnMapfvARB) +#define glGetnMapivARB GLEW_GET_FUN(__glewGetnMapivARB) +#define glGetnMinmaxARB GLEW_GET_FUN(__glewGetnMinmaxARB) +#define glGetnPixelMapfvARB GLEW_GET_FUN(__glewGetnPixelMapfvARB) +#define glGetnPixelMapuivARB GLEW_GET_FUN(__glewGetnPixelMapuivARB) +#define glGetnPixelMapusvARB GLEW_GET_FUN(__glewGetnPixelMapusvARB) +#define glGetnPolygonStippleARB GLEW_GET_FUN(__glewGetnPolygonStippleARB) +#define glGetnSeparableFilterARB GLEW_GET_FUN(__glewGetnSeparableFilterARB) +#define glGetnTexImageARB GLEW_GET_FUN(__glewGetnTexImageARB) +#define glGetnUniformdvARB GLEW_GET_FUN(__glewGetnUniformdvARB) +#define glGetnUniformfvARB GLEW_GET_FUN(__glewGetnUniformfvARB) +#define glGetnUniformivARB GLEW_GET_FUN(__glewGetnUniformivARB) +#define glGetnUniformuivARB GLEW_GET_FUN(__glewGetnUniformuivARB) +#define glReadnPixelsARB GLEW_GET_FUN(__glewReadnPixelsARB) + +#define GLEW_ARB_robustness GLEW_GET_VAR(__GLEW_ARB_robustness) + +#endif /* GL_ARB_robustness */ + +/* ---------------- GL_ARB_robustness_application_isolation ---------------- */ + +#ifndef GL_ARB_robustness_application_isolation +#define GL_ARB_robustness_application_isolation 1 + +#define GLEW_ARB_robustness_application_isolation GLEW_GET_VAR(__GLEW_ARB_robustness_application_isolation) + +#endif /* GL_ARB_robustness_application_isolation */ + +/* ---------------- GL_ARB_robustness_share_group_isolation ---------------- */ + +#ifndef GL_ARB_robustness_share_group_isolation +#define GL_ARB_robustness_share_group_isolation 1 + +#define GLEW_ARB_robustness_share_group_isolation GLEW_GET_VAR(__GLEW_ARB_robustness_share_group_isolation) + +#endif /* GL_ARB_robustness_share_group_isolation */ + +/* ------------------------ GL_ARB_sample_locations ------------------------ */ + +#ifndef GL_ARB_sample_locations +#define GL_ARB_sample_locations 1 + +#define GL_SAMPLE_LOCATION_ARB 0x8E50 +#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_PROGRAMMABLE_SAMPLE_LOCATION_ARB 0x9341 +#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB 0x9342 +#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB 0x9343 + +typedef void (GLAPIENTRY * PFNGLEVALUATEDEPTHVALUESARBPROC) (void); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v); + +#define glEvaluateDepthValuesARB GLEW_GET_FUN(__glewEvaluateDepthValuesARB) +#define glFramebufferSampleLocationsfvARB GLEW_GET_FUN(__glewFramebufferSampleLocationsfvARB) +#define glNamedFramebufferSampleLocationsfvARB GLEW_GET_FUN(__glewNamedFramebufferSampleLocationsfvARB) + +#define GLEW_ARB_sample_locations GLEW_GET_VAR(__GLEW_ARB_sample_locations) + +#endif /* GL_ARB_sample_locations */ + +/* ------------------------- GL_ARB_sample_shading ------------------------- */ + +#ifndef GL_ARB_sample_shading +#define GL_ARB_sample_shading 1 + +#define GL_SAMPLE_SHADING_ARB 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 + +typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGARBPROC) (GLclampf value); + +#define glMinSampleShadingARB GLEW_GET_FUN(__glewMinSampleShadingARB) + +#define GLEW_ARB_sample_shading GLEW_GET_VAR(__GLEW_ARB_sample_shading) + +#endif /* GL_ARB_sample_shading */ + +/* ------------------------- GL_ARB_sampler_objects ------------------------ */ + +#ifndef GL_ARB_sampler_objects +#define GL_ARB_sampler_objects 1 + +#define GL_SAMPLER_BINDING 0x8919 + +typedef void (GLAPIENTRY * PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); +typedef void (GLAPIENTRY * PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint * samplers); +typedef void (GLAPIENTRY * PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint* samplers); +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISSAMPLERPROC) (GLuint sampler); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint* params); + +#define glBindSampler GLEW_GET_FUN(__glewBindSampler) +#define glDeleteSamplers GLEW_GET_FUN(__glewDeleteSamplers) +#define glGenSamplers GLEW_GET_FUN(__glewGenSamplers) +#define glGetSamplerParameterIiv GLEW_GET_FUN(__glewGetSamplerParameterIiv) +#define glGetSamplerParameterIuiv GLEW_GET_FUN(__glewGetSamplerParameterIuiv) +#define glGetSamplerParameterfv GLEW_GET_FUN(__glewGetSamplerParameterfv) +#define glGetSamplerParameteriv GLEW_GET_FUN(__glewGetSamplerParameteriv) +#define glIsSampler GLEW_GET_FUN(__glewIsSampler) +#define glSamplerParameterIiv GLEW_GET_FUN(__glewSamplerParameterIiv) +#define glSamplerParameterIuiv GLEW_GET_FUN(__glewSamplerParameterIuiv) +#define glSamplerParameterf GLEW_GET_FUN(__glewSamplerParameterf) +#define glSamplerParameterfv GLEW_GET_FUN(__glewSamplerParameterfv) +#define glSamplerParameteri GLEW_GET_FUN(__glewSamplerParameteri) +#define glSamplerParameteriv GLEW_GET_FUN(__glewSamplerParameteriv) + +#define GLEW_ARB_sampler_objects GLEW_GET_VAR(__GLEW_ARB_sampler_objects) + +#endif /* GL_ARB_sampler_objects */ + +/* ------------------------ GL_ARB_seamless_cube_map ----------------------- */ + +#ifndef GL_ARB_seamless_cube_map +#define GL_ARB_seamless_cube_map 1 + +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F + +#define GLEW_ARB_seamless_cube_map GLEW_GET_VAR(__GLEW_ARB_seamless_cube_map) + +#endif /* GL_ARB_seamless_cube_map */ + +/* ------------------ GL_ARB_seamless_cubemap_per_texture ------------------ */ + +#ifndef GL_ARB_seamless_cubemap_per_texture +#define GL_ARB_seamless_cubemap_per_texture 1 + +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F + +#define GLEW_ARB_seamless_cubemap_per_texture GLEW_GET_VAR(__GLEW_ARB_seamless_cubemap_per_texture) + +#endif /* GL_ARB_seamless_cubemap_per_texture */ + +/* --------------------- GL_ARB_separate_shader_objects -------------------- */ + +#ifndef GL_ARB_separate_shader_objects +#define GL_ARB_separate_shader_objects 1 + +#define GL_VERTEX_SHADER_BIT 0x00000001 +#define GL_FRAGMENT_SHADER_BIT 0x00000002 +#define GL_GEOMETRY_SHADER_BIT 0x00000004 +#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 +#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 +#define GL_PROGRAM_SEPARABLE 0x8258 +#define GL_ACTIVE_PROGRAM 0x8259 +#define GL_PROGRAM_PIPELINE_BINDING 0x825A +#define GL_ALL_SHADER_BITS 0xFFFFFFFF + +typedef void (GLAPIENTRY * PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); +typedef void (GLAPIENTRY * PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar * const * strings); +typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint* pipelines); +typedef void (GLAPIENTRY * PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint* pipelines); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar *infoLog); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint x, GLint y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint x, GLuint y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); +typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); + +#define glActiveShaderProgram GLEW_GET_FUN(__glewActiveShaderProgram) +#define glBindProgramPipeline GLEW_GET_FUN(__glewBindProgramPipeline) +#define glCreateShaderProgramv GLEW_GET_FUN(__glewCreateShaderProgramv) +#define glDeleteProgramPipelines GLEW_GET_FUN(__glewDeleteProgramPipelines) +#define glGenProgramPipelines GLEW_GET_FUN(__glewGenProgramPipelines) +#define glGetProgramPipelineInfoLog GLEW_GET_FUN(__glewGetProgramPipelineInfoLog) +#define glGetProgramPipelineiv GLEW_GET_FUN(__glewGetProgramPipelineiv) +#define glIsProgramPipeline GLEW_GET_FUN(__glewIsProgramPipeline) +#define glProgramUniform1d GLEW_GET_FUN(__glewProgramUniform1d) +#define glProgramUniform1dv GLEW_GET_FUN(__glewProgramUniform1dv) +#define glProgramUniform1f GLEW_GET_FUN(__glewProgramUniform1f) +#define glProgramUniform1fv GLEW_GET_FUN(__glewProgramUniform1fv) +#define glProgramUniform1i GLEW_GET_FUN(__glewProgramUniform1i) +#define glProgramUniform1iv GLEW_GET_FUN(__glewProgramUniform1iv) +#define glProgramUniform1ui GLEW_GET_FUN(__glewProgramUniform1ui) +#define glProgramUniform1uiv GLEW_GET_FUN(__glewProgramUniform1uiv) +#define glProgramUniform2d GLEW_GET_FUN(__glewProgramUniform2d) +#define glProgramUniform2dv GLEW_GET_FUN(__glewProgramUniform2dv) +#define glProgramUniform2f GLEW_GET_FUN(__glewProgramUniform2f) +#define glProgramUniform2fv GLEW_GET_FUN(__glewProgramUniform2fv) +#define glProgramUniform2i GLEW_GET_FUN(__glewProgramUniform2i) +#define glProgramUniform2iv GLEW_GET_FUN(__glewProgramUniform2iv) +#define glProgramUniform2ui GLEW_GET_FUN(__glewProgramUniform2ui) +#define glProgramUniform2uiv GLEW_GET_FUN(__glewProgramUniform2uiv) +#define glProgramUniform3d GLEW_GET_FUN(__glewProgramUniform3d) +#define glProgramUniform3dv GLEW_GET_FUN(__glewProgramUniform3dv) +#define glProgramUniform3f GLEW_GET_FUN(__glewProgramUniform3f) +#define glProgramUniform3fv GLEW_GET_FUN(__glewProgramUniform3fv) +#define glProgramUniform3i GLEW_GET_FUN(__glewProgramUniform3i) +#define glProgramUniform3iv GLEW_GET_FUN(__glewProgramUniform3iv) +#define glProgramUniform3ui GLEW_GET_FUN(__glewProgramUniform3ui) +#define glProgramUniform3uiv GLEW_GET_FUN(__glewProgramUniform3uiv) +#define glProgramUniform4d GLEW_GET_FUN(__glewProgramUniform4d) +#define glProgramUniform4dv GLEW_GET_FUN(__glewProgramUniform4dv) +#define glProgramUniform4f GLEW_GET_FUN(__glewProgramUniform4f) +#define glProgramUniform4fv GLEW_GET_FUN(__glewProgramUniform4fv) +#define glProgramUniform4i GLEW_GET_FUN(__glewProgramUniform4i) +#define glProgramUniform4iv GLEW_GET_FUN(__glewProgramUniform4iv) +#define glProgramUniform4ui GLEW_GET_FUN(__glewProgramUniform4ui) +#define glProgramUniform4uiv GLEW_GET_FUN(__glewProgramUniform4uiv) +#define glProgramUniformMatrix2dv GLEW_GET_FUN(__glewProgramUniformMatrix2dv) +#define glProgramUniformMatrix2fv GLEW_GET_FUN(__glewProgramUniformMatrix2fv) +#define glProgramUniformMatrix2x3dv GLEW_GET_FUN(__glewProgramUniformMatrix2x3dv) +#define glProgramUniformMatrix2x3fv GLEW_GET_FUN(__glewProgramUniformMatrix2x3fv) +#define glProgramUniformMatrix2x4dv GLEW_GET_FUN(__glewProgramUniformMatrix2x4dv) +#define glProgramUniformMatrix2x4fv GLEW_GET_FUN(__glewProgramUniformMatrix2x4fv) +#define glProgramUniformMatrix3dv GLEW_GET_FUN(__glewProgramUniformMatrix3dv) +#define glProgramUniformMatrix3fv GLEW_GET_FUN(__glewProgramUniformMatrix3fv) +#define glProgramUniformMatrix3x2dv GLEW_GET_FUN(__glewProgramUniformMatrix3x2dv) +#define glProgramUniformMatrix3x2fv GLEW_GET_FUN(__glewProgramUniformMatrix3x2fv) +#define glProgramUniformMatrix3x4dv GLEW_GET_FUN(__glewProgramUniformMatrix3x4dv) +#define glProgramUniformMatrix3x4fv GLEW_GET_FUN(__glewProgramUniformMatrix3x4fv) +#define glProgramUniformMatrix4dv GLEW_GET_FUN(__glewProgramUniformMatrix4dv) +#define glProgramUniformMatrix4fv GLEW_GET_FUN(__glewProgramUniformMatrix4fv) +#define glProgramUniformMatrix4x2dv GLEW_GET_FUN(__glewProgramUniformMatrix4x2dv) +#define glProgramUniformMatrix4x2fv GLEW_GET_FUN(__glewProgramUniformMatrix4x2fv) +#define glProgramUniformMatrix4x3dv GLEW_GET_FUN(__glewProgramUniformMatrix4x3dv) +#define glProgramUniformMatrix4x3fv GLEW_GET_FUN(__glewProgramUniformMatrix4x3fv) +#define glUseProgramStages GLEW_GET_FUN(__glewUseProgramStages) +#define glValidateProgramPipeline GLEW_GET_FUN(__glewValidateProgramPipeline) + +#define GLEW_ARB_separate_shader_objects GLEW_GET_VAR(__GLEW_ARB_separate_shader_objects) + +#endif /* GL_ARB_separate_shader_objects */ + +/* -------------------- GL_ARB_shader_atomic_counter_ops ------------------- */ + +#ifndef GL_ARB_shader_atomic_counter_ops +#define GL_ARB_shader_atomic_counter_ops 1 + +#define GLEW_ARB_shader_atomic_counter_ops GLEW_GET_VAR(__GLEW_ARB_shader_atomic_counter_ops) + +#endif /* GL_ARB_shader_atomic_counter_ops */ + +/* --------------------- GL_ARB_shader_atomic_counters --------------------- */ + +#ifndef GL_ARB_shader_atomic_counters +#define GL_ARB_shader_atomic_counters 1 + +#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 +#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 +#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 +#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 +#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4 +#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5 +#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6 +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7 +#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_GEOMETRY_SHADER 0x92CA +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB +#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF +#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 +#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 +#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 +#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 +#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 +#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 +#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 +#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA +#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB +#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC + +typedef void (GLAPIENTRY * PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) (GLuint program, GLuint bufferIndex, GLenum pname, GLint* params); + +#define glGetActiveAtomicCounterBufferiv GLEW_GET_FUN(__glewGetActiveAtomicCounterBufferiv) + +#define GLEW_ARB_shader_atomic_counters GLEW_GET_VAR(__GLEW_ARB_shader_atomic_counters) + +#endif /* GL_ARB_shader_atomic_counters */ + +/* -------------------------- GL_ARB_shader_ballot ------------------------- */ + +#ifndef GL_ARB_shader_ballot +#define GL_ARB_shader_ballot 1 + +#define GLEW_ARB_shader_ballot GLEW_GET_VAR(__GLEW_ARB_shader_ballot) + +#endif /* GL_ARB_shader_ballot */ + +/* ----------------------- GL_ARB_shader_bit_encoding ---------------------- */ + +#ifndef GL_ARB_shader_bit_encoding +#define GL_ARB_shader_bit_encoding 1 + +#define GLEW_ARB_shader_bit_encoding GLEW_GET_VAR(__GLEW_ARB_shader_bit_encoding) + +#endif /* GL_ARB_shader_bit_encoding */ + +/* -------------------------- GL_ARB_shader_clock -------------------------- */ + +#ifndef GL_ARB_shader_clock +#define GL_ARB_shader_clock 1 + +#define GLEW_ARB_shader_clock GLEW_GET_VAR(__GLEW_ARB_shader_clock) + +#endif /* GL_ARB_shader_clock */ + +/* --------------------- GL_ARB_shader_draw_parameters --------------------- */ + +#ifndef GL_ARB_shader_draw_parameters +#define GL_ARB_shader_draw_parameters 1 + +#define GLEW_ARB_shader_draw_parameters GLEW_GET_VAR(__GLEW_ARB_shader_draw_parameters) + +#endif /* GL_ARB_shader_draw_parameters */ + +/* ------------------------ GL_ARB_shader_group_vote ----------------------- */ + +#ifndef GL_ARB_shader_group_vote +#define GL_ARB_shader_group_vote 1 + +#define GLEW_ARB_shader_group_vote GLEW_GET_VAR(__GLEW_ARB_shader_group_vote) + +#endif /* GL_ARB_shader_group_vote */ + +/* --------------------- GL_ARB_shader_image_load_store -------------------- */ + +#ifndef GL_ARB_shader_image_load_store +#define GL_ARB_shader_image_load_store 1 + +#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 +#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 +#define GL_UNIFORM_BARRIER_BIT 0x00000004 +#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 +#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 +#define GL_COMMAND_BARRIER_BIT 0x00000040 +#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 +#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 +#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 +#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 +#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 +#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 +#define GL_MAX_IMAGE_UNITS 0x8F38 +#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39 +#define GL_IMAGE_BINDING_NAME 0x8F3A +#define GL_IMAGE_BINDING_LEVEL 0x8F3B +#define GL_IMAGE_BINDING_LAYERED 0x8F3C +#define GL_IMAGE_BINDING_LAYER 0x8F3D +#define GL_IMAGE_BINDING_ACCESS 0x8F3E +#define GL_IMAGE_1D 0x904C +#define GL_IMAGE_2D 0x904D +#define GL_IMAGE_3D 0x904E +#define GL_IMAGE_2D_RECT 0x904F +#define GL_IMAGE_CUBE 0x9050 +#define GL_IMAGE_BUFFER 0x9051 +#define GL_IMAGE_1D_ARRAY 0x9052 +#define GL_IMAGE_2D_ARRAY 0x9053 +#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 +#define GL_IMAGE_2D_MULTISAMPLE 0x9055 +#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056 +#define GL_INT_IMAGE_1D 0x9057 +#define GL_INT_IMAGE_2D 0x9058 +#define GL_INT_IMAGE_3D 0x9059 +#define GL_INT_IMAGE_2D_RECT 0x905A +#define GL_INT_IMAGE_CUBE 0x905B +#define GL_INT_IMAGE_BUFFER 0x905C +#define GL_INT_IMAGE_1D_ARRAY 0x905D +#define GL_INT_IMAGE_2D_ARRAY 0x905E +#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F +#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060 +#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061 +#define GL_UNSIGNED_INT_IMAGE_1D 0x9062 +#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 +#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 +#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065 +#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 +#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 +#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068 +#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C +#define GL_MAX_IMAGE_SAMPLES 0x906D +#define GL_IMAGE_BINDING_FORMAT 0x906E +#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 +#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 +#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 +#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD +#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE +#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF +#define GL_ALL_BARRIER_BITS 0xFFFFFFFF + +typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); +typedef void (GLAPIENTRY * PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); + +#define glBindImageTexture GLEW_GET_FUN(__glewBindImageTexture) +#define glMemoryBarrier GLEW_GET_FUN(__glewMemoryBarrier) + +#define GLEW_ARB_shader_image_load_store GLEW_GET_VAR(__GLEW_ARB_shader_image_load_store) + +#endif /* GL_ARB_shader_image_load_store */ + +/* ------------------------ GL_ARB_shader_image_size ----------------------- */ + +#ifndef GL_ARB_shader_image_size +#define GL_ARB_shader_image_size 1 + +#define GLEW_ARB_shader_image_size GLEW_GET_VAR(__GLEW_ARB_shader_image_size) + +#endif /* GL_ARB_shader_image_size */ + +/* ------------------------- GL_ARB_shader_objects ------------------------- */ + +#ifndef GL_ARB_shader_objects +#define GL_ARB_shader_objects 1 + +#define GL_PROGRAM_OBJECT_ARB 0x8B40 +#define GL_SHADER_OBJECT_ARB 0x8B48 +#define GL_OBJECT_TYPE_ARB 0x8B4E +#define GL_OBJECT_SUBTYPE_ARB 0x8B4F +#define GL_FLOAT_VEC2_ARB 0x8B50 +#define GL_FLOAT_VEC3_ARB 0x8B51 +#define GL_FLOAT_VEC4_ARB 0x8B52 +#define GL_INT_VEC2_ARB 0x8B53 +#define GL_INT_VEC3_ARB 0x8B54 +#define GL_INT_VEC4_ARB 0x8B55 +#define GL_BOOL_ARB 0x8B56 +#define GL_BOOL_VEC2_ARB 0x8B57 +#define GL_BOOL_VEC3_ARB 0x8B58 +#define GL_BOOL_VEC4_ARB 0x8B59 +#define GL_FLOAT_MAT2_ARB 0x8B5A +#define GL_FLOAT_MAT3_ARB 0x8B5B +#define GL_FLOAT_MAT4_ARB 0x8B5C +#define GL_SAMPLER_1D_ARB 0x8B5D +#define GL_SAMPLER_2D_ARB 0x8B5E +#define GL_SAMPLER_3D_ARB 0x8B5F +#define GL_SAMPLER_CUBE_ARB 0x8B60 +#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 +#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 +#define GL_SAMPLER_2D_RECT_ARB 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 +#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 +#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 +#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 +#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 +#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 +#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 +#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 +#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 +#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 + +typedef char GLcharARB; +typedef unsigned int GLhandleARB; + +typedef void (GLAPIENTRY * PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); +typedef void (GLAPIENTRY * PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); +typedef GLhandleARB (GLAPIENTRY * PFNGLCREATEPROGRAMOBJECTARBPROC) (void); +typedef GLhandleARB (GLAPIENTRY * PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); +typedef void (GLAPIENTRY * PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); +typedef void (GLAPIENTRY * PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); +typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name); +typedef void (GLAPIENTRY * PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei* count, GLhandleARB *obj); +typedef GLhandleARB (GLAPIENTRY * PFNGLGETHANDLEARBPROC) (GLenum pname); +typedef void (GLAPIENTRY * PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *infoLog); +typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *source); +typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB* name); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint* params); +typedef void (GLAPIENTRY * PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); +typedef void (GLAPIENTRY * PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB ** string, const GLint *length); +typedef void (GLAPIENTRY * PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); +typedef void (GLAPIENTRY * PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); +typedef void (GLAPIENTRY * PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); +typedef void (GLAPIENTRY * PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); +typedef void (GLAPIENTRY * PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (GLAPIENTRY * PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (GLAPIENTRY * PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (GLAPIENTRY * PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (GLAPIENTRY * PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); +typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); + +#define glAttachObjectARB GLEW_GET_FUN(__glewAttachObjectARB) +#define glCompileShaderARB GLEW_GET_FUN(__glewCompileShaderARB) +#define glCreateProgramObjectARB GLEW_GET_FUN(__glewCreateProgramObjectARB) +#define glCreateShaderObjectARB GLEW_GET_FUN(__glewCreateShaderObjectARB) +#define glDeleteObjectARB GLEW_GET_FUN(__glewDeleteObjectARB) +#define glDetachObjectARB GLEW_GET_FUN(__glewDetachObjectARB) +#define glGetActiveUniformARB GLEW_GET_FUN(__glewGetActiveUniformARB) +#define glGetAttachedObjectsARB GLEW_GET_FUN(__glewGetAttachedObjectsARB) +#define glGetHandleARB GLEW_GET_FUN(__glewGetHandleARB) +#define glGetInfoLogARB GLEW_GET_FUN(__glewGetInfoLogARB) +#define glGetObjectParameterfvARB GLEW_GET_FUN(__glewGetObjectParameterfvARB) +#define glGetObjectParameterivARB GLEW_GET_FUN(__glewGetObjectParameterivARB) +#define glGetShaderSourceARB GLEW_GET_FUN(__glewGetShaderSourceARB) +#define glGetUniformLocationARB GLEW_GET_FUN(__glewGetUniformLocationARB) +#define glGetUniformfvARB GLEW_GET_FUN(__glewGetUniformfvARB) +#define glGetUniformivARB GLEW_GET_FUN(__glewGetUniformivARB) +#define glLinkProgramARB GLEW_GET_FUN(__glewLinkProgramARB) +#define glShaderSourceARB GLEW_GET_FUN(__glewShaderSourceARB) +#define glUniform1fARB GLEW_GET_FUN(__glewUniform1fARB) +#define glUniform1fvARB GLEW_GET_FUN(__glewUniform1fvARB) +#define glUniform1iARB GLEW_GET_FUN(__glewUniform1iARB) +#define glUniform1ivARB GLEW_GET_FUN(__glewUniform1ivARB) +#define glUniform2fARB GLEW_GET_FUN(__glewUniform2fARB) +#define glUniform2fvARB GLEW_GET_FUN(__glewUniform2fvARB) +#define glUniform2iARB GLEW_GET_FUN(__glewUniform2iARB) +#define glUniform2ivARB GLEW_GET_FUN(__glewUniform2ivARB) +#define glUniform3fARB GLEW_GET_FUN(__glewUniform3fARB) +#define glUniform3fvARB GLEW_GET_FUN(__glewUniform3fvARB) +#define glUniform3iARB GLEW_GET_FUN(__glewUniform3iARB) +#define glUniform3ivARB GLEW_GET_FUN(__glewUniform3ivARB) +#define glUniform4fARB GLEW_GET_FUN(__glewUniform4fARB) +#define glUniform4fvARB GLEW_GET_FUN(__glewUniform4fvARB) +#define glUniform4iARB GLEW_GET_FUN(__glewUniform4iARB) +#define glUniform4ivARB GLEW_GET_FUN(__glewUniform4ivARB) +#define glUniformMatrix2fvARB GLEW_GET_FUN(__glewUniformMatrix2fvARB) +#define glUniformMatrix3fvARB GLEW_GET_FUN(__glewUniformMatrix3fvARB) +#define glUniformMatrix4fvARB GLEW_GET_FUN(__glewUniformMatrix4fvARB) +#define glUseProgramObjectARB GLEW_GET_FUN(__glewUseProgramObjectARB) +#define glValidateProgramARB GLEW_GET_FUN(__glewValidateProgramARB) + +#define GLEW_ARB_shader_objects GLEW_GET_VAR(__GLEW_ARB_shader_objects) + +#endif /* GL_ARB_shader_objects */ + +/* ------------------------ GL_ARB_shader_precision ------------------------ */ + +#ifndef GL_ARB_shader_precision +#define GL_ARB_shader_precision 1 + +#define GLEW_ARB_shader_precision GLEW_GET_VAR(__GLEW_ARB_shader_precision) + +#endif /* GL_ARB_shader_precision */ + +/* ---------------------- GL_ARB_shader_stencil_export --------------------- */ + +#ifndef GL_ARB_shader_stencil_export +#define GL_ARB_shader_stencil_export 1 + +#define GLEW_ARB_shader_stencil_export GLEW_GET_VAR(__GLEW_ARB_shader_stencil_export) + +#endif /* GL_ARB_shader_stencil_export */ + +/* ------------------ GL_ARB_shader_storage_buffer_object ------------------ */ + +#ifndef GL_ARB_shader_storage_buffer_object +#define GL_ARB_shader_storage_buffer_object 1 + +#define GL_SHADER_STORAGE_BARRIER_BIT 0x2000 +#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 +#define GL_SHADER_STORAGE_BUFFER 0x90D2 +#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 +#define GL_SHADER_STORAGE_BUFFER_START 0x90D4 +#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 +#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7 +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9 +#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA +#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB +#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC +#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD +#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE +#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF + +typedef void (GLAPIENTRY * PFNGLSHADERSTORAGEBLOCKBINDINGPROC) (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding); + +#define glShaderStorageBlockBinding GLEW_GET_FUN(__glewShaderStorageBlockBinding) + +#define GLEW_ARB_shader_storage_buffer_object GLEW_GET_VAR(__GLEW_ARB_shader_storage_buffer_object) + +#endif /* GL_ARB_shader_storage_buffer_object */ + +/* ------------------------ GL_ARB_shader_subroutine ----------------------- */ + +#ifndef GL_ARB_shader_subroutine +#define GL_ARB_shader_subroutine 1 + +#define GL_ACTIVE_SUBROUTINES 0x8DE5 +#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 +#define GL_MAX_SUBROUTINES 0x8DE7 +#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 +#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 +#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A +#define GL_COMPATIBLE_SUBROUTINES 0x8E4B + +typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar *name); +typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar *name); +typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint* values); +typedef GLuint (GLAPIENTRY * PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar* name); +typedef GLint (GLAPIENTRY * PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar* name); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint* params); +typedef void (GLAPIENTRY * PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint* indices); + +#define glGetActiveSubroutineName GLEW_GET_FUN(__glewGetActiveSubroutineName) +#define glGetActiveSubroutineUniformName GLEW_GET_FUN(__glewGetActiveSubroutineUniformName) +#define glGetActiveSubroutineUniformiv GLEW_GET_FUN(__glewGetActiveSubroutineUniformiv) +#define glGetProgramStageiv GLEW_GET_FUN(__glewGetProgramStageiv) +#define glGetSubroutineIndex GLEW_GET_FUN(__glewGetSubroutineIndex) +#define glGetSubroutineUniformLocation GLEW_GET_FUN(__glewGetSubroutineUniformLocation) +#define glGetUniformSubroutineuiv GLEW_GET_FUN(__glewGetUniformSubroutineuiv) +#define glUniformSubroutinesuiv GLEW_GET_FUN(__glewUniformSubroutinesuiv) + +#define GLEW_ARB_shader_subroutine GLEW_GET_VAR(__GLEW_ARB_shader_subroutine) + +#endif /* GL_ARB_shader_subroutine */ + +/* ------------------ GL_ARB_shader_texture_image_samples ------------------ */ + +#ifndef GL_ARB_shader_texture_image_samples +#define GL_ARB_shader_texture_image_samples 1 + +#define GLEW_ARB_shader_texture_image_samples GLEW_GET_VAR(__GLEW_ARB_shader_texture_image_samples) + +#endif /* GL_ARB_shader_texture_image_samples */ + +/* ----------------------- GL_ARB_shader_texture_lod ----------------------- */ + +#ifndef GL_ARB_shader_texture_lod +#define GL_ARB_shader_texture_lod 1 + +#define GLEW_ARB_shader_texture_lod GLEW_GET_VAR(__GLEW_ARB_shader_texture_lod) + +#endif /* GL_ARB_shader_texture_lod */ + +/* ------------------- GL_ARB_shader_viewport_layer_array ------------------ */ + +#ifndef GL_ARB_shader_viewport_layer_array +#define GL_ARB_shader_viewport_layer_array 1 + +#define GLEW_ARB_shader_viewport_layer_array GLEW_GET_VAR(__GLEW_ARB_shader_viewport_layer_array) + +#endif /* GL_ARB_shader_viewport_layer_array */ + +/* ---------------------- GL_ARB_shading_language_100 ---------------------- */ + +#ifndef GL_ARB_shading_language_100 +#define GL_ARB_shading_language_100 1 + +#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C + +#define GLEW_ARB_shading_language_100 GLEW_GET_VAR(__GLEW_ARB_shading_language_100) + +#endif /* GL_ARB_shading_language_100 */ + +/* -------------------- GL_ARB_shading_language_420pack -------------------- */ + +#ifndef GL_ARB_shading_language_420pack +#define GL_ARB_shading_language_420pack 1 + +#define GLEW_ARB_shading_language_420pack GLEW_GET_VAR(__GLEW_ARB_shading_language_420pack) + +#endif /* GL_ARB_shading_language_420pack */ + +/* -------------------- GL_ARB_shading_language_include -------------------- */ + +#ifndef GL_ARB_shading_language_include +#define GL_ARB_shading_language_include 1 + +#define GL_SHADER_INCLUDE_ARB 0x8DAE +#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 +#define GL_NAMED_STRING_TYPE_ARB 0x8DEA + +typedef void (GLAPIENTRY * PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar* const *path, const GLint *length); +typedef void (GLAPIENTRY * PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const GLchar* name); +typedef void (GLAPIENTRY * PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const GLchar* name, GLsizei bufSize, GLint *stringlen, GLchar *string); +typedef void (GLAPIENTRY * PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const GLchar* name, GLenum pname, GLint *params); +typedef GLboolean (GLAPIENTRY * PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const GLchar* name); +typedef void (GLAPIENTRY * PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const GLchar* name, GLint stringlen, const GLchar *string); + +#define glCompileShaderIncludeARB GLEW_GET_FUN(__glewCompileShaderIncludeARB) +#define glDeleteNamedStringARB GLEW_GET_FUN(__glewDeleteNamedStringARB) +#define glGetNamedStringARB GLEW_GET_FUN(__glewGetNamedStringARB) +#define glGetNamedStringivARB GLEW_GET_FUN(__glewGetNamedStringivARB) +#define glIsNamedStringARB GLEW_GET_FUN(__glewIsNamedStringARB) +#define glNamedStringARB GLEW_GET_FUN(__glewNamedStringARB) + +#define GLEW_ARB_shading_language_include GLEW_GET_VAR(__GLEW_ARB_shading_language_include) + +#endif /* GL_ARB_shading_language_include */ + +/* -------------------- GL_ARB_shading_language_packing -------------------- */ + +#ifndef GL_ARB_shading_language_packing +#define GL_ARB_shading_language_packing 1 + +#define GLEW_ARB_shading_language_packing GLEW_GET_VAR(__GLEW_ARB_shading_language_packing) + +#endif /* GL_ARB_shading_language_packing */ + +/* ----------------------------- GL_ARB_shadow ----------------------------- */ + +#ifndef GL_ARB_shadow +#define GL_ARB_shadow 1 + +#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C +#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D +#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E + +#define GLEW_ARB_shadow GLEW_GET_VAR(__GLEW_ARB_shadow) + +#endif /* GL_ARB_shadow */ + +/* ------------------------- GL_ARB_shadow_ambient ------------------------- */ + +#ifndef GL_ARB_shadow_ambient +#define GL_ARB_shadow_ambient 1 + +#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF + +#define GLEW_ARB_shadow_ambient GLEW_GET_VAR(__GLEW_ARB_shadow_ambient) + +#endif /* GL_ARB_shadow_ambient */ + +/* -------------------------- GL_ARB_sparse_buffer ------------------------- */ + +#ifndef GL_ARB_sparse_buffer +#define GL_ARB_sparse_buffer 1 + +#define GL_SPARSE_STORAGE_BIT_ARB 0x0400 +#define GL_SPARSE_BUFFER_PAGE_SIZE_ARB 0x82F8 + +typedef void (GLAPIENTRY * PFNGLBUFFERPAGECOMMITMENTARBPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit); + +#define glBufferPageCommitmentARB GLEW_GET_FUN(__glewBufferPageCommitmentARB) + +#define GLEW_ARB_sparse_buffer GLEW_GET_VAR(__GLEW_ARB_sparse_buffer) + +#endif /* GL_ARB_sparse_buffer */ + +/* ------------------------- GL_ARB_sparse_texture ------------------------- */ + +#ifndef GL_ARB_sparse_texture +#define GL_ARB_sparse_texture 1 + +#define GL_VIRTUAL_PAGE_SIZE_X_ARB 0x9195 +#define GL_VIRTUAL_PAGE_SIZE_Y_ARB 0x9196 +#define GL_VIRTUAL_PAGE_SIZE_Z_ARB 0x9197 +#define GL_MAX_SPARSE_TEXTURE_SIZE_ARB 0x9198 +#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB 0x9199 +#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB 0x919A +#define GL_TEXTURE_SPARSE_ARB 0x91A6 +#define GL_VIRTUAL_PAGE_SIZE_INDEX_ARB 0x91A7 +#define GL_NUM_VIRTUAL_PAGE_SIZES_ARB 0x91A8 +#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91A9 +#define GL_NUM_SPARSE_LEVELS_ARB 0x91AA + +typedef void (GLAPIENTRY * PFNGLTEXPAGECOMMITMENTARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); + +#define glTexPageCommitmentARB GLEW_GET_FUN(__glewTexPageCommitmentARB) + +#define GLEW_ARB_sparse_texture GLEW_GET_VAR(__GLEW_ARB_sparse_texture) + +#endif /* GL_ARB_sparse_texture */ + +/* ------------------------- GL_ARB_sparse_texture2 ------------------------ */ + +#ifndef GL_ARB_sparse_texture2 +#define GL_ARB_sparse_texture2 1 + +#define GLEW_ARB_sparse_texture2 GLEW_GET_VAR(__GLEW_ARB_sparse_texture2) + +#endif /* GL_ARB_sparse_texture2 */ + +/* ---------------------- GL_ARB_sparse_texture_clamp ---------------------- */ + +#ifndef GL_ARB_sparse_texture_clamp +#define GL_ARB_sparse_texture_clamp 1 + +#define GLEW_ARB_sparse_texture_clamp GLEW_GET_VAR(__GLEW_ARB_sparse_texture_clamp) + +#endif /* GL_ARB_sparse_texture_clamp */ + +/* ------------------------ GL_ARB_spirv_extensions ------------------------ */ + +#ifndef GL_ARB_spirv_extensions +#define GL_ARB_spirv_extensions 1 + +#define GL_SPIR_V_EXTENSIONS 0x9553 +#define GL_NUM_SPIR_V_EXTENSIONS 0x9554 + +#define GLEW_ARB_spirv_extensions GLEW_GET_VAR(__GLEW_ARB_spirv_extensions) + +#endif /* GL_ARB_spirv_extensions */ + +/* ------------------------ GL_ARB_stencil_texturing ----------------------- */ + +#ifndef GL_ARB_stencil_texturing +#define GL_ARB_stencil_texturing 1 + +#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA + +#define GLEW_ARB_stencil_texturing GLEW_GET_VAR(__GLEW_ARB_stencil_texturing) + +#endif /* GL_ARB_stencil_texturing */ + +/* ------------------------------ GL_ARB_sync ------------------------------ */ + +#ifndef GL_ARB_sync +#define GL_ARB_sync 1 + +#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 +#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 0xFFFFFFFFFFFFFFFFull + +typedef GLenum (GLAPIENTRY * PFNGLCLIENTWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout); +typedef void (GLAPIENTRY * PFNGLDELETESYNCPROC) (GLsync GLsync); +typedef GLsync (GLAPIENTRY * PFNGLFENCESYNCPROC) (GLenum condition,GLbitfield flags); +typedef void (GLAPIENTRY * PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64* params); +typedef void (GLAPIENTRY * PFNGLGETSYNCIVPROC) (GLsync GLsync,GLenum pname,GLsizei bufSize,GLsizei* length, GLint *values); +typedef GLboolean (GLAPIENTRY * PFNGLISSYNCPROC) (GLsync GLsync); +typedef void (GLAPIENTRY * PFNGLWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout); + +#define glClientWaitSync GLEW_GET_FUN(__glewClientWaitSync) +#define glDeleteSync GLEW_GET_FUN(__glewDeleteSync) +#define glFenceSync GLEW_GET_FUN(__glewFenceSync) +#define glGetInteger64v GLEW_GET_FUN(__glewGetInteger64v) +#define glGetSynciv GLEW_GET_FUN(__glewGetSynciv) +#define glIsSync GLEW_GET_FUN(__glewIsSync) +#define glWaitSync GLEW_GET_FUN(__glewWaitSync) + +#define GLEW_ARB_sync GLEW_GET_VAR(__GLEW_ARB_sync) + +#endif /* GL_ARB_sync */ + +/* ----------------------- GL_ARB_tessellation_shader ---------------------- */ + +#ifndef GL_ARB_tessellation_shader +#define GL_ARB_tessellation_shader 1 + +#define GL_PATCHES 0xE +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F +#define GL_PATCH_VERTICES 0x8E72 +#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 +#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 +#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 +#define GL_TESS_GEN_MODE 0x8E76 +#define GL_TESS_GEN_SPACING 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 +#define GL_TESS_GEN_POINT_MODE 0x8E79 +#define GL_ISOLINES 0x8E7A +#define GL_FRACTIONAL_ODD 0x8E7B +#define GL_FRACTIONAL_EVEN 0x8E7C +#define GL_MAX_PATCH_VERTICES 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 +#define GL_TESS_EVALUATION_SHADER 0x8E87 +#define GL_TESS_CONTROL_SHADER 0x8E88 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A + +typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat* values); +typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); + +#define glPatchParameterfv GLEW_GET_FUN(__glewPatchParameterfv) +#define glPatchParameteri GLEW_GET_FUN(__glewPatchParameteri) + +#define GLEW_ARB_tessellation_shader GLEW_GET_VAR(__GLEW_ARB_tessellation_shader) + +#endif /* GL_ARB_tessellation_shader */ + +/* ------------------------- GL_ARB_texture_barrier ------------------------ */ + +#ifndef GL_ARB_texture_barrier +#define GL_ARB_texture_barrier 1 + +typedef void (GLAPIENTRY * PFNGLTEXTUREBARRIERPROC) (void); + +#define glTextureBarrier GLEW_GET_FUN(__glewTextureBarrier) + +#define GLEW_ARB_texture_barrier GLEW_GET_VAR(__GLEW_ARB_texture_barrier) + +#endif /* GL_ARB_texture_barrier */ + +/* ---------------------- GL_ARB_texture_border_clamp ---------------------- */ + +#ifndef GL_ARB_texture_border_clamp +#define GL_ARB_texture_border_clamp 1 + +#define GL_CLAMP_TO_BORDER_ARB 0x812D + +#define GLEW_ARB_texture_border_clamp GLEW_GET_VAR(__GLEW_ARB_texture_border_clamp) + +#endif /* GL_ARB_texture_border_clamp */ + +/* ---------------------- GL_ARB_texture_buffer_object --------------------- */ + +#ifndef GL_ARB_texture_buffer_object +#define GL_ARB_texture_buffer_object 1 + +#define GL_TEXTURE_BUFFER_ARB 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D +#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E + +typedef void (GLAPIENTRY * PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer); + +#define glTexBufferARB GLEW_GET_FUN(__glewTexBufferARB) + +#define GLEW_ARB_texture_buffer_object GLEW_GET_VAR(__GLEW_ARB_texture_buffer_object) + +#endif /* GL_ARB_texture_buffer_object */ + +/* ------------------- GL_ARB_texture_buffer_object_rgb32 ------------------ */ + +#ifndef GL_ARB_texture_buffer_object_rgb32 +#define GL_ARB_texture_buffer_object_rgb32 1 + +#define GLEW_ARB_texture_buffer_object_rgb32 GLEW_GET_VAR(__GLEW_ARB_texture_buffer_object_rgb32) + +#endif /* GL_ARB_texture_buffer_object_rgb32 */ + +/* ---------------------- GL_ARB_texture_buffer_range ---------------------- */ + +#ifndef GL_ARB_texture_buffer_range +#define GL_ARB_texture_buffer_range 1 + +#define GL_TEXTURE_BUFFER_OFFSET 0x919D +#define GL_TEXTURE_BUFFER_SIZE 0x919E +#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F + +typedef void (GLAPIENTRY * PFNGLTEXBUFFERRANGEPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFERRANGEEXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); + +#define glTexBufferRange GLEW_GET_FUN(__glewTexBufferRange) +#define glTextureBufferRangeEXT GLEW_GET_FUN(__glewTextureBufferRangeEXT) + +#define GLEW_ARB_texture_buffer_range GLEW_GET_VAR(__GLEW_ARB_texture_buffer_range) + +#endif /* GL_ARB_texture_buffer_range */ + +/* ----------------------- GL_ARB_texture_compression ---------------------- */ + +#ifndef GL_ARB_texture_compression +#define GL_ARB_texture_compression 1 + +#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_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 + +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * 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 (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, void *img); + +#define glCompressedTexImage1DARB GLEW_GET_FUN(__glewCompressedTexImage1DARB) +#define glCompressedTexImage2DARB GLEW_GET_FUN(__glewCompressedTexImage2DARB) +#define glCompressedTexImage3DARB GLEW_GET_FUN(__glewCompressedTexImage3DARB) +#define glCompressedTexSubImage1DARB GLEW_GET_FUN(__glewCompressedTexSubImage1DARB) +#define glCompressedTexSubImage2DARB GLEW_GET_FUN(__glewCompressedTexSubImage2DARB) +#define glCompressedTexSubImage3DARB GLEW_GET_FUN(__glewCompressedTexSubImage3DARB) +#define glGetCompressedTexImageARB GLEW_GET_FUN(__glewGetCompressedTexImageARB) + +#define GLEW_ARB_texture_compression GLEW_GET_VAR(__GLEW_ARB_texture_compression) + +#endif /* GL_ARB_texture_compression */ + +/* -------------------- GL_ARB_texture_compression_bptc -------------------- */ + +#ifndef GL_ARB_texture_compression_bptc +#define GL_ARB_texture_compression_bptc 1 + +#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C +#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D +#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E +#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F + +#define GLEW_ARB_texture_compression_bptc GLEW_GET_VAR(__GLEW_ARB_texture_compression_bptc) + +#endif /* GL_ARB_texture_compression_bptc */ + +/* -------------------- GL_ARB_texture_compression_rgtc -------------------- */ + +#ifndef GL_ARB_texture_compression_rgtc +#define GL_ARB_texture_compression_rgtc 1 + +#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 GLEW_ARB_texture_compression_rgtc GLEW_GET_VAR(__GLEW_ARB_texture_compression_rgtc) + +#endif /* GL_ARB_texture_compression_rgtc */ + +/* ------------------------ GL_ARB_texture_cube_map ------------------------ */ + +#ifndef GL_ARB_texture_cube_map +#define GL_ARB_texture_cube_map 1 + +#define GL_NORMAL_MAP_ARB 0x8511 +#define GL_REFLECTION_MAP_ARB 0x8512 +#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C + +#define GLEW_ARB_texture_cube_map GLEW_GET_VAR(__GLEW_ARB_texture_cube_map) + +#endif /* GL_ARB_texture_cube_map */ + +/* --------------------- GL_ARB_texture_cube_map_array --------------------- */ + +#ifndef GL_ARB_texture_cube_map_array +#define GL_ARB_texture_cube_map_array 1 + +#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F + +#define GLEW_ARB_texture_cube_map_array GLEW_GET_VAR(__GLEW_ARB_texture_cube_map_array) + +#endif /* GL_ARB_texture_cube_map_array */ + +/* ------------------------- GL_ARB_texture_env_add ------------------------ */ + +#ifndef GL_ARB_texture_env_add +#define GL_ARB_texture_env_add 1 + +#define GLEW_ARB_texture_env_add GLEW_GET_VAR(__GLEW_ARB_texture_env_add) + +#endif /* GL_ARB_texture_env_add */ + +/* ----------------------- GL_ARB_texture_env_combine ---------------------- */ + +#ifndef GL_ARB_texture_env_combine +#define GL_ARB_texture_env_combine 1 + +#define GL_SUBTRACT_ARB 0x84E7 +#define GL_COMBINE_ARB 0x8570 +#define GL_COMBINE_RGB_ARB 0x8571 +#define GL_COMBINE_ALPHA_ARB 0x8572 +#define GL_RGB_SCALE_ARB 0x8573 +#define GL_ADD_SIGNED_ARB 0x8574 +#define GL_INTERPOLATE_ARB 0x8575 +#define GL_CONSTANT_ARB 0x8576 +#define GL_PRIMARY_COLOR_ARB 0x8577 +#define GL_PREVIOUS_ARB 0x8578 +#define GL_SOURCE0_RGB_ARB 0x8580 +#define GL_SOURCE1_RGB_ARB 0x8581 +#define GL_SOURCE2_RGB_ARB 0x8582 +#define GL_SOURCE0_ALPHA_ARB 0x8588 +#define GL_SOURCE1_ALPHA_ARB 0x8589 +#define GL_SOURCE2_ALPHA_ARB 0x858A +#define GL_OPERAND0_RGB_ARB 0x8590 +#define GL_OPERAND1_RGB_ARB 0x8591 +#define GL_OPERAND2_RGB_ARB 0x8592 +#define GL_OPERAND0_ALPHA_ARB 0x8598 +#define GL_OPERAND1_ALPHA_ARB 0x8599 +#define GL_OPERAND2_ALPHA_ARB 0x859A + +#define GLEW_ARB_texture_env_combine GLEW_GET_VAR(__GLEW_ARB_texture_env_combine) + +#endif /* GL_ARB_texture_env_combine */ + +/* ---------------------- GL_ARB_texture_env_crossbar ---------------------- */ + +#ifndef GL_ARB_texture_env_crossbar +#define GL_ARB_texture_env_crossbar 1 + +#define GLEW_ARB_texture_env_crossbar GLEW_GET_VAR(__GLEW_ARB_texture_env_crossbar) + +#endif /* GL_ARB_texture_env_crossbar */ + +/* ------------------------ GL_ARB_texture_env_dot3 ------------------------ */ + +#ifndef GL_ARB_texture_env_dot3 +#define GL_ARB_texture_env_dot3 1 + +#define GL_DOT3_RGB_ARB 0x86AE +#define GL_DOT3_RGBA_ARB 0x86AF + +#define GLEW_ARB_texture_env_dot3 GLEW_GET_VAR(__GLEW_ARB_texture_env_dot3) + +#endif /* GL_ARB_texture_env_dot3 */ + +/* ------------------- GL_ARB_texture_filter_anisotropic ------------------- */ + +#ifndef GL_ARB_texture_filter_anisotropic +#define GL_ARB_texture_filter_anisotropic 1 + +#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF + +#define GLEW_ARB_texture_filter_anisotropic GLEW_GET_VAR(__GLEW_ARB_texture_filter_anisotropic) + +#endif /* GL_ARB_texture_filter_anisotropic */ + +/* ---------------------- GL_ARB_texture_filter_minmax --------------------- */ + +#ifndef GL_ARB_texture_filter_minmax +#define GL_ARB_texture_filter_minmax 1 + +#define GL_TEXTURE_REDUCTION_MODE_ARB 0x9366 +#define GL_WEIGHTED_AVERAGE_ARB 0x9367 + +#define GLEW_ARB_texture_filter_minmax GLEW_GET_VAR(__GLEW_ARB_texture_filter_minmax) + +#endif /* GL_ARB_texture_filter_minmax */ + +/* -------------------------- GL_ARB_texture_float ------------------------- */ + +#ifndef GL_ARB_texture_float +#define GL_ARB_texture_float 1 + +#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_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_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 GLEW_ARB_texture_float GLEW_GET_VAR(__GLEW_ARB_texture_float) + +#endif /* GL_ARB_texture_float */ + +/* ------------------------- GL_ARB_texture_gather ------------------------- */ + +#ifndef GL_ARB_texture_gather +#define GL_ARB_texture_gather 1 + +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F +#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F + +#define GLEW_ARB_texture_gather GLEW_GET_VAR(__GLEW_ARB_texture_gather) + +#endif /* GL_ARB_texture_gather */ + +/* ------------------ GL_ARB_texture_mirror_clamp_to_edge ------------------ */ + +#ifndef GL_ARB_texture_mirror_clamp_to_edge +#define GL_ARB_texture_mirror_clamp_to_edge 1 + +#define GL_MIRROR_CLAMP_TO_EDGE 0x8743 + +#define GLEW_ARB_texture_mirror_clamp_to_edge GLEW_GET_VAR(__GLEW_ARB_texture_mirror_clamp_to_edge) + +#endif /* GL_ARB_texture_mirror_clamp_to_edge */ + +/* --------------------- GL_ARB_texture_mirrored_repeat -------------------- */ + +#ifndef GL_ARB_texture_mirrored_repeat +#define GL_ARB_texture_mirrored_repeat 1 + +#define GL_MIRRORED_REPEAT_ARB 0x8370 + +#define GLEW_ARB_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_ARB_texture_mirrored_repeat) + +#endif /* GL_ARB_texture_mirrored_repeat */ + +/* ----------------------- GL_ARB_texture_multisample ---------------------- */ + +#ifndef GL_ARB_texture_multisample +#define GL_ARB_texture_multisample 1 + +#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 + +typedef void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat* val); +typedef void (GLAPIENTRY * PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask); +typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); + +#define glGetMultisamplefv GLEW_GET_FUN(__glewGetMultisamplefv) +#define glSampleMaski GLEW_GET_FUN(__glewSampleMaski) +#define glTexImage2DMultisample GLEW_GET_FUN(__glewTexImage2DMultisample) +#define glTexImage3DMultisample GLEW_GET_FUN(__glewTexImage3DMultisample) + +#define GLEW_ARB_texture_multisample GLEW_GET_VAR(__GLEW_ARB_texture_multisample) + +#endif /* GL_ARB_texture_multisample */ + +/* -------------------- GL_ARB_texture_non_power_of_two -------------------- */ + +#ifndef GL_ARB_texture_non_power_of_two +#define GL_ARB_texture_non_power_of_two 1 + +#define GLEW_ARB_texture_non_power_of_two GLEW_GET_VAR(__GLEW_ARB_texture_non_power_of_two) + +#endif /* GL_ARB_texture_non_power_of_two */ + +/* ---------------------- GL_ARB_texture_query_levels ---------------------- */ + +#ifndef GL_ARB_texture_query_levels +#define GL_ARB_texture_query_levels 1 + +#define GLEW_ARB_texture_query_levels GLEW_GET_VAR(__GLEW_ARB_texture_query_levels) + +#endif /* GL_ARB_texture_query_levels */ + +/* ------------------------ GL_ARB_texture_query_lod ----------------------- */ + +#ifndef GL_ARB_texture_query_lod +#define GL_ARB_texture_query_lod 1 + +#define GLEW_ARB_texture_query_lod GLEW_GET_VAR(__GLEW_ARB_texture_query_lod) + +#endif /* GL_ARB_texture_query_lod */ + +/* ------------------------ GL_ARB_texture_rectangle ----------------------- */ + +#ifndef GL_ARB_texture_rectangle +#define GL_ARB_texture_rectangle 1 + +#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 +#define GL_SAMPLER_2D_RECT_ARB 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 + +#define GLEW_ARB_texture_rectangle GLEW_GET_VAR(__GLEW_ARB_texture_rectangle) + +#endif /* GL_ARB_texture_rectangle */ + +/* --------------------------- GL_ARB_texture_rg --------------------------- */ + +#ifndef GL_ARB_texture_rg +#define GL_ARB_texture_rg 1 + +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RG 0x8226 +#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 GLEW_ARB_texture_rg GLEW_GET_VAR(__GLEW_ARB_texture_rg) + +#endif /* GL_ARB_texture_rg */ + +/* ----------------------- GL_ARB_texture_rgb10_a2ui ----------------------- */ + +#ifndef GL_ARB_texture_rgb10_a2ui +#define GL_ARB_texture_rgb10_a2ui 1 + +#define GL_RGB10_A2UI 0x906F + +#define GLEW_ARB_texture_rgb10_a2ui GLEW_GET_VAR(__GLEW_ARB_texture_rgb10_a2ui) + +#endif /* GL_ARB_texture_rgb10_a2ui */ + +/* ------------------------ GL_ARB_texture_stencil8 ------------------------ */ + +#ifndef GL_ARB_texture_stencil8 +#define GL_ARB_texture_stencil8 1 + +#define GL_STENCIL_INDEX 0x1901 +#define GL_STENCIL_INDEX8 0x8D48 + +#define GLEW_ARB_texture_stencil8 GLEW_GET_VAR(__GLEW_ARB_texture_stencil8) + +#endif /* GL_ARB_texture_stencil8 */ + +/* ------------------------- GL_ARB_texture_storage ------------------------ */ + +#ifndef GL_ARB_texture_storage +#define GL_ARB_texture_storage 1 + +#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F + +typedef void (GLAPIENTRY * PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); + +#define glTexStorage1D GLEW_GET_FUN(__glewTexStorage1D) +#define glTexStorage2D GLEW_GET_FUN(__glewTexStorage2D) +#define glTexStorage3D GLEW_GET_FUN(__glewTexStorage3D) + +#define GLEW_ARB_texture_storage GLEW_GET_VAR(__GLEW_ARB_texture_storage) + +#endif /* GL_ARB_texture_storage */ + +/* ------------------- GL_ARB_texture_storage_multisample ------------------ */ + +#ifndef GL_ARB_texture_storage_multisample +#define GL_ARB_texture_storage_multisample 1 + +typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); + +#define glTexStorage2DMultisample GLEW_GET_FUN(__glewTexStorage2DMultisample) +#define glTexStorage3DMultisample GLEW_GET_FUN(__glewTexStorage3DMultisample) +#define glTextureStorage2DMultisampleEXT GLEW_GET_FUN(__glewTextureStorage2DMultisampleEXT) +#define glTextureStorage3DMultisampleEXT GLEW_GET_FUN(__glewTextureStorage3DMultisampleEXT) + +#define GLEW_ARB_texture_storage_multisample GLEW_GET_VAR(__GLEW_ARB_texture_storage_multisample) + +#endif /* GL_ARB_texture_storage_multisample */ + +/* ------------------------- GL_ARB_texture_swizzle ------------------------ */ + +#ifndef GL_ARB_texture_swizzle +#define GL_ARB_texture_swizzle 1 + +#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 GLEW_ARB_texture_swizzle GLEW_GET_VAR(__GLEW_ARB_texture_swizzle) + +#endif /* GL_ARB_texture_swizzle */ + +/* -------------------------- GL_ARB_texture_view -------------------------- */ + +#ifndef GL_ARB_texture_view +#define GL_ARB_texture_view 1 + +#define GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB +#define GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC +#define GL_TEXTURE_VIEW_MIN_LAYER 0x82DD +#define GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE +#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF + +typedef void (GLAPIENTRY * PFNGLTEXTUREVIEWPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); + +#define glTextureView GLEW_GET_FUN(__glewTextureView) + +#define GLEW_ARB_texture_view GLEW_GET_VAR(__GLEW_ARB_texture_view) + +#endif /* GL_ARB_texture_view */ + +/* --------------------------- GL_ARB_timer_query -------------------------- */ + +#ifndef GL_ARB_timer_query +#define GL_ARB_timer_query 1 + +#define GL_TIME_ELAPSED 0x88BF +#define GL_TIMESTAMP 0x8E28 + +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64* params); +typedef void (GLAPIENTRY * PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target); + +#define glGetQueryObjecti64v GLEW_GET_FUN(__glewGetQueryObjecti64v) +#define glGetQueryObjectui64v GLEW_GET_FUN(__glewGetQueryObjectui64v) +#define glQueryCounter GLEW_GET_FUN(__glewQueryCounter) + +#define GLEW_ARB_timer_query GLEW_GET_VAR(__GLEW_ARB_timer_query) + +#endif /* GL_ARB_timer_query */ + +/* ----------------------- GL_ARB_transform_feedback2 ---------------------- */ + +#ifndef GL_ARB_transform_feedback2 +#define GL_ARB_transform_feedback2 1 + +#define GL_TRANSFORM_FEEDBACK 0x8E22 +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 +#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 +#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 + +typedef void (GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); +typedef void (GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint* ids); +typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id); +typedef void (GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint* ids); +typedef GLboolean (GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); +typedef void (GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); + +#define glBindTransformFeedback GLEW_GET_FUN(__glewBindTransformFeedback) +#define glDeleteTransformFeedbacks GLEW_GET_FUN(__glewDeleteTransformFeedbacks) +#define glDrawTransformFeedback GLEW_GET_FUN(__glewDrawTransformFeedback) +#define glGenTransformFeedbacks GLEW_GET_FUN(__glewGenTransformFeedbacks) +#define glIsTransformFeedback GLEW_GET_FUN(__glewIsTransformFeedback) +#define glPauseTransformFeedback GLEW_GET_FUN(__glewPauseTransformFeedback) +#define glResumeTransformFeedback GLEW_GET_FUN(__glewResumeTransformFeedback) + +#define GLEW_ARB_transform_feedback2 GLEW_GET_VAR(__GLEW_ARB_transform_feedback2) + +#endif /* GL_ARB_transform_feedback2 */ + +/* ----------------------- GL_ARB_transform_feedback3 ---------------------- */ + +#ifndef GL_ARB_transform_feedback3 +#define GL_ARB_transform_feedback3 1 + +#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 +#define GL_MAX_VERTEX_STREAMS 0x8E71 + +typedef void (GLAPIENTRY * PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id); +typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream); +typedef void (GLAPIENTRY * PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint* params); + +#define glBeginQueryIndexed GLEW_GET_FUN(__glewBeginQueryIndexed) +#define glDrawTransformFeedbackStream GLEW_GET_FUN(__glewDrawTransformFeedbackStream) +#define glEndQueryIndexed GLEW_GET_FUN(__glewEndQueryIndexed) +#define glGetQueryIndexediv GLEW_GET_FUN(__glewGetQueryIndexediv) + +#define GLEW_ARB_transform_feedback3 GLEW_GET_VAR(__GLEW_ARB_transform_feedback3) + +#endif /* GL_ARB_transform_feedback3 */ + +/* ------------------ GL_ARB_transform_feedback_instanced ------------------ */ + +#ifndef GL_ARB_transform_feedback_instanced +#define GL_ARB_transform_feedback_instanced 1 + +typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) (GLenum mode, GLuint id, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) (GLenum mode, GLuint id, GLuint stream, GLsizei primcount); + +#define glDrawTransformFeedbackInstanced GLEW_GET_FUN(__glewDrawTransformFeedbackInstanced) +#define glDrawTransformFeedbackStreamInstanced GLEW_GET_FUN(__glewDrawTransformFeedbackStreamInstanced) + +#define GLEW_ARB_transform_feedback_instanced GLEW_GET_VAR(__GLEW_ARB_transform_feedback_instanced) + +#endif /* GL_ARB_transform_feedback_instanced */ + +/* ---------------- GL_ARB_transform_feedback_overflow_query --------------- */ + +#ifndef GL_ARB_transform_feedback_overflow_query +#define GL_ARB_transform_feedback_overflow_query 1 + +#define GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB 0x82EC +#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB 0x82ED + +#define GLEW_ARB_transform_feedback_overflow_query GLEW_GET_VAR(__GLEW_ARB_transform_feedback_overflow_query) + +#endif /* GL_ARB_transform_feedback_overflow_query */ + +/* ------------------------ GL_ARB_transpose_matrix ------------------------ */ + +#ifndef GL_ARB_transpose_matrix +#define GL_ARB_transpose_matrix 1 + +#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 + +typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]); +typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]); +typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]); +typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]); + +#define glLoadTransposeMatrixdARB GLEW_GET_FUN(__glewLoadTransposeMatrixdARB) +#define glLoadTransposeMatrixfARB GLEW_GET_FUN(__glewLoadTransposeMatrixfARB) +#define glMultTransposeMatrixdARB GLEW_GET_FUN(__glewMultTransposeMatrixdARB) +#define glMultTransposeMatrixfARB GLEW_GET_FUN(__glewMultTransposeMatrixfARB) + +#define GLEW_ARB_transpose_matrix GLEW_GET_VAR(__GLEW_ARB_transpose_matrix) + +#endif /* GL_ARB_transpose_matrix */ + +/* ---------------------- GL_ARB_uniform_buffer_object --------------------- */ + +#ifndef GL_ARB_uniform_buffer_object +#define GL_ARB_uniform_buffer_object 1 + +#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 0xFFFFFFFFu + +typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName); +typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName); +typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint* data); +typedef GLuint (GLAPIENTRY * PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar* uniformBlockName); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar* const * uniformNames, GLuint* uniformIndices); +typedef void (GLAPIENTRY * PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); + +#define glBindBufferBase GLEW_GET_FUN(__glewBindBufferBase) +#define glBindBufferRange GLEW_GET_FUN(__glewBindBufferRange) +#define glGetActiveUniformBlockName GLEW_GET_FUN(__glewGetActiveUniformBlockName) +#define glGetActiveUniformBlockiv GLEW_GET_FUN(__glewGetActiveUniformBlockiv) +#define glGetActiveUniformName GLEW_GET_FUN(__glewGetActiveUniformName) +#define glGetActiveUniformsiv GLEW_GET_FUN(__glewGetActiveUniformsiv) +#define glGetIntegeri_v GLEW_GET_FUN(__glewGetIntegeri_v) +#define glGetUniformBlockIndex GLEW_GET_FUN(__glewGetUniformBlockIndex) +#define glGetUniformIndices GLEW_GET_FUN(__glewGetUniformIndices) +#define glUniformBlockBinding GLEW_GET_FUN(__glewUniformBlockBinding) + +#define GLEW_ARB_uniform_buffer_object GLEW_GET_VAR(__GLEW_ARB_uniform_buffer_object) + +#endif /* GL_ARB_uniform_buffer_object */ + +/* ------------------------ GL_ARB_vertex_array_bgra ----------------------- */ + +#ifndef GL_ARB_vertex_array_bgra +#define GL_ARB_vertex_array_bgra 1 + +#define GL_BGRA 0x80E1 + +#define GLEW_ARB_vertex_array_bgra GLEW_GET_VAR(__GLEW_ARB_vertex_array_bgra) + +#endif /* GL_ARB_vertex_array_bgra */ + +/* ----------------------- GL_ARB_vertex_array_object ---------------------- */ + +#ifndef GL_ARB_vertex_array_object +#define GL_ARB_vertex_array_object 1 + +#define GL_VERTEX_ARRAY_BINDING 0x85B5 + +typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYPROC) (GLuint array); +typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint* arrays); +typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays); +typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYPROC) (GLuint array); + +#define glBindVertexArray GLEW_GET_FUN(__glewBindVertexArray) +#define glDeleteVertexArrays GLEW_GET_FUN(__glewDeleteVertexArrays) +#define glGenVertexArrays GLEW_GET_FUN(__glewGenVertexArrays) +#define glIsVertexArray GLEW_GET_FUN(__glewIsVertexArray) + +#define GLEW_ARB_vertex_array_object GLEW_GET_VAR(__GLEW_ARB_vertex_array_object) + +#endif /* GL_ARB_vertex_array_object */ + +/* ----------------------- GL_ARB_vertex_attrib_64bit ---------------------- */ + +#ifndef GL_ARB_vertex_attrib_64bit +#define GL_ARB_vertex_attrib_64bit 1 + +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); + +#define glGetVertexAttribLdv GLEW_GET_FUN(__glewGetVertexAttribLdv) +#define glVertexAttribL1d GLEW_GET_FUN(__glewVertexAttribL1d) +#define glVertexAttribL1dv GLEW_GET_FUN(__glewVertexAttribL1dv) +#define glVertexAttribL2d GLEW_GET_FUN(__glewVertexAttribL2d) +#define glVertexAttribL2dv GLEW_GET_FUN(__glewVertexAttribL2dv) +#define glVertexAttribL3d GLEW_GET_FUN(__glewVertexAttribL3d) +#define glVertexAttribL3dv GLEW_GET_FUN(__glewVertexAttribL3dv) +#define glVertexAttribL4d GLEW_GET_FUN(__glewVertexAttribL4d) +#define glVertexAttribL4dv GLEW_GET_FUN(__glewVertexAttribL4dv) +#define glVertexAttribLPointer GLEW_GET_FUN(__glewVertexAttribLPointer) + +#define GLEW_ARB_vertex_attrib_64bit GLEW_GET_VAR(__GLEW_ARB_vertex_attrib_64bit) + +#endif /* GL_ARB_vertex_attrib_64bit */ + +/* ---------------------- GL_ARB_vertex_attrib_binding --------------------- */ + +#ifndef GL_ARB_vertex_attrib_binding +#define GL_ARB_vertex_attrib_binding 1 + +#define GL_VERTEX_ATTRIB_BINDING 0x82D4 +#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 +#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_VERTEX_BINDING_BUFFER 0x8F4F + +typedef void (GLAPIENTRY * PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (GLAPIENTRY * PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor); + +#define glBindVertexBuffer GLEW_GET_FUN(__glewBindVertexBuffer) +#define glVertexArrayBindVertexBufferEXT GLEW_GET_FUN(__glewVertexArrayBindVertexBufferEXT) +#define glVertexArrayVertexAttribBindingEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribBindingEXT) +#define glVertexArrayVertexAttribFormatEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribFormatEXT) +#define glVertexArrayVertexAttribIFormatEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribIFormatEXT) +#define glVertexArrayVertexAttribLFormatEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribLFormatEXT) +#define glVertexArrayVertexBindingDivisorEXT GLEW_GET_FUN(__glewVertexArrayVertexBindingDivisorEXT) +#define glVertexAttribBinding GLEW_GET_FUN(__glewVertexAttribBinding) +#define glVertexAttribFormat GLEW_GET_FUN(__glewVertexAttribFormat) +#define glVertexAttribIFormat GLEW_GET_FUN(__glewVertexAttribIFormat) +#define glVertexAttribLFormat GLEW_GET_FUN(__glewVertexAttribLFormat) +#define glVertexBindingDivisor GLEW_GET_FUN(__glewVertexBindingDivisor) + +#define GLEW_ARB_vertex_attrib_binding GLEW_GET_VAR(__GLEW_ARB_vertex_attrib_binding) + +#endif /* GL_ARB_vertex_attrib_binding */ + +/* -------------------------- GL_ARB_vertex_blend -------------------------- */ + +#ifndef GL_ARB_vertex_blend +#define GL_ARB_vertex_blend 1 + +#define GL_MODELVIEW0_ARB 0x1700 +#define GL_MODELVIEW1_ARB 0x850A +#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 +#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 +#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 +#define GL_VERTEX_BLEND_ARB 0x86A7 +#define GL_CURRENT_WEIGHT_ARB 0x86A8 +#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 +#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA +#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB +#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC +#define GL_WEIGHT_ARRAY_ARB 0x86AD +#define GL_MODELVIEW2_ARB 0x8722 +#define GL_MODELVIEW3_ARB 0x8723 +#define GL_MODELVIEW4_ARB 0x8724 +#define GL_MODELVIEW5_ARB 0x8725 +#define GL_MODELVIEW6_ARB 0x8726 +#define GL_MODELVIEW7_ARB 0x8727 +#define GL_MODELVIEW8_ARB 0x8728 +#define GL_MODELVIEW9_ARB 0x8729 +#define GL_MODELVIEW10_ARB 0x872A +#define GL_MODELVIEW11_ARB 0x872B +#define GL_MODELVIEW12_ARB 0x872C +#define GL_MODELVIEW13_ARB 0x872D +#define GL_MODELVIEW14_ARB 0x872E +#define GL_MODELVIEW15_ARB 0x872F +#define GL_MODELVIEW16_ARB 0x8730 +#define GL_MODELVIEW17_ARB 0x8731 +#define GL_MODELVIEW18_ARB 0x8732 +#define GL_MODELVIEW19_ARB 0x8733 +#define GL_MODELVIEW20_ARB 0x8734 +#define GL_MODELVIEW21_ARB 0x8735 +#define GL_MODELVIEW22_ARB 0x8736 +#define GL_MODELVIEW23_ARB 0x8737 +#define GL_MODELVIEW24_ARB 0x8738 +#define GL_MODELVIEW25_ARB 0x8739 +#define GL_MODELVIEW26_ARB 0x873A +#define GL_MODELVIEW27_ARB 0x873B +#define GL_MODELVIEW28_ARB 0x873C +#define GL_MODELVIEW29_ARB 0x873D +#define GL_MODELVIEW30_ARB 0x873E +#define GL_MODELVIEW31_ARB 0x873F + +typedef void (GLAPIENTRY * PFNGLVERTEXBLENDARBPROC) (GLint count); +typedef void (GLAPIENTRY * PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, void *pointer); +typedef void (GLAPIENTRY * PFNGLWEIGHTBVARBPROC) (GLint size, GLbyte *weights); +typedef void (GLAPIENTRY * PFNGLWEIGHTDVARBPROC) (GLint size, GLdouble *weights); +typedef void (GLAPIENTRY * PFNGLWEIGHTFVARBPROC) (GLint size, GLfloat *weights); +typedef void (GLAPIENTRY * PFNGLWEIGHTIVARBPROC) (GLint size, GLint *weights); +typedef void (GLAPIENTRY * PFNGLWEIGHTSVARBPROC) (GLint size, GLshort *weights); +typedef void (GLAPIENTRY * PFNGLWEIGHTUBVARBPROC) (GLint size, GLubyte *weights); +typedef void (GLAPIENTRY * PFNGLWEIGHTUIVARBPROC) (GLint size, GLuint *weights); +typedef void (GLAPIENTRY * PFNGLWEIGHTUSVARBPROC) (GLint size, GLushort *weights); + +#define glVertexBlendARB GLEW_GET_FUN(__glewVertexBlendARB) +#define glWeightPointerARB GLEW_GET_FUN(__glewWeightPointerARB) +#define glWeightbvARB GLEW_GET_FUN(__glewWeightbvARB) +#define glWeightdvARB GLEW_GET_FUN(__glewWeightdvARB) +#define glWeightfvARB GLEW_GET_FUN(__glewWeightfvARB) +#define glWeightivARB GLEW_GET_FUN(__glewWeightivARB) +#define glWeightsvARB GLEW_GET_FUN(__glewWeightsvARB) +#define glWeightubvARB GLEW_GET_FUN(__glewWeightubvARB) +#define glWeightuivARB GLEW_GET_FUN(__glewWeightuivARB) +#define glWeightusvARB GLEW_GET_FUN(__glewWeightusvARB) + +#define GLEW_ARB_vertex_blend GLEW_GET_VAR(__GLEW_ARB_vertex_blend) + +#endif /* GL_ARB_vertex_blend */ + +/* ---------------------- GL_ARB_vertex_buffer_object ---------------------- */ + +#ifndef GL_ARB_vertex_buffer_object +#define GL_ARB_vertex_buffer_object 1 + +#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 + +typedef ptrdiff_t GLintptrARB; +typedef ptrdiff_t GLsizeiptrARB; + +typedef void (GLAPIENTRY * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage); +typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data); +typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint* buffers); +typedef void (GLAPIENTRY * PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint* buffers); +typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, void** params); +typedef void (GLAPIENTRY * PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data); +typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERARBPROC) (GLuint buffer); +typedef void * (GLAPIENTRY * PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); +typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFERARBPROC) (GLenum target); + +#define glBindBufferARB GLEW_GET_FUN(__glewBindBufferARB) +#define glBufferDataARB GLEW_GET_FUN(__glewBufferDataARB) +#define glBufferSubDataARB GLEW_GET_FUN(__glewBufferSubDataARB) +#define glDeleteBuffersARB GLEW_GET_FUN(__glewDeleteBuffersARB) +#define glGenBuffersARB GLEW_GET_FUN(__glewGenBuffersARB) +#define glGetBufferParameterivARB GLEW_GET_FUN(__glewGetBufferParameterivARB) +#define glGetBufferPointervARB GLEW_GET_FUN(__glewGetBufferPointervARB) +#define glGetBufferSubDataARB GLEW_GET_FUN(__glewGetBufferSubDataARB) +#define glIsBufferARB GLEW_GET_FUN(__glewIsBufferARB) +#define glMapBufferARB GLEW_GET_FUN(__glewMapBufferARB) +#define glUnmapBufferARB GLEW_GET_FUN(__glewUnmapBufferARB) + +#define GLEW_ARB_vertex_buffer_object GLEW_GET_VAR(__GLEW_ARB_vertex_buffer_object) + +#endif /* GL_ARB_vertex_buffer_object */ + +/* ------------------------- GL_ARB_vertex_program ------------------------- */ + +#ifndef GL_ARB_vertex_program +#define GL_ARB_vertex_program 1 + +#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_PROGRAM_LENGTH_ARB 0x8627 +#define GL_PROGRAM_STRING_ARB 0x8628 +#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E +#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F +#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 +#define GL_CURRENT_MATRIX_ARB 0x8641 +#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_PROGRAM_ERROR_POSITION_ARB 0x864B +#define GL_PROGRAM_BINDING_ARB 0x8677 +#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A +#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 +#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 +#define GL_PROGRAM_FORMAT_ARB 0x8876 +#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_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_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 +#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 +#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 +#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 +#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 +#define GL_MATRIX13_ARB 0x88CD +#define GL_MATRIX14_ARB 0x88CE +#define GL_MATRIX15_ARB 0x88CF +#define GL_MATRIX16_ARB 0x88D0 +#define GL_MATRIX17_ARB 0x88D1 +#define GL_MATRIX18_ARB 0x88D2 +#define GL_MATRIX19_ARB 0x88D3 +#define GL_MATRIX20_ARB 0x88D4 +#define GL_MATRIX21_ARB 0x88D5 +#define GL_MATRIX22_ARB 0x88D6 +#define GL_MATRIX23_ARB 0x88D7 +#define GL_MATRIX24_ARB 0x88D8 +#define GL_MATRIX25_ARB 0x88D9 +#define GL_MATRIX26_ARB 0x88DA +#define GL_MATRIX27_ARB 0x88DB +#define GL_MATRIX28_ARB 0x88DC +#define GL_MATRIX29_ARB 0x88DD +#define GL_MATRIX30_ARB 0x88DE +#define GL_MATRIX31_ARB 0x88DF + +typedef void (GLAPIENTRY * PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); +typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint* programs); +typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); +typedef void (GLAPIENTRY * PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint* programs); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, void *string); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, void** pointer); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMARBPROC) (GLuint program); +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const void *string); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); + +#define glBindProgramARB GLEW_GET_FUN(__glewBindProgramARB) +#define glDeleteProgramsARB GLEW_GET_FUN(__glewDeleteProgramsARB) +#define glDisableVertexAttribArrayARB GLEW_GET_FUN(__glewDisableVertexAttribArrayARB) +#define glEnableVertexAttribArrayARB GLEW_GET_FUN(__glewEnableVertexAttribArrayARB) +#define glGenProgramsARB GLEW_GET_FUN(__glewGenProgramsARB) +#define glGetProgramEnvParameterdvARB GLEW_GET_FUN(__glewGetProgramEnvParameterdvARB) +#define glGetProgramEnvParameterfvARB GLEW_GET_FUN(__glewGetProgramEnvParameterfvARB) +#define glGetProgramLocalParameterdvARB GLEW_GET_FUN(__glewGetProgramLocalParameterdvARB) +#define glGetProgramLocalParameterfvARB GLEW_GET_FUN(__glewGetProgramLocalParameterfvARB) +#define glGetProgramStringARB GLEW_GET_FUN(__glewGetProgramStringARB) +#define glGetProgramivARB GLEW_GET_FUN(__glewGetProgramivARB) +#define glGetVertexAttribPointervARB GLEW_GET_FUN(__glewGetVertexAttribPointervARB) +#define glGetVertexAttribdvARB GLEW_GET_FUN(__glewGetVertexAttribdvARB) +#define glGetVertexAttribfvARB GLEW_GET_FUN(__glewGetVertexAttribfvARB) +#define glGetVertexAttribivARB GLEW_GET_FUN(__glewGetVertexAttribivARB) +#define glIsProgramARB GLEW_GET_FUN(__glewIsProgramARB) +#define glProgramEnvParameter4dARB GLEW_GET_FUN(__glewProgramEnvParameter4dARB) +#define glProgramEnvParameter4dvARB GLEW_GET_FUN(__glewProgramEnvParameter4dvARB) +#define glProgramEnvParameter4fARB GLEW_GET_FUN(__glewProgramEnvParameter4fARB) +#define glProgramEnvParameter4fvARB GLEW_GET_FUN(__glewProgramEnvParameter4fvARB) +#define glProgramLocalParameter4dARB GLEW_GET_FUN(__glewProgramLocalParameter4dARB) +#define glProgramLocalParameter4dvARB GLEW_GET_FUN(__glewProgramLocalParameter4dvARB) +#define glProgramLocalParameter4fARB GLEW_GET_FUN(__glewProgramLocalParameter4fARB) +#define glProgramLocalParameter4fvARB GLEW_GET_FUN(__glewProgramLocalParameter4fvARB) +#define glProgramStringARB GLEW_GET_FUN(__glewProgramStringARB) +#define glVertexAttrib1dARB GLEW_GET_FUN(__glewVertexAttrib1dARB) +#define glVertexAttrib1dvARB GLEW_GET_FUN(__glewVertexAttrib1dvARB) +#define glVertexAttrib1fARB GLEW_GET_FUN(__glewVertexAttrib1fARB) +#define glVertexAttrib1fvARB GLEW_GET_FUN(__glewVertexAttrib1fvARB) +#define glVertexAttrib1sARB GLEW_GET_FUN(__glewVertexAttrib1sARB) +#define glVertexAttrib1svARB GLEW_GET_FUN(__glewVertexAttrib1svARB) +#define glVertexAttrib2dARB GLEW_GET_FUN(__glewVertexAttrib2dARB) +#define glVertexAttrib2dvARB GLEW_GET_FUN(__glewVertexAttrib2dvARB) +#define glVertexAttrib2fARB GLEW_GET_FUN(__glewVertexAttrib2fARB) +#define glVertexAttrib2fvARB GLEW_GET_FUN(__glewVertexAttrib2fvARB) +#define glVertexAttrib2sARB GLEW_GET_FUN(__glewVertexAttrib2sARB) +#define glVertexAttrib2svARB GLEW_GET_FUN(__glewVertexAttrib2svARB) +#define glVertexAttrib3dARB GLEW_GET_FUN(__glewVertexAttrib3dARB) +#define glVertexAttrib3dvARB GLEW_GET_FUN(__glewVertexAttrib3dvARB) +#define glVertexAttrib3fARB GLEW_GET_FUN(__glewVertexAttrib3fARB) +#define glVertexAttrib3fvARB GLEW_GET_FUN(__glewVertexAttrib3fvARB) +#define glVertexAttrib3sARB GLEW_GET_FUN(__glewVertexAttrib3sARB) +#define glVertexAttrib3svARB GLEW_GET_FUN(__glewVertexAttrib3svARB) +#define glVertexAttrib4NbvARB GLEW_GET_FUN(__glewVertexAttrib4NbvARB) +#define glVertexAttrib4NivARB GLEW_GET_FUN(__glewVertexAttrib4NivARB) +#define glVertexAttrib4NsvARB GLEW_GET_FUN(__glewVertexAttrib4NsvARB) +#define glVertexAttrib4NubARB GLEW_GET_FUN(__glewVertexAttrib4NubARB) +#define glVertexAttrib4NubvARB GLEW_GET_FUN(__glewVertexAttrib4NubvARB) +#define glVertexAttrib4NuivARB GLEW_GET_FUN(__glewVertexAttrib4NuivARB) +#define glVertexAttrib4NusvARB GLEW_GET_FUN(__glewVertexAttrib4NusvARB) +#define glVertexAttrib4bvARB GLEW_GET_FUN(__glewVertexAttrib4bvARB) +#define glVertexAttrib4dARB GLEW_GET_FUN(__glewVertexAttrib4dARB) +#define glVertexAttrib4dvARB GLEW_GET_FUN(__glewVertexAttrib4dvARB) +#define glVertexAttrib4fARB GLEW_GET_FUN(__glewVertexAttrib4fARB) +#define glVertexAttrib4fvARB GLEW_GET_FUN(__glewVertexAttrib4fvARB) +#define glVertexAttrib4ivARB GLEW_GET_FUN(__glewVertexAttrib4ivARB) +#define glVertexAttrib4sARB GLEW_GET_FUN(__glewVertexAttrib4sARB) +#define glVertexAttrib4svARB GLEW_GET_FUN(__glewVertexAttrib4svARB) +#define glVertexAttrib4ubvARB GLEW_GET_FUN(__glewVertexAttrib4ubvARB) +#define glVertexAttrib4uivARB GLEW_GET_FUN(__glewVertexAttrib4uivARB) +#define glVertexAttrib4usvARB GLEW_GET_FUN(__glewVertexAttrib4usvARB) +#define glVertexAttribPointerARB GLEW_GET_FUN(__glewVertexAttribPointerARB) + +#define GLEW_ARB_vertex_program GLEW_GET_VAR(__GLEW_ARB_vertex_program) + +#endif /* GL_ARB_vertex_program */ + +/* -------------------------- GL_ARB_vertex_shader ------------------------- */ + +#ifndef GL_ARB_vertex_shader +#define GL_ARB_vertex_shader 1 + +#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 + +typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB* name); +typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name); +typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB* name); + +#define glBindAttribLocationARB GLEW_GET_FUN(__glewBindAttribLocationARB) +#define glGetActiveAttribARB GLEW_GET_FUN(__glewGetActiveAttribARB) +#define glGetAttribLocationARB GLEW_GET_FUN(__glewGetAttribLocationARB) + +#define GLEW_ARB_vertex_shader GLEW_GET_VAR(__GLEW_ARB_vertex_shader) + +#endif /* GL_ARB_vertex_shader */ + +/* ------------------- GL_ARB_vertex_type_10f_11f_11f_rev ------------------ */ + +#ifndef GL_ARB_vertex_type_10f_11f_11f_rev +#define GL_ARB_vertex_type_10f_11f_11f_rev 1 + +#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B + +#define GLEW_ARB_vertex_type_10f_11f_11f_rev GLEW_GET_VAR(__GLEW_ARB_vertex_type_10f_11f_11f_rev) + +#endif /* GL_ARB_vertex_type_10f_11f_11f_rev */ + +/* ------------------- GL_ARB_vertex_type_2_10_10_10_rev ------------------- */ + +#ifndef GL_ARB_vertex_type_2_10_10_10_rev +#define GL_ARB_vertex_type_2_10_10_10_rev 1 + +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_INT_2_10_10_10_REV 0x8D9F + +typedef void (GLAPIENTRY * PFNGLCOLORP3UIPROC) (GLenum type, GLuint color); +typedef void (GLAPIENTRY * PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint* color); +typedef void (GLAPIENTRY * PFNGLCOLORP4UIPROC) (GLenum type, GLuint color); +typedef void (GLAPIENTRY * PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint* color); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint* color); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint* value); + +#define glColorP3ui GLEW_GET_FUN(__glewColorP3ui) +#define glColorP3uiv GLEW_GET_FUN(__glewColorP3uiv) +#define glColorP4ui GLEW_GET_FUN(__glewColorP4ui) +#define glColorP4uiv GLEW_GET_FUN(__glewColorP4uiv) +#define glMultiTexCoordP1ui GLEW_GET_FUN(__glewMultiTexCoordP1ui) +#define glMultiTexCoordP1uiv GLEW_GET_FUN(__glewMultiTexCoordP1uiv) +#define glMultiTexCoordP2ui GLEW_GET_FUN(__glewMultiTexCoordP2ui) +#define glMultiTexCoordP2uiv GLEW_GET_FUN(__glewMultiTexCoordP2uiv) +#define glMultiTexCoordP3ui GLEW_GET_FUN(__glewMultiTexCoordP3ui) +#define glMultiTexCoordP3uiv GLEW_GET_FUN(__glewMultiTexCoordP3uiv) +#define glMultiTexCoordP4ui GLEW_GET_FUN(__glewMultiTexCoordP4ui) +#define glMultiTexCoordP4uiv GLEW_GET_FUN(__glewMultiTexCoordP4uiv) +#define glNormalP3ui GLEW_GET_FUN(__glewNormalP3ui) +#define glNormalP3uiv GLEW_GET_FUN(__glewNormalP3uiv) +#define glSecondaryColorP3ui GLEW_GET_FUN(__glewSecondaryColorP3ui) +#define glSecondaryColorP3uiv GLEW_GET_FUN(__glewSecondaryColorP3uiv) +#define glTexCoordP1ui GLEW_GET_FUN(__glewTexCoordP1ui) +#define glTexCoordP1uiv GLEW_GET_FUN(__glewTexCoordP1uiv) +#define glTexCoordP2ui GLEW_GET_FUN(__glewTexCoordP2ui) +#define glTexCoordP2uiv GLEW_GET_FUN(__glewTexCoordP2uiv) +#define glTexCoordP3ui GLEW_GET_FUN(__glewTexCoordP3ui) +#define glTexCoordP3uiv GLEW_GET_FUN(__glewTexCoordP3uiv) +#define glTexCoordP4ui GLEW_GET_FUN(__glewTexCoordP4ui) +#define glTexCoordP4uiv GLEW_GET_FUN(__glewTexCoordP4uiv) +#define glVertexAttribP1ui GLEW_GET_FUN(__glewVertexAttribP1ui) +#define glVertexAttribP1uiv GLEW_GET_FUN(__glewVertexAttribP1uiv) +#define glVertexAttribP2ui GLEW_GET_FUN(__glewVertexAttribP2ui) +#define glVertexAttribP2uiv GLEW_GET_FUN(__glewVertexAttribP2uiv) +#define glVertexAttribP3ui GLEW_GET_FUN(__glewVertexAttribP3ui) +#define glVertexAttribP3uiv GLEW_GET_FUN(__glewVertexAttribP3uiv) +#define glVertexAttribP4ui GLEW_GET_FUN(__glewVertexAttribP4ui) +#define glVertexAttribP4uiv GLEW_GET_FUN(__glewVertexAttribP4uiv) +#define glVertexP2ui GLEW_GET_FUN(__glewVertexP2ui) +#define glVertexP2uiv GLEW_GET_FUN(__glewVertexP2uiv) +#define glVertexP3ui GLEW_GET_FUN(__glewVertexP3ui) +#define glVertexP3uiv GLEW_GET_FUN(__glewVertexP3uiv) +#define glVertexP4ui GLEW_GET_FUN(__glewVertexP4ui) +#define glVertexP4uiv GLEW_GET_FUN(__glewVertexP4uiv) + +#define GLEW_ARB_vertex_type_2_10_10_10_rev GLEW_GET_VAR(__GLEW_ARB_vertex_type_2_10_10_10_rev) + +#endif /* GL_ARB_vertex_type_2_10_10_10_rev */ + +/* ------------------------- GL_ARB_viewport_array ------------------------- */ + +#ifndef GL_ARB_viewport_array +#define GL_ARB_viewport_array 1 + +#define GL_DEPTH_RANGE 0x0B70 +#define GL_VIEWPORT 0x0BA2 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_MAX_VIEWPORTS 0x825B +#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C +#define GL_VIEWPORT_BOUNDS_RANGE 0x825D +#define GL_LAYER_PROVOKING_VERTEX 0x825E +#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F +#define GL_UNDEFINED_VERTEX 0x8260 +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#define GL_LAST_VERTEX_CONVENTION 0x8E4E +#define GL_PROVOKING_VERTEX 0x8E4F + +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLclampd * v); +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLclampd n, GLclampd f); +typedef void (GLAPIENTRY * PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble* data); +typedef void (GLAPIENTRY * PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat* data); +typedef void (GLAPIENTRY * PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint * v); +typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint * v); +typedef void (GLAPIENTRY * PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat * v); +typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat * v); + +#define glDepthRangeArrayv GLEW_GET_FUN(__glewDepthRangeArrayv) +#define glDepthRangeIndexed GLEW_GET_FUN(__glewDepthRangeIndexed) +#define glGetDoublei_v GLEW_GET_FUN(__glewGetDoublei_v) +#define glGetFloati_v GLEW_GET_FUN(__glewGetFloati_v) +#define glScissorArrayv GLEW_GET_FUN(__glewScissorArrayv) +#define glScissorIndexed GLEW_GET_FUN(__glewScissorIndexed) +#define glScissorIndexedv GLEW_GET_FUN(__glewScissorIndexedv) +#define glViewportArrayv GLEW_GET_FUN(__glewViewportArrayv) +#define glViewportIndexedf GLEW_GET_FUN(__glewViewportIndexedf) +#define glViewportIndexedfv GLEW_GET_FUN(__glewViewportIndexedfv) + +#define GLEW_ARB_viewport_array GLEW_GET_VAR(__GLEW_ARB_viewport_array) + +#endif /* GL_ARB_viewport_array */ + +/* --------------------------- GL_ARB_window_pos --------------------------- */ + +#ifndef GL_ARB_window_pos +#define GL_ARB_window_pos 1 + +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVARBPROC) (const GLdouble* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVARBPROC) (const GLfloat* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVARBPROC) (const GLint* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVARBPROC) (const GLshort* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVARBPROC) (const GLdouble* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVARBPROC) (const GLfloat* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVARBPROC) (const GLint* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVARBPROC) (const GLshort* p); + +#define glWindowPos2dARB GLEW_GET_FUN(__glewWindowPos2dARB) +#define glWindowPos2dvARB GLEW_GET_FUN(__glewWindowPos2dvARB) +#define glWindowPos2fARB GLEW_GET_FUN(__glewWindowPos2fARB) +#define glWindowPos2fvARB GLEW_GET_FUN(__glewWindowPos2fvARB) +#define glWindowPos2iARB GLEW_GET_FUN(__glewWindowPos2iARB) +#define glWindowPos2ivARB GLEW_GET_FUN(__glewWindowPos2ivARB) +#define glWindowPos2sARB GLEW_GET_FUN(__glewWindowPos2sARB) +#define glWindowPos2svARB GLEW_GET_FUN(__glewWindowPos2svARB) +#define glWindowPos3dARB GLEW_GET_FUN(__glewWindowPos3dARB) +#define glWindowPos3dvARB GLEW_GET_FUN(__glewWindowPos3dvARB) +#define glWindowPos3fARB GLEW_GET_FUN(__glewWindowPos3fARB) +#define glWindowPos3fvARB GLEW_GET_FUN(__glewWindowPos3fvARB) +#define glWindowPos3iARB GLEW_GET_FUN(__glewWindowPos3iARB) +#define glWindowPos3ivARB GLEW_GET_FUN(__glewWindowPos3ivARB) +#define glWindowPos3sARB GLEW_GET_FUN(__glewWindowPos3sARB) +#define glWindowPos3svARB GLEW_GET_FUN(__glewWindowPos3svARB) + +#define GLEW_ARB_window_pos GLEW_GET_VAR(__GLEW_ARB_window_pos) + +#endif /* GL_ARB_window_pos */ + +/* ----------------------- GL_ARM_mali_program_binary ---------------------- */ + +#ifndef GL_ARM_mali_program_binary +#define GL_ARM_mali_program_binary 1 + +#define GL_MALI_PROGRAM_BINARY_ARM 0x8F61 + +#define GLEW_ARM_mali_program_binary GLEW_GET_VAR(__GLEW_ARM_mali_program_binary) + +#endif /* GL_ARM_mali_program_binary */ + +/* ----------------------- GL_ARM_mali_shader_binary ----------------------- */ + +#ifndef GL_ARM_mali_shader_binary +#define GL_ARM_mali_shader_binary 1 + +#define GL_MALI_SHADER_BINARY_ARM 0x8F60 + +#define GLEW_ARM_mali_shader_binary GLEW_GET_VAR(__GLEW_ARM_mali_shader_binary) + +#endif /* GL_ARM_mali_shader_binary */ + +/* ------------------------------ GL_ARM_rgba8 ----------------------------- */ + +#ifndef GL_ARM_rgba8 +#define GL_ARM_rgba8 1 + +#define GL_RGBA8_OES 0x8058 + +#define GLEW_ARM_rgba8 GLEW_GET_VAR(__GLEW_ARM_rgba8) + +#endif /* GL_ARM_rgba8 */ + +/* --------------------- GL_ARM_shader_core_properties --------------------- */ + +#ifndef GL_ARM_shader_core_properties +#define GL_ARM_shader_core_properties 1 + +#define GL_SHADER_CORE_COUNT_ARM 0x96F0 +#define GL_SHADER_CORE_ACTIVE_COUNT_ARM 0x96F1 +#define GL_SHADER_CORE_PRESENT_MASK_ARM 0x96F2 +#define GL_SHADER_CORE_MAX_WARP_COUNT_ARM 0x96F3 +#define GL_SHADER_CORE_PIXEL_RATE_ARM 0x96F4 +#define GL_SHADER_CORE_TEXEL_RATE_ARM 0x96F5 +#define GL_SHADER_CORE_FMA_RATE_ARM 0x96F6 + +typedef void (GLAPIENTRY * PFNGLMAXACTIVESHADERCORESARMPROC) (GLuint count); + +#define glMaxActiveShaderCoresARM GLEW_GET_FUN(__glewMaxActiveShaderCoresARM) + +#define GLEW_ARM_shader_core_properties GLEW_GET_VAR(__GLEW_ARM_shader_core_properties) + +#endif /* GL_ARM_shader_core_properties */ + +/* -------------------- GL_ARM_shader_framebuffer_fetch -------------------- */ + +#ifndef GL_ARM_shader_framebuffer_fetch +#define GL_ARM_shader_framebuffer_fetch 1 + +#define GL_FETCH_PER_SAMPLE_ARM 0x8F65 +#define GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM 0x8F66 + +#define GLEW_ARM_shader_framebuffer_fetch GLEW_GET_VAR(__GLEW_ARM_shader_framebuffer_fetch) + +#endif /* GL_ARM_shader_framebuffer_fetch */ + +/* ------------- GL_ARM_shader_framebuffer_fetch_depth_stencil ------------- */ + +#ifndef GL_ARM_shader_framebuffer_fetch_depth_stencil +#define GL_ARM_shader_framebuffer_fetch_depth_stencil 1 + +#define GLEW_ARM_shader_framebuffer_fetch_depth_stencil GLEW_GET_VAR(__GLEW_ARM_shader_framebuffer_fetch_depth_stencil) + +#endif /* GL_ARM_shader_framebuffer_fetch_depth_stencil */ + +/* ---------------- GL_ARM_texture_unnormalized_coordinates ---------------- */ + +#ifndef GL_ARM_texture_unnormalized_coordinates +#define GL_ARM_texture_unnormalized_coordinates 1 + +#define GL_TEXTURE_UNNORMALIZED_COORDINATES_ARM 0x8F6A + +#define GLEW_ARM_texture_unnormalized_coordinates GLEW_GET_VAR(__GLEW_ARM_texture_unnormalized_coordinates) + +#endif /* GL_ARM_texture_unnormalized_coordinates */ + +/* ------------------------- GL_ATIX_point_sprites ------------------------- */ + +#ifndef GL_ATIX_point_sprites +#define GL_ATIX_point_sprites 1 + +#define GL_TEXTURE_POINT_MODE_ATIX 0x60B0 +#define GL_TEXTURE_POINT_ONE_COORD_ATIX 0x60B1 +#define GL_TEXTURE_POINT_SPRITE_ATIX 0x60B2 +#define GL_POINT_SPRITE_CULL_MODE_ATIX 0x60B3 +#define GL_POINT_SPRITE_CULL_CENTER_ATIX 0x60B4 +#define GL_POINT_SPRITE_CULL_CLIP_ATIX 0x60B5 + +#define GLEW_ATIX_point_sprites GLEW_GET_VAR(__GLEW_ATIX_point_sprites) + +#endif /* GL_ATIX_point_sprites */ + +/* ---------------------- GL_ATIX_texture_env_combine3 --------------------- */ + +#ifndef GL_ATIX_texture_env_combine3 +#define GL_ATIX_texture_env_combine3 1 + +#define GL_MODULATE_ADD_ATIX 0x8744 +#define GL_MODULATE_SIGNED_ADD_ATIX 0x8745 +#define GL_MODULATE_SUBTRACT_ATIX 0x8746 + +#define GLEW_ATIX_texture_env_combine3 GLEW_GET_VAR(__GLEW_ATIX_texture_env_combine3) + +#endif /* GL_ATIX_texture_env_combine3 */ + +/* ----------------------- GL_ATIX_texture_env_route ----------------------- */ + +#ifndef GL_ATIX_texture_env_route +#define GL_ATIX_texture_env_route 1 + +#define GL_SECONDARY_COLOR_ATIX 0x8747 +#define GL_TEXTURE_OUTPUT_RGB_ATIX 0x8748 +#define GL_TEXTURE_OUTPUT_ALPHA_ATIX 0x8749 + +#define GLEW_ATIX_texture_env_route GLEW_GET_VAR(__GLEW_ATIX_texture_env_route) + +#endif /* GL_ATIX_texture_env_route */ + +/* ---------------- GL_ATIX_vertex_shader_output_point_size ---------------- */ + +#ifndef GL_ATIX_vertex_shader_output_point_size +#define GL_ATIX_vertex_shader_output_point_size 1 + +#define GL_OUTPUT_POINT_SIZE_ATIX 0x610E + +#define GLEW_ATIX_vertex_shader_output_point_size GLEW_GET_VAR(__GLEW_ATIX_vertex_shader_output_point_size) + +#endif /* GL_ATIX_vertex_shader_output_point_size */ + +/* -------------------------- GL_ATI_draw_buffers -------------------------- */ + +#ifndef GL_ATI_draw_buffers +#define GL_ATI_draw_buffers 1 + +#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 +#define GL_DRAW_BUFFER0_ATI 0x8825 +#define GL_DRAW_BUFFER1_ATI 0x8826 +#define GL_DRAW_BUFFER2_ATI 0x8827 +#define GL_DRAW_BUFFER3_ATI 0x8828 +#define GL_DRAW_BUFFER4_ATI 0x8829 +#define GL_DRAW_BUFFER5_ATI 0x882A +#define GL_DRAW_BUFFER6_ATI 0x882B +#define GL_DRAW_BUFFER7_ATI 0x882C +#define GL_DRAW_BUFFER8_ATI 0x882D +#define GL_DRAW_BUFFER9_ATI 0x882E +#define GL_DRAW_BUFFER10_ATI 0x882F +#define GL_DRAW_BUFFER11_ATI 0x8830 +#define GL_DRAW_BUFFER12_ATI 0x8831 +#define GL_DRAW_BUFFER13_ATI 0x8832 +#define GL_DRAW_BUFFER14_ATI 0x8833 +#define GL_DRAW_BUFFER15_ATI 0x8834 + +typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum* bufs); + +#define glDrawBuffersATI GLEW_GET_FUN(__glewDrawBuffersATI) + +#define GLEW_ATI_draw_buffers GLEW_GET_VAR(__GLEW_ATI_draw_buffers) + +#endif /* GL_ATI_draw_buffers */ + +/* -------------------------- GL_ATI_element_array ------------------------- */ + +#ifndef GL_ATI_element_array +#define GL_ATI_element_array 1 + +#define GL_ELEMENT_ARRAY_ATI 0x8768 +#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 +#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A + +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); +typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); +typedef void (GLAPIENTRY * PFNGLELEMENTPOINTERATIPROC) (GLenum type, const void *pointer); + +#define glDrawElementArrayATI GLEW_GET_FUN(__glewDrawElementArrayATI) +#define glDrawRangeElementArrayATI GLEW_GET_FUN(__glewDrawRangeElementArrayATI) +#define glElementPointerATI GLEW_GET_FUN(__glewElementPointerATI) + +#define GLEW_ATI_element_array GLEW_GET_VAR(__GLEW_ATI_element_array) + +#endif /* GL_ATI_element_array */ + +/* ------------------------- GL_ATI_envmap_bumpmap ------------------------- */ + +#ifndef GL_ATI_envmap_bumpmap +#define GL_ATI_envmap_bumpmap 1 + +#define GL_BUMP_ROT_MATRIX_ATI 0x8775 +#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 +#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 +#define GL_BUMP_TEX_UNITS_ATI 0x8778 +#define GL_DUDV_ATI 0x8779 +#define GL_DU8DV8_ATI 0x877A +#define GL_BUMP_ENVMAP_ATI 0x877B +#define GL_BUMP_TARGET_ATI 0x877C + +typedef void (GLAPIENTRY * PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); +typedef void (GLAPIENTRY * PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); +typedef void (GLAPIENTRY * PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); +typedef void (GLAPIENTRY * PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); + +#define glGetTexBumpParameterfvATI GLEW_GET_FUN(__glewGetTexBumpParameterfvATI) +#define glGetTexBumpParameterivATI GLEW_GET_FUN(__glewGetTexBumpParameterivATI) +#define glTexBumpParameterfvATI GLEW_GET_FUN(__glewTexBumpParameterfvATI) +#define glTexBumpParameterivATI GLEW_GET_FUN(__glewTexBumpParameterivATI) + +#define GLEW_ATI_envmap_bumpmap GLEW_GET_VAR(__GLEW_ATI_envmap_bumpmap) + +#endif /* GL_ATI_envmap_bumpmap */ + +/* ------------------------- GL_ATI_fragment_shader ------------------------ */ + +#ifndef GL_ATI_fragment_shader +#define GL_ATI_fragment_shader 1 + +#define GL_2X_BIT_ATI 0x00000001 +#define GL_RED_BIT_ATI 0x00000001 +#define GL_4X_BIT_ATI 0x00000002 +#define GL_COMP_BIT_ATI 0x00000002 +#define GL_GREEN_BIT_ATI 0x00000002 +#define GL_8X_BIT_ATI 0x00000004 +#define GL_BLUE_BIT_ATI 0x00000004 +#define GL_NEGATE_BIT_ATI 0x00000004 +#define GL_BIAS_BIT_ATI 0x00000008 +#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_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_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_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 + +typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +typedef void (GLAPIENTRY * 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); +typedef void (GLAPIENTRY * PFNGLBEGINFRAGMENTSHADERATIPROC) (void); +typedef void (GLAPIENTRY * PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +typedef void (GLAPIENTRY * 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); +typedef void (GLAPIENTRY * PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLENDFRAGMENTSHADERATIPROC) (void); +typedef GLuint (GLAPIENTRY * PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); +typedef void (GLAPIENTRY * PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); +typedef void (GLAPIENTRY * PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); +typedef void (GLAPIENTRY * PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat* value); + +#define glAlphaFragmentOp1ATI GLEW_GET_FUN(__glewAlphaFragmentOp1ATI) +#define glAlphaFragmentOp2ATI GLEW_GET_FUN(__glewAlphaFragmentOp2ATI) +#define glAlphaFragmentOp3ATI GLEW_GET_FUN(__glewAlphaFragmentOp3ATI) +#define glBeginFragmentShaderATI GLEW_GET_FUN(__glewBeginFragmentShaderATI) +#define glBindFragmentShaderATI GLEW_GET_FUN(__glewBindFragmentShaderATI) +#define glColorFragmentOp1ATI GLEW_GET_FUN(__glewColorFragmentOp1ATI) +#define glColorFragmentOp2ATI GLEW_GET_FUN(__glewColorFragmentOp2ATI) +#define glColorFragmentOp3ATI GLEW_GET_FUN(__glewColorFragmentOp3ATI) +#define glDeleteFragmentShaderATI GLEW_GET_FUN(__glewDeleteFragmentShaderATI) +#define glEndFragmentShaderATI GLEW_GET_FUN(__glewEndFragmentShaderATI) +#define glGenFragmentShadersATI GLEW_GET_FUN(__glewGenFragmentShadersATI) +#define glPassTexCoordATI GLEW_GET_FUN(__glewPassTexCoordATI) +#define glSampleMapATI GLEW_GET_FUN(__glewSampleMapATI) +#define glSetFragmentShaderConstantATI GLEW_GET_FUN(__glewSetFragmentShaderConstantATI) + +#define GLEW_ATI_fragment_shader GLEW_GET_VAR(__GLEW_ATI_fragment_shader) + +#endif /* GL_ATI_fragment_shader */ + +/* ------------------------ GL_ATI_map_object_buffer ----------------------- */ + +#ifndef GL_ATI_map_object_buffer +#define GL_ATI_map_object_buffer 1 + +typedef void * (GLAPIENTRY * PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (GLAPIENTRY * PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); + +#define glMapObjectBufferATI GLEW_GET_FUN(__glewMapObjectBufferATI) +#define glUnmapObjectBufferATI GLEW_GET_FUN(__glewUnmapObjectBufferATI) + +#define GLEW_ATI_map_object_buffer GLEW_GET_VAR(__GLEW_ATI_map_object_buffer) + +#endif /* GL_ATI_map_object_buffer */ + +/* ----------------------------- GL_ATI_meminfo ---------------------------- */ + +#ifndef GL_ATI_meminfo +#define GL_ATI_meminfo 1 + +#define GL_VBO_FREE_MEMORY_ATI 0x87FB +#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC +#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD + +#define GLEW_ATI_meminfo GLEW_GET_VAR(__GLEW_ATI_meminfo) + +#endif /* GL_ATI_meminfo */ + +/* -------------------------- GL_ATI_pn_triangles -------------------------- */ + +#ifndef GL_ATI_pn_triangles +#define GL_ATI_pn_triangles 1 + +#define GL_PN_TRIANGLES_ATI 0x87F0 +#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 +#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 +#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 +#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 +#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 +#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 +#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 +#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 + +typedef void (GLAPIENTRY * PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); + +#define glPNTrianglesfATI GLEW_GET_FUN(__glewPNTrianglesfATI) +#define glPNTrianglesiATI GLEW_GET_FUN(__glewPNTrianglesiATI) + +#define GLEW_ATI_pn_triangles GLEW_GET_VAR(__GLEW_ATI_pn_triangles) + +#endif /* GL_ATI_pn_triangles */ + +/* ------------------------ GL_ATI_separate_stencil ------------------------ */ + +#ifndef GL_ATI_separate_stencil +#define GL_ATI_separate_stencil 1 + +#define GL_STENCIL_BACK_FUNC_ATI 0x8800 +#define GL_STENCIL_BACK_FAIL_ATI 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 + +typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); + +#define glStencilFuncSeparateATI GLEW_GET_FUN(__glewStencilFuncSeparateATI) +#define glStencilOpSeparateATI GLEW_GET_FUN(__glewStencilOpSeparateATI) + +#define GLEW_ATI_separate_stencil GLEW_GET_VAR(__GLEW_ATI_separate_stencil) + +#endif /* GL_ATI_separate_stencil */ + +/* ----------------------- GL_ATI_shader_texture_lod ----------------------- */ + +#ifndef GL_ATI_shader_texture_lod +#define GL_ATI_shader_texture_lod 1 + +#define GLEW_ATI_shader_texture_lod GLEW_GET_VAR(__GLEW_ATI_shader_texture_lod) + +#endif /* GL_ATI_shader_texture_lod */ + +/* ---------------------- GL_ATI_text_fragment_shader ---------------------- */ + +#ifndef GL_ATI_text_fragment_shader +#define GL_ATI_text_fragment_shader 1 + +#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 + +#define GLEW_ATI_text_fragment_shader GLEW_GET_VAR(__GLEW_ATI_text_fragment_shader) + +#endif /* GL_ATI_text_fragment_shader */ + +/* --------------------- GL_ATI_texture_compression_3dc -------------------- */ + +#ifndef GL_ATI_texture_compression_3dc +#define GL_ATI_texture_compression_3dc 1 + +#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837 + +#define GLEW_ATI_texture_compression_3dc GLEW_GET_VAR(__GLEW_ATI_texture_compression_3dc) + +#endif /* GL_ATI_texture_compression_3dc */ + +/* ---------------------- GL_ATI_texture_env_combine3 ---------------------- */ + +#ifndef GL_ATI_texture_env_combine3 +#define GL_ATI_texture_env_combine3 1 + +#define GL_MODULATE_ADD_ATI 0x8744 +#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 +#define GL_MODULATE_SUBTRACT_ATI 0x8746 + +#define GLEW_ATI_texture_env_combine3 GLEW_GET_VAR(__GLEW_ATI_texture_env_combine3) + +#endif /* GL_ATI_texture_env_combine3 */ + +/* -------------------------- GL_ATI_texture_float ------------------------- */ + +#ifndef GL_ATI_texture_float +#define GL_ATI_texture_float 1 + +#define GL_RGBA_FLOAT32_ATI 0x8814 +#define GL_RGB_FLOAT32_ATI 0x8815 +#define GL_ALPHA_FLOAT32_ATI 0x8816 +#define GL_INTENSITY_FLOAT32_ATI 0x8817 +#define GL_LUMINANCE_FLOAT32_ATI 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 +#define GL_RGBA_FLOAT16_ATI 0x881A +#define GL_RGB_FLOAT16_ATI 0x881B +#define GL_ALPHA_FLOAT16_ATI 0x881C +#define GL_INTENSITY_FLOAT16_ATI 0x881D +#define GL_LUMINANCE_FLOAT16_ATI 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F + +#define GLEW_ATI_texture_float GLEW_GET_VAR(__GLEW_ATI_texture_float) + +#endif /* GL_ATI_texture_float */ + +/* ----------------------- GL_ATI_texture_mirror_once ---------------------- */ + +#ifndef GL_ATI_texture_mirror_once +#define GL_ATI_texture_mirror_once 1 + +#define GL_MIRROR_CLAMP_ATI 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 + +#define GLEW_ATI_texture_mirror_once GLEW_GET_VAR(__GLEW_ATI_texture_mirror_once) + +#endif /* GL_ATI_texture_mirror_once */ + +/* ----------------------- GL_ATI_vertex_array_object ---------------------- */ + +#ifndef GL_ATI_vertex_array_object +#define GL_ATI_vertex_array_object 1 + +#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 + +typedef void (GLAPIENTRY * PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +typedef void (GLAPIENTRY * PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (GLAPIENTRY * PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); +typedef GLuint (GLAPIENTRY * PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const void *pointer, GLenum usage); +typedef void (GLAPIENTRY * PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve); +typedef void (GLAPIENTRY * PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); + +#define glArrayObjectATI GLEW_GET_FUN(__glewArrayObjectATI) +#define glFreeObjectBufferATI GLEW_GET_FUN(__glewFreeObjectBufferATI) +#define glGetArrayObjectfvATI GLEW_GET_FUN(__glewGetArrayObjectfvATI) +#define glGetArrayObjectivATI GLEW_GET_FUN(__glewGetArrayObjectivATI) +#define glGetObjectBufferfvATI GLEW_GET_FUN(__glewGetObjectBufferfvATI) +#define glGetObjectBufferivATI GLEW_GET_FUN(__glewGetObjectBufferivATI) +#define glGetVariantArrayObjectfvATI GLEW_GET_FUN(__glewGetVariantArrayObjectfvATI) +#define glGetVariantArrayObjectivATI GLEW_GET_FUN(__glewGetVariantArrayObjectivATI) +#define glIsObjectBufferATI GLEW_GET_FUN(__glewIsObjectBufferATI) +#define glNewObjectBufferATI GLEW_GET_FUN(__glewNewObjectBufferATI) +#define glUpdateObjectBufferATI GLEW_GET_FUN(__glewUpdateObjectBufferATI) +#define glVariantArrayObjectATI GLEW_GET_FUN(__glewVariantArrayObjectATI) + +#define GLEW_ATI_vertex_array_object GLEW_GET_VAR(__GLEW_ATI_vertex_array_object) + +#endif /* GL_ATI_vertex_array_object */ + +/* ------------------- GL_ATI_vertex_attrib_array_object ------------------- */ + +#ifndef GL_ATI_vertex_attrib_array_object +#define GL_ATI_vertex_attrib_array_object 1 + +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); + +#define glGetVertexAttribArrayObjectfvATI GLEW_GET_FUN(__glewGetVertexAttribArrayObjectfvATI) +#define glGetVertexAttribArrayObjectivATI GLEW_GET_FUN(__glewGetVertexAttribArrayObjectivATI) +#define glVertexAttribArrayObjectATI GLEW_GET_FUN(__glewVertexAttribArrayObjectATI) + +#define GLEW_ATI_vertex_attrib_array_object GLEW_GET_VAR(__GLEW_ATI_vertex_attrib_array_object) + +#endif /* GL_ATI_vertex_attrib_array_object */ + +/* ------------------------- GL_ATI_vertex_streams ------------------------- */ + +#ifndef GL_ATI_vertex_streams +#define GL_ATI_vertex_streams 1 + +#define GL_MAX_VERTEX_STREAMS_ATI 0x876B +#define GL_VERTEX_SOURCE_ATI 0x876C +#define GL_VERTEX_STREAM0_ATI 0x876D +#define GL_VERTEX_STREAM1_ATI 0x876E +#define GL_VERTEX_STREAM2_ATI 0x876F +#define GL_VERTEX_STREAM3_ATI 0x8770 +#define GL_VERTEX_STREAM4_ATI 0x8771 +#define GL_VERTEX_STREAM5_ATI 0x8772 +#define GL_VERTEX_STREAM6_ATI 0x8773 +#define GL_VERTEX_STREAM7_ATI 0x8774 + +typedef void (GLAPIENTRY * PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte x, GLbyte y, GLbyte z); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (GLAPIENTRY * PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords); + +#define glClientActiveVertexStreamATI GLEW_GET_FUN(__glewClientActiveVertexStreamATI) +#define glNormalStream3bATI GLEW_GET_FUN(__glewNormalStream3bATI) +#define glNormalStream3bvATI GLEW_GET_FUN(__glewNormalStream3bvATI) +#define glNormalStream3dATI GLEW_GET_FUN(__glewNormalStream3dATI) +#define glNormalStream3dvATI GLEW_GET_FUN(__glewNormalStream3dvATI) +#define glNormalStream3fATI GLEW_GET_FUN(__glewNormalStream3fATI) +#define glNormalStream3fvATI GLEW_GET_FUN(__glewNormalStream3fvATI) +#define glNormalStream3iATI GLEW_GET_FUN(__glewNormalStream3iATI) +#define glNormalStream3ivATI GLEW_GET_FUN(__glewNormalStream3ivATI) +#define glNormalStream3sATI GLEW_GET_FUN(__glewNormalStream3sATI) +#define glNormalStream3svATI GLEW_GET_FUN(__glewNormalStream3svATI) +#define glVertexBlendEnvfATI GLEW_GET_FUN(__glewVertexBlendEnvfATI) +#define glVertexBlendEnviATI GLEW_GET_FUN(__glewVertexBlendEnviATI) +#define glVertexStream1dATI GLEW_GET_FUN(__glewVertexStream1dATI) +#define glVertexStream1dvATI GLEW_GET_FUN(__glewVertexStream1dvATI) +#define glVertexStream1fATI GLEW_GET_FUN(__glewVertexStream1fATI) +#define glVertexStream1fvATI GLEW_GET_FUN(__glewVertexStream1fvATI) +#define glVertexStream1iATI GLEW_GET_FUN(__glewVertexStream1iATI) +#define glVertexStream1ivATI GLEW_GET_FUN(__glewVertexStream1ivATI) +#define glVertexStream1sATI GLEW_GET_FUN(__glewVertexStream1sATI) +#define glVertexStream1svATI GLEW_GET_FUN(__glewVertexStream1svATI) +#define glVertexStream2dATI GLEW_GET_FUN(__glewVertexStream2dATI) +#define glVertexStream2dvATI GLEW_GET_FUN(__glewVertexStream2dvATI) +#define glVertexStream2fATI GLEW_GET_FUN(__glewVertexStream2fATI) +#define glVertexStream2fvATI GLEW_GET_FUN(__glewVertexStream2fvATI) +#define glVertexStream2iATI GLEW_GET_FUN(__glewVertexStream2iATI) +#define glVertexStream2ivATI GLEW_GET_FUN(__glewVertexStream2ivATI) +#define glVertexStream2sATI GLEW_GET_FUN(__glewVertexStream2sATI) +#define glVertexStream2svATI GLEW_GET_FUN(__glewVertexStream2svATI) +#define glVertexStream3dATI GLEW_GET_FUN(__glewVertexStream3dATI) +#define glVertexStream3dvATI GLEW_GET_FUN(__glewVertexStream3dvATI) +#define glVertexStream3fATI GLEW_GET_FUN(__glewVertexStream3fATI) +#define glVertexStream3fvATI GLEW_GET_FUN(__glewVertexStream3fvATI) +#define glVertexStream3iATI GLEW_GET_FUN(__glewVertexStream3iATI) +#define glVertexStream3ivATI GLEW_GET_FUN(__glewVertexStream3ivATI) +#define glVertexStream3sATI GLEW_GET_FUN(__glewVertexStream3sATI) +#define glVertexStream3svATI GLEW_GET_FUN(__glewVertexStream3svATI) +#define glVertexStream4dATI GLEW_GET_FUN(__glewVertexStream4dATI) +#define glVertexStream4dvATI GLEW_GET_FUN(__glewVertexStream4dvATI) +#define glVertexStream4fATI GLEW_GET_FUN(__glewVertexStream4fATI) +#define glVertexStream4fvATI GLEW_GET_FUN(__glewVertexStream4fvATI) +#define glVertexStream4iATI GLEW_GET_FUN(__glewVertexStream4iATI) +#define glVertexStream4ivATI GLEW_GET_FUN(__glewVertexStream4ivATI) +#define glVertexStream4sATI GLEW_GET_FUN(__glewVertexStream4sATI) +#define glVertexStream4svATI GLEW_GET_FUN(__glewVertexStream4svATI) + +#define GLEW_ATI_vertex_streams GLEW_GET_VAR(__GLEW_ATI_vertex_streams) + +#endif /* GL_ATI_vertex_streams */ + +/* ------------------------- GL_DMP_program_binary ------------------------- */ + +#ifndef GL_DMP_program_binary +#define GL_DMP_program_binary 1 + +#define GL_SMAPHS30_PROGRAM_BINARY_DMP 0x9251 +#define GL_SMAPHS_PROGRAM_BINARY_DMP 0x9252 +#define GL_DMP_PROGRAM_BINARY_DMP 0x9253 + +#define GLEW_DMP_program_binary GLEW_GET_VAR(__GLEW_DMP_program_binary) + +#endif /* GL_DMP_program_binary */ + +/* -------------------------- GL_DMP_shader_binary ------------------------- */ + +#ifndef GL_DMP_shader_binary +#define GL_DMP_shader_binary 1 + +#define GL_SHADER_BINARY_DMP 0x9250 + +#define GLEW_DMP_shader_binary GLEW_GET_VAR(__GLEW_DMP_shader_binary) + +#endif /* GL_DMP_shader_binary */ + +/* --------------------------- GL_EXT_422_pixels --------------------------- */ + +#ifndef GL_EXT_422_pixels +#define GL_EXT_422_pixels 1 + +#define GL_422_EXT 0x80CC +#define GL_422_REV_EXT 0x80CD +#define GL_422_AVERAGE_EXT 0x80CE +#define GL_422_REV_AVERAGE_EXT 0x80CF + +#define GLEW_EXT_422_pixels GLEW_GET_VAR(__GLEW_EXT_422_pixels) + +#endif /* GL_EXT_422_pixels */ + +/* ---------------------------- GL_EXT_Cg_shader --------------------------- */ + +#ifndef GL_EXT_Cg_shader +#define GL_EXT_Cg_shader 1 + +#define GL_CG_VERTEX_SHADER_EXT 0x890E +#define GL_CG_FRAGMENT_SHADER_EXT 0x890F + +#define GLEW_EXT_Cg_shader GLEW_GET_VAR(__GLEW_EXT_Cg_shader) + +#endif /* GL_EXT_Cg_shader */ + +/* ------------------------- GL_EXT_EGL_image_array ------------------------ */ + +#ifndef GL_EXT_EGL_image_array +#define GL_EXT_EGL_image_array 1 + +#define GLEW_EXT_EGL_image_array GLEW_GET_VAR(__GLEW_EXT_EGL_image_array) + +#endif /* GL_EXT_EGL_image_array */ + +/* ------------------ GL_EXT_EGL_image_external_wrap_modes ----------------- */ + +#ifndef GL_EXT_EGL_image_external_wrap_modes +#define GL_EXT_EGL_image_external_wrap_modes 1 + +#define GLEW_EXT_EGL_image_external_wrap_modes GLEW_GET_VAR(__GLEW_EXT_EGL_image_external_wrap_modes) + +#endif /* GL_EXT_EGL_image_external_wrap_modes */ + +/* ------------------------ GL_EXT_EGL_image_storage ----------------------- */ + +#ifndef GL_EXT_EGL_image_storage +#define GL_EXT_EGL_image_storage 1 + +typedef void (GLAPIENTRY * PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC) (GLenum target, GLeglImageOES image, const GLint* attrib_list); +typedef void (GLAPIENTRY * PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC) (GLuint texture, GLeglImageOES image, const GLint* attrib_list); + +#define glEGLImageTargetTexStorageEXT GLEW_GET_FUN(__glewEGLImageTargetTexStorageEXT) +#define glEGLImageTargetTextureStorageEXT GLEW_GET_FUN(__glewEGLImageTargetTextureStorageEXT) + +#define GLEW_EXT_EGL_image_storage GLEW_GET_VAR(__GLEW_EXT_EGL_image_storage) + +#endif /* GL_EXT_EGL_image_storage */ + +/* ------------------ GL_EXT_EGL_image_storage_compression ----------------- */ + +#ifndef GL_EXT_EGL_image_storage_compression +#define GL_EXT_EGL_image_storage_compression 1 + +#define GL_SURFACE_COMPRESSION_EXT 0x96C0 +#define GL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT 0x96C1 +#define GL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT 0x96C2 + +#define GLEW_EXT_EGL_image_storage_compression GLEW_GET_VAR(__GLEW_EXT_EGL_image_storage_compression) + +#endif /* GL_EXT_EGL_image_storage_compression */ + +/* ---------------------------- GL_EXT_EGL_sync ---------------------------- */ + +#ifndef GL_EXT_EGL_sync +#define GL_EXT_EGL_sync 1 + +#define GLEW_EXT_EGL_sync GLEW_GET_VAR(__GLEW_EXT_EGL_sync) + +#endif /* GL_EXT_EGL_sync */ + +/* --------------------------- GL_EXT_YUV_target --------------------------- */ + +#ifndef GL_EXT_YUV_target +#define GL_EXT_YUV_target 1 + +#define GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT 0x8BE7 + +#define GLEW_EXT_YUV_target GLEW_GET_VAR(__GLEW_EXT_YUV_target) + +#endif /* GL_EXT_YUV_target */ + +/* ------------------------------ GL_EXT_abgr ------------------------------ */ + +#ifndef GL_EXT_abgr +#define GL_EXT_abgr 1 + +#define GL_ABGR_EXT 0x8000 + +#define GLEW_EXT_abgr GLEW_GET_VAR(__GLEW_EXT_abgr) + +#endif /* GL_EXT_abgr */ + +/* -------------------------- GL_EXT_base_instance ------------------------- */ + +#ifndef GL_EXT_base_instance +#define GL_EXT_base_instance 1 + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); + +#define glDrawArraysInstancedBaseInstanceEXT GLEW_GET_FUN(__glewDrawArraysInstancedBaseInstanceEXT) +#define glDrawElementsInstancedBaseInstanceEXT GLEW_GET_FUN(__glewDrawElementsInstancedBaseInstanceEXT) +#define glDrawElementsInstancedBaseVertexBaseInstanceEXT GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertexBaseInstanceEXT) + +#define GLEW_EXT_base_instance GLEW_GET_VAR(__GLEW_EXT_base_instance) + +#endif /* GL_EXT_base_instance */ + +/* ------------------------------ GL_EXT_bgra ------------------------------ */ + +#ifndef GL_EXT_bgra +#define GL_EXT_bgra 1 + +#define GL_BGR_EXT 0x80E0 +#define GL_BGRA_EXT 0x80E1 + +#define GLEW_EXT_bgra GLEW_GET_VAR(__GLEW_EXT_bgra) + +#endif /* GL_EXT_bgra */ + +/* ------------------------ GL_EXT_bindable_uniform ------------------------ */ + +#ifndef GL_EXT_bindable_uniform +#define GL_EXT_bindable_uniform 1 + +#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 +#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 +#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 +#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED +#define GL_UNIFORM_BUFFER_EXT 0x8DEE +#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF + +typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location); +typedef GLintptr (GLAPIENTRY * PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location); +typedef void (GLAPIENTRY * PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer); + +#define glGetUniformBufferSizeEXT GLEW_GET_FUN(__glewGetUniformBufferSizeEXT) +#define glGetUniformOffsetEXT GLEW_GET_FUN(__glewGetUniformOffsetEXT) +#define glUniformBufferEXT GLEW_GET_FUN(__glewUniformBufferEXT) + +#define GLEW_EXT_bindable_uniform GLEW_GET_VAR(__GLEW_EXT_bindable_uniform) + +#endif /* GL_EXT_bindable_uniform */ + +/* --------------------------- GL_EXT_blend_color -------------------------- */ + +#ifndef GL_EXT_blend_color +#define GL_EXT_blend_color 1 + +#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 + +typedef void (GLAPIENTRY * PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); + +#define glBlendColorEXT GLEW_GET_FUN(__glewBlendColorEXT) + +#define GLEW_EXT_blend_color GLEW_GET_VAR(__GLEW_EXT_blend_color) + +#endif /* GL_EXT_blend_color */ + +/* --------------------- GL_EXT_blend_equation_separate -------------------- */ + +#ifndef GL_EXT_blend_equation_separate +#define GL_EXT_blend_equation_separate 1 + +#define GL_BLEND_EQUATION_RGB_EXT 0x8009 +#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); + +#define glBlendEquationSeparateEXT GLEW_GET_FUN(__glewBlendEquationSeparateEXT) + +#define GLEW_EXT_blend_equation_separate GLEW_GET_VAR(__GLEW_EXT_blend_equation_separate) + +#endif /* GL_EXT_blend_equation_separate */ + +/* ----------------------- GL_EXT_blend_func_extended ---------------------- */ + +#ifndef GL_EXT_blend_func_extended +#define GL_EXT_blend_func_extended 1 + +#define GL_SRC_ALPHA_SATURATE_EXT 0x0308 +#define GL_SRC1_ALPHA_EXT 0x8589 +#define GL_SRC1_COLOR_EXT 0x88F9 +#define GL_ONE_MINUS_SRC1_COLOR_EXT 0x88FA +#define GL_ONE_MINUS_SRC1_ALPHA_EXT 0x88FB +#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT 0x88FC +#define GL_LOCATION_INDEX_EXT 0x930F + +typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar * name); +typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATAINDEXEXTPROC) (GLuint program, const GLchar * name); +typedef GLint (GLAPIENTRY * PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC) (GLuint program, GLenum programInterface, const GLchar* name); + +#define glBindFragDataLocationIndexedEXT GLEW_GET_FUN(__glewBindFragDataLocationIndexedEXT) +#define glGetFragDataIndexEXT GLEW_GET_FUN(__glewGetFragDataIndexEXT) +#define glGetProgramResourceLocationIndexEXT GLEW_GET_FUN(__glewGetProgramResourceLocationIndexEXT) + +#define GLEW_EXT_blend_func_extended GLEW_GET_VAR(__GLEW_EXT_blend_func_extended) + +#endif /* GL_EXT_blend_func_extended */ + +/* ----------------------- GL_EXT_blend_func_separate ---------------------- */ + +#ifndef GL_EXT_blend_func_separate +#define GL_EXT_blend_func_separate 1 + +#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 + +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); + +#define glBlendFuncSeparateEXT GLEW_GET_FUN(__glewBlendFuncSeparateEXT) + +#define GLEW_EXT_blend_func_separate GLEW_GET_VAR(__GLEW_EXT_blend_func_separate) + +#endif /* GL_EXT_blend_func_separate */ + +/* ------------------------- GL_EXT_blend_logic_op ------------------------- */ + +#ifndef GL_EXT_blend_logic_op +#define GL_EXT_blend_logic_op 1 + +#define GLEW_EXT_blend_logic_op GLEW_GET_VAR(__GLEW_EXT_blend_logic_op) + +#endif /* GL_EXT_blend_logic_op */ + +/* -------------------------- GL_EXT_blend_minmax -------------------------- */ + +#ifndef GL_EXT_blend_minmax +#define GL_EXT_blend_minmax 1 + +#define GL_FUNC_ADD_EXT 0x8006 +#define GL_MIN_EXT 0x8007 +#define GL_MAX_EXT 0x8008 +#define GL_BLEND_EQUATION_EXT 0x8009 + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); + +#define glBlendEquationEXT GLEW_GET_FUN(__glewBlendEquationEXT) + +#define GLEW_EXT_blend_minmax GLEW_GET_VAR(__GLEW_EXT_blend_minmax) + +#endif /* GL_EXT_blend_minmax */ + +/* ------------------------- GL_EXT_blend_subtract ------------------------- */ + +#ifndef GL_EXT_blend_subtract +#define GL_EXT_blend_subtract 1 + +#define GL_FUNC_SUBTRACT_EXT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B + +#define GLEW_EXT_blend_subtract GLEW_GET_VAR(__GLEW_EXT_blend_subtract) + +#endif /* GL_EXT_blend_subtract */ + +/* ------------------------- GL_EXT_buffer_storage ------------------------- */ + +#ifndef GL_EXT_buffer_storage +#define GL_EXT_buffer_storage 1 + +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MAP_PERSISTENT_BIT_EXT 0x0040 +#define GL_MAP_COHERENT_BIT_EXT 0x0080 +#define GL_DYNAMIC_STORAGE_BIT_EXT 0x0100 +#define GL_CLIENT_STORAGE_BIT_EXT 0x0200 +#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT 0x00004000 +#define GL_BUFFER_IMMUTABLE_STORAGE_EXT 0x821F +#define GL_BUFFER_STORAGE_FLAGS_EXT 0x8220 + +typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEEXTPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); + +#define glBufferStorageEXT GLEW_GET_FUN(__glewBufferStorageEXT) + +#define GLEW_EXT_buffer_storage GLEW_GET_VAR(__GLEW_EXT_buffer_storage) + +#endif /* GL_EXT_buffer_storage */ + +/* -------------------------- GL_EXT_clear_texture ------------------------- */ + +#ifndef GL_EXT_clear_texture +#define GL_EXT_clear_texture 1 + +typedef void (GLAPIENTRY * PFNGLCLEARTEXIMAGEEXTPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); +typedef void (GLAPIENTRY * PFNGLCLEARTEXSUBIMAGEEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); + +#define glClearTexImageEXT GLEW_GET_FUN(__glewClearTexImageEXT) +#define glClearTexSubImageEXT GLEW_GET_FUN(__glewClearTexSubImageEXT) + +#define GLEW_EXT_clear_texture GLEW_GET_VAR(__GLEW_EXT_clear_texture) + +#endif /* GL_EXT_clear_texture */ + +/* -------------------------- GL_EXT_clip_control -------------------------- */ + +#ifndef GL_EXT_clip_control +#define GL_EXT_clip_control 1 + +#define GL_LOWER_LEFT_EXT 0x8CA1 +#define GL_UPPER_LEFT_EXT 0x8CA2 +#define GL_CLIP_ORIGIN_EXT 0x935C +#define GL_CLIP_DEPTH_MODE_EXT 0x935D +#define GL_NEGATIVE_ONE_TO_ONE_EXT 0x935E +#define GL_ZERO_TO_ONE_EXT 0x935F + +typedef void (GLAPIENTRY * PFNGLCLIPCONTROLEXTPROC) (GLenum origin, GLenum depth); + +#define glClipControlEXT GLEW_GET_FUN(__glewClipControlEXT) + +#define GLEW_EXT_clip_control GLEW_GET_VAR(__GLEW_EXT_clip_control) + +#endif /* GL_EXT_clip_control */ + +/* ----------------------- GL_EXT_clip_cull_distance ----------------------- */ + +#ifndef GL_EXT_clip_cull_distance +#define GL_EXT_clip_cull_distance 1 + +#define GL_MAX_CLIP_DISTANCES_EXT 0x0D32 +#define GL_CLIP_DISTANCE0_EXT 0x3000 +#define GL_CLIP_DISTANCE1_EXT 0x3001 +#define GL_CLIP_DISTANCE2_EXT 0x3002 +#define GL_CLIP_DISTANCE3_EXT 0x3003 +#define GL_CLIP_DISTANCE4_EXT 0x3004 +#define GL_CLIP_DISTANCE5_EXT 0x3005 +#define GL_CLIP_DISTANCE6_EXT 0x3006 +#define GL_CLIP_DISTANCE7_EXT 0x3007 +#define GL_MAX_CULL_DISTANCES_EXT 0x82F9 +#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT 0x82FA + +#define GLEW_EXT_clip_cull_distance GLEW_GET_VAR(__GLEW_EXT_clip_cull_distance) + +#endif /* GL_EXT_clip_cull_distance */ + +/* ------------------------ GL_EXT_clip_volume_hint ------------------------ */ + +#ifndef GL_EXT_clip_volume_hint +#define GL_EXT_clip_volume_hint 1 + +#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 + +#define GLEW_EXT_clip_volume_hint GLEW_GET_VAR(__GLEW_EXT_clip_volume_hint) + +#endif /* GL_EXT_clip_volume_hint */ + +/* ------------------------------ GL_EXT_cmyka ----------------------------- */ + +#ifndef GL_EXT_cmyka +#define GL_EXT_cmyka 1 + +#define GL_CMYK_EXT 0x800C +#define GL_CMYKA_EXT 0x800D +#define GL_PACK_CMYK_HINT_EXT 0x800E +#define GL_UNPACK_CMYK_HINT_EXT 0x800F + +#define GLEW_EXT_cmyka GLEW_GET_VAR(__GLEW_EXT_cmyka) + +#endif /* GL_EXT_cmyka */ + +/* ----------------------- GL_EXT_color_buffer_float ----------------------- */ + +#ifndef GL_EXT_color_buffer_float +#define GL_EXT_color_buffer_float 1 + +#define GLEW_EXT_color_buffer_float GLEW_GET_VAR(__GLEW_EXT_color_buffer_float) + +#endif /* GL_EXT_color_buffer_float */ + +/* --------------------- GL_EXT_color_buffer_half_float -------------------- */ + +#ifndef GL_EXT_color_buffer_half_float +#define GL_EXT_color_buffer_half_float 1 + +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211 +#define GL_R16F_EXT 0x822D +#define GL_RG16F_EXT 0x822F +#define GL_RGBA16F_EXT 0x881A +#define GL_RGB16F_EXT 0x881B +#define GL_UNSIGNED_NORMALIZED_EXT 0x8C17 + +#define GLEW_EXT_color_buffer_half_float GLEW_GET_VAR(__GLEW_EXT_color_buffer_half_float) + +#endif /* GL_EXT_color_buffer_half_float */ + +/* ------------------------- GL_EXT_color_subtable ------------------------- */ + +#ifndef GL_EXT_color_subtable +#define GL_EXT_color_subtable 1 + +typedef void (GLAPIENTRY * PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); +typedef void (GLAPIENTRY * PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); + +#define glColorSubTableEXT GLEW_GET_FUN(__glewColorSubTableEXT) +#define glCopyColorSubTableEXT GLEW_GET_FUN(__glewCopyColorSubTableEXT) + +#define GLEW_EXT_color_subtable GLEW_GET_VAR(__GLEW_EXT_color_subtable) + +#endif /* GL_EXT_color_subtable */ + +/* ---------------------- GL_EXT_compiled_vertex_array --------------------- */ + +#ifndef GL_EXT_compiled_vertex_array +#define GL_EXT_compiled_vertex_array 1 + +#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 +#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 + +typedef void (GLAPIENTRY * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); +typedef void (GLAPIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void); + +#define glLockArraysEXT GLEW_GET_FUN(__glewLockArraysEXT) +#define glUnlockArraysEXT GLEW_GET_FUN(__glewUnlockArraysEXT) + +#define GLEW_EXT_compiled_vertex_array GLEW_GET_VAR(__GLEW_EXT_compiled_vertex_array) + +#endif /* GL_EXT_compiled_vertex_array */ + +/* ---------------- GL_EXT_compressed_ETC1_RGB8_sub_texture ---------------- */ + +#ifndef GL_EXT_compressed_ETC1_RGB8_sub_texture +#define GL_EXT_compressed_ETC1_RGB8_sub_texture 1 + +#define GLEW_EXT_compressed_ETC1_RGB8_sub_texture GLEW_GET_VAR(__GLEW_EXT_compressed_ETC1_RGB8_sub_texture) + +#endif /* GL_EXT_compressed_ETC1_RGB8_sub_texture */ + +/* ----------------------- GL_EXT_conservative_depth ----------------------- */ + +#ifndef GL_EXT_conservative_depth +#define GL_EXT_conservative_depth 1 + +#define GLEW_EXT_conservative_depth GLEW_GET_VAR(__GLEW_EXT_conservative_depth) + +#endif /* GL_EXT_conservative_depth */ + +/* --------------------------- GL_EXT_convolution -------------------------- */ + +#ifndef GL_EXT_convolution +#define GL_EXT_convolution 1 + +#define GL_CONVOLUTION_1D_EXT 0x8010 +#define GL_CONVOLUTION_2D_EXT 0x8011 +#define GL_SEPARABLE_2D_EXT 0x8012 +#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 +#define GL_REDUCE_EXT 0x8016 +#define GL_CONVOLUTION_FORMAT_EXT 0x8017 +#define GL_CONVOLUTION_WIDTH_EXT 0x8018 +#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 + +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *image); +typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); +typedef void (GLAPIENTRY * PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); + +#define glConvolutionFilter1DEXT GLEW_GET_FUN(__glewConvolutionFilter1DEXT) +#define glConvolutionFilter2DEXT GLEW_GET_FUN(__glewConvolutionFilter2DEXT) +#define glConvolutionParameterfEXT GLEW_GET_FUN(__glewConvolutionParameterfEXT) +#define glConvolutionParameterfvEXT GLEW_GET_FUN(__glewConvolutionParameterfvEXT) +#define glConvolutionParameteriEXT GLEW_GET_FUN(__glewConvolutionParameteriEXT) +#define glConvolutionParameterivEXT GLEW_GET_FUN(__glewConvolutionParameterivEXT) +#define glCopyConvolutionFilter1DEXT GLEW_GET_FUN(__glewCopyConvolutionFilter1DEXT) +#define glCopyConvolutionFilter2DEXT GLEW_GET_FUN(__glewCopyConvolutionFilter2DEXT) +#define glGetConvolutionFilterEXT GLEW_GET_FUN(__glewGetConvolutionFilterEXT) +#define glGetConvolutionParameterfvEXT GLEW_GET_FUN(__glewGetConvolutionParameterfvEXT) +#define glGetConvolutionParameterivEXT GLEW_GET_FUN(__glewGetConvolutionParameterivEXT) +#define glGetSeparableFilterEXT GLEW_GET_FUN(__glewGetSeparableFilterEXT) +#define glSeparableFilter2DEXT GLEW_GET_FUN(__glewSeparableFilter2DEXT) + +#define GLEW_EXT_convolution GLEW_GET_VAR(__GLEW_EXT_convolution) + +#endif /* GL_EXT_convolution */ + +/* ------------------------ GL_EXT_coordinate_frame ------------------------ */ + +#ifndef GL_EXT_coordinate_frame +#define GL_EXT_coordinate_frame 1 + +#define GL_TANGENT_ARRAY_EXT 0x8439 +#define GL_BINORMAL_ARRAY_EXT 0x843A +#define GL_CURRENT_TANGENT_EXT 0x843B +#define GL_CURRENT_BINORMAL_EXT 0x843C +#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E +#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F +#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 +#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 +#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 +#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 +#define GL_MAP1_TANGENT_EXT 0x8444 +#define GL_MAP2_TANGENT_EXT 0x8445 +#define GL_MAP1_BINORMAL_EXT 0x8446 +#define GL_MAP2_BINORMAL_EXT 0x8447 + +typedef void (GLAPIENTRY * PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, void *pointer); +typedef void (GLAPIENTRY * PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, void *pointer); + +#define glBinormalPointerEXT GLEW_GET_FUN(__glewBinormalPointerEXT) +#define glTangentPointerEXT GLEW_GET_FUN(__glewTangentPointerEXT) + +#define GLEW_EXT_coordinate_frame GLEW_GET_VAR(__GLEW_EXT_coordinate_frame) + +#endif /* GL_EXT_coordinate_frame */ + +/* --------------------------- GL_EXT_copy_image --------------------------- */ + +#ifndef GL_EXT_copy_image +#define GL_EXT_copy_image 1 + +typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATAEXTPROC) (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); + +#define glCopyImageSubDataEXT GLEW_GET_FUN(__glewCopyImageSubDataEXT) + +#define GLEW_EXT_copy_image GLEW_GET_VAR(__GLEW_EXT_copy_image) + +#endif /* GL_EXT_copy_image */ + +/* -------------------------- GL_EXT_copy_texture -------------------------- */ + +#ifndef GL_EXT_copy_texture +#define GL_EXT_copy_texture 1 + +typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); + +#define glCopyTexImage1DEXT GLEW_GET_FUN(__glewCopyTexImage1DEXT) +#define glCopyTexImage2DEXT GLEW_GET_FUN(__glewCopyTexImage2DEXT) +#define glCopyTexSubImage1DEXT GLEW_GET_FUN(__glewCopyTexSubImage1DEXT) +#define glCopyTexSubImage2DEXT GLEW_GET_FUN(__glewCopyTexSubImage2DEXT) +#define glCopyTexSubImage3DEXT GLEW_GET_FUN(__glewCopyTexSubImage3DEXT) + +#define GLEW_EXT_copy_texture GLEW_GET_VAR(__GLEW_EXT_copy_texture) + +#endif /* GL_EXT_copy_texture */ + +/* --------------------------- GL_EXT_cull_vertex -------------------------- */ + +#ifndef GL_EXT_cull_vertex +#define GL_EXT_cull_vertex 1 + +#define GL_CULL_VERTEX_EXT 0x81AA +#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB +#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC + +typedef void (GLAPIENTRY * PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat* params); + +#define glCullParameterdvEXT GLEW_GET_FUN(__glewCullParameterdvEXT) +#define glCullParameterfvEXT GLEW_GET_FUN(__glewCullParameterfvEXT) + +#define GLEW_EXT_cull_vertex GLEW_GET_VAR(__GLEW_EXT_cull_vertex) + +#endif /* GL_EXT_cull_vertex */ + +/* --------------------------- GL_EXT_debug_label -------------------------- */ + +#ifndef GL_EXT_debug_label +#define GL_EXT_debug_label 1 + +#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F +#define GL_PROGRAM_OBJECT_EXT 0x8B40 +#define GL_SHADER_OBJECT_EXT 0x8B48 +#define GL_BUFFER_OBJECT_EXT 0x9151 +#define GL_QUERY_OBJECT_EXT 0x9153 +#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 + +typedef void (GLAPIENTRY * PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei* length, GLchar *label); +typedef void (GLAPIENTRY * PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar* label); + +#define glGetObjectLabelEXT GLEW_GET_FUN(__glewGetObjectLabelEXT) +#define glLabelObjectEXT GLEW_GET_FUN(__glewLabelObjectEXT) + +#define GLEW_EXT_debug_label GLEW_GET_VAR(__GLEW_EXT_debug_label) + +#endif /* GL_EXT_debug_label */ + +/* -------------------------- GL_EXT_debug_marker -------------------------- */ + +#ifndef GL_EXT_debug_marker +#define GL_EXT_debug_marker 1 + +typedef void (GLAPIENTRY * PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar* marker); +typedef void (GLAPIENTRY * PFNGLPOPGROUPMARKEREXTPROC) (void); +typedef void (GLAPIENTRY * PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar* marker); + +#define glInsertEventMarkerEXT GLEW_GET_FUN(__glewInsertEventMarkerEXT) +#define glPopGroupMarkerEXT GLEW_GET_FUN(__glewPopGroupMarkerEXT) +#define glPushGroupMarkerEXT GLEW_GET_FUN(__glewPushGroupMarkerEXT) + +#define GLEW_EXT_debug_marker GLEW_GET_VAR(__GLEW_EXT_debug_marker) + +#endif /* GL_EXT_debug_marker */ + +/* ------------------------ GL_EXT_depth_bounds_test ----------------------- */ + +#ifndef GL_EXT_depth_bounds_test +#define GL_EXT_depth_bounds_test 1 + +#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 +#define GL_DEPTH_BOUNDS_EXT 0x8891 + +typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); + +#define glDepthBoundsEXT GLEW_GET_FUN(__glewDepthBoundsEXT) + +#define GLEW_EXT_depth_bounds_test GLEW_GET_VAR(__GLEW_EXT_depth_bounds_test) + +#endif /* GL_EXT_depth_bounds_test */ + +/* --------------------------- GL_EXT_depth_clamp -------------------------- */ + +#ifndef GL_EXT_depth_clamp +#define GL_EXT_depth_clamp 1 + +#define GL_DEPTH_CLAMP_EXT 0x864F + +#define GLEW_EXT_depth_clamp GLEW_GET_VAR(__GLEW_EXT_depth_clamp) + +#endif /* GL_EXT_depth_clamp */ + +/* ----------------------- GL_EXT_direct_state_access ---------------------- */ + +#ifndef GL_EXT_direct_state_access +#define GL_EXT_direct_state_access 1 + +#define GL_PROGRAM_MATRIX_EXT 0x8E2D +#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E +#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F + +typedef void (GLAPIENTRY * PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture); +typedef GLenum (GLAPIENTRY * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target); +typedef void (GLAPIENTRY * PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, 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 (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, 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 (GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); +typedef void (GLAPIENTRY * PFNGLDISABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); +typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); +typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); +typedef void (GLAPIENTRY * PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); +typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum* bufs); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); +typedef void (GLAPIENTRY * PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target); +typedef void (GLAPIENTRY * PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target); +typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, void *img); +typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, void *img); +typedef void (GLAPIENTRY * PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETDOUBLEI_VEXTPROC) (GLenum pname, GLuint index, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETFLOATI_VEXTPROC) (GLenum pname, GLuint index, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint* param); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, void** params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); +typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, void *string); +typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, void** params); +typedef void (GLAPIENTRY * PFNGLGETPOINTERI_VEXTPROC) (GLenum pname, GLuint index, void** params); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint* param); +typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERVEXTPROC) (GLuint vaobj, GLenum pname, GLint* param); +typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, void** param); +typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERVEXTPROC) (GLuint vaobj, GLenum pname, void** param); +typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access); +typedef void * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void (GLAPIENTRY * PFNGLMATRIXFRUSTUMEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); +typedef void (GLAPIENTRY * PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum matrixMode); +typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m); +typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m); +typedef void (GLAPIENTRY * PFNGLMATRIXLOADDEXTPROC) (GLenum matrixMode, const GLdouble* m); +typedef void (GLAPIENTRY * PFNGLMATRIXLOADFEXTPROC) (GLenum matrixMode, const GLfloat* m); +typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m); +typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m); +typedef void (GLAPIENTRY * PFNGLMATRIXMULTDEXTPROC) (GLenum matrixMode, const GLdouble* m); +typedef void (GLAPIENTRY * PFNGLMATRIXMULTFEXTPROC) (GLenum matrixMode, const GLfloat* m); +typedef void (GLAPIENTRY * PFNGLMATRIXORTHOEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); +typedef void (GLAPIENTRY * PFNGLMATRIXPOPEXTPROC) (GLenum matrixMode); +typedef void (GLAPIENTRY * PFNGLMATRIXPUSHEXTPROC) (GLenum matrixMode); +typedef void (GLAPIENTRY * PFNGLMATRIXROTATEDEXTPROC) (GLenum matrixMode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLMATRIXROTATEFEXTPROC) (GLenum matrixMode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLMATRIXSCALEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLMATRIXSCALEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer); +typedef void (GLAPIENTRY * PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); +typedef void (GLAPIENTRY * PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* param); +typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* param); +typedef void (GLAPIENTRY * PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +typedef void (GLAPIENTRY * PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const void *string); +typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); +typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat* param); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* param); +typedef void (GLAPIENTRY * PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +typedef GLboolean (GLAPIENTRY * PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYINDEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYNORMALOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC) (GLuint vaobj, GLuint index, GLuint divisor); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); + +#define glBindMultiTextureEXT GLEW_GET_FUN(__glewBindMultiTextureEXT) +#define glCheckNamedFramebufferStatusEXT GLEW_GET_FUN(__glewCheckNamedFramebufferStatusEXT) +#define glClientAttribDefaultEXT GLEW_GET_FUN(__glewClientAttribDefaultEXT) +#define glCompressedMultiTexImage1DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage1DEXT) +#define glCompressedMultiTexImage2DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage2DEXT) +#define glCompressedMultiTexImage3DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage3DEXT) +#define glCompressedMultiTexSubImage1DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage1DEXT) +#define glCompressedMultiTexSubImage2DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage2DEXT) +#define glCompressedMultiTexSubImage3DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage3DEXT) +#define glCompressedTextureImage1DEXT GLEW_GET_FUN(__glewCompressedTextureImage1DEXT) +#define glCompressedTextureImage2DEXT GLEW_GET_FUN(__glewCompressedTextureImage2DEXT) +#define glCompressedTextureImage3DEXT GLEW_GET_FUN(__glewCompressedTextureImage3DEXT) +#define glCompressedTextureSubImage1DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage1DEXT) +#define glCompressedTextureSubImage2DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage2DEXT) +#define glCompressedTextureSubImage3DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage3DEXT) +#define glCopyMultiTexImage1DEXT GLEW_GET_FUN(__glewCopyMultiTexImage1DEXT) +#define glCopyMultiTexImage2DEXT GLEW_GET_FUN(__glewCopyMultiTexImage2DEXT) +#define glCopyMultiTexSubImage1DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage1DEXT) +#define glCopyMultiTexSubImage2DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage2DEXT) +#define glCopyMultiTexSubImage3DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage3DEXT) +#define glCopyTextureImage1DEXT GLEW_GET_FUN(__glewCopyTextureImage1DEXT) +#define glCopyTextureImage2DEXT GLEW_GET_FUN(__glewCopyTextureImage2DEXT) +#define glCopyTextureSubImage1DEXT GLEW_GET_FUN(__glewCopyTextureSubImage1DEXT) +#define glCopyTextureSubImage2DEXT GLEW_GET_FUN(__glewCopyTextureSubImage2DEXT) +#define glCopyTextureSubImage3DEXT GLEW_GET_FUN(__glewCopyTextureSubImage3DEXT) +#define glDisableClientStateIndexedEXT GLEW_GET_FUN(__glewDisableClientStateIndexedEXT) +#define glDisableClientStateiEXT GLEW_GET_FUN(__glewDisableClientStateiEXT) +#define glDisableVertexArrayAttribEXT GLEW_GET_FUN(__glewDisableVertexArrayAttribEXT) +#define glDisableVertexArrayEXT GLEW_GET_FUN(__glewDisableVertexArrayEXT) +#define glEnableClientStateIndexedEXT GLEW_GET_FUN(__glewEnableClientStateIndexedEXT) +#define glEnableClientStateiEXT GLEW_GET_FUN(__glewEnableClientStateiEXT) +#define glEnableVertexArrayAttribEXT GLEW_GET_FUN(__glewEnableVertexArrayAttribEXT) +#define glEnableVertexArrayEXT GLEW_GET_FUN(__glewEnableVertexArrayEXT) +#define glFlushMappedNamedBufferRangeEXT GLEW_GET_FUN(__glewFlushMappedNamedBufferRangeEXT) +#define glFramebufferDrawBufferEXT GLEW_GET_FUN(__glewFramebufferDrawBufferEXT) +#define glFramebufferDrawBuffersEXT GLEW_GET_FUN(__glewFramebufferDrawBuffersEXT) +#define glFramebufferReadBufferEXT GLEW_GET_FUN(__glewFramebufferReadBufferEXT) +#define glGenerateMultiTexMipmapEXT GLEW_GET_FUN(__glewGenerateMultiTexMipmapEXT) +#define glGenerateTextureMipmapEXT GLEW_GET_FUN(__glewGenerateTextureMipmapEXT) +#define glGetCompressedMultiTexImageEXT GLEW_GET_FUN(__glewGetCompressedMultiTexImageEXT) +#define glGetCompressedTextureImageEXT GLEW_GET_FUN(__glewGetCompressedTextureImageEXT) +#define glGetDoubleIndexedvEXT GLEW_GET_FUN(__glewGetDoubleIndexedvEXT) +#define glGetDoublei_vEXT GLEW_GET_FUN(__glewGetDoublei_vEXT) +#define glGetFloatIndexedvEXT GLEW_GET_FUN(__glewGetFloatIndexedvEXT) +#define glGetFloati_vEXT GLEW_GET_FUN(__glewGetFloati_vEXT) +#define glGetFramebufferParameterivEXT GLEW_GET_FUN(__glewGetFramebufferParameterivEXT) +#define glGetMultiTexEnvfvEXT GLEW_GET_FUN(__glewGetMultiTexEnvfvEXT) +#define glGetMultiTexEnvivEXT GLEW_GET_FUN(__glewGetMultiTexEnvivEXT) +#define glGetMultiTexGendvEXT GLEW_GET_FUN(__glewGetMultiTexGendvEXT) +#define glGetMultiTexGenfvEXT GLEW_GET_FUN(__glewGetMultiTexGenfvEXT) +#define glGetMultiTexGenivEXT GLEW_GET_FUN(__glewGetMultiTexGenivEXT) +#define glGetMultiTexImageEXT GLEW_GET_FUN(__glewGetMultiTexImageEXT) +#define glGetMultiTexLevelParameterfvEXT GLEW_GET_FUN(__glewGetMultiTexLevelParameterfvEXT) +#define glGetMultiTexLevelParameterivEXT GLEW_GET_FUN(__glewGetMultiTexLevelParameterivEXT) +#define glGetMultiTexParameterIivEXT GLEW_GET_FUN(__glewGetMultiTexParameterIivEXT) +#define glGetMultiTexParameterIuivEXT GLEW_GET_FUN(__glewGetMultiTexParameterIuivEXT) +#define glGetMultiTexParameterfvEXT GLEW_GET_FUN(__glewGetMultiTexParameterfvEXT) +#define glGetMultiTexParameterivEXT GLEW_GET_FUN(__glewGetMultiTexParameterivEXT) +#define glGetNamedBufferParameterivEXT GLEW_GET_FUN(__glewGetNamedBufferParameterivEXT) +#define glGetNamedBufferPointervEXT GLEW_GET_FUN(__glewGetNamedBufferPointervEXT) +#define glGetNamedBufferSubDataEXT GLEW_GET_FUN(__glewGetNamedBufferSubDataEXT) +#define glGetNamedFramebufferAttachmentParameterivEXT GLEW_GET_FUN(__glewGetNamedFramebufferAttachmentParameterivEXT) +#define glGetNamedProgramLocalParameterIivEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterIivEXT) +#define glGetNamedProgramLocalParameterIuivEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterIuivEXT) +#define glGetNamedProgramLocalParameterdvEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterdvEXT) +#define glGetNamedProgramLocalParameterfvEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterfvEXT) +#define glGetNamedProgramStringEXT GLEW_GET_FUN(__glewGetNamedProgramStringEXT) +#define glGetNamedProgramivEXT GLEW_GET_FUN(__glewGetNamedProgramivEXT) +#define glGetNamedRenderbufferParameterivEXT GLEW_GET_FUN(__glewGetNamedRenderbufferParameterivEXT) +#define glGetPointerIndexedvEXT GLEW_GET_FUN(__glewGetPointerIndexedvEXT) +#define glGetPointeri_vEXT GLEW_GET_FUN(__glewGetPointeri_vEXT) +#define glGetTextureImageEXT GLEW_GET_FUN(__glewGetTextureImageEXT) +#define glGetTextureLevelParameterfvEXT GLEW_GET_FUN(__glewGetTextureLevelParameterfvEXT) +#define glGetTextureLevelParameterivEXT GLEW_GET_FUN(__glewGetTextureLevelParameterivEXT) +#define glGetTextureParameterIivEXT GLEW_GET_FUN(__glewGetTextureParameterIivEXT) +#define glGetTextureParameterIuivEXT GLEW_GET_FUN(__glewGetTextureParameterIuivEXT) +#define glGetTextureParameterfvEXT GLEW_GET_FUN(__glewGetTextureParameterfvEXT) +#define glGetTextureParameterivEXT GLEW_GET_FUN(__glewGetTextureParameterivEXT) +#define glGetVertexArrayIntegeri_vEXT GLEW_GET_FUN(__glewGetVertexArrayIntegeri_vEXT) +#define glGetVertexArrayIntegervEXT GLEW_GET_FUN(__glewGetVertexArrayIntegervEXT) +#define glGetVertexArrayPointeri_vEXT GLEW_GET_FUN(__glewGetVertexArrayPointeri_vEXT) +#define glGetVertexArrayPointervEXT GLEW_GET_FUN(__glewGetVertexArrayPointervEXT) +#define glMapNamedBufferEXT GLEW_GET_FUN(__glewMapNamedBufferEXT) +#define glMapNamedBufferRangeEXT GLEW_GET_FUN(__glewMapNamedBufferRangeEXT) +#define glMatrixFrustumEXT GLEW_GET_FUN(__glewMatrixFrustumEXT) +#define glMatrixLoadIdentityEXT GLEW_GET_FUN(__glewMatrixLoadIdentityEXT) +#define glMatrixLoadTransposedEXT GLEW_GET_FUN(__glewMatrixLoadTransposedEXT) +#define glMatrixLoadTransposefEXT GLEW_GET_FUN(__glewMatrixLoadTransposefEXT) +#define glMatrixLoaddEXT GLEW_GET_FUN(__glewMatrixLoaddEXT) +#define glMatrixLoadfEXT GLEW_GET_FUN(__glewMatrixLoadfEXT) +#define glMatrixMultTransposedEXT GLEW_GET_FUN(__glewMatrixMultTransposedEXT) +#define glMatrixMultTransposefEXT GLEW_GET_FUN(__glewMatrixMultTransposefEXT) +#define glMatrixMultdEXT GLEW_GET_FUN(__glewMatrixMultdEXT) +#define glMatrixMultfEXT GLEW_GET_FUN(__glewMatrixMultfEXT) +#define glMatrixOrthoEXT GLEW_GET_FUN(__glewMatrixOrthoEXT) +#define glMatrixPopEXT GLEW_GET_FUN(__glewMatrixPopEXT) +#define glMatrixPushEXT GLEW_GET_FUN(__glewMatrixPushEXT) +#define glMatrixRotatedEXT GLEW_GET_FUN(__glewMatrixRotatedEXT) +#define glMatrixRotatefEXT GLEW_GET_FUN(__glewMatrixRotatefEXT) +#define glMatrixScaledEXT GLEW_GET_FUN(__glewMatrixScaledEXT) +#define glMatrixScalefEXT GLEW_GET_FUN(__glewMatrixScalefEXT) +#define glMatrixTranslatedEXT GLEW_GET_FUN(__glewMatrixTranslatedEXT) +#define glMatrixTranslatefEXT GLEW_GET_FUN(__glewMatrixTranslatefEXT) +#define glMultiTexBufferEXT GLEW_GET_FUN(__glewMultiTexBufferEXT) +#define glMultiTexCoordPointerEXT GLEW_GET_FUN(__glewMultiTexCoordPointerEXT) +#define glMultiTexEnvfEXT GLEW_GET_FUN(__glewMultiTexEnvfEXT) +#define glMultiTexEnvfvEXT GLEW_GET_FUN(__glewMultiTexEnvfvEXT) +#define glMultiTexEnviEXT GLEW_GET_FUN(__glewMultiTexEnviEXT) +#define glMultiTexEnvivEXT GLEW_GET_FUN(__glewMultiTexEnvivEXT) +#define glMultiTexGendEXT GLEW_GET_FUN(__glewMultiTexGendEXT) +#define glMultiTexGendvEXT GLEW_GET_FUN(__glewMultiTexGendvEXT) +#define glMultiTexGenfEXT GLEW_GET_FUN(__glewMultiTexGenfEXT) +#define glMultiTexGenfvEXT GLEW_GET_FUN(__glewMultiTexGenfvEXT) +#define glMultiTexGeniEXT GLEW_GET_FUN(__glewMultiTexGeniEXT) +#define glMultiTexGenivEXT GLEW_GET_FUN(__glewMultiTexGenivEXT) +#define glMultiTexImage1DEXT GLEW_GET_FUN(__glewMultiTexImage1DEXT) +#define glMultiTexImage2DEXT GLEW_GET_FUN(__glewMultiTexImage2DEXT) +#define glMultiTexImage3DEXT GLEW_GET_FUN(__glewMultiTexImage3DEXT) +#define glMultiTexParameterIivEXT GLEW_GET_FUN(__glewMultiTexParameterIivEXT) +#define glMultiTexParameterIuivEXT GLEW_GET_FUN(__glewMultiTexParameterIuivEXT) +#define glMultiTexParameterfEXT GLEW_GET_FUN(__glewMultiTexParameterfEXT) +#define glMultiTexParameterfvEXT GLEW_GET_FUN(__glewMultiTexParameterfvEXT) +#define glMultiTexParameteriEXT GLEW_GET_FUN(__glewMultiTexParameteriEXT) +#define glMultiTexParameterivEXT GLEW_GET_FUN(__glewMultiTexParameterivEXT) +#define glMultiTexRenderbufferEXT GLEW_GET_FUN(__glewMultiTexRenderbufferEXT) +#define glMultiTexSubImage1DEXT GLEW_GET_FUN(__glewMultiTexSubImage1DEXT) +#define glMultiTexSubImage2DEXT GLEW_GET_FUN(__glewMultiTexSubImage2DEXT) +#define glMultiTexSubImage3DEXT GLEW_GET_FUN(__glewMultiTexSubImage3DEXT) +#define glNamedBufferDataEXT GLEW_GET_FUN(__glewNamedBufferDataEXT) +#define glNamedBufferStorageEXT GLEW_GET_FUN(__glewNamedBufferStorageEXT) +#define glNamedBufferSubDataEXT GLEW_GET_FUN(__glewNamedBufferSubDataEXT) +#define glNamedCopyBufferSubDataEXT GLEW_GET_FUN(__glewNamedCopyBufferSubDataEXT) +#define glNamedFramebufferRenderbufferEXT GLEW_GET_FUN(__glewNamedFramebufferRenderbufferEXT) +#define glNamedFramebufferTexture1DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture1DEXT) +#define glNamedFramebufferTexture2DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture2DEXT) +#define glNamedFramebufferTexture3DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture3DEXT) +#define glNamedFramebufferTextureEXT GLEW_GET_FUN(__glewNamedFramebufferTextureEXT) +#define glNamedFramebufferTextureFaceEXT GLEW_GET_FUN(__glewNamedFramebufferTextureFaceEXT) +#define glNamedFramebufferTextureLayerEXT GLEW_GET_FUN(__glewNamedFramebufferTextureLayerEXT) +#define glNamedProgramLocalParameter4dEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4dEXT) +#define glNamedProgramLocalParameter4dvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4dvEXT) +#define glNamedProgramLocalParameter4fEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4fEXT) +#define glNamedProgramLocalParameter4fvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4fvEXT) +#define glNamedProgramLocalParameterI4iEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4iEXT) +#define glNamedProgramLocalParameterI4ivEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4ivEXT) +#define glNamedProgramLocalParameterI4uiEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4uiEXT) +#define glNamedProgramLocalParameterI4uivEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4uivEXT) +#define glNamedProgramLocalParameters4fvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameters4fvEXT) +#define glNamedProgramLocalParametersI4ivEXT GLEW_GET_FUN(__glewNamedProgramLocalParametersI4ivEXT) +#define glNamedProgramLocalParametersI4uivEXT GLEW_GET_FUN(__glewNamedProgramLocalParametersI4uivEXT) +#define glNamedProgramStringEXT GLEW_GET_FUN(__glewNamedProgramStringEXT) +#define glNamedRenderbufferStorageEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageEXT) +#define glNamedRenderbufferStorageMultisampleCoverageEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleCoverageEXT) +#define glNamedRenderbufferStorageMultisampleEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleEXT) +#define glProgramUniform1fEXT GLEW_GET_FUN(__glewProgramUniform1fEXT) +#define glProgramUniform1fvEXT GLEW_GET_FUN(__glewProgramUniform1fvEXT) +#define glProgramUniform1iEXT GLEW_GET_FUN(__glewProgramUniform1iEXT) +#define glProgramUniform1ivEXT GLEW_GET_FUN(__glewProgramUniform1ivEXT) +#define glProgramUniform1uiEXT GLEW_GET_FUN(__glewProgramUniform1uiEXT) +#define glProgramUniform1uivEXT GLEW_GET_FUN(__glewProgramUniform1uivEXT) +#define glProgramUniform2fEXT GLEW_GET_FUN(__glewProgramUniform2fEXT) +#define glProgramUniform2fvEXT GLEW_GET_FUN(__glewProgramUniform2fvEXT) +#define glProgramUniform2iEXT GLEW_GET_FUN(__glewProgramUniform2iEXT) +#define glProgramUniform2ivEXT GLEW_GET_FUN(__glewProgramUniform2ivEXT) +#define glProgramUniform2uiEXT GLEW_GET_FUN(__glewProgramUniform2uiEXT) +#define glProgramUniform2uivEXT GLEW_GET_FUN(__glewProgramUniform2uivEXT) +#define glProgramUniform3fEXT GLEW_GET_FUN(__glewProgramUniform3fEXT) +#define glProgramUniform3fvEXT GLEW_GET_FUN(__glewProgramUniform3fvEXT) +#define glProgramUniform3iEXT GLEW_GET_FUN(__glewProgramUniform3iEXT) +#define glProgramUniform3ivEXT GLEW_GET_FUN(__glewProgramUniform3ivEXT) +#define glProgramUniform3uiEXT GLEW_GET_FUN(__glewProgramUniform3uiEXT) +#define glProgramUniform3uivEXT GLEW_GET_FUN(__glewProgramUniform3uivEXT) +#define glProgramUniform4fEXT GLEW_GET_FUN(__glewProgramUniform4fEXT) +#define glProgramUniform4fvEXT GLEW_GET_FUN(__glewProgramUniform4fvEXT) +#define glProgramUniform4iEXT GLEW_GET_FUN(__glewProgramUniform4iEXT) +#define glProgramUniform4ivEXT GLEW_GET_FUN(__glewProgramUniform4ivEXT) +#define glProgramUniform4uiEXT GLEW_GET_FUN(__glewProgramUniform4uiEXT) +#define glProgramUniform4uivEXT GLEW_GET_FUN(__glewProgramUniform4uivEXT) +#define glProgramUniformMatrix2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2fvEXT) +#define glProgramUniformMatrix2x3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x3fvEXT) +#define glProgramUniformMatrix2x4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x4fvEXT) +#define glProgramUniformMatrix3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3fvEXT) +#define glProgramUniformMatrix3x2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x2fvEXT) +#define glProgramUniformMatrix3x4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x4fvEXT) +#define glProgramUniformMatrix4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4fvEXT) +#define glProgramUniformMatrix4x2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x2fvEXT) +#define glProgramUniformMatrix4x3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x3fvEXT) +#define glPushClientAttribDefaultEXT GLEW_GET_FUN(__glewPushClientAttribDefaultEXT) +#define glTextureBufferEXT GLEW_GET_FUN(__glewTextureBufferEXT) +#define glTextureImage1DEXT GLEW_GET_FUN(__glewTextureImage1DEXT) +#define glTextureImage2DEXT GLEW_GET_FUN(__glewTextureImage2DEXT) +#define glTextureImage3DEXT GLEW_GET_FUN(__glewTextureImage3DEXT) +#define glTexturePageCommitmentEXT GLEW_GET_FUN(__glewTexturePageCommitmentEXT) +#define glTextureParameterIivEXT GLEW_GET_FUN(__glewTextureParameterIivEXT) +#define glTextureParameterIuivEXT GLEW_GET_FUN(__glewTextureParameterIuivEXT) +#define glTextureParameterfEXT GLEW_GET_FUN(__glewTextureParameterfEXT) +#define glTextureParameterfvEXT GLEW_GET_FUN(__glewTextureParameterfvEXT) +#define glTextureParameteriEXT GLEW_GET_FUN(__glewTextureParameteriEXT) +#define glTextureParameterivEXT GLEW_GET_FUN(__glewTextureParameterivEXT) +#define glTextureRenderbufferEXT GLEW_GET_FUN(__glewTextureRenderbufferEXT) +#define glTextureSubImage1DEXT GLEW_GET_FUN(__glewTextureSubImage1DEXT) +#define glTextureSubImage2DEXT GLEW_GET_FUN(__glewTextureSubImage2DEXT) +#define glTextureSubImage3DEXT GLEW_GET_FUN(__glewTextureSubImage3DEXT) +#define glUnmapNamedBufferEXT GLEW_GET_FUN(__glewUnmapNamedBufferEXT) +#define glVertexArrayColorOffsetEXT GLEW_GET_FUN(__glewVertexArrayColorOffsetEXT) +#define glVertexArrayEdgeFlagOffsetEXT GLEW_GET_FUN(__glewVertexArrayEdgeFlagOffsetEXT) +#define glVertexArrayFogCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayFogCoordOffsetEXT) +#define glVertexArrayIndexOffsetEXT GLEW_GET_FUN(__glewVertexArrayIndexOffsetEXT) +#define glVertexArrayMultiTexCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayMultiTexCoordOffsetEXT) +#define glVertexArrayNormalOffsetEXT GLEW_GET_FUN(__glewVertexArrayNormalOffsetEXT) +#define glVertexArraySecondaryColorOffsetEXT GLEW_GET_FUN(__glewVertexArraySecondaryColorOffsetEXT) +#define glVertexArrayTexCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayTexCoordOffsetEXT) +#define glVertexArrayVertexAttribDivisorEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribDivisorEXT) +#define glVertexArrayVertexAttribIOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribIOffsetEXT) +#define glVertexArrayVertexAttribOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribOffsetEXT) +#define glVertexArrayVertexOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexOffsetEXT) + +#define GLEW_EXT_direct_state_access GLEW_GET_VAR(__GLEW_EXT_direct_state_access) + +#endif /* GL_EXT_direct_state_access */ + +/* ----------------------- GL_EXT_discard_framebuffer ---------------------- */ + +#ifndef GL_EXT_discard_framebuffer +#define GL_EXT_discard_framebuffer 1 + +#define GL_COLOR_EXT 0x1800 +#define GL_DEPTH_EXT 0x1801 +#define GL_STENCIL_EXT 0x1802 + +typedef void (GLAPIENTRY * PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum* attachments); + +#define glDiscardFramebufferEXT GLEW_GET_FUN(__glewDiscardFramebufferEXT) + +#define GLEW_EXT_discard_framebuffer GLEW_GET_VAR(__GLEW_EXT_discard_framebuffer) + +#endif /* GL_EXT_discard_framebuffer */ + +/* ---------------------- GL_EXT_disjoint_timer_query ---------------------- */ + +#ifndef GL_EXT_disjoint_timer_query +#define GL_EXT_disjoint_timer_query 1 + +#define GL_QUERY_COUNTER_BITS_EXT 0x8864 +#define GL_CURRENT_QUERY_EXT 0x8865 +#define GL_QUERY_RESULT_EXT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 +#define GL_TIME_ELAPSED_EXT 0x88BF +#define GL_TIMESTAMP_EXT 0x8E28 +#define GL_GPU_DISJOINT_EXT 0x8FBB + +typedef void (GLAPIENTRY * PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id); +typedef void (GLAPIENTRY * PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint* ids); +typedef void (GLAPIENTRY * PFNGLENDQUERYEXTPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint* ids); +typedef void (GLAPIENTRY * PFNGLGETINTEGER64VEXTPROC) (GLenum pname, GLint64* data); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVEXTPROC) (GLuint id, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISQUERYEXTPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLQUERYCOUNTEREXTPROC) (GLuint id, GLenum target); + +#define glBeginQueryEXT GLEW_GET_FUN(__glewBeginQueryEXT) +#define glDeleteQueriesEXT GLEW_GET_FUN(__glewDeleteQueriesEXT) +#define glEndQueryEXT GLEW_GET_FUN(__glewEndQueryEXT) +#define glGenQueriesEXT GLEW_GET_FUN(__glewGenQueriesEXT) +#define glGetInteger64vEXT GLEW_GET_FUN(__glewGetInteger64vEXT) +#define glGetQueryObjectivEXT GLEW_GET_FUN(__glewGetQueryObjectivEXT) +#define glGetQueryObjectuivEXT GLEW_GET_FUN(__glewGetQueryObjectuivEXT) +#define glGetQueryivEXT GLEW_GET_FUN(__glewGetQueryivEXT) +#define glIsQueryEXT GLEW_GET_FUN(__glewIsQueryEXT) +#define glQueryCounterEXT GLEW_GET_FUN(__glewQueryCounterEXT) + +#define GLEW_EXT_disjoint_timer_query GLEW_GET_VAR(__GLEW_EXT_disjoint_timer_query) + +#endif /* GL_EXT_disjoint_timer_query */ + +/* -------------------------- GL_EXT_draw_buffers -------------------------- */ + +#ifndef GL_EXT_draw_buffers +#define GL_EXT_draw_buffers 1 + +#define GL_MAX_DRAW_BUFFERS_EXT 0x8824 +#define GL_DRAW_BUFFER0_EXT 0x8825 +#define GL_DRAW_BUFFER1_EXT 0x8826 +#define GL_DRAW_BUFFER2_EXT 0x8827 +#define GL_DRAW_BUFFER3_EXT 0x8828 +#define GL_DRAW_BUFFER4_EXT 0x8829 +#define GL_DRAW_BUFFER5_EXT 0x882A +#define GL_DRAW_BUFFER6_EXT 0x882B +#define GL_DRAW_BUFFER7_EXT 0x882C +#define GL_DRAW_BUFFER8_EXT 0x882D +#define GL_DRAW_BUFFER9_EXT 0x882E +#define GL_DRAW_BUFFER10_EXT 0x882F +#define GL_DRAW_BUFFER11_EXT 0x8830 +#define GL_DRAW_BUFFER12_EXT 0x8831 +#define GL_DRAW_BUFFER13_EXT 0x8832 +#define GL_DRAW_BUFFER14_EXT 0x8833 +#define GL_DRAW_BUFFER15_EXT 0x8834 +#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 + +typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSEXTPROC) (GLsizei n, const GLenum* bufs); + +#define glDrawBuffersEXT GLEW_GET_FUN(__glewDrawBuffersEXT) + +#define GLEW_EXT_draw_buffers GLEW_GET_VAR(__GLEW_EXT_draw_buffers) + +#endif /* GL_EXT_draw_buffers */ + +/* -------------------------- GL_EXT_draw_buffers2 ------------------------- */ + +#ifndef GL_EXT_draw_buffers2 +#define GL_EXT_draw_buffers2 1 + +typedef void (GLAPIENTRY * PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (GLAPIENTRY * PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum value, GLuint index, GLboolean* data); +typedef void (GLAPIENTRY * PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum value, GLuint index, GLint* data); +typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); + +#define glColorMaskIndexedEXT GLEW_GET_FUN(__glewColorMaskIndexedEXT) +#define glDisableIndexedEXT GLEW_GET_FUN(__glewDisableIndexedEXT) +#define glEnableIndexedEXT GLEW_GET_FUN(__glewEnableIndexedEXT) +#define glGetBooleanIndexedvEXT GLEW_GET_FUN(__glewGetBooleanIndexedvEXT) +#define glGetIntegerIndexedvEXT GLEW_GET_FUN(__glewGetIntegerIndexedvEXT) +#define glIsEnabledIndexedEXT GLEW_GET_FUN(__glewIsEnabledIndexedEXT) + +#define GLEW_EXT_draw_buffers2 GLEW_GET_VAR(__GLEW_EXT_draw_buffers2) + +#endif /* GL_EXT_draw_buffers2 */ + +/* ---------------------- GL_EXT_draw_buffers_indexed ---------------------- */ + +#ifndef GL_EXT_draw_buffers_indexed +#define GL_EXT_draw_buffers_indexed 1 + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIEXTPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIEXTPROC) (GLuint buf, GLenum mode); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIEXTPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCIEXTPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (GLAPIENTRY * PFNGLCOLORMASKIEXTPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (GLAPIENTRY * PFNGLDISABLEIEXTPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEIEXTPROC) (GLenum target, GLuint index); +typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIEXTPROC) (GLenum target, GLuint index); + +#define glBlendEquationSeparateiEXT GLEW_GET_FUN(__glewBlendEquationSeparateiEXT) +#define glBlendEquationiEXT GLEW_GET_FUN(__glewBlendEquationiEXT) +#define glBlendFuncSeparateiEXT GLEW_GET_FUN(__glewBlendFuncSeparateiEXT) +#define glBlendFunciEXT GLEW_GET_FUN(__glewBlendFunciEXT) +#define glColorMaskiEXT GLEW_GET_FUN(__glewColorMaskiEXT) +#define glDisableiEXT GLEW_GET_FUN(__glewDisableiEXT) +#define glEnableiEXT GLEW_GET_FUN(__glewEnableiEXT) +#define glIsEnablediEXT GLEW_GET_FUN(__glewIsEnablediEXT) + +#define GLEW_EXT_draw_buffers_indexed GLEW_GET_VAR(__GLEW_EXT_draw_buffers_indexed) + +#endif /* GL_EXT_draw_buffers_indexed */ + +/* -------------------- GL_EXT_draw_elements_base_vertex ------------------- */ + +#ifndef GL_EXT_draw_elements_base_vertex +#define GL_EXT_draw_elements_base_vertex 1 + +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, const GLsizei* count, GLenum type, const void *const *indices, GLsizei drawcount, const GLint *basevertex); + +#define glDrawElementsBaseVertexEXT GLEW_GET_FUN(__glewDrawElementsBaseVertexEXT) +#define glDrawElementsInstancedBaseVertexEXT GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertexEXT) +#define glDrawRangeElementsBaseVertexEXT GLEW_GET_FUN(__glewDrawRangeElementsBaseVertexEXT) +#define glMultiDrawElementsBaseVertexEXT GLEW_GET_FUN(__glewMultiDrawElementsBaseVertexEXT) + +#define GLEW_EXT_draw_elements_base_vertex GLEW_GET_VAR(__GLEW_EXT_draw_elements_base_vertex) + +#endif /* GL_EXT_draw_elements_base_vertex */ + +/* ------------------------- GL_EXT_draw_instanced ------------------------- */ + +#ifndef GL_EXT_draw_instanced +#define GL_EXT_draw_instanced 1 + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); + +#define glDrawArraysInstancedEXT GLEW_GET_FUN(__glewDrawArraysInstancedEXT) +#define glDrawElementsInstancedEXT GLEW_GET_FUN(__glewDrawElementsInstancedEXT) + +#define GLEW_EXT_draw_instanced GLEW_GET_VAR(__GLEW_EXT_draw_instanced) + +#endif /* GL_EXT_draw_instanced */ + +/* ----------------------- GL_EXT_draw_range_elements ---------------------- */ + +#ifndef GL_EXT_draw_range_elements +#define GL_EXT_draw_range_elements 1 + +#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 +#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 + +typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); + +#define glDrawRangeElementsEXT GLEW_GET_FUN(__glewDrawRangeElementsEXT) + +#define GLEW_EXT_draw_range_elements GLEW_GET_VAR(__GLEW_EXT_draw_range_elements) + +#endif /* GL_EXT_draw_range_elements */ + +/* --------------------- GL_EXT_draw_transform_feedback -------------------- */ + +#ifndef GL_EXT_draw_transform_feedback +#define GL_EXT_draw_transform_feedback 1 + +typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKEXTPROC) (GLenum mode, GLuint id); +typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC) (GLenum mode, GLuint id, GLsizei instancecount); + +#define glDrawTransformFeedbackEXT GLEW_GET_FUN(__glewDrawTransformFeedbackEXT) +#define glDrawTransformFeedbackInstancedEXT GLEW_GET_FUN(__glewDrawTransformFeedbackInstancedEXT) + +#define GLEW_EXT_draw_transform_feedback GLEW_GET_VAR(__GLEW_EXT_draw_transform_feedback) + +#endif /* GL_EXT_draw_transform_feedback */ + +/* ------------------------- GL_EXT_external_buffer ------------------------ */ + +#ifndef GL_EXT_external_buffer +#define GL_EXT_external_buffer 1 + +typedef void* GLeglClientBufferEXT; + +typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEEXTERNALEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); + +#define glBufferStorageExternalEXT GLEW_GET_FUN(__glewBufferStorageExternalEXT) +#define glNamedBufferStorageExternalEXT GLEW_GET_FUN(__glewNamedBufferStorageExternalEXT) + +#define GLEW_EXT_external_buffer GLEW_GET_VAR(__GLEW_EXT_external_buffer) + +#endif /* GL_EXT_external_buffer */ + +/* --------------------------- GL_EXT_float_blend -------------------------- */ + +#ifndef GL_EXT_float_blend +#define GL_EXT_float_blend 1 + +#define GLEW_EXT_float_blend GLEW_GET_VAR(__GLEW_EXT_float_blend) + +#endif /* GL_EXT_float_blend */ + +/* ---------------------------- GL_EXT_fog_coord --------------------------- */ + +#ifndef GL_EXT_fog_coord +#define GL_EXT_fog_coord 1 + +#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 +#define GL_FOG_COORDINATE_EXT 0x8451 +#define GL_FRAGMENT_DEPTH_EXT 0x8452 +#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 +#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 + +typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer); +typedef void (GLAPIENTRY * PFNGLFOGCOORDDEXTPROC) (GLdouble coord); +typedef void (GLAPIENTRY * PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); +typedef void (GLAPIENTRY * PFNGLFOGCOORDFEXTPROC) (GLfloat coord); +typedef void (GLAPIENTRY * PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); + +#define glFogCoordPointerEXT GLEW_GET_FUN(__glewFogCoordPointerEXT) +#define glFogCoorddEXT GLEW_GET_FUN(__glewFogCoorddEXT) +#define glFogCoorddvEXT GLEW_GET_FUN(__glewFogCoorddvEXT) +#define glFogCoordfEXT GLEW_GET_FUN(__glewFogCoordfEXT) +#define glFogCoordfvEXT GLEW_GET_FUN(__glewFogCoordfvEXT) + +#define GLEW_EXT_fog_coord GLEW_GET_VAR(__GLEW_EXT_fog_coord) + +#endif /* GL_EXT_fog_coord */ + +/* --------------------------- GL_EXT_frag_depth --------------------------- */ + +#ifndef GL_EXT_frag_depth +#define GL_EXT_frag_depth 1 + +#define GLEW_EXT_frag_depth GLEW_GET_VAR(__GLEW_EXT_frag_depth) + +#endif /* GL_EXT_frag_depth */ + +/* ------------------------ GL_EXT_fragment_lighting ----------------------- */ + +#ifndef GL_EXT_fragment_lighting +#define GL_EXT_fragment_lighting 1 + +#define GL_FRAGMENT_LIGHTING_EXT 0x8400 +#define GL_FRAGMENT_COLOR_MATERIAL_EXT 0x8401 +#define GL_FRAGMENT_COLOR_MATERIAL_FACE_EXT 0x8402 +#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_EXT 0x8403 +#define GL_MAX_FRAGMENT_LIGHTS_EXT 0x8404 +#define GL_MAX_ACTIVE_LIGHTS_EXT 0x8405 +#define GL_CURRENT_RASTER_NORMAL_EXT 0x8406 +#define GL_LIGHT_ENV_MODE_EXT 0x8407 +#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_EXT 0x8408 +#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_EXT 0x8409 +#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_EXT 0x840A +#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_EXT 0x840B +#define GL_FRAGMENT_LIGHT0_EXT 0x840C +#define GL_FRAGMENT_LIGHT7_EXT 0x8413 + +typedef void (GLAPIENTRY * PFNGLFRAGMENTCOLORMATERIALEXTPROC) (GLenum face, GLenum mode); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFEXTPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVEXTPROC) (GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIEXTPROC) (GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVEXTPROC) (GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFEXTPROC) (GLenum light, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIEXTPROC) (GLenum light, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFEXTPROC) (GLenum face, GLenum pname, const GLfloat param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIEXTPROC) (GLenum face, GLenum pname, const GLint param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLLIGHTENVIEXTPROC) (GLenum pname, GLint param); + +#define glFragmentColorMaterialEXT GLEW_GET_FUN(__glewFragmentColorMaterialEXT) +#define glFragmentLightModelfEXT GLEW_GET_FUN(__glewFragmentLightModelfEXT) +#define glFragmentLightModelfvEXT GLEW_GET_FUN(__glewFragmentLightModelfvEXT) +#define glFragmentLightModeliEXT GLEW_GET_FUN(__glewFragmentLightModeliEXT) +#define glFragmentLightModelivEXT GLEW_GET_FUN(__glewFragmentLightModelivEXT) +#define glFragmentLightfEXT GLEW_GET_FUN(__glewFragmentLightfEXT) +#define glFragmentLightfvEXT GLEW_GET_FUN(__glewFragmentLightfvEXT) +#define glFragmentLightiEXT GLEW_GET_FUN(__glewFragmentLightiEXT) +#define glFragmentLightivEXT GLEW_GET_FUN(__glewFragmentLightivEXT) +#define glFragmentMaterialfEXT GLEW_GET_FUN(__glewFragmentMaterialfEXT) +#define glFragmentMaterialfvEXT GLEW_GET_FUN(__glewFragmentMaterialfvEXT) +#define glFragmentMaterialiEXT GLEW_GET_FUN(__glewFragmentMaterialiEXT) +#define glFragmentMaterialivEXT GLEW_GET_FUN(__glewFragmentMaterialivEXT) +#define glGetFragmentLightfvEXT GLEW_GET_FUN(__glewGetFragmentLightfvEXT) +#define glGetFragmentLightivEXT GLEW_GET_FUN(__glewGetFragmentLightivEXT) +#define glGetFragmentMaterialfvEXT GLEW_GET_FUN(__glewGetFragmentMaterialfvEXT) +#define glGetFragmentMaterialivEXT GLEW_GET_FUN(__glewGetFragmentMaterialivEXT) +#define glLightEnviEXT GLEW_GET_FUN(__glewLightEnviEXT) + +#define GLEW_EXT_fragment_lighting GLEW_GET_VAR(__GLEW_EXT_fragment_lighting) + +#endif /* GL_EXT_fragment_lighting */ + +/* ---------------------- GL_EXT_fragment_shading_rate --------------------- */ + +#ifndef GL_EXT_fragment_shading_rate +#define GL_EXT_fragment_shading_rate 1 + +#define GL_FRAGMENT_SHADING_RATE_NON_TRIVIAL_COMBINERS_SUPPORTED_EXT 0x8F6F +#define GL_SHADING_RATE_1X1_PIXELS_EXT 0x96A6 +#define GL_SHADING_RATE_1X2_PIXELS_EXT 0x96A7 +#define GL_SHADING_RATE_2X1_PIXELS_EXT 0x96A8 +#define GL_SHADING_RATE_2X2_PIXELS_EXT 0x96A9 +#define GL_SHADING_RATE_1X4_PIXELS_EXT 0x96AA +#define GL_SHADING_RATE_4X1_PIXELS_EXT 0x96AB +#define GL_SHADING_RATE_4X2_PIXELS_EXT 0x96AC +#define GL_SHADING_RATE_2X4_PIXELS_EXT 0x96AD +#define GL_SHADING_RATE_4X4_PIXELS_EXT 0x96AE +#define GL_SHADING_RATE_EXT 0x96D0 +#define GL_SHADING_RATE_ATTACHMENT_EXT 0x96D1 +#define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_EXT 0x96D2 +#define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_EXT 0x96D3 +#define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_EXT 0x96D4 +#define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_EXT 0x96D5 +#define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_EXT 0x96D6 +#define GL_MIN_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_WIDTH_EXT 0x96D7 +#define GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_WIDTH_EXT 0x96D8 +#define GL_MIN_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_HEIGHT_EXT 0x96D9 +#define GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_HEIGHT_EXT 0x96DA +#define GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_ASPECT_RATIO_EXT 0x96DB +#define GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_LAYERS_EXT 0x96DC +#define GL_FRAGMENT_SHADING_RATE_WITH_SHADER_DEPTH_STENCIL_WRITES_SUPPORTED_EXT 0x96DD +#define GL_FRAGMENT_SHADING_RATE_WITH_SAMPLE_MASK_SUPPORTED_EXT 0x96DE +#define GL_FRAGMENT_SHADING_RATE_ATTACHMENT_WITH_DEFAULT_FRAMEBUFFER_SUPPORTED_EXT 0x96DF +#define GL_FRAGMENT_SHADING_RATE_PRIMITIVE_RATE_WITH_MULTI_VIEWPORT_SUPPORTED_EXT 0x9780 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERSHADINGRATEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint baseLayer, GLsizei numLayers, GLsizei texelWidth, GLsizei texelHeight); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTSHADINGRATESEXTPROC) (GLsizei samples, GLsizei maxCount, GLsizei* count, GLenum *shadingRates); +typedef void (GLAPIENTRY * PFNGLSHADINGRATECOMBINEROPSEXTPROC) (GLenum combinerOp0, GLenum combinerOp1); +typedef void (GLAPIENTRY * PFNGLSHADINGRATEEXTPROC) (GLenum rate); + +#define glFramebufferShadingRateEXT GLEW_GET_FUN(__glewFramebufferShadingRateEXT) +#define glGetFragmentShadingRatesEXT GLEW_GET_FUN(__glewGetFragmentShadingRatesEXT) +#define glShadingRateCombinerOpsEXT GLEW_GET_FUN(__glewShadingRateCombinerOpsEXT) +#define glShadingRateEXT GLEW_GET_FUN(__glewShadingRateEXT) + +#define GLEW_EXT_fragment_shading_rate GLEW_GET_VAR(__GLEW_EXT_fragment_shading_rate) + +#endif /* GL_EXT_fragment_shading_rate */ + +/* ---------------- GL_EXT_fragment_shading_rate_attachment ---------------- */ + +#ifndef GL_EXT_fragment_shading_rate_attachment +#define GL_EXT_fragment_shading_rate_attachment 1 + +#define GLEW_EXT_fragment_shading_rate_attachment GLEW_GET_VAR(__GLEW_EXT_fragment_shading_rate_attachment) + +#endif /* GL_EXT_fragment_shading_rate_attachment */ + +/* ----------------- GL_EXT_fragment_shading_rate_primitive ---------------- */ + +#ifndef GL_EXT_fragment_shading_rate_primitive +#define GL_EXT_fragment_shading_rate_primitive 1 + +#define GLEW_EXT_fragment_shading_rate_primitive GLEW_GET_VAR(__GLEW_EXT_fragment_shading_rate_primitive) + +#endif /* GL_EXT_fragment_shading_rate_primitive */ + +/* ------------------------ GL_EXT_framebuffer_blit ------------------------ */ + +#ifndef GL_EXT_framebuffer_blit +#define GL_EXT_framebuffer_blit 1 + +#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6 +#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA + +typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); + +#define glBlitFramebufferEXT GLEW_GET_FUN(__glewBlitFramebufferEXT) + +#define GLEW_EXT_framebuffer_blit GLEW_GET_VAR(__GLEW_EXT_framebuffer_blit) + +#endif /* GL_EXT_framebuffer_blit */ + +/* --------------------- GL_EXT_framebuffer_blit_layers -------------------- */ + +#ifndef GL_EXT_framebuffer_blit_layers +#define GL_EXT_framebuffer_blit_layers 1 + +typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERLAYEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint srcLayer, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLint dstLayer, GLbitfield mask, GLenum filter); +typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERLAYERSEXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); + +#define glBlitFramebufferLayerEXT GLEW_GET_FUN(__glewBlitFramebufferLayerEXT) +#define glBlitFramebufferLayersEXT GLEW_GET_FUN(__glewBlitFramebufferLayersEXT) + +#define GLEW_EXT_framebuffer_blit_layers GLEW_GET_VAR(__GLEW_EXT_framebuffer_blit_layers) + +#endif /* GL_EXT_framebuffer_blit_layers */ + +/* --------------------- GL_EXT_framebuffer_multisample -------------------- */ + +#ifndef GL_EXT_framebuffer_multisample +#define GL_EXT_framebuffer_multisample 1 + +#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 +#define GL_MAX_SAMPLES_EXT 0x8D57 + +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); + +#define glRenderbufferStorageMultisampleEXT GLEW_GET_FUN(__glewRenderbufferStorageMultisampleEXT) + +#define GLEW_EXT_framebuffer_multisample GLEW_GET_VAR(__GLEW_EXT_framebuffer_multisample) + +#endif /* GL_EXT_framebuffer_multisample */ + +/* --------------- GL_EXT_framebuffer_multisample_blit_scaled -------------- */ + +#ifndef GL_EXT_framebuffer_multisample_blit_scaled +#define GL_EXT_framebuffer_multisample_blit_scaled 1 + +#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA +#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB + +#define GLEW_EXT_framebuffer_multisample_blit_scaled GLEW_GET_VAR(__GLEW_EXT_framebuffer_multisample_blit_scaled) + +#endif /* GL_EXT_framebuffer_multisample_blit_scaled */ + +/* ----------------------- GL_EXT_framebuffer_object ----------------------- */ + +#ifndef GL_EXT_framebuffer_object +#define GL_EXT_framebuffer_object 1 + +#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 + +typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); +typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); +typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint* framebuffers); +typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint* renderbuffers); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint* framebuffers); +typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint* renderbuffers); +typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); +typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); + +#define glBindFramebufferEXT GLEW_GET_FUN(__glewBindFramebufferEXT) +#define glBindRenderbufferEXT GLEW_GET_FUN(__glewBindRenderbufferEXT) +#define glCheckFramebufferStatusEXT GLEW_GET_FUN(__glewCheckFramebufferStatusEXT) +#define glDeleteFramebuffersEXT GLEW_GET_FUN(__glewDeleteFramebuffersEXT) +#define glDeleteRenderbuffersEXT GLEW_GET_FUN(__glewDeleteRenderbuffersEXT) +#define glFramebufferRenderbufferEXT GLEW_GET_FUN(__glewFramebufferRenderbufferEXT) +#define glFramebufferTexture1DEXT GLEW_GET_FUN(__glewFramebufferTexture1DEXT) +#define glFramebufferTexture2DEXT GLEW_GET_FUN(__glewFramebufferTexture2DEXT) +#define glFramebufferTexture3DEXT GLEW_GET_FUN(__glewFramebufferTexture3DEXT) +#define glGenFramebuffersEXT GLEW_GET_FUN(__glewGenFramebuffersEXT) +#define glGenRenderbuffersEXT GLEW_GET_FUN(__glewGenRenderbuffersEXT) +#define glGenerateMipmapEXT GLEW_GET_FUN(__glewGenerateMipmapEXT) +#define glGetFramebufferAttachmentParameterivEXT GLEW_GET_FUN(__glewGetFramebufferAttachmentParameterivEXT) +#define glGetRenderbufferParameterivEXT GLEW_GET_FUN(__glewGetRenderbufferParameterivEXT) +#define glIsFramebufferEXT GLEW_GET_FUN(__glewIsFramebufferEXT) +#define glIsRenderbufferEXT GLEW_GET_FUN(__glewIsRenderbufferEXT) +#define glRenderbufferStorageEXT GLEW_GET_FUN(__glewRenderbufferStorageEXT) + +#define GLEW_EXT_framebuffer_object GLEW_GET_VAR(__GLEW_EXT_framebuffer_object) + +#endif /* GL_EXT_framebuffer_object */ + +/* ------------------------ GL_EXT_framebuffer_sRGB ------------------------ */ + +#ifndef GL_EXT_framebuffer_sRGB +#define GL_EXT_framebuffer_sRGB 1 + +#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 +#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA + +#define GLEW_EXT_framebuffer_sRGB GLEW_GET_VAR(__GLEW_EXT_framebuffer_sRGB) + +#endif /* GL_EXT_framebuffer_sRGB */ + +/* ----------------------- GL_EXT_geometry_point_size ---------------------- */ + +#ifndef GL_EXT_geometry_point_size +#define GL_EXT_geometry_point_size 1 + +#define GL_GEOMETRY_SHADER_BIT_EXT 0x00000004 +#define GL_LINES_ADJACENCY_EXT 0xA +#define GL_LINE_STRIP_ADJACENCY_EXT 0xB +#define GL_TRIANGLES_ADJACENCY_EXT 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD +#define GL_LAYER_PROVOKING_VERTEX_EXT 0x825E +#define GL_UNDEFINED_VERTEX_EXT 0x8260 +#define GL_GEOMETRY_SHADER_INVOCATIONS_EXT 0x887F +#define GL_GEOMETRY_LINKED_VERTICES_OUT_EXT 0x8916 +#define GL_GEOMETRY_LINKED_INPUT_TYPE_EXT 0x8917 +#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT 0x8918 +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT 0x8A2C +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8A32 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 +#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 +#define GL_GEOMETRY_SHADER_EXT 0x8DD9 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 +#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT 0x8E5A +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT 0x90CD +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT 0x90D7 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT 0x9124 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT 0x92CF +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT 0x92D5 +#define GL_REFERENCED_BY_GEOMETRY_SHADER_EXT 0x9309 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT 0x9312 +#define GL_MAX_FRAMEBUFFER_LAYERS_EXT 0x9317 + +#define GLEW_EXT_geometry_point_size GLEW_GET_VAR(__GLEW_EXT_geometry_point_size) + +#endif /* GL_EXT_geometry_point_size */ + +/* ------------------------- GL_EXT_geometry_shader ------------------------ */ + +#ifndef GL_EXT_geometry_shader +#define GL_EXT_geometry_shader 1 + +#define GL_GEOMETRY_SHADER_BIT_EXT 0x00000004 +#define GL_LINES_ADJACENCY_EXT 0xA +#define GL_LINE_STRIP_ADJACENCY_EXT 0xB +#define GL_TRIANGLES_ADJACENCY_EXT 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD +#define GL_LAYER_PROVOKING_VERTEX_EXT 0x825E +#define GL_UNDEFINED_VERTEX_EXT 0x8260 +#define GL_GEOMETRY_SHADER_INVOCATIONS_EXT 0x887F +#define GL_GEOMETRY_LINKED_VERTICES_OUT_EXT 0x8916 +#define GL_GEOMETRY_LINKED_INPUT_TYPE_EXT 0x8917 +#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT 0x8918 +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT 0x8A2C +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8A32 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 +#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 +#define GL_GEOMETRY_SHADER_EXT 0x8DD9 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 +#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT 0x8E5A +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT 0x90CD +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT 0x90D7 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT 0x9124 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT 0x92CF +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT 0x92D5 +#define GL_REFERENCED_BY_GEOMETRY_SHADER_EXT 0x9309 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT 0x9312 +#define GL_MAX_FRAMEBUFFER_LAYERS_EXT 0x9317 + +#define GLEW_EXT_geometry_shader GLEW_GET_VAR(__GLEW_EXT_geometry_shader) + +#endif /* GL_EXT_geometry_shader */ + +/* ------------------------ GL_EXT_geometry_shader4 ------------------------ */ + +#ifndef GL_EXT_geometry_shader4 +#define GL_EXT_geometry_shader4 1 + +#define GL_LINES_ADJACENCY_EXT 0xA +#define GL_LINE_STRIP_ADJACENCY_EXT 0xB +#define GL_TRIANGLES_ADJACENCY_EXT 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD +#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 +#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 +#define GL_GEOMETRY_SHADER_EXT 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); + +#define glFramebufferTextureEXT GLEW_GET_FUN(__glewFramebufferTextureEXT) +#define glFramebufferTextureFaceEXT GLEW_GET_FUN(__glewFramebufferTextureFaceEXT) +#define glProgramParameteriEXT GLEW_GET_FUN(__glewProgramParameteriEXT) + +#define GLEW_EXT_geometry_shader4 GLEW_GET_VAR(__GLEW_EXT_geometry_shader4) + +#endif /* GL_EXT_geometry_shader4 */ + +/* --------------------- GL_EXT_gpu_program_parameters --------------------- */ + +#ifndef GL_EXT_gpu_program_parameters +#define GL_EXT_gpu_program_parameters 1 + +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat* params); + +#define glProgramEnvParameters4fvEXT GLEW_GET_FUN(__glewProgramEnvParameters4fvEXT) +#define glProgramLocalParameters4fvEXT GLEW_GET_FUN(__glewProgramLocalParameters4fvEXT) + +#define GLEW_EXT_gpu_program_parameters GLEW_GET_VAR(__GLEW_EXT_gpu_program_parameters) + +#endif /* GL_EXT_gpu_program_parameters */ + +/* --------------------------- GL_EXT_gpu_shader4 -------------------------- */ + +#ifndef GL_EXT_gpu_shader4 +#define GL_EXT_gpu_shader4 1 + +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD +#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 +#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 +#define GL_SAMPLER_BUFFER_EXT 0x8DC2 +#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 +#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 +#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 +#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 +#define GL_INT_SAMPLER_1D_EXT 0x8DC9 +#define GL_INT_SAMPLER_2D_EXT 0x8DCA +#define GL_INT_SAMPLER_3D_EXT 0x8DCB +#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC +#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD +#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF +#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 + +typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); +typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params); +typedef void (GLAPIENTRY * PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0); +typedef void (GLAPIENTRY * PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1); +typedef void (GLAPIENTRY * PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (GLAPIENTRY * PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (GLAPIENTRY * PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); + +#define glBindFragDataLocationEXT GLEW_GET_FUN(__glewBindFragDataLocationEXT) +#define glGetFragDataLocationEXT GLEW_GET_FUN(__glewGetFragDataLocationEXT) +#define glGetUniformuivEXT GLEW_GET_FUN(__glewGetUniformuivEXT) +#define glGetVertexAttribIivEXT GLEW_GET_FUN(__glewGetVertexAttribIivEXT) +#define glGetVertexAttribIuivEXT GLEW_GET_FUN(__glewGetVertexAttribIuivEXT) +#define glUniform1uiEXT GLEW_GET_FUN(__glewUniform1uiEXT) +#define glUniform1uivEXT GLEW_GET_FUN(__glewUniform1uivEXT) +#define glUniform2uiEXT GLEW_GET_FUN(__glewUniform2uiEXT) +#define glUniform2uivEXT GLEW_GET_FUN(__glewUniform2uivEXT) +#define glUniform3uiEXT GLEW_GET_FUN(__glewUniform3uiEXT) +#define glUniform3uivEXT GLEW_GET_FUN(__glewUniform3uivEXT) +#define glUniform4uiEXT GLEW_GET_FUN(__glewUniform4uiEXT) +#define glUniform4uivEXT GLEW_GET_FUN(__glewUniform4uivEXT) +#define glVertexAttribI1iEXT GLEW_GET_FUN(__glewVertexAttribI1iEXT) +#define glVertexAttribI1ivEXT GLEW_GET_FUN(__glewVertexAttribI1ivEXT) +#define glVertexAttribI1uiEXT GLEW_GET_FUN(__glewVertexAttribI1uiEXT) +#define glVertexAttribI1uivEXT GLEW_GET_FUN(__glewVertexAttribI1uivEXT) +#define glVertexAttribI2iEXT GLEW_GET_FUN(__glewVertexAttribI2iEXT) +#define glVertexAttribI2ivEXT GLEW_GET_FUN(__glewVertexAttribI2ivEXT) +#define glVertexAttribI2uiEXT GLEW_GET_FUN(__glewVertexAttribI2uiEXT) +#define glVertexAttribI2uivEXT GLEW_GET_FUN(__glewVertexAttribI2uivEXT) +#define glVertexAttribI3iEXT GLEW_GET_FUN(__glewVertexAttribI3iEXT) +#define glVertexAttribI3ivEXT GLEW_GET_FUN(__glewVertexAttribI3ivEXT) +#define glVertexAttribI3uiEXT GLEW_GET_FUN(__glewVertexAttribI3uiEXT) +#define glVertexAttribI3uivEXT GLEW_GET_FUN(__glewVertexAttribI3uivEXT) +#define glVertexAttribI4bvEXT GLEW_GET_FUN(__glewVertexAttribI4bvEXT) +#define glVertexAttribI4iEXT GLEW_GET_FUN(__glewVertexAttribI4iEXT) +#define glVertexAttribI4ivEXT GLEW_GET_FUN(__glewVertexAttribI4ivEXT) +#define glVertexAttribI4svEXT GLEW_GET_FUN(__glewVertexAttribI4svEXT) +#define glVertexAttribI4ubvEXT GLEW_GET_FUN(__glewVertexAttribI4ubvEXT) +#define glVertexAttribI4uiEXT GLEW_GET_FUN(__glewVertexAttribI4uiEXT) +#define glVertexAttribI4uivEXT GLEW_GET_FUN(__glewVertexAttribI4uivEXT) +#define glVertexAttribI4usvEXT GLEW_GET_FUN(__glewVertexAttribI4usvEXT) +#define glVertexAttribIPointerEXT GLEW_GET_FUN(__glewVertexAttribIPointerEXT) + +#define GLEW_EXT_gpu_shader4 GLEW_GET_VAR(__GLEW_EXT_gpu_shader4) + +#endif /* GL_EXT_gpu_shader4 */ + +/* --------------------------- GL_EXT_gpu_shader5 -------------------------- */ + +#ifndef GL_EXT_gpu_shader5 +#define GL_EXT_gpu_shader5 1 + +#define GLEW_EXT_gpu_shader5 GLEW_GET_VAR(__GLEW_EXT_gpu_shader5) + +#endif /* GL_EXT_gpu_shader5 */ + +/* ---------------------------- GL_EXT_histogram --------------------------- */ + +#ifndef GL_EXT_histogram +#define GL_EXT_histogram 1 + +#define GL_HISTOGRAM_EXT 0x8024 +#define GL_PROXY_HISTOGRAM_EXT 0x8025 +#define GL_HISTOGRAM_WIDTH_EXT 0x8026 +#define GL_HISTOGRAM_FORMAT_EXT 0x8027 +#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C +#define GL_HISTOGRAM_SINK_EXT 0x802D +#define GL_MINMAX_EXT 0x802E +#define GL_MINMAX_FORMAT_EXT 0x802F +#define GL_MINMAX_SINK_EXT 0x8030 + +typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (GLAPIENTRY * PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (GLAPIENTRY * PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLRESETMINMAXEXTPROC) (GLenum target); + +#define glGetHistogramEXT GLEW_GET_FUN(__glewGetHistogramEXT) +#define glGetHistogramParameterfvEXT GLEW_GET_FUN(__glewGetHistogramParameterfvEXT) +#define glGetHistogramParameterivEXT GLEW_GET_FUN(__glewGetHistogramParameterivEXT) +#define glGetMinmaxEXT GLEW_GET_FUN(__glewGetMinmaxEXT) +#define glGetMinmaxParameterfvEXT GLEW_GET_FUN(__glewGetMinmaxParameterfvEXT) +#define glGetMinmaxParameterivEXT GLEW_GET_FUN(__glewGetMinmaxParameterivEXT) +#define glHistogramEXT GLEW_GET_FUN(__glewHistogramEXT) +#define glMinmaxEXT GLEW_GET_FUN(__glewMinmaxEXT) +#define glResetHistogramEXT GLEW_GET_FUN(__glewResetHistogramEXT) +#define glResetMinmaxEXT GLEW_GET_FUN(__glewResetMinmaxEXT) + +#define GLEW_EXT_histogram GLEW_GET_VAR(__GLEW_EXT_histogram) + +#endif /* GL_EXT_histogram */ + +/* ----------------------- GL_EXT_index_array_formats ---------------------- */ + +#ifndef GL_EXT_index_array_formats +#define GL_EXT_index_array_formats 1 + +#define GLEW_EXT_index_array_formats GLEW_GET_VAR(__GLEW_EXT_index_array_formats) + +#endif /* GL_EXT_index_array_formats */ + +/* --------------------------- GL_EXT_index_func --------------------------- */ + +#ifndef GL_EXT_index_func +#define GL_EXT_index_func 1 + +typedef void (GLAPIENTRY * PFNGLINDEXFUNCEXTPROC) (GLenum func, GLfloat ref); + +#define glIndexFuncEXT GLEW_GET_FUN(__glewIndexFuncEXT) + +#define GLEW_EXT_index_func GLEW_GET_VAR(__GLEW_EXT_index_func) + +#endif /* GL_EXT_index_func */ + +/* ------------------------- GL_EXT_index_material ------------------------- */ + +#ifndef GL_EXT_index_material +#define GL_EXT_index_material 1 + +typedef void (GLAPIENTRY * PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); + +#define glIndexMaterialEXT GLEW_GET_FUN(__glewIndexMaterialEXT) + +#define GLEW_EXT_index_material GLEW_GET_VAR(__GLEW_EXT_index_material) + +#endif /* GL_EXT_index_material */ + +/* -------------------------- GL_EXT_index_texture ------------------------- */ + +#ifndef GL_EXT_index_texture +#define GL_EXT_index_texture 1 + +#define GLEW_EXT_index_texture GLEW_GET_VAR(__GLEW_EXT_index_texture) + +#endif /* GL_EXT_index_texture */ + +/* ------------------------ GL_EXT_instanced_arrays ------------------------ */ + +#ifndef GL_EXT_instanced_arrays +#define GL_EXT_instanced_arrays 1 + +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT 0x88FE + +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor); + +#define glVertexAttribDivisorEXT GLEW_GET_FUN(__glewVertexAttribDivisorEXT) + +#define GLEW_EXT_instanced_arrays GLEW_GET_VAR(__GLEW_EXT_instanced_arrays) + +#endif /* GL_EXT_instanced_arrays */ + +/* -------------------------- GL_EXT_light_texture ------------------------- */ + +#ifndef GL_EXT_light_texture +#define GL_EXT_light_texture 1 + +#define GL_FRAGMENT_MATERIAL_EXT 0x8349 +#define GL_FRAGMENT_NORMAL_EXT 0x834A +#define GL_FRAGMENT_COLOR_EXT 0x834C +#define GL_ATTENUATION_EXT 0x834D +#define GL_SHADOW_ATTENUATION_EXT 0x834E +#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F +#define GL_TEXTURE_LIGHT_EXT 0x8350 +#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 +#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 + +typedef void (GLAPIENTRY * PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); +typedef void (GLAPIENTRY * PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); +typedef void (GLAPIENTRY * PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); + +#define glApplyTextureEXT GLEW_GET_FUN(__glewApplyTextureEXT) +#define glTextureLightEXT GLEW_GET_FUN(__glewTextureLightEXT) +#define glTextureMaterialEXT GLEW_GET_FUN(__glewTextureMaterialEXT) + +#define GLEW_EXT_light_texture GLEW_GET_VAR(__GLEW_EXT_light_texture) + +#endif /* GL_EXT_light_texture */ + +/* ------------------------ GL_EXT_map_buffer_range ------------------------ */ + +#ifndef GL_EXT_map_buffer_range +#define GL_EXT_map_buffer_range 1 + +#define GL_MAP_READ_BIT_EXT 0x0001 +#define GL_MAP_WRITE_BIT_EXT 0x0002 +#define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004 +#define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008 +#define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010 +#define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020 + +typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length); +typedef void * (GLAPIENTRY * PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); + +#define glFlushMappedBufferRangeEXT GLEW_GET_FUN(__glewFlushMappedBufferRangeEXT) +#define glMapBufferRangeEXT GLEW_GET_FUN(__glewMapBufferRangeEXT) + +#define GLEW_EXT_map_buffer_range GLEW_GET_VAR(__GLEW_EXT_map_buffer_range) + +#endif /* GL_EXT_map_buffer_range */ + +/* -------------------------- GL_EXT_memory_object ------------------------- */ + +#ifndef GL_EXT_memory_object +#define GL_EXT_memory_object 1 + +#define GL_UUID_SIZE_EXT 16 +#define GL_TEXTURE_TILING_EXT 0x9580 +#define GL_DEDICATED_MEMORY_OBJECT_EXT 0x9581 +#define GL_NUM_TILING_TYPES_EXT 0x9582 +#define GL_TILING_TYPES_EXT 0x9583 +#define GL_OPTIMAL_TILING_EXT 0x9584 +#define GL_LINEAR_TILING_EXT 0x9585 +#define GL_NUM_DEVICE_UUIDS_EXT 0x9596 +#define GL_DEVICE_UUID_EXT 0x9597 +#define GL_DRIVER_UUID_EXT 0x9598 +#define GL_PROTECTED_MEMORY_OBJECT_EXT 0x959B + +typedef void (GLAPIENTRY * PFNGLBUFFERSTORAGEMEMEXTPROC) (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLCREATEMEMORYOBJECTSEXTPROC) (GLsizei n, GLuint* memoryObjects); +typedef void (GLAPIENTRY * PFNGLDELETEMEMORYOBJECTSEXTPROC) (GLsizei n, const GLuint* memoryObjects); +typedef void (GLAPIENTRY * PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETUNSIGNEDBYTEI_VEXTPROC) (GLenum target, GLuint index, GLubyte* data); +typedef void (GLAPIENTRY * PFNGLGETUNSIGNEDBYTEVEXTPROC) (GLenum pname, GLubyte* data); +typedef GLboolean (GLAPIENTRY * PFNGLISMEMORYOBJECTEXTPROC) (GLuint memoryObject); +typedef void (GLAPIENTRY * PFNGLMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC) (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM1DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM2DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM3DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); + +#define glBufferStorageMemEXT GLEW_GET_FUN(__glewBufferStorageMemEXT) +#define glCreateMemoryObjectsEXT GLEW_GET_FUN(__glewCreateMemoryObjectsEXT) +#define glDeleteMemoryObjectsEXT GLEW_GET_FUN(__glewDeleteMemoryObjectsEXT) +#define glGetMemoryObjectParameterivEXT GLEW_GET_FUN(__glewGetMemoryObjectParameterivEXT) +#define glGetUnsignedBytei_vEXT GLEW_GET_FUN(__glewGetUnsignedBytei_vEXT) +#define glGetUnsignedBytevEXT GLEW_GET_FUN(__glewGetUnsignedBytevEXT) +#define glIsMemoryObjectEXT GLEW_GET_FUN(__glewIsMemoryObjectEXT) +#define glMemoryObjectParameterivEXT GLEW_GET_FUN(__glewMemoryObjectParameterivEXT) +#define glNamedBufferStorageMemEXT GLEW_GET_FUN(__glewNamedBufferStorageMemEXT) +#define glTexStorageMem1DEXT GLEW_GET_FUN(__glewTexStorageMem1DEXT) +#define glTexStorageMem2DEXT GLEW_GET_FUN(__glewTexStorageMem2DEXT) +#define glTexStorageMem2DMultisampleEXT GLEW_GET_FUN(__glewTexStorageMem2DMultisampleEXT) +#define glTexStorageMem3DEXT GLEW_GET_FUN(__glewTexStorageMem3DEXT) +#define glTexStorageMem3DMultisampleEXT GLEW_GET_FUN(__glewTexStorageMem3DMultisampleEXT) +#define glTextureStorageMem1DEXT GLEW_GET_FUN(__glewTextureStorageMem1DEXT) +#define glTextureStorageMem2DEXT GLEW_GET_FUN(__glewTextureStorageMem2DEXT) +#define glTextureStorageMem2DMultisampleEXT GLEW_GET_FUN(__glewTextureStorageMem2DMultisampleEXT) +#define glTextureStorageMem3DEXT GLEW_GET_FUN(__glewTextureStorageMem3DEXT) +#define glTextureStorageMem3DMultisampleEXT GLEW_GET_FUN(__glewTextureStorageMem3DMultisampleEXT) + +#define GLEW_EXT_memory_object GLEW_GET_VAR(__GLEW_EXT_memory_object) + +#endif /* GL_EXT_memory_object */ + +/* ------------------------ GL_EXT_memory_object_fd ------------------------ */ + +#ifndef GL_EXT_memory_object_fd +#define GL_EXT_memory_object_fd 1 + +#define GL_HANDLE_TYPE_OPAQUE_FD_EXT 0x9586 + +typedef void (GLAPIENTRY * PFNGLIMPORTMEMORYFDEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, GLint fd); + +#define glImportMemoryFdEXT GLEW_GET_FUN(__glewImportMemoryFdEXT) + +#define GLEW_EXT_memory_object_fd GLEW_GET_VAR(__GLEW_EXT_memory_object_fd) + +#endif /* GL_EXT_memory_object_fd */ + +/* ----------------------- GL_EXT_memory_object_win32 ---------------------- */ + +#ifndef GL_EXT_memory_object_win32 +#define GL_EXT_memory_object_win32 1 + +#define GL_LUID_SIZE_EXT 8 +#define GL_HANDLE_TYPE_OPAQUE_WIN32_EXT 0x9587 +#define GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT 0x9588 +#define GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT 0x9589 +#define GL_HANDLE_TYPE_D3D12_RESOURCE_EXT 0x958A +#define GL_HANDLE_TYPE_D3D11_IMAGE_EXT 0x958B +#define GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT 0x958C +#define GL_HANDLE_TYPE_D3D12_FENCE_EXT 0x9594 +#define GL_D3D12_FENCE_VALUE_EXT 0x9595 +#define GL_DEVICE_LUID_EXT 0x9599 +#define GL_DEVICE_NODE_MASK_EXT 0x959A + +typedef void (GLAPIENTRY * PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, void *handle); +typedef void (GLAPIENTRY * PFNGLIMPORTMEMORYWIN32NAMEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, const void *name); + +#define glImportMemoryWin32HandleEXT GLEW_GET_FUN(__glewImportMemoryWin32HandleEXT) +#define glImportMemoryWin32NameEXT GLEW_GET_FUN(__glewImportMemoryWin32NameEXT) + +#define GLEW_EXT_memory_object_win32 GLEW_GET_VAR(__GLEW_EXT_memory_object_win32) + +#endif /* GL_EXT_memory_object_win32 */ + +/* --------------------------- GL_EXT_mesh_shader -------------------------- */ + +#ifndef GL_EXT_mesh_shader +#define GL_EXT_mesh_shader 1 + +#define GL_MESH_SHADER_BIT_EXT 0x00000040 +#define GL_TASK_SHADER_BIT_EXT 0x00000080 +#define GL_MAX_MESH_UNIFORM_BLOCKS_EXT 0x8E60 +#define GL_MAX_MESH_TEXTURE_IMAGE_UNITS_EXT 0x8E61 +#define GL_MAX_MESH_IMAGE_UNIFORMS_EXT 0x8E62 +#define GL_MAX_MESH_UNIFORM_COMPONENTS_EXT 0x8E63 +#define GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_EXT 0x8E64 +#define GL_MAX_MESH_ATOMIC_COUNTERS_EXT 0x8E65 +#define GL_MAX_MESH_SHADER_STORAGE_BLOCKS_EXT 0x8E66 +#define GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_EXT 0x8E67 +#define GL_MAX_TASK_UNIFORM_BLOCKS_EXT 0x8E68 +#define GL_MAX_TASK_TEXTURE_IMAGE_UNITS_EXT 0x8E69 +#define GL_MAX_TASK_IMAGE_UNIFORMS_EXT 0x8E6A +#define GL_MAX_TASK_UNIFORM_COMPONENTS_EXT 0x8E6B +#define GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_EXT 0x8E6C +#define GL_MAX_TASK_ATOMIC_COUNTERS_EXT 0x8E6D +#define GL_MAX_TASK_SHADER_STORAGE_BLOCKS_EXT 0x8E6E +#define GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_EXT 0x8E6F +#define GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_EXT 0x92DF +#define GL_MAX_MESH_OUTPUT_VERTICES_EXT 0x9538 +#define GL_MESH_WORK_GROUP_SIZE_EXT 0x953E +#define GL_TASK_WORK_GROUP_SIZE_EXT 0x953F +#define GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_EXT 0x9543 +#define GL_MAX_MESH_MULTIVIEW_VIEW_COUNT_EXT 0x9557 +#define GL_MESH_SHADER_EXT 0x9559 +#define GL_TASK_SHADER_EXT 0x955A +#define GL_MESH_VERTICES_OUT_EXT 0x9579 +#define GL_MESH_PRIMITIVES_OUT_EXT 0x957A +#define GL_MESH_OUTPUT_TYPE_EXT 0x957B +#define GL_MESH_SUBROUTINE_EXT 0x957C +#define GL_TASK_SUBROUTINE_EXT 0x957D +#define GL_MESH_SUBROUTINE_UNIFORM_EXT 0x957E +#define GL_TASK_SUBROUTINE_UNIFORM_EXT 0x957F +#define GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_EXT 0x959C +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_EXT 0x959D +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_EXT 0x959E +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_EXT 0x959F +#define GL_REFERENCED_BY_MESH_SHADER_EXT 0x95A0 +#define GL_REFERENCED_BY_TASK_SHADER_EXT 0x95A1 +#define GL_MAX_TASK_WORK_GROUP_TOTAL_COUNT_EXT 0x9740 +#define GL_MAX_MESH_WORK_GROUP_TOTAL_COUNT_EXT 0x9741 +#define GL_MAX_TASK_PAYLOAD_SIZE_EXT 0x9742 +#define GL_MAX_TASK_SHARED_MEMORY_SIZE_EXT 0x9743 +#define GL_MAX_MESH_SHARED_MEMORY_SIZE_EXT 0x9744 +#define GL_MAX_TASK_PAYLOAD_AND_SHARED_MEMORY_SIZE_EXT 0x9745 +#define GL_MAX_MESH_PAYLOAD_AND_SHARED_MEMORY_SIZE_EXT 0x9746 +#define GL_MAX_MESH_OUTPUT_MEMORY_SIZE_EXT 0x9747 +#define GL_MAX_MESH_PAYLOAD_AND_OUTPUT_MEMORY_SIZE_EXT 0x9748 +#define GL_MAX_MESH_OUTPUT_COMPONENTS_EXT 0x9749 +#define GL_MAX_MESH_OUTPUT_LAYERS_EXT 0x974A +#define GL_MAX_PREFERRED_TASK_WORK_GROUP_INVOCATIONS_EXT 0x974B +#define GL_MAX_PREFERRED_MESH_WORK_GROUP_INVOCATIONS_EXT 0x974C +#define GL_MESH_PREFERS_LOCAL_INVOCATION_VERTEX_OUTPUT_EXT 0x974D +#define GL_MESH_PREFERS_LOCAL_INVOCATION_PRIMITIVE_OUTPUT_EXT 0x974E +#define GL_MESH_PREFERS_COMPACT_VERTEX_OUTPUT_EXT 0x974F +#define GL_MESH_PREFERS_COMPACT_PRIMITIVE_OUTPUT_EXT 0x9750 +#define GL_MAX_TASK_WORK_GROUP_COUNT_EXT 0x9751 +#define GL_MAX_MESH_WORK_GROUP_COUNT_EXT 0x9752 +#define GL_TASK_SHADER_INVOCATIONS_EXT 0x9753 +#define GL_MESH_SHADER_INVOCATIONS_EXT 0x9754 +#define GL_MESH_PRIMITIVES_GENERATED_EXT 0x9755 +#define GL_MAX_MESH_OUTPUT_PRIMITIVES_EXT 0x9756 +#define GL_MAX_MESH_WORK_GROUP_INVOCATIONS_EXT 0x9757 +#define GL_MAX_MESH_WORK_GROUP_SIZE_EXT 0x9758 +#define GL_MAX_TASK_WORK_GROUP_INVOCATIONS_EXT 0x9759 +#define GL_MAX_TASK_WORK_GROUP_SIZE_EXT 0x975A + +typedef void (GLAPIENTRY * PFNGLDRAWMESHTASKSEXTPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); +typedef void (GLAPIENTRY * PFNGLDRAWMESHTASKSINDIRECTEXTPROC) (GLintptr indirect); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTEXTPROC) (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWMESHTASKSINDIRECTEXTPROC) (GLintptr indirect, GLsizei drawcount, GLsizei stride); + +#define glDrawMeshTasksEXT GLEW_GET_FUN(__glewDrawMeshTasksEXT) +#define glDrawMeshTasksIndirectEXT GLEW_GET_FUN(__glewDrawMeshTasksIndirectEXT) +#define glMultiDrawMeshTasksIndirectCountEXT GLEW_GET_FUN(__glewMultiDrawMeshTasksIndirectCountEXT) +#define glMultiDrawMeshTasksIndirectEXT GLEW_GET_FUN(__glewMultiDrawMeshTasksIndirectEXT) + +#define GLEW_EXT_mesh_shader GLEW_GET_VAR(__GLEW_EXT_mesh_shader) + +#endif /* GL_EXT_mesh_shader */ + +/* ------------------------- GL_EXT_misc_attribute ------------------------- */ + +#ifndef GL_EXT_misc_attribute +#define GL_EXT_misc_attribute 1 + +#define GLEW_EXT_misc_attribute GLEW_GET_VAR(__GLEW_EXT_misc_attribute) + +#endif /* GL_EXT_misc_attribute */ + +/* ------------------------ GL_EXT_multi_draw_arrays ----------------------- */ + +#ifndef GL_EXT_multi_draw_arrays +#define GL_EXT_multi_draw_arrays 1 + +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, GLsizei* count, GLenum type, const void *const *indices, GLsizei primcount); + +#define glMultiDrawArraysEXT GLEW_GET_FUN(__glewMultiDrawArraysEXT) +#define glMultiDrawElementsEXT GLEW_GET_FUN(__glewMultiDrawElementsEXT) + +#define GLEW_EXT_multi_draw_arrays GLEW_GET_VAR(__GLEW_EXT_multi_draw_arrays) + +#endif /* GL_EXT_multi_draw_arrays */ + +/* ----------------------- GL_EXT_multi_draw_indirect ---------------------- */ + +#ifndef GL_EXT_multi_draw_indirect +#define GL_EXT_multi_draw_indirect 1 + +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC) (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); + +#define glMultiDrawArraysIndirectEXT GLEW_GET_FUN(__glewMultiDrawArraysIndirectEXT) +#define glMultiDrawElementsIndirectEXT GLEW_GET_FUN(__glewMultiDrawElementsIndirectEXT) + +#define GLEW_EXT_multi_draw_indirect GLEW_GET_VAR(__GLEW_EXT_multi_draw_indirect) + +#endif /* GL_EXT_multi_draw_indirect */ + +/* ------------------------ GL_EXT_multiple_textures ----------------------- */ + +#ifndef GL_EXT_multiple_textures +#define GL_EXT_multiple_textures 1 + +#define GLEW_EXT_multiple_textures GLEW_GET_VAR(__GLEW_EXT_multiple_textures) + +#endif /* GL_EXT_multiple_textures */ + +/* --------------------------- GL_EXT_multisample -------------------------- */ + +#ifndef GL_EXT_multisample +#define GL_EXT_multisample 1 + +#define GL_MULTISAMPLE_EXT 0x809D +#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F +#define GL_SAMPLE_MASK_EXT 0x80A0 +#define GL_1PASS_EXT 0x80A1 +#define GL_2PASS_0_EXT 0x80A2 +#define GL_2PASS_1_EXT 0x80A3 +#define GL_4PASS_0_EXT 0x80A4 +#define GL_4PASS_1_EXT 0x80A5 +#define GL_4PASS_2_EXT 0x80A6 +#define GL_4PASS_3_EXT 0x80A7 +#define GL_SAMPLE_BUFFERS_EXT 0x80A8 +#define GL_SAMPLES_EXT 0x80A9 +#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA +#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB +#define GL_SAMPLE_PATTERN_EXT 0x80AC +#define GL_MULTISAMPLE_BIT_EXT 0x20000000 + +typedef void (GLAPIENTRY * PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); +typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); + +#define glSampleMaskEXT GLEW_GET_FUN(__glewSampleMaskEXT) +#define glSamplePatternEXT GLEW_GET_FUN(__glewSamplePatternEXT) + +#define GLEW_EXT_multisample GLEW_GET_VAR(__GLEW_EXT_multisample) + +#endif /* GL_EXT_multisample */ + +/* -------------------- GL_EXT_multisample_compatibility ------------------- */ + +#ifndef GL_EXT_multisample_compatibility +#define GL_EXT_multisample_compatibility 1 + +#define GL_MULTISAMPLE_EXT 0x809D +#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F + +#define GLEW_EXT_multisample_compatibility GLEW_GET_VAR(__GLEW_EXT_multisample_compatibility) + +#endif /* GL_EXT_multisample_compatibility */ + +/* ----------------- GL_EXT_multisampled_render_to_texture ----------------- */ + +#ifndef GL_EXT_multisampled_render_to_texture +#define GL_EXT_multisampled_render_to_texture 1 + +#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 +#define GL_MAX_SAMPLES_EXT 0x8D57 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); + +#define glFramebufferTexture2DMultisampleEXT GLEW_GET_FUN(__glewFramebufferTexture2DMultisampleEXT) + +#define GLEW_EXT_multisampled_render_to_texture GLEW_GET_VAR(__GLEW_EXT_multisampled_render_to_texture) + +#endif /* GL_EXT_multisampled_render_to_texture */ + +/* ----------------- GL_EXT_multisampled_render_to_texture2 ---------------- */ + +#ifndef GL_EXT_multisampled_render_to_texture2 +#define GL_EXT_multisampled_render_to_texture2 1 + +#define GLEW_EXT_multisampled_render_to_texture2 GLEW_GET_VAR(__GLEW_EXT_multisampled_render_to_texture2) + +#endif /* GL_EXT_multisampled_render_to_texture2 */ + +/* --------------------- GL_EXT_multiview_draw_buffers --------------------- */ + +#ifndef GL_EXT_multiview_draw_buffers +#define GL_EXT_multiview_draw_buffers 1 + +#define GL_DRAW_BUFFER_EXT 0x0C01 +#define GL_READ_BUFFER_EXT 0x0C02 +#define GL_COLOR_ATTACHMENT_EXT 0x90F0 +#define GL_MULTIVIEW_EXT 0x90F1 +#define GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90F2 + +typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSINDEXEDEXTPROC) (GLint n, const GLenum* location, const GLint *indices); +typedef void (GLAPIENTRY * PFNGLGETINTEGERI_VEXTPROC) (GLenum target, GLuint index, GLint* data); +typedef void (GLAPIENTRY * PFNGLREADBUFFERINDEXEDEXTPROC) (GLenum src, GLint index); + +#define glDrawBuffersIndexedEXT GLEW_GET_FUN(__glewDrawBuffersIndexedEXT) +#define glGetIntegeri_vEXT GLEW_GET_FUN(__glewGetIntegeri_vEXT) +#define glReadBufferIndexedEXT GLEW_GET_FUN(__glewReadBufferIndexedEXT) + +#define GLEW_EXT_multiview_draw_buffers GLEW_GET_VAR(__GLEW_EXT_multiview_draw_buffers) + +#endif /* GL_EXT_multiview_draw_buffers */ + +/* ------------- GL_EXT_multiview_tessellation_geometry_shader ------------- */ + +#ifndef GL_EXT_multiview_tessellation_geometry_shader +#define GL_EXT_multiview_tessellation_geometry_shader 1 + +#define GLEW_EXT_multiview_tessellation_geometry_shader GLEW_GET_VAR(__GLEW_EXT_multiview_tessellation_geometry_shader) + +#endif /* GL_EXT_multiview_tessellation_geometry_shader */ + +/* ------------------ GL_EXT_multiview_texture_multisample ----------------- */ + +#ifndef GL_EXT_multiview_texture_multisample +#define GL_EXT_multiview_texture_multisample 1 + +#define GLEW_EXT_multiview_texture_multisample GLEW_GET_VAR(__GLEW_EXT_multiview_texture_multisample) + +#endif /* GL_EXT_multiview_texture_multisample */ + +/* ---------------------- GL_EXT_multiview_timer_query --------------------- */ + +#ifndef GL_EXT_multiview_timer_query +#define GL_EXT_multiview_timer_query 1 + +#define GLEW_EXT_multiview_timer_query GLEW_GET_VAR(__GLEW_EXT_multiview_timer_query) + +#endif /* GL_EXT_multiview_timer_query */ + +/* --------------------- GL_EXT_occlusion_query_boolean -------------------- */ + +#ifndef GL_EXT_occlusion_query_boolean +#define GL_EXT_occlusion_query_boolean 1 + +#define GL_CURRENT_QUERY_EXT 0x8865 +#define GL_QUERY_RESULT_EXT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 +#define GL_ANY_SAMPLES_PASSED_EXT 0x8C2F +#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A + +#define GLEW_EXT_occlusion_query_boolean GLEW_GET_VAR(__GLEW_EXT_occlusion_query_boolean) + +#endif /* GL_EXT_occlusion_query_boolean */ + +/* ---------------------- GL_EXT_packed_depth_stencil ---------------------- */ + +#ifndef GL_EXT_packed_depth_stencil +#define GL_EXT_packed_depth_stencil 1 + +#define GL_DEPTH_STENCIL_EXT 0x84F9 +#define GL_UNSIGNED_INT_24_8_EXT 0x84FA +#define GL_DEPTH24_STENCIL8_EXT 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 + +#define GLEW_EXT_packed_depth_stencil GLEW_GET_VAR(__GLEW_EXT_packed_depth_stencil) + +#endif /* GL_EXT_packed_depth_stencil */ + +/* -------------------------- GL_EXT_packed_float -------------------------- */ + +#ifndef GL_EXT_packed_float +#define GL_EXT_packed_float 1 + +#define GL_R11F_G11F_B10F_EXT 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B +#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C + +#define GLEW_EXT_packed_float GLEW_GET_VAR(__GLEW_EXT_packed_float) + +#endif /* GL_EXT_packed_float */ + +/* -------------------------- GL_EXT_packed_pixels ------------------------- */ + +#ifndef GL_EXT_packed_pixels +#define GL_EXT_packed_pixels 1 + +#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 + +#define GLEW_EXT_packed_pixels GLEW_GET_VAR(__GLEW_EXT_packed_pixels) + +#endif /* GL_EXT_packed_pixels */ + +/* ------------------------ GL_EXT_paletted_texture ------------------------ */ + +#ifndef GL_EXT_paletted_texture +#define GL_EXT_paletted_texture 1 + +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 +#define GL_COLOR_TABLE_FORMAT_EXT 0x80D8 +#define GL_COLOR_TABLE_WIDTH_EXT 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE_EXT 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE_EXT 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE_EXT 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE_EXT 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE_EXT 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE_EXT 0x80DF +#define GL_COLOR_INDEX1_EXT 0x80E2 +#define GL_COLOR_INDEX2_EXT 0x80E3 +#define GL_COLOR_INDEX4_EXT 0x80E4 +#define GL_COLOR_INDEX8_EXT 0x80E5 +#define GL_COLOR_INDEX12_EXT 0x80E6 +#define GL_COLOR_INDEX16_EXT 0x80E7 +#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED +#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 +#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B + +typedef void (GLAPIENTRY * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *data); +typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, void *data); +typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); + +#define glColorTableEXT GLEW_GET_FUN(__glewColorTableEXT) +#define glGetColorTableEXT GLEW_GET_FUN(__glewGetColorTableEXT) +#define glGetColorTableParameterfvEXT GLEW_GET_FUN(__glewGetColorTableParameterfvEXT) +#define glGetColorTableParameterivEXT GLEW_GET_FUN(__glewGetColorTableParameterivEXT) + +#define GLEW_EXT_paletted_texture GLEW_GET_VAR(__GLEW_EXT_paletted_texture) + +#endif /* GL_EXT_paletted_texture */ + +/* ----------------------- GL_EXT_pixel_buffer_object ---------------------- */ + +#ifndef GL_EXT_pixel_buffer_object +#define GL_EXT_pixel_buffer_object 1 + +#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF + +#define GLEW_EXT_pixel_buffer_object GLEW_GET_VAR(__GLEW_EXT_pixel_buffer_object) + +#endif /* GL_EXT_pixel_buffer_object */ + +/* ------------------------- GL_EXT_pixel_transform ------------------------ */ + +#ifndef GL_EXT_pixel_transform +#define GL_EXT_pixel_transform 1 + +#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 +#define GL_PIXEL_MAG_FILTER_EXT 0x8331 +#define GL_PIXEL_MIN_FILTER_EXT 0x8332 +#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 +#define GL_CUBIC_EXT 0x8334 +#define GL_AVERAGE_EXT 0x8335 +#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 +#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 +#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 + +typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, const GLfloat param); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, const GLint param); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); + +#define glGetPixelTransformParameterfvEXT GLEW_GET_FUN(__glewGetPixelTransformParameterfvEXT) +#define glGetPixelTransformParameterivEXT GLEW_GET_FUN(__glewGetPixelTransformParameterivEXT) +#define glPixelTransformParameterfEXT GLEW_GET_FUN(__glewPixelTransformParameterfEXT) +#define glPixelTransformParameterfvEXT GLEW_GET_FUN(__glewPixelTransformParameterfvEXT) +#define glPixelTransformParameteriEXT GLEW_GET_FUN(__glewPixelTransformParameteriEXT) +#define glPixelTransformParameterivEXT GLEW_GET_FUN(__glewPixelTransformParameterivEXT) + +#define GLEW_EXT_pixel_transform GLEW_GET_VAR(__GLEW_EXT_pixel_transform) + +#endif /* GL_EXT_pixel_transform */ + +/* ------------------- GL_EXT_pixel_transform_color_table ------------------ */ + +#ifndef GL_EXT_pixel_transform_color_table +#define GL_EXT_pixel_transform_color_table 1 + +#define GLEW_EXT_pixel_transform_color_table GLEW_GET_VAR(__GLEW_EXT_pixel_transform_color_table) + +#endif /* GL_EXT_pixel_transform_color_table */ + +/* ------------------------ GL_EXT_point_parameters ------------------------ */ + +#ifndef GL_EXT_point_parameters +#define GL_EXT_point_parameters 1 + +#define GL_POINT_SIZE_MIN_EXT 0x8126 +#define GL_POINT_SIZE_MAX_EXT 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 +#define GL_DISTANCE_ATTENUATION_EXT 0x8129 + +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat* params); + +#define glPointParameterfEXT GLEW_GET_FUN(__glewPointParameterfEXT) +#define glPointParameterfvEXT GLEW_GET_FUN(__glewPointParameterfvEXT) + +#define GLEW_EXT_point_parameters GLEW_GET_VAR(__GLEW_EXT_point_parameters) + +#endif /* GL_EXT_point_parameters */ + +/* ------------------------- GL_EXT_polygon_offset ------------------------- */ + +#ifndef GL_EXT_polygon_offset +#define GL_EXT_polygon_offset 1 + +#define GL_POLYGON_OFFSET_EXT 0x8037 +#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 +#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 + +typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); + +#define glPolygonOffsetEXT GLEW_GET_FUN(__glewPolygonOffsetEXT) + +#define GLEW_EXT_polygon_offset GLEW_GET_VAR(__GLEW_EXT_polygon_offset) + +#endif /* GL_EXT_polygon_offset */ + +/* ---------------------- GL_EXT_polygon_offset_clamp ---------------------- */ + +#ifndef GL_EXT_polygon_offset_clamp +#define GL_EXT_polygon_offset_clamp 1 + +#define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B + +typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETCLAMPEXTPROC) (GLfloat factor, GLfloat units, GLfloat clamp); + +#define glPolygonOffsetClampEXT GLEW_GET_FUN(__glewPolygonOffsetClampEXT) + +#define GLEW_EXT_polygon_offset_clamp GLEW_GET_VAR(__GLEW_EXT_polygon_offset_clamp) + +#endif /* GL_EXT_polygon_offset_clamp */ + +/* ----------------------- GL_EXT_post_depth_coverage ---------------------- */ + +#ifndef GL_EXT_post_depth_coverage +#define GL_EXT_post_depth_coverage 1 + +#define GLEW_EXT_post_depth_coverage GLEW_GET_VAR(__GLEW_EXT_post_depth_coverage) + +#endif /* GL_EXT_post_depth_coverage */ + +/* --------------------- GL_EXT_primitive_bounding_box --------------------- */ + +#ifndef GL_EXT_primitive_bounding_box +#define GL_EXT_primitive_bounding_box 1 + +#define GL_PRIMITIVE_BOUNDING_BOX_EXT 0x92BE + +typedef void (GLAPIENTRY * PFNGLPRIMITIVEBOUNDINGBOXEXTPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); + +#define glPrimitiveBoundingBoxEXT GLEW_GET_FUN(__glewPrimitiveBoundingBoxEXT) + +#define GLEW_EXT_primitive_bounding_box GLEW_GET_VAR(__GLEW_EXT_primitive_bounding_box) + +#endif /* GL_EXT_primitive_bounding_box */ + +/* ----------------------- GL_EXT_protected_textures ----------------------- */ + +#ifndef GL_EXT_protected_textures +#define GL_EXT_protected_textures 1 + +#define GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT 0x00000010 +#define GL_TEXTURE_PROTECTED_EXT 0x8BFA + +#define GLEW_EXT_protected_textures GLEW_GET_VAR(__GLEW_EXT_protected_textures) + +#endif /* GL_EXT_protected_textures */ + +/* ------------------------ GL_EXT_provoking_vertex ------------------------ */ + +#ifndef GL_EXT_provoking_vertex +#define GL_EXT_provoking_vertex 1 + +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C +#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E +#define GL_PROVOKING_VERTEX_EXT 0x8E4F + +typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); + +#define glProvokingVertexEXT GLEW_GET_FUN(__glewProvokingVertexEXT) + +#define GLEW_EXT_provoking_vertex GLEW_GET_VAR(__GLEW_EXT_provoking_vertex) + +#endif /* GL_EXT_provoking_vertex */ + +/* --------------------------- GL_EXT_pvrtc_sRGB --------------------------- */ + +#ifndef GL_EXT_pvrtc_sRGB +#define GL_EXT_pvrtc_sRGB 1 + +#define GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT 0x8A54 +#define GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT 0x8A55 +#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT 0x8A56 +#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT 0x8A57 + +#define GLEW_EXT_pvrtc_sRGB GLEW_GET_VAR(__GLEW_EXT_pvrtc_sRGB) + +#endif /* GL_EXT_pvrtc_sRGB */ + +/* ----------------------- GL_EXT_raster_multisample ----------------------- */ + +#ifndef GL_EXT_raster_multisample +#define GL_EXT_raster_multisample 1 + +#define GL_COLOR_SAMPLES_NV 0x8E20 +#define GL_RASTER_MULTISAMPLE_EXT 0x9327 +#define GL_RASTER_SAMPLES_EXT 0x9328 +#define GL_MAX_RASTER_SAMPLES_EXT 0x9329 +#define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A +#define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B +#define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C +#define GL_DEPTH_SAMPLES_NV 0x932D +#define GL_STENCIL_SAMPLES_NV 0x932E +#define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F +#define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330 +#define GL_COVERAGE_MODULATION_TABLE_NV 0x9331 +#define GL_COVERAGE_MODULATION_NV 0x9332 +#define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333 + +typedef void (GLAPIENTRY * PFNGLCOVERAGEMODULATIONNVPROC) (GLenum components); +typedef void (GLAPIENTRY * PFNGLCOVERAGEMODULATIONTABLENVPROC) (GLsizei n, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLGETCOVERAGEMODULATIONTABLENVPROC) (GLsizei bufsize, GLfloat* v); +typedef void (GLAPIENTRY * PFNGLRASTERSAMPLESEXTPROC) (GLuint samples, GLboolean fixedsamplelocations); + +#define glCoverageModulationNV GLEW_GET_FUN(__glewCoverageModulationNV) +#define glCoverageModulationTableNV GLEW_GET_FUN(__glewCoverageModulationTableNV) +#define glGetCoverageModulationTableNV GLEW_GET_FUN(__glewGetCoverageModulationTableNV) +#define glRasterSamplesEXT GLEW_GET_FUN(__glewRasterSamplesEXT) + +#define GLEW_EXT_raster_multisample GLEW_GET_VAR(__GLEW_EXT_raster_multisample) + +#endif /* GL_EXT_raster_multisample */ + +/* ------------------------ GL_EXT_read_format_bgra ------------------------ */ + +#ifndef GL_EXT_read_format_bgra +#define GL_EXT_read_format_bgra 1 + +#define GL_BGRA_EXT 0x80E1 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366 + +#define GLEW_EXT_read_format_bgra GLEW_GET_VAR(__GLEW_EXT_read_format_bgra) + +#endif /* GL_EXT_read_format_bgra */ + +/* -------------------------- GL_EXT_render_snorm -------------------------- */ + +#ifndef GL_EXT_render_snorm +#define GL_EXT_render_snorm 1 + +#define GL_BYTE 0x1400 +#define GL_SHORT 0x1402 +#define GL_R8_SNORM 0x8F94 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGBA8_SNORM 0x8F97 +#define GL_R16_SNORM_EXT 0x8F98 +#define GL_RG16_SNORM_EXT 0x8F99 +#define GL_RGBA16_SNORM_EXT 0x8F9B + +#define GLEW_EXT_render_snorm GLEW_GET_VAR(__GLEW_EXT_render_snorm) + +#endif /* GL_EXT_render_snorm */ + +/* ------------------------- GL_EXT_rescale_normal ------------------------- */ + +#ifndef GL_EXT_rescale_normal +#define GL_EXT_rescale_normal 1 + +#define GL_RESCALE_NORMAL_EXT 0x803A + +#define GLEW_EXT_rescale_normal GLEW_GET_VAR(__GLEW_EXT_rescale_normal) + +#endif /* GL_EXT_rescale_normal */ + +/* --------------------------- GL_EXT_robustness --------------------------- */ + +#ifndef GL_EXT_robustness +#define GL_EXT_robustness 1 + +#define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252 +#define GL_GUILTY_CONTEXT_RESET_EXT 0x8253 +#define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254 +#define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255 +#define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256 +#define GL_NO_RESET_NOTIFICATION_EXT 0x8261 +#define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3 + +typedef GLenum (GLAPIENTRY * PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params); +typedef void (GLAPIENTRY * PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); + +#define glGetGraphicsResetStatusEXT GLEW_GET_FUN(__glewGetGraphicsResetStatusEXT) +#define glGetnUniformfvEXT GLEW_GET_FUN(__glewGetnUniformfvEXT) +#define glGetnUniformivEXT GLEW_GET_FUN(__glewGetnUniformivEXT) +#define glReadnPixelsEXT GLEW_GET_FUN(__glewReadnPixelsEXT) + +#define GLEW_EXT_robustness GLEW_GET_VAR(__GLEW_EXT_robustness) + +#endif /* GL_EXT_robustness */ + +/* ------------------------------ GL_EXT_sRGB ------------------------------ */ + +#ifndef GL_EXT_sRGB +#define GL_EXT_sRGB 1 + +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210 +#define GL_SRGB_EXT 0x8C40 +#define GL_SRGB_ALPHA_EXT 0x8C42 +#define GL_SRGB8_ALPHA8_EXT 0x8C43 + +#define GLEW_EXT_sRGB GLEW_GET_VAR(__GLEW_EXT_sRGB) + +#endif /* GL_EXT_sRGB */ + +/* ----------------------- GL_EXT_sRGB_write_control ----------------------- */ + +#ifndef GL_EXT_sRGB_write_control +#define GL_EXT_sRGB_write_control 1 + +#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 + +#define GLEW_EXT_sRGB_write_control GLEW_GET_VAR(__GLEW_EXT_sRGB_write_control) + +#endif /* GL_EXT_sRGB_write_control */ + +/* -------------------------- GL_EXT_scene_marker -------------------------- */ + +#ifndef GL_EXT_scene_marker +#define GL_EXT_scene_marker 1 + +typedef void (GLAPIENTRY * PFNGLBEGINSCENEEXTPROC) (void); +typedef void (GLAPIENTRY * PFNGLENDSCENEEXTPROC) (void); + +#define glBeginSceneEXT GLEW_GET_FUN(__glewBeginSceneEXT) +#define glEndSceneEXT GLEW_GET_FUN(__glewEndSceneEXT) + +#define GLEW_EXT_scene_marker GLEW_GET_VAR(__GLEW_EXT_scene_marker) + +#endif /* GL_EXT_scene_marker */ + +/* ------------------------- GL_EXT_secondary_color ------------------------ */ + +#ifndef GL_EXT_secondary_color +#define GL_EXT_secondary_color 1 + +#define GL_COLOR_SUM_EXT 0x8458 +#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D +#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E + +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); + +#define glSecondaryColor3bEXT GLEW_GET_FUN(__glewSecondaryColor3bEXT) +#define glSecondaryColor3bvEXT GLEW_GET_FUN(__glewSecondaryColor3bvEXT) +#define glSecondaryColor3dEXT GLEW_GET_FUN(__glewSecondaryColor3dEXT) +#define glSecondaryColor3dvEXT GLEW_GET_FUN(__glewSecondaryColor3dvEXT) +#define glSecondaryColor3fEXT GLEW_GET_FUN(__glewSecondaryColor3fEXT) +#define glSecondaryColor3fvEXT GLEW_GET_FUN(__glewSecondaryColor3fvEXT) +#define glSecondaryColor3iEXT GLEW_GET_FUN(__glewSecondaryColor3iEXT) +#define glSecondaryColor3ivEXT GLEW_GET_FUN(__glewSecondaryColor3ivEXT) +#define glSecondaryColor3sEXT GLEW_GET_FUN(__glewSecondaryColor3sEXT) +#define glSecondaryColor3svEXT GLEW_GET_FUN(__glewSecondaryColor3svEXT) +#define glSecondaryColor3ubEXT GLEW_GET_FUN(__glewSecondaryColor3ubEXT) +#define glSecondaryColor3ubvEXT GLEW_GET_FUN(__glewSecondaryColor3ubvEXT) +#define glSecondaryColor3uiEXT GLEW_GET_FUN(__glewSecondaryColor3uiEXT) +#define glSecondaryColor3uivEXT GLEW_GET_FUN(__glewSecondaryColor3uivEXT) +#define glSecondaryColor3usEXT GLEW_GET_FUN(__glewSecondaryColor3usEXT) +#define glSecondaryColor3usvEXT GLEW_GET_FUN(__glewSecondaryColor3usvEXT) +#define glSecondaryColorPointerEXT GLEW_GET_FUN(__glewSecondaryColorPointerEXT) + +#define GLEW_EXT_secondary_color GLEW_GET_VAR(__GLEW_EXT_secondary_color) + +#endif /* GL_EXT_secondary_color */ + +/* ---------------------------- GL_EXT_semaphore --------------------------- */ + +#ifndef GL_EXT_semaphore +#define GL_EXT_semaphore 1 + +#define GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT 0x9530 +#define GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT 0x9531 +#define GL_LAYOUT_GENERAL_EXT 0x958D +#define GL_LAYOUT_COLOR_ATTACHMENT_EXT 0x958E +#define GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT 0x958F +#define GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT 0x9590 +#define GL_LAYOUT_SHADER_READ_ONLY_EXT 0x9591 +#define GL_LAYOUT_TRANSFER_SRC_EXT 0x9592 +#define GL_LAYOUT_TRANSFER_DST_EXT 0x9593 + +typedef void (GLAPIENTRY * PFNGLDELETESEMAPHORESEXTPROC) (GLsizei n, const GLuint* semaphores); +typedef void (GLAPIENTRY * PFNGLGENSEMAPHORESEXTPROC) (GLsizei n, GLuint* semaphores); +typedef void (GLAPIENTRY * PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, GLuint64* params); +typedef GLboolean (GLAPIENTRY * PFNGLISSEMAPHOREEXTPROC) (GLuint semaphore); +typedef void (GLAPIENTRY * PFNGLSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, const GLuint64* params); +typedef void (GLAPIENTRY * PFNGLSIGNALSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint* buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); +typedef void (GLAPIENTRY * PFNGLWAITSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint* buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); + +#define glDeleteSemaphoresEXT GLEW_GET_FUN(__glewDeleteSemaphoresEXT) +#define glGenSemaphoresEXT GLEW_GET_FUN(__glewGenSemaphoresEXT) +#define glGetSemaphoreParameterui64vEXT GLEW_GET_FUN(__glewGetSemaphoreParameterui64vEXT) +#define glIsSemaphoreEXT GLEW_GET_FUN(__glewIsSemaphoreEXT) +#define glSemaphoreParameterui64vEXT GLEW_GET_FUN(__glewSemaphoreParameterui64vEXT) +#define glSignalSemaphoreEXT GLEW_GET_FUN(__glewSignalSemaphoreEXT) +#define glWaitSemaphoreEXT GLEW_GET_FUN(__glewWaitSemaphoreEXT) + +#define GLEW_EXT_semaphore GLEW_GET_VAR(__GLEW_EXT_semaphore) + +#endif /* GL_EXT_semaphore */ + +/* -------------------------- GL_EXT_semaphore_fd -------------------------- */ + +#ifndef GL_EXT_semaphore_fd +#define GL_EXT_semaphore_fd 1 + +typedef void (GLAPIENTRY * PFNGLIMPORTSEMAPHOREFDEXTPROC) (GLuint semaphore, GLenum handleType, GLint fd); + +#define glImportSemaphoreFdEXT GLEW_GET_FUN(__glewImportSemaphoreFdEXT) + +#define GLEW_EXT_semaphore_fd GLEW_GET_VAR(__GLEW_EXT_semaphore_fd) + +#endif /* GL_EXT_semaphore_fd */ + +/* ------------------------- GL_EXT_semaphore_win32 ------------------------ */ + +#ifndef GL_EXT_semaphore_win32 +#define GL_EXT_semaphore_win32 1 + +typedef void (GLAPIENTRY * PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC) (GLuint semaphore, GLenum handleType, void *handle); +typedef void (GLAPIENTRY * PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC) (GLuint semaphore, GLenum handleType, const void *name); + +#define glImportSemaphoreWin32HandleEXT GLEW_GET_FUN(__glewImportSemaphoreWin32HandleEXT) +#define glImportSemaphoreWin32NameEXT GLEW_GET_FUN(__glewImportSemaphoreWin32NameEXT) + +#define GLEW_EXT_semaphore_win32 GLEW_GET_VAR(__GLEW_EXT_semaphore_win32) + +#endif /* GL_EXT_semaphore_win32 */ + +/* --------------------- GL_EXT_separate_depth_stencil --------------------- */ + +#ifndef GL_EXT_separate_depth_stencil +#define GL_EXT_separate_depth_stencil 1 + +#define GLEW_EXT_separate_depth_stencil GLEW_GET_VAR(__GLEW_EXT_separate_depth_stencil) + +#endif /* GL_EXT_separate_depth_stencil */ + +/* --------------------- GL_EXT_separate_shader_objects -------------------- */ + +#ifndef GL_EXT_separate_shader_objects +#define GL_EXT_separate_shader_objects 1 + +#define GL_ACTIVE_PROGRAM_EXT 0x8B8D + +typedef void (GLAPIENTRY * PFNGLACTIVEPROGRAMEXTPROC) (GLuint program); +typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROGRAMEXTPROC) (GLenum type, const GLchar* string); +typedef void (GLAPIENTRY * PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program); + +#define glActiveProgramEXT GLEW_GET_FUN(__glewActiveProgramEXT) +#define glCreateShaderProgramEXT GLEW_GET_FUN(__glewCreateShaderProgramEXT) +#define glUseShaderProgramEXT GLEW_GET_FUN(__glewUseShaderProgramEXT) + +#define GLEW_EXT_separate_shader_objects GLEW_GET_VAR(__GLEW_EXT_separate_shader_objects) + +#endif /* GL_EXT_separate_shader_objects */ + +/* --------------------- GL_EXT_separate_specular_color -------------------- */ + +#ifndef GL_EXT_separate_specular_color +#define GL_EXT_separate_specular_color 1 + +#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 +#define GL_SINGLE_COLOR_EXT 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA + +#define GLEW_EXT_separate_specular_color GLEW_GET_VAR(__GLEW_EXT_separate_specular_color) + +#endif /* GL_EXT_separate_specular_color */ + +/* -------------------------- GL_EXT_shader_clock -------------------------- */ + +#ifndef GL_EXT_shader_clock +#define GL_EXT_shader_clock 1 + +#define GLEW_EXT_shader_clock GLEW_GET_VAR(__GLEW_EXT_shader_clock) + +#endif /* GL_EXT_shader_clock */ + +/* -------------------- GL_EXT_shader_framebuffer_fetch -------------------- */ + +#ifndef GL_EXT_shader_framebuffer_fetch +#define GL_EXT_shader_framebuffer_fetch 1 + +#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC) (void); + +#define glFramebufferFetchBarrierEXT GLEW_GET_FUN(__glewFramebufferFetchBarrierEXT) + +#define GLEW_EXT_shader_framebuffer_fetch GLEW_GET_VAR(__GLEW_EXT_shader_framebuffer_fetch) + +#endif /* GL_EXT_shader_framebuffer_fetch */ + +/* -------------- GL_EXT_shader_framebuffer_fetch_non_coherent ------------- */ + +#ifndef GL_EXT_shader_framebuffer_fetch_non_coherent +#define GL_EXT_shader_framebuffer_fetch_non_coherent 1 + +#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52 + +#define GLEW_EXT_shader_framebuffer_fetch_non_coherent GLEW_GET_VAR(__GLEW_EXT_shader_framebuffer_fetch_non_coherent) + +#endif /* GL_EXT_shader_framebuffer_fetch_non_coherent */ + +/* ------------------------ GL_EXT_shader_group_vote ----------------------- */ + +#ifndef GL_EXT_shader_group_vote +#define GL_EXT_shader_group_vote 1 + +#define GLEW_EXT_shader_group_vote GLEW_GET_VAR(__GLEW_EXT_shader_group_vote) + +#endif /* GL_EXT_shader_group_vote */ + +/* ------------------- GL_EXT_shader_image_load_formatted ------------------ */ + +#ifndef GL_EXT_shader_image_load_formatted +#define GL_EXT_shader_image_load_formatted 1 + +#define GLEW_EXT_shader_image_load_formatted GLEW_GET_VAR(__GLEW_EXT_shader_image_load_formatted) + +#endif /* GL_EXT_shader_image_load_formatted */ + +/* --------------------- GL_EXT_shader_image_load_store -------------------- */ + +#ifndef GL_EXT_shader_image_load_store +#define GL_EXT_shader_image_load_store 1 + +#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001 +#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002 +#define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004 +#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008 +#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020 +#define GL_COMMAND_BARRIER_BIT_EXT 0x00000040 +#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080 +#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100 +#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200 +#define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400 +#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800 +#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000 +#define GL_MAX_IMAGE_UNITS_EXT 0x8F38 +#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39 +#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A +#define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B +#define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C +#define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D +#define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E +#define GL_IMAGE_1D_EXT 0x904C +#define GL_IMAGE_2D_EXT 0x904D +#define GL_IMAGE_3D_EXT 0x904E +#define GL_IMAGE_2D_RECT_EXT 0x904F +#define GL_IMAGE_CUBE_EXT 0x9050 +#define GL_IMAGE_BUFFER_EXT 0x9051 +#define GL_IMAGE_1D_ARRAY_EXT 0x9052 +#define GL_IMAGE_2D_ARRAY_EXT 0x9053 +#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 +#define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055 +#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056 +#define GL_INT_IMAGE_1D_EXT 0x9057 +#define GL_INT_IMAGE_2D_EXT 0x9058 +#define GL_INT_IMAGE_3D_EXT 0x9059 +#define GL_INT_IMAGE_2D_RECT_EXT 0x905A +#define GL_INT_IMAGE_CUBE_EXT 0x905B +#define GL_INT_IMAGE_BUFFER_EXT 0x905C +#define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D +#define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E +#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F +#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060 +#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061 +#define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062 +#define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063 +#define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064 +#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065 +#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066 +#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 +#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068 +#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069 +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C +#define GL_MAX_IMAGE_SAMPLES_EXT 0x906D +#define GL_IMAGE_BINDING_FORMAT_EXT 0x906E +#define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF + +typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); +typedef void (GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); + +#define glBindImageTextureEXT GLEW_GET_FUN(__glewBindImageTextureEXT) +#define glMemoryBarrierEXT GLEW_GET_FUN(__glewMemoryBarrierEXT) + +#define GLEW_EXT_shader_image_load_store GLEW_GET_VAR(__GLEW_EXT_shader_image_load_store) + +#endif /* GL_EXT_shader_image_load_store */ + +/* ------------------- GL_EXT_shader_implicit_conversions ------------------ */ + +#ifndef GL_EXT_shader_implicit_conversions +#define GL_EXT_shader_implicit_conversions 1 + +#define GLEW_EXT_shader_implicit_conversions GLEW_GET_VAR(__GLEW_EXT_shader_implicit_conversions) + +#endif /* GL_EXT_shader_implicit_conversions */ + +/* ----------------------- GL_EXT_shader_integer_mix ----------------------- */ + +#ifndef GL_EXT_shader_integer_mix +#define GL_EXT_shader_integer_mix 1 + +#define GLEW_EXT_shader_integer_mix GLEW_GET_VAR(__GLEW_EXT_shader_integer_mix) + +#endif /* GL_EXT_shader_integer_mix */ + +/* ------------------------ GL_EXT_shader_io_blocks ------------------------ */ + +#ifndef GL_EXT_shader_io_blocks +#define GL_EXT_shader_io_blocks 1 + +#define GLEW_EXT_shader_io_blocks GLEW_GET_VAR(__GLEW_EXT_shader_io_blocks) + +#endif /* GL_EXT_shader_io_blocks */ + +/* ------------- GL_EXT_shader_non_constant_global_initializers ------------ */ + +#ifndef GL_EXT_shader_non_constant_global_initializers +#define GL_EXT_shader_non_constant_global_initializers 1 + +#define GLEW_EXT_shader_non_constant_global_initializers GLEW_GET_VAR(__GLEW_EXT_shader_non_constant_global_initializers) + +#endif /* GL_EXT_shader_non_constant_global_initializers */ + +/* ------------------- GL_EXT_shader_pixel_local_storage ------------------- */ + +#ifndef GL_EXT_shader_pixel_local_storage +#define GL_EXT_shader_pixel_local_storage 1 + +#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT 0x8F63 +#define GL_SHADER_PIXEL_LOCAL_STORAGE_EXT 0x8F64 +#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT 0x8F67 + +#define GLEW_EXT_shader_pixel_local_storage GLEW_GET_VAR(__GLEW_EXT_shader_pixel_local_storage) + +#endif /* GL_EXT_shader_pixel_local_storage */ + +/* ------------------- GL_EXT_shader_pixel_local_storage2 ------------------ */ + +#ifndef GL_EXT_shader_pixel_local_storage2 +#define GL_EXT_shader_pixel_local_storage2 1 + +#define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT 0x9650 +#define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT 0x9651 +#define GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT 0x9652 + +typedef void (GLAPIENTRY * PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC) (GLsizei offset, GLsizei n, const GLuint* values); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target, GLsizei size); +typedef GLsizei (GLAPIENTRY * PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target); + +#define glClearPixelLocalStorageuiEXT GLEW_GET_FUN(__glewClearPixelLocalStorageuiEXT) +#define glFramebufferPixelLocalStorageSizeEXT GLEW_GET_FUN(__glewFramebufferPixelLocalStorageSizeEXT) +#define glGetFramebufferPixelLocalStorageSizeEXT GLEW_GET_FUN(__glewGetFramebufferPixelLocalStorageSizeEXT) + +#define GLEW_EXT_shader_pixel_local_storage2 GLEW_GET_VAR(__GLEW_EXT_shader_pixel_local_storage2) + +#endif /* GL_EXT_shader_pixel_local_storage2 */ + +/* ---------------------- GL_EXT_shader_realtime_clock --------------------- */ + +#ifndef GL_EXT_shader_realtime_clock +#define GL_EXT_shader_realtime_clock 1 + +#define GLEW_EXT_shader_realtime_clock GLEW_GET_VAR(__GLEW_EXT_shader_realtime_clock) + +#endif /* GL_EXT_shader_realtime_clock */ + +/* -------------------- GL_EXT_shader_samples_identical -------------------- */ + +#ifndef GL_EXT_shader_samples_identical +#define GL_EXT_shader_samples_identical 1 + +#define GLEW_EXT_shader_samples_identical GLEW_GET_VAR(__GLEW_EXT_shader_samples_identical) + +#endif /* GL_EXT_shader_samples_identical */ + +/* ----------------------- GL_EXT_shader_texture_lod ----------------------- */ + +#ifndef GL_EXT_shader_texture_lod +#define GL_EXT_shader_texture_lod 1 + +#define GLEW_EXT_shader_texture_lod GLEW_GET_VAR(__GLEW_EXT_shader_texture_lod) + +#endif /* GL_EXT_shader_texture_lod */ + +/* --------------------- GL_EXT_shader_texture_samples --------------------- */ + +#ifndef GL_EXT_shader_texture_samples +#define GL_EXT_shader_texture_samples 1 + +#define GLEW_EXT_shader_texture_samples GLEW_GET_VAR(__GLEW_EXT_shader_texture_samples) + +#endif /* GL_EXT_shader_texture_samples */ + +/* -------------------------- GL_EXT_shadow_funcs -------------------------- */ + +#ifndef GL_EXT_shadow_funcs +#define GL_EXT_shadow_funcs 1 + +#define GLEW_EXT_shadow_funcs GLEW_GET_VAR(__GLEW_EXT_shadow_funcs) + +#endif /* GL_EXT_shadow_funcs */ + +/* ------------------------- GL_EXT_shadow_samplers ------------------------ */ + +#ifndef GL_EXT_shadow_samplers +#define GL_EXT_shadow_samplers 1 + +#define GL_TEXTURE_COMPARE_MODE_EXT 0x884C +#define GL_TEXTURE_COMPARE_FUNC_EXT 0x884D +#define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E +#define GL_SAMPLER_2D_SHADOW_EXT 0x8B62 + +#define GLEW_EXT_shadow_samplers GLEW_GET_VAR(__GLEW_EXT_shadow_samplers) + +#endif /* GL_EXT_shadow_samplers */ + +/* --------------------- GL_EXT_shared_texture_palette --------------------- */ + +#ifndef GL_EXT_shared_texture_palette +#define GL_EXT_shared_texture_palette 1 + +#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB + +#define GLEW_EXT_shared_texture_palette GLEW_GET_VAR(__GLEW_EXT_shared_texture_palette) + +#endif /* GL_EXT_shared_texture_palette */ + +/* ------------------------- GL_EXT_sparse_texture ------------------------- */ + +#ifndef GL_EXT_sparse_texture +#define GL_EXT_sparse_texture 1 + +#define GL_TEXTURE_2D 0x0DE1 +#define GL_TEXTURE_3D 0x806F +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_2D_ARRAY 0x8C1A +#define GL_TEXTURE_CUBE_MAP_ARRAY_OES 0x9009 +#define GL_VIRTUAL_PAGE_SIZE_X_EXT 0x9195 +#define GL_VIRTUAL_PAGE_SIZE_Y_EXT 0x9196 +#define GL_VIRTUAL_PAGE_SIZE_Z_EXT 0x9197 +#define GL_MAX_SPARSE_TEXTURE_SIZE_EXT 0x9198 +#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT 0x9199 +#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT 0x919A +#define GL_TEXTURE_SPARSE_EXT 0x91A6 +#define GL_VIRTUAL_PAGE_SIZE_INDEX_EXT 0x91A7 +#define GL_NUM_VIRTUAL_PAGE_SIZES_EXT 0x91A8 +#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT 0x91A9 +#define GL_NUM_SPARSE_LEVELS_EXT 0x91AA + +typedef void (GLAPIENTRY * PFNGLTEXPAGECOMMITMENTEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); + +#define glTexPageCommitmentEXT GLEW_GET_FUN(__glewTexPageCommitmentEXT) + +#define GLEW_EXT_sparse_texture GLEW_GET_VAR(__GLEW_EXT_sparse_texture) + +#endif /* GL_EXT_sparse_texture */ + +/* ------------------------- GL_EXT_sparse_texture2 ------------------------ */ + +#ifndef GL_EXT_sparse_texture2 +#define GL_EXT_sparse_texture2 1 + +#define GLEW_EXT_sparse_texture2 GLEW_GET_VAR(__GLEW_EXT_sparse_texture2) + +#endif /* GL_EXT_sparse_texture2 */ + +/* ----------------------- GL_EXT_static_vertex_array ---------------------- */ + +#ifndef GL_EXT_static_vertex_array +#define GL_EXT_static_vertex_array 1 + +#define GLEW_EXT_static_vertex_array GLEW_GET_VAR(__GLEW_EXT_static_vertex_array) + +#endif /* GL_EXT_static_vertex_array */ + +/* ------------------------ GL_EXT_stencil_clear_tag ----------------------- */ + +#ifndef GL_EXT_stencil_clear_tag +#define GL_EXT_stencil_clear_tag 1 + +#define GL_STENCIL_TAG_BITS_EXT 0x88F2 +#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 + +#define GLEW_EXT_stencil_clear_tag GLEW_GET_VAR(__GLEW_EXT_stencil_clear_tag) + +#endif /* GL_EXT_stencil_clear_tag */ + +/* ------------------------ GL_EXT_stencil_two_side ------------------------ */ + +#ifndef GL_EXT_stencil_two_side +#define GL_EXT_stencil_two_side 1 + +#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 +#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 + +typedef void (GLAPIENTRY * PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); + +#define glActiveStencilFaceEXT GLEW_GET_FUN(__glewActiveStencilFaceEXT) + +#define GLEW_EXT_stencil_two_side GLEW_GET_VAR(__GLEW_EXT_stencil_two_side) + +#endif /* GL_EXT_stencil_two_side */ + +/* -------------------------- GL_EXT_stencil_wrap -------------------------- */ + +#ifndef GL_EXT_stencil_wrap +#define GL_EXT_stencil_wrap 1 + +#define GL_INCR_WRAP_EXT 0x8507 +#define GL_DECR_WRAP_EXT 0x8508 + +#define GLEW_EXT_stencil_wrap GLEW_GET_VAR(__GLEW_EXT_stencil_wrap) + +#endif /* GL_EXT_stencil_wrap */ + +/* --------------------------- GL_EXT_subtexture --------------------------- */ + +#ifndef GL_EXT_subtexture +#define GL_EXT_subtexture 1 + +typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); + +#define glTexSubImage1DEXT GLEW_GET_FUN(__glewTexSubImage1DEXT) +#define glTexSubImage2DEXT GLEW_GET_FUN(__glewTexSubImage2DEXT) +#define glTexSubImage3DEXT GLEW_GET_FUN(__glewTexSubImage3DEXT) + +#define GLEW_EXT_subtexture GLEW_GET_VAR(__GLEW_EXT_subtexture) + +#endif /* GL_EXT_subtexture */ + +/* --------------------- GL_EXT_tessellation_point_size -------------------- */ + +#ifndef GL_EXT_tessellation_point_size +#define GL_EXT_tessellation_point_size 1 + +#define GL_QUADS_EXT 0x0007 +#define GL_TESS_CONTROL_SHADER_BIT_EXT 0x00000008 +#define GL_PATCHES_EXT 0xE +#define GL_TESS_EVALUATION_SHADER_BIT_EXT 0x00000010 +#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E1F +#define GL_PATCH_VERTICES_EXT 0x8E72 +#define GL_TESS_CONTROL_OUTPUT_VERTICES_EXT 0x8E75 +#define GL_TESS_GEN_MODE_EXT 0x8E76 +#define GL_TESS_GEN_SPACING_EXT 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER_EXT 0x8E78 +#define GL_TESS_GEN_POINT_MODE_EXT 0x8E79 +#define GL_ISOLINES_EXT 0x8E7A +#define GL_FRACTIONAL_ODD_EXT 0x8E7B +#define GL_FRACTIONAL_EVEN_EXT 0x8E7C +#define GL_MAX_PATCH_VERTICES_EXT 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL_EXT 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS_EXT 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT 0x8E86 +#define GL_TESS_EVALUATION_SHADER_EXT 0x8E87 +#define GL_TESS_CONTROL_SHADER_EXT 0x8E88 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT 0x8E8A +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT 0x90CB +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT 0x90CC +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT 0x90D8 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT 0x90D9 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT 0x92CD +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT 0x92CE +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT 0x92D3 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT 0x92D4 +#define GL_IS_PER_PATCH_EXT 0x92E7 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT 0x9308 + +typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERIEXTPROC) (GLenum pname, GLint value); + +#define glPatchParameteriEXT GLEW_GET_FUN(__glewPatchParameteriEXT) + +#define GLEW_EXT_tessellation_point_size GLEW_GET_VAR(__GLEW_EXT_tessellation_point_size) + +#endif /* GL_EXT_tessellation_point_size */ + +/* ----------------------- GL_EXT_tessellation_shader ---------------------- */ + +#ifndef GL_EXT_tessellation_shader +#define GL_EXT_tessellation_shader 1 + +#define GL_QUADS_EXT 0x0007 +#define GL_TESS_CONTROL_SHADER_BIT_EXT 0x00000008 +#define GL_PATCHES_EXT 0xE +#define GL_TESS_EVALUATION_SHADER_BIT_EXT 0x00000010 +#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E1F +#define GL_PATCH_VERTICES_EXT 0x8E72 +#define GL_TESS_CONTROL_OUTPUT_VERTICES_EXT 0x8E75 +#define GL_TESS_GEN_MODE_EXT 0x8E76 +#define GL_TESS_GEN_SPACING_EXT 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER_EXT 0x8E78 +#define GL_TESS_GEN_POINT_MODE_EXT 0x8E79 +#define GL_ISOLINES_EXT 0x8E7A +#define GL_FRACTIONAL_ODD_EXT 0x8E7B +#define GL_FRACTIONAL_EVEN_EXT 0x8E7C +#define GL_MAX_PATCH_VERTICES_EXT 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL_EXT 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS_EXT 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT 0x8E86 +#define GL_TESS_EVALUATION_SHADER_EXT 0x8E87 +#define GL_TESS_CONTROL_SHADER_EXT 0x8E88 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT 0x8E8A +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT 0x90CB +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT 0x90CC +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT 0x90D8 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT 0x90D9 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT 0x92CD +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT 0x92CE +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT 0x92D3 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT 0x92D4 +#define GL_IS_PER_PATCH_EXT 0x92E7 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT 0x9308 + +#define GLEW_EXT_tessellation_shader GLEW_GET_VAR(__GLEW_EXT_tessellation_shader) + +#endif /* GL_EXT_tessellation_shader */ + +/* ----------------------------- GL_EXT_texture ---------------------------- */ + +#ifndef GL_EXT_texture +#define GL_EXT_texture 1 + +#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 GLEW_EXT_texture GLEW_GET_VAR(__GLEW_EXT_texture) + +#endif /* GL_EXT_texture */ + +/* ---------------------------- GL_EXT_texture3D --------------------------- */ + +#ifndef GL_EXT_texture3D +#define GL_EXT_texture3D 1 + +#define GL_PACK_SKIP_IMAGES_EXT 0x806B +#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C +#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D +#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E +#define GL_TEXTURE_3D_EXT 0x806F +#define GL_PROXY_TEXTURE_3D_EXT 0x8070 +#define GL_TEXTURE_DEPTH_EXT 0x8071 +#define GL_TEXTURE_WRAP_R_EXT 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 + +typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); + +#define glTexImage3DEXT GLEW_GET_FUN(__glewTexImage3DEXT) + +#define GLEW_EXT_texture3D GLEW_GET_VAR(__GLEW_EXT_texture3D) + +#endif /* GL_EXT_texture3D */ + +/* -------------------------- GL_EXT_texture_array ------------------------- */ + +#ifndef GL_EXT_texture_array +#define GL_EXT_texture_array 1 + +#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E +#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF +#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 +#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); + +#define glFramebufferTextureLayerEXT GLEW_GET_FUN(__glewFramebufferTextureLayerEXT) + +#define GLEW_EXT_texture_array GLEW_GET_VAR(__GLEW_EXT_texture_array) + +#endif /* GL_EXT_texture_array */ + +/* ---------------------- GL_EXT_texture_border_clamp ---------------------- */ + +#ifndef GL_EXT_texture_border_clamp +#define GL_EXT_texture_border_clamp 1 + +#define GL_TEXTURE_BORDER_COLOR_EXT 0x1004 +#define GL_CLAMP_TO_BORDER_EXT 0x812D + +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIIVEXTPROC) (GLuint sampler, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIUIVEXTPROC) (GLuint sampler, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIIVEXTPROC) (GLuint sampler, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIUIVEXTPROC) (GLuint sampler, GLenum pname, const GLuint* params); + +#define glGetSamplerParameterIivEXT GLEW_GET_FUN(__glewGetSamplerParameterIivEXT) +#define glGetSamplerParameterIuivEXT GLEW_GET_FUN(__glewGetSamplerParameterIuivEXT) +#define glSamplerParameterIivEXT GLEW_GET_FUN(__glewSamplerParameterIivEXT) +#define glSamplerParameterIuivEXT GLEW_GET_FUN(__glewSamplerParameterIuivEXT) + +#define GLEW_EXT_texture_border_clamp GLEW_GET_VAR(__GLEW_EXT_texture_border_clamp) + +#endif /* GL_EXT_texture_border_clamp */ + +/* ------------------------- GL_EXT_texture_buffer ------------------------- */ + +#ifndef GL_EXT_texture_buffer +#define GL_EXT_texture_buffer 1 + +#define GL_TEXTURE_BUFFER_BINDING_EXT 0x8C2A +#define GL_TEXTURE_BUFFER_EXT 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D +#define GL_SAMPLER_BUFFER_EXT 0x8DC2 +#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 +#define GL_IMAGE_BUFFER_EXT 0x9051 +#define GL_INT_IMAGE_BUFFER_EXT 0x905C +#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 +#define GL_TEXTURE_BUFFER_OFFSET_EXT 0x919D +#define GL_TEXTURE_BUFFER_SIZE_EXT 0x919E +#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT 0x919F + +#define GLEW_EXT_texture_buffer GLEW_GET_VAR(__GLEW_EXT_texture_buffer) + +#endif /* GL_EXT_texture_buffer */ + +/* ---------------------- GL_EXT_texture_buffer_object --------------------- */ + +#ifndef GL_EXT_texture_buffer_object +#define GL_EXT_texture_buffer_object 1 + +#define GL_TEXTURE_BUFFER_EXT 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D +#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E + +typedef void (GLAPIENTRY * PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); + +#define glTexBufferEXT GLEW_GET_FUN(__glewTexBufferEXT) + +#define GLEW_EXT_texture_buffer_object GLEW_GET_VAR(__GLEW_EXT_texture_buffer_object) + +#endif /* GL_EXT_texture_buffer_object */ + +/* -------------- GL_EXT_texture_compression_astc_decode_mode -------------- */ + +#ifndef GL_EXT_texture_compression_astc_decode_mode +#define GL_EXT_texture_compression_astc_decode_mode 1 + +#define GL_TEXTURE_ASTC_DECODE_PRECISION_EXT 0x8F69 + +#define GLEW_EXT_texture_compression_astc_decode_mode GLEW_GET_VAR(__GLEW_EXT_texture_compression_astc_decode_mode) + +#endif /* GL_EXT_texture_compression_astc_decode_mode */ + +/* ----------- GL_EXT_texture_compression_astc_decode_mode_rgb9e5 ---------- */ + +#ifndef GL_EXT_texture_compression_astc_decode_mode_rgb9e5 +#define GL_EXT_texture_compression_astc_decode_mode_rgb9e5 1 + +#define GL_TEXTURE_ASTC_DECODE_PRECISION_EXT 0x8F69 + +#define GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5 GLEW_GET_VAR(__GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5) + +#endif /* GL_EXT_texture_compression_astc_decode_mode_rgb9e5 */ + +/* -------------------- GL_EXT_texture_compression_bptc -------------------- */ + +#ifndef GL_EXT_texture_compression_bptc +#define GL_EXT_texture_compression_bptc 1 + +#define GL_COMPRESSED_RGBA_BPTC_UNORM_EXT 0x8E8C +#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT 0x8E8D +#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT 0x8E8E +#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT 0x8E8F + +#define GLEW_EXT_texture_compression_bptc GLEW_GET_VAR(__GLEW_EXT_texture_compression_bptc) + +#endif /* GL_EXT_texture_compression_bptc */ + +/* -------------------- GL_EXT_texture_compression_dxt1 -------------------- */ + +#ifndef GL_EXT_texture_compression_dxt1 +#define GL_EXT_texture_compression_dxt1 1 + +#define GLEW_EXT_texture_compression_dxt1 GLEW_GET_VAR(__GLEW_EXT_texture_compression_dxt1) + +#endif /* GL_EXT_texture_compression_dxt1 */ + +/* -------------------- GL_EXT_texture_compression_latc -------------------- */ + +#ifndef GL_EXT_texture_compression_latc +#define GL_EXT_texture_compression_latc 1 + +#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 +#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 +#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 +#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 + +#define GLEW_EXT_texture_compression_latc GLEW_GET_VAR(__GLEW_EXT_texture_compression_latc) + +#endif /* GL_EXT_texture_compression_latc */ + +/* -------------------- GL_EXT_texture_compression_rgtc -------------------- */ + +#ifndef GL_EXT_texture_compression_rgtc +#define GL_EXT_texture_compression_rgtc 1 + +#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC +#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD +#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE + +#define GLEW_EXT_texture_compression_rgtc GLEW_GET_VAR(__GLEW_EXT_texture_compression_rgtc) + +#endif /* GL_EXT_texture_compression_rgtc */ + +/* -------------------- GL_EXT_texture_compression_s3tc -------------------- */ + +#ifndef GL_EXT_texture_compression_s3tc +#define GL_EXT_texture_compression_s3tc 1 + +#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 GLEW_EXT_texture_compression_s3tc GLEW_GET_VAR(__GLEW_EXT_texture_compression_s3tc) + +#endif /* GL_EXT_texture_compression_s3tc */ + +/* ------------------ GL_EXT_texture_compression_s3tc_srgb ----------------- */ + +#ifndef GL_EXT_texture_compression_s3tc_srgb +#define GL_EXT_texture_compression_s3tc_srgb 1 + +#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 GLEW_EXT_texture_compression_s3tc_srgb GLEW_GET_VAR(__GLEW_EXT_texture_compression_s3tc_srgb) + +#endif /* GL_EXT_texture_compression_s3tc_srgb */ + +/* ------------------------ GL_EXT_texture_cube_map ------------------------ */ + +#ifndef GL_EXT_texture_cube_map +#define GL_EXT_texture_cube_map 1 + +#define GL_NORMAL_MAP_EXT 0x8511 +#define GL_REFLECTION_MAP_EXT 0x8512 +#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C + +#define GLEW_EXT_texture_cube_map GLEW_GET_VAR(__GLEW_EXT_texture_cube_map) + +#endif /* GL_EXT_texture_cube_map */ + +/* --------------------- GL_EXT_texture_cube_map_array --------------------- */ + +#ifndef GL_EXT_texture_cube_map_array +#define GL_EXT_texture_cube_map_array 1 + +#define GL_TEXTURE_CUBE_MAP_ARRAY_EXT 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT 0x900A +#define GL_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900F +#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 +#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A + +#define GLEW_EXT_texture_cube_map_array GLEW_GET_VAR(__GLEW_EXT_texture_cube_map_array) + +#endif /* GL_EXT_texture_cube_map_array */ + +/* ----------------------- GL_EXT_texture_edge_clamp ----------------------- */ + +#ifndef GL_EXT_texture_edge_clamp +#define GL_EXT_texture_edge_clamp 1 + +#define GL_CLAMP_TO_EDGE_EXT 0x812F + +#define GLEW_EXT_texture_edge_clamp GLEW_GET_VAR(__GLEW_EXT_texture_edge_clamp) + +#endif /* GL_EXT_texture_edge_clamp */ + +/* --------------------------- GL_EXT_texture_env -------------------------- */ + +#ifndef GL_EXT_texture_env +#define GL_EXT_texture_env 1 + +#define GLEW_EXT_texture_env GLEW_GET_VAR(__GLEW_EXT_texture_env) + +#endif /* GL_EXT_texture_env */ + +/* ------------------------- GL_EXT_texture_env_add ------------------------ */ + +#ifndef GL_EXT_texture_env_add +#define GL_EXT_texture_env_add 1 + +#define GLEW_EXT_texture_env_add GLEW_GET_VAR(__GLEW_EXT_texture_env_add) + +#endif /* GL_EXT_texture_env_add */ + +/* ----------------------- GL_EXT_texture_env_combine ---------------------- */ + +#ifndef GL_EXT_texture_env_combine +#define GL_EXT_texture_env_combine 1 + +#define GL_COMBINE_EXT 0x8570 +#define GL_COMBINE_RGB_EXT 0x8571 +#define GL_COMBINE_ALPHA_EXT 0x8572 +#define GL_RGB_SCALE_EXT 0x8573 +#define GL_ADD_SIGNED_EXT 0x8574 +#define GL_INTERPOLATE_EXT 0x8575 +#define GL_CONSTANT_EXT 0x8576 +#define GL_PRIMARY_COLOR_EXT 0x8577 +#define GL_PREVIOUS_EXT 0x8578 +#define GL_SOURCE0_RGB_EXT 0x8580 +#define GL_SOURCE1_RGB_EXT 0x8581 +#define GL_SOURCE2_RGB_EXT 0x8582 +#define GL_SOURCE0_ALPHA_EXT 0x8588 +#define GL_SOURCE1_ALPHA_EXT 0x8589 +#define GL_SOURCE2_ALPHA_EXT 0x858A +#define GL_OPERAND0_RGB_EXT 0x8590 +#define GL_OPERAND1_RGB_EXT 0x8591 +#define GL_OPERAND2_RGB_EXT 0x8592 +#define GL_OPERAND0_ALPHA_EXT 0x8598 +#define GL_OPERAND1_ALPHA_EXT 0x8599 +#define GL_OPERAND2_ALPHA_EXT 0x859A + +#define GLEW_EXT_texture_env_combine GLEW_GET_VAR(__GLEW_EXT_texture_env_combine) + +#endif /* GL_EXT_texture_env_combine */ + +/* ------------------------ GL_EXT_texture_env_dot3 ------------------------ */ + +#ifndef GL_EXT_texture_env_dot3 +#define GL_EXT_texture_env_dot3 1 + +#define GL_DOT3_RGB_EXT 0x8740 +#define GL_DOT3_RGBA_EXT 0x8741 + +#define GLEW_EXT_texture_env_dot3 GLEW_GET_VAR(__GLEW_EXT_texture_env_dot3) + +#endif /* GL_EXT_texture_env_dot3 */ + +/* ------------------- GL_EXT_texture_filter_anisotropic ------------------- */ + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_EXT_texture_filter_anisotropic 1 + +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF + +#define GLEW_EXT_texture_filter_anisotropic GLEW_GET_VAR(__GLEW_EXT_texture_filter_anisotropic) + +#endif /* GL_EXT_texture_filter_anisotropic */ + +/* ---------------------- GL_EXT_texture_filter_minmax --------------------- */ + +#ifndef GL_EXT_texture_filter_minmax +#define GL_EXT_texture_filter_minmax 1 + +#define GL_TEXTURE_REDUCTION_MODE_EXT 0x9366 +#define GL_WEIGHTED_AVERAGE_EXT 0x9367 + +#define GLEW_EXT_texture_filter_minmax GLEW_GET_VAR(__GLEW_EXT_texture_filter_minmax) + +#endif /* GL_EXT_texture_filter_minmax */ + +/* --------------------- GL_EXT_texture_format_BGRA8888 -------------------- */ + +#ifndef GL_EXT_texture_format_BGRA8888 +#define GL_EXT_texture_format_BGRA8888 1 + +#define GL_BGRA_EXT 0x80E1 +#define GL_BGRA8_EXT 0x93A1 + +#define GLEW_EXT_texture_format_BGRA8888 GLEW_GET_VAR(__GLEW_EXT_texture_format_BGRA8888) + +#endif /* GL_EXT_texture_format_BGRA8888 */ + +/* ------------------ GL_EXT_texture_format_sRGB_override ------------------ */ + +#ifndef GL_EXT_texture_format_sRGB_override +#define GL_EXT_texture_format_sRGB_override 1 + +#define GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT 0x8FBF + +#define GLEW_EXT_texture_format_sRGB_override GLEW_GET_VAR(__GLEW_EXT_texture_format_sRGB_override) + +#endif /* GL_EXT_texture_format_sRGB_override */ + +/* ------------------------- GL_EXT_texture_integer ------------------------ */ + +#ifndef GL_EXT_texture_integer +#define GL_EXT_texture_integer 1 + +#define GL_RGBA32UI_EXT 0x8D70 +#define GL_RGB32UI_EXT 0x8D71 +#define GL_ALPHA32UI_EXT 0x8D72 +#define GL_INTENSITY32UI_EXT 0x8D73 +#define GL_LUMINANCE32UI_EXT 0x8D74 +#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 +#define GL_RGBA16UI_EXT 0x8D76 +#define GL_RGB16UI_EXT 0x8D77 +#define GL_ALPHA16UI_EXT 0x8D78 +#define GL_INTENSITY16UI_EXT 0x8D79 +#define GL_LUMINANCE16UI_EXT 0x8D7A +#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B +#define GL_RGBA8UI_EXT 0x8D7C +#define GL_RGB8UI_EXT 0x8D7D +#define GL_ALPHA8UI_EXT 0x8D7E +#define GL_INTENSITY8UI_EXT 0x8D7F +#define GL_LUMINANCE8UI_EXT 0x8D80 +#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 +#define GL_RGBA32I_EXT 0x8D82 +#define GL_RGB32I_EXT 0x8D83 +#define GL_ALPHA32I_EXT 0x8D84 +#define GL_INTENSITY32I_EXT 0x8D85 +#define GL_LUMINANCE32I_EXT 0x8D86 +#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 +#define GL_RGBA16I_EXT 0x8D88 +#define GL_RGB16I_EXT 0x8D89 +#define GL_ALPHA16I_EXT 0x8D8A +#define GL_INTENSITY16I_EXT 0x8D8B +#define GL_LUMINANCE16I_EXT 0x8D8C +#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D +#define GL_RGBA8I_EXT 0x8D8E +#define GL_RGB8I_EXT 0x8D8F +#define GL_ALPHA8I_EXT 0x8D90 +#define GL_INTENSITY8I_EXT 0x8D91 +#define GL_LUMINANCE8I_EXT 0x8D92 +#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 +#define GL_RED_INTEGER_EXT 0x8D94 +#define GL_GREEN_INTEGER_EXT 0x8D95 +#define GL_BLUE_INTEGER_EXT 0x8D96 +#define GL_ALPHA_INTEGER_EXT 0x8D97 +#define GL_RGB_INTEGER_EXT 0x8D98 +#define GL_RGBA_INTEGER_EXT 0x8D99 +#define GL_BGR_INTEGER_EXT 0x8D9A +#define GL_BGRA_INTEGER_EXT 0x8D9B +#define GL_LUMINANCE_INTEGER_EXT 0x8D9C +#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D +#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E + +typedef void (GLAPIENTRY * PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); +typedef void (GLAPIENTRY * PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); + +#define glClearColorIiEXT GLEW_GET_FUN(__glewClearColorIiEXT) +#define glClearColorIuiEXT GLEW_GET_FUN(__glewClearColorIuiEXT) +#define glGetTexParameterIivEXT GLEW_GET_FUN(__glewGetTexParameterIivEXT) +#define glGetTexParameterIuivEXT GLEW_GET_FUN(__glewGetTexParameterIuivEXT) +#define glTexParameterIivEXT GLEW_GET_FUN(__glewTexParameterIivEXT) +#define glTexParameterIuivEXT GLEW_GET_FUN(__glewTexParameterIuivEXT) + +#define GLEW_EXT_texture_integer GLEW_GET_VAR(__GLEW_EXT_texture_integer) + +#endif /* GL_EXT_texture_integer */ + +/* ------------------------ GL_EXT_texture_lod_bias ------------------------ */ + +#ifndef GL_EXT_texture_lod_bias +#define GL_EXT_texture_lod_bias 1 + +#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD +#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 +#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 + +#define GLEW_EXT_texture_lod_bias GLEW_GET_VAR(__GLEW_EXT_texture_lod_bias) + +#endif /* GL_EXT_texture_lod_bias */ + +/* ---------------------- GL_EXT_texture_mirror_clamp ---------------------- */ + +#ifndef GL_EXT_texture_mirror_clamp +#define GL_EXT_texture_mirror_clamp 1 + +#define GL_MIRROR_CLAMP_EXT 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 +#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 + +#define GLEW_EXT_texture_mirror_clamp GLEW_GET_VAR(__GLEW_EXT_texture_mirror_clamp) + +#endif /* GL_EXT_texture_mirror_clamp */ + +/* ------------------ GL_EXT_texture_mirror_clamp_to_edge ------------------ */ + +#ifndef GL_EXT_texture_mirror_clamp_to_edge +#define GL_EXT_texture_mirror_clamp_to_edge 1 + +#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 + +#define GLEW_EXT_texture_mirror_clamp_to_edge GLEW_GET_VAR(__GLEW_EXT_texture_mirror_clamp_to_edge) + +#endif /* GL_EXT_texture_mirror_clamp_to_edge */ + +/* ------------------------- GL_EXT_texture_norm16 ------------------------- */ + +#ifndef GL_EXT_texture_norm16 +#define GL_EXT_texture_norm16 1 + +#define GL_RGB16_EXT 0x8054 +#define GL_RGBA16_EXT 0x805B +#define GL_R16_EXT 0x822A +#define GL_RG16_EXT 0x822C +#define GL_R16_SNORM_EXT 0x8F98 +#define GL_RG16_SNORM_EXT 0x8F99 +#define GL_RGB16_SNORM_EXT 0x8F9A +#define GL_RGBA16_SNORM_EXT 0x8F9B + +#define GLEW_EXT_texture_norm16 GLEW_GET_VAR(__GLEW_EXT_texture_norm16) + +#endif /* GL_EXT_texture_norm16 */ + +/* ------------------------- GL_EXT_texture_object ------------------------- */ + +#ifndef GL_EXT_texture_object +#define GL_EXT_texture_object 1 + +#define GL_TEXTURE_PRIORITY_EXT 0x8066 +#define GL_TEXTURE_RESIDENT_EXT 0x8067 +#define GL_TEXTURE_1D_BINDING_EXT 0x8068 +#define GL_TEXTURE_2D_BINDING_EXT 0x8069 +#define GL_TEXTURE_3D_BINDING_EXT 0x806A + +typedef GLboolean (GLAPIENTRY * PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint* textures, GLboolean* residences); +typedef void (GLAPIENTRY * PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); +typedef void (GLAPIENTRY * PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint* textures); +typedef void (GLAPIENTRY * PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint* textures); +typedef GLboolean (GLAPIENTRY * PFNGLISTEXTUREEXTPROC) (GLuint texture); +typedef void (GLAPIENTRY * PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint* textures, const GLclampf* priorities); + +#define glAreTexturesResidentEXT GLEW_GET_FUN(__glewAreTexturesResidentEXT) +#define glBindTextureEXT GLEW_GET_FUN(__glewBindTextureEXT) +#define glDeleteTexturesEXT GLEW_GET_FUN(__glewDeleteTexturesEXT) +#define glGenTexturesEXT GLEW_GET_FUN(__glewGenTexturesEXT) +#define glIsTextureEXT GLEW_GET_FUN(__glewIsTextureEXT) +#define glPrioritizeTexturesEXT GLEW_GET_FUN(__glewPrioritizeTexturesEXT) + +#define GLEW_EXT_texture_object GLEW_GET_VAR(__GLEW_EXT_texture_object) + +#endif /* GL_EXT_texture_object */ + +/* --------------------- GL_EXT_texture_perturb_normal --------------------- */ + +#ifndef GL_EXT_texture_perturb_normal +#define GL_EXT_texture_perturb_normal 1 + +#define GL_PERTURB_EXT 0x85AE +#define GL_TEXTURE_NORMAL_EXT 0x85AF + +typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); + +#define glTextureNormalEXT GLEW_GET_FUN(__glewTextureNormalEXT) + +#define GLEW_EXT_texture_perturb_normal GLEW_GET_VAR(__GLEW_EXT_texture_perturb_normal) + +#endif /* GL_EXT_texture_perturb_normal */ + +/* ------------------------ GL_EXT_texture_query_lod ----------------------- */ + +#ifndef GL_EXT_texture_query_lod +#define GL_EXT_texture_query_lod 1 + +#define GLEW_EXT_texture_query_lod GLEW_GET_VAR(__GLEW_EXT_texture_query_lod) + +#endif /* GL_EXT_texture_query_lod */ + +/* ------------------------ GL_EXT_texture_rectangle ----------------------- */ + +#ifndef GL_EXT_texture_rectangle +#define GL_EXT_texture_rectangle 1 + +#define GL_TEXTURE_RECTANGLE_EXT 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8 + +#define GLEW_EXT_texture_rectangle GLEW_GET_VAR(__GLEW_EXT_texture_rectangle) + +#endif /* GL_EXT_texture_rectangle */ + +/* --------------------------- GL_EXT_texture_rg --------------------------- */ + +#ifndef GL_EXT_texture_rg +#define GL_EXT_texture_rg 1 + +#define GL_RED_EXT 0x1903 +#define GL_RG_EXT 0x8227 +#define GL_R8_EXT 0x8229 +#define GL_RG8_EXT 0x822B + +#define GLEW_EXT_texture_rg GLEW_GET_VAR(__GLEW_EXT_texture_rg) + +#endif /* GL_EXT_texture_rg */ + +/* -------------------------- GL_EXT_texture_sRGB -------------------------- */ + +#ifndef GL_EXT_texture_sRGB +#define GL_EXT_texture_sRGB 1 + +#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 GLEW_EXT_texture_sRGB GLEW_GET_VAR(__GLEW_EXT_texture_sRGB) + +#endif /* GL_EXT_texture_sRGB */ + +/* ------------------------- GL_EXT_texture_sRGB_R8 ------------------------ */ + +#ifndef GL_EXT_texture_sRGB_R8 +#define GL_EXT_texture_sRGB_R8 1 + +#define GL_SR8_EXT 0x8FBD + +#define GLEW_EXT_texture_sRGB_R8 GLEW_GET_VAR(__GLEW_EXT_texture_sRGB_R8) + +#endif /* GL_EXT_texture_sRGB_R8 */ + +/* ------------------------ GL_EXT_texture_sRGB_RG8 ------------------------ */ + +#ifndef GL_EXT_texture_sRGB_RG8 +#define GL_EXT_texture_sRGB_RG8 1 + +#define GL_SRG8_EXT 0x8FBE + +#define GLEW_EXT_texture_sRGB_RG8 GLEW_GET_VAR(__GLEW_EXT_texture_sRGB_RG8) + +#endif /* GL_EXT_texture_sRGB_RG8 */ + +/* ----------------------- GL_EXT_texture_sRGB_decode ---------------------- */ + +#ifndef GL_EXT_texture_sRGB_decode +#define GL_EXT_texture_sRGB_decode 1 + +#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 +#define GL_DECODE_EXT 0x8A49 +#define GL_SKIP_DECODE_EXT 0x8A4A + +#define GLEW_EXT_texture_sRGB_decode GLEW_GET_VAR(__GLEW_EXT_texture_sRGB_decode) + +#endif /* GL_EXT_texture_sRGB_decode */ + +/* ----------------------- GL_EXT_texture_shadow_lod ----------------------- */ + +#ifndef GL_EXT_texture_shadow_lod +#define GL_EXT_texture_shadow_lod 1 + +#define GLEW_EXT_texture_shadow_lod GLEW_GET_VAR(__GLEW_EXT_texture_shadow_lod) + +#endif /* GL_EXT_texture_shadow_lod */ + +/* --------------------- GL_EXT_texture_shared_exponent -------------------- */ + +#ifndef GL_EXT_texture_shared_exponent +#define GL_EXT_texture_shared_exponent 1 + +#define GL_RGB9_E5_EXT 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E +#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F + +#define GLEW_EXT_texture_shared_exponent GLEW_GET_VAR(__GLEW_EXT_texture_shared_exponent) + +#endif /* GL_EXT_texture_shared_exponent */ + +/* -------------------------- GL_EXT_texture_snorm ------------------------- */ + +#ifndef GL_EXT_texture_snorm +#define GL_EXT_texture_snorm 1 + +#define GL_RED_SNORM 0x8F90 +#define GL_RG_SNORM 0x8F91 +#define GL_RGB_SNORM 0x8F92 +#define GL_RGBA_SNORM 0x8F93 +#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_ALPHA_SNORM 0x9010 +#define GL_LUMINANCE_SNORM 0x9011 +#define GL_LUMINANCE_ALPHA_SNORM 0x9012 +#define GL_INTENSITY_SNORM 0x9013 +#define GL_ALPHA8_SNORM 0x9014 +#define GL_LUMINANCE8_SNORM 0x9015 +#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016 +#define GL_INTENSITY8_SNORM 0x9017 +#define GL_ALPHA16_SNORM 0x9018 +#define GL_LUMINANCE16_SNORM 0x9019 +#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A +#define GL_INTENSITY16_SNORM 0x901B + +#define GLEW_EXT_texture_snorm GLEW_GET_VAR(__GLEW_EXT_texture_snorm) + +#endif /* GL_EXT_texture_snorm */ + +/* ------------------------- GL_EXT_texture_storage ------------------------ */ + +#ifndef GL_EXT_texture_storage +#define GL_EXT_texture_storage 1 + +#define GL_ALPHA8_EXT 0x803C +#define GL_LUMINANCE8_EXT 0x8040 +#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 +#define GL_RGB10_EXT 0x8052 +#define GL_RGB10_A2_EXT 0x8059 +#define GL_R8_EXT 0x8229 +#define GL_RG8_EXT 0x822B +#define GL_R16F_EXT 0x822D +#define GL_R32F_EXT 0x822E +#define GL_RG16F_EXT 0x822F +#define GL_RG32F_EXT 0x8230 +#define GL_RGBA32F_EXT 0x8814 +#define GL_RGB32F_EXT 0x8815 +#define GL_ALPHA32F_EXT 0x8816 +#define GL_LUMINANCE32F_EXT 0x8818 +#define GL_LUMINANCE_ALPHA32F_EXT 0x8819 +#define GL_RGBA16F_EXT 0x881A +#define GL_RGB16F_EXT 0x881B +#define GL_ALPHA16F_EXT 0x881C +#define GL_LUMINANCE16F_EXT 0x881E +#define GL_LUMINANCE_ALPHA16F_EXT 0x881F +#define GL_RGB_RAW_422_APPLE 0x8A51 +#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F +#define GL_BGRA8_EXT 0x93A1 + +typedef void (GLAPIENTRY * PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); + +#define glTexStorage1DEXT GLEW_GET_FUN(__glewTexStorage1DEXT) +#define glTexStorage2DEXT GLEW_GET_FUN(__glewTexStorage2DEXT) +#define glTexStorage3DEXT GLEW_GET_FUN(__glewTexStorage3DEXT) +#define glTextureStorage1DEXT GLEW_GET_FUN(__glewTextureStorage1DEXT) +#define glTextureStorage2DEXT GLEW_GET_FUN(__glewTextureStorage2DEXT) +#define glTextureStorage3DEXT GLEW_GET_FUN(__glewTextureStorage3DEXT) + +#define GLEW_EXT_texture_storage GLEW_GET_VAR(__GLEW_EXT_texture_storage) + +#endif /* GL_EXT_texture_storage */ + +/* ------------------- GL_EXT_texture_storage_compression ------------------ */ + +#ifndef GL_EXT_texture_storage_compression +#define GL_EXT_texture_storage_compression 1 + +#define GL_NUM_SURFACE_COMPRESSION_FIXED_RATES_EXT 0x8F6E +#define GL_SURFACE_COMPRESSION_EXT 0x96C0 +#define GL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT 0x96C1 +#define GL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT 0x96C2 +#define GL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT 0x96C4 +#define GL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT 0x96C5 +#define GL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT 0x96C6 +#define GL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT 0x96C7 +#define GL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT 0x96C8 +#define GL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT 0x96C9 +#define GL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT 0x96CA +#define GL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT 0x96CB +#define GL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT 0x96CC +#define GL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT 0x96CD +#define GL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT 0x96CE +#define GL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT 0x96CF + +typedef void (GLAPIENTRY * PFNGLTEXSTORAGEATTRIBS2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, const GLint* attrib_list); +typedef void (GLAPIENTRY * PFNGLTEXSTORAGEATTRIBS3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, const GLint* attrib_list); + +#define glTexStorageAttribs2DEXT GLEW_GET_FUN(__glewTexStorageAttribs2DEXT) +#define glTexStorageAttribs3DEXT GLEW_GET_FUN(__glewTexStorageAttribs3DEXT) + +#define GLEW_EXT_texture_storage_compression GLEW_GET_VAR(__GLEW_EXT_texture_storage_compression) + +#endif /* GL_EXT_texture_storage_compression */ + +/* ------------------------- GL_EXT_texture_swizzle ------------------------ */ + +#ifndef GL_EXT_texture_swizzle +#define GL_EXT_texture_swizzle 1 + +#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 GLEW_EXT_texture_swizzle GLEW_GET_VAR(__GLEW_EXT_texture_swizzle) + +#endif /* GL_EXT_texture_swizzle */ + +/* ------------------- GL_EXT_texture_type_2_10_10_10_REV ------------------ */ + +#ifndef GL_EXT_texture_type_2_10_10_10_REV +#define GL_EXT_texture_type_2_10_10_10_REV 1 + +#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 + +#define GLEW_EXT_texture_type_2_10_10_10_REV GLEW_GET_VAR(__GLEW_EXT_texture_type_2_10_10_10_REV) + +#endif /* GL_EXT_texture_type_2_10_10_10_REV */ + +/* -------------------------- GL_EXT_texture_view -------------------------- */ + +#ifndef GL_EXT_texture_view +#define GL_EXT_texture_view 1 + +#define GL_TEXTURE_VIEW_MIN_LEVEL_EXT 0x82DB +#define GL_TEXTURE_VIEW_NUM_LEVELS_EXT 0x82DC +#define GL_TEXTURE_VIEW_MIN_LAYER_EXT 0x82DD +#define GL_TEXTURE_VIEW_NUM_LAYERS_EXT 0x82DE +#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF + +typedef void (GLAPIENTRY * PFNGLTEXTUREVIEWEXTPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); + +#define glTextureViewEXT GLEW_GET_FUN(__glewTextureViewEXT) + +#define GLEW_EXT_texture_view GLEW_GET_VAR(__GLEW_EXT_texture_view) + +#endif /* GL_EXT_texture_view */ + +/* --------------------------- GL_EXT_timer_query -------------------------- */ + +#ifndef GL_EXT_timer_query +#define GL_EXT_timer_query 1 + +#define GL_TIME_ELAPSED_EXT 0x88BF + +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64EXT *params); + +#define glGetQueryObjecti64vEXT GLEW_GET_FUN(__glewGetQueryObjecti64vEXT) +#define glGetQueryObjectui64vEXT GLEW_GET_FUN(__glewGetQueryObjectui64vEXT) + +#define GLEW_EXT_timer_query GLEW_GET_VAR(__GLEW_EXT_timer_query) + +#endif /* GL_EXT_timer_query */ + +/* ----------------------- GL_EXT_transform_feedback ----------------------- */ + +#ifndef GL_EXT_transform_feedback +#define GL_EXT_transform_feedback 1 + +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 +#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 +#define GL_RASTERIZER_DISCARD_EXT 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B +#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C +#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F + +typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode); +typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void); +typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei *size, GLenum *type, GLchar *name); +typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLchar * const* varyings, GLenum bufferMode); + +#define glBeginTransformFeedbackEXT GLEW_GET_FUN(__glewBeginTransformFeedbackEXT) +#define glBindBufferBaseEXT GLEW_GET_FUN(__glewBindBufferBaseEXT) +#define glBindBufferOffsetEXT GLEW_GET_FUN(__glewBindBufferOffsetEXT) +#define glBindBufferRangeEXT GLEW_GET_FUN(__glewBindBufferRangeEXT) +#define glEndTransformFeedbackEXT GLEW_GET_FUN(__glewEndTransformFeedbackEXT) +#define glGetTransformFeedbackVaryingEXT GLEW_GET_FUN(__glewGetTransformFeedbackVaryingEXT) +#define glTransformFeedbackVaryingsEXT GLEW_GET_FUN(__glewTransformFeedbackVaryingsEXT) + +#define GLEW_EXT_transform_feedback GLEW_GET_VAR(__GLEW_EXT_transform_feedback) + +#endif /* GL_EXT_transform_feedback */ + +/* ------------------------- GL_EXT_unpack_subimage ------------------------ */ + +#ifndef GL_EXT_unpack_subimage +#define GL_EXT_unpack_subimage 1 + +#define GL_UNPACK_ROW_LENGTH_EXT 0x0CF2 +#define GL_UNPACK_SKIP_ROWS_EXT 0x0CF3 +#define GL_UNPACK_SKIP_PIXELS_EXT 0x0CF4 + +#define GLEW_EXT_unpack_subimage GLEW_GET_VAR(__GLEW_EXT_unpack_subimage) + +#endif /* GL_EXT_unpack_subimage */ + +/* -------------------------- GL_EXT_vertex_array -------------------------- */ + +#ifndef GL_EXT_vertex_array +#define GL_EXT_vertex_array 1 + +#define GL_DOUBLE_EXT 0x140A +#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 + +typedef void (GLAPIENTRY * PFNGLARRAYELEMENTEXTPROC) (GLint i); +typedef void (GLAPIENTRY * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); +typedef void (GLAPIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean* pointer); +typedef void (GLAPIENTRY * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer); +typedef void (GLAPIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer); +typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); +typedef void (GLAPIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); + +#define glArrayElementEXT GLEW_GET_FUN(__glewArrayElementEXT) +#define glColorPointerEXT GLEW_GET_FUN(__glewColorPointerEXT) +#define glDrawArraysEXT GLEW_GET_FUN(__glewDrawArraysEXT) +#define glEdgeFlagPointerEXT GLEW_GET_FUN(__glewEdgeFlagPointerEXT) +#define glIndexPointerEXT GLEW_GET_FUN(__glewIndexPointerEXT) +#define glNormalPointerEXT GLEW_GET_FUN(__glewNormalPointerEXT) +#define glTexCoordPointerEXT GLEW_GET_FUN(__glewTexCoordPointerEXT) +#define glVertexPointerEXT GLEW_GET_FUN(__glewVertexPointerEXT) + +#define GLEW_EXT_vertex_array GLEW_GET_VAR(__GLEW_EXT_vertex_array) + +#endif /* GL_EXT_vertex_array */ + +/* ------------------------ GL_EXT_vertex_array_bgra ----------------------- */ + +#ifndef GL_EXT_vertex_array_bgra +#define GL_EXT_vertex_array_bgra 1 + +#define GL_BGRA 0x80E1 + +#define GLEW_EXT_vertex_array_bgra GLEW_GET_VAR(__GLEW_EXT_vertex_array_bgra) + +#endif /* GL_EXT_vertex_array_bgra */ + +/* ----------------------- GL_EXT_vertex_array_setXXX ---------------------- */ + +#ifndef GL_EXT_vertex_array_setXXX +#define GL_EXT_vertex_array_setXXX 1 + +typedef void (GLAPIENTRY * PFNGLBINDARRAYSETEXTPROC) (const void *arrayset); +typedef const void * (GLAPIENTRY * PFNGLCREATEARRAYSETEXTPROC) (void); +typedef void (GLAPIENTRY * PFNGLDELETEARRAYSETSEXTPROC) (GLsizei n, const void *arrayset[]); + +#define glBindArraySetEXT GLEW_GET_FUN(__glewBindArraySetEXT) +#define glCreateArraySetExt GLEW_GET_FUN(__glewCreateArraySetExt) +#define glDeleteArraySetsEXT GLEW_GET_FUN(__glewDeleteArraySetsEXT) + +#define GLEW_EXT_vertex_array_setXXX GLEW_GET_VAR(__GLEW_EXT_vertex_array_setXXX) + +#endif /* GL_EXT_vertex_array_setXXX */ + +/* ----------------------- GL_EXT_vertex_attrib_64bit ---------------------- */ + +#ifndef GL_EXT_vertex_attrib_64bit +#define GL_EXT_vertex_attrib_64bit 1 + +#define GL_DOUBLE_MAT2_EXT 0x8F46 +#define GL_DOUBLE_MAT3_EXT 0x8F47 +#define GL_DOUBLE_MAT4_EXT 0x8F48 +#define GL_DOUBLE_MAT2x3_EXT 0x8F49 +#define GL_DOUBLE_MAT2x4_EXT 0x8F4A +#define GL_DOUBLE_MAT3x2_EXT 0x8F4B +#define GL_DOUBLE_MAT3x4_EXT 0x8F4C +#define GL_DOUBLE_MAT4x2_EXT 0x8F4D +#define GL_DOUBLE_MAT4x3_EXT 0x8F4E +#define GL_DOUBLE_VEC2_EXT 0x8FFC +#define GL_DOUBLE_VEC3_EXT 0x8FFD +#define GL_DOUBLE_VEC4_EXT 0x8FFE + +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); + +#define glGetVertexAttribLdvEXT GLEW_GET_FUN(__glewGetVertexAttribLdvEXT) +#define glVertexArrayVertexAttribLOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribLOffsetEXT) +#define glVertexAttribL1dEXT GLEW_GET_FUN(__glewVertexAttribL1dEXT) +#define glVertexAttribL1dvEXT GLEW_GET_FUN(__glewVertexAttribL1dvEXT) +#define glVertexAttribL2dEXT GLEW_GET_FUN(__glewVertexAttribL2dEXT) +#define glVertexAttribL2dvEXT GLEW_GET_FUN(__glewVertexAttribL2dvEXT) +#define glVertexAttribL3dEXT GLEW_GET_FUN(__glewVertexAttribL3dEXT) +#define glVertexAttribL3dvEXT GLEW_GET_FUN(__glewVertexAttribL3dvEXT) +#define glVertexAttribL4dEXT GLEW_GET_FUN(__glewVertexAttribL4dEXT) +#define glVertexAttribL4dvEXT GLEW_GET_FUN(__glewVertexAttribL4dvEXT) +#define glVertexAttribLPointerEXT GLEW_GET_FUN(__glewVertexAttribLPointerEXT) + +#define GLEW_EXT_vertex_attrib_64bit GLEW_GET_VAR(__GLEW_EXT_vertex_attrib_64bit) + +#endif /* GL_EXT_vertex_attrib_64bit */ + +/* -------------------------- GL_EXT_vertex_shader ------------------------- */ + +#ifndef GL_EXT_vertex_shader +#define GL_EXT_vertex_shader 1 + +#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_INVARIANTS_EXT 0x87CC +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_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 + +typedef void (GLAPIENTRY * PFNGLBEGINVERTEXSHADEREXTPROC) (void); +typedef GLuint (GLAPIENTRY * PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); +typedef GLuint (GLAPIENTRY * PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); +typedef GLuint (GLAPIENTRY * PFNGLBINDPARAMETEREXTPROC) (GLenum value); +typedef GLuint (GLAPIENTRY * PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); +typedef GLuint (GLAPIENTRY * PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); +typedef void (GLAPIENTRY * PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLENDVERTEXSHADEREXTPROC) (void); +typedef void (GLAPIENTRY * PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); +typedef GLuint (GLAPIENTRY * PFNGLGENSYMBOLSEXTPROC) (GLenum dataType, GLenum storageType, GLenum range, GLuint components); +typedef GLuint (GLAPIENTRY * PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); +typedef void (GLAPIENTRY * PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (GLAPIENTRY * PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +typedef void (GLAPIENTRY * PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (GLAPIENTRY * PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (GLAPIENTRY * PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +typedef void (GLAPIENTRY * PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (GLAPIENTRY * PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, void **data); +typedef void (GLAPIENTRY * PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); +typedef GLboolean (GLAPIENTRY * PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); +typedef void (GLAPIENTRY * PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, void *addr); +typedef void (GLAPIENTRY * PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, void *addr); +typedef void (GLAPIENTRY * PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); +typedef void (GLAPIENTRY * PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); +typedef void (GLAPIENTRY * PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); +typedef void (GLAPIENTRY * PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +typedef void (GLAPIENTRY * PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, void *addr); +typedef void (GLAPIENTRY * PFNGLVARIANTBVEXTPROC) (GLuint id, GLbyte *addr); +typedef void (GLAPIENTRY * PFNGLVARIANTDVEXTPROC) (GLuint id, GLdouble *addr); +typedef void (GLAPIENTRY * PFNGLVARIANTFVEXTPROC) (GLuint id, GLfloat *addr); +typedef void (GLAPIENTRY * PFNGLVARIANTIVEXTPROC) (GLuint id, GLint *addr); +typedef void (GLAPIENTRY * PFNGLVARIANTSVEXTPROC) (GLuint id, GLshort *addr); +typedef void (GLAPIENTRY * PFNGLVARIANTUBVEXTPROC) (GLuint id, GLubyte *addr); +typedef void (GLAPIENTRY * PFNGLVARIANTUIVEXTPROC) (GLuint id, GLuint *addr); +typedef void (GLAPIENTRY * PFNGLVARIANTUSVEXTPROC) (GLuint id, GLushort *addr); +typedef void (GLAPIENTRY * PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); + +#define glBeginVertexShaderEXT GLEW_GET_FUN(__glewBeginVertexShaderEXT) +#define glBindLightParameterEXT GLEW_GET_FUN(__glewBindLightParameterEXT) +#define glBindMaterialParameterEXT GLEW_GET_FUN(__glewBindMaterialParameterEXT) +#define glBindParameterEXT GLEW_GET_FUN(__glewBindParameterEXT) +#define glBindTexGenParameterEXT GLEW_GET_FUN(__glewBindTexGenParameterEXT) +#define glBindTextureUnitParameterEXT GLEW_GET_FUN(__glewBindTextureUnitParameterEXT) +#define glBindVertexShaderEXT GLEW_GET_FUN(__glewBindVertexShaderEXT) +#define glDeleteVertexShaderEXT GLEW_GET_FUN(__glewDeleteVertexShaderEXT) +#define glDisableVariantClientStateEXT GLEW_GET_FUN(__glewDisableVariantClientStateEXT) +#define glEnableVariantClientStateEXT GLEW_GET_FUN(__glewEnableVariantClientStateEXT) +#define glEndVertexShaderEXT GLEW_GET_FUN(__glewEndVertexShaderEXT) +#define glExtractComponentEXT GLEW_GET_FUN(__glewExtractComponentEXT) +#define glGenSymbolsEXT GLEW_GET_FUN(__glewGenSymbolsEXT) +#define glGenVertexShadersEXT GLEW_GET_FUN(__glewGenVertexShadersEXT) +#define glGetInvariantBooleanvEXT GLEW_GET_FUN(__glewGetInvariantBooleanvEXT) +#define glGetInvariantFloatvEXT GLEW_GET_FUN(__glewGetInvariantFloatvEXT) +#define glGetInvariantIntegervEXT GLEW_GET_FUN(__glewGetInvariantIntegervEXT) +#define glGetLocalConstantBooleanvEXT GLEW_GET_FUN(__glewGetLocalConstantBooleanvEXT) +#define glGetLocalConstantFloatvEXT GLEW_GET_FUN(__glewGetLocalConstantFloatvEXT) +#define glGetLocalConstantIntegervEXT GLEW_GET_FUN(__glewGetLocalConstantIntegervEXT) +#define glGetVariantBooleanvEXT GLEW_GET_FUN(__glewGetVariantBooleanvEXT) +#define glGetVariantFloatvEXT GLEW_GET_FUN(__glewGetVariantFloatvEXT) +#define glGetVariantIntegervEXT GLEW_GET_FUN(__glewGetVariantIntegervEXT) +#define glGetVariantPointervEXT GLEW_GET_FUN(__glewGetVariantPointervEXT) +#define glInsertComponentEXT GLEW_GET_FUN(__glewInsertComponentEXT) +#define glIsVariantEnabledEXT GLEW_GET_FUN(__glewIsVariantEnabledEXT) +#define glSetInvariantEXT GLEW_GET_FUN(__glewSetInvariantEXT) +#define glSetLocalConstantEXT GLEW_GET_FUN(__glewSetLocalConstantEXT) +#define glShaderOp1EXT GLEW_GET_FUN(__glewShaderOp1EXT) +#define glShaderOp2EXT GLEW_GET_FUN(__glewShaderOp2EXT) +#define glShaderOp3EXT GLEW_GET_FUN(__glewShaderOp3EXT) +#define glSwizzleEXT GLEW_GET_FUN(__glewSwizzleEXT) +#define glVariantPointerEXT GLEW_GET_FUN(__glewVariantPointerEXT) +#define glVariantbvEXT GLEW_GET_FUN(__glewVariantbvEXT) +#define glVariantdvEXT GLEW_GET_FUN(__glewVariantdvEXT) +#define glVariantfvEXT GLEW_GET_FUN(__glewVariantfvEXT) +#define glVariantivEXT GLEW_GET_FUN(__glewVariantivEXT) +#define glVariantsvEXT GLEW_GET_FUN(__glewVariantsvEXT) +#define glVariantubvEXT GLEW_GET_FUN(__glewVariantubvEXT) +#define glVariantuivEXT GLEW_GET_FUN(__glewVariantuivEXT) +#define glVariantusvEXT GLEW_GET_FUN(__glewVariantusvEXT) +#define glWriteMaskEXT GLEW_GET_FUN(__glewWriteMaskEXT) + +#define GLEW_EXT_vertex_shader GLEW_GET_VAR(__GLEW_EXT_vertex_shader) + +#endif /* GL_EXT_vertex_shader */ + +/* ------------------------ GL_EXT_vertex_weighting ------------------------ */ + +#ifndef GL_EXT_vertex_weighting +#define GL_EXT_vertex_weighting 1 + +#define GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3 +#define GL_MODELVIEW0_MATRIX_EXT 0x0BA6 +#define GL_MODELVIEW0_EXT 0x1700 +#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 +#define GL_MODELVIEW1_MATRIX_EXT 0x8506 +#define GL_VERTEX_WEIGHTING_EXT 0x8509 +#define GL_MODELVIEW1_EXT 0x850A +#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B +#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C +#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D +#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E +#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F +#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 + +typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, void *pointer); +typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); +typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFVEXTPROC) (GLfloat* weight); + +#define glVertexWeightPointerEXT GLEW_GET_FUN(__glewVertexWeightPointerEXT) +#define glVertexWeightfEXT GLEW_GET_FUN(__glewVertexWeightfEXT) +#define glVertexWeightfvEXT GLEW_GET_FUN(__glewVertexWeightfvEXT) + +#define GLEW_EXT_vertex_weighting GLEW_GET_VAR(__GLEW_EXT_vertex_weighting) + +#endif /* GL_EXT_vertex_weighting */ + +/* ------------------------ GL_EXT_win32_keyed_mutex ----------------------- */ + +#ifndef GL_EXT_win32_keyed_mutex +#define GL_EXT_win32_keyed_mutex 1 + +typedef GLboolean (GLAPIENTRY * PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key, GLuint timeout); +typedef GLboolean (GLAPIENTRY * PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key); + +#define glAcquireKeyedMutexWin32EXT GLEW_GET_FUN(__glewAcquireKeyedMutexWin32EXT) +#define glReleaseKeyedMutexWin32EXT GLEW_GET_FUN(__glewReleaseKeyedMutexWin32EXT) + +#define GLEW_EXT_win32_keyed_mutex GLEW_GET_VAR(__GLEW_EXT_win32_keyed_mutex) + +#endif /* GL_EXT_win32_keyed_mutex */ + +/* ------------------------ GL_EXT_window_rectangles ----------------------- */ + +#ifndef GL_EXT_window_rectangles +#define GL_EXT_window_rectangles 1 + +#define GL_INCLUSIVE_EXT 0x8F10 +#define GL_EXCLUSIVE_EXT 0x8F11 +#define GL_WINDOW_RECTANGLE_EXT 0x8F12 +#define GL_WINDOW_RECTANGLE_MODE_EXT 0x8F13 +#define GL_MAX_WINDOW_RECTANGLES_EXT 0x8F14 +#define GL_NUM_WINDOW_RECTANGLES_EXT 0x8F15 + +typedef void (GLAPIENTRY * PFNGLWINDOWRECTANGLESEXTPROC) (GLenum mode, GLsizei count, const GLint box[]); + +#define glWindowRectanglesEXT GLEW_GET_FUN(__glewWindowRectanglesEXT) + +#define GLEW_EXT_window_rectangles GLEW_GET_VAR(__GLEW_EXT_window_rectangles) + +#endif /* GL_EXT_window_rectangles */ + +/* ------------------------- GL_EXT_x11_sync_object ------------------------ */ + +#ifndef GL_EXT_x11_sync_object +#define GL_EXT_x11_sync_object 1 + +#define GL_SYNC_X11_FENCE_EXT 0x90E1 + +typedef GLsync (GLAPIENTRY * PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); + +#define glImportSyncEXT GLEW_GET_FUN(__glewImportSyncEXT) + +#define GLEW_EXT_x11_sync_object GLEW_GET_VAR(__GLEW_EXT_x11_sync_object) + +#endif /* GL_EXT_x11_sync_object */ + +/* ----------------------- GL_FJ_shader_binary_GCCSO ----------------------- */ + +#ifndef GL_FJ_shader_binary_GCCSO +#define GL_FJ_shader_binary_GCCSO 1 + +#define GL_GCCSO_SHADER_BINARY_FJ 0x9260 + +#define GLEW_FJ_shader_binary_GCCSO GLEW_GET_VAR(__GLEW_FJ_shader_binary_GCCSO) + +#endif /* GL_FJ_shader_binary_GCCSO */ + +/* ---------------------- GL_GREMEDY_frame_terminator ---------------------- */ + +#ifndef GL_GREMEDY_frame_terminator +#define GL_GREMEDY_frame_terminator 1 + +typedef void (GLAPIENTRY * PFNGLFRAMETERMINATORGREMEDYPROC) (void); + +#define glFrameTerminatorGREMEDY GLEW_GET_FUN(__glewFrameTerminatorGREMEDY) + +#define GLEW_GREMEDY_frame_terminator GLEW_GET_VAR(__GLEW_GREMEDY_frame_terminator) + +#endif /* GL_GREMEDY_frame_terminator */ + +/* ------------------------ GL_GREMEDY_string_marker ----------------------- */ + +#ifndef GL_GREMEDY_string_marker +#define GL_GREMEDY_string_marker 1 + +typedef void (GLAPIENTRY * PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const void *string); + +#define glStringMarkerGREMEDY GLEW_GET_FUN(__glewStringMarkerGREMEDY) + +#define GLEW_GREMEDY_string_marker GLEW_GET_VAR(__GLEW_GREMEDY_string_marker) + +#endif /* GL_GREMEDY_string_marker */ + +/* --------------------- GL_HP_convolution_border_modes -------------------- */ + +#ifndef GL_HP_convolution_border_modes +#define GL_HP_convolution_border_modes 1 + +#define GLEW_HP_convolution_border_modes GLEW_GET_VAR(__GLEW_HP_convolution_border_modes) + +#endif /* GL_HP_convolution_border_modes */ + +/* ------------------------- GL_HP_image_transform ------------------------- */ + +#ifndef GL_HP_image_transform +#define GL_HP_image_transform 1 + +typedef void (GLAPIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, const GLfloat param); +typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, const GLint param); +typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint* params); + +#define glGetImageTransformParameterfvHP GLEW_GET_FUN(__glewGetImageTransformParameterfvHP) +#define glGetImageTransformParameterivHP GLEW_GET_FUN(__glewGetImageTransformParameterivHP) +#define glImageTransformParameterfHP GLEW_GET_FUN(__glewImageTransformParameterfHP) +#define glImageTransformParameterfvHP GLEW_GET_FUN(__glewImageTransformParameterfvHP) +#define glImageTransformParameteriHP GLEW_GET_FUN(__glewImageTransformParameteriHP) +#define glImageTransformParameterivHP GLEW_GET_FUN(__glewImageTransformParameterivHP) + +#define GLEW_HP_image_transform GLEW_GET_VAR(__GLEW_HP_image_transform) + +#endif /* GL_HP_image_transform */ + +/* -------------------------- GL_HP_occlusion_test ------------------------- */ + +#ifndef GL_HP_occlusion_test +#define GL_HP_occlusion_test 1 + +#define GLEW_HP_occlusion_test GLEW_GET_VAR(__GLEW_HP_occlusion_test) + +#endif /* GL_HP_occlusion_test */ + +/* ------------------------- GL_HP_texture_lighting ------------------------ */ + +#ifndef GL_HP_texture_lighting +#define GL_HP_texture_lighting 1 + +#define GLEW_HP_texture_lighting GLEW_GET_VAR(__GLEW_HP_texture_lighting) + +#endif /* GL_HP_texture_lighting */ + +/* ------------------------ GL_HUAWEI_program_binary ----------------------- */ + +#ifndef GL_HUAWEI_program_binary +#define GL_HUAWEI_program_binary 1 + +#define GL_HUAWEI_PROGRAM_BINARY 0x9771 + +#define GLEW_HUAWEI_program_binary GLEW_GET_VAR(__GLEW_HUAWEI_program_binary) + +#endif /* GL_HUAWEI_program_binary */ + +/* ------------------------ GL_HUAWEI_shader_binary ------------------------ */ + +#ifndef GL_HUAWEI_shader_binary +#define GL_HUAWEI_shader_binary 1 + +#define GL_HUAWEI_SHADER_BINARY 0x9770 + +#define GLEW_HUAWEI_shader_binary GLEW_GET_VAR(__GLEW_HUAWEI_shader_binary) + +#endif /* GL_HUAWEI_shader_binary */ + +/* --------------------------- GL_IBM_cull_vertex -------------------------- */ + +#ifndef GL_IBM_cull_vertex +#define GL_IBM_cull_vertex 1 + +#define GL_CULL_VERTEX_IBM 103050 + +#define GLEW_IBM_cull_vertex GLEW_GET_VAR(__GLEW_IBM_cull_vertex) + +#endif /* GL_IBM_cull_vertex */ + +/* ---------------------- GL_IBM_multimode_draw_arrays --------------------- */ + +#ifndef GL_IBM_multimode_draw_arrays +#define GL_IBM_multimode_draw_arrays 1 + +typedef void (GLAPIENTRY * PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum* mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); +typedef void (GLAPIENTRY * PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum* mode, const GLsizei *count, GLenum type, const void *const *indices, GLsizei primcount, GLint modestride); + +#define glMultiModeDrawArraysIBM GLEW_GET_FUN(__glewMultiModeDrawArraysIBM) +#define glMultiModeDrawElementsIBM GLEW_GET_FUN(__glewMultiModeDrawElementsIBM) + +#define GLEW_IBM_multimode_draw_arrays GLEW_GET_VAR(__GLEW_IBM_multimode_draw_arrays) + +#endif /* GL_IBM_multimode_draw_arrays */ + +/* ------------------------- GL_IBM_rasterpos_clip ------------------------- */ + +#ifndef GL_IBM_rasterpos_clip +#define GL_IBM_rasterpos_clip 1 + +#define GL_RASTER_POSITION_UNCLIPPED_IBM 103010 + +#define GLEW_IBM_rasterpos_clip GLEW_GET_VAR(__GLEW_IBM_rasterpos_clip) + +#endif /* GL_IBM_rasterpos_clip */ + +/* --------------------------- GL_IBM_static_data -------------------------- */ + +#ifndef GL_IBM_static_data +#define GL_IBM_static_data 1 + +#define GL_ALL_STATIC_DATA_IBM 103060 +#define GL_STATIC_VERTEX_ARRAY_IBM 103061 + +#define GLEW_IBM_static_data GLEW_GET_VAR(__GLEW_IBM_static_data) + +#endif /* GL_IBM_static_data */ + +/* --------------------- GL_IBM_texture_mirrored_repeat -------------------- */ + +#ifndef GL_IBM_texture_mirrored_repeat +#define GL_IBM_texture_mirrored_repeat 1 + +#define GL_MIRRORED_REPEAT_IBM 0x8370 + +#define GLEW_IBM_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_IBM_texture_mirrored_repeat) + +#endif /* GL_IBM_texture_mirrored_repeat */ + +/* ----------------------- GL_IBM_vertex_array_lists ----------------------- */ + +#ifndef GL_IBM_vertex_array_lists +#define GL_IBM_vertex_array_lists 1 + +#define GL_VERTEX_ARRAY_LIST_IBM 103070 +#define GL_NORMAL_ARRAY_LIST_IBM 103071 +#define GL_COLOR_ARRAY_LIST_IBM 103072 +#define GL_INDEX_ARRAY_LIST_IBM 103073 +#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 +#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 +#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 +#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 +#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 +#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 +#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 +#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 +#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 +#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 +#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 +#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 + +typedef void (GLAPIENTRY * PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride); +typedef void (GLAPIENTRY * PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean ** pointer, GLint ptrstride); +typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void** pointer, GLint ptrstride); +typedef void (GLAPIENTRY * PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void** pointer, GLint ptrstride); +typedef void (GLAPIENTRY * PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void** pointer, GLint ptrstride); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride); +typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride); +typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void** pointer, GLint ptrstride); + +#define glColorPointerListIBM GLEW_GET_FUN(__glewColorPointerListIBM) +#define glEdgeFlagPointerListIBM GLEW_GET_FUN(__glewEdgeFlagPointerListIBM) +#define glFogCoordPointerListIBM GLEW_GET_FUN(__glewFogCoordPointerListIBM) +#define glIndexPointerListIBM GLEW_GET_FUN(__glewIndexPointerListIBM) +#define glNormalPointerListIBM GLEW_GET_FUN(__glewNormalPointerListIBM) +#define glSecondaryColorPointerListIBM GLEW_GET_FUN(__glewSecondaryColorPointerListIBM) +#define glTexCoordPointerListIBM GLEW_GET_FUN(__glewTexCoordPointerListIBM) +#define glVertexPointerListIBM GLEW_GET_FUN(__glewVertexPointerListIBM) + +#define GLEW_IBM_vertex_array_lists GLEW_GET_VAR(__GLEW_IBM_vertex_array_lists) + +#endif /* GL_IBM_vertex_array_lists */ + +/* ------------------------ GL_IMG_bindless_texture ------------------------ */ + +#ifndef GL_IMG_bindless_texture +#define GL_IMG_bindless_texture 1 + +typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTUREHANDLEIMGPROC) (GLuint texture); +typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTURESAMPLERHANDLEIMGPROC) (GLuint texture, GLuint sampler); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC) (GLuint program, GLint location, GLuint64 value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* values); +typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64IMGPROC) (GLint location, GLuint64 value); +typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64VIMGPROC) (GLint location, GLsizei count, const GLuint64* value); + +#define glGetTextureHandleIMG GLEW_GET_FUN(__glewGetTextureHandleIMG) +#define glGetTextureSamplerHandleIMG GLEW_GET_FUN(__glewGetTextureSamplerHandleIMG) +#define glProgramUniformHandleui64IMG GLEW_GET_FUN(__glewProgramUniformHandleui64IMG) +#define glProgramUniformHandleui64vIMG GLEW_GET_FUN(__glewProgramUniformHandleui64vIMG) +#define glUniformHandleui64IMG GLEW_GET_FUN(__glewUniformHandleui64IMG) +#define glUniformHandleui64vIMG GLEW_GET_FUN(__glewUniformHandleui64vIMG) + +#define GLEW_IMG_bindless_texture GLEW_GET_VAR(__GLEW_IMG_bindless_texture) + +#endif /* GL_IMG_bindless_texture */ + +/* --------------------- GL_IMG_framebuffer_downsample --------------------- */ + +#ifndef GL_IMG_framebuffer_downsample +#define GL_IMG_framebuffer_downsample 1 + +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG 0x913C +#define GL_NUM_DOWNSAMPLE_SCALES_IMG 0x913D +#define GL_DOWNSAMPLE_SCALES_IMG 0x913E +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG 0x913F + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale); + +#define glFramebufferTexture2DDownsampleIMG GLEW_GET_FUN(__glewFramebufferTexture2DDownsampleIMG) +#define glFramebufferTextureLayerDownsampleIMG GLEW_GET_FUN(__glewFramebufferTextureLayerDownsampleIMG) + +#define GLEW_IMG_framebuffer_downsample GLEW_GET_VAR(__GLEW_IMG_framebuffer_downsample) + +#endif /* GL_IMG_framebuffer_downsample */ + +/* ----------------- GL_IMG_multisampled_render_to_texture ----------------- */ + +#ifndef GL_IMG_multisampled_render_to_texture +#define GL_IMG_multisampled_render_to_texture 1 + +#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134 +#define GL_MAX_SAMPLES_IMG 0x9135 +#define GL_TEXTURE_SAMPLES_IMG 0x9136 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); + +#define glFramebufferTexture2DMultisampleIMG GLEW_GET_FUN(__glewFramebufferTexture2DMultisampleIMG) +#define glRenderbufferStorageMultisampleIMG GLEW_GET_FUN(__glewRenderbufferStorageMultisampleIMG) + +#define GLEW_IMG_multisampled_render_to_texture GLEW_GET_VAR(__GLEW_IMG_multisampled_render_to_texture) + +#endif /* GL_IMG_multisampled_render_to_texture */ + +/* ------------------------- GL_IMG_program_binary ------------------------- */ + +#ifndef GL_IMG_program_binary +#define GL_IMG_program_binary 1 + +#define GL_SGX_PROGRAM_BINARY_IMG 0x9130 + +#define GLEW_IMG_program_binary GLEW_GET_VAR(__GLEW_IMG_program_binary) + +#endif /* GL_IMG_program_binary */ + +/* ------------------- GL_IMG_pvric_end_to_end_signature ------------------- */ + +#ifndef GL_IMG_pvric_end_to_end_signature +#define GL_IMG_pvric_end_to_end_signature 1 + +#define GL_PVRIC_SIGNATURE_MISMATCH_IMG 0x8EA3 + +#define GLEW_IMG_pvric_end_to_end_signature GLEW_GET_VAR(__GLEW_IMG_pvric_end_to_end_signature) + +#endif /* GL_IMG_pvric_end_to_end_signature */ + +/* --------------------------- GL_IMG_read_format -------------------------- */ + +#ifndef GL_IMG_read_format +#define GL_IMG_read_format 1 + +#define GL_BGRA_IMG 0x80E1 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365 + +#define GLEW_IMG_read_format GLEW_GET_VAR(__GLEW_IMG_read_format) + +#endif /* GL_IMG_read_format */ + +/* -------------------------- GL_IMG_shader_binary ------------------------- */ + +#ifndef GL_IMG_shader_binary +#define GL_IMG_shader_binary 1 + +#define GL_SGX_BINARY_IMG 0x8C0A + +#define GLEW_IMG_shader_binary GLEW_GET_VAR(__GLEW_IMG_shader_binary) + +#endif /* GL_IMG_shader_binary */ + +/* -------------------- GL_IMG_texture_compression_pvrtc ------------------- */ + +#ifndef GL_IMG_texture_compression_pvrtc +#define GL_IMG_texture_compression_pvrtc 1 + +#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 +#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01 +#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 +#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03 + +#define GLEW_IMG_texture_compression_pvrtc GLEW_GET_VAR(__GLEW_IMG_texture_compression_pvrtc) + +#endif /* GL_IMG_texture_compression_pvrtc */ + +/* ------------------- GL_IMG_texture_compression_pvrtc2 ------------------- */ + +#ifndef GL_IMG_texture_compression_pvrtc2 +#define GL_IMG_texture_compression_pvrtc2 1 + +#define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG 0x9137 +#define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG 0x9138 + +#define GLEW_IMG_texture_compression_pvrtc2 GLEW_GET_VAR(__GLEW_IMG_texture_compression_pvrtc2) + +#endif /* GL_IMG_texture_compression_pvrtc2 */ + +/* --------------- GL_IMG_texture_env_enhanced_fixed_function -------------- */ + +#ifndef GL_IMG_texture_env_enhanced_fixed_function +#define GL_IMG_texture_env_enhanced_fixed_function 1 + +#define GL_DOT3_RGBA_IMG 0x86AF +#define GL_MODULATE_COLOR_IMG 0x8C04 +#define GL_RECIP_ADD_SIGNED_ALPHA_IMG 0x8C05 +#define GL_TEXTURE_ALPHA_MODULATE_IMG 0x8C06 +#define GL_FACTOR_ALPHA_MODULATE_IMG 0x8C07 +#define GL_FRAGMENT_ALPHA_MODULATE_IMG 0x8C08 +#define GL_ADD_BLEND_IMG 0x8C09 + +#define GLEW_IMG_texture_env_enhanced_fixed_function GLEW_GET_VAR(__GLEW_IMG_texture_env_enhanced_fixed_function) + +#endif /* GL_IMG_texture_env_enhanced_fixed_function */ + +/* ---------------------- GL_IMG_texture_filter_cubic ---------------------- */ + +#ifndef GL_IMG_texture_filter_cubic +#define GL_IMG_texture_filter_cubic 1 + +#define GL_CUBIC_IMG 0x9139 +#define GL_CUBIC_MIPMAP_NEAREST_IMG 0x913A +#define GL_CUBIC_MIPMAP_LINEAR_IMG 0x913B + +#define GLEW_IMG_texture_filter_cubic GLEW_GET_VAR(__GLEW_IMG_texture_filter_cubic) + +#endif /* GL_IMG_texture_filter_cubic */ + +/* --------------------- GL_IMG_tile_region_protection --------------------- */ + +#ifndef GL_IMG_tile_region_protection +#define GL_IMG_tile_region_protection 1 + +#define GL_TRP_IMG 0x8EA0 +#define GL_TRP_ERROR_CONTEXT_RESET_IMG 0x8EA1 +#define GL_TRP_UNSUPPORTED_CONTEXT_IMG 0x8EA2 + +#define GLEW_IMG_tile_region_protection GLEW_GET_VAR(__GLEW_IMG_tile_region_protection) + +#endif /* GL_IMG_tile_region_protection */ + +/* -------------------------- GL_INGR_color_clamp -------------------------- */ + +#ifndef GL_INGR_color_clamp +#define GL_INGR_color_clamp 1 + +#define GL_RED_MIN_CLAMP_INGR 0x8560 +#define GL_GREEN_MIN_CLAMP_INGR 0x8561 +#define GL_BLUE_MIN_CLAMP_INGR 0x8562 +#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 +#define GL_RED_MAX_CLAMP_INGR 0x8564 +#define GL_GREEN_MAX_CLAMP_INGR 0x8565 +#define GL_BLUE_MAX_CLAMP_INGR 0x8566 +#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 + +#define GLEW_INGR_color_clamp GLEW_GET_VAR(__GLEW_INGR_color_clamp) + +#endif /* GL_INGR_color_clamp */ + +/* ------------------------- GL_INGR_interlace_read ------------------------ */ + +#ifndef GL_INGR_interlace_read +#define GL_INGR_interlace_read 1 + +#define GL_INTERLACE_READ_INGR 0x8568 + +#define GLEW_INGR_interlace_read GLEW_GET_VAR(__GLEW_INGR_interlace_read) + +#endif /* GL_INGR_interlace_read */ + +/* ----------------------- GL_INTEL_blackhole_render ----------------------- */ + +#ifndef GL_INTEL_blackhole_render +#define GL_INTEL_blackhole_render 1 + +#define GL_BLACKHOLE_RENDER_INTEL 0x83FC + +#define GLEW_INTEL_blackhole_render GLEW_GET_VAR(__GLEW_INTEL_blackhole_render) + +#endif /* GL_INTEL_blackhole_render */ + +/* ------------------ GL_INTEL_conservative_rasterization ------------------ */ + +#ifndef GL_INTEL_conservative_rasterization +#define GL_INTEL_conservative_rasterization 1 + +#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE + +#define GLEW_INTEL_conservative_rasterization GLEW_GET_VAR(__GLEW_INTEL_conservative_rasterization) + +#endif /* GL_INTEL_conservative_rasterization */ + +/* ------------------- GL_INTEL_fragment_shader_ordering ------------------- */ + +#ifndef GL_INTEL_fragment_shader_ordering +#define GL_INTEL_fragment_shader_ordering 1 + +#define GLEW_INTEL_fragment_shader_ordering GLEW_GET_VAR(__GLEW_INTEL_fragment_shader_ordering) + +#endif /* GL_INTEL_fragment_shader_ordering */ + +/* ----------------------- GL_INTEL_framebuffer_CMAA ----------------------- */ + +#ifndef GL_INTEL_framebuffer_CMAA +#define GL_INTEL_framebuffer_CMAA 1 + +typedef void (GLAPIENTRY * PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC) (void); + +#define glApplyFramebufferAttachmentCMAAINTEL GLEW_GET_FUN(__glewApplyFramebufferAttachmentCMAAINTEL) + +#define GLEW_INTEL_framebuffer_CMAA GLEW_GET_VAR(__GLEW_INTEL_framebuffer_CMAA) + +#endif /* GL_INTEL_framebuffer_CMAA */ + +/* -------------------------- GL_INTEL_map_texture ------------------------- */ + +#ifndef GL_INTEL_map_texture +#define GL_INTEL_map_texture 1 + +#define GL_LAYOUT_DEFAULT_INTEL 0 +#define GL_LAYOUT_LINEAR_INTEL 1 +#define GL_LAYOUT_LINEAR_CPU_CACHED_INTEL 2 +#define GL_TEXTURE_MEMORY_LAYOUT_INTEL 0x83FF + +typedef void * (GLAPIENTRY * PFNGLMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level, GLbitfield access, GLint* stride, GLenum *layout); +typedef void (GLAPIENTRY * PFNGLSYNCTEXTUREINTELPROC) (GLuint texture); +typedef void (GLAPIENTRY * PFNGLUNMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level); + +#define glMapTexture2DINTEL GLEW_GET_FUN(__glewMapTexture2DINTEL) +#define glSyncTextureINTEL GLEW_GET_FUN(__glewSyncTextureINTEL) +#define glUnmapTexture2DINTEL GLEW_GET_FUN(__glewUnmapTexture2DINTEL) + +#define GLEW_INTEL_map_texture GLEW_GET_VAR(__GLEW_INTEL_map_texture) + +#endif /* GL_INTEL_map_texture */ + +/* ------------------------ GL_INTEL_parallel_arrays ----------------------- */ + +#ifndef GL_INTEL_parallel_arrays +#define GL_INTEL_parallel_arrays 1 + +#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 +#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 +#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 +#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 +#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 + +typedef void (GLAPIENTRY * PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); +typedef void (GLAPIENTRY * PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const void** pointer); +typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); +typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); + +#define glColorPointervINTEL GLEW_GET_FUN(__glewColorPointervINTEL) +#define glNormalPointervINTEL GLEW_GET_FUN(__glewNormalPointervINTEL) +#define glTexCoordPointervINTEL GLEW_GET_FUN(__glewTexCoordPointervINTEL) +#define glVertexPointervINTEL GLEW_GET_FUN(__glewVertexPointervINTEL) + +#define GLEW_INTEL_parallel_arrays GLEW_GET_VAR(__GLEW_INTEL_parallel_arrays) + +#endif /* GL_INTEL_parallel_arrays */ + +/* ----------------------- GL_INTEL_performance_query ---------------------- */ + +#ifndef GL_INTEL_performance_query +#define GL_INTEL_performance_query 1 + +#define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x0000 +#define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x0001 +#define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9 +#define GL_PERFQUERY_FLUSH_INTEL 0x83FA +#define GL_PERFQUERY_WAIT_INTEL 0x83FB +#define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0 +#define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1 +#define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2 +#define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3 +#define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4 +#define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5 +#define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8 +#define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9 +#define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA +#define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB +#define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC +#define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD +#define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE +#define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF +#define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500 + +typedef void (GLAPIENTRY * PFNGLBEGINPERFQUERYINTELPROC) (GLuint queryHandle); +typedef void (GLAPIENTRY * PFNGLCREATEPERFQUERYINTELPROC) (GLuint queryId, GLuint* queryHandle); +typedef void (GLAPIENTRY * PFNGLDELETEPERFQUERYINTELPROC) (GLuint queryHandle); +typedef void (GLAPIENTRY * PFNGLENDPERFQUERYINTELPROC) (GLuint queryHandle); +typedef void (GLAPIENTRY * PFNGLGETFIRSTPERFQUERYIDINTELPROC) (GLuint* queryId); +typedef void (GLAPIENTRY * PFNGLGETNEXTPERFQUERYIDINTELPROC) (GLuint queryId, GLuint* nextQueryId); +typedef void (GLAPIENTRY * PFNGLGETPERFCOUNTERINFOINTELPROC) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar* counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); +typedef void (GLAPIENTRY * PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten); +typedef void (GLAPIENTRY * PFNGLGETPERFQUERYIDBYNAMEINTELPROC) (GLchar* queryName, GLuint *queryId); +typedef void (GLAPIENTRY * PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLuint queryNameLength, GLchar* queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); + +#define glBeginPerfQueryINTEL GLEW_GET_FUN(__glewBeginPerfQueryINTEL) +#define glCreatePerfQueryINTEL GLEW_GET_FUN(__glewCreatePerfQueryINTEL) +#define glDeletePerfQueryINTEL GLEW_GET_FUN(__glewDeletePerfQueryINTEL) +#define glEndPerfQueryINTEL GLEW_GET_FUN(__glewEndPerfQueryINTEL) +#define glGetFirstPerfQueryIdINTEL GLEW_GET_FUN(__glewGetFirstPerfQueryIdINTEL) +#define glGetNextPerfQueryIdINTEL GLEW_GET_FUN(__glewGetNextPerfQueryIdINTEL) +#define glGetPerfCounterInfoINTEL GLEW_GET_FUN(__glewGetPerfCounterInfoINTEL) +#define glGetPerfQueryDataINTEL GLEW_GET_FUN(__glewGetPerfQueryDataINTEL) +#define glGetPerfQueryIdByNameINTEL GLEW_GET_FUN(__glewGetPerfQueryIdByNameINTEL) +#define glGetPerfQueryInfoINTEL GLEW_GET_FUN(__glewGetPerfQueryInfoINTEL) + +#define GLEW_INTEL_performance_query GLEW_GET_VAR(__GLEW_INTEL_performance_query) + +#endif /* GL_INTEL_performance_query */ + +/* ------------------- GL_INTEL_shader_integer_functions2 ------------------ */ + +#ifndef GL_INTEL_shader_integer_functions2 +#define GL_INTEL_shader_integer_functions2 1 + +#define GLEW_INTEL_shader_integer_functions2 GLEW_GET_VAR(__GLEW_INTEL_shader_integer_functions2) + +#endif /* GL_INTEL_shader_integer_functions2 */ + +/* ------------------------ GL_INTEL_texture_scissor ----------------------- */ + +#ifndef GL_INTEL_texture_scissor +#define GL_INTEL_texture_scissor 1 + +typedef void (GLAPIENTRY * PFNGLTEXSCISSORFUNCINTELPROC) (GLenum target, GLenum lfunc, GLenum hfunc); +typedef void (GLAPIENTRY * PFNGLTEXSCISSORINTELPROC) (GLenum target, GLclampf tlow, GLclampf thigh); + +#define glTexScissorFuncINTEL GLEW_GET_FUN(__glewTexScissorFuncINTEL) +#define glTexScissorINTEL GLEW_GET_FUN(__glewTexScissorINTEL) + +#define GLEW_INTEL_texture_scissor GLEW_GET_VAR(__GLEW_INTEL_texture_scissor) + +#endif /* GL_INTEL_texture_scissor */ + +/* --------------------- GL_KHR_blend_equation_advanced -------------------- */ + +#ifndef GL_KHR_blend_equation_advanced +#define GL_KHR_blend_equation_advanced 1 + +#define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285 +#define GL_MULTIPLY_KHR 0x9294 +#define GL_SCREEN_KHR 0x9295 +#define GL_OVERLAY_KHR 0x9296 +#define GL_DARKEN_KHR 0x9297 +#define GL_LIGHTEN_KHR 0x9298 +#define GL_COLORDODGE_KHR 0x9299 +#define GL_COLORBURN_KHR 0x929A +#define GL_HARDLIGHT_KHR 0x929B +#define GL_SOFTLIGHT_KHR 0x929C +#define GL_DIFFERENCE_KHR 0x929E +#define GL_EXCLUSION_KHR 0x92A0 +#define GL_HSL_HUE_KHR 0x92AD +#define GL_HSL_SATURATION_KHR 0x92AE +#define GL_HSL_COLOR_KHR 0x92AF +#define GL_HSL_LUMINOSITY_KHR 0x92B0 + +typedef void (GLAPIENTRY * PFNGLBLENDBARRIERKHRPROC) (void); + +#define glBlendBarrierKHR GLEW_GET_FUN(__glewBlendBarrierKHR) + +#define GLEW_KHR_blend_equation_advanced GLEW_GET_VAR(__GLEW_KHR_blend_equation_advanced) + +#endif /* GL_KHR_blend_equation_advanced */ + +/* ---------------- GL_KHR_blend_equation_advanced_coherent ---------------- */ + +#ifndef GL_KHR_blend_equation_advanced_coherent +#define GL_KHR_blend_equation_advanced_coherent 1 + +#define GLEW_KHR_blend_equation_advanced_coherent GLEW_GET_VAR(__GLEW_KHR_blend_equation_advanced_coherent) + +#endif /* GL_KHR_blend_equation_advanced_coherent */ + +/* ---------------------- GL_KHR_context_flush_control --------------------- */ + +#ifndef GL_KHR_context_flush_control +#define GL_KHR_context_flush_control 1 + +#define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB +#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC + +#define GLEW_KHR_context_flush_control GLEW_GET_VAR(__GLEW_KHR_context_flush_control) + +#endif /* GL_KHR_context_flush_control */ + +/* ------------------------------ GL_KHR_debug ----------------------------- */ + +#ifndef GL_KHR_debug +#define GL_KHR_debug 1 + +#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 +#define GL_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 +#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 +#define GL_DEBUG_CALLBACK_FUNCTION 0x8244 +#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 +#define GL_DEBUG_SOURCE_API 0x8246 +#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 +#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 +#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 +#define GL_DEBUG_SOURCE_APPLICATION 0x824A +#define GL_DEBUG_SOURCE_OTHER 0x824B +#define GL_DEBUG_TYPE_ERROR 0x824C +#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D +#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E +#define GL_DEBUG_TYPE_PORTABILITY 0x824F +#define GL_DEBUG_TYPE_PERFORMANCE 0x8250 +#define GL_DEBUG_TYPE_OTHER 0x8251 +#define GL_DEBUG_TYPE_MARKER 0x8268 +#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 +#define GL_DEBUG_TYPE_POP_GROUP 0x826A +#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B +#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C +#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D +#define GL_BUFFER 0x82E0 +#define GL_SHADER 0x82E1 +#define GL_PROGRAM 0x82E2 +#define GL_QUERY 0x82E3 +#define GL_PROGRAM_PIPELINE 0x82E4 +#define GL_SAMPLER 0x82E6 +#define GL_DISPLAY_LIST 0x82E7 +#define GL_MAX_LABEL_LENGTH 0x82E8 +#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 +#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 +#define GL_DEBUG_LOGGED_MESSAGES 0x9145 +#define GL_DEBUG_SEVERITY_HIGH 0x9146 +#define GL_DEBUG_SEVERITY_MEDIUM 0x9147 +#define GL_DEBUG_SEVERITY_LOW 0x9148 +#define GL_DEBUG_OUTPUT 0x92E0 + +typedef void (GLAPIENTRY *GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam); + +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam); +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf); +typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog); +typedef void (GLAPIENTRY * PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar *label); +typedef void (GLAPIENTRY * PFNGLGETOBJECTPTRLABELPROC) (void* ptr, GLsizei bufSize, GLsizei* length, GLchar *label); +typedef void (GLAPIENTRY * PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar* label); +typedef void (GLAPIENTRY * PFNGLOBJECTPTRLABELPROC) (void* ptr, GLsizei length, const GLchar* label); +typedef void (GLAPIENTRY * PFNGLPOPDEBUGGROUPPROC) (void); +typedef void (GLAPIENTRY * PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar * message); + +#define glDebugMessageCallback GLEW_GET_FUN(__glewDebugMessageCallback) +#define glDebugMessageControl GLEW_GET_FUN(__glewDebugMessageControl) +#define glDebugMessageInsert GLEW_GET_FUN(__glewDebugMessageInsert) +#define glGetDebugMessageLog GLEW_GET_FUN(__glewGetDebugMessageLog) +#define glGetObjectLabel GLEW_GET_FUN(__glewGetObjectLabel) +#define glGetObjectPtrLabel GLEW_GET_FUN(__glewGetObjectPtrLabel) +#define glObjectLabel GLEW_GET_FUN(__glewObjectLabel) +#define glObjectPtrLabel GLEW_GET_FUN(__glewObjectPtrLabel) +#define glPopDebugGroup GLEW_GET_FUN(__glewPopDebugGroup) +#define glPushDebugGroup GLEW_GET_FUN(__glewPushDebugGroup) + +#define GLEW_KHR_debug GLEW_GET_VAR(__GLEW_KHR_debug) + +#endif /* GL_KHR_debug */ + +/* ---------------------------- GL_KHR_no_error ---------------------------- */ + +#ifndef GL_KHR_no_error +#define GL_KHR_no_error 1 + +#define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR 0x00000008 + +#define GLEW_KHR_no_error GLEW_GET_VAR(__GLEW_KHR_no_error) + +#endif /* GL_KHR_no_error */ + +/* --------------------- GL_KHR_parallel_shader_compile -------------------- */ + +#ifndef GL_KHR_parallel_shader_compile +#define GL_KHR_parallel_shader_compile 1 + +#define GL_MAX_SHADER_COMPILER_THREADS_KHR 0x91B0 +#define GL_COMPLETION_STATUS_KHR 0x91B1 + +typedef void (GLAPIENTRY * PFNGLMAXSHADERCOMPILERTHREADSKHRPROC) (GLuint count); + +#define glMaxShaderCompilerThreadsKHR GLEW_GET_FUN(__glewMaxShaderCompilerThreadsKHR) + +#define GLEW_KHR_parallel_shader_compile GLEW_GET_VAR(__GLEW_KHR_parallel_shader_compile) + +#endif /* GL_KHR_parallel_shader_compile */ + +/* ------------------ GL_KHR_robust_buffer_access_behavior ----------------- */ + +#ifndef GL_KHR_robust_buffer_access_behavior +#define GL_KHR_robust_buffer_access_behavior 1 + +#define GLEW_KHR_robust_buffer_access_behavior GLEW_GET_VAR(__GLEW_KHR_robust_buffer_access_behavior) + +#endif /* GL_KHR_robust_buffer_access_behavior */ + +/* --------------------------- GL_KHR_robustness --------------------------- */ + +#ifndef GL_KHR_robustness +#define GL_KHR_robustness 1 + +#define GL_CONTEXT_LOST 0x0507 +#define GL_LOSE_CONTEXT_ON_RESET 0x8252 +#define GL_GUILTY_CONTEXT_RESET 0x8253 +#define GL_INNOCENT_CONTEXT_RESET 0x8254 +#define GL_UNKNOWN_CONTEXT_RESET 0x8255 +#define GL_RESET_NOTIFICATION_STRATEGY 0x8256 +#define GL_NO_RESET_NOTIFICATION 0x8261 +#define GL_CONTEXT_ROBUST_ACCESS 0x90F3 + +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMFVPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMUIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint* params); +typedef void (GLAPIENTRY * PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); + +#define glGetnUniformfv GLEW_GET_FUN(__glewGetnUniformfv) +#define glGetnUniformiv GLEW_GET_FUN(__glewGetnUniformiv) +#define glGetnUniformuiv GLEW_GET_FUN(__glewGetnUniformuiv) +#define glReadnPixels GLEW_GET_FUN(__glewReadnPixels) + +#define GLEW_KHR_robustness GLEW_GET_VAR(__GLEW_KHR_robustness) + +#endif /* GL_KHR_robustness */ + +/* ------------------------- GL_KHR_shader_subgroup ------------------------ */ + +#ifndef GL_KHR_shader_subgroup +#define GL_KHR_shader_subgroup 1 + +#define GL_SUBGROUP_FEATURE_BASIC_BIT_KHR 0x00000001 +#define GL_SUBGROUP_FEATURE_VOTE_BIT_KHR 0x00000002 +#define GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR 0x00000004 +#define GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR 0x00000008 +#define GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR 0x00000010 +#define GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR 0x00000020 +#define GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR 0x00000040 +#define GL_SUBGROUP_FEATURE_QUAD_BIT_KHR 0x00000080 +#define GL_SUBGROUP_SIZE_KHR 0x9532 +#define GL_SUBGROUP_SUPPORTED_STAGES_KHR 0x9533 +#define GL_SUBGROUP_SUPPORTED_FEATURES_KHR 0x9534 +#define GL_SUBGROUP_QUAD_ALL_STAGES_KHR 0x9535 + +#define GLEW_KHR_shader_subgroup GLEW_GET_VAR(__GLEW_KHR_shader_subgroup) + +#endif /* GL_KHR_shader_subgroup */ + +/* ------------------ GL_KHR_texture_compression_astc_hdr ------------------ */ + +#ifndef GL_KHR_texture_compression_astc_hdr +#define GL_KHR_texture_compression_astc_hdr 1 + +#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 +#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 +#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 +#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 +#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 +#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 +#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 +#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 +#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 +#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 +#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA +#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB +#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC +#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD +#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0 +#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1 +#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2 +#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3 +#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4 +#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5 +#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6 +#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7 +#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8 +#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9 + +#define GLEW_KHR_texture_compression_astc_hdr GLEW_GET_VAR(__GLEW_KHR_texture_compression_astc_hdr) + +#endif /* GL_KHR_texture_compression_astc_hdr */ + +/* ------------------ GL_KHR_texture_compression_astc_ldr ------------------ */ + +#ifndef GL_KHR_texture_compression_astc_ldr +#define GL_KHR_texture_compression_astc_ldr 1 + +#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 +#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 +#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 +#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 +#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 +#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 +#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 +#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 +#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 +#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 +#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA +#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB +#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC +#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD +#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0 +#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1 +#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2 +#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3 +#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4 +#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5 +#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6 +#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7 +#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8 +#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9 + +#define GLEW_KHR_texture_compression_astc_ldr GLEW_GET_VAR(__GLEW_KHR_texture_compression_astc_ldr) + +#endif /* GL_KHR_texture_compression_astc_ldr */ + +/* --------------- GL_KHR_texture_compression_astc_sliced_3d --------------- */ + +#ifndef GL_KHR_texture_compression_astc_sliced_3d +#define GL_KHR_texture_compression_astc_sliced_3d 1 + +#define GLEW_KHR_texture_compression_astc_sliced_3d GLEW_GET_VAR(__GLEW_KHR_texture_compression_astc_sliced_3d) + +#endif /* GL_KHR_texture_compression_astc_sliced_3d */ + +/* -------------------------- GL_KTX_buffer_region ------------------------- */ + +#ifndef GL_KTX_buffer_region +#define GL_KTX_buffer_region 1 + +#define GL_KTX_FRONT_REGION 0x0 +#define GL_KTX_BACK_REGION 0x1 +#define GL_KTX_Z_REGION 0x2 +#define GL_KTX_STENCIL_REGION 0x3 + +typedef GLuint (GLAPIENTRY * PFNGLBUFFERREGIONENABLEDPROC) (void); +typedef void (GLAPIENTRY * PFNGLDELETEBUFFERREGIONPROC) (GLenum region); +typedef void (GLAPIENTRY * PFNGLDRAWBUFFERREGIONPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest); +typedef GLuint (GLAPIENTRY * PFNGLNEWBUFFERREGIONPROC) (GLenum region); +typedef void (GLAPIENTRY * PFNGLREADBUFFERREGIONPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height); + +#define glBufferRegionEnabled GLEW_GET_FUN(__glewBufferRegionEnabled) +#define glDeleteBufferRegion GLEW_GET_FUN(__glewDeleteBufferRegion) +#define glDrawBufferRegion GLEW_GET_FUN(__glewDrawBufferRegion) +#define glNewBufferRegion GLEW_GET_FUN(__glewNewBufferRegion) +#define glReadBufferRegion GLEW_GET_FUN(__glewReadBufferRegion) + +#define GLEW_KTX_buffer_region GLEW_GET_VAR(__GLEW_KTX_buffer_region) + +#endif /* GL_KTX_buffer_region */ + +/* ------------------------- GL_MESAX_texture_stack ------------------------ */ + +#ifndef GL_MESAX_texture_stack +#define GL_MESAX_texture_stack 1 + +#define GL_TEXTURE_1D_STACK_MESAX 0x8759 +#define GL_TEXTURE_2D_STACK_MESAX 0x875A +#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B +#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C +#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D +#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E + +#define GLEW_MESAX_texture_stack GLEW_GET_VAR(__GLEW_MESAX_texture_stack) + +#endif /* GL_MESAX_texture_stack */ + +/* ------------------------------ GL_MESA_bgra ----------------------------- */ + +#ifndef GL_MESA_bgra +#define GL_MESA_bgra 1 + +#define GL_BGR_EXT 0x80E0 +#define GL_BGRA_EXT 0x80E1 + +#define GLEW_MESA_bgra GLEW_GET_VAR(__GLEW_MESA_bgra) + +#endif /* GL_MESA_bgra */ + +/* ----------------------- GL_MESA_framebuffer_flip_x ---------------------- */ + +#ifndef GL_MESA_framebuffer_flip_x +#define GL_MESA_framebuffer_flip_x 1 + +#define GL_FRAMEBUFFER_FLIP_X_MESA 0x8BBC + +#define GLEW_MESA_framebuffer_flip_x GLEW_GET_VAR(__GLEW_MESA_framebuffer_flip_x) + +#endif /* GL_MESA_framebuffer_flip_x */ + +/* ----------------------- GL_MESA_framebuffer_flip_y ---------------------- */ + +#ifndef GL_MESA_framebuffer_flip_y +#define GL_MESA_framebuffer_flip_y 1 + +#define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERPARAMETERIMESAPROC) (GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC) (GLenum target, GLenum pname, GLint* params); + +#define glFramebufferParameteriMESA GLEW_GET_FUN(__glewFramebufferParameteriMESA) +#define glGetFramebufferParameterivMESA GLEW_GET_FUN(__glewGetFramebufferParameterivMESA) + +#define GLEW_MESA_framebuffer_flip_y GLEW_GET_VAR(__GLEW_MESA_framebuffer_flip_y) + +#endif /* GL_MESA_framebuffer_flip_y */ + +/* ---------------------- GL_MESA_framebuffer_swap_xy ---------------------- */ + +#ifndef GL_MESA_framebuffer_swap_xy +#define GL_MESA_framebuffer_swap_xy 1 + +#define GL_FRAMEBUFFER_SWAP_XY_MESA 0x8BBD + +#define GLEW_MESA_framebuffer_swap_xy GLEW_GET_VAR(__GLEW_MESA_framebuffer_swap_xy) + +#endif /* GL_MESA_framebuffer_swap_xy */ + +/* -------------------------- GL_MESA_pack_invert -------------------------- */ + +#ifndef GL_MESA_pack_invert +#define GL_MESA_pack_invert 1 + +#define GL_PACK_INVERT_MESA 0x8758 + +#define GLEW_MESA_pack_invert GLEW_GET_VAR(__GLEW_MESA_pack_invert) + +#endif /* GL_MESA_pack_invert */ + +/* --------------------- GL_MESA_program_binary_formats -------------------- */ + +#ifndef GL_MESA_program_binary_formats +#define GL_MESA_program_binary_formats 1 + +#define GL_PROGRAM_BINARY_FORMAT_MESA 0x875F + +#define GLEW_MESA_program_binary_formats GLEW_GET_VAR(__GLEW_MESA_program_binary_formats) + +#endif /* GL_MESA_program_binary_formats */ + +/* ------------------------- GL_MESA_resize_buffers ------------------------ */ + +#ifndef GL_MESA_resize_buffers +#define GL_MESA_resize_buffers 1 + +typedef void (GLAPIENTRY * PFNGLRESIZEBUFFERSMESAPROC) (void); + +#define glResizeBuffersMESA GLEW_GET_FUN(__glewResizeBuffersMESA) + +#define GLEW_MESA_resize_buffers GLEW_GET_VAR(__GLEW_MESA_resize_buffers) + +#endif /* GL_MESA_resize_buffers */ + +/* -------------------- GL_MESA_shader_integer_functions ------------------- */ + +#ifndef GL_MESA_shader_integer_functions +#define GL_MESA_shader_integer_functions 1 + +#define GLEW_MESA_shader_integer_functions GLEW_GET_VAR(__GLEW_MESA_shader_integer_functions) + +#endif /* GL_MESA_shader_integer_functions */ + +/* -------------------- GL_MESA_texture_const_bandwidth -------------------- */ + +#ifndef GL_MESA_texture_const_bandwidth +#define GL_MESA_texture_const_bandwidth 1 + +#define GL_CONST_BW_TILING_MESA 0x8BBE + +#define GLEW_MESA_texture_const_bandwidth GLEW_GET_VAR(__GLEW_MESA_texture_const_bandwidth) + +#endif /* GL_MESA_texture_const_bandwidth */ + +/* ----------------------- GL_MESA_tile_raster_order ----------------------- */ + +#ifndef GL_MESA_tile_raster_order +#define GL_MESA_tile_raster_order 1 + +#define GLEW_MESA_tile_raster_order GLEW_GET_VAR(__GLEW_MESA_tile_raster_order) + +#endif /* GL_MESA_tile_raster_order */ + +/* --------------------------- GL_MESA_window_pos -------------------------- */ + +#ifndef GL_MESA_window_pos +#define GL_MESA_window_pos 1 + +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVMESAPROC) (const GLint* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVMESAPROC) (const GLshort* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVMESAPROC) (const GLint* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVMESAPROC) (const GLshort* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS4IVMESAPROC) (const GLint* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort* p); + +#define glWindowPos2dMESA GLEW_GET_FUN(__glewWindowPos2dMESA) +#define glWindowPos2dvMESA GLEW_GET_FUN(__glewWindowPos2dvMESA) +#define glWindowPos2fMESA GLEW_GET_FUN(__glewWindowPos2fMESA) +#define glWindowPos2fvMESA GLEW_GET_FUN(__glewWindowPos2fvMESA) +#define glWindowPos2iMESA GLEW_GET_FUN(__glewWindowPos2iMESA) +#define glWindowPos2ivMESA GLEW_GET_FUN(__glewWindowPos2ivMESA) +#define glWindowPos2sMESA GLEW_GET_FUN(__glewWindowPos2sMESA) +#define glWindowPos2svMESA GLEW_GET_FUN(__glewWindowPos2svMESA) +#define glWindowPos3dMESA GLEW_GET_FUN(__glewWindowPos3dMESA) +#define glWindowPos3dvMESA GLEW_GET_FUN(__glewWindowPos3dvMESA) +#define glWindowPos3fMESA GLEW_GET_FUN(__glewWindowPos3fMESA) +#define glWindowPos3fvMESA GLEW_GET_FUN(__glewWindowPos3fvMESA) +#define glWindowPos3iMESA GLEW_GET_FUN(__glewWindowPos3iMESA) +#define glWindowPos3ivMESA GLEW_GET_FUN(__glewWindowPos3ivMESA) +#define glWindowPos3sMESA GLEW_GET_FUN(__glewWindowPos3sMESA) +#define glWindowPos3svMESA GLEW_GET_FUN(__glewWindowPos3svMESA) +#define glWindowPos4dMESA GLEW_GET_FUN(__glewWindowPos4dMESA) +#define glWindowPos4dvMESA GLEW_GET_FUN(__glewWindowPos4dvMESA) +#define glWindowPos4fMESA GLEW_GET_FUN(__glewWindowPos4fMESA) +#define glWindowPos4fvMESA GLEW_GET_FUN(__glewWindowPos4fvMESA) +#define glWindowPos4iMESA GLEW_GET_FUN(__glewWindowPos4iMESA) +#define glWindowPos4ivMESA GLEW_GET_FUN(__glewWindowPos4ivMESA) +#define glWindowPos4sMESA GLEW_GET_FUN(__glewWindowPos4sMESA) +#define glWindowPos4svMESA GLEW_GET_FUN(__glewWindowPos4svMESA) + +#define GLEW_MESA_window_pos GLEW_GET_VAR(__GLEW_MESA_window_pos) + +#endif /* GL_MESA_window_pos */ + +/* ------------------------- GL_MESA_ycbcr_texture ------------------------- */ + +#ifndef GL_MESA_ycbcr_texture +#define GL_MESA_ycbcr_texture 1 + +#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB +#define GL_YCBCR_MESA 0x8757 + +#define GLEW_MESA_ycbcr_texture GLEW_GET_VAR(__GLEW_MESA_ycbcr_texture) + +#endif /* GL_MESA_ycbcr_texture */ + +/* ----------- GL_NVX_blend_equation_advanced_multi_draw_buffers ----------- */ + +#ifndef GL_NVX_blend_equation_advanced_multi_draw_buffers +#define GL_NVX_blend_equation_advanced_multi_draw_buffers 1 + +#define GLEW_NVX_blend_equation_advanced_multi_draw_buffers GLEW_GET_VAR(__GLEW_NVX_blend_equation_advanced_multi_draw_buffers) + +#endif /* GL_NVX_blend_equation_advanced_multi_draw_buffers */ + +/* ----------------------- GL_NVX_conditional_render ----------------------- */ + +#ifndef GL_NVX_conditional_render +#define GL_NVX_conditional_render 1 + +typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERNVXPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERNVXPROC) (void); + +#define glBeginConditionalRenderNVX GLEW_GET_FUN(__glewBeginConditionalRenderNVX) +#define glEndConditionalRenderNVX GLEW_GET_FUN(__glewEndConditionalRenderNVX) + +#define GLEW_NVX_conditional_render GLEW_GET_VAR(__GLEW_NVX_conditional_render) + +#endif /* GL_NVX_conditional_render */ + +/* ------------------------- GL_NVX_gpu_memory_info ------------------------ */ + +#ifndef GL_NVX_gpu_memory_info +#define GL_NVX_gpu_memory_info 1 + +#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047 +#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048 +#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049 +#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A +#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B + +#define GLEW_NVX_gpu_memory_info GLEW_GET_VAR(__GLEW_NVX_gpu_memory_info) + +#endif /* GL_NVX_gpu_memory_info */ + +/* ------------------------- GL_NVX_gpu_multicast2 ------------------------- */ + +#ifndef GL_NVX_gpu_multicast2 +#define GL_NVX_gpu_multicast2 1 + +#define GL_UPLOAD_GPU_MASK_NVX 0x954A + +typedef GLsync (GLAPIENTRY * PFNGLASYNCCOPYBUFFERSUBDATANVXPROC) (GLsizei waitSemaphoreCount, const GLuint* waitSemaphoreArray, const GLuint64 *fenceValueArray, GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); +typedef GLuint (GLAPIENTRY * PFNGLASYNCCOPYIMAGESUBDATANVXPROC) (GLsizei waitSemaphoreCount, const GLuint* waitSemaphoreArray, const GLuint64 *waitValueArray, GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); +typedef void (GLAPIENTRY * PFNGLMULTICASTSCISSORARRAYVNVXPROC) (GLuint gpu, GLuint first, GLsizei count, const GLint* v); +typedef void (GLAPIENTRY * PFNGLMULTICASTVIEWPORTARRAYVNVXPROC) (GLuint gpu, GLuint first, GLsizei count, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC) (GLuint gpu, GLuint index, GLfloat xcoeff, GLfloat ycoeff); +typedef void (GLAPIENTRY * PFNGLUPLOADGPUMASKNVXPROC) (GLbitfield mask); + +#define glAsyncCopyBufferSubDataNVX GLEW_GET_FUN(__glewAsyncCopyBufferSubDataNVX) +#define glAsyncCopyImageSubDataNVX GLEW_GET_FUN(__glewAsyncCopyImageSubDataNVX) +#define glMulticastScissorArrayvNVX GLEW_GET_FUN(__glewMulticastScissorArrayvNVX) +#define glMulticastViewportArrayvNVX GLEW_GET_FUN(__glewMulticastViewportArrayvNVX) +#define glMulticastViewportPositionWScaleNVX GLEW_GET_FUN(__glewMulticastViewportPositionWScaleNVX) +#define glUploadGpuMaskNVX GLEW_GET_FUN(__glewUploadGpuMaskNVX) + +#define GLEW_NVX_gpu_multicast2 GLEW_GET_VAR(__GLEW_NVX_gpu_multicast2) + +#endif /* GL_NVX_gpu_multicast2 */ + +/* ---------------------- GL_NVX_linked_gpu_multicast ---------------------- */ + +#ifndef GL_NVX_linked_gpu_multicast +#define GL_NVX_linked_gpu_multicast 1 + +#define GL_LGPU_SEPARATE_STORAGE_BIT_NVX 0x0800 +#define GL_MAX_LGPU_GPUS_NVX 0x92BA + +typedef void (GLAPIENTRY * PFNGLLGPUCOPYIMAGESUBDATANVXPROC) (GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); +typedef void (GLAPIENTRY * PFNGLLGPUINTERLOCKNVXPROC) (void); +typedef void (GLAPIENTRY * PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); + +#define glLGPUCopyImageSubDataNVX GLEW_GET_FUN(__glewLGPUCopyImageSubDataNVX) +#define glLGPUInterlockNVX GLEW_GET_FUN(__glewLGPUInterlockNVX) +#define glLGPUNamedBufferSubDataNVX GLEW_GET_FUN(__glewLGPUNamedBufferSubDataNVX) + +#define GLEW_NVX_linked_gpu_multicast GLEW_GET_VAR(__GLEW_NVX_linked_gpu_multicast) + +#endif /* GL_NVX_linked_gpu_multicast */ + +/* ------------------------- GL_NVX_progress_fence ------------------------- */ + +#ifndef GL_NVX_progress_fence +#define GL_NVX_progress_fence 1 + +typedef void (GLAPIENTRY * PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC) (GLsizei fenceObjectCount, const GLuint* semaphoreArray, const GLuint64 *fenceValueArray); +typedef GLuint (GLAPIENTRY * PFNGLCREATEPROGRESSFENCENVXPROC) (void); +typedef void (GLAPIENTRY * PFNGLSIGNALSEMAPHOREUI64NVXPROC) (GLuint signalGpu, GLsizei fenceObjectCount, const GLuint* semaphoreArray, const GLuint64 *fenceValueArray); +typedef void (GLAPIENTRY * PFNGLWAITSEMAPHOREUI64NVXPROC) (GLuint waitGpu, GLsizei fenceObjectCount, const GLuint* semaphoreArray, const GLuint64 *fenceValueArray); + +#define glClientWaitSemaphoreui64NVX GLEW_GET_FUN(__glewClientWaitSemaphoreui64NVX) +#define glCreateProgressFenceNVX GLEW_GET_FUN(__glewCreateProgressFenceNVX) +#define glSignalSemaphoreui64NVX GLEW_GET_FUN(__glewSignalSemaphoreui64NVX) +#define glWaitSemaphoreui64NVX GLEW_GET_FUN(__glewWaitSemaphoreui64NVX) + +#define GLEW_NVX_progress_fence GLEW_GET_VAR(__GLEW_NVX_progress_fence) + +#endif /* GL_NVX_progress_fence */ + +/* ------------------------ GL_NV_3dvision_settings ------------------------ */ + +#ifndef GL_NV_3dvision_settings +#define GL_NV_3dvision_settings 1 + +#define GL_3DVISION_STEREO_NV 0x90F4 +#define GL_STEREO_SEPARATION_NV 0x90F5 +#define GL_STEREO_CONVERGENCE_NV 0x90F6 +#define GL_STEREO_CUTOFF_NV 0x90F7 +#define GL_STEREO_PROJECTION_NV 0x90F8 +#define GL_STEREO_PROJECTION_PERSPECTIVE_NV 0x90F9 +#define GL_STEREO_PROJECTION_ORTHO_NV 0x90FA + +typedef void (GLAPIENTRY * PFNGLSTEREOPARAMETERFNVPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLSTEREOPARAMETERINVPROC) (GLenum pname, GLint param); + +#define glStereoParameterfNV GLEW_GET_FUN(__glewStereoParameterfNV) +#define glStereoParameteriNV GLEW_GET_FUN(__glewStereoParameteriNV) + +#define GLEW_NV_3dvision_settings GLEW_GET_VAR(__GLEW_NV_3dvision_settings) + +#endif /* GL_NV_3dvision_settings */ + +/* ------------------- GL_NV_EGL_stream_consumer_external ------------------ */ + +#ifndef GL_NV_EGL_stream_consumer_external +#define GL_NV_EGL_stream_consumer_external 1 + +#define GL_TEXTURE_EXTERNAL_OES 0x8D65 +#define GL_SAMPLER_EXTERNAL_OES 0x8D66 +#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67 +#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68 + +#define GLEW_NV_EGL_stream_consumer_external GLEW_GET_VAR(__GLEW_NV_EGL_stream_consumer_external) + +#endif /* GL_NV_EGL_stream_consumer_external */ + +/* ----------------- GL_NV_alpha_to_coverage_dither_control ---------------- */ + +#ifndef GL_NV_alpha_to_coverage_dither_control +#define GL_NV_alpha_to_coverage_dither_control 1 + +#define GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV 0x92BF +#define GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV 0x934D +#define GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV 0x934E +#define GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV 0x934F + +typedef void (GLAPIENTRY * PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC) (GLenum mode); + +#define glAlphaToCoverageDitherControlNV GLEW_GET_FUN(__glewAlphaToCoverageDitherControlNV) + +#define GLEW_NV_alpha_to_coverage_dither_control GLEW_GET_VAR(__GLEW_NV_alpha_to_coverage_dither_control) + +#endif /* GL_NV_alpha_to_coverage_dither_control */ + +/* ------------------------------- GL_NV_bgr ------------------------------- */ + +#ifndef GL_NV_bgr +#define GL_NV_bgr 1 + +#define GL_BGR_NV 0x80E0 + +#define GLEW_NV_bgr GLEW_GET_VAR(__GLEW_NV_bgr) + +#endif /* GL_NV_bgr */ + +/* ------------------- GL_NV_bindless_multi_draw_indirect ------------------ */ + +#ifndef GL_NV_bindless_multi_draw_indirect +#define GL_NV_bindless_multi_draw_indirect 1 + +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC) (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); + +#define glMultiDrawArraysIndirectBindlessNV GLEW_GET_FUN(__glewMultiDrawArraysIndirectBindlessNV) +#define glMultiDrawElementsIndirectBindlessNV GLEW_GET_FUN(__glewMultiDrawElementsIndirectBindlessNV) + +#define GLEW_NV_bindless_multi_draw_indirect GLEW_GET_VAR(__GLEW_NV_bindless_multi_draw_indirect) + +#endif /* GL_NV_bindless_multi_draw_indirect */ + +/* ---------------- GL_NV_bindless_multi_draw_indirect_count --------------- */ + +#ifndef GL_NV_bindless_multi_draw_indirect_count +#define GL_NV_bindless_multi_draw_indirect_count 1 + +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC) (GLenum mode, const void *indirect, GLintptr drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC) (GLenum mode, GLenum type, const void *indirect, GLintptr drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount); + +#define glMultiDrawArraysIndirectBindlessCountNV GLEW_GET_FUN(__glewMultiDrawArraysIndirectBindlessCountNV) +#define glMultiDrawElementsIndirectBindlessCountNV GLEW_GET_FUN(__glewMultiDrawElementsIndirectBindlessCountNV) + +#define GLEW_NV_bindless_multi_draw_indirect_count GLEW_GET_VAR(__GLEW_NV_bindless_multi_draw_indirect_count) + +#endif /* GL_NV_bindless_multi_draw_indirect_count */ + +/* ------------------------- GL_NV_bindless_texture ------------------------ */ + +#ifndef GL_NV_bindless_texture +#define GL_NV_bindless_texture 1 + +typedef GLuint64 (GLAPIENTRY * PFNGLGETIMAGEHANDLENVPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); +typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTUREHANDLENVPROC) (GLuint texture); +typedef GLuint64 (GLAPIENTRY * PFNGLGETTEXTURESAMPLERHANDLENVPROC) (GLuint texture, GLuint sampler); +typedef GLboolean (GLAPIENTRY * PFNGLISIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle); +typedef GLboolean (GLAPIENTRY * PFNGLISTEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); +typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC) (GLuint64 handle); +typedef void (GLAPIENTRY * PFNGLMAKEIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle, GLenum access); +typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC) (GLuint64 handle); +typedef void (GLAPIENTRY * PFNGLMAKETEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC) (GLuint program, GLint location, GLuint64 value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64* values); +typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64NVPROC) (GLint location, GLuint64 value); +typedef void (GLAPIENTRY * PFNGLUNIFORMHANDLEUI64VNVPROC) (GLint location, GLsizei count, const GLuint64* value); + +#define glGetImageHandleNV GLEW_GET_FUN(__glewGetImageHandleNV) +#define glGetTextureHandleNV GLEW_GET_FUN(__glewGetTextureHandleNV) +#define glGetTextureSamplerHandleNV GLEW_GET_FUN(__glewGetTextureSamplerHandleNV) +#define glIsImageHandleResidentNV GLEW_GET_FUN(__glewIsImageHandleResidentNV) +#define glIsTextureHandleResidentNV GLEW_GET_FUN(__glewIsTextureHandleResidentNV) +#define glMakeImageHandleNonResidentNV GLEW_GET_FUN(__glewMakeImageHandleNonResidentNV) +#define glMakeImageHandleResidentNV GLEW_GET_FUN(__glewMakeImageHandleResidentNV) +#define glMakeTextureHandleNonResidentNV GLEW_GET_FUN(__glewMakeTextureHandleNonResidentNV) +#define glMakeTextureHandleResidentNV GLEW_GET_FUN(__glewMakeTextureHandleResidentNV) +#define glProgramUniformHandleui64NV GLEW_GET_FUN(__glewProgramUniformHandleui64NV) +#define glProgramUniformHandleui64vNV GLEW_GET_FUN(__glewProgramUniformHandleui64vNV) +#define glUniformHandleui64NV GLEW_GET_FUN(__glewUniformHandleui64NV) +#define glUniformHandleui64vNV GLEW_GET_FUN(__glewUniformHandleui64vNV) + +#define GLEW_NV_bindless_texture GLEW_GET_VAR(__GLEW_NV_bindless_texture) + +#endif /* GL_NV_bindless_texture */ + +/* --------------------- GL_NV_blend_equation_advanced --------------------- */ + +#ifndef GL_NV_blend_equation_advanced +#define GL_NV_blend_equation_advanced 1 + +#define GL_XOR_NV 0x1506 +#define GL_RED_NV 0x1903 +#define GL_GREEN_NV 0x1904 +#define GL_BLUE_NV 0x1905 +#define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280 +#define GL_BLEND_OVERLAP_NV 0x9281 +#define GL_UNCORRELATED_NV 0x9282 +#define GL_DISJOINT_NV 0x9283 +#define GL_CONJOINT_NV 0x9284 +#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285 +#define GL_SRC_NV 0x9286 +#define GL_DST_NV 0x9287 +#define GL_SRC_OVER_NV 0x9288 +#define GL_DST_OVER_NV 0x9289 +#define GL_SRC_IN_NV 0x928A +#define GL_DST_IN_NV 0x928B +#define GL_SRC_OUT_NV 0x928C +#define GL_DST_OUT_NV 0x928D +#define GL_SRC_ATOP_NV 0x928E +#define GL_DST_ATOP_NV 0x928F +#define GL_PLUS_NV 0x9291 +#define GL_PLUS_DARKER_NV 0x9292 +#define GL_MULTIPLY_NV 0x9294 +#define GL_SCREEN_NV 0x9295 +#define GL_OVERLAY_NV 0x9296 +#define GL_DARKEN_NV 0x9297 +#define GL_LIGHTEN_NV 0x9298 +#define GL_COLORDODGE_NV 0x9299 +#define GL_COLORBURN_NV 0x929A +#define GL_HARDLIGHT_NV 0x929B +#define GL_SOFTLIGHT_NV 0x929C +#define GL_DIFFERENCE_NV 0x929E +#define GL_MINUS_NV 0x929F +#define GL_EXCLUSION_NV 0x92A0 +#define GL_CONTRAST_NV 0x92A1 +#define GL_INVERT_RGB_NV 0x92A3 +#define GL_LINEARDODGE_NV 0x92A4 +#define GL_LINEARBURN_NV 0x92A5 +#define GL_VIVIDLIGHT_NV 0x92A6 +#define GL_LINEARLIGHT_NV 0x92A7 +#define GL_PINLIGHT_NV 0x92A8 +#define GL_HARDMIX_NV 0x92A9 +#define GL_HSL_HUE_NV 0x92AD +#define GL_HSL_SATURATION_NV 0x92AE +#define GL_HSL_COLOR_NV 0x92AF +#define GL_HSL_LUMINOSITY_NV 0x92B0 +#define GL_PLUS_CLAMPED_NV 0x92B1 +#define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2 +#define GL_MINUS_CLAMPED_NV 0x92B3 +#define GL_INVERT_OVG_NV 0x92B4 + +typedef void (GLAPIENTRY * PFNGLBLENDBARRIERNVPROC) (void); +typedef void (GLAPIENTRY * PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint value); + +#define glBlendBarrierNV GLEW_GET_FUN(__glewBlendBarrierNV) +#define glBlendParameteriNV GLEW_GET_FUN(__glewBlendParameteriNV) + +#define GLEW_NV_blend_equation_advanced GLEW_GET_VAR(__GLEW_NV_blend_equation_advanced) + +#endif /* GL_NV_blend_equation_advanced */ + +/* ----------------- GL_NV_blend_equation_advanced_coherent ---------------- */ + +#ifndef GL_NV_blend_equation_advanced_coherent +#define GL_NV_blend_equation_advanced_coherent 1 + +#define GLEW_NV_blend_equation_advanced_coherent GLEW_GET_VAR(__GLEW_NV_blend_equation_advanced_coherent) + +#endif /* GL_NV_blend_equation_advanced_coherent */ + +/* ----------------------- GL_NV_blend_minmax_factor ----------------------- */ + +#ifndef GL_NV_blend_minmax_factor +#define GL_NV_blend_minmax_factor 1 + +#define GL_FACTOR_MIN_AMD 0x901C +#define GL_FACTOR_MAX_AMD 0x901D + +#define GLEW_NV_blend_minmax_factor GLEW_GET_VAR(__GLEW_NV_blend_minmax_factor) + +#endif /* GL_NV_blend_minmax_factor */ + +/* --------------------------- GL_NV_blend_square -------------------------- */ + +#ifndef GL_NV_blend_square +#define GL_NV_blend_square 1 + +#define GLEW_NV_blend_square GLEW_GET_VAR(__GLEW_NV_blend_square) + +#endif /* GL_NV_blend_square */ + +/* ----------------------- GL_NV_clip_space_w_scaling ---------------------- */ + +#ifndef GL_NV_clip_space_w_scaling +#define GL_NV_clip_space_w_scaling 1 + +#define GL_VIEWPORT_POSITION_W_SCALE_NV 0x937C +#define GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV 0x937D +#define GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV 0x937E + +typedef void (GLAPIENTRY * PFNGLVIEWPORTPOSITIONWSCALENVPROC) (GLuint index, GLfloat xcoeff, GLfloat ycoeff); + +#define glViewportPositionWScaleNV GLEW_GET_FUN(__glewViewportPositionWScaleNV) + +#define GLEW_NV_clip_space_w_scaling GLEW_GET_VAR(__GLEW_NV_clip_space_w_scaling) + +#endif /* GL_NV_clip_space_w_scaling */ + +/* --------------------------- GL_NV_command_list -------------------------- */ + +#ifndef GL_NV_command_list +#define GL_NV_command_list 1 + +#define GL_TERMINATE_SEQUENCE_COMMAND_NV 0x0000 +#define GL_NOP_COMMAND_NV 0x0001 +#define GL_DRAW_ELEMENTS_COMMAND_NV 0x0002 +#define GL_DRAW_ARRAYS_COMMAND_NV 0x0003 +#define GL_DRAW_ELEMENTS_STRIP_COMMAND_NV 0x0004 +#define GL_DRAW_ARRAYS_STRIP_COMMAND_NV 0x0005 +#define GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV 0x0006 +#define GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV 0x0007 +#define GL_ELEMENT_ADDRESS_COMMAND_NV 0x0008 +#define GL_ATTRIBUTE_ADDRESS_COMMAND_NV 0x0009 +#define GL_UNIFORM_ADDRESS_COMMAND_NV 0x000a +#define GL_BLEND_COLOR_COMMAND_NV 0x000b +#define GL_STENCIL_REF_COMMAND_NV 0x000c +#define GL_LINE_WIDTH_COMMAND_NV 0x000d +#define GL_POLYGON_OFFSET_COMMAND_NV 0x000e +#define GL_ALPHA_REF_COMMAND_NV 0x000f +#define GL_VIEWPORT_COMMAND_NV 0x0010 +#define GL_SCISSOR_COMMAND_NV 0x0011 +#define GL_FRONT_FACE_COMMAND_NV 0x0012 + +typedef void (GLAPIENTRY * PFNGLCALLCOMMANDLISTNVPROC) (GLuint list); +typedef void (GLAPIENTRY * PFNGLCOMMANDLISTSEGMENTSNVPROC) (GLuint list, GLuint segments); +typedef void (GLAPIENTRY * PFNGLCOMPILECOMMANDLISTNVPROC) (GLuint list); +typedef void (GLAPIENTRY * PFNGLCREATECOMMANDLISTSNVPROC) (GLsizei n, GLuint* lists); +typedef void (GLAPIENTRY * PFNGLCREATESTATESNVPROC) (GLsizei n, GLuint* states); +typedef void (GLAPIENTRY * PFNGLDELETECOMMANDLISTSNVPROC) (GLsizei n, const GLuint* lists); +typedef void (GLAPIENTRY * PFNGLDELETESTATESNVPROC) (GLsizei n, const GLuint* states); +typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSADDRESSNVPROC) (GLenum primitiveMode, const GLuint64* indirects, const GLsizei* sizes, GLuint count); +typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSNVPROC) (GLenum primitiveMode, GLuint buffer, const GLintptr* indirects, const GLsizei* sizes, GLuint count); +typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC) (const GLuint64* indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count); +typedef void (GLAPIENTRY * PFNGLDRAWCOMMANDSSTATESNVPROC) (GLuint buffer, const GLintptr* indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count); +typedef GLuint (GLAPIENTRY * PFNGLGETCOMMANDHEADERNVPROC) (GLenum tokenID, GLuint size); +typedef GLushort (GLAPIENTRY * PFNGLGETSTAGEINDEXNVPROC) (GLenum shadertype); +typedef GLboolean (GLAPIENTRY * PFNGLISCOMMANDLISTNVPROC) (GLuint list); +typedef GLboolean (GLAPIENTRY * PFNGLISSTATENVPROC) (GLuint state); +typedef void (GLAPIENTRY * PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC) (GLuint list, GLuint segment, const void** indirects, const GLsizei* sizes, const GLuint* states, const GLuint* fbos, GLuint count); +typedef void (GLAPIENTRY * PFNGLSTATECAPTURENVPROC) (GLuint state, GLenum mode); + +#define glCallCommandListNV GLEW_GET_FUN(__glewCallCommandListNV) +#define glCommandListSegmentsNV GLEW_GET_FUN(__glewCommandListSegmentsNV) +#define glCompileCommandListNV GLEW_GET_FUN(__glewCompileCommandListNV) +#define glCreateCommandListsNV GLEW_GET_FUN(__glewCreateCommandListsNV) +#define glCreateStatesNV GLEW_GET_FUN(__glewCreateStatesNV) +#define glDeleteCommandListsNV GLEW_GET_FUN(__glewDeleteCommandListsNV) +#define glDeleteStatesNV GLEW_GET_FUN(__glewDeleteStatesNV) +#define glDrawCommandsAddressNV GLEW_GET_FUN(__glewDrawCommandsAddressNV) +#define glDrawCommandsNV GLEW_GET_FUN(__glewDrawCommandsNV) +#define glDrawCommandsStatesAddressNV GLEW_GET_FUN(__glewDrawCommandsStatesAddressNV) +#define glDrawCommandsStatesNV GLEW_GET_FUN(__glewDrawCommandsStatesNV) +#define glGetCommandHeaderNV GLEW_GET_FUN(__glewGetCommandHeaderNV) +#define glGetStageIndexNV GLEW_GET_FUN(__glewGetStageIndexNV) +#define glIsCommandListNV GLEW_GET_FUN(__glewIsCommandListNV) +#define glIsStateNV GLEW_GET_FUN(__glewIsStateNV) +#define glListDrawCommandsStatesClientNV GLEW_GET_FUN(__glewListDrawCommandsStatesClientNV) +#define glStateCaptureNV GLEW_GET_FUN(__glewStateCaptureNV) + +#define GLEW_NV_command_list GLEW_GET_VAR(__GLEW_NV_command_list) + +#endif /* GL_NV_command_list */ + +/* ------------------------- GL_NV_compute_program5 ------------------------ */ + +#ifndef GL_NV_compute_program5 +#define GL_NV_compute_program5 1 + +#define GL_COMPUTE_PROGRAM_NV 0x90FB +#define GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV 0x90FC + +#define GLEW_NV_compute_program5 GLEW_GET_VAR(__GLEW_NV_compute_program5) + +#endif /* GL_NV_compute_program5 */ + +/* -------------------- GL_NV_compute_shader_derivatives ------------------- */ + +#ifndef GL_NV_compute_shader_derivatives +#define GL_NV_compute_shader_derivatives 1 + +#define GLEW_NV_compute_shader_derivatives GLEW_GET_VAR(__GLEW_NV_compute_shader_derivatives) + +#endif /* GL_NV_compute_shader_derivatives */ + +/* ------------------------ GL_NV_conditional_render ----------------------- */ + +#ifndef GL_NV_conditional_render +#define GL_NV_conditional_render 1 + +#define GL_QUERY_WAIT_NV 0x8E13 +#define GL_QUERY_NO_WAIT_NV 0x8E14 +#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 + +typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); +typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERNVPROC) (void); + +#define glBeginConditionalRenderNV GLEW_GET_FUN(__glewBeginConditionalRenderNV) +#define glEndConditionalRenderNV GLEW_GET_FUN(__glewEndConditionalRenderNV) + +#define GLEW_NV_conditional_render GLEW_GET_VAR(__GLEW_NV_conditional_render) + +#endif /* GL_NV_conditional_render */ + +/* ----------------------- GL_NV_conservative_raster ----------------------- */ + +#ifndef GL_NV_conservative_raster +#define GL_NV_conservative_raster 1 + +#define GL_CONSERVATIVE_RASTERIZATION_NV 0x9346 +#define GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV 0x9347 +#define GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV 0x9348 +#define GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV 0x9349 + +typedef void (GLAPIENTRY * PFNGLSUBPIXELPRECISIONBIASNVPROC) (GLuint xbits, GLuint ybits); + +#define glSubpixelPrecisionBiasNV GLEW_GET_FUN(__glewSubpixelPrecisionBiasNV) + +#define GLEW_NV_conservative_raster GLEW_GET_VAR(__GLEW_NV_conservative_raster) + +#endif /* GL_NV_conservative_raster */ + +/* -------------------- GL_NV_conservative_raster_dilate ------------------- */ + +#ifndef GL_NV_conservative_raster_dilate +#define GL_NV_conservative_raster_dilate 1 + +#define GL_CONSERVATIVE_RASTER_DILATE_NV 0x9379 +#define GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV 0x937A +#define GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV 0x937B + +typedef void (GLAPIENTRY * PFNGLCONSERVATIVERASTERPARAMETERFNVPROC) (GLenum pname, GLfloat value); + +#define glConservativeRasterParameterfNV GLEW_GET_FUN(__glewConservativeRasterParameterfNV) + +#define GLEW_NV_conservative_raster_dilate GLEW_GET_VAR(__GLEW_NV_conservative_raster_dilate) + +#endif /* GL_NV_conservative_raster_dilate */ + +/* ------------------- GL_NV_conservative_raster_pre_snap ------------------ */ + +#ifndef GL_NV_conservative_raster_pre_snap +#define GL_NV_conservative_raster_pre_snap 1 + +#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV 0x9550 + +#define GLEW_NV_conservative_raster_pre_snap GLEW_GET_VAR(__GLEW_NV_conservative_raster_pre_snap) + +#endif /* GL_NV_conservative_raster_pre_snap */ + +/* -------------- GL_NV_conservative_raster_pre_snap_triangles ------------- */ + +#ifndef GL_NV_conservative_raster_pre_snap_triangles +#define GL_NV_conservative_raster_pre_snap_triangles 1 + +#define GL_CONSERVATIVE_RASTER_MODE_NV 0x954D +#define GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV 0x954E +#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV 0x954F + +typedef void (GLAPIENTRY * PFNGLCONSERVATIVERASTERPARAMETERINVPROC) (GLenum pname, GLint param); + +#define glConservativeRasterParameteriNV GLEW_GET_FUN(__glewConservativeRasterParameteriNV) + +#define GLEW_NV_conservative_raster_pre_snap_triangles GLEW_GET_VAR(__GLEW_NV_conservative_raster_pre_snap_triangles) + +#endif /* GL_NV_conservative_raster_pre_snap_triangles */ + +/* --------------- GL_NV_conservative_raster_underestimation --------------- */ + +#ifndef GL_NV_conservative_raster_underestimation +#define GL_NV_conservative_raster_underestimation 1 + +#define GLEW_NV_conservative_raster_underestimation GLEW_GET_VAR(__GLEW_NV_conservative_raster_underestimation) + +#endif /* GL_NV_conservative_raster_underestimation */ + +/* --------------------------- GL_NV_copy_buffer --------------------------- */ + +#ifndef GL_NV_copy_buffer +#define GL_NV_copy_buffer 1 + +#define GL_COPY_READ_BUFFER_NV 0x8F36 +#define GL_COPY_WRITE_BUFFER_NV 0x8F37 + +typedef void (GLAPIENTRY * PFNGLCOPYBUFFERSUBDATANVPROC) (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size); + +#define glCopyBufferSubDataNV GLEW_GET_FUN(__glewCopyBufferSubDataNV) + +#define GLEW_NV_copy_buffer GLEW_GET_VAR(__GLEW_NV_copy_buffer) + +#endif /* GL_NV_copy_buffer */ + +/* ----------------------- GL_NV_copy_depth_to_color ----------------------- */ + +#ifndef GL_NV_copy_depth_to_color +#define GL_NV_copy_depth_to_color 1 + +#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E +#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F + +#define GLEW_NV_copy_depth_to_color GLEW_GET_VAR(__GLEW_NV_copy_depth_to_color) + +#endif /* GL_NV_copy_depth_to_color */ + +/* ---------------------------- GL_NV_copy_image --------------------------- */ + +#ifndef GL_NV_copy_image +#define GL_NV_copy_image 1 + +typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); + +#define glCopyImageSubDataNV GLEW_GET_FUN(__glewCopyImageSubDataNV) + +#define GLEW_NV_copy_image GLEW_GET_VAR(__GLEW_NV_copy_image) + +#endif /* GL_NV_copy_image */ + +/* -------------------------- GL_NV_deep_texture3D ------------------------- */ + +#ifndef GL_NV_deep_texture3D +#define GL_NV_deep_texture3D 1 + +#define GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV 0x90D0 +#define GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV 0x90D1 + +#define GLEW_NV_deep_texture3D GLEW_GET_VAR(__GLEW_NV_deep_texture3D) + +#endif /* GL_NV_deep_texture3D */ + +/* ------------------------ GL_NV_depth_buffer_float ----------------------- */ + +#ifndef GL_NV_depth_buffer_float +#define GL_NV_depth_buffer_float 1 + +#define GL_DEPTH_COMPONENT32F_NV 0x8DAB +#define GL_DEPTH32F_STENCIL8_NV 0x8DAC +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD +#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF + +typedef void (GLAPIENTRY * PFNGLCLEARDEPTHDNVPROC) (GLdouble depth); +typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax); +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar); + +#define glClearDepthdNV GLEW_GET_FUN(__glewClearDepthdNV) +#define glDepthBoundsdNV GLEW_GET_FUN(__glewDepthBoundsdNV) +#define glDepthRangedNV GLEW_GET_FUN(__glewDepthRangedNV) + +#define GLEW_NV_depth_buffer_float GLEW_GET_VAR(__GLEW_NV_depth_buffer_float) + +#endif /* GL_NV_depth_buffer_float */ + +/* --------------------------- GL_NV_depth_clamp --------------------------- */ + +#ifndef GL_NV_depth_clamp +#define GL_NV_depth_clamp 1 + +#define GL_DEPTH_CLAMP_NV 0x864F + +#define GLEW_NV_depth_clamp GLEW_GET_VAR(__GLEW_NV_depth_clamp) + +#endif /* GL_NV_depth_clamp */ + +/* ------------------------- GL_NV_depth_nonlinear ------------------------- */ + +#ifndef GL_NV_depth_nonlinear +#define GL_NV_depth_nonlinear 1 + +#define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C + +#define GLEW_NV_depth_nonlinear GLEW_GET_VAR(__GLEW_NV_depth_nonlinear) + +#endif /* GL_NV_depth_nonlinear */ + +/* ---------------------- GL_NV_depth_range_unclamped ---------------------- */ + +#ifndef GL_NV_depth_range_unclamped +#define GL_NV_depth_range_unclamped 1 + +#define GL_SAMPLE_COUNT_BITS_NV 0x8864 +#define GL_CURRENT_SAMPLE_COUNT_QUERY_NV 0x8865 +#define GL_QUERY_RESULT_NV 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_NV 0x8867 +#define GL_SAMPLE_COUNT_NV 0x8914 + +#define GLEW_NV_depth_range_unclamped GLEW_GET_VAR(__GLEW_NV_depth_range_unclamped) + +#endif /* GL_NV_depth_range_unclamped */ + +/* --------------------------- GL_NV_draw_buffers -------------------------- */ + +#ifndef GL_NV_draw_buffers +#define GL_NV_draw_buffers 1 + +#define GL_MAX_DRAW_BUFFERS_NV 0x8824 +#define GL_DRAW_BUFFER0_NV 0x8825 +#define GL_DRAW_BUFFER1_NV 0x8826 +#define GL_DRAW_BUFFER2_NV 0x8827 +#define GL_DRAW_BUFFER3_NV 0x8828 +#define GL_DRAW_BUFFER4_NV 0x8829 +#define GL_DRAW_BUFFER5_NV 0x882A +#define GL_DRAW_BUFFER6_NV 0x882B +#define GL_DRAW_BUFFER7_NV 0x882C +#define GL_DRAW_BUFFER8_NV 0x882D +#define GL_DRAW_BUFFER9_NV 0x882E +#define GL_DRAW_BUFFER10_NV 0x882F +#define GL_DRAW_BUFFER11_NV 0x8830 +#define GL_DRAW_BUFFER12_NV 0x8831 +#define GL_DRAW_BUFFER13_NV 0x8832 +#define GL_DRAW_BUFFER14_NV 0x8833 +#define GL_DRAW_BUFFER15_NV 0x8834 +#define GL_COLOR_ATTACHMENT0_NV 0x8CE0 +#define GL_COLOR_ATTACHMENT1_NV 0x8CE1 +#define GL_COLOR_ATTACHMENT2_NV 0x8CE2 +#define GL_COLOR_ATTACHMENT3_NV 0x8CE3 +#define GL_COLOR_ATTACHMENT4_NV 0x8CE4 +#define GL_COLOR_ATTACHMENT5_NV 0x8CE5 +#define GL_COLOR_ATTACHMENT6_NV 0x8CE6 +#define GL_COLOR_ATTACHMENT7_NV 0x8CE7 +#define GL_COLOR_ATTACHMENT8_NV 0x8CE8 +#define GL_COLOR_ATTACHMENT9_NV 0x8CE9 +#define GL_COLOR_ATTACHMENT10_NV 0x8CEA +#define GL_COLOR_ATTACHMENT11_NV 0x8CEB +#define GL_COLOR_ATTACHMENT12_NV 0x8CEC +#define GL_COLOR_ATTACHMENT13_NV 0x8CED +#define GL_COLOR_ATTACHMENT14_NV 0x8CEE +#define GL_COLOR_ATTACHMENT15_NV 0x8CEF + +typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum* bufs); + +#define glDrawBuffersNV GLEW_GET_FUN(__glewDrawBuffersNV) + +#define GLEW_NV_draw_buffers GLEW_GET_VAR(__GLEW_NV_draw_buffers) + +#endif /* GL_NV_draw_buffers */ + +/* -------------------------- GL_NV_draw_instanced ------------------------- */ + +#ifndef GL_NV_draw_instanced +#define GL_NV_draw_instanced 1 + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDNVPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDNVPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); + +#define glDrawArraysInstancedNV GLEW_GET_FUN(__glewDrawArraysInstancedNV) +#define glDrawElementsInstancedNV GLEW_GET_FUN(__glewDrawElementsInstancedNV) + +#define GLEW_NV_draw_instanced GLEW_GET_VAR(__GLEW_NV_draw_instanced) + +#endif /* GL_NV_draw_instanced */ + +/* --------------------------- GL_NV_draw_texture -------------------------- */ + +#ifndef GL_NV_draw_texture +#define GL_NV_draw_texture 1 + +typedef void (GLAPIENTRY * PFNGLDRAWTEXTURENVPROC) (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); + +#define glDrawTextureNV GLEW_GET_FUN(__glewDrawTextureNV) + +#define GLEW_NV_draw_texture GLEW_GET_VAR(__GLEW_NV_draw_texture) + +#endif /* GL_NV_draw_texture */ + +/* ------------------------ GL_NV_draw_vulkan_image ------------------------ */ + +#ifndef GL_NV_draw_vulkan_image +#define GL_NV_draw_vulkan_image 1 + +typedef void (APIENTRY *GLVULKANPROCNV)(void); + +typedef void (GLAPIENTRY * PFNGLDRAWVKIMAGENVPROC) (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); +typedef GLVULKANPROCNV (GLAPIENTRY * PFNGLGETVKPROCADDRNVPROC) (const GLchar* name); +typedef void (GLAPIENTRY * PFNGLSIGNALVKFENCENVPROC) (GLuint64 vkFence); +typedef void (GLAPIENTRY * PFNGLSIGNALVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); +typedef void (GLAPIENTRY * PFNGLWAITVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); + +#define glDrawVkImageNV GLEW_GET_FUN(__glewDrawVkImageNV) +#define glGetVkProcAddrNV GLEW_GET_FUN(__glewGetVkProcAddrNV) +#define glSignalVkFenceNV GLEW_GET_FUN(__glewSignalVkFenceNV) +#define glSignalVkSemaphoreNV GLEW_GET_FUN(__glewSignalVkSemaphoreNV) +#define glWaitVkSemaphoreNV GLEW_GET_FUN(__glewWaitVkSemaphoreNV) + +#define GLEW_NV_draw_vulkan_image GLEW_GET_VAR(__GLEW_NV_draw_vulkan_image) + +#endif /* GL_NV_draw_vulkan_image */ + +/* ---------------------------- GL_NV_evaluators --------------------------- */ + +#ifndef GL_NV_evaluators +#define GL_NV_evaluators 1 + +#define GL_EVAL_2D_NV 0x86C0 +#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 +#define GL_MAP_TESSELLATION_NV 0x86C2 +#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 +#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 +#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 +#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 +#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 +#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 +#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 +#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA +#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB +#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC +#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD +#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE +#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF +#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 +#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 +#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 +#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 +#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 +#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 +#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 +#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 + +typedef void (GLAPIENTRY * PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); +typedef void (GLAPIENTRY * PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points); +typedef void (GLAPIENTRY * PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points); +typedef void (GLAPIENTRY * PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint* params); + +#define glEvalMapsNV GLEW_GET_FUN(__glewEvalMapsNV) +#define glGetMapAttribParameterfvNV GLEW_GET_FUN(__glewGetMapAttribParameterfvNV) +#define glGetMapAttribParameterivNV GLEW_GET_FUN(__glewGetMapAttribParameterivNV) +#define glGetMapControlPointsNV GLEW_GET_FUN(__glewGetMapControlPointsNV) +#define glGetMapParameterfvNV GLEW_GET_FUN(__glewGetMapParameterfvNV) +#define glGetMapParameterivNV GLEW_GET_FUN(__glewGetMapParameterivNV) +#define glMapControlPointsNV GLEW_GET_FUN(__glewMapControlPointsNV) +#define glMapParameterfvNV GLEW_GET_FUN(__glewMapParameterfvNV) +#define glMapParameterivNV GLEW_GET_FUN(__glewMapParameterivNV) + +#define GLEW_NV_evaluators GLEW_GET_VAR(__GLEW_NV_evaluators) + +#endif /* GL_NV_evaluators */ + +/* --------------------- GL_NV_explicit_attrib_location -------------------- */ + +#ifndef GL_NV_explicit_attrib_location +#define GL_NV_explicit_attrib_location 1 + +#define GLEW_NV_explicit_attrib_location GLEW_GET_VAR(__GLEW_NV_explicit_attrib_location) + +#endif /* GL_NV_explicit_attrib_location */ + +/* ----------------------- GL_NV_explicit_multisample ---------------------- */ + +#ifndef GL_NV_explicit_multisample +#define GL_NV_explicit_multisample 1 + +#define GL_SAMPLE_POSITION_NV 0x8E50 +#define GL_SAMPLE_MASK_NV 0x8E51 +#define GL_SAMPLE_MASK_VALUE_NV 0x8E52 +#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53 +#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54 +#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55 +#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56 +#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57 +#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58 +#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 + +typedef void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat* val); +typedef void (GLAPIENTRY * PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask); +typedef void (GLAPIENTRY * PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer); + +#define glGetMultisamplefvNV GLEW_GET_FUN(__glewGetMultisamplefvNV) +#define glSampleMaskIndexedNV GLEW_GET_FUN(__glewSampleMaskIndexedNV) +#define glTexRenderbufferNV GLEW_GET_FUN(__glewTexRenderbufferNV) + +#define GLEW_NV_explicit_multisample GLEW_GET_VAR(__GLEW_NV_explicit_multisample) + +#endif /* GL_NV_explicit_multisample */ + +/* ---------------------- GL_NV_fbo_color_attachments ---------------------- */ + +#ifndef GL_NV_fbo_color_attachments +#define GL_NV_fbo_color_attachments 1 + +#define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF +#define GL_COLOR_ATTACHMENT0_NV 0x8CE0 +#define GL_COLOR_ATTACHMENT1_NV 0x8CE1 +#define GL_COLOR_ATTACHMENT2_NV 0x8CE2 +#define GL_COLOR_ATTACHMENT3_NV 0x8CE3 +#define GL_COLOR_ATTACHMENT4_NV 0x8CE4 +#define GL_COLOR_ATTACHMENT5_NV 0x8CE5 +#define GL_COLOR_ATTACHMENT6_NV 0x8CE6 +#define GL_COLOR_ATTACHMENT7_NV 0x8CE7 +#define GL_COLOR_ATTACHMENT8_NV 0x8CE8 +#define GL_COLOR_ATTACHMENT9_NV 0x8CE9 +#define GL_COLOR_ATTACHMENT10_NV 0x8CEA +#define GL_COLOR_ATTACHMENT11_NV 0x8CEB +#define GL_COLOR_ATTACHMENT12_NV 0x8CEC +#define GL_COLOR_ATTACHMENT13_NV 0x8CED +#define GL_COLOR_ATTACHMENT14_NV 0x8CEE +#define GL_COLOR_ATTACHMENT15_NV 0x8CEF + +#define GLEW_NV_fbo_color_attachments GLEW_GET_VAR(__GLEW_NV_fbo_color_attachments) + +#endif /* GL_NV_fbo_color_attachments */ + +/* ------------------------------ GL_NV_fence ------------------------------ */ + +#ifndef GL_NV_fence +#define GL_NV_fence 1 + +#define GL_ALL_COMPLETED_NV 0x84F2 +#define GL_FENCE_STATUS_NV 0x84F3 +#define GL_FENCE_CONDITION_NV 0x84F4 + +typedef void (GLAPIENTRY * PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint* fences); +typedef void (GLAPIENTRY * PFNGLFINISHFENCENVPROC) (GLuint fence); +typedef void (GLAPIENTRY * PFNGLGENFENCESNVPROC) (GLsizei n, GLuint* fences); +typedef void (GLAPIENTRY * PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISFENCENVPROC) (GLuint fence); +typedef void (GLAPIENTRY * PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); +typedef GLboolean (GLAPIENTRY * PFNGLTESTFENCENVPROC) (GLuint fence); + +#define glDeleteFencesNV GLEW_GET_FUN(__glewDeleteFencesNV) +#define glFinishFenceNV GLEW_GET_FUN(__glewFinishFenceNV) +#define glGenFencesNV GLEW_GET_FUN(__glewGenFencesNV) +#define glGetFenceivNV GLEW_GET_FUN(__glewGetFenceivNV) +#define glIsFenceNV GLEW_GET_FUN(__glewIsFenceNV) +#define glSetFenceNV GLEW_GET_FUN(__glewSetFenceNV) +#define glTestFenceNV GLEW_GET_FUN(__glewTestFenceNV) + +#define GLEW_NV_fence GLEW_GET_VAR(__GLEW_NV_fence) + +#endif /* GL_NV_fence */ + +/* -------------------------- GL_NV_fill_rectangle ------------------------- */ + +#ifndef GL_NV_fill_rectangle +#define GL_NV_fill_rectangle 1 + +#define GL_FILL_RECTANGLE_NV 0x933C + +#define GLEW_NV_fill_rectangle GLEW_GET_VAR(__GLEW_NV_fill_rectangle) + +#endif /* GL_NV_fill_rectangle */ + +/* --------------------------- GL_NV_float_buffer -------------------------- */ + +#ifndef GL_NV_float_buffer +#define GL_NV_float_buffer 1 + +#define GL_FLOAT_R_NV 0x8880 +#define GL_FLOAT_RG_NV 0x8881 +#define GL_FLOAT_RGB_NV 0x8882 +#define GL_FLOAT_RGBA_NV 0x8883 +#define GL_FLOAT_R16_NV 0x8884 +#define GL_FLOAT_R32_NV 0x8885 +#define GL_FLOAT_RG16_NV 0x8886 +#define GL_FLOAT_RG32_NV 0x8887 +#define GL_FLOAT_RGB16_NV 0x8888 +#define GL_FLOAT_RGB32_NV 0x8889 +#define GL_FLOAT_RGBA16_NV 0x888A +#define GL_FLOAT_RGBA32_NV 0x888B +#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C +#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D +#define GL_FLOAT_RGBA_MODE_NV 0x888E + +#define GLEW_NV_float_buffer GLEW_GET_VAR(__GLEW_NV_float_buffer) + +#endif /* GL_NV_float_buffer */ + +/* --------------------------- GL_NV_fog_distance -------------------------- */ + +#ifndef GL_NV_fog_distance +#define GL_NV_fog_distance 1 + +#define GL_FOG_DISTANCE_MODE_NV 0x855A +#define GL_EYE_RADIAL_NV 0x855B +#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C + +#define GLEW_NV_fog_distance GLEW_GET_VAR(__GLEW_NV_fog_distance) + +#endif /* GL_NV_fog_distance */ + +/* -------------------- GL_NV_fragment_coverage_to_color ------------------- */ + +#ifndef GL_NV_fragment_coverage_to_color +#define GL_NV_fragment_coverage_to_color 1 + +#define GL_FRAGMENT_COVERAGE_TO_COLOR_NV 0x92DD +#define GL_FRAGMENT_COVERAGE_COLOR_NV 0x92DE + +typedef void (GLAPIENTRY * PFNGLFRAGMENTCOVERAGECOLORNVPROC) (GLuint color); + +#define glFragmentCoverageColorNV GLEW_GET_FUN(__glewFragmentCoverageColorNV) + +#define GLEW_NV_fragment_coverage_to_color GLEW_GET_VAR(__GLEW_NV_fragment_coverage_to_color) + +#endif /* GL_NV_fragment_coverage_to_color */ + +/* ------------------------- GL_NV_fragment_program ------------------------ */ + +#ifndef GL_NV_fragment_program +#define GL_NV_fragment_program 1 + +#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 +#define GL_FRAGMENT_PROGRAM_NV 0x8870 +#define GL_MAX_TEXTURE_COORDS_NV 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 +#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 +#define GL_PROGRAM_ERROR_STRING_NV 0x8874 + +typedef void (GLAPIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLdouble *params); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLfloat *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, const GLdouble v[]); +typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, const GLfloat v[]); + +#define glGetProgramNamedParameterdvNV GLEW_GET_FUN(__glewGetProgramNamedParameterdvNV) +#define glGetProgramNamedParameterfvNV GLEW_GET_FUN(__glewGetProgramNamedParameterfvNV) +#define glProgramNamedParameter4dNV GLEW_GET_FUN(__glewProgramNamedParameter4dNV) +#define glProgramNamedParameter4dvNV GLEW_GET_FUN(__glewProgramNamedParameter4dvNV) +#define glProgramNamedParameter4fNV GLEW_GET_FUN(__glewProgramNamedParameter4fNV) +#define glProgramNamedParameter4fvNV GLEW_GET_FUN(__glewProgramNamedParameter4fvNV) + +#define GLEW_NV_fragment_program GLEW_GET_VAR(__GLEW_NV_fragment_program) + +#endif /* GL_NV_fragment_program */ + +/* ------------------------ GL_NV_fragment_program2 ------------------------ */ + +#ifndef GL_NV_fragment_program2 +#define GL_NV_fragment_program2 1 + +#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 +#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 +#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 +#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 +#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 + +#define GLEW_NV_fragment_program2 GLEW_GET_VAR(__GLEW_NV_fragment_program2) + +#endif /* GL_NV_fragment_program2 */ + +/* ------------------------ GL_NV_fragment_program4 ------------------------ */ + +#ifndef GL_NV_fragment_program4 +#define GL_NV_fragment_program4 1 + +#define GLEW_NV_fragment_program4 GLEW_GET_VAR(__GLEW_NV_fragment_program4) + +#endif /* GL_NV_fragment_program4 */ + +/* --------------------- GL_NV_fragment_program_option --------------------- */ + +#ifndef GL_NV_fragment_program_option +#define GL_NV_fragment_program_option 1 + +#define GLEW_NV_fragment_program_option GLEW_GET_VAR(__GLEW_NV_fragment_program_option) + +#endif /* GL_NV_fragment_program_option */ + +/* ------------------- GL_NV_fragment_shader_barycentric ------------------- */ + +#ifndef GL_NV_fragment_shader_barycentric +#define GL_NV_fragment_shader_barycentric 1 + +#define GLEW_NV_fragment_shader_barycentric GLEW_GET_VAR(__GLEW_NV_fragment_shader_barycentric) + +#endif /* GL_NV_fragment_shader_barycentric */ + +/* -------------------- GL_NV_fragment_shader_interlock -------------------- */ + +#ifndef GL_NV_fragment_shader_interlock +#define GL_NV_fragment_shader_interlock 1 + +#define GLEW_NV_fragment_shader_interlock GLEW_GET_VAR(__GLEW_NV_fragment_shader_interlock) + +#endif /* GL_NV_fragment_shader_interlock */ + +/* ------------------------- GL_NV_framebuffer_blit ------------------------ */ + +#ifndef GL_NV_framebuffer_blit +#define GL_NV_framebuffer_blit 1 + +#define GL_DRAW_FRAMEBUFFER_BINDING_NV 0x8CA6 +#define GL_READ_FRAMEBUFFER_NV 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_NV 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING_NV 0x8CAA + +typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERNVPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); + +#define glBlitFramebufferNV GLEW_GET_FUN(__glewBlitFramebufferNV) + +#define GLEW_NV_framebuffer_blit GLEW_GET_VAR(__GLEW_NV_framebuffer_blit) + +#endif /* GL_NV_framebuffer_blit */ + +/* -------------------- GL_NV_framebuffer_mixed_samples -------------------- */ + +#ifndef GL_NV_framebuffer_mixed_samples +#define GL_NV_framebuffer_mixed_samples 1 + +#define GL_COLOR_SAMPLES_NV 0x8E20 +#define GL_RASTER_MULTISAMPLE_EXT 0x9327 +#define GL_RASTER_SAMPLES_EXT 0x9328 +#define GL_MAX_RASTER_SAMPLES_EXT 0x9329 +#define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A +#define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B +#define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C +#define GL_DEPTH_SAMPLES_NV 0x932D +#define GL_STENCIL_SAMPLES_NV 0x932E +#define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F +#define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330 +#define GL_COVERAGE_MODULATION_TABLE_NV 0x9331 +#define GL_COVERAGE_MODULATION_NV 0x9332 +#define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333 + +#define GLEW_NV_framebuffer_mixed_samples GLEW_GET_VAR(__GLEW_NV_framebuffer_mixed_samples) + +#endif /* GL_NV_framebuffer_mixed_samples */ + +/* --------------------- GL_NV_framebuffer_multisample --------------------- */ + +#ifndef GL_NV_framebuffer_multisample +#define GL_NV_framebuffer_multisample 1 + +#define GL_RENDERBUFFER_SAMPLES_NV 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV 0x8D56 +#define GL_MAX_SAMPLES_NV 0x8D57 + +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); + +#define glRenderbufferStorageMultisampleNV GLEW_GET_FUN(__glewRenderbufferStorageMultisampleNV) + +#define GLEW_NV_framebuffer_multisample GLEW_GET_VAR(__GLEW_NV_framebuffer_multisample) + +#endif /* GL_NV_framebuffer_multisample */ + +/* ----------------- GL_NV_framebuffer_multisample_coverage ---------------- */ + +#ifndef GL_NV_framebuffer_multisample_coverage +#define GL_NV_framebuffer_multisample_coverage 1 + +#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB +#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 +#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 +#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 + +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); + +#define glRenderbufferStorageMultisampleCoverageNV GLEW_GET_FUN(__glewRenderbufferStorageMultisampleCoverageNV) + +#define GLEW_NV_framebuffer_multisample_coverage GLEW_GET_VAR(__GLEW_NV_framebuffer_multisample_coverage) + +#endif /* GL_NV_framebuffer_multisample_coverage */ + +/* ----------------------- GL_NV_generate_mipmap_sRGB ---------------------- */ + +#ifndef GL_NV_generate_mipmap_sRGB +#define GL_NV_generate_mipmap_sRGB 1 + +#define GLEW_NV_generate_mipmap_sRGB GLEW_GET_VAR(__GLEW_NV_generate_mipmap_sRGB) + +#endif /* GL_NV_generate_mipmap_sRGB */ + +/* ------------------------ GL_NV_geometry_program4 ------------------------ */ + +#ifndef GL_NV_geometry_program4 +#define GL_NV_geometry_program4 1 + +#define GL_GEOMETRY_PROGRAM_NV 0x8C26 +#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 +#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 + +typedef void (GLAPIENTRY * PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); + +#define glProgramVertexLimitNV GLEW_GET_FUN(__glewProgramVertexLimitNV) + +#define GLEW_NV_geometry_program4 GLEW_GET_VAR(__GLEW_NV_geometry_program4) + +#endif /* GL_NV_geometry_program4 */ + +/* ------------------------- GL_NV_geometry_shader4 ------------------------ */ + +#ifndef GL_NV_geometry_shader4 +#define GL_NV_geometry_shader4 1 + +#define GLEW_NV_geometry_shader4 GLEW_GET_VAR(__GLEW_NV_geometry_shader4) + +#endif /* GL_NV_geometry_shader4 */ + +/* ------------------- GL_NV_geometry_shader_passthrough ------------------- */ + +#ifndef GL_NV_geometry_shader_passthrough +#define GL_NV_geometry_shader_passthrough 1 + +#define GLEW_NV_geometry_shader_passthrough GLEW_GET_VAR(__GLEW_NV_geometry_shader_passthrough) + +#endif /* GL_NV_geometry_shader_passthrough */ + +/* -------------------------- GL_NV_gpu_multicast -------------------------- */ + +#ifndef GL_NV_gpu_multicast +#define GL_NV_gpu_multicast 1 + +#define GL_PER_GPU_STORAGE_BIT_NV 0x0800 +#define GL_MULTICAST_GPUS_NV 0x92BA +#define GL_PER_GPU_STORAGE_NV 0x9548 +#define GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9549 +#define GL_RENDER_GPU_MASK_NV 0x9558 + +typedef void (GLAPIENTRY * PFNGLMULTICASTBARRIERNVPROC) (void); +typedef void (GLAPIENTRY * PFNGLMULTICASTBLITFRAMEBUFFERNVPROC) (GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef void (GLAPIENTRY * PFNGLMULTICASTBUFFERSUBDATANVPROC) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +typedef void (GLAPIENTRY * PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC) (GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +typedef void (GLAPIENTRY * PFNGLMULTICASTCOPYIMAGESUBDATANVPROC) (GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +typedef void (GLAPIENTRY * PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLint64* params); +typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTIVNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLuint64* params); +typedef void (GLAPIENTRY * PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLMULTICASTWAITSYNCNVPROC) (GLuint signalGpu, GLbitfield waitGpuMask); +typedef void (GLAPIENTRY * PFNGLRENDERGPUMASKNVPROC) (GLbitfield mask); + +#define glMulticastBarrierNV GLEW_GET_FUN(__glewMulticastBarrierNV) +#define glMulticastBlitFramebufferNV GLEW_GET_FUN(__glewMulticastBlitFramebufferNV) +#define glMulticastBufferSubDataNV GLEW_GET_FUN(__glewMulticastBufferSubDataNV) +#define glMulticastCopyBufferSubDataNV GLEW_GET_FUN(__glewMulticastCopyBufferSubDataNV) +#define glMulticastCopyImageSubDataNV GLEW_GET_FUN(__glewMulticastCopyImageSubDataNV) +#define glMulticastFramebufferSampleLocationsfvNV GLEW_GET_FUN(__glewMulticastFramebufferSampleLocationsfvNV) +#define glMulticastGetQueryObjecti64vNV GLEW_GET_FUN(__glewMulticastGetQueryObjecti64vNV) +#define glMulticastGetQueryObjectivNV GLEW_GET_FUN(__glewMulticastGetQueryObjectivNV) +#define glMulticastGetQueryObjectui64vNV GLEW_GET_FUN(__glewMulticastGetQueryObjectui64vNV) +#define glMulticastGetQueryObjectuivNV GLEW_GET_FUN(__glewMulticastGetQueryObjectuivNV) +#define glMulticastWaitSyncNV GLEW_GET_FUN(__glewMulticastWaitSyncNV) +#define glRenderGpuMaskNV GLEW_GET_FUN(__glewRenderGpuMaskNV) + +#define GLEW_NV_gpu_multicast GLEW_GET_VAR(__GLEW_NV_gpu_multicast) + +#endif /* GL_NV_gpu_multicast */ + +/* --------------------------- GL_NV_gpu_program4 -------------------------- */ + +#ifndef GL_NV_gpu_program4 +#define GL_NV_gpu_program4 1 + +#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 +#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 +#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 +#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 +#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 +#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 +#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 + +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); + +#define glProgramEnvParameterI4iNV GLEW_GET_FUN(__glewProgramEnvParameterI4iNV) +#define glProgramEnvParameterI4ivNV GLEW_GET_FUN(__glewProgramEnvParameterI4ivNV) +#define glProgramEnvParameterI4uiNV GLEW_GET_FUN(__glewProgramEnvParameterI4uiNV) +#define glProgramEnvParameterI4uivNV GLEW_GET_FUN(__glewProgramEnvParameterI4uivNV) +#define glProgramEnvParametersI4ivNV GLEW_GET_FUN(__glewProgramEnvParametersI4ivNV) +#define glProgramEnvParametersI4uivNV GLEW_GET_FUN(__glewProgramEnvParametersI4uivNV) +#define glProgramLocalParameterI4iNV GLEW_GET_FUN(__glewProgramLocalParameterI4iNV) +#define glProgramLocalParameterI4ivNV GLEW_GET_FUN(__glewProgramLocalParameterI4ivNV) +#define glProgramLocalParameterI4uiNV GLEW_GET_FUN(__glewProgramLocalParameterI4uiNV) +#define glProgramLocalParameterI4uivNV GLEW_GET_FUN(__glewProgramLocalParameterI4uivNV) +#define glProgramLocalParametersI4ivNV GLEW_GET_FUN(__glewProgramLocalParametersI4ivNV) +#define glProgramLocalParametersI4uivNV GLEW_GET_FUN(__glewProgramLocalParametersI4uivNV) + +#define GLEW_NV_gpu_program4 GLEW_GET_VAR(__GLEW_NV_gpu_program4) + +#endif /* GL_NV_gpu_program4 */ + +/* --------------------------- GL_NV_gpu_program5 -------------------------- */ + +#ifndef GL_NV_gpu_program5 +#define GL_NV_gpu_program5 1 + +#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C +#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F + +#define GLEW_NV_gpu_program5 GLEW_GET_VAR(__GLEW_NV_gpu_program5) + +#endif /* GL_NV_gpu_program5 */ + +/* -------------------- GL_NV_gpu_program5_mem_extended -------------------- */ + +#ifndef GL_NV_gpu_program5_mem_extended +#define GL_NV_gpu_program5_mem_extended 1 + +#define GLEW_NV_gpu_program5_mem_extended GLEW_GET_VAR(__GLEW_NV_gpu_program5_mem_extended) + +#endif /* GL_NV_gpu_program5_mem_extended */ + +/* ------------------------- GL_NV_gpu_program_fp64 ------------------------ */ + +#ifndef GL_NV_gpu_program_fp64 +#define GL_NV_gpu_program_fp64 1 + +#define GLEW_NV_gpu_program_fp64 GLEW_GET_VAR(__GLEW_NV_gpu_program_fp64) + +#endif /* GL_NV_gpu_program_fp64 */ + +/* --------------------------- GL_NV_gpu_shader5 --------------------------- */ + +#ifndef GL_NV_gpu_shader5 +#define GL_NV_gpu_shader5 1 + +#define GL_INT64_NV 0x140E +#define GL_UNSIGNED_INT64_NV 0x140F +#define GL_INT8_NV 0x8FE0 +#define GL_INT8_VEC2_NV 0x8FE1 +#define GL_INT8_VEC3_NV 0x8FE2 +#define GL_INT8_VEC4_NV 0x8FE3 +#define GL_INT16_NV 0x8FE4 +#define GL_INT16_VEC2_NV 0x8FE5 +#define GL_INT16_VEC3_NV 0x8FE6 +#define GL_INT16_VEC4_NV 0x8FE7 +#define GL_INT64_VEC2_NV 0x8FE9 +#define GL_INT64_VEC3_NV 0x8FEA +#define GL_INT64_VEC4_NV 0x8FEB +#define GL_UNSIGNED_INT8_NV 0x8FEC +#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED +#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE +#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF +#define GL_UNSIGNED_INT16_NV 0x8FF0 +#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 +#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 +#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 +#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5 +#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6 +#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7 +#define GL_FLOAT16_NV 0x8FF8 +#define GL_FLOAT16_VEC2_NV 0x8FF9 +#define GL_FLOAT16_VEC3_NV 0x8FFA +#define GL_FLOAT16_VEC4_NV 0x8FFB + +typedef void (GLAPIENTRY * PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT* params); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x); +typedef void (GLAPIENTRY * PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x); +typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y); +typedef void (GLAPIENTRY * PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y); +typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void (GLAPIENTRY * PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void (GLAPIENTRY * PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); + +#define glGetUniformi64vNV GLEW_GET_FUN(__glewGetUniformi64vNV) +#define glGetUniformui64vNV GLEW_GET_FUN(__glewGetUniformui64vNV) +#define glProgramUniform1i64NV GLEW_GET_FUN(__glewProgramUniform1i64NV) +#define glProgramUniform1i64vNV GLEW_GET_FUN(__glewProgramUniform1i64vNV) +#define glProgramUniform1ui64NV GLEW_GET_FUN(__glewProgramUniform1ui64NV) +#define glProgramUniform1ui64vNV GLEW_GET_FUN(__glewProgramUniform1ui64vNV) +#define glProgramUniform2i64NV GLEW_GET_FUN(__glewProgramUniform2i64NV) +#define glProgramUniform2i64vNV GLEW_GET_FUN(__glewProgramUniform2i64vNV) +#define glProgramUniform2ui64NV GLEW_GET_FUN(__glewProgramUniform2ui64NV) +#define glProgramUniform2ui64vNV GLEW_GET_FUN(__glewProgramUniform2ui64vNV) +#define glProgramUniform3i64NV GLEW_GET_FUN(__glewProgramUniform3i64NV) +#define glProgramUniform3i64vNV GLEW_GET_FUN(__glewProgramUniform3i64vNV) +#define glProgramUniform3ui64NV GLEW_GET_FUN(__glewProgramUniform3ui64NV) +#define glProgramUniform3ui64vNV GLEW_GET_FUN(__glewProgramUniform3ui64vNV) +#define glProgramUniform4i64NV GLEW_GET_FUN(__glewProgramUniform4i64NV) +#define glProgramUniform4i64vNV GLEW_GET_FUN(__glewProgramUniform4i64vNV) +#define glProgramUniform4ui64NV GLEW_GET_FUN(__glewProgramUniform4ui64NV) +#define glProgramUniform4ui64vNV GLEW_GET_FUN(__glewProgramUniform4ui64vNV) +#define glUniform1i64NV GLEW_GET_FUN(__glewUniform1i64NV) +#define glUniform1i64vNV GLEW_GET_FUN(__glewUniform1i64vNV) +#define glUniform1ui64NV GLEW_GET_FUN(__glewUniform1ui64NV) +#define glUniform1ui64vNV GLEW_GET_FUN(__glewUniform1ui64vNV) +#define glUniform2i64NV GLEW_GET_FUN(__glewUniform2i64NV) +#define glUniform2i64vNV GLEW_GET_FUN(__glewUniform2i64vNV) +#define glUniform2ui64NV GLEW_GET_FUN(__glewUniform2ui64NV) +#define glUniform2ui64vNV GLEW_GET_FUN(__glewUniform2ui64vNV) +#define glUniform3i64NV GLEW_GET_FUN(__glewUniform3i64NV) +#define glUniform3i64vNV GLEW_GET_FUN(__glewUniform3i64vNV) +#define glUniform3ui64NV GLEW_GET_FUN(__glewUniform3ui64NV) +#define glUniform3ui64vNV GLEW_GET_FUN(__glewUniform3ui64vNV) +#define glUniform4i64NV GLEW_GET_FUN(__glewUniform4i64NV) +#define glUniform4i64vNV GLEW_GET_FUN(__glewUniform4i64vNV) +#define glUniform4ui64NV GLEW_GET_FUN(__glewUniform4ui64NV) +#define glUniform4ui64vNV GLEW_GET_FUN(__glewUniform4ui64vNV) + +#define GLEW_NV_gpu_shader5 GLEW_GET_VAR(__GLEW_NV_gpu_shader5) + +#endif /* GL_NV_gpu_shader5 */ + +/* ---------------------------- GL_NV_half_float --------------------------- */ + +#ifndef GL_NV_half_float +#define GL_NV_half_float 1 + +#define GL_HALF_FLOAT_NV 0x140B + +typedef unsigned short GLhalf; + +typedef void (GLAPIENTRY * PFNGLCOLOR3HNVPROC) (GLhalf red, GLhalf green, GLhalf blue); +typedef void (GLAPIENTRY * PFNGLCOLOR3HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLCOLOR4HNVPROC) (GLhalf red, GLhalf green, GLhalf blue, GLhalf alpha); +typedef void (GLAPIENTRY * PFNGLCOLOR4HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLFOGCOORDHNVPROC) (GLhalf fog); +typedef void (GLAPIENTRY * PFNGLFOGCOORDHVNVPROC) (const GLhalf* fog); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalf s); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalf s, GLhalf t); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalf s, GLhalf t, GLhalf r); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalf s, GLhalf t, GLhalf r, GLhalf q); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLNORMAL3HNVPROC) (GLhalf nx, GLhalf ny, GLhalf nz); +typedef void (GLAPIENTRY * PFNGLNORMAL3HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3HNVPROC) (GLhalf red, GLhalf green, GLhalf blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD1HNVPROC) (GLhalf s); +typedef void (GLAPIENTRY * PFNGLTEXCOORD1HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2HNVPROC) (GLhalf s, GLhalf t); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD3HNVPROC) (GLhalf s, GLhalf t, GLhalf r); +typedef void (GLAPIENTRY * PFNGLTEXCOORD3HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD4HNVPROC) (GLhalf s, GLhalf t, GLhalf r, GLhalf q); +typedef void (GLAPIENTRY * PFNGLTEXCOORD4HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEX2HNVPROC) (GLhalf x, GLhalf y); +typedef void (GLAPIENTRY * PFNGLVERTEX2HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEX3HNVPROC) (GLhalf x, GLhalf y, GLhalf z); +typedef void (GLAPIENTRY * PFNGLVERTEX3HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEX4HNVPROC) (GLhalf x, GLhalf y, GLhalf z, GLhalf w); +typedef void (GLAPIENTRY * PFNGLVERTEX4HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalf x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalf x, GLhalf y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalf x, GLhalf y, GLhalf z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalf x, GLhalf y, GLhalf z, GLhalf w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTHNVPROC) (GLhalf weight); +typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalf* weight); + +#define glColor3hNV GLEW_GET_FUN(__glewColor3hNV) +#define glColor3hvNV GLEW_GET_FUN(__glewColor3hvNV) +#define glColor4hNV GLEW_GET_FUN(__glewColor4hNV) +#define glColor4hvNV GLEW_GET_FUN(__glewColor4hvNV) +#define glFogCoordhNV GLEW_GET_FUN(__glewFogCoordhNV) +#define glFogCoordhvNV GLEW_GET_FUN(__glewFogCoordhvNV) +#define glMultiTexCoord1hNV GLEW_GET_FUN(__glewMultiTexCoord1hNV) +#define glMultiTexCoord1hvNV GLEW_GET_FUN(__glewMultiTexCoord1hvNV) +#define glMultiTexCoord2hNV GLEW_GET_FUN(__glewMultiTexCoord2hNV) +#define glMultiTexCoord2hvNV GLEW_GET_FUN(__glewMultiTexCoord2hvNV) +#define glMultiTexCoord3hNV GLEW_GET_FUN(__glewMultiTexCoord3hNV) +#define glMultiTexCoord3hvNV GLEW_GET_FUN(__glewMultiTexCoord3hvNV) +#define glMultiTexCoord4hNV GLEW_GET_FUN(__glewMultiTexCoord4hNV) +#define glMultiTexCoord4hvNV GLEW_GET_FUN(__glewMultiTexCoord4hvNV) +#define glNormal3hNV GLEW_GET_FUN(__glewNormal3hNV) +#define glNormal3hvNV GLEW_GET_FUN(__glewNormal3hvNV) +#define glSecondaryColor3hNV GLEW_GET_FUN(__glewSecondaryColor3hNV) +#define glSecondaryColor3hvNV GLEW_GET_FUN(__glewSecondaryColor3hvNV) +#define glTexCoord1hNV GLEW_GET_FUN(__glewTexCoord1hNV) +#define glTexCoord1hvNV GLEW_GET_FUN(__glewTexCoord1hvNV) +#define glTexCoord2hNV GLEW_GET_FUN(__glewTexCoord2hNV) +#define glTexCoord2hvNV GLEW_GET_FUN(__glewTexCoord2hvNV) +#define glTexCoord3hNV GLEW_GET_FUN(__glewTexCoord3hNV) +#define glTexCoord3hvNV GLEW_GET_FUN(__glewTexCoord3hvNV) +#define glTexCoord4hNV GLEW_GET_FUN(__glewTexCoord4hNV) +#define glTexCoord4hvNV GLEW_GET_FUN(__glewTexCoord4hvNV) +#define glVertex2hNV GLEW_GET_FUN(__glewVertex2hNV) +#define glVertex2hvNV GLEW_GET_FUN(__glewVertex2hvNV) +#define glVertex3hNV GLEW_GET_FUN(__glewVertex3hNV) +#define glVertex3hvNV GLEW_GET_FUN(__glewVertex3hvNV) +#define glVertex4hNV GLEW_GET_FUN(__glewVertex4hNV) +#define glVertex4hvNV GLEW_GET_FUN(__glewVertex4hvNV) +#define glVertexAttrib1hNV GLEW_GET_FUN(__glewVertexAttrib1hNV) +#define glVertexAttrib1hvNV GLEW_GET_FUN(__glewVertexAttrib1hvNV) +#define glVertexAttrib2hNV GLEW_GET_FUN(__glewVertexAttrib2hNV) +#define glVertexAttrib2hvNV GLEW_GET_FUN(__glewVertexAttrib2hvNV) +#define glVertexAttrib3hNV GLEW_GET_FUN(__glewVertexAttrib3hNV) +#define glVertexAttrib3hvNV GLEW_GET_FUN(__glewVertexAttrib3hvNV) +#define glVertexAttrib4hNV GLEW_GET_FUN(__glewVertexAttrib4hNV) +#define glVertexAttrib4hvNV GLEW_GET_FUN(__glewVertexAttrib4hvNV) +#define glVertexAttribs1hvNV GLEW_GET_FUN(__glewVertexAttribs1hvNV) +#define glVertexAttribs2hvNV GLEW_GET_FUN(__glewVertexAttribs2hvNV) +#define glVertexAttribs3hvNV GLEW_GET_FUN(__glewVertexAttribs3hvNV) +#define glVertexAttribs4hvNV GLEW_GET_FUN(__glewVertexAttribs4hvNV) +#define glVertexWeighthNV GLEW_GET_FUN(__glewVertexWeighthNV) +#define glVertexWeighthvNV GLEW_GET_FUN(__glewVertexWeighthvNV) + +#define GLEW_NV_half_float GLEW_GET_VAR(__GLEW_NV_half_float) + +#endif /* GL_NV_half_float */ + +/* -------------------------- GL_NV_image_formats -------------------------- */ + +#ifndef GL_NV_image_formats +#define GL_NV_image_formats 1 + +#define GLEW_NV_image_formats GLEW_GET_VAR(__GLEW_NV_image_formats) + +#endif /* GL_NV_image_formats */ + +/* ------------------------- GL_NV_instanced_arrays ------------------------ */ + +#ifndef GL_NV_instanced_arrays +#define GL_NV_instanced_arrays 1 + +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV 0x88FE + +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORNVPROC) (GLuint index, GLuint divisor); + +#define glVertexAttribDivisorNV GLEW_GET_FUN(__glewVertexAttribDivisorNV) + +#define GLEW_NV_instanced_arrays GLEW_GET_VAR(__GLEW_NV_instanced_arrays) + +#endif /* GL_NV_instanced_arrays */ + +/* ------------------- GL_NV_internalformat_sample_query ------------------- */ + +#ifndef GL_NV_internalformat_sample_query +#define GL_NV_internalformat_sample_query 1 + +#define GL_MULTISAMPLES_NV 0x9371 +#define GL_SUPERSAMPLE_SCALE_X_NV 0x9372 +#define GL_SUPERSAMPLE_SCALE_Y_NV 0x9373 +#define GL_CONFORMANT_NV 0x9374 + +typedef void (GLAPIENTRY * PFNGLGETINTERNALFORMATSAMPLEIVNVPROC) (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei bufSize, GLint* params); + +#define glGetInternalformatSampleivNV GLEW_GET_FUN(__glewGetInternalformatSampleivNV) + +#define GLEW_NV_internalformat_sample_query GLEW_GET_VAR(__GLEW_NV_internalformat_sample_query) + +#endif /* GL_NV_internalformat_sample_query */ + +/* ------------------------ GL_NV_light_max_exponent ----------------------- */ + +#ifndef GL_NV_light_max_exponent +#define GL_NV_light_max_exponent 1 + +#define GL_MAX_SHININESS_NV 0x8504 +#define GL_MAX_SPOT_EXPONENT_NV 0x8505 + +#define GLEW_NV_light_max_exponent GLEW_GET_VAR(__GLEW_NV_light_max_exponent) + +#endif /* GL_NV_light_max_exponent */ + +/* ------------------------ GL_NV_memory_attachment ------------------------ */ + +#ifndef GL_NV_memory_attachment +#define GL_NV_memory_attachment 1 + +#define GL_ATTACHED_MEMORY_OBJECT_NV 0x95A4 +#define GL_ATTACHED_MEMORY_OFFSET_NV 0x95A5 +#define GL_MEMORY_ATTACHABLE_ALIGNMENT_NV 0x95A6 +#define GL_MEMORY_ATTACHABLE_SIZE_NV 0x95A7 +#define GL_MEMORY_ATTACHABLE_NV 0x95A8 +#define GL_DETACHED_MEMORY_INCARNATION_NV 0x95A9 +#define GL_DETACHED_TEXTURES_NV 0x95AA +#define GL_DETACHED_BUFFERS_NV 0x95AB +#define GL_MAX_DETACHED_TEXTURES_NV 0x95AC +#define GL_MAX_DETACHED_BUFFERS_NV 0x95AD + +typedef void (GLAPIENTRY * PFNGLBUFFERATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC) (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint* params); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERATTACHMEMORYNVPROC) (GLuint buffer, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLRESETMEMORYOBJECTPARAMETERNVPROC) (GLuint memory, GLenum pname); +typedef void (GLAPIENTRY * PFNGLTEXATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); +typedef void (GLAPIENTRY * PFNGLTEXTUREATTACHMEMORYNVPROC) (GLuint texture, GLuint memory, GLuint64 offset); + +#define glBufferAttachMemoryNV GLEW_GET_FUN(__glewBufferAttachMemoryNV) +#define glGetMemoryObjectDetachedResourcesuivNV GLEW_GET_FUN(__glewGetMemoryObjectDetachedResourcesuivNV) +#define glNamedBufferAttachMemoryNV GLEW_GET_FUN(__glewNamedBufferAttachMemoryNV) +#define glResetMemoryObjectParameterNV GLEW_GET_FUN(__glewResetMemoryObjectParameterNV) +#define glTexAttachMemoryNV GLEW_GET_FUN(__glewTexAttachMemoryNV) +#define glTextureAttachMemoryNV GLEW_GET_FUN(__glewTextureAttachMemoryNV) + +#define GLEW_NV_memory_attachment GLEW_GET_VAR(__GLEW_NV_memory_attachment) + +#endif /* GL_NV_memory_attachment */ + +/* ----------------------- GL_NV_memory_object_sparse ---------------------- */ + +#ifndef GL_NV_memory_object_sparse +#define GL_NV_memory_object_sparse 1 + +typedef void (GLAPIENTRY * PFNGLBUFFERPAGECOMMITMENTMEMNVPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERPAGECOMMITMENTMEMNVPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); +typedef void (GLAPIENTRY * PFNGLTEXPAGECOMMITMENTMEMNVPROC) (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); +typedef void (GLAPIENTRY * PFNGLTEXTUREPAGECOMMITMENTMEMNVPROC) (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); + +#define glBufferPageCommitmentMemNV GLEW_GET_FUN(__glewBufferPageCommitmentMemNV) +#define glNamedBufferPageCommitmentMemNV GLEW_GET_FUN(__glewNamedBufferPageCommitmentMemNV) +#define glTexPageCommitmentMemNV GLEW_GET_FUN(__glewTexPageCommitmentMemNV) +#define glTexturePageCommitmentMemNV GLEW_GET_FUN(__glewTexturePageCommitmentMemNV) + +#define GLEW_NV_memory_object_sparse GLEW_GET_VAR(__GLEW_NV_memory_object_sparse) + +#endif /* GL_NV_memory_object_sparse */ + +/* --------------------------- GL_NV_mesh_shader --------------------------- */ + +#ifndef GL_NV_mesh_shader +#define GL_NV_mesh_shader 1 + +#define GL_MESH_SHADER_BIT_NV 0x00000040 +#define GL_TASK_SHADER_BIT_NV 0x00000080 +#define GL_MAX_MESH_UNIFORM_BLOCKS_NV 0x8E60 +#define GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV 0x8E61 +#define GL_MAX_MESH_IMAGE_UNIFORMS_NV 0x8E62 +#define GL_MAX_MESH_UNIFORM_COMPONENTS_NV 0x8E63 +#define GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV 0x8E64 +#define GL_MAX_MESH_ATOMIC_COUNTERS_NV 0x8E65 +#define GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV 0x8E66 +#define GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV 0x8E67 +#define GL_MAX_TASK_UNIFORM_BLOCKS_NV 0x8E68 +#define GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV 0x8E69 +#define GL_MAX_TASK_IMAGE_UNIFORMS_NV 0x8E6A +#define GL_MAX_TASK_UNIFORM_COMPONENTS_NV 0x8E6B +#define GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV 0x8E6C +#define GL_MAX_TASK_ATOMIC_COUNTERS_NV 0x8E6D +#define GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV 0x8E6E +#define GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV 0x8E6F +#define GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV 0x92DF +#define GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV 0x9536 +#define GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV 0x9537 +#define GL_MAX_MESH_OUTPUT_VERTICES_NV 0x9538 +#define GL_MAX_MESH_OUTPUT_PRIMITIVES_NV 0x9539 +#define GL_MAX_TASK_OUTPUT_COUNT_NV 0x953A +#define GL_MAX_MESH_WORK_GROUP_SIZE_NV 0x953B +#define GL_MAX_TASK_WORK_GROUP_SIZE_NV 0x953C +#define GL_MAX_DRAW_MESH_TASKS_COUNT_NV 0x953D +#define GL_MESH_WORK_GROUP_SIZE_NV 0x953E +#define GL_TASK_WORK_GROUP_SIZE_NV 0x953F +#define GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV 0x9543 +#define GL_MAX_MESH_VIEWS_NV 0x9557 +#define GL_MESH_SHADER_NV 0x9559 +#define GL_TASK_SHADER_NV 0x955A +#define GL_MESH_VERTICES_OUT_NV 0x9579 +#define GL_MESH_PRIMITIVES_OUT_NV 0x957A +#define GL_MESH_OUTPUT_TYPE_NV 0x957B +#define GL_MESH_SUBROUTINE_NV 0x957C +#define GL_TASK_SUBROUTINE_NV 0x957D +#define GL_MESH_SUBROUTINE_UNIFORM_NV 0x957E +#define GL_TASK_SUBROUTINE_UNIFORM_NV 0x957F +#define GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV 0x959C +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV 0x959D +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV 0x959E +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV 0x959F +#define GL_REFERENCED_BY_MESH_SHADER_NV 0x95A0 +#define GL_REFERENCED_BY_TASK_SHADER_NV 0x95A1 +#define GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV 0x95A2 +#define GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV 0x95A3 + +typedef void (GLAPIENTRY * PFNGLDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect); +typedef void (GLAPIENTRY * PFNGLDRAWMESHTASKSNVPROC) (GLuint first, GLuint count); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC) (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect, GLsizei drawcount, GLsizei stride); + +#define glDrawMeshTasksIndirectNV GLEW_GET_FUN(__glewDrawMeshTasksIndirectNV) +#define glDrawMeshTasksNV GLEW_GET_FUN(__glewDrawMeshTasksNV) +#define glMultiDrawMeshTasksIndirectCountNV GLEW_GET_FUN(__glewMultiDrawMeshTasksIndirectCountNV) +#define glMultiDrawMeshTasksIndirectNV GLEW_GET_FUN(__glewMultiDrawMeshTasksIndirectNV) + +#define GLEW_NV_mesh_shader GLEW_GET_VAR(__GLEW_NV_mesh_shader) + +#endif /* GL_NV_mesh_shader */ + +/* ----------------------- GL_NV_multisample_coverage ---------------------- */ + +#ifndef GL_NV_multisample_coverage +#define GL_NV_multisample_coverage 1 + +#define GL_COLOR_SAMPLES_NV 0x8E20 + +#define GLEW_NV_multisample_coverage GLEW_GET_VAR(__GLEW_NV_multisample_coverage) + +#endif /* GL_NV_multisample_coverage */ + +/* --------------------- GL_NV_multisample_filter_hint --------------------- */ + +#ifndef GL_NV_multisample_filter_hint +#define GL_NV_multisample_filter_hint 1 + +#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 + +#define GLEW_NV_multisample_filter_hint GLEW_GET_VAR(__GLEW_NV_multisample_filter_hint) + +#endif /* GL_NV_multisample_filter_hint */ + +/* ----------------------- GL_NV_non_square_matrices ----------------------- */ + +#ifndef GL_NV_non_square_matrices +#define GL_NV_non_square_matrices 1 + +#define GL_FLOAT_MAT2x3_NV 0x8B65 +#define GL_FLOAT_MAT2x4_NV 0x8B66 +#define GL_FLOAT_MAT3x2_NV 0x8B67 +#define GL_FLOAT_MAT3x4_NV 0x8B68 +#define GL_FLOAT_MAT4x2_NV 0x8B69 +#define GL_FLOAT_MAT4x3_NV 0x8B6A + +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); + +#define glUniformMatrix2x3fvNV GLEW_GET_FUN(__glewUniformMatrix2x3fvNV) +#define glUniformMatrix2x4fvNV GLEW_GET_FUN(__glewUniformMatrix2x4fvNV) +#define glUniformMatrix3x2fvNV GLEW_GET_FUN(__glewUniformMatrix3x2fvNV) +#define glUniformMatrix3x4fvNV GLEW_GET_FUN(__glewUniformMatrix3x4fvNV) +#define glUniformMatrix4x2fvNV GLEW_GET_FUN(__glewUniformMatrix4x2fvNV) +#define glUniformMatrix4x3fvNV GLEW_GET_FUN(__glewUniformMatrix4x3fvNV) + +#define GLEW_NV_non_square_matrices GLEW_GET_VAR(__GLEW_NV_non_square_matrices) + +#endif /* GL_NV_non_square_matrices */ + +/* ------------------------- GL_NV_occlusion_query ------------------------- */ + +#ifndef GL_NV_occlusion_query +#define GL_NV_occlusion_query 1 + +#define GL_PIXEL_COUNTER_BITS_NV 0x8864 +#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 +#define GL_PIXEL_COUNT_NV 0x8866 +#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 + +typedef void (GLAPIENTRY * PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint* ids); +typedef void (GLAPIENTRY * PFNGLENDOCCLUSIONQUERYNVPROC) (void); +typedef void (GLAPIENTRY * PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint* ids); +typedef void (GLAPIENTRY * PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); + +#define glBeginOcclusionQueryNV GLEW_GET_FUN(__glewBeginOcclusionQueryNV) +#define glDeleteOcclusionQueriesNV GLEW_GET_FUN(__glewDeleteOcclusionQueriesNV) +#define glEndOcclusionQueryNV GLEW_GET_FUN(__glewEndOcclusionQueryNV) +#define glGenOcclusionQueriesNV GLEW_GET_FUN(__glewGenOcclusionQueriesNV) +#define glGetOcclusionQueryivNV GLEW_GET_FUN(__glewGetOcclusionQueryivNV) +#define glGetOcclusionQueryuivNV GLEW_GET_FUN(__glewGetOcclusionQueryuivNV) +#define glIsOcclusionQueryNV GLEW_GET_FUN(__glewIsOcclusionQueryNV) + +#define GLEW_NV_occlusion_query GLEW_GET_VAR(__GLEW_NV_occlusion_query) + +#endif /* GL_NV_occlusion_query */ + +/* -------------------------- GL_NV_pack_subimage -------------------------- */ + +#ifndef GL_NV_pack_subimage +#define GL_NV_pack_subimage 1 + +#define GL_PACK_ROW_LENGTH_NV 0x0D02 +#define GL_PACK_SKIP_ROWS_NV 0x0D03 +#define GL_PACK_SKIP_PIXELS_NV 0x0D04 + +#define GLEW_NV_pack_subimage GLEW_GET_VAR(__GLEW_NV_pack_subimage) + +#endif /* GL_NV_pack_subimage */ + +/* ----------------------- GL_NV_packed_depth_stencil ---------------------- */ + +#ifndef GL_NV_packed_depth_stencil +#define GL_NV_packed_depth_stencil 1 + +#define GL_DEPTH_STENCIL_NV 0x84F9 +#define GL_UNSIGNED_INT_24_8_NV 0x84FA + +#define GLEW_NV_packed_depth_stencil GLEW_GET_VAR(__GLEW_NV_packed_depth_stencil) + +#endif /* GL_NV_packed_depth_stencil */ + +/* --------------------------- GL_NV_packed_float -------------------------- */ + +#ifndef GL_NV_packed_float +#define GL_NV_packed_float 1 + +#define GL_R11F_G11F_B10F_NV 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_NV 0x8C3B + +#define GLEW_NV_packed_float GLEW_GET_VAR(__GLEW_NV_packed_float) + +#endif /* GL_NV_packed_float */ + +/* ----------------------- GL_NV_packed_float_linear ----------------------- */ + +#ifndef GL_NV_packed_float_linear +#define GL_NV_packed_float_linear 1 + +#define GL_R11F_G11F_B10F_NV 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_NV 0x8C3B + +#define GLEW_NV_packed_float_linear GLEW_GET_VAR(__GLEW_NV_packed_float_linear) + +#endif /* GL_NV_packed_float_linear */ + +/* --------------------- GL_NV_parameter_buffer_object --------------------- */ + +#ifndef GL_NV_parameter_buffer_object +#define GL_NV_parameter_buffer_object 1 + +#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 +#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 +#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 +#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 +#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 + +typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params); + +#define glProgramBufferParametersIivNV GLEW_GET_FUN(__glewProgramBufferParametersIivNV) +#define glProgramBufferParametersIuivNV GLEW_GET_FUN(__glewProgramBufferParametersIuivNV) +#define glProgramBufferParametersfvNV GLEW_GET_FUN(__glewProgramBufferParametersfvNV) + +#define GLEW_NV_parameter_buffer_object GLEW_GET_VAR(__GLEW_NV_parameter_buffer_object) + +#endif /* GL_NV_parameter_buffer_object */ + +/* --------------------- GL_NV_parameter_buffer_object2 -------------------- */ + +#ifndef GL_NV_parameter_buffer_object2 +#define GL_NV_parameter_buffer_object2 1 + +#define GLEW_NV_parameter_buffer_object2 GLEW_GET_VAR(__GLEW_NV_parameter_buffer_object2) + +#endif /* GL_NV_parameter_buffer_object2 */ + +/* -------------------------- GL_NV_path_rendering ------------------------- */ + +#ifndef GL_NV_path_rendering +#define GL_NV_path_rendering 1 + +#define GL_CLOSE_PATH_NV 0x00 +#define GL_BOLD_BIT_NV 0x01 +#define GL_GLYPH_WIDTH_BIT_NV 0x01 +#define GL_GLYPH_HEIGHT_BIT_NV 0x02 +#define GL_ITALIC_BIT_NV 0x02 +#define GL_MOVE_TO_NV 0x02 +#define GL_RELATIVE_MOVE_TO_NV 0x03 +#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04 +#define GL_LINE_TO_NV 0x04 +#define GL_RELATIVE_LINE_TO_NV 0x05 +#define GL_HORIZONTAL_LINE_TO_NV 0x06 +#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07 +#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08 +#define GL_VERTICAL_LINE_TO_NV 0x08 +#define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09 +#define GL_QUADRATIC_CURVE_TO_NV 0x0A +#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B +#define GL_CUBIC_CURVE_TO_NV 0x0C +#define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D +#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E +#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F +#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10 +#define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10 +#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11 +#define GL_SMALL_CCW_ARC_TO_NV 0x12 +#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13 +#define GL_SMALL_CW_ARC_TO_NV 0x14 +#define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15 +#define GL_LARGE_CCW_ARC_TO_NV 0x16 +#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17 +#define GL_LARGE_CW_ARC_TO_NV 0x18 +#define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19 +#define GL_CONIC_CURVE_TO_NV 0x1A +#define GL_RELATIVE_CONIC_CURVE_TO_NV 0x1B +#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20 +#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40 +#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80 +#define GL_ROUNDED_RECT_NV 0xE8 +#define GL_RELATIVE_ROUNDED_RECT_NV 0xE9 +#define GL_ROUNDED_RECT2_NV 0xEA +#define GL_RELATIVE_ROUNDED_RECT2_NV 0xEB +#define GL_ROUNDED_RECT4_NV 0xEC +#define GL_RELATIVE_ROUNDED_RECT4_NV 0xED +#define GL_ROUNDED_RECT8_NV 0xEE +#define GL_RELATIVE_ROUNDED_RECT8_NV 0xEF +#define GL_RESTART_PATH_NV 0xF0 +#define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2 +#define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4 +#define GL_RECT_NV 0xF6 +#define GL_RELATIVE_RECT_NV 0xF7 +#define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8 +#define GL_CIRCULAR_CW_ARC_TO_NV 0xFA +#define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC +#define GL_ARC_TO_NV 0xFE +#define GL_RELATIVE_ARC_TO_NV 0xFF +#define GL_GLYPH_HAS_KERNING_BIT_NV 0x100 +#define GL_PRIMARY_COLOR_NV 0x852C +#define GL_SECONDARY_COLOR_NV 0x852D +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PATH_FORMAT_SVG_NV 0x9070 +#define GL_PATH_FORMAT_PS_NV 0x9071 +#define GL_STANDARD_FONT_NAME_NV 0x9072 +#define GL_SYSTEM_FONT_NAME_NV 0x9073 +#define GL_FILE_NAME_NV 0x9074 +#define GL_PATH_STROKE_WIDTH_NV 0x9075 +#define GL_PATH_END_CAPS_NV 0x9076 +#define GL_PATH_INITIAL_END_CAP_NV 0x9077 +#define GL_PATH_TERMINAL_END_CAP_NV 0x9078 +#define GL_PATH_JOIN_STYLE_NV 0x9079 +#define GL_PATH_MITER_LIMIT_NV 0x907A +#define GL_PATH_DASH_CAPS_NV 0x907B +#define GL_PATH_INITIAL_DASH_CAP_NV 0x907C +#define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D +#define GL_PATH_DASH_OFFSET_NV 0x907E +#define GL_PATH_CLIENT_LENGTH_NV 0x907F +#define GL_PATH_FILL_MODE_NV 0x9080 +#define GL_PATH_FILL_MASK_NV 0x9081 +#define GL_PATH_FILL_COVER_MODE_NV 0x9082 +#define GL_PATH_STROKE_COVER_MODE_NV 0x9083 +#define GL_PATH_STROKE_MASK_NV 0x9084 +#define GL_PATH_STROKE_BOUND_NV 0x9086 +#define GL_COUNT_UP_NV 0x9088 +#define GL_COUNT_DOWN_NV 0x9089 +#define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A +#define GL_CONVEX_HULL_NV 0x908B +#define GL_BOUNDING_BOX_NV 0x908D +#define GL_TRANSLATE_X_NV 0x908E +#define GL_TRANSLATE_Y_NV 0x908F +#define GL_TRANSLATE_2D_NV 0x9090 +#define GL_TRANSLATE_3D_NV 0x9091 +#define GL_AFFINE_2D_NV 0x9092 +#define GL_AFFINE_3D_NV 0x9094 +#define GL_TRANSPOSE_AFFINE_2D_NV 0x9096 +#define GL_TRANSPOSE_AFFINE_3D_NV 0x9098 +#define GL_UTF8_NV 0x909A +#define GL_UTF16_NV 0x909B +#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C +#define GL_PATH_COMMAND_COUNT_NV 0x909D +#define GL_PATH_COORD_COUNT_NV 0x909E +#define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F +#define GL_PATH_COMPUTED_LENGTH_NV 0x90A0 +#define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1 +#define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2 +#define GL_SQUARE_NV 0x90A3 +#define GL_ROUND_NV 0x90A4 +#define GL_TRIANGULAR_NV 0x90A5 +#define GL_BEVEL_NV 0x90A6 +#define GL_MITER_REVERT_NV 0x90A7 +#define GL_MITER_TRUNCATE_NV 0x90A8 +#define GL_SKIP_MISSING_GLYPH_NV 0x90A9 +#define GL_USE_MISSING_GLYPH_NV 0x90AA +#define GL_PATH_ERROR_POSITION_NV 0x90AB +#define GL_PATH_FOG_GEN_MODE_NV 0x90AC +#define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD +#define GL_ADJACENT_PAIRS_NV 0x90AE +#define GL_FIRST_TO_REST_NV 0x90AF +#define GL_PATH_GEN_MODE_NV 0x90B0 +#define GL_PATH_GEN_COEFF_NV 0x90B1 +#define GL_PATH_GEN_COLOR_FORMAT_NV 0x90B2 +#define GL_PATH_GEN_COMPONENTS_NV 0x90B3 +#define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4 +#define GL_MOVE_TO_RESETS_NV 0x90B5 +#define GL_MOVE_TO_CONTINUES_NV 0x90B6 +#define GL_PATH_STENCIL_FUNC_NV 0x90B7 +#define GL_PATH_STENCIL_REF_NV 0x90B8 +#define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9 +#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD +#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE +#define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF +#define GL_FONT_GLYPHS_AVAILABLE_NV 0x9368 +#define GL_FONT_TARGET_UNAVAILABLE_NV 0x9369 +#define GL_FONT_UNAVAILABLE_NV 0x936A +#define GL_FONT_UNINTELLIGIBLE_NV 0x936B +#define GL_STANDARD_FONT_FORMAT_NV 0x936C +#define GL_FRAGMENT_INPUT_NV 0x936D +#define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000 +#define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000 +#define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000 +#define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000 +#define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000 +#define GL_FONT_ASCENDER_BIT_NV 0x00200000 +#define GL_FONT_DESCENDER_BIT_NV 0x00400000 +#define GL_FONT_HEIGHT_BIT_NV 0x00800000 +#define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000 +#define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000 +#define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000 +#define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000 +#define GL_FONT_HAS_KERNING_BIT_NV 0x10000000 +#define GL_FONT_NUM_GLYPH_INDICES_BIT_NV 0x20000000 + +typedef void (GLAPIENTRY * PFNGLCOPYPATHNVPROC) (GLuint resultPath, GLuint srcPath); +typedef void (GLAPIENTRY * PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +typedef void (GLAPIENTRY * PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode); +typedef void (GLAPIENTRY * PFNGLCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +typedef void (GLAPIENTRY * PFNGLCOVERSTROKEPATHNVPROC) (GLuint path, GLenum coverMode); +typedef void (GLAPIENTRY * PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range); +typedef GLuint (GLAPIENTRY * PFNGLGENPATHSNVPROC) (GLsizei range); +typedef void (GLAPIENTRY * PFNGLGETPATHCOLORGENFVNVPROC) (GLenum color, GLenum pname, GLfloat* value); +typedef void (GLAPIENTRY * PFNGLGETPATHCOLORGENIVNVPROC) (GLenum color, GLenum pname, GLint* value); +typedef void (GLAPIENTRY * PFNGLGETPATHCOMMANDSNVPROC) (GLuint path, GLubyte* commands); +typedef void (GLAPIENTRY * PFNGLGETPATHCOORDSNVPROC) (GLuint path, GLfloat* coords); +typedef void (GLAPIENTRY * PFNGLGETPATHDASHARRAYNVPROC) (GLuint path, GLfloat* dashArray); +typedef GLfloat (GLAPIENTRY * PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments); +typedef void (GLAPIENTRY * PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat* metrics); +typedef void (GLAPIENTRY * PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); +typedef void (GLAPIENTRY * PFNGLGETPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, GLfloat* value); +typedef void (GLAPIENTRY * PFNGLGETPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, GLint* value); +typedef void (GLAPIENTRY * PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); +typedef void (GLAPIENTRY * PFNGLGETPATHTEXGENFVNVPROC) (GLenum texCoordSet, GLenum pname, GLfloat* value); +typedef void (GLAPIENTRY * PFNGLGETPATHTEXGENIVNVPROC) (GLenum texCoordSet, GLenum pname, GLint* value); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMRESOURCEFVNVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei *length, GLfloat *params); +typedef void (GLAPIENTRY * PFNGLINTERPOLATEPATHSNVPROC) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); +typedef GLboolean (GLAPIENTRY * PFNGLISPATHNVPROC) (GLuint path); +typedef GLboolean (GLAPIENTRY * PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y); +typedef GLboolean (GLAPIENTRY * PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLMATRIXLOAD3X2FNVPROC) (GLenum matrixMode, const GLfloat* m); +typedef void (GLAPIENTRY * PFNGLMATRIXLOAD3X3FNVPROC) (GLenum matrixMode, const GLfloat* m); +typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat* m); +typedef void (GLAPIENTRY * PFNGLMATRIXMULT3X2FNVPROC) (GLenum matrixMode, const GLfloat* m); +typedef void (GLAPIENTRY * PFNGLMATRIXMULT3X3FNVPROC) (GLenum matrixMode, const GLfloat* m); +typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat* m); +typedef void (GLAPIENTRY * PFNGLPATHCOLORGENNVPROC) (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat* coeffs); +typedef void (GLAPIENTRY * PFNGLPATHCOMMANDSNVPROC) (GLuint path, GLsizei numCommands, const GLubyte* commands, GLsizei numCoords, GLenum coordType, const void*coords); +typedef void (GLAPIENTRY * PFNGLPATHCOORDSNVPROC) (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); +typedef void (GLAPIENTRY * PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum zfunc); +typedef void (GLAPIENTRY * PFNGLPATHDASHARRAYNVPROC) (GLuint path, GLsizei dashCount, const GLfloat* dashArray); +typedef void (GLAPIENTRY * PFNGLPATHFOGGENNVPROC) (GLenum genMode); +typedef GLenum (GLAPIENTRY * PFNGLPATHGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +typedef GLenum (GLAPIENTRY * PFNGLPATHGLYPHINDEXRANGENVPROC) (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint* baseAndCount); +typedef void (GLAPIENTRY * PFNGLPATHGLYPHRANGENVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +typedef void (GLAPIENTRY * PFNGLPATHGLYPHSNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void*charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +typedef GLenum (GLAPIENTRY * PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +typedef void (GLAPIENTRY * PFNGLPATHPARAMETERFNVPROC) (GLuint path, GLenum pname, GLfloat value); +typedef void (GLAPIENTRY * PFNGLPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPATHPARAMETERINVPROC) (GLuint path, GLenum pname, GLint value); +typedef void (GLAPIENTRY * PFNGLPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPATHSTENCILDEPTHOFFSETNVPROC) (GLfloat factor, GLfloat units); +typedef void (GLAPIENTRY * PFNGLPATHSTENCILFUNCNVPROC) (GLenum func, GLint ref, GLuint mask); +typedef void (GLAPIENTRY * PFNGLPATHSTRINGNVPROC) (GLuint path, GLenum format, GLsizei length, const void *pathString); +typedef void (GLAPIENTRY * PFNGLPATHSUBCOMMANDSNVPROC) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte* commands, GLsizei numCoords, GLenum coordType, const void*coords); +typedef void (GLAPIENTRY * PFNGLPATHSUBCOORDSNVPROC) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); +typedef void (GLAPIENTRY * PFNGLPATHTEXGENNVPROC) (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat* coeffs); +typedef GLboolean (GLAPIENTRY * PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat* x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); +typedef void (GLAPIENTRY * PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC) (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat* coeffs); +typedef void (GLAPIENTRY * PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); +typedef void (GLAPIENTRY * PFNGLSTENCILFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask); +typedef void (GLAPIENTRY * PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); +typedef void (GLAPIENTRY * PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask); +typedef void (GLAPIENTRY * PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +typedef void (GLAPIENTRY * PFNGLSTENCILTHENCOVERFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); +typedef void (GLAPIENTRY * PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +typedef void (GLAPIENTRY * PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask, GLenum coverMode); +typedef void (GLAPIENTRY * PFNGLTRANSFORMPATHNVPROC) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat* transformValues); +typedef void (GLAPIENTRY * PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei numPaths, const GLuint paths[], const GLfloat weights[]); + +#define glCopyPathNV GLEW_GET_FUN(__glewCopyPathNV) +#define glCoverFillPathInstancedNV GLEW_GET_FUN(__glewCoverFillPathInstancedNV) +#define glCoverFillPathNV GLEW_GET_FUN(__glewCoverFillPathNV) +#define glCoverStrokePathInstancedNV GLEW_GET_FUN(__glewCoverStrokePathInstancedNV) +#define glCoverStrokePathNV GLEW_GET_FUN(__glewCoverStrokePathNV) +#define glDeletePathsNV GLEW_GET_FUN(__glewDeletePathsNV) +#define glGenPathsNV GLEW_GET_FUN(__glewGenPathsNV) +#define glGetPathColorGenfvNV GLEW_GET_FUN(__glewGetPathColorGenfvNV) +#define glGetPathColorGenivNV GLEW_GET_FUN(__glewGetPathColorGenivNV) +#define glGetPathCommandsNV GLEW_GET_FUN(__glewGetPathCommandsNV) +#define glGetPathCoordsNV GLEW_GET_FUN(__glewGetPathCoordsNV) +#define glGetPathDashArrayNV GLEW_GET_FUN(__glewGetPathDashArrayNV) +#define glGetPathLengthNV GLEW_GET_FUN(__glewGetPathLengthNV) +#define glGetPathMetricRangeNV GLEW_GET_FUN(__glewGetPathMetricRangeNV) +#define glGetPathMetricsNV GLEW_GET_FUN(__glewGetPathMetricsNV) +#define glGetPathParameterfvNV GLEW_GET_FUN(__glewGetPathParameterfvNV) +#define glGetPathParameterivNV GLEW_GET_FUN(__glewGetPathParameterivNV) +#define glGetPathSpacingNV GLEW_GET_FUN(__glewGetPathSpacingNV) +#define glGetPathTexGenfvNV GLEW_GET_FUN(__glewGetPathTexGenfvNV) +#define glGetPathTexGenivNV GLEW_GET_FUN(__glewGetPathTexGenivNV) +#define glGetProgramResourcefvNV GLEW_GET_FUN(__glewGetProgramResourcefvNV) +#define glInterpolatePathsNV GLEW_GET_FUN(__glewInterpolatePathsNV) +#define glIsPathNV GLEW_GET_FUN(__glewIsPathNV) +#define glIsPointInFillPathNV GLEW_GET_FUN(__glewIsPointInFillPathNV) +#define glIsPointInStrokePathNV GLEW_GET_FUN(__glewIsPointInStrokePathNV) +#define glMatrixLoad3x2fNV GLEW_GET_FUN(__glewMatrixLoad3x2fNV) +#define glMatrixLoad3x3fNV GLEW_GET_FUN(__glewMatrixLoad3x3fNV) +#define glMatrixLoadTranspose3x3fNV GLEW_GET_FUN(__glewMatrixLoadTranspose3x3fNV) +#define glMatrixMult3x2fNV GLEW_GET_FUN(__glewMatrixMult3x2fNV) +#define glMatrixMult3x3fNV GLEW_GET_FUN(__glewMatrixMult3x3fNV) +#define glMatrixMultTranspose3x3fNV GLEW_GET_FUN(__glewMatrixMultTranspose3x3fNV) +#define glPathColorGenNV GLEW_GET_FUN(__glewPathColorGenNV) +#define glPathCommandsNV GLEW_GET_FUN(__glewPathCommandsNV) +#define glPathCoordsNV GLEW_GET_FUN(__glewPathCoordsNV) +#define glPathCoverDepthFuncNV GLEW_GET_FUN(__glewPathCoverDepthFuncNV) +#define glPathDashArrayNV GLEW_GET_FUN(__glewPathDashArrayNV) +#define glPathFogGenNV GLEW_GET_FUN(__glewPathFogGenNV) +#define glPathGlyphIndexArrayNV GLEW_GET_FUN(__glewPathGlyphIndexArrayNV) +#define glPathGlyphIndexRangeNV GLEW_GET_FUN(__glewPathGlyphIndexRangeNV) +#define glPathGlyphRangeNV GLEW_GET_FUN(__glewPathGlyphRangeNV) +#define glPathGlyphsNV GLEW_GET_FUN(__glewPathGlyphsNV) +#define glPathMemoryGlyphIndexArrayNV GLEW_GET_FUN(__glewPathMemoryGlyphIndexArrayNV) +#define glPathParameterfNV GLEW_GET_FUN(__glewPathParameterfNV) +#define glPathParameterfvNV GLEW_GET_FUN(__glewPathParameterfvNV) +#define glPathParameteriNV GLEW_GET_FUN(__glewPathParameteriNV) +#define glPathParameterivNV GLEW_GET_FUN(__glewPathParameterivNV) +#define glPathStencilDepthOffsetNV GLEW_GET_FUN(__glewPathStencilDepthOffsetNV) +#define glPathStencilFuncNV GLEW_GET_FUN(__glewPathStencilFuncNV) +#define glPathStringNV GLEW_GET_FUN(__glewPathStringNV) +#define glPathSubCommandsNV GLEW_GET_FUN(__glewPathSubCommandsNV) +#define glPathSubCoordsNV GLEW_GET_FUN(__glewPathSubCoordsNV) +#define glPathTexGenNV GLEW_GET_FUN(__glewPathTexGenNV) +#define glPointAlongPathNV GLEW_GET_FUN(__glewPointAlongPathNV) +#define glProgramPathFragmentInputGenNV GLEW_GET_FUN(__glewProgramPathFragmentInputGenNV) +#define glStencilFillPathInstancedNV GLEW_GET_FUN(__glewStencilFillPathInstancedNV) +#define glStencilFillPathNV GLEW_GET_FUN(__glewStencilFillPathNV) +#define glStencilStrokePathInstancedNV GLEW_GET_FUN(__glewStencilStrokePathInstancedNV) +#define glStencilStrokePathNV GLEW_GET_FUN(__glewStencilStrokePathNV) +#define glStencilThenCoverFillPathInstancedNV GLEW_GET_FUN(__glewStencilThenCoverFillPathInstancedNV) +#define glStencilThenCoverFillPathNV GLEW_GET_FUN(__glewStencilThenCoverFillPathNV) +#define glStencilThenCoverStrokePathInstancedNV GLEW_GET_FUN(__glewStencilThenCoverStrokePathInstancedNV) +#define glStencilThenCoverStrokePathNV GLEW_GET_FUN(__glewStencilThenCoverStrokePathNV) +#define glTransformPathNV GLEW_GET_FUN(__glewTransformPathNV) +#define glWeightPathsNV GLEW_GET_FUN(__glewWeightPathsNV) + +#define GLEW_NV_path_rendering GLEW_GET_VAR(__GLEW_NV_path_rendering) + +#endif /* GL_NV_path_rendering */ + +/* -------------------- GL_NV_path_rendering_shared_edge ------------------- */ + +#ifndef GL_NV_path_rendering_shared_edge +#define GL_NV_path_rendering_shared_edge 1 + +#define GL_SHARED_EDGE_NV 0xC0 + +#define GLEW_NV_path_rendering_shared_edge GLEW_GET_VAR(__GLEW_NV_path_rendering_shared_edge) + +#endif /* GL_NV_path_rendering_shared_edge */ + +/* ----------------------- GL_NV_pixel_buffer_object ----------------------- */ + +#ifndef GL_NV_pixel_buffer_object +#define GL_NV_pixel_buffer_object 1 + +#define GL_PIXEL_PACK_BUFFER_NV 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_NV 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_NV 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_NV 0x88EF + +#define GLEW_NV_pixel_buffer_object GLEW_GET_VAR(__GLEW_NV_pixel_buffer_object) + +#endif /* GL_NV_pixel_buffer_object */ + +/* ------------------------- GL_NV_pixel_data_range ------------------------ */ + +#ifndef GL_NV_pixel_data_range +#define GL_NV_pixel_data_range 1 + +#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 +#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 +#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A +#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B +#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C +#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D + +typedef void (GLAPIENTRY * PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, void *pointer); + +#define glFlushPixelDataRangeNV GLEW_GET_FUN(__glewFlushPixelDataRangeNV) +#define glPixelDataRangeNV GLEW_GET_FUN(__glewPixelDataRangeNV) + +#define GLEW_NV_pixel_data_range GLEW_GET_VAR(__GLEW_NV_pixel_data_range) + +#endif /* GL_NV_pixel_data_range */ + +/* ------------------------- GL_NV_platform_binary ------------------------- */ + +#ifndef GL_NV_platform_binary +#define GL_NV_platform_binary 1 + +#define GL_NVIDIA_PLATFORM_BINARY_NV 0x890B + +#define GLEW_NV_platform_binary GLEW_GET_VAR(__GLEW_NV_platform_binary) + +#endif /* GL_NV_platform_binary */ + +/* --------------------------- GL_NV_point_sprite -------------------------- */ + +#ifndef GL_NV_point_sprite +#define GL_NV_point_sprite 1 + +#define GL_POINT_SPRITE_NV 0x8861 +#define GL_COORD_REPLACE_NV 0x8862 +#define GL_POINT_SPRITE_R_MODE_NV 0x8863 + +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint* params); + +#define glPointParameteriNV GLEW_GET_FUN(__glewPointParameteriNV) +#define glPointParameterivNV GLEW_GET_FUN(__glewPointParameterivNV) + +#define GLEW_NV_point_sprite GLEW_GET_VAR(__GLEW_NV_point_sprite) + +#endif /* GL_NV_point_sprite */ + +/* --------------------------- GL_NV_polygon_mode -------------------------- */ + +#ifndef GL_NV_polygon_mode +#define GL_NV_polygon_mode 1 + +#define GL_POLYGON_MODE_NV 0x0B40 +#define GL_POINT_NV 0x1B00 +#define GL_LINE_NV 0x1B01 +#define GL_FILL_NV 0x1B02 +#define GL_POLYGON_OFFSET_POINT_NV 0x2A01 +#define GL_POLYGON_OFFSET_LINE_NV 0x2A02 + +typedef void (GLAPIENTRY * PFNGLPOLYGONMODENVPROC) (GLenum face, GLenum mode); + +#define glPolygonModeNV GLEW_GET_FUN(__glewPolygonModeNV) + +#define GLEW_NV_polygon_mode GLEW_GET_VAR(__GLEW_NV_polygon_mode) + +#endif /* GL_NV_polygon_mode */ + +/* -------------------------- GL_NV_present_video -------------------------- */ + +#ifndef GL_NV_present_video +#define GL_NV_present_video 1 + +#define GL_FRAME_NV 0x8E26 +#define GL_FIELDS_NV 0x8E27 +#define GL_CURRENT_TIME_NV 0x8E28 +#define GL_NUM_FILL_STREAMS_NV 0x8E29 +#define GL_PRESENT_TIME_NV 0x8E2A +#define GL_PRESENT_DURATION_NV 0x8E2B + +typedef void (GLAPIENTRY * PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT* params); +typedef void (GLAPIENTRY * PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT* params); +typedef void (GLAPIENTRY * PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); +typedef void (GLAPIENTRY * PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); + +#define glGetVideoi64vNV GLEW_GET_FUN(__glewGetVideoi64vNV) +#define glGetVideoivNV GLEW_GET_FUN(__glewGetVideoivNV) +#define glGetVideoui64vNV GLEW_GET_FUN(__glewGetVideoui64vNV) +#define glGetVideouivNV GLEW_GET_FUN(__glewGetVideouivNV) +#define glPresentFrameDualFillNV GLEW_GET_FUN(__glewPresentFrameDualFillNV) +#define glPresentFrameKeyedNV GLEW_GET_FUN(__glewPresentFrameKeyedNV) + +#define GLEW_NV_present_video GLEW_GET_VAR(__GLEW_NV_present_video) + +#endif /* GL_NV_present_video */ + +/* ------------------------ GL_NV_primitive_restart ------------------------ */ + +#ifndef GL_NV_primitive_restart +#define GL_NV_primitive_restart 1 + +#define GL_PRIMITIVE_RESTART_NV 0x8558 +#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 + +typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); +typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTNVPROC) (void); + +#define glPrimitiveRestartIndexNV GLEW_GET_FUN(__glewPrimitiveRestartIndexNV) +#define glPrimitiveRestartNV GLEW_GET_FUN(__glewPrimitiveRestartNV) + +#define GLEW_NV_primitive_restart GLEW_GET_VAR(__GLEW_NV_primitive_restart) + +#endif /* GL_NV_primitive_restart */ + +/* ---------------------- GL_NV_primitive_shading_rate --------------------- */ + +#ifndef GL_NV_primitive_shading_rate +#define GL_NV_primitive_shading_rate 1 + +#define GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV 0x95B1 +#define GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV 0x95B2 + +#define GLEW_NV_primitive_shading_rate GLEW_GET_VAR(__GLEW_NV_primitive_shading_rate) + +#endif /* GL_NV_primitive_shading_rate */ + +/* ------------------------ GL_NV_query_resource_tag ----------------------- */ + +#ifndef GL_NV_query_resource_tag +#define GL_NV_query_resource_tag 1 + +#define GLEW_NV_query_resource_tag GLEW_GET_VAR(__GLEW_NV_query_resource_tag) + +#endif /* GL_NV_query_resource_tag */ + +/* --------------------------- GL_NV_read_buffer --------------------------- */ + +#ifndef GL_NV_read_buffer +#define GL_NV_read_buffer 1 + +#define GL_READ_BUFFER_NV 0x0C02 + +typedef void (GLAPIENTRY * PFNGLREADBUFFERNVPROC) (GLenum mode); + +#define glReadBufferNV GLEW_GET_FUN(__glewReadBufferNV) + +#define GLEW_NV_read_buffer GLEW_GET_VAR(__GLEW_NV_read_buffer) + +#endif /* GL_NV_read_buffer */ + +/* ------------------------ GL_NV_read_buffer_front ------------------------ */ + +#ifndef GL_NV_read_buffer_front +#define GL_NV_read_buffer_front 1 + +#define GL_READ_BUFFER_NV 0x0C02 + +#define GLEW_NV_read_buffer_front GLEW_GET_VAR(__GLEW_NV_read_buffer_front) + +#endif /* GL_NV_read_buffer_front */ + +/* ---------------------------- GL_NV_read_depth --------------------------- */ + +#ifndef GL_NV_read_depth +#define GL_NV_read_depth 1 + +#define GLEW_NV_read_depth GLEW_GET_VAR(__GLEW_NV_read_depth) + +#endif /* GL_NV_read_depth */ + +/* ------------------------ GL_NV_read_depth_stencil ----------------------- */ + +#ifndef GL_NV_read_depth_stencil +#define GL_NV_read_depth_stencil 1 + +#define GLEW_NV_read_depth_stencil GLEW_GET_VAR(__GLEW_NV_read_depth_stencil) + +#endif /* GL_NV_read_depth_stencil */ + +/* --------------------------- GL_NV_read_stencil -------------------------- */ + +#ifndef GL_NV_read_stencil +#define GL_NV_read_stencil 1 + +#define GLEW_NV_read_stencil GLEW_GET_VAR(__GLEW_NV_read_stencil) + +#endif /* GL_NV_read_stencil */ + +/* ------------------------ GL_NV_register_combiners ----------------------- */ + +#ifndef GL_NV_register_combiners +#define GL_NV_register_combiners 1 + +#define GL_REGISTER_COMBINERS_NV 0x8522 +#define GL_VARIABLE_A_NV 0x8523 +#define GL_VARIABLE_B_NV 0x8524 +#define GL_VARIABLE_C_NV 0x8525 +#define GL_VARIABLE_D_NV 0x8526 +#define GL_VARIABLE_E_NV 0x8527 +#define GL_VARIABLE_F_NV 0x8528 +#define GL_VARIABLE_G_NV 0x8529 +#define GL_CONSTANT_COLOR0_NV 0x852A +#define GL_CONSTANT_COLOR1_NV 0x852B +#define GL_PRIMARY_COLOR_NV 0x852C +#define GL_SECONDARY_COLOR_NV 0x852D +#define GL_SPARE0_NV 0x852E +#define GL_SPARE1_NV 0x852F +#define GL_DISCARD_NV 0x8530 +#define GL_E_TIMES_F_NV 0x8531 +#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 +#define GL_UNSIGNED_IDENTITY_NV 0x8536 +#define GL_UNSIGNED_INVERT_NV 0x8537 +#define GL_EXPAND_NORMAL_NV 0x8538 +#define GL_EXPAND_NEGATE_NV 0x8539 +#define GL_HALF_BIAS_NORMAL_NV 0x853A +#define GL_HALF_BIAS_NEGATE_NV 0x853B +#define GL_SIGNED_IDENTITY_NV 0x853C +#define GL_SIGNED_NEGATE_NV 0x853D +#define GL_SCALE_BY_TWO_NV 0x853E +#define GL_SCALE_BY_FOUR_NV 0x853F +#define GL_SCALE_BY_ONE_HALF_NV 0x8540 +#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 +#define GL_COMBINER_INPUT_NV 0x8542 +#define GL_COMBINER_MAPPING_NV 0x8543 +#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 +#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 +#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 +#define GL_COMBINER_MUX_SUM_NV 0x8547 +#define GL_COMBINER_SCALE_NV 0x8548 +#define GL_COMBINER_BIAS_NV 0x8549 +#define GL_COMBINER_AB_OUTPUT_NV 0x854A +#define GL_COMBINER_CD_OUTPUT_NV 0x854B +#define GL_COMBINER_SUM_OUTPUT_NV 0x854C +#define GL_MAX_GENERAL_COMBINERS_NV 0x854D +#define GL_NUM_GENERAL_COMBINERS_NV 0x854E +#define GL_COLOR_SUM_CLAMP_NV 0x854F +#define GL_COMBINER0_NV 0x8550 +#define GL_COMBINER1_NV 0x8551 +#define GL_COMBINER2_NV 0x8552 +#define GL_COMBINER3_NV 0x8553 +#define GL_COMBINER4_NV 0x8554 +#define GL_COMBINER5_NV 0x8555 +#define GL_COMBINER6_NV 0x8556 +#define GL_COMBINER7_NV 0x8557 + +typedef void (GLAPIENTRY * PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +typedef void (GLAPIENTRY * PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); +typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +typedef void (GLAPIENTRY * PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint* params); + +#define glCombinerInputNV GLEW_GET_FUN(__glewCombinerInputNV) +#define glCombinerOutputNV GLEW_GET_FUN(__glewCombinerOutputNV) +#define glCombinerParameterfNV GLEW_GET_FUN(__glewCombinerParameterfNV) +#define glCombinerParameterfvNV GLEW_GET_FUN(__glewCombinerParameterfvNV) +#define glCombinerParameteriNV GLEW_GET_FUN(__glewCombinerParameteriNV) +#define glCombinerParameterivNV GLEW_GET_FUN(__glewCombinerParameterivNV) +#define glFinalCombinerInputNV GLEW_GET_FUN(__glewFinalCombinerInputNV) +#define glGetCombinerInputParameterfvNV GLEW_GET_FUN(__glewGetCombinerInputParameterfvNV) +#define glGetCombinerInputParameterivNV GLEW_GET_FUN(__glewGetCombinerInputParameterivNV) +#define glGetCombinerOutputParameterfvNV GLEW_GET_FUN(__glewGetCombinerOutputParameterfvNV) +#define glGetCombinerOutputParameterivNV GLEW_GET_FUN(__glewGetCombinerOutputParameterivNV) +#define glGetFinalCombinerInputParameterfvNV GLEW_GET_FUN(__glewGetFinalCombinerInputParameterfvNV) +#define glGetFinalCombinerInputParameterivNV GLEW_GET_FUN(__glewGetFinalCombinerInputParameterivNV) + +#define GLEW_NV_register_combiners GLEW_GET_VAR(__GLEW_NV_register_combiners) + +#endif /* GL_NV_register_combiners */ + +/* ----------------------- GL_NV_register_combiners2 ----------------------- */ + +#ifndef GL_NV_register_combiners2 +#define GL_NV_register_combiners2 1 + +#define GL_PER_STAGE_CONSTANTS_NV 0x8535 + +typedef void (GLAPIENTRY * PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat* params); + +#define glCombinerStageParameterfvNV GLEW_GET_FUN(__glewCombinerStageParameterfvNV) +#define glGetCombinerStageParameterfvNV GLEW_GET_FUN(__glewGetCombinerStageParameterfvNV) + +#define GLEW_NV_register_combiners2 GLEW_GET_VAR(__GLEW_NV_register_combiners2) + +#endif /* GL_NV_register_combiners2 */ + +/* ------------------- GL_NV_representative_fragment_test ------------------ */ + +#ifndef GL_NV_representative_fragment_test +#define GL_NV_representative_fragment_test 1 + +#define GL_REPRESENTATIVE_FRAGMENT_TEST_NV 0x937F + +#define GLEW_NV_representative_fragment_test GLEW_GET_VAR(__GLEW_NV_representative_fragment_test) + +#endif /* GL_NV_representative_fragment_test */ + +/* ------------------ GL_NV_robustness_video_memory_purge ------------------ */ + +#ifndef GL_NV_robustness_video_memory_purge +#define GL_NV_robustness_video_memory_purge 1 + +#define GL_PURGED_CONTEXT_RESET_NV 0x92BB + +#define GLEW_NV_robustness_video_memory_purge GLEW_GET_VAR(__GLEW_NV_robustness_video_memory_purge) + +#endif /* GL_NV_robustness_video_memory_purge */ + +/* --------------------------- GL_NV_sRGB_formats -------------------------- */ + +#ifndef GL_NV_sRGB_formats +#define GL_NV_sRGB_formats 1 + +#define GL_ETC1_SRGB8_NV 0x88EE +#define GL_SRGB8_NV 0x8C41 +#define GL_SLUMINANCE_ALPHA_NV 0x8C44 +#define GL_SLUMINANCE8_ALPHA8_NV 0x8C45 +#define GL_SLUMINANCE_NV 0x8C46 +#define GL_SLUMINANCE8_NV 0x8C47 +#define GL_COMPRESSED_SRGB_S3TC_DXT1_NV 0x8C4C +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV 0x8C4D +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV 0x8C4E +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV 0x8C4F + +#define GLEW_NV_sRGB_formats GLEW_GET_VAR(__GLEW_NV_sRGB_formats) + +#endif /* GL_NV_sRGB_formats */ + +/* ------------------------- GL_NV_sample_locations ------------------------ */ + +#ifndef GL_NV_sample_locations +#define GL_NV_sample_locations 1 + +#define GL_SAMPLE_LOCATION_NV 0x8E50 +#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D +#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV 0x933E +#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV 0x933F +#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV 0x9340 +#define GL_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9341 +#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV 0x9342 +#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV 0x9343 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLRESOLVEDEPTHVALUESNVPROC) (void); + +#define glFramebufferSampleLocationsfvNV GLEW_GET_FUN(__glewFramebufferSampleLocationsfvNV) +#define glNamedFramebufferSampleLocationsfvNV GLEW_GET_FUN(__glewNamedFramebufferSampleLocationsfvNV) +#define glResolveDepthValuesNV GLEW_GET_FUN(__glewResolveDepthValuesNV) + +#define GLEW_NV_sample_locations GLEW_GET_VAR(__GLEW_NV_sample_locations) + +#endif /* GL_NV_sample_locations */ + +/* ------------------ GL_NV_sample_mask_override_coverage ------------------ */ + +#ifndef GL_NV_sample_mask_override_coverage +#define GL_NV_sample_mask_override_coverage 1 + +#define GLEW_NV_sample_mask_override_coverage GLEW_GET_VAR(__GLEW_NV_sample_mask_override_coverage) + +#endif /* GL_NV_sample_mask_override_coverage */ + +/* ------------------------ GL_NV_scissor_exclusive ------------------------ */ + +#ifndef GL_NV_scissor_exclusive +#define GL_NV_scissor_exclusive 1 + +#define GL_SCISSOR_TEST_EXCLUSIVE_NV 0x9555 +#define GL_SCISSOR_BOX_EXCLUSIVE_NV 0x9556 + +typedef void (GLAPIENTRY * PFNGLSCISSOREXCLUSIVEARRAYVNVPROC) (GLuint first, GLsizei count, const GLint* v); +typedef void (GLAPIENTRY * PFNGLSCISSOREXCLUSIVENVPROC) (GLint x, GLint y, GLsizei width, GLsizei height); + +#define glScissorExclusiveArrayvNV GLEW_GET_FUN(__glewScissorExclusiveArrayvNV) +#define glScissorExclusiveNV GLEW_GET_FUN(__glewScissorExclusiveNV) + +#define GLEW_NV_scissor_exclusive GLEW_GET_VAR(__GLEW_NV_scissor_exclusive) + +#endif /* GL_NV_scissor_exclusive */ + +/* ---------------------- GL_NV_shader_atomic_counters --------------------- */ + +#ifndef GL_NV_shader_atomic_counters +#define GL_NV_shader_atomic_counters 1 + +#define GLEW_NV_shader_atomic_counters GLEW_GET_VAR(__GLEW_NV_shader_atomic_counters) + +#endif /* GL_NV_shader_atomic_counters */ + +/* ----------------------- GL_NV_shader_atomic_float ----------------------- */ + +#ifndef GL_NV_shader_atomic_float +#define GL_NV_shader_atomic_float 1 + +#define GLEW_NV_shader_atomic_float GLEW_GET_VAR(__GLEW_NV_shader_atomic_float) + +#endif /* GL_NV_shader_atomic_float */ + +/* ---------------------- GL_NV_shader_atomic_float64 ---------------------- */ + +#ifndef GL_NV_shader_atomic_float64 +#define GL_NV_shader_atomic_float64 1 + +#define GLEW_NV_shader_atomic_float64 GLEW_GET_VAR(__GLEW_NV_shader_atomic_float64) + +#endif /* GL_NV_shader_atomic_float64 */ + +/* -------------------- GL_NV_shader_atomic_fp16_vector -------------------- */ + +#ifndef GL_NV_shader_atomic_fp16_vector +#define GL_NV_shader_atomic_fp16_vector 1 + +#define GLEW_NV_shader_atomic_fp16_vector GLEW_GET_VAR(__GLEW_NV_shader_atomic_fp16_vector) + +#endif /* GL_NV_shader_atomic_fp16_vector */ + +/* ----------------------- GL_NV_shader_atomic_int64 ----------------------- */ + +#ifndef GL_NV_shader_atomic_int64 +#define GL_NV_shader_atomic_int64 1 + +#define GLEW_NV_shader_atomic_int64 GLEW_GET_VAR(__GLEW_NV_shader_atomic_int64) + +#endif /* GL_NV_shader_atomic_int64 */ + +/* ------------------------ GL_NV_shader_buffer_load ----------------------- */ + +#ifndef GL_NV_shader_buffer_load +#define GL_NV_shader_buffer_load 1 + +#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D +#define GL_GPU_ADDRESS_NV 0x8F34 +#define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35 + +typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT* params); +typedef void (GLAPIENTRY * PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT* result); +typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT* params); +typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERRESIDENTNVPROC) (GLenum target); +typedef GLboolean (GLAPIENTRY * PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer); +typedef void (GLAPIENTRY * PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access); +typedef void (GLAPIENTRY * PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer); +typedef void (GLAPIENTRY * PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value); +typedef void (GLAPIENTRY * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); + +#define glGetBufferParameterui64vNV GLEW_GET_FUN(__glewGetBufferParameterui64vNV) +#define glGetIntegerui64vNV GLEW_GET_FUN(__glewGetIntegerui64vNV) +#define glGetNamedBufferParameterui64vNV GLEW_GET_FUN(__glewGetNamedBufferParameterui64vNV) +#define glIsBufferResidentNV GLEW_GET_FUN(__glewIsBufferResidentNV) +#define glIsNamedBufferResidentNV GLEW_GET_FUN(__glewIsNamedBufferResidentNV) +#define glMakeBufferNonResidentNV GLEW_GET_FUN(__glewMakeBufferNonResidentNV) +#define glMakeBufferResidentNV GLEW_GET_FUN(__glewMakeBufferResidentNV) +#define glMakeNamedBufferNonResidentNV GLEW_GET_FUN(__glewMakeNamedBufferNonResidentNV) +#define glMakeNamedBufferResidentNV GLEW_GET_FUN(__glewMakeNamedBufferResidentNV) +#define glProgramUniformui64NV GLEW_GET_FUN(__glewProgramUniformui64NV) +#define glProgramUniformui64vNV GLEW_GET_FUN(__glewProgramUniformui64vNV) +#define glUniformui64NV GLEW_GET_FUN(__glewUniformui64NV) +#define glUniformui64vNV GLEW_GET_FUN(__glewUniformui64vNV) + +#define GLEW_NV_shader_buffer_load GLEW_GET_VAR(__GLEW_NV_shader_buffer_load) + +#endif /* GL_NV_shader_buffer_load */ + +/* ---------------- GL_NV_shader_noperspective_interpolation --------------- */ + +#ifndef GL_NV_shader_noperspective_interpolation +#define GL_NV_shader_noperspective_interpolation 1 + +#define GLEW_NV_shader_noperspective_interpolation GLEW_GET_VAR(__GLEW_NV_shader_noperspective_interpolation) + +#endif /* GL_NV_shader_noperspective_interpolation */ + +/* ------------------- GL_NV_shader_storage_buffer_object ------------------ */ + +#ifndef GL_NV_shader_storage_buffer_object +#define GL_NV_shader_storage_buffer_object 1 + +#define GLEW_NV_shader_storage_buffer_object GLEW_GET_VAR(__GLEW_NV_shader_storage_buffer_object) + +#endif /* GL_NV_shader_storage_buffer_object */ + +/* ------------------- GL_NV_shader_subgroup_partitioned ------------------- */ + +#ifndef GL_NV_shader_subgroup_partitioned +#define GL_NV_shader_subgroup_partitioned 1 + +#define GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV 0x00000100 + +#define GLEW_NV_shader_subgroup_partitioned GLEW_GET_VAR(__GLEW_NV_shader_subgroup_partitioned) + +#endif /* GL_NV_shader_subgroup_partitioned */ + +/* --------------------- GL_NV_shader_texture_footprint -------------------- */ + +#ifndef GL_NV_shader_texture_footprint +#define GL_NV_shader_texture_footprint 1 + +#define GLEW_NV_shader_texture_footprint GLEW_GET_VAR(__GLEW_NV_shader_texture_footprint) + +#endif /* GL_NV_shader_texture_footprint */ + +/* ----------------------- GL_NV_shader_thread_group ----------------------- */ + +#ifndef GL_NV_shader_thread_group +#define GL_NV_shader_thread_group 1 + +#define GL_WARP_SIZE_NV 0x9339 +#define GL_WARPS_PER_SM_NV 0x933A +#define GL_SM_COUNT_NV 0x933B + +#define GLEW_NV_shader_thread_group GLEW_GET_VAR(__GLEW_NV_shader_thread_group) + +#endif /* GL_NV_shader_thread_group */ + +/* ---------------------- GL_NV_shader_thread_shuffle ---------------------- */ + +#ifndef GL_NV_shader_thread_shuffle +#define GL_NV_shader_thread_shuffle 1 + +#define GLEW_NV_shader_thread_shuffle GLEW_GET_VAR(__GLEW_NV_shader_thread_shuffle) + +#endif /* GL_NV_shader_thread_shuffle */ + +/* ------------------------ GL_NV_shading_rate_image ----------------------- */ + +#ifndef GL_NV_shading_rate_image +#define GL_NV_shading_rate_image 1 + +#define GL_SHADING_RATE_IMAGE_BINDING_NV 0x955B +#define GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV 0x955C +#define GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV 0x955D +#define GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV 0x955E +#define GL_MAX_COARSE_FRAGMENT_SAMPLES_NV 0x955F +#define GL_SHADING_RATE_IMAGE_NV 0x9563 +#define GL_SHADING_RATE_NO_INVOCATIONS_NV 0x9564 +#define GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV 0x9565 +#define GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV 0x9566 +#define GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV 0x9567 +#define GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV 0x9568 +#define GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV 0x9569 +#define GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV 0x956A +#define GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV 0x956B +#define GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV 0x956C +#define GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV 0x956D +#define GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV 0x956E +#define GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV 0x956F +#define GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV 0x95AE +#define GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV 0x95AF +#define GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV 0x95B0 + +typedef void (GLAPIENTRY * PFNGLBINDSHADINGRATEIMAGENVPROC) (GLuint texture); +typedef void (GLAPIENTRY * PFNGLGETSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint entry, GLenum* rate); +typedef void (GLAPIENTRY * PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC) (GLenum rate, GLuint samples, GLuint index, GLint* location); +typedef void (GLAPIENTRY * PFNGLSHADINGRATEIMAGEBARRIERNVPROC) (GLboolean synchronize); +typedef void (GLAPIENTRY * PFNGLSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint first, GLsizei count, const GLenum* rates); +typedef void (GLAPIENTRY * PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC) (GLenum rate, GLuint samples, const GLint* locations); +typedef void (GLAPIENTRY * PFNGLSHADINGRATESAMPLEORDERNVPROC) (GLenum order); + +#define glBindShadingRateImageNV GLEW_GET_FUN(__glewBindShadingRateImageNV) +#define glGetShadingRateImagePaletteNV GLEW_GET_FUN(__glewGetShadingRateImagePaletteNV) +#define glGetShadingRateSampleLocationivNV GLEW_GET_FUN(__glewGetShadingRateSampleLocationivNV) +#define glShadingRateImageBarrierNV GLEW_GET_FUN(__glewShadingRateImageBarrierNV) +#define glShadingRateImagePaletteNV GLEW_GET_FUN(__glewShadingRateImagePaletteNV) +#define glShadingRateSampleOrderCustomNV GLEW_GET_FUN(__glewShadingRateSampleOrderCustomNV) +#define glShadingRateSampleOrderNV GLEW_GET_FUN(__glewShadingRateSampleOrderNV) + +#define GLEW_NV_shading_rate_image GLEW_GET_VAR(__GLEW_NV_shading_rate_image) + +#endif /* GL_NV_shading_rate_image */ + +/* ---------------------- GL_NV_shadow_samplers_array ---------------------- */ + +#ifndef GL_NV_shadow_samplers_array +#define GL_NV_shadow_samplers_array 1 + +#define GL_SAMPLER_2D_ARRAY_SHADOW_NV 0x8DC4 + +#define GLEW_NV_shadow_samplers_array GLEW_GET_VAR(__GLEW_NV_shadow_samplers_array) + +#endif /* GL_NV_shadow_samplers_array */ + +/* ----------------------- GL_NV_shadow_samplers_cube ---------------------- */ + +#ifndef GL_NV_shadow_samplers_cube +#define GL_NV_shadow_samplers_cube 1 + +#define GL_SAMPLER_CUBE_SHADOW_NV 0x8DC5 + +#define GLEW_NV_shadow_samplers_cube GLEW_GET_VAR(__GLEW_NV_shadow_samplers_cube) + +#endif /* GL_NV_shadow_samplers_cube */ + +/* ---------------------- GL_NV_stereo_view_rendering ---------------------- */ + +#ifndef GL_NV_stereo_view_rendering +#define GL_NV_stereo_view_rendering 1 + +#define GLEW_NV_stereo_view_rendering GLEW_GET_VAR(__GLEW_NV_stereo_view_rendering) + +#endif /* GL_NV_stereo_view_rendering */ + +/* ---------------------- GL_NV_tessellation_program5 ---------------------- */ + +#ifndef GL_NV_tessellation_program5 +#define GL_NV_tessellation_program5 1 + +#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8 +#define GL_TESS_CONTROL_PROGRAM_NV 0x891E +#define GL_TESS_EVALUATION_PROGRAM_NV 0x891F +#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74 +#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75 + +#define GLEW_NV_tessellation_program5 GLEW_GET_VAR(__GLEW_NV_tessellation_program5) + +#endif /* GL_NV_tessellation_program5 */ + +/* -------------------------- GL_NV_texgen_emboss -------------------------- */ + +#ifndef GL_NV_texgen_emboss +#define GL_NV_texgen_emboss 1 + +#define GL_EMBOSS_LIGHT_NV 0x855D +#define GL_EMBOSS_CONSTANT_NV 0x855E +#define GL_EMBOSS_MAP_NV 0x855F + +#define GLEW_NV_texgen_emboss GLEW_GET_VAR(__GLEW_NV_texgen_emboss) + +#endif /* GL_NV_texgen_emboss */ + +/* ------------------------ GL_NV_texgen_reflection ------------------------ */ + +#ifndef GL_NV_texgen_reflection +#define GL_NV_texgen_reflection 1 + +#define GL_NORMAL_MAP_NV 0x8511 +#define GL_REFLECTION_MAP_NV 0x8512 + +#define GLEW_NV_texgen_reflection GLEW_GET_VAR(__GLEW_NV_texgen_reflection) + +#endif /* GL_NV_texgen_reflection */ + +/* -------------------------- GL_NV_texture_array -------------------------- */ + +#ifndef GL_NV_texture_array +#define GL_NV_texture_array 1 + +#define GL_UNPACK_SKIP_IMAGES_NV 0x806D +#define GL_UNPACK_IMAGE_HEIGHT_NV 0x806E +#define GL_MAX_ARRAY_TEXTURE_LAYERS_NV 0x88FF +#define GL_TEXTURE_2D_ARRAY_NV 0x8C1A +#define GL_TEXTURE_BINDING_2D_ARRAY_NV 0x8C1D +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_NV 0x8CD4 +#define GL_SAMPLER_2D_ARRAY_NV 0x8DC1 + +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DNVPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC) (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 (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DNVPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERNVPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DNVPROC) (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DNVPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); + +#define glCompressedTexImage3DNV GLEW_GET_FUN(__glewCompressedTexImage3DNV) +#define glCompressedTexSubImage3DNV GLEW_GET_FUN(__glewCompressedTexSubImage3DNV) +#define glCopyTexSubImage3DNV GLEW_GET_FUN(__glewCopyTexSubImage3DNV) +#define glFramebufferTextureLayerNV GLEW_GET_FUN(__glewFramebufferTextureLayerNV) +#define glTexImage3DNV GLEW_GET_FUN(__glewTexImage3DNV) +#define glTexSubImage3DNV GLEW_GET_FUN(__glewTexSubImage3DNV) + +#define GLEW_NV_texture_array GLEW_GET_VAR(__GLEW_NV_texture_array) + +#endif /* GL_NV_texture_array */ + +/* ------------------------- GL_NV_texture_barrier ------------------------- */ + +#ifndef GL_NV_texture_barrier +#define GL_NV_texture_barrier 1 + +typedef void (GLAPIENTRY * PFNGLTEXTUREBARRIERNVPROC) (void); + +#define glTextureBarrierNV GLEW_GET_FUN(__glewTextureBarrierNV) + +#define GLEW_NV_texture_barrier GLEW_GET_VAR(__GLEW_NV_texture_barrier) + +#endif /* GL_NV_texture_barrier */ + +/* ----------------------- GL_NV_texture_border_clamp ---------------------- */ + +#ifndef GL_NV_texture_border_clamp +#define GL_NV_texture_border_clamp 1 + +#define GL_TEXTURE_BORDER_COLOR_NV 0x1004 +#define GL_CLAMP_TO_BORDER_NV 0x812D + +#define GLEW_NV_texture_border_clamp GLEW_GET_VAR(__GLEW_NV_texture_border_clamp) + +#endif /* GL_NV_texture_border_clamp */ + +/* --------------------- GL_NV_texture_compression_latc -------------------- */ + +#ifndef GL_NV_texture_compression_latc +#define GL_NV_texture_compression_latc 1 + +#define GL_COMPRESSED_LUMINANCE_LATC1_NV 0x8C70 +#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_NV 0x8C71 +#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_NV 0x8C72 +#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_NV 0x8C73 + +#define GLEW_NV_texture_compression_latc GLEW_GET_VAR(__GLEW_NV_texture_compression_latc) + +#endif /* GL_NV_texture_compression_latc */ + +/* --------------------- GL_NV_texture_compression_s3tc -------------------- */ + +#ifndef GL_NV_texture_compression_s3tc +#define GL_NV_texture_compression_s3tc 1 + +#define GL_COMPRESSED_RGB_S3TC_DXT1_NV 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_NV 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_NV 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_NV 0x83F3 + +#define GLEW_NV_texture_compression_s3tc GLEW_GET_VAR(__GLEW_NV_texture_compression_s3tc) + +#endif /* GL_NV_texture_compression_s3tc */ + +/* ----------------- GL_NV_texture_compression_s3tc_update ----------------- */ + +#ifndef GL_NV_texture_compression_s3tc_update +#define GL_NV_texture_compression_s3tc_update 1 + +#define GLEW_NV_texture_compression_s3tc_update GLEW_GET_VAR(__GLEW_NV_texture_compression_s3tc_update) + +#endif /* GL_NV_texture_compression_s3tc_update */ + +/* --------------------- GL_NV_texture_compression_vtc --------------------- */ + +#ifndef GL_NV_texture_compression_vtc +#define GL_NV_texture_compression_vtc 1 + +#define GLEW_NV_texture_compression_vtc GLEW_GET_VAR(__GLEW_NV_texture_compression_vtc) + +#endif /* GL_NV_texture_compression_vtc */ + +/* ----------------------- GL_NV_texture_env_combine4 ---------------------- */ + +#ifndef GL_NV_texture_env_combine4 +#define GL_NV_texture_env_combine4 1 + +#define GL_COMBINE4_NV 0x8503 +#define GL_SOURCE3_RGB_NV 0x8583 +#define GL_SOURCE3_ALPHA_NV 0x858B +#define GL_OPERAND3_RGB_NV 0x8593 +#define GL_OPERAND3_ALPHA_NV 0x859B + +#define GLEW_NV_texture_env_combine4 GLEW_GET_VAR(__GLEW_NV_texture_env_combine4) + +#endif /* GL_NV_texture_env_combine4 */ + +/* ---------------------- GL_NV_texture_expand_normal ---------------------- */ + +#ifndef GL_NV_texture_expand_normal +#define GL_NV_texture_expand_normal 1 + +#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F + +#define GLEW_NV_texture_expand_normal GLEW_GET_VAR(__GLEW_NV_texture_expand_normal) + +#endif /* GL_NV_texture_expand_normal */ + +/* ----------------------- GL_NV_texture_multisample ----------------------- */ + +#ifndef GL_NV_texture_multisample +#define GL_NV_texture_multisample 1 + +#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045 +#define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046 + +typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); + +#define glTexImage2DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage2DMultisampleCoverageNV) +#define glTexImage3DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage3DMultisampleCoverageNV) +#define glTextureImage2DMultisampleCoverageNV GLEW_GET_FUN(__glewTextureImage2DMultisampleCoverageNV) +#define glTextureImage2DMultisampleNV GLEW_GET_FUN(__glewTextureImage2DMultisampleNV) +#define glTextureImage3DMultisampleCoverageNV GLEW_GET_FUN(__glewTextureImage3DMultisampleCoverageNV) +#define glTextureImage3DMultisampleNV GLEW_GET_FUN(__glewTextureImage3DMultisampleNV) + +#define GLEW_NV_texture_multisample GLEW_GET_VAR(__GLEW_NV_texture_multisample) + +#endif /* GL_NV_texture_multisample */ + +/* ---------------------- GL_NV_texture_npot_2D_mipmap --------------------- */ + +#ifndef GL_NV_texture_npot_2D_mipmap +#define GL_NV_texture_npot_2D_mipmap 1 + +#define GLEW_NV_texture_npot_2D_mipmap GLEW_GET_VAR(__GLEW_NV_texture_npot_2D_mipmap) + +#endif /* GL_NV_texture_npot_2D_mipmap */ + +/* ------------------------ GL_NV_texture_rectangle ------------------------ */ + +#ifndef GL_NV_texture_rectangle +#define GL_NV_texture_rectangle 1 + +#define GL_TEXTURE_RECTANGLE_NV 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 + +#define GLEW_NV_texture_rectangle GLEW_GET_VAR(__GLEW_NV_texture_rectangle) + +#endif /* GL_NV_texture_rectangle */ + +/* ------------------- GL_NV_texture_rectangle_compressed ------------------ */ + +#ifndef GL_NV_texture_rectangle_compressed +#define GL_NV_texture_rectangle_compressed 1 + +#define GLEW_NV_texture_rectangle_compressed GLEW_GET_VAR(__GLEW_NV_texture_rectangle_compressed) + +#endif /* GL_NV_texture_rectangle_compressed */ + +/* -------------------------- GL_NV_texture_shader ------------------------- */ + +#ifndef GL_NV_texture_shader +#define GL_NV_texture_shader 1 + +#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C +#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D +#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E +#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 +#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA +#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB +#define GL_DSDT_MAG_INTENSITY_NV 0x86DC +#define GL_SHADER_CONSISTENT_NV 0x86DD +#define GL_TEXTURE_SHADER_NV 0x86DE +#define GL_SHADER_OPERATION_NV 0x86DF +#define GL_CULL_MODES_NV 0x86E0 +#define GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1 +#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 +#define GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2 +#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 +#define GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3 +#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 +#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 +#define GL_CONST_EYE_NV 0x86E5 +#define GL_PASS_THROUGH_NV 0x86E6 +#define GL_CULL_FRAGMENT_NV 0x86E7 +#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 +#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 +#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA +#define GL_DOT_PRODUCT_NV 0x86EC +#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED +#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE +#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 +#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 +#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 +#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 +#define GL_HILO_NV 0x86F4 +#define GL_DSDT_NV 0x86F5 +#define GL_DSDT_MAG_NV 0x86F6 +#define GL_DSDT_MAG_VIB_NV 0x86F7 +#define GL_HILO16_NV 0x86F8 +#define GL_SIGNED_HILO_NV 0x86F9 +#define GL_SIGNED_HILO16_NV 0x86FA +#define GL_SIGNED_RGBA_NV 0x86FB +#define GL_SIGNED_RGBA8_NV 0x86FC +#define GL_SIGNED_RGB_NV 0x86FE +#define GL_SIGNED_RGB8_NV 0x86FF +#define GL_SIGNED_LUMINANCE_NV 0x8701 +#define GL_SIGNED_LUMINANCE8_NV 0x8702 +#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 +#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 +#define GL_SIGNED_ALPHA_NV 0x8705 +#define GL_SIGNED_ALPHA8_NV 0x8706 +#define GL_SIGNED_INTENSITY_NV 0x8707 +#define GL_SIGNED_INTENSITY8_NV 0x8708 +#define GL_DSDT8_NV 0x8709 +#define GL_DSDT8_MAG8_NV 0x870A +#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B +#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C +#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D +#define GL_HI_SCALE_NV 0x870E +#define GL_LO_SCALE_NV 0x870F +#define GL_DS_SCALE_NV 0x8710 +#define GL_DT_SCALE_NV 0x8711 +#define GL_MAGNITUDE_SCALE_NV 0x8712 +#define GL_VIBRANCE_SCALE_NV 0x8713 +#define GL_HI_BIAS_NV 0x8714 +#define GL_LO_BIAS_NV 0x8715 +#define GL_DS_BIAS_NV 0x8716 +#define GL_DT_BIAS_NV 0x8717 +#define GL_MAGNITUDE_BIAS_NV 0x8718 +#define GL_VIBRANCE_BIAS_NV 0x8719 +#define GL_TEXTURE_BORDER_VALUES_NV 0x871A +#define GL_TEXTURE_HI_SIZE_NV 0x871B +#define GL_TEXTURE_LO_SIZE_NV 0x871C +#define GL_TEXTURE_DS_SIZE_NV 0x871D +#define GL_TEXTURE_DT_SIZE_NV 0x871E +#define GL_TEXTURE_MAG_SIZE_NV 0x871F + +#define GLEW_NV_texture_shader GLEW_GET_VAR(__GLEW_NV_texture_shader) + +#endif /* GL_NV_texture_shader */ + +/* ------------------------- GL_NV_texture_shader2 ------------------------- */ + +#ifndef GL_NV_texture_shader2 +#define GL_NV_texture_shader2 1 + +#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA +#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB +#define GL_DSDT_MAG_INTENSITY_NV 0x86DC +#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF +#define GL_HILO_NV 0x86F4 +#define GL_DSDT_NV 0x86F5 +#define GL_DSDT_MAG_NV 0x86F6 +#define GL_DSDT_MAG_VIB_NV 0x86F7 +#define GL_HILO16_NV 0x86F8 +#define GL_SIGNED_HILO_NV 0x86F9 +#define GL_SIGNED_HILO16_NV 0x86FA +#define GL_SIGNED_RGBA_NV 0x86FB +#define GL_SIGNED_RGBA8_NV 0x86FC +#define GL_SIGNED_RGB_NV 0x86FE +#define GL_SIGNED_RGB8_NV 0x86FF +#define GL_SIGNED_LUMINANCE_NV 0x8701 +#define GL_SIGNED_LUMINANCE8_NV 0x8702 +#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 +#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 +#define GL_SIGNED_ALPHA_NV 0x8705 +#define GL_SIGNED_ALPHA8_NV 0x8706 +#define GL_SIGNED_INTENSITY_NV 0x8707 +#define GL_SIGNED_INTENSITY8_NV 0x8708 +#define GL_DSDT8_NV 0x8709 +#define GL_DSDT8_MAG8_NV 0x870A +#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B +#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C +#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D + +#define GLEW_NV_texture_shader2 GLEW_GET_VAR(__GLEW_NV_texture_shader2) + +#endif /* GL_NV_texture_shader2 */ + +/* ------------------------- GL_NV_texture_shader3 ------------------------- */ + +#ifndef GL_NV_texture_shader3 +#define GL_NV_texture_shader3 1 + +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 +#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 +#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 +#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 +#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 +#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A +#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B +#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C +#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D +#define GL_HILO8_NV 0x885E +#define GL_SIGNED_HILO8_NV 0x885F +#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 + +#define GLEW_NV_texture_shader3 GLEW_GET_VAR(__GLEW_NV_texture_shader3) + +#endif /* GL_NV_texture_shader3 */ + +/* ------------------------ GL_NV_timeline_semaphore ----------------------- */ + +#ifndef GL_NV_timeline_semaphore +#define GL_NV_timeline_semaphore 1 + +#define GL_TIMELINE_SEMAPHORE_VALUE_NV 0x9595 +#define GL_SEMAPHORE_TYPE_NV 0x95B3 +#define GL_SEMAPHORE_TYPE_BINARY_NV 0x95B4 +#define GL_SEMAPHORE_TYPE_TIMELINE_NV 0x95B5 +#define GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV 0x95B6 + +typedef void (GLAPIENTRY * PFNGLCREATESEMAPHORESNVPROC) (GLsizei n, GLuint* semaphores); +typedef void (GLAPIENTRY * PFNGLGETSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, const GLint* params); + +#define glCreateSemaphoresNV GLEW_GET_FUN(__glewCreateSemaphoresNV) +#define glGetSemaphoreParameterivNV GLEW_GET_FUN(__glewGetSemaphoreParameterivNV) +#define glSemaphoreParameterivNV GLEW_GET_FUN(__glewSemaphoreParameterivNV) + +#define GLEW_NV_timeline_semaphore GLEW_GET_VAR(__GLEW_NV_timeline_semaphore) + +#endif /* GL_NV_timeline_semaphore */ + +/* ------------------------ GL_NV_transform_feedback ----------------------- */ + +#ifndef GL_NV_transform_feedback +#define GL_NV_transform_feedback 1 + +#define GL_BACK_PRIMARY_COLOR_NV 0x8C77 +#define GL_BACK_SECONDARY_COLOR_NV 0x8C78 +#define GL_TEXTURE_COORD_NV 0x8C79 +#define GL_CLIP_DISTANCE_NV 0x8C7A +#define GL_VERTEX_ID_NV 0x8C7B +#define GL_PRIMITIVE_ID_NV 0x8C7C +#define GL_GENERIC_ATTRIB_NV 0x8C7D +#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 +#define GL_ACTIVE_VARYINGS_NV 0x8C81 +#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 +#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 +#define GL_PRIMITIVES_GENERATED_NV 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 +#define GL_RASTERIZER_DISCARD_NV 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B +#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C +#define GL_SEPARATE_ATTRIBS_NV 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F + +typedef void (GLAPIENTRY * PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); +typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode); +typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKNVPROC) (void); +typedef void (GLAPIENTRY * PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location); +typedef GLint (GLAPIENTRY * PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); +typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode); +typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); + +#define glActiveVaryingNV GLEW_GET_FUN(__glewActiveVaryingNV) +#define glBeginTransformFeedbackNV GLEW_GET_FUN(__glewBeginTransformFeedbackNV) +#define glBindBufferBaseNV GLEW_GET_FUN(__glewBindBufferBaseNV) +#define glBindBufferOffsetNV GLEW_GET_FUN(__glewBindBufferOffsetNV) +#define glBindBufferRangeNV GLEW_GET_FUN(__glewBindBufferRangeNV) +#define glEndTransformFeedbackNV GLEW_GET_FUN(__glewEndTransformFeedbackNV) +#define glGetActiveVaryingNV GLEW_GET_FUN(__glewGetActiveVaryingNV) +#define glGetTransformFeedbackVaryingNV GLEW_GET_FUN(__glewGetTransformFeedbackVaryingNV) +#define glGetVaryingLocationNV GLEW_GET_FUN(__glewGetVaryingLocationNV) +#define glTransformFeedbackAttribsNV GLEW_GET_FUN(__glewTransformFeedbackAttribsNV) +#define glTransformFeedbackVaryingsNV GLEW_GET_FUN(__glewTransformFeedbackVaryingsNV) + +#define GLEW_NV_transform_feedback GLEW_GET_VAR(__GLEW_NV_transform_feedback) + +#endif /* GL_NV_transform_feedback */ + +/* ----------------------- GL_NV_transform_feedback2 ----------------------- */ + +#ifndef GL_NV_transform_feedback2 +#define GL_NV_transform_feedback2 1 + +#define GL_TRANSFORM_FEEDBACK_NV 0x8E22 +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23 +#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24 +#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25 + +typedef void (GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id); +typedef void (GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint* ids); +typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id); +typedef void (GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint* ids); +typedef GLboolean (GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void); +typedef void (GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void); + +#define glBindTransformFeedbackNV GLEW_GET_FUN(__glewBindTransformFeedbackNV) +#define glDeleteTransformFeedbacksNV GLEW_GET_FUN(__glewDeleteTransformFeedbacksNV) +#define glDrawTransformFeedbackNV GLEW_GET_FUN(__glewDrawTransformFeedbackNV) +#define glGenTransformFeedbacksNV GLEW_GET_FUN(__glewGenTransformFeedbacksNV) +#define glIsTransformFeedbackNV GLEW_GET_FUN(__glewIsTransformFeedbackNV) +#define glPauseTransformFeedbackNV GLEW_GET_FUN(__glewPauseTransformFeedbackNV) +#define glResumeTransformFeedbackNV GLEW_GET_FUN(__glewResumeTransformFeedbackNV) + +#define GLEW_NV_transform_feedback2 GLEW_GET_VAR(__GLEW_NV_transform_feedback2) + +#endif /* GL_NV_transform_feedback2 */ + +/* ------------------- GL_NV_uniform_buffer_std430_layout ------------------ */ + +#ifndef GL_NV_uniform_buffer_std430_layout +#define GL_NV_uniform_buffer_std430_layout 1 + +#define GLEW_NV_uniform_buffer_std430_layout GLEW_GET_VAR(__GLEW_NV_uniform_buffer_std430_layout) + +#endif /* GL_NV_uniform_buffer_std430_layout */ + +/* ------------------ GL_NV_uniform_buffer_unified_memory ------------------ */ + +#ifndef GL_NV_uniform_buffer_unified_memory +#define GL_NV_uniform_buffer_unified_memory 1 + +#define GL_UNIFORM_BUFFER_UNIFIED_NV 0x936E +#define GL_UNIFORM_BUFFER_ADDRESS_NV 0x936F +#define GL_UNIFORM_BUFFER_LENGTH_NV 0x9370 + +#define GLEW_NV_uniform_buffer_unified_memory GLEW_GET_VAR(__GLEW_NV_uniform_buffer_unified_memory) + +#endif /* GL_NV_uniform_buffer_unified_memory */ + +/* -------------------------- GL_NV_vdpau_interop -------------------------- */ + +#ifndef GL_NV_vdpau_interop +#define GL_NV_vdpau_interop 1 + +#define GL_SURFACE_STATE_NV 0x86EB +#define GL_SURFACE_REGISTERED_NV 0x86FD +#define GL_SURFACE_MAPPED_NV 0x8700 +#define GL_WRITE_DISCARD_NV 0x88BE + +typedef GLintptr GLvdpauSurfaceNV; + +typedef void (GLAPIENTRY * PFNGLVDPAUFININVPROC) (void); +typedef void (GLAPIENTRY * PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei* length, GLint *values); +typedef void (GLAPIENTRY * PFNGLVDPAUINITNVPROC) (const void* vdpDevice, const void*getProcAddress); +typedef void (GLAPIENTRY * PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface); +typedef void (GLAPIENTRY * PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV* surfaces); +typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); +typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); +typedef void (GLAPIENTRY * PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access); +typedef void (GLAPIENTRY * PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, const GLvdpauSurfaceNV* surfaces); +typedef void (GLAPIENTRY * PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface); + +#define glVDPAUFiniNV GLEW_GET_FUN(__glewVDPAUFiniNV) +#define glVDPAUGetSurfaceivNV GLEW_GET_FUN(__glewVDPAUGetSurfaceivNV) +#define glVDPAUInitNV GLEW_GET_FUN(__glewVDPAUInitNV) +#define glVDPAUIsSurfaceNV GLEW_GET_FUN(__glewVDPAUIsSurfaceNV) +#define glVDPAUMapSurfacesNV GLEW_GET_FUN(__glewVDPAUMapSurfacesNV) +#define glVDPAURegisterOutputSurfaceNV GLEW_GET_FUN(__glewVDPAURegisterOutputSurfaceNV) +#define glVDPAURegisterVideoSurfaceNV GLEW_GET_FUN(__glewVDPAURegisterVideoSurfaceNV) +#define glVDPAUSurfaceAccessNV GLEW_GET_FUN(__glewVDPAUSurfaceAccessNV) +#define glVDPAUUnmapSurfacesNV GLEW_GET_FUN(__glewVDPAUUnmapSurfacesNV) +#define glVDPAUUnregisterSurfaceNV GLEW_GET_FUN(__glewVDPAUUnregisterSurfaceNV) + +#define GLEW_NV_vdpau_interop GLEW_GET_VAR(__GLEW_NV_vdpau_interop) + +#endif /* GL_NV_vdpau_interop */ + +/* -------------------------- GL_NV_vdpau_interop2 ------------------------- */ + +#ifndef GL_NV_vdpau_interop2 +#define GL_NV_vdpau_interop2 1 + +typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames, GLboolean isFrameStructure); + +#define glVDPAURegisterVideoSurfaceWithPictureStructureNV GLEW_GET_FUN(__glewVDPAURegisterVideoSurfaceWithPictureStructureNV) + +#define GLEW_NV_vdpau_interop2 GLEW_GET_VAR(__GLEW_NV_vdpau_interop2) + +#endif /* GL_NV_vdpau_interop2 */ + +/* ------------------------ GL_NV_vertex_array_range ----------------------- */ + +#ifndef GL_NV_vertex_array_range +#define GL_NV_vertex_array_range 1 + +#define GL_VERTEX_ARRAY_RANGE_NV 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E +#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F +#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 +#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 + +typedef void (GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, void *pointer); + +#define glFlushVertexArrayRangeNV GLEW_GET_FUN(__glewFlushVertexArrayRangeNV) +#define glVertexArrayRangeNV GLEW_GET_FUN(__glewVertexArrayRangeNV) + +#define GLEW_NV_vertex_array_range GLEW_GET_VAR(__GLEW_NV_vertex_array_range) + +#endif /* GL_NV_vertex_array_range */ + +/* ----------------------- GL_NV_vertex_array_range2 ----------------------- */ + +#ifndef GL_NV_vertex_array_range2 +#define GL_NV_vertex_array_range2 1 + +#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 + +#define GLEW_NV_vertex_array_range2 GLEW_GET_VAR(__GLEW_NV_vertex_array_range2) + +#endif /* GL_NV_vertex_array_range2 */ + +/* ------------------- GL_NV_vertex_attrib_integer_64bit ------------------- */ + +#ifndef GL_NV_vertex_attrib_integer_64bit +#define GL_NV_vertex_attrib_integer_64bit 1 + +#define GL_INT64_NV 0x140E +#define GL_UNSIGNED_INT64_NV 0x140F + +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT* params); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); + +#define glGetVertexAttribLi64vNV GLEW_GET_FUN(__glewGetVertexAttribLi64vNV) +#define glGetVertexAttribLui64vNV GLEW_GET_FUN(__glewGetVertexAttribLui64vNV) +#define glVertexAttribL1i64NV GLEW_GET_FUN(__glewVertexAttribL1i64NV) +#define glVertexAttribL1i64vNV GLEW_GET_FUN(__glewVertexAttribL1i64vNV) +#define glVertexAttribL1ui64NV GLEW_GET_FUN(__glewVertexAttribL1ui64NV) +#define glVertexAttribL1ui64vNV GLEW_GET_FUN(__glewVertexAttribL1ui64vNV) +#define glVertexAttribL2i64NV GLEW_GET_FUN(__glewVertexAttribL2i64NV) +#define glVertexAttribL2i64vNV GLEW_GET_FUN(__glewVertexAttribL2i64vNV) +#define glVertexAttribL2ui64NV GLEW_GET_FUN(__glewVertexAttribL2ui64NV) +#define glVertexAttribL2ui64vNV GLEW_GET_FUN(__glewVertexAttribL2ui64vNV) +#define glVertexAttribL3i64NV GLEW_GET_FUN(__glewVertexAttribL3i64NV) +#define glVertexAttribL3i64vNV GLEW_GET_FUN(__glewVertexAttribL3i64vNV) +#define glVertexAttribL3ui64NV GLEW_GET_FUN(__glewVertexAttribL3ui64NV) +#define glVertexAttribL3ui64vNV GLEW_GET_FUN(__glewVertexAttribL3ui64vNV) +#define glVertexAttribL4i64NV GLEW_GET_FUN(__glewVertexAttribL4i64NV) +#define glVertexAttribL4i64vNV GLEW_GET_FUN(__glewVertexAttribL4i64vNV) +#define glVertexAttribL4ui64NV GLEW_GET_FUN(__glewVertexAttribL4ui64NV) +#define glVertexAttribL4ui64vNV GLEW_GET_FUN(__glewVertexAttribL4ui64vNV) +#define glVertexAttribLFormatNV GLEW_GET_FUN(__glewVertexAttribLFormatNV) + +#define GLEW_NV_vertex_attrib_integer_64bit GLEW_GET_VAR(__GLEW_NV_vertex_attrib_integer_64bit) + +#endif /* GL_NV_vertex_attrib_integer_64bit */ + +/* ------------------- GL_NV_vertex_buffer_unified_memory ------------------ */ + +#ifndef GL_NV_vertex_buffer_unified_memory +#define GL_NV_vertex_buffer_unified_memory 1 + +#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E +#define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F +#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20 +#define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21 +#define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22 +#define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23 +#define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24 +#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25 +#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26 +#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27 +#define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28 +#define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29 +#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A +#define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B +#define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C +#define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D +#define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E +#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F +#define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30 +#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31 +#define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32 +#define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33 +#define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40 +#define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41 +#define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42 + +typedef void (GLAPIENTRY * PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); +typedef void (GLAPIENTRY * PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride); +typedef void (GLAPIENTRY * PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT result[]); +typedef void (GLAPIENTRY * PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); + +#define glBufferAddressRangeNV GLEW_GET_FUN(__glewBufferAddressRangeNV) +#define glColorFormatNV GLEW_GET_FUN(__glewColorFormatNV) +#define glEdgeFlagFormatNV GLEW_GET_FUN(__glewEdgeFlagFormatNV) +#define glFogCoordFormatNV GLEW_GET_FUN(__glewFogCoordFormatNV) +#define glGetIntegerui64i_vNV GLEW_GET_FUN(__glewGetIntegerui64i_vNV) +#define glIndexFormatNV GLEW_GET_FUN(__glewIndexFormatNV) +#define glNormalFormatNV GLEW_GET_FUN(__glewNormalFormatNV) +#define glSecondaryColorFormatNV GLEW_GET_FUN(__glewSecondaryColorFormatNV) +#define glTexCoordFormatNV GLEW_GET_FUN(__glewTexCoordFormatNV) +#define glVertexAttribFormatNV GLEW_GET_FUN(__glewVertexAttribFormatNV) +#define glVertexAttribIFormatNV GLEW_GET_FUN(__glewVertexAttribIFormatNV) +#define glVertexFormatNV GLEW_GET_FUN(__glewVertexFormatNV) + +#define GLEW_NV_vertex_buffer_unified_memory GLEW_GET_VAR(__GLEW_NV_vertex_buffer_unified_memory) + +#endif /* GL_NV_vertex_buffer_unified_memory */ + +/* -------------------------- GL_NV_vertex_program ------------------------- */ + +#ifndef GL_NV_vertex_program +#define GL_NV_vertex_program 1 + +#define GL_VERTEX_PROGRAM_NV 0x8620 +#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 +#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 +#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 +#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 +#define GL_CURRENT_ATTRIB_NV 0x8626 +#define GL_PROGRAM_LENGTH_NV 0x8627 +#define GL_PROGRAM_STRING_NV 0x8628 +#define GL_MODELVIEW_PROJECTION_NV 0x8629 +#define GL_IDENTITY_NV 0x862A +#define GL_INVERSE_NV 0x862B +#define GL_TRANSPOSE_NV 0x862C +#define GL_INVERSE_TRANSPOSE_NV 0x862D +#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E +#define GL_MAX_TRACK_MATRICES_NV 0x862F +#define GL_MATRIX0_NV 0x8630 +#define GL_MATRIX1_NV 0x8631 +#define GL_MATRIX2_NV 0x8632 +#define GL_MATRIX3_NV 0x8633 +#define GL_MATRIX4_NV 0x8634 +#define GL_MATRIX5_NV 0x8635 +#define GL_MATRIX6_NV 0x8636 +#define GL_MATRIX7_NV 0x8637 +#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 +#define GL_CURRENT_MATRIX_NV 0x8641 +#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 +#define GL_PROGRAM_PARAMETER_NV 0x8644 +#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 +#define GL_PROGRAM_TARGET_NV 0x8646 +#define GL_PROGRAM_RESIDENT_NV 0x8647 +#define GL_TRACK_MATRIX_NV 0x8648 +#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 +#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A +#define GL_PROGRAM_ERROR_POSITION_NV 0x864B +#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 +#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 +#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 +#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 +#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 +#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 +#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 +#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 +#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 +#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 +#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A +#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B +#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C +#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D +#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E +#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F +#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 +#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 +#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 +#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 +#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 +#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 +#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 +#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 +#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 +#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 +#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A +#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B +#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C +#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D +#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E +#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F +#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 +#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 +#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 +#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 +#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 +#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 +#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 +#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 +#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 +#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 +#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A +#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B +#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C +#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D +#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E +#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F + +typedef GLboolean (GLAPIENTRY * PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint* ids, GLboolean *residences); +typedef void (GLAPIENTRY * PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); +typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint* ids); +typedef void (GLAPIENTRY * PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint* ids); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte* program); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, void** pointer); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMNVPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte* program); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLdouble* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, GLuint* ids); +typedef void (GLAPIENTRY * PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei n, const GLubyte* v); + +#define glAreProgramsResidentNV GLEW_GET_FUN(__glewAreProgramsResidentNV) +#define glBindProgramNV GLEW_GET_FUN(__glewBindProgramNV) +#define glDeleteProgramsNV GLEW_GET_FUN(__glewDeleteProgramsNV) +#define glExecuteProgramNV GLEW_GET_FUN(__glewExecuteProgramNV) +#define glGenProgramsNV GLEW_GET_FUN(__glewGenProgramsNV) +#define glGetProgramParameterdvNV GLEW_GET_FUN(__glewGetProgramParameterdvNV) +#define glGetProgramParameterfvNV GLEW_GET_FUN(__glewGetProgramParameterfvNV) +#define glGetProgramStringNV GLEW_GET_FUN(__glewGetProgramStringNV) +#define glGetProgramivNV GLEW_GET_FUN(__glewGetProgramivNV) +#define glGetTrackMatrixivNV GLEW_GET_FUN(__glewGetTrackMatrixivNV) +#define glGetVertexAttribPointervNV GLEW_GET_FUN(__glewGetVertexAttribPointervNV) +#define glGetVertexAttribdvNV GLEW_GET_FUN(__glewGetVertexAttribdvNV) +#define glGetVertexAttribfvNV GLEW_GET_FUN(__glewGetVertexAttribfvNV) +#define glGetVertexAttribivNV GLEW_GET_FUN(__glewGetVertexAttribivNV) +#define glIsProgramNV GLEW_GET_FUN(__glewIsProgramNV) +#define glLoadProgramNV GLEW_GET_FUN(__glewLoadProgramNV) +#define glProgramParameter4dNV GLEW_GET_FUN(__glewProgramParameter4dNV) +#define glProgramParameter4dvNV GLEW_GET_FUN(__glewProgramParameter4dvNV) +#define glProgramParameter4fNV GLEW_GET_FUN(__glewProgramParameter4fNV) +#define glProgramParameter4fvNV GLEW_GET_FUN(__glewProgramParameter4fvNV) +#define glProgramParameters4dvNV GLEW_GET_FUN(__glewProgramParameters4dvNV) +#define glProgramParameters4fvNV GLEW_GET_FUN(__glewProgramParameters4fvNV) +#define glRequestResidentProgramsNV GLEW_GET_FUN(__glewRequestResidentProgramsNV) +#define glTrackMatrixNV GLEW_GET_FUN(__glewTrackMatrixNV) +#define glVertexAttrib1dNV GLEW_GET_FUN(__glewVertexAttrib1dNV) +#define glVertexAttrib1dvNV GLEW_GET_FUN(__glewVertexAttrib1dvNV) +#define glVertexAttrib1fNV GLEW_GET_FUN(__glewVertexAttrib1fNV) +#define glVertexAttrib1fvNV GLEW_GET_FUN(__glewVertexAttrib1fvNV) +#define glVertexAttrib1sNV GLEW_GET_FUN(__glewVertexAttrib1sNV) +#define glVertexAttrib1svNV GLEW_GET_FUN(__glewVertexAttrib1svNV) +#define glVertexAttrib2dNV GLEW_GET_FUN(__glewVertexAttrib2dNV) +#define glVertexAttrib2dvNV GLEW_GET_FUN(__glewVertexAttrib2dvNV) +#define glVertexAttrib2fNV GLEW_GET_FUN(__glewVertexAttrib2fNV) +#define glVertexAttrib2fvNV GLEW_GET_FUN(__glewVertexAttrib2fvNV) +#define glVertexAttrib2sNV GLEW_GET_FUN(__glewVertexAttrib2sNV) +#define glVertexAttrib2svNV GLEW_GET_FUN(__glewVertexAttrib2svNV) +#define glVertexAttrib3dNV GLEW_GET_FUN(__glewVertexAttrib3dNV) +#define glVertexAttrib3dvNV GLEW_GET_FUN(__glewVertexAttrib3dvNV) +#define glVertexAttrib3fNV GLEW_GET_FUN(__glewVertexAttrib3fNV) +#define glVertexAttrib3fvNV GLEW_GET_FUN(__glewVertexAttrib3fvNV) +#define glVertexAttrib3sNV GLEW_GET_FUN(__glewVertexAttrib3sNV) +#define glVertexAttrib3svNV GLEW_GET_FUN(__glewVertexAttrib3svNV) +#define glVertexAttrib4dNV GLEW_GET_FUN(__glewVertexAttrib4dNV) +#define glVertexAttrib4dvNV GLEW_GET_FUN(__glewVertexAttrib4dvNV) +#define glVertexAttrib4fNV GLEW_GET_FUN(__glewVertexAttrib4fNV) +#define glVertexAttrib4fvNV GLEW_GET_FUN(__glewVertexAttrib4fvNV) +#define glVertexAttrib4sNV GLEW_GET_FUN(__glewVertexAttrib4sNV) +#define glVertexAttrib4svNV GLEW_GET_FUN(__glewVertexAttrib4svNV) +#define glVertexAttrib4ubNV GLEW_GET_FUN(__glewVertexAttrib4ubNV) +#define glVertexAttrib4ubvNV GLEW_GET_FUN(__glewVertexAttrib4ubvNV) +#define glVertexAttribPointerNV GLEW_GET_FUN(__glewVertexAttribPointerNV) +#define glVertexAttribs1dvNV GLEW_GET_FUN(__glewVertexAttribs1dvNV) +#define glVertexAttribs1fvNV GLEW_GET_FUN(__glewVertexAttribs1fvNV) +#define glVertexAttribs1svNV GLEW_GET_FUN(__glewVertexAttribs1svNV) +#define glVertexAttribs2dvNV GLEW_GET_FUN(__glewVertexAttribs2dvNV) +#define glVertexAttribs2fvNV GLEW_GET_FUN(__glewVertexAttribs2fvNV) +#define glVertexAttribs2svNV GLEW_GET_FUN(__glewVertexAttribs2svNV) +#define glVertexAttribs3dvNV GLEW_GET_FUN(__glewVertexAttribs3dvNV) +#define glVertexAttribs3fvNV GLEW_GET_FUN(__glewVertexAttribs3fvNV) +#define glVertexAttribs3svNV GLEW_GET_FUN(__glewVertexAttribs3svNV) +#define glVertexAttribs4dvNV GLEW_GET_FUN(__glewVertexAttribs4dvNV) +#define glVertexAttribs4fvNV GLEW_GET_FUN(__glewVertexAttribs4fvNV) +#define glVertexAttribs4svNV GLEW_GET_FUN(__glewVertexAttribs4svNV) +#define glVertexAttribs4ubvNV GLEW_GET_FUN(__glewVertexAttribs4ubvNV) + +#define GLEW_NV_vertex_program GLEW_GET_VAR(__GLEW_NV_vertex_program) + +#endif /* GL_NV_vertex_program */ + +/* ------------------------ GL_NV_vertex_program1_1 ------------------------ */ + +#ifndef GL_NV_vertex_program1_1 +#define GL_NV_vertex_program1_1 1 + +#define GLEW_NV_vertex_program1_1 GLEW_GET_VAR(__GLEW_NV_vertex_program1_1) + +#endif /* GL_NV_vertex_program1_1 */ + +/* ------------------------- GL_NV_vertex_program2 ------------------------- */ + +#ifndef GL_NV_vertex_program2 +#define GL_NV_vertex_program2 1 + +#define GLEW_NV_vertex_program2 GLEW_GET_VAR(__GLEW_NV_vertex_program2) + +#endif /* GL_NV_vertex_program2 */ + +/* ---------------------- GL_NV_vertex_program2_option --------------------- */ + +#ifndef GL_NV_vertex_program2_option +#define GL_NV_vertex_program2_option 1 + +#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 +#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 + +#define GLEW_NV_vertex_program2_option GLEW_GET_VAR(__GLEW_NV_vertex_program2_option) + +#endif /* GL_NV_vertex_program2_option */ + +/* ------------------------- GL_NV_vertex_program3 ------------------------- */ + +#ifndef GL_NV_vertex_program3 +#define GL_NV_vertex_program3 1 + +#define MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C + +#define GLEW_NV_vertex_program3 GLEW_GET_VAR(__GLEW_NV_vertex_program3) + +#endif /* GL_NV_vertex_program3 */ + +/* ------------------------- GL_NV_vertex_program4 ------------------------- */ + +#ifndef GL_NV_vertex_program4 +#define GL_NV_vertex_program4 1 + +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD + +#define GLEW_NV_vertex_program4 GLEW_GET_VAR(__GLEW_NV_vertex_program4) + +#endif /* GL_NV_vertex_program4 */ + +/* -------------------------- GL_NV_video_capture -------------------------- */ + +#ifndef GL_NV_video_capture +#define GL_NV_video_capture 1 + +#define GL_VIDEO_BUFFER_NV 0x9020 +#define GL_VIDEO_BUFFER_BINDING_NV 0x9021 +#define GL_FIELD_UPPER_NV 0x9022 +#define GL_FIELD_LOWER_NV 0x9023 +#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024 +#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025 +#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026 +#define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027 +#define GL_VIDEO_BUFFER_PITCH_NV 0x9028 +#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029 +#define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A +#define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B +#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C +#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D +#define GL_PARTIAL_SUCCESS_NV 0x902E +#define GL_SUCCESS_NV 0x902F +#define GL_FAILURE_NV 0x9030 +#define GL_YCBYCR8_422_NV 0x9031 +#define GL_YCBAYCR8A_4224_NV 0x9032 +#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033 +#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034 +#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035 +#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036 +#define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037 +#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038 +#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039 +#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A +#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B +#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C + +typedef void (GLAPIENTRY * PFNGLBEGINVIDEOCAPTURENVPROC) (GLuint video_capture_slot); +typedef void (GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); +typedef void (GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); +typedef void (GLAPIENTRY * PFNGLENDVIDEOCAPTURENVPROC) (GLuint video_capture_slot); +typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTUREIVNVPROC) (GLuint video_capture_slot, GLenum pname, GLint* params); +typedef GLenum (GLAPIENTRY * PFNGLVIDEOCAPTURENVPROC) (GLuint video_capture_slot, GLuint* sequence_num, GLuint64EXT *capture_time); +typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble* params); +typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint* params); + +#define glBeginVideoCaptureNV GLEW_GET_FUN(__glewBeginVideoCaptureNV) +#define glBindVideoCaptureStreamBufferNV GLEW_GET_FUN(__glewBindVideoCaptureStreamBufferNV) +#define glBindVideoCaptureStreamTextureNV GLEW_GET_FUN(__glewBindVideoCaptureStreamTextureNV) +#define glEndVideoCaptureNV GLEW_GET_FUN(__glewEndVideoCaptureNV) +#define glGetVideoCaptureStreamdvNV GLEW_GET_FUN(__glewGetVideoCaptureStreamdvNV) +#define glGetVideoCaptureStreamfvNV GLEW_GET_FUN(__glewGetVideoCaptureStreamfvNV) +#define glGetVideoCaptureStreamivNV GLEW_GET_FUN(__glewGetVideoCaptureStreamivNV) +#define glGetVideoCaptureivNV GLEW_GET_FUN(__glewGetVideoCaptureivNV) +#define glVideoCaptureNV GLEW_GET_FUN(__glewVideoCaptureNV) +#define glVideoCaptureStreamParameterdvNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterdvNV) +#define glVideoCaptureStreamParameterfvNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterfvNV) +#define glVideoCaptureStreamParameterivNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterivNV) + +#define GLEW_NV_video_capture GLEW_GET_VAR(__GLEW_NV_video_capture) + +#endif /* GL_NV_video_capture */ + +/* -------------------------- GL_NV_viewport_array ------------------------- */ + +#ifndef GL_NV_viewport_array +#define GL_NV_viewport_array 1 + +#define GL_DEPTH_RANGE 0x0B70 +#define GL_VIEWPORT 0x0BA2 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_MAX_VIEWPORTS_NV 0x825B +#define GL_VIEWPORT_SUBPIXEL_BITS_NV 0x825C +#define GL_VIEWPORT_BOUNDS_RANGE_NV 0x825D +#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV 0x825F + +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEARRAYFVNVPROC) (GLuint first, GLsizei count, const GLfloat * v); +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEINDEXEDFNVPROC) (GLuint index, GLfloat n, GLfloat f); +typedef void (GLAPIENTRY * PFNGLDISABLEINVPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEINVPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLGETFLOATI_VNVPROC) (GLenum target, GLuint index, GLfloat* data); +typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDINVPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLSCISSORARRAYVNVPROC) (GLuint first, GLsizei count, const GLint * v); +typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDNVPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDVNVPROC) (GLuint index, const GLint * v); +typedef void (GLAPIENTRY * PFNGLVIEWPORTARRAYVNVPROC) (GLuint first, GLsizei count, const GLfloat * v); +typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFVNVPROC) (GLuint index, const GLfloat * v); + +#define glDepthRangeArrayfvNV GLEW_GET_FUN(__glewDepthRangeArrayfvNV) +#define glDepthRangeIndexedfNV GLEW_GET_FUN(__glewDepthRangeIndexedfNV) +#define glDisableiNV GLEW_GET_FUN(__glewDisableiNV) +#define glEnableiNV GLEW_GET_FUN(__glewEnableiNV) +#define glGetFloati_vNV GLEW_GET_FUN(__glewGetFloati_vNV) +#define glIsEnablediNV GLEW_GET_FUN(__glewIsEnablediNV) +#define glScissorArrayvNV GLEW_GET_FUN(__glewScissorArrayvNV) +#define glScissorIndexedNV GLEW_GET_FUN(__glewScissorIndexedNV) +#define glScissorIndexedvNV GLEW_GET_FUN(__glewScissorIndexedvNV) +#define glViewportArrayvNV GLEW_GET_FUN(__glewViewportArrayvNV) +#define glViewportIndexedfNV GLEW_GET_FUN(__glewViewportIndexedfNV) +#define glViewportIndexedfvNV GLEW_GET_FUN(__glewViewportIndexedfvNV) + +#define GLEW_NV_viewport_array GLEW_GET_VAR(__GLEW_NV_viewport_array) + +#endif /* GL_NV_viewport_array */ + +/* ------------------------- GL_NV_viewport_array2 ------------------------- */ + +#ifndef GL_NV_viewport_array2 +#define GL_NV_viewport_array2 1 + +#define GLEW_NV_viewport_array2 GLEW_GET_VAR(__GLEW_NV_viewport_array2) + +#endif /* GL_NV_viewport_array2 */ + +/* ------------------------- GL_NV_viewport_swizzle ------------------------ */ + +#ifndef GL_NV_viewport_swizzle +#define GL_NV_viewport_swizzle 1 + +#define GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV 0x9350 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV 0x9351 +#define GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV 0x9352 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV 0x9353 +#define GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV 0x9354 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV 0x9355 +#define GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV 0x9356 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV 0x9357 +#define GL_VIEWPORT_SWIZZLE_X_NV 0x9358 +#define GL_VIEWPORT_SWIZZLE_Y_NV 0x9359 +#define GL_VIEWPORT_SWIZZLE_Z_NV 0x935A +#define GL_VIEWPORT_SWIZZLE_W_NV 0x935B + +typedef void (GLAPIENTRY * PFNGLVIEWPORTSWIZZLENVPROC) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); + +#define glViewportSwizzleNV GLEW_GET_FUN(__glewViewportSwizzleNV) + +#define GLEW_NV_viewport_swizzle GLEW_GET_VAR(__GLEW_NV_viewport_swizzle) + +#endif /* GL_NV_viewport_swizzle */ + +/* ---------------------------- GL_OES_EGL_image --------------------------- */ + +#ifndef GL_OES_EGL_image +#define GL_OES_EGL_image 1 + +typedef void (GLAPIENTRY * PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); +typedef void (GLAPIENTRY * PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); + +#define glEGLImageTargetRenderbufferStorageOES GLEW_GET_FUN(__glewEGLImageTargetRenderbufferStorageOES) +#define glEGLImageTargetTexture2DOES GLEW_GET_FUN(__glewEGLImageTargetTexture2DOES) + +#define GLEW_OES_EGL_image GLEW_GET_VAR(__GLEW_OES_EGL_image) + +#endif /* GL_OES_EGL_image */ + +/* ----------------------- GL_OES_EGL_image_external ----------------------- */ + +#ifndef GL_OES_EGL_image_external +#define GL_OES_EGL_image_external 1 + +#define GL_TEXTURE_EXTERNAL_OES 0x8D65 +#define GL_SAMPLER_EXTERNAL_OES 0x8D66 +#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67 +#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68 + +#define GLEW_OES_EGL_image_external GLEW_GET_VAR(__GLEW_OES_EGL_image_external) + +#endif /* GL_OES_EGL_image_external */ + +/* -------------------- GL_OES_EGL_image_external_essl3 -------------------- */ + +#ifndef GL_OES_EGL_image_external_essl3 +#define GL_OES_EGL_image_external_essl3 1 + +#define GLEW_OES_EGL_image_external_essl3 GLEW_GET_VAR(__GLEW_OES_EGL_image_external_essl3) + +#endif /* GL_OES_EGL_image_external_essl3 */ + +/* --------------------- GL_OES_blend_equation_separate -------------------- */ + +#ifndef GL_OES_blend_equation_separate +#define GL_OES_blend_equation_separate 1 + +#define GL_BLEND_EQUATION_RGB_OES 0x8009 +#define GL_BLEND_EQUATION_ALPHA_OES 0x883D + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEOESPROC) (GLenum modeRGB, GLenum modeAlpha); + +#define glBlendEquationSeparateOES GLEW_GET_FUN(__glewBlendEquationSeparateOES) + +#define GLEW_OES_blend_equation_separate GLEW_GET_VAR(__GLEW_OES_blend_equation_separate) + +#endif /* GL_OES_blend_equation_separate */ + +/* ----------------------- GL_OES_blend_func_separate ---------------------- */ + +#ifndef GL_OES_blend_func_separate +#define GL_OES_blend_func_separate 1 + +#define GL_BLEND_DST_RGB_OES 0x80C8 +#define GL_BLEND_SRC_RGB_OES 0x80C9 +#define GL_BLEND_DST_ALPHA_OES 0x80CA +#define GL_BLEND_SRC_ALPHA_OES 0x80CB + +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEOESPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); + +#define glBlendFuncSeparateOES GLEW_GET_FUN(__glewBlendFuncSeparateOES) + +#define GLEW_OES_blend_func_separate GLEW_GET_VAR(__GLEW_OES_blend_func_separate) + +#endif /* GL_OES_blend_func_separate */ + +/* ------------------------- GL_OES_blend_subtract ------------------------- */ + +#ifndef GL_OES_blend_subtract +#define GL_OES_blend_subtract 1 + +#define GL_FUNC_ADD_OES 0x8006 +#define GL_BLEND_EQUATION_OES 0x8009 +#define GL_FUNC_SUBTRACT_OES 0x800A +#define GL_FUNC_REVERSE_SUBTRACT_OES 0x800B + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONOESPROC) (GLenum mode); + +#define glBlendEquationOES GLEW_GET_FUN(__glewBlendEquationOES) + +#define GLEW_OES_blend_subtract GLEW_GET_VAR(__GLEW_OES_blend_subtract) + +#endif /* GL_OES_blend_subtract */ + +/* ------------------------ GL_OES_byte_coordinates ------------------------ */ + +#ifndef GL_OES_byte_coordinates +#define GL_OES_byte_coordinates 1 + +#define GLEW_OES_byte_coordinates GLEW_GET_VAR(__GLEW_OES_byte_coordinates) + +#endif /* GL_OES_byte_coordinates */ + +/* ------------------ GL_OES_compressed_ETC1_RGB8_texture ------------------ */ + +#ifndef GL_OES_compressed_ETC1_RGB8_texture +#define GL_OES_compressed_ETC1_RGB8_texture 1 + +#define GL_ETC1_RGB8_OES 0x8D64 + +#define GLEW_OES_compressed_ETC1_RGB8_texture GLEW_GET_VAR(__GLEW_OES_compressed_ETC1_RGB8_texture) + +#endif /* GL_OES_compressed_ETC1_RGB8_texture */ + +/* ------------------- GL_OES_compressed_paletted_texture ------------------ */ + +#ifndef GL_OES_compressed_paletted_texture +#define GL_OES_compressed_paletted_texture 1 + +#define GL_PALETTE4_RGB8_OES 0x8B90 +#define GL_PALETTE4_RGBA8_OES 0x8B91 +#define GL_PALETTE4_R5_G6_B5_OES 0x8B92 +#define GL_PALETTE4_RGBA4_OES 0x8B93 +#define GL_PALETTE4_RGB5_A1_OES 0x8B94 +#define GL_PALETTE8_RGB8_OES 0x8B95 +#define GL_PALETTE8_RGBA8_OES 0x8B96 +#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 +#define GL_PALETTE8_RGBA4_OES 0x8B98 +#define GL_PALETTE8_RGB5_A1_OES 0x8B99 + +#define GLEW_OES_compressed_paletted_texture GLEW_GET_VAR(__GLEW_OES_compressed_paletted_texture) + +#endif /* GL_OES_compressed_paletted_texture */ + +/* --------------------------- GL_OES_copy_image --------------------------- */ + +#ifndef GL_OES_copy_image +#define GL_OES_copy_image 1 + +typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATAOESPROC) (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); + +#define glCopyImageSubDataOES GLEW_GET_FUN(__glewCopyImageSubDataOES) + +#define GLEW_OES_copy_image GLEW_GET_VAR(__GLEW_OES_copy_image) + +#endif /* GL_OES_copy_image */ + +/* ----------------------------- GL_OES_depth24 ---------------------------- */ + +#ifndef GL_OES_depth24 +#define GL_OES_depth24 1 + +#define GL_DEPTH_COMPONENT24_OES 0x81A6 + +#define GLEW_OES_depth24 GLEW_GET_VAR(__GLEW_OES_depth24) + +#endif /* GL_OES_depth24 */ + +/* ----------------------------- GL_OES_depth32 ---------------------------- */ + +#ifndef GL_OES_depth32 +#define GL_OES_depth32 1 + +#define GL_DEPTH_COMPONENT32_OES 0x81A7 + +#define GLEW_OES_depth32 GLEW_GET_VAR(__GLEW_OES_depth32) + +#endif /* GL_OES_depth32 */ + +/* -------------------------- GL_OES_depth_texture ------------------------- */ + +#ifndef GL_OES_depth_texture +#define GL_OES_depth_texture 1 + +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_UNSIGNED_INT 0x1405 +#define GL_DEPTH_COMPONENT 0x1902 + +#define GLEW_OES_depth_texture GLEW_GET_VAR(__GLEW_OES_depth_texture) + +#endif /* GL_OES_depth_texture */ + +/* --------------------- GL_OES_depth_texture_cube_map --------------------- */ + +#ifndef GL_OES_depth_texture_cube_map +#define GL_OES_depth_texture_cube_map 1 + +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_UNSIGNED_INT 0x1405 +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_DEPTH_STENCIL_OES 0x84F9 +#define GL_DEPTH24_STENCIL8_OES 0x88F0 + +#define GLEW_OES_depth_texture_cube_map GLEW_GET_VAR(__GLEW_OES_depth_texture_cube_map) + +#endif /* GL_OES_depth_texture_cube_map */ + +/* ---------------------- GL_OES_draw_buffers_indexed ---------------------- */ + +#ifndef GL_OES_draw_buffers_indexed +#define GL_OES_draw_buffers_indexed 1 + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIOESPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIOESPROC) (GLuint buf, GLenum mode); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIOESPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCIOESPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (GLAPIENTRY * PFNGLCOLORMASKIOESPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (GLAPIENTRY * PFNGLDISABLEIOESPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEIOESPROC) (GLenum target, GLuint index); +typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIOESPROC) (GLenum target, GLuint index); + +#define glBlendEquationSeparateiOES GLEW_GET_FUN(__glewBlendEquationSeparateiOES) +#define glBlendEquationiOES GLEW_GET_FUN(__glewBlendEquationiOES) +#define glBlendFuncSeparateiOES GLEW_GET_FUN(__glewBlendFuncSeparateiOES) +#define glBlendFunciOES GLEW_GET_FUN(__glewBlendFunciOES) +#define glColorMaskiOES GLEW_GET_FUN(__glewColorMaskiOES) +#define glDisableiOES GLEW_GET_FUN(__glewDisableiOES) +#define glEnableiOES GLEW_GET_FUN(__glewEnableiOES) +#define glIsEnablediOES GLEW_GET_FUN(__glewIsEnablediOES) + +#define GLEW_OES_draw_buffers_indexed GLEW_GET_VAR(__GLEW_OES_draw_buffers_indexed) + +#endif /* GL_OES_draw_buffers_indexed */ + +/* -------------------------- GL_OES_draw_texture -------------------------- */ + +#ifndef GL_OES_draw_texture +#define GL_OES_draw_texture 1 + +#define GL_TEXTURE_CROP_RECT_OES 0x8B9D + +#define GLEW_OES_draw_texture GLEW_GET_VAR(__GLEW_OES_draw_texture) + +#endif /* GL_OES_draw_texture */ + +/* ----------------------- GL_OES_element_index_uint ----------------------- */ + +#ifndef GL_OES_element_index_uint +#define GL_OES_element_index_uint 1 + +#define GL_UNSIGNED_INT 0x1405 + +#define GLEW_OES_element_index_uint GLEW_GET_VAR(__GLEW_OES_element_index_uint) + +#endif /* GL_OES_element_index_uint */ + +/* --------------------- GL_OES_extended_matrix_palette -------------------- */ + +#ifndef GL_OES_extended_matrix_palette +#define GL_OES_extended_matrix_palette 1 + +#define GLEW_OES_extended_matrix_palette GLEW_GET_VAR(__GLEW_OES_extended_matrix_palette) + +#endif /* GL_OES_extended_matrix_palette */ + +/* ------------------------ GL_OES_fbo_render_mipmap ----------------------- */ + +#ifndef GL_OES_fbo_render_mipmap +#define GL_OES_fbo_render_mipmap 1 + +#define GLEW_OES_fbo_render_mipmap GLEW_GET_VAR(__GLEW_OES_fbo_render_mipmap) + +#endif /* GL_OES_fbo_render_mipmap */ + +/* --------------------- GL_OES_fragment_precision_high -------------------- */ + +#ifndef GL_OES_fragment_precision_high +#define GL_OES_fragment_precision_high 1 + +#define GLEW_OES_fragment_precision_high GLEW_GET_VAR(__GLEW_OES_fragment_precision_high) + +#endif /* GL_OES_fragment_precision_high */ + +/* ----------------------- GL_OES_framebuffer_object ----------------------- */ + +#ifndef GL_OES_framebuffer_object +#define GL_OES_framebuffer_object 1 + +#define GL_NONE_OES 0 +#define GL_INVALID_FRAMEBUFFER_OPERATION_OES 0x0506 +#define GL_RGBA4_OES 0x8056 +#define GL_RGB5_A1_OES 0x8057 +#define GL_DEPTH_COMPONENT16_OES 0x81A5 +#define GL_MAX_RENDERBUFFER_SIZE_OES 0x84E8 +#define GL_FRAMEBUFFER_BINDING_OES 0x8CA6 +#define GL_RENDERBUFFER_BINDING_OES 0x8CA7 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE_OES 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES 0x8CD9 +#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES 0x8CDA +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED_OES 0x8CDD +#define GL_COLOR_ATTACHMENT0_OES 0x8CE0 +#define GL_DEPTH_ATTACHMENT_OES 0x8D00 +#define GL_STENCIL_ATTACHMENT_OES 0x8D20 +#define GL_FRAMEBUFFER_OES 0x8D40 +#define GL_RENDERBUFFER_OES 0x8D41 +#define GL_RENDERBUFFER_WIDTH_OES 0x8D42 +#define GL_RENDERBUFFER_HEIGHT_OES 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT_OES 0x8D44 +#define GL_STENCIL_INDEX1_OES 0x8D46 +#define GL_STENCIL_INDEX4_OES 0x8D47 +#define GL_STENCIL_INDEX8_OES 0x8D48 +#define GL_RENDERBUFFER_RED_SIZE_OES 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE_OES 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE_OES 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE_OES 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE_OES 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE_OES 0x8D55 +#define GL_RGB565_OES 0x8D62 + +typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFEROESPROC) (GLenum target, GLuint framebuffer); +typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFEROESPROC) (GLenum target, GLuint renderbuffer); +typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSOESPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSOESPROC) (GLsizei n, const GLuint* framebuffers); +typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSOESPROC) (GLsizei n, const GLuint* renderbuffers); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFEROESPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSOESPROC) (GLsizei n, GLuint* framebuffers); +typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSOESPROC) (GLsizei n, GLuint* renderbuffers); +typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPOESPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVOESPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFEROESPROC) (GLuint framebuffer); +typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFEROESPROC) (GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); + +#define glBindFramebufferOES GLEW_GET_FUN(__glewBindFramebufferOES) +#define glBindRenderbufferOES GLEW_GET_FUN(__glewBindRenderbufferOES) +#define glCheckFramebufferStatusOES GLEW_GET_FUN(__glewCheckFramebufferStatusOES) +#define glDeleteFramebuffersOES GLEW_GET_FUN(__glewDeleteFramebuffersOES) +#define glDeleteRenderbuffersOES GLEW_GET_FUN(__glewDeleteRenderbuffersOES) +#define glFramebufferRenderbufferOES GLEW_GET_FUN(__glewFramebufferRenderbufferOES) +#define glFramebufferTexture2DOES GLEW_GET_FUN(__glewFramebufferTexture2DOES) +#define glGenFramebuffersOES GLEW_GET_FUN(__glewGenFramebuffersOES) +#define glGenRenderbuffersOES GLEW_GET_FUN(__glewGenRenderbuffersOES) +#define glGenerateMipmapOES GLEW_GET_FUN(__glewGenerateMipmapOES) +#define glGetFramebufferAttachmentParameterivOES GLEW_GET_FUN(__glewGetFramebufferAttachmentParameterivOES) +#define glGetRenderbufferParameterivOES GLEW_GET_FUN(__glewGetRenderbufferParameterivOES) +#define glIsFramebufferOES GLEW_GET_FUN(__glewIsFramebufferOES) +#define glIsRenderbufferOES GLEW_GET_FUN(__glewIsRenderbufferOES) +#define glRenderbufferStorageOES GLEW_GET_FUN(__glewRenderbufferStorageOES) + +#define GLEW_OES_framebuffer_object GLEW_GET_VAR(__GLEW_OES_framebuffer_object) + +#endif /* GL_OES_framebuffer_object */ + +/* ----------------------- GL_OES_geometry_point_size ---------------------- */ + +#ifndef GL_OES_geometry_point_size +#define GL_OES_geometry_point_size 1 + +#define GL_GEOMETRY_SHADER_BIT_OES 0x00000004 +#define GL_LINES_ADJACENCY_OES 0xA +#define GL_LINE_STRIP_ADJACENCY_OES 0xB +#define GL_TRIANGLES_ADJACENCY_OES 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_OES 0xD +#define GL_LAYER_PROVOKING_VERTEX_OES 0x825E +#define GL_UNDEFINED_VERTEX_OES 0x8260 +#define GL_GEOMETRY_SHADER_INVOCATIONS_OES 0x887F +#define GL_GEOMETRY_LINKED_VERTICES_OUT_OES 0x8916 +#define GL_GEOMETRY_LINKED_INPUT_TYPE_OES 0x8917 +#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES 0x8918 +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES 0x8A2C +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8A32 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES 0x8C29 +#define GL_PRIMITIVES_GENERATED_OES 0x8C87 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES 0x8DA8 +#define GL_GEOMETRY_SHADER_OES 0x8DD9 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES 0x8DE1 +#define GL_FIRST_VERTEX_CONVENTION_OES 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_OES 0x8E4E +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES 0x8E5A +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES 0x90CD +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES 0x90D7 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES 0x9124 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES 0x92CF +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES 0x92D5 +#define GL_REFERENCED_BY_GEOMETRY_SHADER_OES 0x9309 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS_OES 0x9312 +#define GL_MAX_FRAMEBUFFER_LAYERS_OES 0x9317 + +#define GLEW_OES_geometry_point_size GLEW_GET_VAR(__GLEW_OES_geometry_point_size) + +#endif /* GL_OES_geometry_point_size */ + +/* ------------------------- GL_OES_geometry_shader ------------------------ */ + +#ifndef GL_OES_geometry_shader +#define GL_OES_geometry_shader 1 + +#define GL_GEOMETRY_SHADER_BIT_OES 0x00000004 +#define GL_LINES_ADJACENCY_OES 0xA +#define GL_LINE_STRIP_ADJACENCY_OES 0xB +#define GL_TRIANGLES_ADJACENCY_OES 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_OES 0xD +#define GL_LAYER_PROVOKING_VERTEX_OES 0x825E +#define GL_UNDEFINED_VERTEX_OES 0x8260 +#define GL_GEOMETRY_SHADER_INVOCATIONS_OES 0x887F +#define GL_GEOMETRY_LINKED_VERTICES_OUT_OES 0x8916 +#define GL_GEOMETRY_LINKED_INPUT_TYPE_OES 0x8917 +#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES 0x8918 +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES 0x8A2C +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8A32 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES 0x8C29 +#define GL_PRIMITIVES_GENERATED_OES 0x8C87 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES 0x8DA8 +#define GL_GEOMETRY_SHADER_OES 0x8DD9 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES 0x8DE1 +#define GL_FIRST_VERTEX_CONVENTION_OES 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_OES 0x8E4E +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES 0x8E5A +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES 0x90CD +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES 0x90D7 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES 0x9124 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES 0x92CF +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES 0x92D5 +#define GL_REFERENCED_BY_GEOMETRY_SHADER_OES 0x9309 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS_OES 0x9312 +#define GL_MAX_FRAMEBUFFER_LAYERS_OES 0x9317 + +#define GLEW_OES_geometry_shader GLEW_GET_VAR(__GLEW_OES_geometry_shader) + +#endif /* GL_OES_geometry_shader */ + +/* ----------------------- GL_OES_get_program_binary ----------------------- */ + +#ifndef GL_OES_get_program_binary +#define GL_OES_get_program_binary 1 + +#define GL_PROGRAM_BINARY_LENGTH_OES 0x8741 +#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE +#define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF + +typedef void (GLAPIENTRY * PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLenum *binaryFormat, void*binary); +typedef void (GLAPIENTRY * PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLint length); + +#define glGetProgramBinaryOES GLEW_GET_FUN(__glewGetProgramBinaryOES) +#define glProgramBinaryOES GLEW_GET_FUN(__glewProgramBinaryOES) + +#define GLEW_OES_get_program_binary GLEW_GET_VAR(__GLEW_OES_get_program_binary) + +#endif /* GL_OES_get_program_binary */ + +/* --------------------------- GL_OES_gpu_shader5 -------------------------- */ + +#ifndef GL_OES_gpu_shader5 +#define GL_OES_gpu_shader5 1 + +#define GLEW_OES_gpu_shader5 GLEW_GET_VAR(__GLEW_OES_gpu_shader5) + +#endif /* GL_OES_gpu_shader5 */ + +/* ---------------------------- GL_OES_mapbuffer --------------------------- */ + +#ifndef GL_OES_mapbuffer +#define GL_OES_mapbuffer 1 + +#define GL_WRITE_ONLY_OES 0x88B9 +#define GL_BUFFER_ACCESS_OES 0x88BB +#define GL_BUFFER_MAPPED_OES 0x88BC +#define GL_BUFFER_MAP_POINTER_OES 0x88BD + +typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, void** params); +typedef void * (GLAPIENTRY * PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access); +typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFEROESPROC) (GLenum target); + +#define glGetBufferPointervOES GLEW_GET_FUN(__glewGetBufferPointervOES) +#define glMapBufferOES GLEW_GET_FUN(__glewMapBufferOES) +#define glUnmapBufferOES GLEW_GET_FUN(__glewUnmapBufferOES) + +#define GLEW_OES_mapbuffer GLEW_GET_VAR(__GLEW_OES_mapbuffer) + +#endif /* GL_OES_mapbuffer */ + +/* --------------------------- GL_OES_matrix_get --------------------------- */ + +#ifndef GL_OES_matrix_get +#define GL_OES_matrix_get 1 + +#define GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES 0x898d +#define GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES 0x898e +#define GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES 0x898f + +#define GLEW_OES_matrix_get GLEW_GET_VAR(__GLEW_OES_matrix_get) + +#endif /* GL_OES_matrix_get */ + +/* ------------------------- GL_OES_matrix_palette ------------------------- */ + +#ifndef GL_OES_matrix_palette +#define GL_OES_matrix_palette 1 + +#define GL_MAX_VERTEX_UNITS_OES 0x86A4 +#define GL_WEIGHT_ARRAY_TYPE_OES 0x86A9 +#define GL_WEIGHT_ARRAY_STRIDE_OES 0x86AA +#define GL_WEIGHT_ARRAY_SIZE_OES 0x86AB +#define GL_WEIGHT_ARRAY_POINTER_OES 0x86AC +#define GL_WEIGHT_ARRAY_OES 0x86AD +#define GL_MATRIX_PALETTE_OES 0x8840 +#define GL_MAX_PALETTE_MATRICES_OES 0x8842 +#define GL_CURRENT_PALETTE_MATRIX_OES 0x8843 +#define GL_MATRIX_INDEX_ARRAY_OES 0x8844 +#define GL_MATRIX_INDEX_ARRAY_SIZE_OES 0x8846 +#define GL_MATRIX_INDEX_ARRAY_TYPE_OES 0x8847 +#define GL_MATRIX_INDEX_ARRAY_STRIDE_OES 0x8848 +#define GL_MATRIX_INDEX_ARRAY_POINTER_OES 0x8849 +#define GL_WEIGHT_ARRAY_BUFFER_BINDING_OES 0x889E +#define GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES 0x8B9E + +typedef void (GLAPIENTRY * PFNGLCURRENTPALETTEMATRIXOESPROC) (GLuint index); +typedef void (GLAPIENTRY * PFNGLLOADPALETTEFROMMODELVIEWMATRIXOESPROC) (void); +typedef void (GLAPIENTRY * PFNGLMATRIXINDEXPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, void *pointer); +typedef void (GLAPIENTRY * PFNGLWEIGHTPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, void *pointer); + +#define glCurrentPaletteMatrixOES GLEW_GET_FUN(__glewCurrentPaletteMatrixOES) +#define glLoadPaletteFromModelViewMatrixOES GLEW_GET_FUN(__glewLoadPaletteFromModelViewMatrixOES) +#define glMatrixIndexPointerOES GLEW_GET_FUN(__glewMatrixIndexPointerOES) +#define glWeightPointerOES GLEW_GET_FUN(__glewWeightPointerOES) + +#define GLEW_OES_matrix_palette GLEW_GET_VAR(__GLEW_OES_matrix_palette) + +#endif /* GL_OES_matrix_palette */ + +/* ---------------------- GL_OES_packed_depth_stencil ---------------------- */ + +#ifndef GL_OES_packed_depth_stencil +#define GL_OES_packed_depth_stencil 1 + +#define GL_DEPTH_STENCIL_OES 0x84F9 +#define GL_UNSIGNED_INT_24_8_OES 0x84FA +#define GL_DEPTH24_STENCIL8_OES 0x88F0 + +#define GLEW_OES_packed_depth_stencil GLEW_GET_VAR(__GLEW_OES_packed_depth_stencil) + +#endif /* GL_OES_packed_depth_stencil */ + +/* ------------------------ GL_OES_point_size_array ------------------------ */ + +#ifndef GL_OES_point_size_array +#define GL_OES_point_size_array 1 + +#define GL_POINT_SIZE_ARRAY_TYPE_OES 0x898A +#define GL_POINT_SIZE_ARRAY_STRIDE_OES 0x898B +#define GL_POINT_SIZE_ARRAY_POINTER_OES 0x898C +#define GL_POINT_SIZE_ARRAY_OES 0x8B9C +#define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES 0x8B9F + +#define GLEW_OES_point_size_array GLEW_GET_VAR(__GLEW_OES_point_size_array) + +#endif /* GL_OES_point_size_array */ + +/* -------------------------- GL_OES_point_sprite -------------------------- */ + +#ifndef GL_OES_point_sprite +#define GL_OES_point_sprite 1 + +#define GL_POINT_SPRITE_OES 0x8861 +#define GL_COORD_REPLACE_OES 0x8862 + +#define GLEW_OES_point_sprite GLEW_GET_VAR(__GLEW_OES_point_sprite) + +#endif /* GL_OES_point_sprite */ + +/* --------------------------- GL_OES_read_format -------------------------- */ + +#ifndef GL_OES_read_format +#define GL_OES_read_format 1 + +#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B + +#define GLEW_OES_read_format GLEW_GET_VAR(__GLEW_OES_read_format) + +#endif /* GL_OES_read_format */ + +/* --------------------- GL_OES_required_internalformat -------------------- */ + +#ifndef GL_OES_required_internalformat +#define GL_OES_required_internalformat 1 + +#define GL_ALPHA8_OES 0x803C +#define GL_LUMINANCE8_OES 0x8040 +#define GL_LUMINANCE4_ALPHA4_OES 0x8043 +#define GL_LUMINANCE8_ALPHA8_OES 0x8045 +#define GL_RGB8_OES 0x8051 +#define GL_RGB10_EXT 0x8052 +#define GL_RGBA4_OES 0x8056 +#define GL_RGB5_A1_OES 0x8057 +#define GL_RGBA8_OES 0x8058 +#define GL_RGB10_A2_EXT 0x8059 +#define GL_DEPTH_COMPONENT16_OES 0x81A5 +#define GL_DEPTH_COMPONENT24_OES 0x81A6 +#define GL_DEPTH_COMPONENT32_OES 0x81A7 +#define GL_DEPTH24_STENCIL8_OES 0x88F0 +#define GL_RGB565_OES 0x8D62 + +#define GLEW_OES_required_internalformat GLEW_GET_VAR(__GLEW_OES_required_internalformat) + +#endif /* GL_OES_required_internalformat */ + +/* --------------------------- GL_OES_rgb8_rgba8 --------------------------- */ + +#ifndef GL_OES_rgb8_rgba8 +#define GL_OES_rgb8_rgba8 1 + +#define GL_RGB8_OES 0x8051 +#define GL_RGBA8_OES 0x8058 + +#define GLEW_OES_rgb8_rgba8 GLEW_GET_VAR(__GLEW_OES_rgb8_rgba8) + +#endif /* GL_OES_rgb8_rgba8 */ + +/* ------------------------- GL_OES_sample_shading ------------------------- */ + +#ifndef GL_OES_sample_shading +#define GL_OES_sample_shading 1 + +#define GL_SAMPLE_SHADING_OES 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE_OES 0x8C37 + +typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGOESPROC) (GLfloat value); + +#define glMinSampleShadingOES GLEW_GET_FUN(__glewMinSampleShadingOES) + +#define GLEW_OES_sample_shading GLEW_GET_VAR(__GLEW_OES_sample_shading) + +#endif /* GL_OES_sample_shading */ + +/* ------------------------ GL_OES_sample_variables ------------------------ */ + +#ifndef GL_OES_sample_variables +#define GL_OES_sample_variables 1 + +#define GLEW_OES_sample_variables GLEW_GET_VAR(__GLEW_OES_sample_variables) + +#endif /* GL_OES_sample_variables */ + +/* ----------------------- GL_OES_shader_image_atomic ---------------------- */ + +#ifndef GL_OES_shader_image_atomic +#define GL_OES_shader_image_atomic 1 + +#define GLEW_OES_shader_image_atomic GLEW_GET_VAR(__GLEW_OES_shader_image_atomic) + +#endif /* GL_OES_shader_image_atomic */ + +/* ------------------------ GL_OES_shader_io_blocks ------------------------ */ + +#ifndef GL_OES_shader_io_blocks +#define GL_OES_shader_io_blocks 1 + +#define GLEW_OES_shader_io_blocks GLEW_GET_VAR(__GLEW_OES_shader_io_blocks) + +#endif /* GL_OES_shader_io_blocks */ + +/* ---------------- GL_OES_shader_multisample_interpolation ---------------- */ + +#ifndef GL_OES_shader_multisample_interpolation +#define GL_OES_shader_multisample_interpolation 1 + +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5C +#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES 0x8E5D + +#define GLEW_OES_shader_multisample_interpolation GLEW_GET_VAR(__GLEW_OES_shader_multisample_interpolation) + +#endif /* GL_OES_shader_multisample_interpolation */ + +/* ------------------------ GL_OES_single_precision ------------------------ */ + +#ifndef GL_OES_single_precision +#define GL_OES_single_precision 1 + +typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFOESPROC) (GLclampf depth); +typedef void (GLAPIENTRY * PFNGLCLIPPLANEFOESPROC) (GLenum plane, const GLfloat* equation); +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFOESPROC) (GLclampf n, GLclampf f); +typedef void (GLAPIENTRY * PFNGLFRUSTUMFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); +typedef void (GLAPIENTRY * PFNGLGETCLIPPLANEFOESPROC) (GLenum plane, GLfloat* equation); +typedef void (GLAPIENTRY * PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); + +#define glClearDepthfOES GLEW_GET_FUN(__glewClearDepthfOES) +#define glClipPlanefOES GLEW_GET_FUN(__glewClipPlanefOES) +#define glDepthRangefOES GLEW_GET_FUN(__glewDepthRangefOES) +#define glFrustumfOES GLEW_GET_FUN(__glewFrustumfOES) +#define glGetClipPlanefOES GLEW_GET_FUN(__glewGetClipPlanefOES) +#define glOrthofOES GLEW_GET_FUN(__glewOrthofOES) + +#define GLEW_OES_single_precision GLEW_GET_VAR(__GLEW_OES_single_precision) + +#endif /* GL_OES_single_precision */ + +/* ---------------------- GL_OES_standard_derivatives ---------------------- */ + +#ifndef GL_OES_standard_derivatives +#define GL_OES_standard_derivatives 1 + +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B + +#define GLEW_OES_standard_derivatives GLEW_GET_VAR(__GLEW_OES_standard_derivatives) + +#endif /* GL_OES_standard_derivatives */ + +/* ---------------------------- GL_OES_stencil1 ---------------------------- */ + +#ifndef GL_OES_stencil1 +#define GL_OES_stencil1 1 + +#define GL_STENCIL_INDEX1_OES 0x8D46 + +#define GLEW_OES_stencil1 GLEW_GET_VAR(__GLEW_OES_stencil1) + +#endif /* GL_OES_stencil1 */ + +/* ---------------------------- GL_OES_stencil4 ---------------------------- */ + +#ifndef GL_OES_stencil4 +#define GL_OES_stencil4 1 + +#define GL_STENCIL_INDEX4_OES 0x8D47 + +#define GLEW_OES_stencil4 GLEW_GET_VAR(__GLEW_OES_stencil4) + +#endif /* GL_OES_stencil4 */ + +/* ---------------------------- GL_OES_stencil8 ---------------------------- */ + +#ifndef GL_OES_stencil8 +#define GL_OES_stencil8 1 + +#define GL_STENCIL_INDEX8_OES 0x8D48 + +#define GLEW_OES_stencil8 GLEW_GET_VAR(__GLEW_OES_stencil8) + +#endif /* GL_OES_stencil8 */ + +/* ----------------------- GL_OES_surfaceless_context ---------------------- */ + +#ifndef GL_OES_surfaceless_context +#define GL_OES_surfaceless_context 1 + +#define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219 + +#define GLEW_OES_surfaceless_context GLEW_GET_VAR(__GLEW_OES_surfaceless_context) + +#endif /* GL_OES_surfaceless_context */ + +/* --------------------- GL_OES_tessellation_point_size -------------------- */ + +#ifndef GL_OES_tessellation_point_size +#define GL_OES_tessellation_point_size 1 + +#define GL_QUADS_OES 0x0007 +#define GL_TESS_CONTROL_SHADER_BIT_OES 0x00000008 +#define GL_PATCHES_OES 0xE +#define GL_TESS_EVALUATION_SHADER_BIT_OES 0x00000010 +#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES 0x8221 +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E1F +#define GL_PATCH_VERTICES_OES 0x8E72 +#define GL_TESS_CONTROL_OUTPUT_VERTICES_OES 0x8E75 +#define GL_TESS_GEN_MODE_OES 0x8E76 +#define GL_TESS_GEN_SPACING_OES 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER_OES 0x8E78 +#define GL_TESS_GEN_POINT_MODE_OES 0x8E79 +#define GL_ISOLINES_OES 0x8E7A +#define GL_FRACTIONAL_ODD_OES 0x8E7B +#define GL_FRACTIONAL_EVEN_OES 0x8E7C +#define GL_MAX_PATCH_VERTICES_OES 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL_OES 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS_OES 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES 0x8E86 +#define GL_TESS_EVALUATION_SHADER_OES 0x8E87 +#define GL_TESS_CONTROL_SHADER_OES 0x8E88 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES 0x8E8A +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES 0x90CB +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES 0x90CC +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES 0x90D8 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES 0x90D9 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES 0x92CD +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES 0x92CE +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES 0x92D3 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES 0x92D4 +#define GL_IS_PER_PATCH_OES 0x92E7 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES 0x9308 + +#define GLEW_OES_tessellation_point_size GLEW_GET_VAR(__GLEW_OES_tessellation_point_size) + +#endif /* GL_OES_tessellation_point_size */ + +/* ----------------------- GL_OES_tessellation_shader ---------------------- */ + +#ifndef GL_OES_tessellation_shader +#define GL_OES_tessellation_shader 1 + +#define GL_QUADS_OES 0x0007 +#define GL_TESS_CONTROL_SHADER_BIT_OES 0x00000008 +#define GL_PATCHES_OES 0xE +#define GL_TESS_EVALUATION_SHADER_BIT_OES 0x00000010 +#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES 0x8221 +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E1F +#define GL_PATCH_VERTICES_OES 0x8E72 +#define GL_TESS_CONTROL_OUTPUT_VERTICES_OES 0x8E75 +#define GL_TESS_GEN_MODE_OES 0x8E76 +#define GL_TESS_GEN_SPACING_OES 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER_OES 0x8E78 +#define GL_TESS_GEN_POINT_MODE_OES 0x8E79 +#define GL_ISOLINES_OES 0x8E7A +#define GL_FRACTIONAL_ODD_OES 0x8E7B +#define GL_FRACTIONAL_EVEN_OES 0x8E7C +#define GL_MAX_PATCH_VERTICES_OES 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL_OES 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS_OES 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES 0x8E86 +#define GL_TESS_EVALUATION_SHADER_OES 0x8E87 +#define GL_TESS_CONTROL_SHADER_OES 0x8E88 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES 0x8E8A +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES 0x90CB +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES 0x90CC +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES 0x90D8 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES 0x90D9 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES 0x92CD +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES 0x92CE +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES 0x92D3 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES 0x92D4 +#define GL_IS_PER_PATCH_OES 0x92E7 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES 0x9308 + +#define GLEW_OES_tessellation_shader GLEW_GET_VAR(__GLEW_OES_tessellation_shader) + +#endif /* GL_OES_tessellation_shader */ + +/* --------------------------- GL_OES_texture_3D --------------------------- */ + +#ifndef GL_OES_texture_3D +#define GL_OES_texture_3D 1 + +#define GL_TEXTURE_BINDING_3D_OES 0x806A +#define GL_TEXTURE_3D_OES 0x806F +#define GL_TEXTURE_WRAP_R_OES 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073 + +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC) (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 (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); + +#define glCompressedTexImage3DOES GLEW_GET_FUN(__glewCompressedTexImage3DOES) +#define glCompressedTexSubImage3DOES GLEW_GET_FUN(__glewCompressedTexSubImage3DOES) +#define glCopyTexSubImage3DOES GLEW_GET_FUN(__glewCopyTexSubImage3DOES) +#define glFramebufferTexture3DOES GLEW_GET_FUN(__glewFramebufferTexture3DOES) +#define glTexImage3DOES GLEW_GET_FUN(__glewTexImage3DOES) +#define glTexSubImage3DOES GLEW_GET_FUN(__glewTexSubImage3DOES) + +#define GLEW_OES_texture_3D GLEW_GET_VAR(__GLEW_OES_texture_3D) + +#endif /* GL_OES_texture_3D */ + +/* ---------------------- GL_OES_texture_border_clamp ---------------------- */ + +#ifndef GL_OES_texture_border_clamp +#define GL_OES_texture_border_clamp 1 + +#define GL_TEXTURE_BORDER_COLOR_OES 0x1004 +#define GL_CLAMP_TO_BORDER_OES 0x812D + +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIIVOESPROC) (GLuint sampler, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIUIVOESPROC) (GLuint sampler, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVOESPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVOESPROC) (GLenum target, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIIVOESPROC) (GLuint sampler, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIUIVOESPROC) (GLuint sampler, GLenum pname, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVOESPROC) (GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVOESPROC) (GLenum target, GLenum pname, const GLuint* params); + +#define glGetSamplerParameterIivOES GLEW_GET_FUN(__glewGetSamplerParameterIivOES) +#define glGetSamplerParameterIuivOES GLEW_GET_FUN(__glewGetSamplerParameterIuivOES) +#define glGetTexParameterIivOES GLEW_GET_FUN(__glewGetTexParameterIivOES) +#define glGetTexParameterIuivOES GLEW_GET_FUN(__glewGetTexParameterIuivOES) +#define glSamplerParameterIivOES GLEW_GET_FUN(__glewSamplerParameterIivOES) +#define glSamplerParameterIuivOES GLEW_GET_FUN(__glewSamplerParameterIuivOES) +#define glTexParameterIivOES GLEW_GET_FUN(__glewTexParameterIivOES) +#define glTexParameterIuivOES GLEW_GET_FUN(__glewTexParameterIuivOES) + +#define GLEW_OES_texture_border_clamp GLEW_GET_VAR(__GLEW_OES_texture_border_clamp) + +#endif /* GL_OES_texture_border_clamp */ + +/* ------------------------- GL_OES_texture_buffer ------------------------- */ + +#ifndef GL_OES_texture_buffer +#define GL_OES_texture_buffer 1 + +#define GL_TEXTURE_BUFFER_BINDING_OES 0x8C2A +#define GL_TEXTURE_BUFFER_OES 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_OES 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_OES 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES 0x8C2D +#define GL_SAMPLER_BUFFER_OES 0x8DC2 +#define GL_INT_SAMPLER_BUFFER_OES 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_OES 0x8DD8 +#define GL_IMAGE_BUFFER_OES 0x9051 +#define GL_INT_IMAGE_BUFFER_OES 0x905C +#define GL_UNSIGNED_INT_IMAGE_BUFFER_OES 0x9067 +#define GL_TEXTURE_BUFFER_OFFSET_OES 0x919D +#define GL_TEXTURE_BUFFER_SIZE_OES 0x919E +#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES 0x919F + +typedef void (GLAPIENTRY * PFNGLTEXBUFFEROESPROC) (GLenum target, GLenum internalformat, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLTEXBUFFERRANGEOESPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); + +#define glTexBufferOES GLEW_GET_FUN(__glewTexBufferOES) +#define glTexBufferRangeOES GLEW_GET_FUN(__glewTexBufferRangeOES) + +#define GLEW_OES_texture_buffer GLEW_GET_VAR(__GLEW_OES_texture_buffer) + +#endif /* GL_OES_texture_buffer */ + +/* -------------------- GL_OES_texture_compression_astc -------------------- */ + +#ifndef GL_OES_texture_compression_astc +#define GL_OES_texture_compression_astc 1 + +#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 +#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 +#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 +#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 +#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 +#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 +#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 +#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 +#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 +#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 +#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA +#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB +#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC +#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD +#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0 +#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1 +#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2 +#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3 +#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4 +#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5 +#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6 +#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7 +#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8 +#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9 + +#define GLEW_OES_texture_compression_astc GLEW_GET_VAR(__GLEW_OES_texture_compression_astc) + +#endif /* GL_OES_texture_compression_astc */ + +/* ------------------------ GL_OES_texture_cube_map ------------------------ */ + +#ifndef GL_OES_texture_cube_map +#define GL_OES_texture_cube_map 1 + +#define GL_TEXTURE_GEN_MODE_OES 0x2500 +#define GL_NORMAL_MAP_OES 0x8511 +#define GL_REFLECTION_MAP_OES 0x8512 +#define GL_TEXTURE_CUBE_MAP_OES 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_OES 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES 0x851A +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES 0x851C +#define GL_TEXTURE_GEN_STR_OES 0x8D60 + +typedef void (GLAPIENTRY * PFNGLGETTEXGENFVOESPROC) (GLenum coord, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETTEXGENIVOESPROC) (GLenum coord, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXGENXVOESPROC) (GLenum coord, GLenum pname, GLfixed* params); +typedef void (GLAPIENTRY * PFNGLTEXGENFOESPROC) (GLenum coord, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLTEXGENFVOESPROC) (GLenum coord, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLTEXGENIOESPROC) (GLenum coord, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLTEXGENIVOESPROC) (GLenum coord, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLTEXGENXOESPROC) (GLenum coord, GLenum pname, GLfixed param); +typedef void (GLAPIENTRY * PFNGLTEXGENXVOESPROC) (GLenum coord, GLenum pname, const GLfixed* params); + +#define glGetTexGenfvOES GLEW_GET_FUN(__glewGetTexGenfvOES) +#define glGetTexGenivOES GLEW_GET_FUN(__glewGetTexGenivOES) +#define glGetTexGenxvOES GLEW_GET_FUN(__glewGetTexGenxvOES) +#define glTexGenfOES GLEW_GET_FUN(__glewTexGenfOES) +#define glTexGenfvOES GLEW_GET_FUN(__glewTexGenfvOES) +#define glTexGeniOES GLEW_GET_FUN(__glewTexGeniOES) +#define glTexGenivOES GLEW_GET_FUN(__glewTexGenivOES) +#define glTexGenxOES GLEW_GET_FUN(__glewTexGenxOES) +#define glTexGenxvOES GLEW_GET_FUN(__glewTexGenxvOES) + +#define GLEW_OES_texture_cube_map GLEW_GET_VAR(__GLEW_OES_texture_cube_map) + +#endif /* GL_OES_texture_cube_map */ + +/* --------------------- GL_OES_texture_cube_map_array --------------------- */ + +#ifndef GL_OES_texture_cube_map_array +#define GL_OES_texture_cube_map_array 1 + +#define GL_TEXTURE_CUBE_MAP_ARRAY_OES 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES 0x900A +#define GL_SAMPLER_CUBE_MAP_ARRAY_OES 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900F +#define GL_IMAGE_CUBE_MAP_ARRAY_OES 0x9054 +#define GL_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x905F +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x906A + +#define GLEW_OES_texture_cube_map_array GLEW_GET_VAR(__GLEW_OES_texture_cube_map_array) + +#endif /* GL_OES_texture_cube_map_array */ + +/* ---------------------- GL_OES_texture_env_crossbar ---------------------- */ + +#ifndef GL_OES_texture_env_crossbar +#define GL_OES_texture_env_crossbar 1 + +#define GLEW_OES_texture_env_crossbar GLEW_GET_VAR(__GLEW_OES_texture_env_crossbar) + +#endif /* GL_OES_texture_env_crossbar */ + +/* --------------------- GL_OES_texture_mirrored_repeat -------------------- */ + +#ifndef GL_OES_texture_mirrored_repeat +#define GL_OES_texture_mirrored_repeat 1 + +#define GL_MIRRORED_REPEAT 0x8370 + +#define GLEW_OES_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_OES_texture_mirrored_repeat) + +#endif /* GL_OES_texture_mirrored_repeat */ + +/* -------------------------- GL_OES_texture_npot -------------------------- */ + +#ifndef GL_OES_texture_npot +#define GL_OES_texture_npot 1 + +#define GLEW_OES_texture_npot GLEW_GET_VAR(__GLEW_OES_texture_npot) + +#endif /* GL_OES_texture_npot */ + +/* ------------------------ GL_OES_texture_stencil8 ------------------------ */ + +#ifndef GL_OES_texture_stencil8 +#define GL_OES_texture_stencil8 1 + +#define GL_STENCIL_INDEX 0x1901 +#define GL_STENCIL_INDEX8 0x8D48 + +#define GLEW_OES_texture_stencil8 GLEW_GET_VAR(__GLEW_OES_texture_stencil8) + +#endif /* GL_OES_texture_stencil8 */ + +/* -------------- GL_OES_texture_storage_multisample_2d_array -------------- */ + +#ifndef GL_OES_texture_storage_multisample_2d_array +#define GL_OES_texture_storage_multisample_2d_array 1 + +#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES 0x9102 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES 0x9105 +#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910B +#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910C +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910D + +typedef void (GLAPIENTRY * PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); + +#define glTexStorage3DMultisampleOES GLEW_GET_FUN(__glewTexStorage3DMultisampleOES) + +#define GLEW_OES_texture_storage_multisample_2d_array GLEW_GET_VAR(__GLEW_OES_texture_storage_multisample_2d_array) + +#endif /* GL_OES_texture_storage_multisample_2d_array */ + +/* -------------------------- GL_OES_texture_view -------------------------- */ + +#ifndef GL_OES_texture_view +#define GL_OES_texture_view 1 + +#define GL_TEXTURE_VIEW_MIN_LEVEL_OES 0x82DB +#define GL_TEXTURE_VIEW_NUM_LEVELS_OES 0x82DC +#define GL_TEXTURE_VIEW_MIN_LAYER_OES 0x82DD +#define GL_TEXTURE_VIEW_NUM_LAYERS_OES 0x82DE +#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF + +typedef void (GLAPIENTRY * PFNGLTEXTUREVIEWOESPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); + +#define glTextureViewOES GLEW_GET_FUN(__glewTextureViewOES) + +#define GLEW_OES_texture_view GLEW_GET_VAR(__GLEW_OES_texture_view) + +#endif /* GL_OES_texture_view */ + +/* ----------------------- GL_OES_vertex_array_object ---------------------- */ + +#ifndef GL_OES_vertex_array_object +#define GL_OES_vertex_array_object 1 + +#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5 + +typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYOESPROC) (GLuint array); +typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint* arrays); +typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint* arrays); +typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYOESPROC) (GLuint array); + +#define glBindVertexArrayOES GLEW_GET_FUN(__glewBindVertexArrayOES) +#define glDeleteVertexArraysOES GLEW_GET_FUN(__glewDeleteVertexArraysOES) +#define glGenVertexArraysOES GLEW_GET_FUN(__glewGenVertexArraysOES) +#define glIsVertexArrayOES GLEW_GET_FUN(__glewIsVertexArrayOES) + +#define GLEW_OES_vertex_array_object GLEW_GET_VAR(__GLEW_OES_vertex_array_object) + +#endif /* GL_OES_vertex_array_object */ + +/* ------------------------ GL_OES_vertex_half_float ----------------------- */ + +#ifndef GL_OES_vertex_half_float +#define GL_OES_vertex_half_float 1 + +#define GL_HALF_FLOAT_OES 0x8D61 + +#define GLEW_OES_vertex_half_float GLEW_GET_VAR(__GLEW_OES_vertex_half_float) + +#endif /* GL_OES_vertex_half_float */ + +/* --------------------- GL_OES_vertex_type_10_10_10_2 --------------------- */ + +#ifndef GL_OES_vertex_type_10_10_10_2 +#define GL_OES_vertex_type_10_10_10_2 1 + +#define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6 +#define GL_INT_10_10_10_2_OES 0x8DF7 + +#define GLEW_OES_vertex_type_10_10_10_2 GLEW_GET_VAR(__GLEW_OES_vertex_type_10_10_10_2) + +#endif /* GL_OES_vertex_type_10_10_10_2 */ + +/* ---------------------------- GL_OML_interlace --------------------------- */ + +#ifndef GL_OML_interlace +#define GL_OML_interlace 1 + +#define GL_INTERLACE_OML 0x8980 +#define GL_INTERLACE_READ_OML 0x8981 + +#define GLEW_OML_interlace GLEW_GET_VAR(__GLEW_OML_interlace) + +#endif /* GL_OML_interlace */ + +/* ---------------------------- GL_OML_resample ---------------------------- */ + +#ifndef GL_OML_resample +#define GL_OML_resample 1 + +#define GL_PACK_RESAMPLE_OML 0x8984 +#define GL_UNPACK_RESAMPLE_OML 0x8985 +#define GL_RESAMPLE_REPLICATE_OML 0x8986 +#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 +#define GL_RESAMPLE_AVERAGE_OML 0x8988 +#define GL_RESAMPLE_DECIMATE_OML 0x8989 + +#define GLEW_OML_resample GLEW_GET_VAR(__GLEW_OML_resample) + +#endif /* GL_OML_resample */ + +/* ---------------------------- GL_OML_subsample --------------------------- */ + +#ifndef GL_OML_subsample +#define GL_OML_subsample 1 + +#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 +#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 + +#define GLEW_OML_subsample GLEW_GET_VAR(__GLEW_OML_subsample) + +#endif /* GL_OML_subsample */ + +/* ---------------------------- GL_OVR_multiview --------------------------- */ + +#ifndef GL_OVR_multiview +#define GL_OVR_multiview 1 + +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR 0x9630 +#define GL_MAX_VIEWS_OVR 0x9631 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR 0x9632 +#define GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR 0x9633 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); + +#define glFramebufferTextureMultiviewOVR GLEW_GET_FUN(__glewFramebufferTextureMultiviewOVR) +#define glNamedFramebufferTextureMultiviewOVR GLEW_GET_FUN(__glewNamedFramebufferTextureMultiviewOVR) + +#define GLEW_OVR_multiview GLEW_GET_VAR(__GLEW_OVR_multiview) + +#endif /* GL_OVR_multiview */ + +/* --------------------------- GL_OVR_multiview2 --------------------------- */ + +#ifndef GL_OVR_multiview2 +#define GL_OVR_multiview2 1 + +#define GLEW_OVR_multiview2 GLEW_GET_VAR(__GLEW_OVR_multiview2) + +#endif /* GL_OVR_multiview2 */ + +/* ------------ GL_OVR_multiview_multisampled_render_to_texture ------------ */ + +#ifndef GL_OVR_multiview_multisampled_render_to_texture +#define GL_OVR_multiview_multisampled_render_to_texture 1 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews); + +#define glFramebufferTextureMultisampleMultiviewOVR GLEW_GET_FUN(__glewFramebufferTextureMultisampleMultiviewOVR) + +#define GLEW_OVR_multiview_multisampled_render_to_texture GLEW_GET_VAR(__GLEW_OVR_multiview_multisampled_render_to_texture) + +#endif /* GL_OVR_multiview_multisampled_render_to_texture */ + +/* --------------------------- GL_PGI_misc_hints --------------------------- */ + +#ifndef GL_PGI_misc_hints +#define GL_PGI_misc_hints 1 + +#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 107000 +#define GL_CONSERVE_MEMORY_HINT_PGI 107005 +#define GL_RECLAIM_MEMORY_HINT_PGI 107006 +#define GL_NATIVE_GRAPHICS_HANDLE_PGI 107010 +#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 107011 +#define GL_NATIVE_GRAPHICS_END_HINT_PGI 107012 +#define GL_ALWAYS_FAST_HINT_PGI 107020 +#define GL_ALWAYS_SOFT_HINT_PGI 107021 +#define GL_ALLOW_DRAW_OBJ_HINT_PGI 107022 +#define GL_ALLOW_DRAW_WIN_HINT_PGI 107023 +#define GL_ALLOW_DRAW_FRG_HINT_PGI 107024 +#define GL_ALLOW_DRAW_MEM_HINT_PGI 107025 +#define GL_STRICT_DEPTHFUNC_HINT_PGI 107030 +#define GL_STRICT_LIGHTING_HINT_PGI 107031 +#define GL_STRICT_SCISSOR_HINT_PGI 107032 +#define GL_FULL_STIPPLE_HINT_PGI 107033 +#define GL_CLIP_NEAR_HINT_PGI 107040 +#define GL_CLIP_FAR_HINT_PGI 107041 +#define GL_WIDE_LINE_HINT_PGI 107042 +#define GL_BACK_NORMALS_HINT_PGI 107043 + +#define GLEW_PGI_misc_hints GLEW_GET_VAR(__GLEW_PGI_misc_hints) + +#endif /* GL_PGI_misc_hints */ + +/* -------------------------- GL_PGI_vertex_hints -------------------------- */ + +#ifndef GL_PGI_vertex_hints +#define GL_PGI_vertex_hints 1 + +#define GL_VERTEX23_BIT_PGI 0x00000004 +#define GL_VERTEX4_BIT_PGI 0x00000008 +#define GL_COLOR3_BIT_PGI 0x00010000 +#define GL_COLOR4_BIT_PGI 0x00020000 +#define GL_EDGEFLAG_BIT_PGI 0x00040000 +#define GL_INDEX_BIT_PGI 0x00080000 +#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 +#define GL_VERTEX_DATA_HINT_PGI 107050 +#define GL_VERTEX_CONSISTENT_HINT_PGI 107051 +#define GL_MATERIAL_SIDE_HINT_PGI 107052 +#define GL_MAX_VERTEX_HINT_PGI 107053 +#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 +#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 +#define GL_MAT_EMISSION_BIT_PGI 0x00800000 +#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 +#define GL_MAT_SHININESS_BIT_PGI 0x02000000 +#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 +#define GL_NORMAL_BIT_PGI 0x08000000 +#define GL_TEXCOORD1_BIT_PGI 0x10000000 +#define GL_TEXCOORD2_BIT_PGI 0x20000000 +#define GL_TEXCOORD3_BIT_PGI 0x40000000 +#define GL_TEXCOORD4_BIT_PGI 0x80000000 + +#define GLEW_PGI_vertex_hints GLEW_GET_VAR(__GLEW_PGI_vertex_hints) + +#endif /* GL_PGI_vertex_hints */ + +/* ----------------------- GL_QCOM_YUV_texture_gather ---------------------- */ + +#ifndef GL_QCOM_YUV_texture_gather +#define GL_QCOM_YUV_texture_gather 1 + +#define GLEW_QCOM_YUV_texture_gather GLEW_GET_VAR(__GLEW_QCOM_YUV_texture_gather) + +#endif /* GL_QCOM_YUV_texture_gather */ + +/* --------------------------- GL_QCOM_alpha_test -------------------------- */ + +#ifndef GL_QCOM_alpha_test +#define GL_QCOM_alpha_test 1 + +#define GL_ALPHA_TEST_QCOM 0x0BC0 +#define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1 +#define GL_ALPHA_TEST_REF_QCOM 0x0BC2 + +typedef void (GLAPIENTRY * PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref); + +#define glAlphaFuncQCOM GLEW_GET_FUN(__glewAlphaFuncQCOM) + +#define GLEW_QCOM_alpha_test GLEW_GET_VAR(__GLEW_QCOM_alpha_test) + +#endif /* GL_QCOM_alpha_test */ + +/* ------------------------ GL_QCOM_binning_control ------------------------ */ + +#ifndef GL_QCOM_binning_control +#define GL_QCOM_binning_control 1 + +#define GL_DONT_CARE 0x1100 +#define GL_BINNING_CONTROL_HINT_QCOM 0x8FB0 +#define GL_CPU_OPTIMIZED_QCOM 0x8FB1 +#define GL_GPU_OPTIMIZED_QCOM 0x8FB2 +#define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3 + +#define GLEW_QCOM_binning_control GLEW_GET_VAR(__GLEW_QCOM_binning_control) + +#endif /* GL_QCOM_binning_control */ + +/* ------------------------- GL_QCOM_driver_control ------------------------ */ + +#ifndef GL_QCOM_driver_control +#define GL_QCOM_driver_control 1 + +typedef void (GLAPIENTRY * PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); +typedef void (GLAPIENTRY * PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); +typedef void (GLAPIENTRY * PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar *driverControlString); +typedef void (GLAPIENTRY * PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint* num, GLsizei size, GLuint *driverControls); + +#define glDisableDriverControlQCOM GLEW_GET_FUN(__glewDisableDriverControlQCOM) +#define glEnableDriverControlQCOM GLEW_GET_FUN(__glewEnableDriverControlQCOM) +#define glGetDriverControlStringQCOM GLEW_GET_FUN(__glewGetDriverControlStringQCOM) +#define glGetDriverControlsQCOM GLEW_GET_FUN(__glewGetDriverControlsQCOM) + +#define GLEW_QCOM_driver_control GLEW_GET_VAR(__GLEW_QCOM_driver_control) + +#endif /* GL_QCOM_driver_control */ + +/* -------------------------- GL_QCOM_extended_get ------------------------- */ + +#ifndef GL_QCOM_extended_get +#define GL_QCOM_extended_get 1 + +#define GL_TEXTURE_WIDTH_QCOM 0x8BD2 +#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3 +#define GL_TEXTURE_DEPTH_QCOM 0x8BD4 +#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5 +#define GL_TEXTURE_FORMAT_QCOM 0x8BD6 +#define GL_TEXTURE_TYPE_QCOM 0x8BD7 +#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8 +#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9 +#define GL_TEXTURE_TARGET_QCOM 0x8BDA +#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB +#define GL_STATE_RESTORE 0x8BDC + +typedef void (GLAPIENTRY * PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, void** params); +typedef void (GLAPIENTRY * PFNGLEXTGETBUFFERSQCOMPROC) (GLuint* buffers, GLint maxBuffers, GLint* numBuffers); +typedef void (GLAPIENTRY * PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers); +typedef void (GLAPIENTRY * PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers); +typedef void (GLAPIENTRY * PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels); +typedef void (GLAPIENTRY * PFNGLEXTGETTEXTURESQCOMPROC) (GLuint* textures, GLint maxTextures, GLint* numTextures); +typedef void (GLAPIENTRY * PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param); + +#define glExtGetBufferPointervQCOM GLEW_GET_FUN(__glewExtGetBufferPointervQCOM) +#define glExtGetBuffersQCOM GLEW_GET_FUN(__glewExtGetBuffersQCOM) +#define glExtGetFramebuffersQCOM GLEW_GET_FUN(__glewExtGetFramebuffersQCOM) +#define glExtGetRenderbuffersQCOM GLEW_GET_FUN(__glewExtGetRenderbuffersQCOM) +#define glExtGetTexLevelParameterivQCOM GLEW_GET_FUN(__glewExtGetTexLevelParameterivQCOM) +#define glExtGetTexSubImageQCOM GLEW_GET_FUN(__glewExtGetTexSubImageQCOM) +#define glExtGetTexturesQCOM GLEW_GET_FUN(__glewExtGetTexturesQCOM) +#define glExtTexObjectStateOverrideiQCOM GLEW_GET_FUN(__glewExtTexObjectStateOverrideiQCOM) + +#define GLEW_QCOM_extended_get GLEW_GET_VAR(__GLEW_QCOM_extended_get) + +#endif /* GL_QCOM_extended_get */ + +/* ------------------------- GL_QCOM_extended_get2 ------------------------- */ + +#ifndef GL_QCOM_extended_get2 +#define GL_QCOM_extended_get2 1 + +typedef void (GLAPIENTRY * PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar* source, GLint* length); +typedef void (GLAPIENTRY * PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint* programs, GLint maxPrograms, GLint* numPrograms); +typedef void (GLAPIENTRY * PFNGLEXTGETSHADERSQCOMPROC) (GLuint* shaders, GLint maxShaders, GLint* numShaders); +typedef GLboolean (GLAPIENTRY * PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program); + +#define glExtGetProgramBinarySourceQCOM GLEW_GET_FUN(__glewExtGetProgramBinarySourceQCOM) +#define glExtGetProgramsQCOM GLEW_GET_FUN(__glewExtGetProgramsQCOM) +#define glExtGetShadersQCOM GLEW_GET_FUN(__glewExtGetShadersQCOM) +#define glExtIsProgramBinaryQCOM GLEW_GET_FUN(__glewExtIsProgramBinaryQCOM) + +#define GLEW_QCOM_extended_get2 GLEW_GET_VAR(__GLEW_QCOM_extended_get2) + +#endif /* GL_QCOM_extended_get2 */ + +/* ---------------------- GL_QCOM_frame_extrapolation ---------------------- */ + +#ifndef GL_QCOM_frame_extrapolation +#define GL_QCOM_frame_extrapolation 1 + +typedef void (GLAPIENTRY * PFNGLEXTRAPOLATETEX2DQCOMPROC) (GLuint src1, GLuint src2, GLuint output, GLfloat scaleFactor); + +#define glExtrapolateTex2DQCOM GLEW_GET_FUN(__glewExtrapolateTex2DQCOM) + +#define GLEW_QCOM_frame_extrapolation GLEW_GET_VAR(__GLEW_QCOM_frame_extrapolation) + +#endif /* GL_QCOM_frame_extrapolation */ + +/* ---------------------- GL_QCOM_framebuffer_foveated --------------------- */ + +#ifndef GL_QCOM_framebuffer_foveated +#define GL_QCOM_framebuffer_foveated 1 + +#define GL_FOVEATION_ENABLE_BIT_QCOM 0x1 +#define GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM 0x2 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC) (GLuint fbo, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint* providedFeatures); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC) (GLuint fbo, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); + +#define glFramebufferFoveationConfigQCOM GLEW_GET_FUN(__glewFramebufferFoveationConfigQCOM) +#define glFramebufferFoveationParametersQCOM GLEW_GET_FUN(__glewFramebufferFoveationParametersQCOM) + +#define GLEW_QCOM_framebuffer_foveated GLEW_GET_VAR(__GLEW_QCOM_framebuffer_foveated) + +#endif /* GL_QCOM_framebuffer_foveated */ + +/* ----------------------- GL_QCOM_motion_estimation ----------------------- */ + +#ifndef GL_QCOM_motion_estimation +#define GL_QCOM_motion_estimation 1 + +#define GL_MOTION_ESTIMATION_SEARCH_BLOCK_X_QCOM 0x8C90 +#define GL_MOTION_ESTIMATION_SEARCH_BLOCK_Y_QCOM 0x8C91 + +typedef void (GLAPIENTRY * PFNGLTEXESTIMATEMOTIONQCOMPROC) (GLuint ref, GLuint target, GLuint output); +typedef void (GLAPIENTRY * PFNGLTEXESTIMATEMOTIONREGIONSQCOMPROC) (GLuint ref, GLuint target, GLuint output, GLuint mask); + +#define glTexEstimateMotionQCOM GLEW_GET_FUN(__glewTexEstimateMotionQCOM) +#define glTexEstimateMotionRegionsQCOM GLEW_GET_FUN(__glewTexEstimateMotionRegionsQCOM) + +#define GLEW_QCOM_motion_estimation GLEW_GET_VAR(__GLEW_QCOM_motion_estimation) + +#endif /* GL_QCOM_motion_estimation */ + +/* ---------------------- GL_QCOM_perfmon_global_mode ---------------------- */ + +#ifndef GL_QCOM_perfmon_global_mode +#define GL_QCOM_perfmon_global_mode 1 + +#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0 + +#define GLEW_QCOM_perfmon_global_mode GLEW_GET_VAR(__GLEW_QCOM_perfmon_global_mode) + +#endif /* GL_QCOM_perfmon_global_mode */ + +/* ----------------------- GL_QCOM_render_sRGB_R8_RG8 ---------------------- */ + +#ifndef GL_QCOM_render_sRGB_R8_RG8 +#define GL_QCOM_render_sRGB_R8_RG8 1 + +#define GLEW_QCOM_render_sRGB_R8_RG8 GLEW_GET_VAR(__GLEW_QCOM_render_sRGB_R8_RG8) + +#endif /* GL_QCOM_render_sRGB_R8_RG8 */ + +/* --------------------- GL_QCOM_render_shared_exponent -------------------- */ + +#ifndef GL_QCOM_render_shared_exponent +#define GL_QCOM_render_shared_exponent 1 + +#define GL_RGB9_E5 0x8C3D + +#define GLEW_QCOM_render_shared_exponent GLEW_GET_VAR(__GLEW_QCOM_render_shared_exponent) + +#endif /* GL_QCOM_render_shared_exponent */ + +/* -------------- GL_QCOM_shader_framebuffer_fetch_noncoherent ------------- */ + +#ifndef GL_QCOM_shader_framebuffer_fetch_noncoherent +#define GL_QCOM_shader_framebuffer_fetch_noncoherent 1 + +#define GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM 0x96A2 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC) (void); + +#define glFramebufferFetchBarrierQCOM GLEW_GET_FUN(__glewFramebufferFetchBarrierQCOM) + +#define GLEW_QCOM_shader_framebuffer_fetch_noncoherent GLEW_GET_VAR(__GLEW_QCOM_shader_framebuffer_fetch_noncoherent) + +#endif /* GL_QCOM_shader_framebuffer_fetch_noncoherent */ + +/* ----------------- GL_QCOM_shader_framebuffer_fetch_rate ----------------- */ + +#ifndef GL_QCOM_shader_framebuffer_fetch_rate +#define GL_QCOM_shader_framebuffer_fetch_rate 1 + +#define GLEW_QCOM_shader_framebuffer_fetch_rate GLEW_GET_VAR(__GLEW_QCOM_shader_framebuffer_fetch_rate) + +#endif /* GL_QCOM_shader_framebuffer_fetch_rate */ + +/* -------------------------- GL_QCOM_shading_rate ------------------------- */ + +#ifndef GL_QCOM_shading_rate +#define GL_QCOM_shading_rate 1 + +#define GL_SHADING_RATE_QCOM 0x96A4 +#define GL_SHADING_RATE_PRESERVE_ASPECT_RATIO_QCOM 0x96A5 +#define GL_SHADING_RATE_1X1_PIXELS_QCOM 0x96A6 +#define GL_SHADING_RATE_1X2_PIXELS_QCOM 0x96A7 +#define GL_SHADING_RATE_2X1_PIXELS_QCOM 0x96A8 +#define GL_SHADING_RATE_2X2_PIXELS_QCOM 0x96A9 +#define GL_SHADING_RATE_4X2_PIXELS_QCOM 0x96AC +#define GL_SHADING_RATE_4X4_PIXELS_QCOM 0x96AE + +typedef void (GLAPIENTRY * PFNGLSHADINGRATEQCOMPROC) (GLenum rate); + +#define glShadingRateQCOM GLEW_GET_FUN(__glewShadingRateQCOM) + +#define GLEW_QCOM_shading_rate GLEW_GET_VAR(__GLEW_QCOM_shading_rate) + +#endif /* GL_QCOM_shading_rate */ + +/* ------------------------ GL_QCOM_texture_foveated ----------------------- */ + +#ifndef GL_QCOM_texture_foveated +#define GL_QCOM_texture_foveated 1 + +#define GL_FOVEATION_ENABLE_BIT_QCOM 0x1 +#define GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM 0x2 +#define GL_TEXTURE_FOVEATED_FEATURE_BITS_QCOM 0x8BFB +#define GL_TEXTURE_FOVEATED_MIN_PIXEL_DENSITY_QCOM 0x8BFC +#define GL_TEXTURE_FOVEATED_FEATURE_QUERY_QCOM 0x8BFD +#define GL_TEXTURE_FOVEATED_NUM_FOCAL_POINTS_QUERY_QCOM 0x8BFE +#define GL_FRAMEBUFFER_INCOMPLETE_FOVEATION_QCOM 0x8BFF + +typedef void (GLAPIENTRY * PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC) (GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); + +#define glTextureFoveationParametersQCOM GLEW_GET_FUN(__glewTextureFoveationParametersQCOM) + +#define GLEW_QCOM_texture_foveated GLEW_GET_VAR(__GLEW_QCOM_texture_foveated) + +#endif /* GL_QCOM_texture_foveated */ + +/* ----------------------- GL_QCOM_texture_foveated2 ----------------------- */ + +#ifndef GL_QCOM_texture_foveated2 +#define GL_QCOM_texture_foveated2 1 + +#define GL_TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM 0x96A0 + +#define GLEW_QCOM_texture_foveated2 GLEW_GET_VAR(__GLEW_QCOM_texture_foveated2) + +#endif /* GL_QCOM_texture_foveated2 */ + +/* --------------- GL_QCOM_texture_foveated_subsampled_layout -------------- */ + +#ifndef GL_QCOM_texture_foveated_subsampled_layout +#define GL_QCOM_texture_foveated_subsampled_layout 1 + +#define GL_FOVEATION_SUBSAMPLED_LAYOUT_METHOD_BIT_QCOM 0x4 +#define GL_MAX_SHADER_SUBSAMPLED_IMAGE_UNITS_QCOM 0x8FA1 + +#define GLEW_QCOM_texture_foveated_subsampled_layout GLEW_GET_VAR(__GLEW_QCOM_texture_foveated_subsampled_layout) + +#endif /* GL_QCOM_texture_foveated_subsampled_layout */ + +/* ------------------------ GL_QCOM_texture_lod_bias ----------------------- */ + +#ifndef GL_QCOM_texture_lod_bias +#define GL_QCOM_texture_lod_bias 1 + +#define GL_TEXTURE_LOD_BIAS_QCOM 0x8C96 + +#define GLEW_QCOM_texture_lod_bias GLEW_GET_VAR(__GLEW_QCOM_texture_lod_bias) + +#endif /* GL_QCOM_texture_lod_bias */ + +/* ------------------------ GL_QCOM_tiled_rendering ------------------------ */ + +#ifndef GL_QCOM_tiled_rendering +#define GL_QCOM_tiled_rendering 1 + +#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001 +#define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002 +#define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004 +#define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008 +#define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010 +#define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020 +#define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040 +#define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080 +#define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100 +#define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200 +#define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400 +#define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800 +#define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000 +#define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000 +#define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000 +#define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000 +#define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000 +#define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000 +#define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000 +#define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000 +#define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000 +#define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000 +#define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000 +#define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000 +#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000 +#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000 +#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000 +#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000 +#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000 +#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000 +#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000 +#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000 + +typedef void (GLAPIENTRY * PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask); +typedef void (GLAPIENTRY * PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); + +#define glEndTilingQCOM GLEW_GET_FUN(__glewEndTilingQCOM) +#define glStartTilingQCOM GLEW_GET_FUN(__glewStartTilingQCOM) + +#define GLEW_QCOM_tiled_rendering GLEW_GET_VAR(__GLEW_QCOM_tiled_rendering) + +#endif /* GL_QCOM_tiled_rendering */ + +/* ---------------------- GL_QCOM_writeonly_rendering ---------------------- */ + +#ifndef GL_QCOM_writeonly_rendering +#define GL_QCOM_writeonly_rendering 1 + +#define GL_WRITEONLY_RENDERING_QCOM 0x8823 + +#define GLEW_QCOM_writeonly_rendering GLEW_GET_VAR(__GLEW_QCOM_writeonly_rendering) + +#endif /* GL_QCOM_writeonly_rendering */ + +/* ------------------------- GL_QCOM_ycbcr_degamma ------------------------- */ + +#ifndef GL_QCOM_ycbcr_degamma +#define GL_QCOM_ycbcr_degamma 1 + +#define GL_TEXTURE_Y_DEGAMMA_QCOM 0x9710 +#define GL_TEXTURE_CBCR_DEGAMMA_QCOM 0x9711 + +#define GLEW_QCOM_ycbcr_degamma GLEW_GET_VAR(__GLEW_QCOM_ycbcr_degamma) + +#endif /* GL_QCOM_ycbcr_degamma */ + +/* ---------------------- GL_REGAL_ES1_0_compatibility --------------------- */ + +#ifndef GL_REGAL_ES1_0_compatibility +#define GL_REGAL_ES1_0_compatibility 1 + +typedef int GLclampx; + +typedef void (GLAPIENTRY * PFNGLALPHAFUNCXPROC) (GLenum func, GLclampx ref); +typedef void (GLAPIENTRY * PFNGLCLEARCOLORXPROC) (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha); +typedef void (GLAPIENTRY * PFNGLCLEARDEPTHXPROC) (GLclampx depth); +typedef void (GLAPIENTRY * PFNGLCOLOR4XPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEXPROC) (GLclampx zNear, GLclampx zFar); +typedef void (GLAPIENTRY * PFNGLFOGXPROC) (GLenum pname, GLfixed param); +typedef void (GLAPIENTRY * PFNGLFOGXVPROC) (GLenum pname, const GLfixed* params); +typedef void (GLAPIENTRY * PFNGLFRUSTUMFPROC) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); +typedef void (GLAPIENTRY * PFNGLFRUSTUMXPROC) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); +typedef void (GLAPIENTRY * PFNGLLIGHTMODELXPROC) (GLenum pname, GLfixed param); +typedef void (GLAPIENTRY * PFNGLLIGHTMODELXVPROC) (GLenum pname, const GLfixed* params); +typedef void (GLAPIENTRY * PFNGLLIGHTXPROC) (GLenum light, GLenum pname, GLfixed param); +typedef void (GLAPIENTRY * PFNGLLIGHTXVPROC) (GLenum light, GLenum pname, const GLfixed* params); +typedef void (GLAPIENTRY * PFNGLLINEWIDTHXPROC) (GLfixed width); +typedef void (GLAPIENTRY * PFNGLLOADMATRIXXPROC) (const GLfixed* m); +typedef void (GLAPIENTRY * PFNGLMATERIALXPROC) (GLenum face, GLenum pname, GLfixed param); +typedef void (GLAPIENTRY * PFNGLMATERIALXVPROC) (GLenum face, GLenum pname, const GLfixed* params); +typedef void (GLAPIENTRY * PFNGLMULTMATRIXXPROC) (const GLfixed* m); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4XPROC) (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q); +typedef void (GLAPIENTRY * PFNGLNORMAL3XPROC) (GLfixed nx, GLfixed ny, GLfixed nz); +typedef void (GLAPIENTRY * PFNGLORTHOFPROC) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); +typedef void (GLAPIENTRY * PFNGLORTHOXPROC) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); +typedef void (GLAPIENTRY * PFNGLPOINTSIZEXPROC) (GLfixed size); +typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETXPROC) (GLfixed factor, GLfixed units); +typedef void (GLAPIENTRY * PFNGLROTATEXPROC) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); +typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEXPROC) (GLclampx value, GLboolean invert); +typedef void (GLAPIENTRY * PFNGLSCALEXPROC) (GLfixed x, GLfixed y, GLfixed z); +typedef void (GLAPIENTRY * PFNGLTEXENVXPROC) (GLenum target, GLenum pname, GLfixed param); +typedef void (GLAPIENTRY * PFNGLTEXENVXVPROC) (GLenum target, GLenum pname, const GLfixed* params); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERXPROC) (GLenum target, GLenum pname, GLfixed param); +typedef void (GLAPIENTRY * PFNGLTRANSLATEXPROC) (GLfixed x, GLfixed y, GLfixed z); + +#define glAlphaFuncx GLEW_GET_FUN(__glewAlphaFuncx) +#define glClearColorx GLEW_GET_FUN(__glewClearColorx) +#define glClearDepthx GLEW_GET_FUN(__glewClearDepthx) +#define glColor4x GLEW_GET_FUN(__glewColor4x) +#define glDepthRangex GLEW_GET_FUN(__glewDepthRangex) +#define glFogx GLEW_GET_FUN(__glewFogx) +#define glFogxv GLEW_GET_FUN(__glewFogxv) +#define glFrustumf GLEW_GET_FUN(__glewFrustumf) +#define glFrustumx GLEW_GET_FUN(__glewFrustumx) +#define glLightModelx GLEW_GET_FUN(__glewLightModelx) +#define glLightModelxv GLEW_GET_FUN(__glewLightModelxv) +#define glLightx GLEW_GET_FUN(__glewLightx) +#define glLightxv GLEW_GET_FUN(__glewLightxv) +#define glLineWidthx GLEW_GET_FUN(__glewLineWidthx) +#define glLoadMatrixx GLEW_GET_FUN(__glewLoadMatrixx) +#define glMaterialx GLEW_GET_FUN(__glewMaterialx) +#define glMaterialxv GLEW_GET_FUN(__glewMaterialxv) +#define glMultMatrixx GLEW_GET_FUN(__glewMultMatrixx) +#define glMultiTexCoord4x GLEW_GET_FUN(__glewMultiTexCoord4x) +#define glNormal3x GLEW_GET_FUN(__glewNormal3x) +#define glOrthof GLEW_GET_FUN(__glewOrthof) +#define glOrthox GLEW_GET_FUN(__glewOrthox) +#define glPointSizex GLEW_GET_FUN(__glewPointSizex) +#define glPolygonOffsetx GLEW_GET_FUN(__glewPolygonOffsetx) +#define glRotatex GLEW_GET_FUN(__glewRotatex) +#define glSampleCoveragex GLEW_GET_FUN(__glewSampleCoveragex) +#define glScalex GLEW_GET_FUN(__glewScalex) +#define glTexEnvx GLEW_GET_FUN(__glewTexEnvx) +#define glTexEnvxv GLEW_GET_FUN(__glewTexEnvxv) +#define glTexParameterx GLEW_GET_FUN(__glewTexParameterx) +#define glTranslatex GLEW_GET_FUN(__glewTranslatex) + +#define GLEW_REGAL_ES1_0_compatibility GLEW_GET_VAR(__GLEW_REGAL_ES1_0_compatibility) + +#endif /* GL_REGAL_ES1_0_compatibility */ + +/* ---------------------- GL_REGAL_ES1_1_compatibility --------------------- */ + +#ifndef GL_REGAL_ES1_1_compatibility +#define GL_REGAL_ES1_1_compatibility 1 + +typedef void (GLAPIENTRY * PFNGLCLIPPLANEFPROC) (GLenum plane, const GLfloat* equation); +typedef void (GLAPIENTRY * PFNGLCLIPPLANEXPROC) (GLenum plane, const GLfixed* equation); +typedef void (GLAPIENTRY * PFNGLGETCLIPPLANEFPROC) (GLenum pname, GLfloat eqn[4]); +typedef void (GLAPIENTRY * PFNGLGETCLIPPLANEXPROC) (GLenum pname, GLfixed eqn[4]); +typedef void (GLAPIENTRY * PFNGLGETFIXEDVPROC) (GLenum pname, GLfixed* params); +typedef void (GLAPIENTRY * PFNGLGETLIGHTXVPROC) (GLenum light, GLenum pname, GLfixed* params); +typedef void (GLAPIENTRY * PFNGLGETMATERIALXVPROC) (GLenum face, GLenum pname, GLfixed* params); +typedef void (GLAPIENTRY * PFNGLGETTEXENVXVPROC) (GLenum env, GLenum pname, GLfixed* params); +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERXVPROC) (GLenum target, GLenum pname, GLfixed* params); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERXPROC) (GLenum pname, GLfixed param); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERXVPROC) (GLenum pname, const GLfixed* params); +typedef void (GLAPIENTRY * PFNGLPOINTSIZEPOINTEROESPROC) (GLenum type, GLsizei stride, const void *pointer); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERXVPROC) (GLenum target, GLenum pname, const GLfixed* params); + +#define glClipPlanef GLEW_GET_FUN(__glewClipPlanef) +#define glClipPlanex GLEW_GET_FUN(__glewClipPlanex) +#define glGetClipPlanef GLEW_GET_FUN(__glewGetClipPlanef) +#define glGetClipPlanex GLEW_GET_FUN(__glewGetClipPlanex) +#define glGetFixedv GLEW_GET_FUN(__glewGetFixedv) +#define glGetLightxv GLEW_GET_FUN(__glewGetLightxv) +#define glGetMaterialxv GLEW_GET_FUN(__glewGetMaterialxv) +#define glGetTexEnvxv GLEW_GET_FUN(__glewGetTexEnvxv) +#define glGetTexParameterxv GLEW_GET_FUN(__glewGetTexParameterxv) +#define glPointParameterx GLEW_GET_FUN(__glewPointParameterx) +#define glPointParameterxv GLEW_GET_FUN(__glewPointParameterxv) +#define glPointSizePointerOES GLEW_GET_FUN(__glewPointSizePointerOES) +#define glTexParameterxv GLEW_GET_FUN(__glewTexParameterxv) + +#define GLEW_REGAL_ES1_1_compatibility GLEW_GET_VAR(__GLEW_REGAL_ES1_1_compatibility) + +#endif /* GL_REGAL_ES1_1_compatibility */ + +/* ---------------------------- GL_REGAL_enable ---------------------------- */ + +#ifndef GL_REGAL_enable +#define GL_REGAL_enable 1 + +#define GL_ERROR_REGAL 0x9322 +#define GL_DEBUG_REGAL 0x9323 +#define GL_LOG_REGAL 0x9324 +#define GL_EMULATION_REGAL 0x9325 +#define GL_DRIVER_REGAL 0x9326 +#define GL_MISSING_REGAL 0x9360 +#define GL_TRACE_REGAL 0x9361 +#define GL_CACHE_REGAL 0x9362 +#define GL_CODE_REGAL 0x9363 +#define GL_STATISTICS_REGAL 0x9364 + +#define GLEW_REGAL_enable GLEW_GET_VAR(__GLEW_REGAL_enable) + +#endif /* GL_REGAL_enable */ + +/* ------------------------- GL_REGAL_error_string ------------------------- */ + +#ifndef GL_REGAL_error_string +#define GL_REGAL_error_string 1 + +typedef const GLchar* (GLAPIENTRY * PFNGLERRORSTRINGREGALPROC) (GLenum error); + +#define glErrorStringREGAL GLEW_GET_FUN(__glewErrorStringREGAL) + +#define GLEW_REGAL_error_string GLEW_GET_VAR(__GLEW_REGAL_error_string) + +#endif /* GL_REGAL_error_string */ + +/* ------------------------ GL_REGAL_extension_query ----------------------- */ + +#ifndef GL_REGAL_extension_query +#define GL_REGAL_extension_query 1 + +typedef GLboolean (GLAPIENTRY * PFNGLGETEXTENSIONREGALPROC) (const GLchar* ext); +typedef GLboolean (GLAPIENTRY * PFNGLISSUPPORTEDREGALPROC) (const GLchar* ext); + +#define glGetExtensionREGAL GLEW_GET_FUN(__glewGetExtensionREGAL) +#define glIsSupportedREGAL GLEW_GET_FUN(__glewIsSupportedREGAL) + +#define GLEW_REGAL_extension_query GLEW_GET_VAR(__GLEW_REGAL_extension_query) + +#endif /* GL_REGAL_extension_query */ + +/* ------------------------------ GL_REGAL_log ----------------------------- */ + +#ifndef GL_REGAL_log +#define GL_REGAL_log 1 + +#define GL_LOG_ERROR_REGAL 0x9319 +#define GL_LOG_WARNING_REGAL 0x931A +#define GL_LOG_INFO_REGAL 0x931B +#define GL_LOG_APP_REGAL 0x931C +#define GL_LOG_DRIVER_REGAL 0x931D +#define GL_LOG_INTERNAL_REGAL 0x931E +#define GL_LOG_DEBUG_REGAL 0x931F +#define GL_LOG_STATUS_REGAL 0x9320 +#define GL_LOG_HTTP_REGAL 0x9321 + +typedef void (APIENTRY *GLLOGPROCREGAL)(GLenum stream, GLsizei length, const GLchar *message, void *context); + +typedef void (GLAPIENTRY * PFNGLLOGMESSAGECALLBACKREGALPROC) (GLLOGPROCREGAL callback); + +#define glLogMessageCallbackREGAL GLEW_GET_FUN(__glewLogMessageCallbackREGAL) + +#define GLEW_REGAL_log GLEW_GET_VAR(__GLEW_REGAL_log) + +#endif /* GL_REGAL_log */ + +/* ------------------------- GL_REGAL_proc_address ------------------------- */ + +#ifndef GL_REGAL_proc_address +#define GL_REGAL_proc_address 1 + +typedef void * (GLAPIENTRY * PFNGLGETPROCADDRESSREGALPROC) (const GLchar *name); + +#define glGetProcAddressREGAL GLEW_GET_FUN(__glewGetProcAddressREGAL) + +#define GLEW_REGAL_proc_address GLEW_GET_VAR(__GLEW_REGAL_proc_address) + +#endif /* GL_REGAL_proc_address */ + +/* ----------------------- GL_REND_screen_coordinates ---------------------- */ + +#ifndef GL_REND_screen_coordinates +#define GL_REND_screen_coordinates 1 + +#define GL_SCREEN_COORDINATES_REND 0x8490 +#define GL_INVERTED_SCREEN_W_REND 0x8491 + +#define GLEW_REND_screen_coordinates GLEW_GET_VAR(__GLEW_REND_screen_coordinates) + +#endif /* GL_REND_screen_coordinates */ + +/* ------------------------------- GL_S3_s3tc ------------------------------ */ + +#ifndef GL_S3_s3tc +#define GL_S3_s3tc 1 + +#define GL_RGB_S3TC 0x83A0 +#define GL_RGB4_S3TC 0x83A1 +#define GL_RGBA_S3TC 0x83A2 +#define GL_RGBA4_S3TC 0x83A3 +#define GL_RGBA_DXT5_S3TC 0x83A4 +#define GL_RGBA4_DXT5_S3TC 0x83A5 + +#define GLEW_S3_s3tc GLEW_GET_VAR(__GLEW_S3_s3tc) + +#endif /* GL_S3_s3tc */ + +/* ------------------------- GL_SGIS_clip_band_hint ------------------------ */ + +#ifndef GL_SGIS_clip_band_hint +#define GL_SGIS_clip_band_hint 1 + +#define GLEW_SGIS_clip_band_hint GLEW_GET_VAR(__GLEW_SGIS_clip_band_hint) + +#endif /* GL_SGIS_clip_band_hint */ + +/* -------------------------- GL_SGIS_color_range -------------------------- */ + +#ifndef GL_SGIS_color_range +#define GL_SGIS_color_range 1 + +#define GL_EXTENDED_RANGE_SGIS 0x85A5 +#define GL_MIN_RED_SGIS 0x85A6 +#define GL_MAX_RED_SGIS 0x85A7 +#define GL_MIN_GREEN_SGIS 0x85A8 +#define GL_MAX_GREEN_SGIS 0x85A9 +#define GL_MIN_BLUE_SGIS 0x85AA +#define GL_MAX_BLUE_SGIS 0x85AB +#define GL_MIN_ALPHA_SGIS 0x85AC +#define GL_MAX_ALPHA_SGIS 0x85AD + +#define GLEW_SGIS_color_range GLEW_GET_VAR(__GLEW_SGIS_color_range) + +#endif /* GL_SGIS_color_range */ + +/* ------------------------- GL_SGIS_detail_texture ------------------------ */ + +#ifndef GL_SGIS_detail_texture +#define GL_SGIS_detail_texture 1 + +typedef void (GLAPIENTRY * PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat* points); +typedef void (GLAPIENTRY * PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat* points); + +#define glDetailTexFuncSGIS GLEW_GET_FUN(__glewDetailTexFuncSGIS) +#define glGetDetailTexFuncSGIS GLEW_GET_FUN(__glewGetDetailTexFuncSGIS) + +#define GLEW_SGIS_detail_texture GLEW_GET_VAR(__GLEW_SGIS_detail_texture) + +#endif /* GL_SGIS_detail_texture */ + +/* -------------------------- GL_SGIS_fog_function ------------------------- */ + +#ifndef GL_SGIS_fog_function +#define GL_SGIS_fog_function 1 + +typedef void (GLAPIENTRY * PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat* points); +typedef void (GLAPIENTRY * PFNGLGETFOGFUNCSGISPROC) (GLfloat* points); + +#define glFogFuncSGIS GLEW_GET_FUN(__glewFogFuncSGIS) +#define glGetFogFuncSGIS GLEW_GET_FUN(__glewGetFogFuncSGIS) + +#define GLEW_SGIS_fog_function GLEW_GET_VAR(__GLEW_SGIS_fog_function) + +#endif /* GL_SGIS_fog_function */ + +/* ------------------------ GL_SGIS_generate_mipmap ------------------------ */ + +#ifndef GL_SGIS_generate_mipmap +#define GL_SGIS_generate_mipmap 1 + +#define GL_GENERATE_MIPMAP_SGIS 0x8191 +#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 + +#define GLEW_SGIS_generate_mipmap GLEW_GET_VAR(__GLEW_SGIS_generate_mipmap) + +#endif /* GL_SGIS_generate_mipmap */ + +/* -------------------------- GL_SGIS_line_texgen -------------------------- */ + +#ifndef GL_SGIS_line_texgen +#define GL_SGIS_line_texgen 1 + +#define GLEW_SGIS_line_texgen GLEW_GET_VAR(__GLEW_SGIS_line_texgen) + +#endif /* GL_SGIS_line_texgen */ + +/* -------------------------- GL_SGIS_multisample -------------------------- */ + +#ifndef GL_SGIS_multisample +#define GL_SGIS_multisample 1 + +#define GL_MULTISAMPLE_SGIS 0x809D +#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F +#define GL_SAMPLE_MASK_SGIS 0x80A0 +#define GL_1PASS_SGIS 0x80A1 +#define GL_2PASS_0_SGIS 0x80A2 +#define GL_2PASS_1_SGIS 0x80A3 +#define GL_4PASS_0_SGIS 0x80A4 +#define GL_4PASS_1_SGIS 0x80A5 +#define GL_4PASS_2_SGIS 0x80A6 +#define GL_4PASS_3_SGIS 0x80A7 +#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 +#define GL_SAMPLES_SGIS 0x80A9 +#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA +#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB +#define GL_SAMPLE_PATTERN_SGIS 0x80AC + +typedef void (GLAPIENTRY * PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); +typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); + +#define glSampleMaskSGIS GLEW_GET_FUN(__glewSampleMaskSGIS) +#define glSamplePatternSGIS GLEW_GET_FUN(__glewSamplePatternSGIS) + +#define GLEW_SGIS_multisample GLEW_GET_VAR(__GLEW_SGIS_multisample) + +#endif /* GL_SGIS_multisample */ + +/* -------------------------- GL_SGIS_multitexture ------------------------- */ + +#ifndef GL_SGIS_multitexture +#define GL_SGIS_multitexture 1 + +#define GL_SELECTED_TEXTURE_SGIS 0x83C0 +#define GL_SELECTED_TEXTURE_COORD_SET_SGIS 0x83C1 +#define GL_SELECTED_TEXTURE_TRANSFORM_SGIS 0x83C2 +#define GL_MAX_TEXTURES_SGIS 0x83C3 +#define GL_MAX_TEXTURE_COORD_SETS_SGIS 0x83C4 +#define GL_TEXTURE_COORD_SET_INTERLEAVE_FACTOR_SGIS 0x83C5 +#define GL_TEXTURE_ENV_COORD_SET_SGIS 0x83C6 +#define GL_TEXTURE0_SGIS 0x83C7 +#define GL_TEXTURE1_SGIS 0x83C8 +#define GL_TEXTURE2_SGIS 0x83C9 +#define GL_TEXTURE3_SGIS 0x83CA + +typedef void (GLAPIENTRY * PFNGLINTERLEAVEDTEXTURECOORDSETSSGISPROC) (GLint factor); +typedef void (GLAPIENTRY * PFNGLSELECTTEXTURECOORDSETSGISPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLSELECTTEXTURESGISPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLSELECTTEXTURETRANSFORMSGISPROC) (GLenum target); + +#define glInterleavedTextureCoordSetsSGIS GLEW_GET_FUN(__glewInterleavedTextureCoordSetsSGIS) +#define glSelectTextureCoordSetSGIS GLEW_GET_FUN(__glewSelectTextureCoordSetSGIS) +#define glSelectTextureSGIS GLEW_GET_FUN(__glewSelectTextureSGIS) +#define glSelectTextureTransformSGIS GLEW_GET_FUN(__glewSelectTextureTransformSGIS) + +#define GLEW_SGIS_multitexture GLEW_GET_VAR(__GLEW_SGIS_multitexture) + +#endif /* GL_SGIS_multitexture */ + +/* ------------------------- GL_SGIS_pixel_texture ------------------------- */ + +#ifndef GL_SGIS_pixel_texture +#define GL_SGIS_pixel_texture 1 + +#define GLEW_SGIS_pixel_texture GLEW_GET_VAR(__GLEW_SGIS_pixel_texture) + +#endif /* GL_SGIS_pixel_texture */ + +/* ----------------------- GL_SGIS_point_line_texgen ----------------------- */ + +#ifndef GL_SGIS_point_line_texgen +#define GL_SGIS_point_line_texgen 1 + +#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 +#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 +#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 +#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 +#define GL_EYE_POINT_SGIS 0x81F4 +#define GL_OBJECT_POINT_SGIS 0x81F5 +#define GL_EYE_LINE_SGIS 0x81F6 +#define GL_OBJECT_LINE_SGIS 0x81F7 + +#define GLEW_SGIS_point_line_texgen GLEW_GET_VAR(__GLEW_SGIS_point_line_texgen) + +#endif /* GL_SGIS_point_line_texgen */ + +/* ----------------------- GL_SGIS_shared_multisample ---------------------- */ + +#ifndef GL_SGIS_shared_multisample +#define GL_SGIS_shared_multisample 1 + +typedef void (GLAPIENTRY * PFNGLMULTISAMPLESUBRECTPOSSGISPROC) (GLint x, GLint y); + +#define glMultisampleSubRectPosSGIS GLEW_GET_FUN(__glewMultisampleSubRectPosSGIS) + +#define GLEW_SGIS_shared_multisample GLEW_GET_VAR(__GLEW_SGIS_shared_multisample) + +#endif /* GL_SGIS_shared_multisample */ + +/* ------------------------ GL_SGIS_sharpen_texture ------------------------ */ + +#ifndef GL_SGIS_sharpen_texture +#define GL_SGIS_sharpen_texture 1 + +typedef void (GLAPIENTRY * PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat* points); +typedef void (GLAPIENTRY * PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat* points); + +#define glGetSharpenTexFuncSGIS GLEW_GET_FUN(__glewGetSharpenTexFuncSGIS) +#define glSharpenTexFuncSGIS GLEW_GET_FUN(__glewSharpenTexFuncSGIS) + +#define GLEW_SGIS_sharpen_texture GLEW_GET_VAR(__GLEW_SGIS_sharpen_texture) + +#endif /* GL_SGIS_sharpen_texture */ + +/* --------------------------- GL_SGIS_texture4D --------------------------- */ + +#ifndef GL_SGIS_texture4D +#define GL_SGIS_texture4D 1 + +typedef void (GLAPIENTRY * PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLenum format, GLenum type, const void *pixels); + +#define glTexImage4DSGIS GLEW_GET_FUN(__glewTexImage4DSGIS) +#define glTexSubImage4DSGIS GLEW_GET_FUN(__glewTexSubImage4DSGIS) + +#define GLEW_SGIS_texture4D GLEW_GET_VAR(__GLEW_SGIS_texture4D) + +#endif /* GL_SGIS_texture4D */ + +/* ---------------------- GL_SGIS_texture_border_clamp --------------------- */ + +#ifndef GL_SGIS_texture_border_clamp +#define GL_SGIS_texture_border_clamp 1 + +#define GL_CLAMP_TO_BORDER_SGIS 0x812D + +#define GLEW_SGIS_texture_border_clamp GLEW_GET_VAR(__GLEW_SGIS_texture_border_clamp) + +#endif /* GL_SGIS_texture_border_clamp */ + +/* ----------------------- GL_SGIS_texture_edge_clamp ---------------------- */ + +#ifndef GL_SGIS_texture_edge_clamp +#define GL_SGIS_texture_edge_clamp 1 + +#define GL_CLAMP_TO_EDGE_SGIS 0x812F + +#define GLEW_SGIS_texture_edge_clamp GLEW_GET_VAR(__GLEW_SGIS_texture_edge_clamp) + +#endif /* GL_SGIS_texture_edge_clamp */ + +/* ------------------------ GL_SGIS_texture_filter4 ------------------------ */ + +#ifndef GL_SGIS_texture_filter4 +#define GL_SGIS_texture_filter4 1 + +typedef void (GLAPIENTRY * PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat* weights); +typedef void (GLAPIENTRY * PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat* weights); + +#define glGetTexFilterFuncSGIS GLEW_GET_FUN(__glewGetTexFilterFuncSGIS) +#define glTexFilterFuncSGIS GLEW_GET_FUN(__glewTexFilterFuncSGIS) + +#define GLEW_SGIS_texture_filter4 GLEW_GET_VAR(__GLEW_SGIS_texture_filter4) + +#endif /* GL_SGIS_texture_filter4 */ + +/* -------------------------- GL_SGIS_texture_lod -------------------------- */ + +#ifndef GL_SGIS_texture_lod +#define GL_SGIS_texture_lod 1 + +#define GL_TEXTURE_MIN_LOD_SGIS 0x813A +#define GL_TEXTURE_MAX_LOD_SGIS 0x813B +#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C +#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D + +#define GLEW_SGIS_texture_lod GLEW_GET_VAR(__GLEW_SGIS_texture_lod) + +#endif /* GL_SGIS_texture_lod */ + +/* ------------------------- GL_SGIS_texture_select ------------------------ */ + +#ifndef GL_SGIS_texture_select +#define GL_SGIS_texture_select 1 + +#define GLEW_SGIS_texture_select GLEW_GET_VAR(__GLEW_SGIS_texture_select) + +#endif /* GL_SGIS_texture_select */ + +/* ----------------------------- GL_SGIX_async ----------------------------- */ + +#ifndef GL_SGIX_async +#define GL_SGIX_async 1 + +#define GL_ASYNC_MARKER_SGIX 0x8329 + +typedef void (GLAPIENTRY * PFNGLASYNCMARKERSGIXPROC) (GLuint marker); +typedef void (GLAPIENTRY * PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); +typedef GLint (GLAPIENTRY * PFNGLFINISHASYNCSGIXPROC) (GLuint* markerp); +typedef GLuint (GLAPIENTRY * PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); +typedef GLboolean (GLAPIENTRY * PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); +typedef GLint (GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp); + +#define glAsyncMarkerSGIX GLEW_GET_FUN(__glewAsyncMarkerSGIX) +#define glDeleteAsyncMarkersSGIX GLEW_GET_FUN(__glewDeleteAsyncMarkersSGIX) +#define glFinishAsyncSGIX GLEW_GET_FUN(__glewFinishAsyncSGIX) +#define glGenAsyncMarkersSGIX GLEW_GET_FUN(__glewGenAsyncMarkersSGIX) +#define glIsAsyncMarkerSGIX GLEW_GET_FUN(__glewIsAsyncMarkerSGIX) +#define glPollAsyncSGIX GLEW_GET_FUN(__glewPollAsyncSGIX) + +#define GLEW_SGIX_async GLEW_GET_VAR(__GLEW_SGIX_async) + +#endif /* GL_SGIX_async */ + +/* ------------------------ GL_SGIX_async_histogram ------------------------ */ + +#ifndef GL_SGIX_async_histogram +#define GL_SGIX_async_histogram 1 + +#define GL_ASYNC_HISTOGRAM_SGIX 0x832C +#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D + +#define GLEW_SGIX_async_histogram GLEW_GET_VAR(__GLEW_SGIX_async_histogram) + +#endif /* GL_SGIX_async_histogram */ + +/* -------------------------- GL_SGIX_async_pixel -------------------------- */ + +#ifndef GL_SGIX_async_pixel +#define GL_SGIX_async_pixel 1 + +#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C +#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D +#define GL_ASYNC_READ_PIXELS_SGIX 0x835E +#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F +#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 +#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 + +#define GLEW_SGIX_async_pixel GLEW_GET_VAR(__GLEW_SGIX_async_pixel) + +#endif /* GL_SGIX_async_pixel */ + +/* ----------------------- GL_SGIX_bali_g_instruments ---------------------- */ + +#ifndef GL_SGIX_bali_g_instruments +#define GL_SGIX_bali_g_instruments 1 + +#define GL_BALI_NUM_TRIS_CULLED_INSTRUMENT 0x6080 +#define GL_BALI_NUM_PRIMS_CLIPPED_INSTRUMENT 0x6081 +#define GL_BALI_NUM_PRIMS_REJECT_INSTRUMENT 0x6082 +#define GL_BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT 0x6083 + +#define GLEW_SGIX_bali_g_instruments GLEW_GET_VAR(__GLEW_SGIX_bali_g_instruments) + +#endif /* GL_SGIX_bali_g_instruments */ + +/* ----------------------- GL_SGIX_bali_r_instruments ---------------------- */ + +#ifndef GL_SGIX_bali_r_instruments +#define GL_SGIX_bali_r_instruments 1 + +#define GL_BALI_FRAGMENTS_GENERATED_INSTRUMENT 0x6090 +#define GL_BALI_DEPTH_PASS_INSTRUMENT 0x6091 +#define GL_BALI_R_CHIP_COUNT 0x6092 + +#define GLEW_SGIX_bali_r_instruments GLEW_GET_VAR(__GLEW_SGIX_bali_r_instruments) + +#endif /* GL_SGIX_bali_r_instruments */ + +/* --------------------- GL_SGIX_bali_timer_instruments -------------------- */ + +#ifndef GL_SGIX_bali_timer_instruments +#define GL_SGIX_bali_timer_instruments 1 + +#define GLEW_SGIX_bali_timer_instruments GLEW_GET_VAR(__GLEW_SGIX_bali_timer_instruments) + +#endif /* GL_SGIX_bali_timer_instruments */ + +/* ----------------------- GL_SGIX_blend_alpha_minmax ---------------------- */ + +#ifndef GL_SGIX_blend_alpha_minmax +#define GL_SGIX_blend_alpha_minmax 1 + +#define GL_ALPHA_MIN_SGIX 0x8320 +#define GL_ALPHA_MAX_SGIX 0x8321 + +#define GLEW_SGIX_blend_alpha_minmax GLEW_GET_VAR(__GLEW_SGIX_blend_alpha_minmax) + +#endif /* GL_SGIX_blend_alpha_minmax */ + +/* --------------------------- GL_SGIX_blend_cadd -------------------------- */ + +#ifndef GL_SGIX_blend_cadd +#define GL_SGIX_blend_cadd 1 + +#define GL_FUNC_COMPLEX_ADD_EXT 0x601C + +#define GLEW_SGIX_blend_cadd GLEW_GET_VAR(__GLEW_SGIX_blend_cadd) + +#endif /* GL_SGIX_blend_cadd */ + +/* ------------------------ GL_SGIX_blend_cmultiply ------------------------ */ + +#ifndef GL_SGIX_blend_cmultiply +#define GL_SGIX_blend_cmultiply 1 + +#define GL_FUNC_COMPLEX_MULTIPLY_EXT 0x601B + +#define GLEW_SGIX_blend_cmultiply GLEW_GET_VAR(__GLEW_SGIX_blend_cmultiply) + +#endif /* GL_SGIX_blend_cmultiply */ + +/* --------------------- GL_SGIX_calligraphic_fragment --------------------- */ + +#ifndef GL_SGIX_calligraphic_fragment +#define GL_SGIX_calligraphic_fragment 1 + +#define GLEW_SGIX_calligraphic_fragment GLEW_GET_VAR(__GLEW_SGIX_calligraphic_fragment) + +#endif /* GL_SGIX_calligraphic_fragment */ + +/* ---------------------------- GL_SGIX_clipmap ---------------------------- */ + +#ifndef GL_SGIX_clipmap +#define GL_SGIX_clipmap 1 + +#define GLEW_SGIX_clipmap GLEW_GET_VAR(__GLEW_SGIX_clipmap) + +#endif /* GL_SGIX_clipmap */ + +/* --------------------- GL_SGIX_color_matrix_accuracy --------------------- */ + +#ifndef GL_SGIX_color_matrix_accuracy +#define GL_SGIX_color_matrix_accuracy 1 + +#define GL_COLOR_MATRIX_HINT 0x8317 + +#define GLEW_SGIX_color_matrix_accuracy GLEW_GET_VAR(__GLEW_SGIX_color_matrix_accuracy) + +#endif /* GL_SGIX_color_matrix_accuracy */ + +/* --------------------- GL_SGIX_color_table_index_mode -------------------- */ + +#ifndef GL_SGIX_color_table_index_mode +#define GL_SGIX_color_table_index_mode 1 + +#define GLEW_SGIX_color_table_index_mode GLEW_GET_VAR(__GLEW_SGIX_color_table_index_mode) + +#endif /* GL_SGIX_color_table_index_mode */ + +/* ------------------------- GL_SGIX_complex_polar ------------------------- */ + +#ifndef GL_SGIX_complex_polar +#define GL_SGIX_complex_polar 1 + +#define GLEW_SGIX_complex_polar GLEW_GET_VAR(__GLEW_SGIX_complex_polar) + +#endif /* GL_SGIX_complex_polar */ + +/* ---------------------- GL_SGIX_convolution_accuracy --------------------- */ + +#ifndef GL_SGIX_convolution_accuracy +#define GL_SGIX_convolution_accuracy 1 + +#define GL_CONVOLUTION_HINT_SGIX 0x8316 + +#define GLEW_SGIX_convolution_accuracy GLEW_GET_VAR(__GLEW_SGIX_convolution_accuracy) + +#endif /* GL_SGIX_convolution_accuracy */ + +/* ---------------------------- GL_SGIX_cube_map --------------------------- */ + +#ifndef GL_SGIX_cube_map +#define GL_SGIX_cube_map 1 + +#define GL_ENV_MAP_SGIX 0x8340 +#define GL_CUBE_MAP_SGIX 0x8341 +#define GL_CUBE_MAP_ZP_SGIX 0x8342 +#define GL_CUBE_MAP_ZN_SGIX 0x8343 +#define GL_CUBE_MAP_XN_SGIX 0x8344 +#define GL_CUBE_MAP_XP_SGIX 0x8345 +#define GL_CUBE_MAP_YN_SGIX 0x8346 +#define GL_CUBE_MAP_YP_SGIX 0x8347 +#define GL_CUBE_MAP_BINDING_SGIX 0x8348 + +#define GLEW_SGIX_cube_map GLEW_GET_VAR(__GLEW_SGIX_cube_map) + +#endif /* GL_SGIX_cube_map */ + +/* ------------------------ GL_SGIX_cylinder_texgen ------------------------ */ + +#ifndef GL_SGIX_cylinder_texgen +#define GL_SGIX_cylinder_texgen 1 + +#define GLEW_SGIX_cylinder_texgen GLEW_GET_VAR(__GLEW_SGIX_cylinder_texgen) + +#endif /* GL_SGIX_cylinder_texgen */ + +/* ---------------------------- GL_SGIX_datapipe --------------------------- */ + +#ifndef GL_SGIX_datapipe +#define GL_SGIX_datapipe 1 + +#define GL_GEOMETRY_BIT 0x1 +#define GL_IMAGE_BIT 0x2 + +typedef void (GLAPIENTRY * PFNGLADDRESSSPACEPROC) (GLenum space, GLbitfield mask); +typedef GLint (GLAPIENTRY * PFNGLDATAPIPEPROC) (GLenum space); + +#define glAddressSpace GLEW_GET_FUN(__glewAddressSpace) +#define glDataPipe GLEW_GET_FUN(__glewDataPipe) + +#define GLEW_SGIX_datapipe GLEW_GET_VAR(__GLEW_SGIX_datapipe) + +#endif /* GL_SGIX_datapipe */ + +/* --------------------------- GL_SGIX_decimation -------------------------- */ + +#ifndef GL_SGIX_decimation +#define GL_SGIX_decimation 1 + +#define GLEW_SGIX_decimation GLEW_GET_VAR(__GLEW_SGIX_decimation) + +#endif /* GL_SGIX_decimation */ + +/* --------------------- GL_SGIX_depth_pass_instrument --------------------- */ + +#ifndef GL_SGIX_depth_pass_instrument +#define GL_SGIX_depth_pass_instrument 1 + +#define GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310 +#define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311 +#define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312 + +#define GLEW_SGIX_depth_pass_instrument GLEW_GET_VAR(__GLEW_SGIX_depth_pass_instrument) + +#endif /* GL_SGIX_depth_pass_instrument */ + +/* ------------------------- GL_SGIX_depth_texture ------------------------- */ + +#ifndef GL_SGIX_depth_texture +#define GL_SGIX_depth_texture 1 + +#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 +#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 +#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 + +#define GLEW_SGIX_depth_texture GLEW_GET_VAR(__GLEW_SGIX_depth_texture) + +#endif /* GL_SGIX_depth_texture */ + +/* ------------------------------ GL_SGIX_dvc ------------------------------ */ + +#ifndef GL_SGIX_dvc +#define GL_SGIX_dvc 1 + +#define GLEW_SGIX_dvc GLEW_GET_VAR(__GLEW_SGIX_dvc) + +#endif /* GL_SGIX_dvc */ + +/* -------------------------- GL_SGIX_flush_raster ------------------------- */ + +#ifndef GL_SGIX_flush_raster +#define GL_SGIX_flush_raster 1 + +typedef void (GLAPIENTRY * PFNGLFLUSHRASTERSGIXPROC) (void); + +#define glFlushRasterSGIX GLEW_GET_FUN(__glewFlushRasterSGIX) + +#define GLEW_SGIX_flush_raster GLEW_GET_VAR(__GLEW_SGIX_flush_raster) + +#endif /* GL_SGIX_flush_raster */ + +/* --------------------------- GL_SGIX_fog_blend --------------------------- */ + +#ifndef GL_SGIX_fog_blend +#define GL_SGIX_fog_blend 1 + +#define GL_FOG_BLEND_ALPHA_SGIX 0x81FE +#define GL_FOG_BLEND_COLOR_SGIX 0x81FF + +#define GLEW_SGIX_fog_blend GLEW_GET_VAR(__GLEW_SGIX_fog_blend) + +#endif /* GL_SGIX_fog_blend */ + +/* ---------------------- GL_SGIX_fog_factor_to_alpha ---------------------- */ + +#ifndef GL_SGIX_fog_factor_to_alpha +#define GL_SGIX_fog_factor_to_alpha 1 + +#define GLEW_SGIX_fog_factor_to_alpha GLEW_GET_VAR(__GLEW_SGIX_fog_factor_to_alpha) + +#endif /* GL_SGIX_fog_factor_to_alpha */ + +/* --------------------------- GL_SGIX_fog_layers -------------------------- */ + +#ifndef GL_SGIX_fog_layers +#define GL_SGIX_fog_layers 1 + +#define GL_FOG_TYPE_SGIX 0x8323 +#define GL_UNIFORM_SGIX 0x8324 +#define GL_LAYERED_SGIX 0x8325 +#define GL_FOG_GROUND_PLANE_SGIX 0x8326 +#define GL_FOG_LAYERS_POINTS_SGIX 0x8327 +#define GL_MAX_FOG_LAYERS_POINTS_SGIX 0x8328 + +typedef void (GLAPIENTRY * PFNGLFOGLAYERSSGIXPROC) (GLsizei n, const GLfloat* points); +typedef void (GLAPIENTRY * PFNGLGETFOGLAYERSSGIXPROC) (GLfloat* points); + +#define glFogLayersSGIX GLEW_GET_FUN(__glewFogLayersSGIX) +#define glGetFogLayersSGIX GLEW_GET_FUN(__glewGetFogLayersSGIX) + +#define GLEW_SGIX_fog_layers GLEW_GET_VAR(__GLEW_SGIX_fog_layers) + +#endif /* GL_SGIX_fog_layers */ + +/* --------------------------- GL_SGIX_fog_offset -------------------------- */ + +#ifndef GL_SGIX_fog_offset +#define GL_SGIX_fog_offset 1 + +#define GL_FOG_OFFSET_SGIX 0x8198 +#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 + +#define GLEW_SGIX_fog_offset GLEW_GET_VAR(__GLEW_SGIX_fog_offset) + +#endif /* GL_SGIX_fog_offset */ + +/* --------------------------- GL_SGIX_fog_patchy -------------------------- */ + +#ifndef GL_SGIX_fog_patchy +#define GL_SGIX_fog_patchy 1 + +#define GLEW_SGIX_fog_patchy GLEW_GET_VAR(__GLEW_SGIX_fog_patchy) + +#endif /* GL_SGIX_fog_patchy */ + +/* --------------------------- GL_SGIX_fog_scale --------------------------- */ + +#ifndef GL_SGIX_fog_scale +#define GL_SGIX_fog_scale 1 + +#define GL_FOG_SCALE_SGIX 0x81FC +#define GL_FOG_SCALE_VALUE_SGIX 0x81FD + +#define GLEW_SGIX_fog_scale GLEW_GET_VAR(__GLEW_SGIX_fog_scale) + +#endif /* GL_SGIX_fog_scale */ + +/* -------------------------- GL_SGIX_fog_texture -------------------------- */ + +#ifndef GL_SGIX_fog_texture +#define GL_SGIX_fog_texture 1 + +typedef void (GLAPIENTRY * PFNGLTEXTUREFOGSGIXPROC) (GLenum pname); + +#define glTextureFogSGIX GLEW_GET_FUN(__glewTextureFogSGIX) + +#define GLEW_SGIX_fog_texture GLEW_GET_VAR(__GLEW_SGIX_fog_texture) + +#endif /* GL_SGIX_fog_texture */ + +/* -------------------- GL_SGIX_fragment_lighting_space -------------------- */ + +#ifndef GL_SGIX_fragment_lighting_space +#define GL_SGIX_fragment_lighting_space 1 + +#define GL_EYE_SPACE_SGIX 0x8436 +#define GL_TANGENT_SPACE_SGIX 0x8437 +#define GL_OBJECT_SPACE_SGIX 0x8438 +#define GL_FRAGMENT_LIGHT_SPACE_SGIX 0x843D + +#define GLEW_SGIX_fragment_lighting_space GLEW_GET_VAR(__GLEW_SGIX_fragment_lighting_space) + +#endif /* GL_SGIX_fragment_lighting_space */ + +/* ------------------- GL_SGIX_fragment_specular_lighting ------------------ */ + +#ifndef GL_SGIX_fragment_specular_lighting +#define GL_SGIX_fragment_specular_lighting 1 + +typedef void (GLAPIENTRY * PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, const GLfloat param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, const GLint param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum value, GLfloat* data); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum value, GLint* data); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat* data); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint* data); + +#define glFragmentColorMaterialSGIX GLEW_GET_FUN(__glewFragmentColorMaterialSGIX) +#define glFragmentLightModelfSGIX GLEW_GET_FUN(__glewFragmentLightModelfSGIX) +#define glFragmentLightModelfvSGIX GLEW_GET_FUN(__glewFragmentLightModelfvSGIX) +#define glFragmentLightModeliSGIX GLEW_GET_FUN(__glewFragmentLightModeliSGIX) +#define glFragmentLightModelivSGIX GLEW_GET_FUN(__glewFragmentLightModelivSGIX) +#define glFragmentLightfSGIX GLEW_GET_FUN(__glewFragmentLightfSGIX) +#define glFragmentLightfvSGIX GLEW_GET_FUN(__glewFragmentLightfvSGIX) +#define glFragmentLightiSGIX GLEW_GET_FUN(__glewFragmentLightiSGIX) +#define glFragmentLightivSGIX GLEW_GET_FUN(__glewFragmentLightivSGIX) +#define glFragmentMaterialfSGIX GLEW_GET_FUN(__glewFragmentMaterialfSGIX) +#define glFragmentMaterialfvSGIX GLEW_GET_FUN(__glewFragmentMaterialfvSGIX) +#define glFragmentMaterialiSGIX GLEW_GET_FUN(__glewFragmentMaterialiSGIX) +#define glFragmentMaterialivSGIX GLEW_GET_FUN(__glewFragmentMaterialivSGIX) +#define glGetFragmentLightfvSGIX GLEW_GET_FUN(__glewGetFragmentLightfvSGIX) +#define glGetFragmentLightivSGIX GLEW_GET_FUN(__glewGetFragmentLightivSGIX) +#define glGetFragmentMaterialfvSGIX GLEW_GET_FUN(__glewGetFragmentMaterialfvSGIX) +#define glGetFragmentMaterialivSGIX GLEW_GET_FUN(__glewGetFragmentMaterialivSGIX) + +#define GLEW_SGIX_fragment_specular_lighting GLEW_GET_VAR(__GLEW_SGIX_fragment_specular_lighting) + +#endif /* GL_SGIX_fragment_specular_lighting */ + +/* ---------------------- GL_SGIX_fragments_instrument --------------------- */ + +#ifndef GL_SGIX_fragments_instrument +#define GL_SGIX_fragments_instrument 1 + +#define GL_FRAGMENTS_INSTRUMENT_SGIX 0x8313 +#define GL_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX 0x8314 +#define GL_FRAGMENTS_INSTRUMENT_MAX_SGIX 0x8315 + +#define GLEW_SGIX_fragments_instrument GLEW_GET_VAR(__GLEW_SGIX_fragments_instrument) + +#endif /* GL_SGIX_fragments_instrument */ + +/* --------------------------- GL_SGIX_framezoom --------------------------- */ + +#ifndef GL_SGIX_framezoom +#define GL_SGIX_framezoom 1 + +typedef void (GLAPIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor); + +#define glFrameZoomSGIX GLEW_GET_FUN(__glewFrameZoomSGIX) + +#define GLEW_SGIX_framezoom GLEW_GET_VAR(__GLEW_SGIX_framezoom) + +#endif /* GL_SGIX_framezoom */ + +/* -------------------------- GL_SGIX_icc_texture -------------------------- */ + +#ifndef GL_SGIX_icc_texture +#define GL_SGIX_icc_texture 1 + +#define GL_RGB_ICC_SGIX 0x8460 +#define GL_RGBA_ICC_SGIX 0x8461 +#define GL_ALPHA_ICC_SGIX 0x8462 +#define GL_LUMINANCE_ICC_SGIX 0x8463 +#define GL_INTENSITY_ICC_SGIX 0x8464 +#define GL_LUMINANCE_ALPHA_ICC_SGIX 0x8465 +#define GL_R5_G6_B5_ICC_SGIX 0x8466 +#define GL_R5_G6_B5_A8_ICC_SGIX 0x8467 +#define GL_ALPHA16_ICC_SGIX 0x8468 +#define GL_LUMINANCE16_ICC_SGIX 0x8469 +#define GL_INTENSITY16_ICC_SGIX 0x846A +#define GL_LUMINANCE16_ALPHA8_ICC_SGIX 0x846B + +#define GLEW_SGIX_icc_texture GLEW_GET_VAR(__GLEW_SGIX_icc_texture) + +#endif /* GL_SGIX_icc_texture */ + +/* ------------------------ GL_SGIX_igloo_interface ------------------------ */ + +#ifndef GL_SGIX_igloo_interface +#define GL_SGIX_igloo_interface 1 + +#define GL_IGLOO_FULLSCREEN_SGIX 0x819E +#define GL_IGLOO_VIEWPORT_OFFSET_SGIX 0x819F +#define GL_IGLOO_SWAPTMESH_SGIX 0x81A0 +#define GL_IGLOO_COLORNORMAL_SGIX 0x81A1 +#define GL_IGLOO_IRISGL_MODE_SGIX 0x81A2 +#define GL_IGLOO_LMC_COLOR_SGIX 0x81A3 +#define GL_IGLOO_TMESHMODE_SGIX 0x81A4 +#define GL_LIGHT31 0xBEAD + +typedef void (GLAPIENTRY * PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, void *param); + +#define glIglooInterfaceSGIX GLEW_GET_FUN(__glewIglooInterfaceSGIX) + +#define GLEW_SGIX_igloo_interface GLEW_GET_VAR(__GLEW_SGIX_igloo_interface) + +#endif /* GL_SGIX_igloo_interface */ + +/* ----------------------- GL_SGIX_image_compression ----------------------- */ + +#ifndef GL_SGIX_image_compression +#define GL_SGIX_image_compression 1 + +#define GLEW_SGIX_image_compression GLEW_GET_VAR(__GLEW_SGIX_image_compression) + +#endif /* GL_SGIX_image_compression */ + +/* ---------------------- GL_SGIX_impact_pixel_texture --------------------- */ + +#ifndef GL_SGIX_impact_pixel_texture +#define GL_SGIX_impact_pixel_texture 1 + +#define GLEW_SGIX_impact_pixel_texture GLEW_GET_VAR(__GLEW_SGIX_impact_pixel_texture) + +#endif /* GL_SGIX_impact_pixel_texture */ + +/* ------------------------ GL_SGIX_instrument_error ----------------------- */ + +#ifndef GL_SGIX_instrument_error +#define GL_SGIX_instrument_error 1 + +#define GLEW_SGIX_instrument_error GLEW_GET_VAR(__GLEW_SGIX_instrument_error) + +#endif /* GL_SGIX_instrument_error */ + +/* --------------------------- GL_SGIX_interlace --------------------------- */ + +#ifndef GL_SGIX_interlace +#define GL_SGIX_interlace 1 + +#define GL_INTERLACE_SGIX 0x8094 + +#define GLEW_SGIX_interlace GLEW_GET_VAR(__GLEW_SGIX_interlace) + +#endif /* GL_SGIX_interlace */ + +/* ------------------------- GL_SGIX_ir_instrument1 ------------------------ */ + +#ifndef GL_SGIX_ir_instrument1 +#define GL_SGIX_ir_instrument1 1 + +#define GLEW_SGIX_ir_instrument1 GLEW_GET_VAR(__GLEW_SGIX_ir_instrument1) + +#endif /* GL_SGIX_ir_instrument1 */ + +/* ----------------------- GL_SGIX_line_quality_hint ----------------------- */ + +#ifndef GL_SGIX_line_quality_hint +#define GL_SGIX_line_quality_hint 1 + +#define GL_LINE_QUALITY_HINT_SGIX 0x835B + +#define GLEW_SGIX_line_quality_hint GLEW_GET_VAR(__GLEW_SGIX_line_quality_hint) + +#endif /* GL_SGIX_line_quality_hint */ + +/* ------------------------- GL_SGIX_list_priority ------------------------- */ + +#ifndef GL_SGIX_list_priority +#define GL_SGIX_list_priority 1 + +#define GLEW_SGIX_list_priority GLEW_GET_VAR(__GLEW_SGIX_list_priority) + +#endif /* GL_SGIX_list_priority */ + +/* ----------------------------- GL_SGIX_mpeg1 ----------------------------- */ + +#ifndef GL_SGIX_mpeg1 +#define GL_SGIX_mpeg1 1 + +typedef void (GLAPIENTRY * PFNGLALLOCMPEGPREDICTORSSGIXPROC) (GLsizei width, GLsizei height, GLsizei n, GLuint* predictors); +typedef void (GLAPIENTRY * PFNGLDELETEMPEGPREDICTORSSGIXPROC) (GLsizei n, GLuint* predictors); +typedef void (GLAPIENTRY * PFNGLGENMPEGPREDICTORSSGIXPROC) (GLsizei n, GLuint* predictors); +typedef void (GLAPIENTRY * PFNGLGETMPEGPARAMETERFVSGIXPROC) (GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMPEGPARAMETERIVSGIXPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETMPEGPREDICTORSGIXPROC) (GLenum target, GLenum format, GLenum type, void *pixels); +typedef void (GLAPIENTRY * PFNGLGETMPEGQUANTTABLEUBVPROC) (GLenum target, GLubyte* values); +typedef GLboolean (GLAPIENTRY * PFNGLISMPEGPREDICTORSGIXPROC) (GLuint predictor); +typedef void (GLAPIENTRY * PFNGLMPEGPREDICTORSGIXPROC) (GLenum target, GLenum format, GLenum type, void *pixels); +typedef void (GLAPIENTRY * PFNGLMPEGQUANTTABLEUBVPROC) (GLenum target, GLubyte* values); +typedef void (GLAPIENTRY * PFNGLSWAPMPEGPREDICTORSSGIXPROC) (GLenum target0, GLenum target1); + +#define glAllocMPEGPredictorsSGIX GLEW_GET_FUN(__glewAllocMPEGPredictorsSGIX) +#define glDeleteMPEGPredictorsSGIX GLEW_GET_FUN(__glewDeleteMPEGPredictorsSGIX) +#define glGenMPEGPredictorsSGIX GLEW_GET_FUN(__glewGenMPEGPredictorsSGIX) +#define glGetMPEGParameterfvSGIX GLEW_GET_FUN(__glewGetMPEGParameterfvSGIX) +#define glGetMPEGParameterivSGIX GLEW_GET_FUN(__glewGetMPEGParameterivSGIX) +#define glGetMPEGPredictorSGIX GLEW_GET_FUN(__glewGetMPEGPredictorSGIX) +#define glGetMPEGQuantTableubv GLEW_GET_FUN(__glewGetMPEGQuantTableubv) +#define glIsMPEGPredictorSGIX GLEW_GET_FUN(__glewIsMPEGPredictorSGIX) +#define glMPEGPredictorSGIX GLEW_GET_FUN(__glewMPEGPredictorSGIX) +#define glMPEGQuantTableubv GLEW_GET_FUN(__glewMPEGQuantTableubv) +#define glSwapMPEGPredictorsSGIX GLEW_GET_FUN(__glewSwapMPEGPredictorsSGIX) + +#define GLEW_SGIX_mpeg1 GLEW_GET_VAR(__GLEW_SGIX_mpeg1) + +#endif /* GL_SGIX_mpeg1 */ + +/* ----------------------------- GL_SGIX_mpeg2 ----------------------------- */ + +#ifndef GL_SGIX_mpeg2 +#define GL_SGIX_mpeg2 1 + +#define GLEW_SGIX_mpeg2 GLEW_GET_VAR(__GLEW_SGIX_mpeg2) + +#endif /* GL_SGIX_mpeg2 */ + +/* ------------------ GL_SGIX_nonlinear_lighting_pervertex ----------------- */ + +#ifndef GL_SGIX_nonlinear_lighting_pervertex +#define GL_SGIX_nonlinear_lighting_pervertex 1 + +typedef void (GLAPIENTRY * PFNGLGETNONLINLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLint* terms, GLfloat *data); +typedef void (GLAPIENTRY * PFNGLGETNONLINMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLint* terms, const GLfloat *data); +typedef void (GLAPIENTRY * PFNGLNONLINLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLint terms, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLNONLINMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLint terms, const GLfloat* params); + +#define glGetNonlinLightfvSGIX GLEW_GET_FUN(__glewGetNonlinLightfvSGIX) +#define glGetNonlinMaterialfvSGIX GLEW_GET_FUN(__glewGetNonlinMaterialfvSGIX) +#define glNonlinLightfvSGIX GLEW_GET_FUN(__glewNonlinLightfvSGIX) +#define glNonlinMaterialfvSGIX GLEW_GET_FUN(__glewNonlinMaterialfvSGIX) + +#define GLEW_SGIX_nonlinear_lighting_pervertex GLEW_GET_VAR(__GLEW_SGIX_nonlinear_lighting_pervertex) + +#endif /* GL_SGIX_nonlinear_lighting_pervertex */ + +/* --------------------------- GL_SGIX_nurbs_eval -------------------------- */ + +#ifndef GL_SGIX_nurbs_eval +#define GL_SGIX_nurbs_eval 1 + +#define GL_MAP1_VERTEX_3_NURBS_SGIX 0x81CB +#define GL_MAP1_VERTEX_4_NURBS_SGIX 0x81CC +#define GL_MAP1_INDEX_NURBS_SGIX 0x81CD +#define GL_MAP1_COLOR_4_NURBS_SGIX 0x81CE +#define GL_MAP1_NORMAL_NURBS_SGIX 0x81CF +#define GL_MAP1_TEXTURE_COORD_1_NURBS_SGIX 0x81E0 +#define GL_MAP1_TEXTURE_COORD_2_NURBS_SGIX 0x81E1 +#define GL_MAP1_TEXTURE_COORD_3_NURBS_SGIX 0x81E2 +#define GL_MAP1_TEXTURE_COORD_4_NURBS_SGIX 0x81E3 +#define GL_MAP2_VERTEX_3_NURBS_SGIX 0x81E4 +#define GL_MAP2_VERTEX_4_NURBS_SGIX 0x81E5 +#define GL_MAP2_INDEX_NURBS_SGIX 0x81E6 +#define GL_MAP2_COLOR_4_NURBS_SGIX 0x81E7 +#define GL_MAP2_NORMAL_NURBS_SGIX 0x81E8 +#define GL_MAP2_TEXTURE_COORD_1_NURBS_SGIX 0x81E9 +#define GL_MAP2_TEXTURE_COORD_2_NURBS_SGIX 0x81EA +#define GL_MAP2_TEXTURE_COORD_3_NURBS_SGIX 0x81EB +#define GL_MAP2_TEXTURE_COORD_4_NURBS_SGIX 0x81EC +#define GL_NURBS_KNOT_COUNT_SGIX 0x81ED +#define GL_NURBS_KNOT_VECTOR_SGIX 0x81EE + +#define GLEW_SGIX_nurbs_eval GLEW_GET_VAR(__GLEW_SGIX_nurbs_eval) + +#endif /* GL_SGIX_nurbs_eval */ + +/* ---------------------- GL_SGIX_occlusion_instrument --------------------- */ + +#ifndef GL_SGIX_occlusion_instrument +#define GL_SGIX_occlusion_instrument 1 + +#define GL_OCCLUSION_INSTRUMENT_SGIX 0x6060 + +#define GLEW_SGIX_occlusion_instrument GLEW_GET_VAR(__GLEW_SGIX_occlusion_instrument) + +#endif /* GL_SGIX_occlusion_instrument */ + +/* ------------------------- GL_SGIX_packed_6bytes ------------------------- */ + +#ifndef GL_SGIX_packed_6bytes +#define GL_SGIX_packed_6bytes 1 + +#define GLEW_SGIX_packed_6bytes GLEW_GET_VAR(__GLEW_SGIX_packed_6bytes) + +#endif /* GL_SGIX_packed_6bytes */ + +/* ------------------------- GL_SGIX_pixel_texture ------------------------- */ + +#ifndef GL_SGIX_pixel_texture +#define GL_SGIX_pixel_texture 1 + +typedef void (GLAPIENTRY * PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); + +#define glPixelTexGenSGIX GLEW_GET_FUN(__glewPixelTexGenSGIX) + +#define GLEW_SGIX_pixel_texture GLEW_GET_VAR(__GLEW_SGIX_pixel_texture) + +#endif /* GL_SGIX_pixel_texture */ + +/* ----------------------- GL_SGIX_pixel_texture_bits ---------------------- */ + +#ifndef GL_SGIX_pixel_texture_bits +#define GL_SGIX_pixel_texture_bits 1 + +#define GLEW_SGIX_pixel_texture_bits GLEW_GET_VAR(__GLEW_SGIX_pixel_texture_bits) + +#endif /* GL_SGIX_pixel_texture_bits */ + +/* ----------------------- GL_SGIX_pixel_texture_lod ----------------------- */ + +#ifndef GL_SGIX_pixel_texture_lod +#define GL_SGIX_pixel_texture_lod 1 + +#define GLEW_SGIX_pixel_texture_lod GLEW_GET_VAR(__GLEW_SGIX_pixel_texture_lod) + +#endif /* GL_SGIX_pixel_texture_lod */ + +/* -------------------------- GL_SGIX_pixel_tiles -------------------------- */ + +#ifndef GL_SGIX_pixel_tiles +#define GL_SGIX_pixel_tiles 1 + +#define GLEW_SGIX_pixel_tiles GLEW_GET_VAR(__GLEW_SGIX_pixel_tiles) + +#endif /* GL_SGIX_pixel_tiles */ + +/* ------------------------- GL_SGIX_polynomial_ffd ------------------------ */ + +#ifndef GL_SGIX_polynomial_ffd +#define GL_SGIX_polynomial_ffd 1 + +#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x1 +#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x2 + +typedef void (GLAPIENTRY * PFNGLDEFORMSGIXPROC) (GLbitfield mask); +typedef void (GLAPIENTRY * PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask); + +#define glDeformSGIX GLEW_GET_FUN(__glewDeformSGIX) +#define glLoadIdentityDeformationMapSGIX GLEW_GET_FUN(__glewLoadIdentityDeformationMapSGIX) + +#define GLEW_SGIX_polynomial_ffd GLEW_GET_VAR(__GLEW_SGIX_polynomial_ffd) + +#endif /* GL_SGIX_polynomial_ffd */ + +/* --------------------------- GL_SGIX_quad_mesh --------------------------- */ + +#ifndef GL_SGIX_quad_mesh +#define GL_SGIX_quad_mesh 1 + +typedef void (GLAPIENTRY * PFNGLMESHBREADTHSGIXPROC) (GLint breadth); +typedef void (GLAPIENTRY * PFNGLMESHSTRIDESGIXPROC) (GLint stride); + +#define glMeshBreadthSGIX GLEW_GET_FUN(__glewMeshBreadthSGIX) +#define glMeshStrideSGIX GLEW_GET_FUN(__glewMeshStrideSGIX) + +#define GLEW_SGIX_quad_mesh GLEW_GET_VAR(__GLEW_SGIX_quad_mesh) + +#endif /* GL_SGIX_quad_mesh */ + +/* ------------------------ GL_SGIX_reference_plane ------------------------ */ + +#ifndef GL_SGIX_reference_plane +#define GL_SGIX_reference_plane 1 + +typedef void (GLAPIENTRY * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble* equation); + +#define glReferencePlaneSGIX GLEW_GET_FUN(__glewReferencePlaneSGIX) + +#define GLEW_SGIX_reference_plane GLEW_GET_VAR(__GLEW_SGIX_reference_plane) + +#endif /* GL_SGIX_reference_plane */ + +/* ---------------------------- GL_SGIX_resample --------------------------- */ + +#ifndef GL_SGIX_resample +#define GL_SGIX_resample 1 + +#define GL_PACK_RESAMPLE_SGIX 0x842E +#define GL_UNPACK_RESAMPLE_SGIX 0x842F +#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 +#define GL_RESAMPLE_REPLICATE_SGIX 0x8433 +#define GL_RESAMPLE_ZERO_FILL_SGIX 0x8434 + +#define GLEW_SGIX_resample GLEW_GET_VAR(__GLEW_SGIX_resample) + +#endif /* GL_SGIX_resample */ + +/* ------------------------- GL_SGIX_scalebias_hint ------------------------ */ + +#ifndef GL_SGIX_scalebias_hint +#define GL_SGIX_scalebias_hint 1 + +#define GL_SCALEBIAS_HINT_SGIX 0x8322 + +#define GLEW_SGIX_scalebias_hint GLEW_GET_VAR(__GLEW_SGIX_scalebias_hint) + +#endif /* GL_SGIX_scalebias_hint */ + +/* ----------------------------- GL_SGIX_shadow ---------------------------- */ + +#ifndef GL_SGIX_shadow +#define GL_SGIX_shadow 1 + +#define GL_TEXTURE_COMPARE_SGIX 0x819A +#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B +#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C +#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D + +#define GLEW_SGIX_shadow GLEW_GET_VAR(__GLEW_SGIX_shadow) + +#endif /* GL_SGIX_shadow */ + +/* ------------------------- GL_SGIX_shadow_ambient ------------------------ */ + +#ifndef GL_SGIX_shadow_ambient +#define GL_SGIX_shadow_ambient 1 + +#define GL_SHADOW_AMBIENT_SGIX 0x80BF + +#define GLEW_SGIX_shadow_ambient GLEW_GET_VAR(__GLEW_SGIX_shadow_ambient) + +#endif /* GL_SGIX_shadow_ambient */ + +/* ------------------------------ GL_SGIX_slim ----------------------------- */ + +#ifndef GL_SGIX_slim +#define GL_SGIX_slim 1 + +#define GL_PACK_MAX_COMPRESSED_SIZE_SGIX 0x831B +#define GL_SLIM8U_SGIX 0x831D +#define GL_SLIM10U_SGIX 0x831E +#define GL_SLIM12S_SGIX 0x831F + +#define GLEW_SGIX_slim GLEW_GET_VAR(__GLEW_SGIX_slim) + +#endif /* GL_SGIX_slim */ + +/* ------------------------ GL_SGIX_spotlight_cutoff ----------------------- */ + +#ifndef GL_SGIX_spotlight_cutoff +#define GL_SGIX_spotlight_cutoff 1 + +#define GL_SPOT_CUTOFF_DELTA_SGIX 0x8193 + +#define GLEW_SGIX_spotlight_cutoff GLEW_GET_VAR(__GLEW_SGIX_spotlight_cutoff) + +#endif /* GL_SGIX_spotlight_cutoff */ + +/* ----------------------------- GL_SGIX_sprite ---------------------------- */ + +#ifndef GL_SGIX_sprite +#define GL_SGIX_sprite 1 + +typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, GLint* params); + +#define glSpriteParameterfSGIX GLEW_GET_FUN(__glewSpriteParameterfSGIX) +#define glSpriteParameterfvSGIX GLEW_GET_FUN(__glewSpriteParameterfvSGIX) +#define glSpriteParameteriSGIX GLEW_GET_FUN(__glewSpriteParameteriSGIX) +#define glSpriteParameterivSGIX GLEW_GET_FUN(__glewSpriteParameterivSGIX) + +#define GLEW_SGIX_sprite GLEW_GET_VAR(__GLEW_SGIX_sprite) + +#endif /* GL_SGIX_sprite */ + +/* -------------------------- GL_SGIX_subdiv_patch ------------------------- */ + +#ifndef GL_SGIX_subdiv_patch +#define GL_SGIX_subdiv_patch 1 + +#define GLEW_SGIX_subdiv_patch GLEW_GET_VAR(__GLEW_SGIX_subdiv_patch) + +#endif /* GL_SGIX_subdiv_patch */ + +/* --------------------------- GL_SGIX_subsample --------------------------- */ + +#ifndef GL_SGIX_subsample +#define GL_SGIX_subsample 1 + +#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 +#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 +#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 +#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 +#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 + +#define GLEW_SGIX_subsample GLEW_GET_VAR(__GLEW_SGIX_subsample) + +#endif /* GL_SGIX_subsample */ + +/* ----------------------- GL_SGIX_tag_sample_buffer ----------------------- */ + +#ifndef GL_SGIX_tag_sample_buffer +#define GL_SGIX_tag_sample_buffer 1 + +typedef void (GLAPIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); + +#define glTagSampleBufferSGIX GLEW_GET_FUN(__glewTagSampleBufferSGIX) + +#define GLEW_SGIX_tag_sample_buffer GLEW_GET_VAR(__GLEW_SGIX_tag_sample_buffer) + +#endif /* GL_SGIX_tag_sample_buffer */ + +/* ------------------------ GL_SGIX_texture_add_env ------------------------ */ + +#ifndef GL_SGIX_texture_add_env +#define GL_SGIX_texture_add_env 1 + +#define GLEW_SGIX_texture_add_env GLEW_GET_VAR(__GLEW_SGIX_texture_add_env) + +#endif /* GL_SGIX_texture_add_env */ + +/* -------------------- GL_SGIX_texture_coordinate_clamp ------------------- */ + +#ifndef GL_SGIX_texture_coordinate_clamp +#define GL_SGIX_texture_coordinate_clamp 1 + +#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 +#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A +#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B + +#define GLEW_SGIX_texture_coordinate_clamp GLEW_GET_VAR(__GLEW_SGIX_texture_coordinate_clamp) + +#endif /* GL_SGIX_texture_coordinate_clamp */ + +/* ------------------------ GL_SGIX_texture_lod_bias ----------------------- */ + +#ifndef GL_SGIX_texture_lod_bias +#define GL_SGIX_texture_lod_bias 1 + +#define GLEW_SGIX_texture_lod_bias GLEW_GET_VAR(__GLEW_SGIX_texture_lod_bias) + +#endif /* GL_SGIX_texture_lod_bias */ + +/* ------------------- GL_SGIX_texture_mipmap_anisotropic ------------------ */ + +#ifndef GL_SGIX_texture_mipmap_anisotropic +#define GL_SGIX_texture_mipmap_anisotropic 1 + +#define GL_TEXTURE_MIPMAP_ANISOTROPY_SGIX 0x832E +#define GL_MAX_MIPMAP_ANISOTROPY_SGIX 0x832F + +#define GLEW_SGIX_texture_mipmap_anisotropic GLEW_GET_VAR(__GLEW_SGIX_texture_mipmap_anisotropic) + +#endif /* GL_SGIX_texture_mipmap_anisotropic */ + +/* ---------------------- GL_SGIX_texture_multi_buffer --------------------- */ + +#ifndef GL_SGIX_texture_multi_buffer +#define GL_SGIX_texture_multi_buffer 1 + +#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E + +#define GLEW_SGIX_texture_multi_buffer GLEW_GET_VAR(__GLEW_SGIX_texture_multi_buffer) + +#endif /* GL_SGIX_texture_multi_buffer */ + +/* ------------------------- GL_SGIX_texture_phase ------------------------- */ + +#ifndef GL_SGIX_texture_phase +#define GL_SGIX_texture_phase 1 + +#define GL_PHASE_SGIX 0x832A + +#define GLEW_SGIX_texture_phase GLEW_GET_VAR(__GLEW_SGIX_texture_phase) + +#endif /* GL_SGIX_texture_phase */ + +/* ------------------------- GL_SGIX_texture_range ------------------------- */ + +#ifndef GL_SGIX_texture_range +#define GL_SGIX_texture_range 1 + +#define GL_RGB_SIGNED_SGIX 0x85E0 +#define GL_RGBA_SIGNED_SGIX 0x85E1 +#define GL_ALPHA_SIGNED_SGIX 0x85E2 +#define GL_LUMINANCE_SIGNED_SGIX 0x85E3 +#define GL_INTENSITY_SIGNED_SGIX 0x85E4 +#define GL_LUMINANCE_ALPHA_SIGNED_SGIX 0x85E5 +#define GL_RGB16_SIGNED_SGIX 0x85E6 +#define GL_RGBA16_SIGNED_SGIX 0x85E7 +#define GL_ALPHA16_SIGNED_SGIX 0x85E8 +#define GL_LUMINANCE16_SIGNED_SGIX 0x85E9 +#define GL_INTENSITY16_SIGNED_SGIX 0x85EA +#define GL_LUMINANCE16_ALPHA16_SIGNED_SGIX 0x85EB +#define GL_RGB_EXTENDED_RANGE_SGIX 0x85EC +#define GL_RGBA_EXTENDED_RANGE_SGIX 0x85ED +#define GL_ALPHA_EXTENDED_RANGE_SGIX 0x85EE +#define GL_LUMINANCE_EXTENDED_RANGE_SGIX 0x85EF +#define GL_INTENSITY_EXTENDED_RANGE_SGIX 0x85F0 +#define GL_LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX 0x85F1 +#define GL_RGB16_EXTENDED_RANGE_SGIX 0x85F2 +#define GL_RGBA16_EXTENDED_RANGE_SGIX 0x85F3 +#define GL_ALPHA16_EXTENDED_RANGE_SGIX 0x85F4 +#define GL_LUMINANCE16_EXTENDED_RANGE_SGIX 0x85F5 +#define GL_INTENSITY16_EXTENDED_RANGE_SGIX 0x85F6 +#define GL_LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX 0x85F7 +#define GL_MIN_LUMINANCE_SGIS 0x85F8 +#define GL_MAX_LUMINANCE_SGIS 0x85F9 +#define GL_MIN_INTENSITY_SGIS 0x85FA +#define GL_MAX_INTENSITY_SGIS 0x85FB + +#define GLEW_SGIX_texture_range GLEW_GET_VAR(__GLEW_SGIX_texture_range) + +#endif /* GL_SGIX_texture_range */ + +/* ----------------------- GL_SGIX_texture_scale_bias ---------------------- */ + +#ifndef GL_SGIX_texture_scale_bias +#define GL_SGIX_texture_scale_bias 1 + +#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 +#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A +#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B +#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C + +#define GLEW_SGIX_texture_scale_bias GLEW_GET_VAR(__GLEW_SGIX_texture_scale_bias) + +#endif /* GL_SGIX_texture_scale_bias */ + +/* ---------------------- GL_SGIX_texture_supersample ---------------------- */ + +#ifndef GL_SGIX_texture_supersample +#define GL_SGIX_texture_supersample 1 + +#define GLEW_SGIX_texture_supersample GLEW_GET_VAR(__GLEW_SGIX_texture_supersample) + +#endif /* GL_SGIX_texture_supersample */ + +/* --------------------------- GL_SGIX_vector_ops -------------------------- */ + +#ifndef GL_SGIX_vector_ops +#define GL_SGIX_vector_ops 1 + +typedef void (GLAPIENTRY * PFNGLGETVECTOROPERATIONSGIXPROC) (GLenum operation); +typedef void (GLAPIENTRY * PFNGLVECTOROPERATIONSGIXPROC) (GLenum operation); + +#define glGetVectorOperationSGIX GLEW_GET_FUN(__glewGetVectorOperationSGIX) +#define glVectorOperationSGIX GLEW_GET_FUN(__glewVectorOperationSGIX) + +#define GLEW_SGIX_vector_ops GLEW_GET_VAR(__GLEW_SGIX_vector_ops) + +#endif /* GL_SGIX_vector_ops */ + +/* ---------------------- GL_SGIX_vertex_array_object ---------------------- */ + +#ifndef GL_SGIX_vertex_array_object +#define GL_SGIX_vertex_array_object 1 + +typedef GLboolean (GLAPIENTRY * PFNGLAREVERTEXARRAYSRESIDENTSGIXPROC) (GLsizei n, const GLuint* arrays, GLboolean* residences); +typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYSGIXPROC) (GLuint array); +typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSSGIXPROC) (GLsizei n, const GLuint* arrays); +typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSSGIXPROC) (GLsizei n, GLuint* arrays); +typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYSGIXPROC) (GLuint array); +typedef void (GLAPIENTRY * PFNGLPRIORITIZEVERTEXARRAYSSGIXPROC) (GLsizei n, const GLuint* arrays, const GLclampf* priorities); + +#define glAreVertexArraysResidentSGIX GLEW_GET_FUN(__glewAreVertexArraysResidentSGIX) +#define glBindVertexArraySGIX GLEW_GET_FUN(__glewBindVertexArraySGIX) +#define glDeleteVertexArraysSGIX GLEW_GET_FUN(__glewDeleteVertexArraysSGIX) +#define glGenVertexArraysSGIX GLEW_GET_FUN(__glewGenVertexArraysSGIX) +#define glIsVertexArraySGIX GLEW_GET_FUN(__glewIsVertexArraySGIX) +#define glPrioritizeVertexArraysSGIX GLEW_GET_FUN(__glewPrioritizeVertexArraysSGIX) + +#define GLEW_SGIX_vertex_array_object GLEW_GET_VAR(__GLEW_SGIX_vertex_array_object) + +#endif /* GL_SGIX_vertex_array_object */ + +/* ------------------------- GL_SGIX_vertex_preclip ------------------------ */ + +#ifndef GL_SGIX_vertex_preclip +#define GL_SGIX_vertex_preclip 1 + +#define GL_VERTEX_PRECLIP_SGIX 0x83EE +#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF + +#define GLEW_SGIX_vertex_preclip GLEW_GET_VAR(__GLEW_SGIX_vertex_preclip) + +#endif /* GL_SGIX_vertex_preclip */ + +/* ---------------------- GL_SGIX_vertex_preclip_hint ---------------------- */ + +#ifndef GL_SGIX_vertex_preclip_hint +#define GL_SGIX_vertex_preclip_hint 1 + +#define GL_VERTEX_PRECLIP_SGIX 0x83EE +#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF + +#define GLEW_SGIX_vertex_preclip_hint GLEW_GET_VAR(__GLEW_SGIX_vertex_preclip_hint) + +#endif /* GL_SGIX_vertex_preclip_hint */ + +/* ----------------------------- GL_SGIX_ycrcb ----------------------------- */ + +#ifndef GL_SGIX_ycrcb +#define GL_SGIX_ycrcb 1 + +#define GLEW_SGIX_ycrcb GLEW_GET_VAR(__GLEW_SGIX_ycrcb) + +#endif /* GL_SGIX_ycrcb */ + +/* ------------------------ GL_SGIX_ycrcb_subsample ------------------------ */ + +#ifndef GL_SGIX_ycrcb_subsample +#define GL_SGIX_ycrcb_subsample 1 + +#define GLEW_SGIX_ycrcb_subsample GLEW_GET_VAR(__GLEW_SGIX_ycrcb_subsample) + +#endif /* GL_SGIX_ycrcb_subsample */ + +/* ----------------------------- GL_SGIX_ycrcba ---------------------------- */ + +#ifndef GL_SGIX_ycrcba +#define GL_SGIX_ycrcba 1 + +#define GL_YCRCB_SGIX 0x8318 +#define GL_YCRCBA_SGIX 0x8319 + +#define GLEW_SGIX_ycrcba GLEW_GET_VAR(__GLEW_SGIX_ycrcba) + +#endif /* GL_SGIX_ycrcba */ + +/* -------------------------- GL_SGI_color_matrix -------------------------- */ + +#ifndef GL_SGI_color_matrix +#define GL_SGI_color_matrix 1 + +#define GL_COLOR_MATRIX_SGI 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB + +#define GLEW_SGI_color_matrix GLEW_GET_VAR(__GLEW_SGI_color_matrix) + +#endif /* GL_SGI_color_matrix */ + +/* --------------------------- GL_SGI_color_table -------------------------- */ + +#ifndef GL_SGI_color_table +#define GL_SGI_color_table 1 + +#define GL_COLOR_TABLE_SGI 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 +#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 +#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 +#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 +#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 +#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF + +typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); +typedef void (GLAPIENTRY * PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, void *table); + +#define glColorTableParameterfvSGI GLEW_GET_FUN(__glewColorTableParameterfvSGI) +#define glColorTableParameterivSGI GLEW_GET_FUN(__glewColorTableParameterivSGI) +#define glColorTableSGI GLEW_GET_FUN(__glewColorTableSGI) +#define glCopyColorTableSGI GLEW_GET_FUN(__glewCopyColorTableSGI) +#define glGetColorTableParameterfvSGI GLEW_GET_FUN(__glewGetColorTableParameterfvSGI) +#define glGetColorTableParameterivSGI GLEW_GET_FUN(__glewGetColorTableParameterivSGI) +#define glGetColorTableSGI GLEW_GET_FUN(__glewGetColorTableSGI) + +#define GLEW_SGI_color_table GLEW_GET_VAR(__GLEW_SGI_color_table) + +#endif /* GL_SGI_color_table */ + +/* ----------------------------- GL_SGI_complex ---------------------------- */ + +#ifndef GL_SGI_complex +#define GL_SGI_complex 1 + +#define GLEW_SGI_complex GLEW_GET_VAR(__GLEW_SGI_complex) + +#endif /* GL_SGI_complex */ + +/* -------------------------- GL_SGI_complex_type -------------------------- */ + +#ifndef GL_SGI_complex_type +#define GL_SGI_complex_type 1 + +#define GL_COMPLEX_UNSIGNED_BYTE_SGI 0x81BD +#define GL_COMPLEX_BYTE_SGI 0x81BE +#define GL_COMPLEX_UNSIGNED_SHORT_SGI 0x81BF +#define GL_COMPLEX_SHORT_SGI 0x81C0 +#define GL_COMPLEX_UNSIGNED_INT_SGI 0x81C1 +#define GL_COMPLEX_INT_SGI 0x81C2 +#define GL_COMPLEX_FLOAT_SGI 0x81C3 + +#define GLEW_SGI_complex_type GLEW_GET_VAR(__GLEW_SGI_complex_type) + +#endif /* GL_SGI_complex_type */ + +/* ------------------------------- GL_SGI_fft ------------------------------ */ + +#ifndef GL_SGI_fft +#define GL_SGI_fft 1 + +#define GL_PIXEL_TRANSFORM_OPERATOR_SGI 0x81C4 +#define GL_CONVOLUTION_SGI 0x81C5 +#define GL_FFT_1D_SGI 0x81C6 +#define GL_PIXEL_TRANSFORM_SGI 0x81C7 +#define GL_MAX_FFT_WIDTH_SGI 0x81C8 + +typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFSGIPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERISGIPROC) (GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMSGIPROC) (GLenum target); + +#define glGetPixelTransformParameterfvSGI GLEW_GET_FUN(__glewGetPixelTransformParameterfvSGI) +#define glGetPixelTransformParameterivSGI GLEW_GET_FUN(__glewGetPixelTransformParameterivSGI) +#define glPixelTransformParameterfSGI GLEW_GET_FUN(__glewPixelTransformParameterfSGI) +#define glPixelTransformParameterfvSGI GLEW_GET_FUN(__glewPixelTransformParameterfvSGI) +#define glPixelTransformParameteriSGI GLEW_GET_FUN(__glewPixelTransformParameteriSGI) +#define glPixelTransformParameterivSGI GLEW_GET_FUN(__glewPixelTransformParameterivSGI) +#define glPixelTransformSGI GLEW_GET_FUN(__glewPixelTransformSGI) + +#define GLEW_SGI_fft GLEW_GET_VAR(__GLEW_SGI_fft) + +#endif /* GL_SGI_fft */ + +/* ----------------------- GL_SGI_texture_color_table ---------------------- */ + +#ifndef GL_SGI_texture_color_table +#define GL_SGI_texture_color_table 1 + +#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC +#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD + +#define GLEW_SGI_texture_color_table GLEW_GET_VAR(__GLEW_SGI_texture_color_table) + +#endif /* GL_SGI_texture_color_table */ + +/* ------------------------- GL_SUNX_constant_data ------------------------- */ + +#ifndef GL_SUNX_constant_data +#define GL_SUNX_constant_data 1 + +#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 +#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 + +typedef void (GLAPIENTRY * PFNGLFINISHTEXTURESUNXPROC) (void); + +#define glFinishTextureSUNX GLEW_GET_FUN(__glewFinishTextureSUNX) + +#define GLEW_SUNX_constant_data GLEW_GET_VAR(__GLEW_SUNX_constant_data) + +#endif /* GL_SUNX_constant_data */ + +/* -------------------- GL_SUN_convolution_border_modes -------------------- */ + +#ifndef GL_SUN_convolution_border_modes +#define GL_SUN_convolution_border_modes 1 + +#define GL_WRAP_BORDER_SUN 0x81D4 + +#define GLEW_SUN_convolution_border_modes GLEW_GET_VAR(__GLEW_SUN_convolution_border_modes) + +#endif /* GL_SUN_convolution_border_modes */ + +/* -------------------------- GL_SUN_global_alpha -------------------------- */ + +#ifndef GL_SUN_global_alpha +#define GL_SUN_global_alpha 1 + +#define GL_GLOBAL_ALPHA_SUN 0x81D9 +#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA + +typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); +typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); +typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); +typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); +typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); +typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); +typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); +typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); + +#define glGlobalAlphaFactorbSUN GLEW_GET_FUN(__glewGlobalAlphaFactorbSUN) +#define glGlobalAlphaFactordSUN GLEW_GET_FUN(__glewGlobalAlphaFactordSUN) +#define glGlobalAlphaFactorfSUN GLEW_GET_FUN(__glewGlobalAlphaFactorfSUN) +#define glGlobalAlphaFactoriSUN GLEW_GET_FUN(__glewGlobalAlphaFactoriSUN) +#define glGlobalAlphaFactorsSUN GLEW_GET_FUN(__glewGlobalAlphaFactorsSUN) +#define glGlobalAlphaFactorubSUN GLEW_GET_FUN(__glewGlobalAlphaFactorubSUN) +#define glGlobalAlphaFactoruiSUN GLEW_GET_FUN(__glewGlobalAlphaFactoruiSUN) +#define glGlobalAlphaFactorusSUN GLEW_GET_FUN(__glewGlobalAlphaFactorusSUN) + +#define GLEW_SUN_global_alpha GLEW_GET_VAR(__GLEW_SUN_global_alpha) + +#endif /* GL_SUN_global_alpha */ + +/* --------------------------- GL_SUN_mesh_array --------------------------- */ + +#ifndef GL_SUN_mesh_array +#define GL_SUN_mesh_array 1 + +#define GL_QUAD_MESH_SUN 0x8614 +#define GL_TRIANGLE_MESH_SUN 0x8615 + +#define GLEW_SUN_mesh_array GLEW_GET_VAR(__GLEW_SUN_mesh_array) + +#endif /* GL_SUN_mesh_array */ + +/* ------------------------ GL_SUN_read_video_pixels ----------------------- */ + +#ifndef GL_SUN_read_video_pixels +#define GL_SUN_read_video_pixels 1 + +typedef void (GLAPIENTRY * PFNGLREADVIDEOPIXELSSUNPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels); + +#define glReadVideoPixelsSUN GLEW_GET_FUN(__glewReadVideoPixelsSUN) + +#define GLEW_SUN_read_video_pixels GLEW_GET_VAR(__GLEW_SUN_read_video_pixels) + +#endif /* GL_SUN_read_video_pixels */ + +/* --------------------------- GL_SUN_slice_accum -------------------------- */ + +#ifndef GL_SUN_slice_accum +#define GL_SUN_slice_accum 1 + +#define GL_SLICE_ACCUM_SUN 0x85CC + +#define GLEW_SUN_slice_accum GLEW_GET_VAR(__GLEW_SUN_slice_accum) + +#endif /* GL_SUN_slice_accum */ + +/* -------------------------- GL_SUN_triangle_list ------------------------- */ + +#ifndef GL_SUN_triangle_list +#define GL_SUN_triangle_list 1 + +#define GL_RESTART_SUN 0x01 +#define GL_REPLACE_MIDDLE_SUN 0x02 +#define GL_REPLACE_OLDEST_SUN 0x03 +#define GL_TRIANGLE_LIST_SUN 0x81D7 +#define GL_REPLACEMENT_CODE_SUN 0x81D8 +#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 +#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 +#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 +#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 +#define GL_R1UI_V3F_SUN 0x85C4 +#define GL_R1UI_C4UB_V3F_SUN 0x85C5 +#define GL_R1UI_C3F_V3F_SUN 0x85C6 +#define GL_R1UI_N3F_V3F_SUN 0x85C7 +#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 +#define GL_R1UI_T2F_V3F_SUN 0x85C9 +#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA +#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB + +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const void *pointer); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte* code); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint* code); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort* code); + +#define glReplacementCodePointerSUN GLEW_GET_FUN(__glewReplacementCodePointerSUN) +#define glReplacementCodeubSUN GLEW_GET_FUN(__glewReplacementCodeubSUN) +#define glReplacementCodeubvSUN GLEW_GET_FUN(__glewReplacementCodeubvSUN) +#define glReplacementCodeuiSUN GLEW_GET_FUN(__glewReplacementCodeuiSUN) +#define glReplacementCodeuivSUN GLEW_GET_FUN(__glewReplacementCodeuivSUN) +#define glReplacementCodeusSUN GLEW_GET_FUN(__glewReplacementCodeusSUN) +#define glReplacementCodeusvSUN GLEW_GET_FUN(__glewReplacementCodeusvSUN) + +#define GLEW_SUN_triangle_list GLEW_GET_VAR(__GLEW_SUN_triangle_list) + +#endif /* GL_SUN_triangle_list */ + +/* ----------------------------- GL_SUN_vertex ----------------------------- */ + +#ifndef GL_SUN_vertex +#define GL_SUN_vertex 1 + +typedef void (GLAPIENTRY * PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat* c, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* c, const GLfloat *n, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte* c, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte* c, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* n, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *c, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint* rc, const GLubyte *c, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *n, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat* tc, const GLubyte *c, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *n, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat* tc, const GLfloat *v); + +#define glColor3fVertex3fSUN GLEW_GET_FUN(__glewColor3fVertex3fSUN) +#define glColor3fVertex3fvSUN GLEW_GET_FUN(__glewColor3fVertex3fvSUN) +#define glColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewColor4fNormal3fVertex3fSUN) +#define glColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewColor4fNormal3fVertex3fvSUN) +#define glColor4ubVertex2fSUN GLEW_GET_FUN(__glewColor4ubVertex2fSUN) +#define glColor4ubVertex2fvSUN GLEW_GET_FUN(__glewColor4ubVertex2fvSUN) +#define glColor4ubVertex3fSUN GLEW_GET_FUN(__glewColor4ubVertex3fSUN) +#define glColor4ubVertex3fvSUN GLEW_GET_FUN(__glewColor4ubVertex3fvSUN) +#define glNormal3fVertex3fSUN GLEW_GET_FUN(__glewNormal3fVertex3fSUN) +#define glNormal3fVertex3fvSUN GLEW_GET_FUN(__glewNormal3fVertex3fvSUN) +#define glReplacementCodeuiColor3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor3fVertex3fSUN) +#define glReplacementCodeuiColor3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor3fVertex3fvSUN) +#define glReplacementCodeuiColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4fNormal3fVertex3fSUN) +#define glReplacementCodeuiColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4fNormal3fVertex3fvSUN) +#define glReplacementCodeuiColor4ubVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4ubVertex3fSUN) +#define glReplacementCodeuiColor4ubVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4ubVertex3fvSUN) +#define glReplacementCodeuiNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiNormal3fVertex3fSUN) +#define glReplacementCodeuiNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiNormal3fVertex3fvSUN) +#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) +#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) +#define glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) +#define glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) +#define glReplacementCodeuiTexCoord2fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fVertex3fSUN) +#define glReplacementCodeuiTexCoord2fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fVertex3fvSUN) +#define glReplacementCodeuiVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiVertex3fSUN) +#define glReplacementCodeuiVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiVertex3fvSUN) +#define glTexCoord2fColor3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor3fVertex3fSUN) +#define glTexCoord2fColor3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor3fVertex3fvSUN) +#define glTexCoord2fColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor4fNormal3fVertex3fSUN) +#define glTexCoord2fColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor4fNormal3fVertex3fvSUN) +#define glTexCoord2fColor4ubVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor4ubVertex3fSUN) +#define glTexCoord2fColor4ubVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor4ubVertex3fvSUN) +#define glTexCoord2fNormal3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fNormal3fVertex3fSUN) +#define glTexCoord2fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fNormal3fVertex3fvSUN) +#define glTexCoord2fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fVertex3fSUN) +#define glTexCoord2fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fVertex3fvSUN) +#define glTexCoord4fColor4fNormal3fVertex4fSUN GLEW_GET_FUN(__glewTexCoord4fColor4fNormal3fVertex4fSUN) +#define glTexCoord4fColor4fNormal3fVertex4fvSUN GLEW_GET_FUN(__glewTexCoord4fColor4fNormal3fVertex4fvSUN) +#define glTexCoord4fVertex4fSUN GLEW_GET_FUN(__glewTexCoord4fVertex4fSUN) +#define glTexCoord4fVertex4fvSUN GLEW_GET_FUN(__glewTexCoord4fVertex4fvSUN) + +#define GLEW_SUN_vertex GLEW_GET_VAR(__GLEW_SUN_vertex) + +#endif /* GL_SUN_vertex */ + +/* -------------------------- GL_VIV_shader_binary ------------------------- */ + +#ifndef GL_VIV_shader_binary +#define GL_VIV_shader_binary 1 + +#define GL_SHADER_BINARY_VIV 0x8FC4 + +#define GLEW_VIV_shader_binary GLEW_GET_VAR(__GLEW_VIV_shader_binary) + +#endif /* GL_VIV_shader_binary */ + +/* -------------------------- GL_WIN_phong_shading ------------------------- */ + +#ifndef GL_WIN_phong_shading +#define GL_WIN_phong_shading 1 + +#define GL_PHONG_WIN 0x80EA +#define GL_PHONG_HINT_WIN 0x80EB + +#define GLEW_WIN_phong_shading GLEW_GET_VAR(__GLEW_WIN_phong_shading) + +#endif /* GL_WIN_phong_shading */ + +/* ------------------------- GL_WIN_scene_markerXXX ------------------------ */ + +#ifndef GL_WIN_scene_markerXXX +#define GL_WIN_scene_markerXXX 1 + +#define GLEW_WIN_scene_markerXXX GLEW_GET_VAR(__GLEW_WIN_scene_markerXXX) + +#endif /* GL_WIN_scene_markerXXX */ + +/* -------------------------- GL_WIN_specular_fog -------------------------- */ + +#ifndef GL_WIN_specular_fog +#define GL_WIN_specular_fog 1 + +#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC + +#define GLEW_WIN_specular_fog GLEW_GET_VAR(__GLEW_WIN_specular_fog) + +#endif /* GL_WIN_specular_fog */ + +/* ---------------------------- GL_WIN_swap_hint --------------------------- */ + +#ifndef GL_WIN_swap_hint +#define GL_WIN_swap_hint 1 + +typedef void (GLAPIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height); + +#define glAddSwapHintRectWIN GLEW_GET_FUN(__glewAddSwapHintRectWIN) + +#define GLEW_WIN_swap_hint GLEW_GET_VAR(__GLEW_WIN_swap_hint) + +#endif /* GL_WIN_swap_hint */ + +/* ------------------------------------------------------------------------- */ + + + +GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DPROC __glewCopyTexSubImage3D; +GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSPROC __glewDrawRangeElements; +GLEW_FUN_EXPORT PFNGLTEXIMAGE3DPROC __glewTexImage3D; +GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DPROC __glewTexSubImage3D; + +GLEW_FUN_EXPORT PFNGLACTIVETEXTUREPROC __glewActiveTexture; +GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREPROC __glewClientActiveTexture; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DPROC __glewCompressedTexImage1D; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DPROC __glewCompressedTexImage2D; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DPROC __glewCompressedTexImage3D; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC __glewCompressedTexSubImage1D; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC __glewCompressedTexSubImage2D; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC __glewCompressedTexSubImage3D; +GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEPROC __glewGetCompressedTexImage; +GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDPROC __glewLoadTransposeMatrixd; +GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFPROC __glewLoadTransposeMatrixf; +GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDPROC __glewMultTransposeMatrixd; +GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFPROC __glewMultTransposeMatrixf; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DPROC __glewMultiTexCoord1d; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DVPROC __glewMultiTexCoord1dv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FPROC __glewMultiTexCoord1f; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FVPROC __glewMultiTexCoord1fv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IPROC __glewMultiTexCoord1i; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IVPROC __glewMultiTexCoord1iv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SPROC __glewMultiTexCoord1s; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SVPROC __glewMultiTexCoord1sv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DPROC __glewMultiTexCoord2d; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DVPROC __glewMultiTexCoord2dv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FPROC __glewMultiTexCoord2f; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FVPROC __glewMultiTexCoord2fv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IPROC __glewMultiTexCoord2i; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IVPROC __glewMultiTexCoord2iv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SPROC __glewMultiTexCoord2s; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SVPROC __glewMultiTexCoord2sv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DPROC __glewMultiTexCoord3d; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DVPROC __glewMultiTexCoord3dv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FPROC __glewMultiTexCoord3f; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FVPROC __glewMultiTexCoord3fv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IPROC __glewMultiTexCoord3i; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IVPROC __glewMultiTexCoord3iv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SPROC __glewMultiTexCoord3s; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SVPROC __glewMultiTexCoord3sv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DPROC __glewMultiTexCoord4d; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DVPROC __glewMultiTexCoord4dv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FPROC __glewMultiTexCoord4f; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FVPROC __glewMultiTexCoord4fv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IPROC __glewMultiTexCoord4i; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IVPROC __glewMultiTexCoord4iv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SPROC __glewMultiTexCoord4s; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SVPROC __glewMultiTexCoord4sv; +GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEPROC __glewSampleCoverage; + +GLEW_FUN_EXPORT PFNGLBLENDCOLORPROC __glewBlendColor; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONPROC __glewBlendEquation; +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEPROC __glewBlendFuncSeparate; +GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTERPROC __glewFogCoordPointer; +GLEW_FUN_EXPORT PFNGLFOGCOORDDPROC __glewFogCoordd; +GLEW_FUN_EXPORT PFNGLFOGCOORDDVPROC __glewFogCoorddv; +GLEW_FUN_EXPORT PFNGLFOGCOORDFPROC __glewFogCoordf; +GLEW_FUN_EXPORT PFNGLFOGCOORDFVPROC __glewFogCoordfv; +GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSPROC __glewMultiDrawArrays; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSPROC __glewMultiDrawElements; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFPROC __glewPointParameterf; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVPROC __glewPointParameterfv; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIPROC __glewPointParameteri; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVPROC __glewPointParameteriv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BPROC __glewSecondaryColor3b; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BVPROC __glewSecondaryColor3bv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DPROC __glewSecondaryColor3d; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DVPROC __glewSecondaryColor3dv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FPROC __glewSecondaryColor3f; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FVPROC __glewSecondaryColor3fv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IPROC __glewSecondaryColor3i; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IVPROC __glewSecondaryColor3iv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SPROC __glewSecondaryColor3s; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SVPROC __glewSecondaryColor3sv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBPROC __glewSecondaryColor3ub; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBVPROC __glewSecondaryColor3ubv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIPROC __glewSecondaryColor3ui; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIVPROC __glewSecondaryColor3uiv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USPROC __glewSecondaryColor3us; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVPROC __glewSecondaryColor3usv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERPROC __glewSecondaryColorPointer; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2DPROC __glewWindowPos2d; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVPROC __glewWindowPos2dv; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2FPROC __glewWindowPos2f; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVPROC __glewWindowPos2fv; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2IPROC __glewWindowPos2i; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVPROC __glewWindowPos2iv; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2SPROC __glewWindowPos2s; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVPROC __glewWindowPos2sv; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3DPROC __glewWindowPos3d; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVPROC __glewWindowPos3dv; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3FPROC __glewWindowPos3f; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVPROC __glewWindowPos3fv; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3IPROC __glewWindowPos3i; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVPROC __glewWindowPos3iv; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3SPROC __glewWindowPos3s; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVPROC __glewWindowPos3sv; + +GLEW_FUN_EXPORT PFNGLBEGINQUERYPROC __glewBeginQuery; +GLEW_FUN_EXPORT PFNGLBINDBUFFERPROC __glewBindBuffer; +GLEW_FUN_EXPORT PFNGLBUFFERDATAPROC __glewBufferData; +GLEW_FUN_EXPORT PFNGLBUFFERSUBDATAPROC __glewBufferSubData; +GLEW_FUN_EXPORT PFNGLDELETEBUFFERSPROC __glewDeleteBuffers; +GLEW_FUN_EXPORT PFNGLDELETEQUERIESPROC __glewDeleteQueries; +GLEW_FUN_EXPORT PFNGLENDQUERYPROC __glewEndQuery; +GLEW_FUN_EXPORT PFNGLGENBUFFERSPROC __glewGenBuffers; +GLEW_FUN_EXPORT PFNGLGENQUERIESPROC __glewGenQueries; +GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERIVPROC __glewGetBufferParameteriv; +GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVPROC __glewGetBufferPointerv; +GLEW_FUN_EXPORT PFNGLGETBUFFERSUBDATAPROC __glewGetBufferSubData; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVPROC __glewGetQueryObjectiv; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVPROC __glewGetQueryObjectuiv; +GLEW_FUN_EXPORT PFNGLGETQUERYIVPROC __glewGetQueryiv; +GLEW_FUN_EXPORT PFNGLISBUFFERPROC __glewIsBuffer; +GLEW_FUN_EXPORT PFNGLISQUERYPROC __glewIsQuery; +GLEW_FUN_EXPORT PFNGLMAPBUFFERPROC __glewMapBuffer; +GLEW_FUN_EXPORT PFNGLUNMAPBUFFERPROC __glewUnmapBuffer; + +GLEW_FUN_EXPORT PFNGLATTACHSHADERPROC __glewAttachShader; +GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONPROC __glewBindAttribLocation; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEPROC __glewBlendEquationSeparate; +GLEW_FUN_EXPORT PFNGLCOMPILESHADERPROC __glewCompileShader; +GLEW_FUN_EXPORT PFNGLCREATEPROGRAMPROC __glewCreateProgram; +GLEW_FUN_EXPORT PFNGLCREATESHADERPROC __glewCreateShader; +GLEW_FUN_EXPORT PFNGLDELETEPROGRAMPROC __glewDeleteProgram; +GLEW_FUN_EXPORT PFNGLDELETESHADERPROC __glewDeleteShader; +GLEW_FUN_EXPORT PFNGLDETACHSHADERPROC __glewDetachShader; +GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBARRAYPROC __glewDisableVertexAttribArray; +GLEW_FUN_EXPORT PFNGLDRAWBUFFERSPROC __glewDrawBuffers; +GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBARRAYPROC __glewEnableVertexAttribArray; +GLEW_FUN_EXPORT PFNGLGETACTIVEATTRIBPROC __glewGetActiveAttrib; +GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMPROC __glewGetActiveUniform; +GLEW_FUN_EXPORT PFNGLGETATTACHEDSHADERSPROC __glewGetAttachedShaders; +GLEW_FUN_EXPORT PFNGLGETATTRIBLOCATIONPROC __glewGetAttribLocation; +GLEW_FUN_EXPORT PFNGLGETPROGRAMINFOLOGPROC __glewGetProgramInfoLog; +GLEW_FUN_EXPORT PFNGLGETPROGRAMIVPROC __glewGetProgramiv; +GLEW_FUN_EXPORT PFNGLGETSHADERINFOLOGPROC __glewGetShaderInfoLog; +GLEW_FUN_EXPORT PFNGLGETSHADERSOURCEPROC __glewGetShaderSource; +GLEW_FUN_EXPORT PFNGLGETSHADERIVPROC __glewGetShaderiv; +GLEW_FUN_EXPORT PFNGLGETUNIFORMLOCATIONPROC __glewGetUniformLocation; +GLEW_FUN_EXPORT PFNGLGETUNIFORMFVPROC __glewGetUniformfv; +GLEW_FUN_EXPORT PFNGLGETUNIFORMIVPROC __glewGetUniformiv; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVPROC __glewGetVertexAttribPointerv; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVPROC __glewGetVertexAttribdv; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVPROC __glewGetVertexAttribfv; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVPROC __glewGetVertexAttribiv; +GLEW_FUN_EXPORT PFNGLISPROGRAMPROC __glewIsProgram; +GLEW_FUN_EXPORT PFNGLISSHADERPROC __glewIsShader; +GLEW_FUN_EXPORT PFNGLLINKPROGRAMPROC __glewLinkProgram; +GLEW_FUN_EXPORT PFNGLSHADERSOURCEPROC __glewShaderSource; +GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEPROC __glewStencilFuncSeparate; +GLEW_FUN_EXPORT PFNGLSTENCILMASKSEPARATEPROC __glewStencilMaskSeparate; +GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEPROC __glewStencilOpSeparate; +GLEW_FUN_EXPORT PFNGLUNIFORM1FPROC __glewUniform1f; +GLEW_FUN_EXPORT PFNGLUNIFORM1FVPROC __glewUniform1fv; +GLEW_FUN_EXPORT PFNGLUNIFORM1IPROC __glewUniform1i; +GLEW_FUN_EXPORT PFNGLUNIFORM1IVPROC __glewUniform1iv; +GLEW_FUN_EXPORT PFNGLUNIFORM2FPROC __glewUniform2f; +GLEW_FUN_EXPORT PFNGLUNIFORM2FVPROC __glewUniform2fv; +GLEW_FUN_EXPORT PFNGLUNIFORM2IPROC __glewUniform2i; +GLEW_FUN_EXPORT PFNGLUNIFORM2IVPROC __glewUniform2iv; +GLEW_FUN_EXPORT PFNGLUNIFORM3FPROC __glewUniform3f; +GLEW_FUN_EXPORT PFNGLUNIFORM3FVPROC __glewUniform3fv; +GLEW_FUN_EXPORT PFNGLUNIFORM3IPROC __glewUniform3i; +GLEW_FUN_EXPORT PFNGLUNIFORM3IVPROC __glewUniform3iv; +GLEW_FUN_EXPORT PFNGLUNIFORM4FPROC __glewUniform4f; +GLEW_FUN_EXPORT PFNGLUNIFORM4FVPROC __glewUniform4fv; +GLEW_FUN_EXPORT PFNGLUNIFORM4IPROC __glewUniform4i; +GLEW_FUN_EXPORT PFNGLUNIFORM4IVPROC __glewUniform4iv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2FVPROC __glewUniformMatrix2fv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3FVPROC __glewUniformMatrix3fv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4FVPROC __glewUniformMatrix4fv; +GLEW_FUN_EXPORT PFNGLUSEPROGRAMPROC __glewUseProgram; +GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMPROC __glewValidateProgram; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DPROC __glewVertexAttrib1d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVPROC __glewVertexAttrib1dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FPROC __glewVertexAttrib1f; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVPROC __glewVertexAttrib1fv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SPROC __glewVertexAttrib1s; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVPROC __glewVertexAttrib1sv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DPROC __glewVertexAttrib2d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVPROC __glewVertexAttrib2dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FPROC __glewVertexAttrib2f; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVPROC __glewVertexAttrib2fv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SPROC __glewVertexAttrib2s; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVPROC __glewVertexAttrib2sv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DPROC __glewVertexAttrib3d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVPROC __glewVertexAttrib3dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FPROC __glewVertexAttrib3f; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVPROC __glewVertexAttrib3fv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SPROC __glewVertexAttrib3s; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVPROC __glewVertexAttrib3sv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NBVPROC __glewVertexAttrib4Nbv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NIVPROC __glewVertexAttrib4Niv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NSVPROC __glewVertexAttrib4Nsv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBPROC __glewVertexAttrib4Nub; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBVPROC __glewVertexAttrib4Nubv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUIVPROC __glewVertexAttrib4Nuiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUSVPROC __glewVertexAttrib4Nusv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4BVPROC __glewVertexAttrib4bv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DPROC __glewVertexAttrib4d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVPROC __glewVertexAttrib4dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FPROC __glewVertexAttrib4f; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVPROC __glewVertexAttrib4fv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4IVPROC __glewVertexAttrib4iv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SPROC __glewVertexAttrib4s; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVPROC __glewVertexAttrib4sv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVPROC __glewVertexAttrib4ubv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UIVPROC __glewVertexAttrib4uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4USVPROC __glewVertexAttrib4usv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERPROC __glewVertexAttribPointer; + +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3FVPROC __glewUniformMatrix2x3fv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4FVPROC __glewUniformMatrix2x4fv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2FVPROC __glewUniformMatrix3x2fv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4FVPROC __glewUniformMatrix3x4fv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2FVPROC __glewUniformMatrix4x2fv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3FVPROC __glewUniformMatrix4x3fv; + +GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERPROC __glewBeginConditionalRender; +GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKPROC __glewBeginTransformFeedback; +GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONPROC __glewBindFragDataLocation; +GLEW_FUN_EXPORT PFNGLCLAMPCOLORPROC __glewClampColor; +GLEW_FUN_EXPORT PFNGLCLEARBUFFERFIPROC __glewClearBufferfi; +GLEW_FUN_EXPORT PFNGLCLEARBUFFERFVPROC __glewClearBufferfv; +GLEW_FUN_EXPORT PFNGLCLEARBUFFERIVPROC __glewClearBufferiv; +GLEW_FUN_EXPORT PFNGLCLEARBUFFERUIVPROC __glewClearBufferuiv; +GLEW_FUN_EXPORT PFNGLCOLORMASKIPROC __glewColorMaski; +GLEW_FUN_EXPORT PFNGLDISABLEIPROC __glewDisablei; +GLEW_FUN_EXPORT PFNGLENABLEIPROC __glewEnablei; +GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERPROC __glewEndConditionalRender; +GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKPROC __glewEndTransformFeedback; +GLEW_FUN_EXPORT PFNGLGETBOOLEANI_VPROC __glewGetBooleani_v; +GLEW_FUN_EXPORT PFNGLGETFRAGDATALOCATIONPROC __glewGetFragDataLocation; +GLEW_FUN_EXPORT PFNGLGETSTRINGIPROC __glewGetStringi; +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVPROC __glewGetTexParameterIiv; +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVPROC __glewGetTexParameterIuiv; +GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGPROC __glewGetTransformFeedbackVarying; +GLEW_FUN_EXPORT PFNGLGETUNIFORMUIVPROC __glewGetUniformuiv; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIIVPROC __glewGetVertexAttribIiv; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIUIVPROC __glewGetVertexAttribIuiv; +GLEW_FUN_EXPORT PFNGLISENABLEDIPROC __glewIsEnabledi; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVPROC __glewTexParameterIiv; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVPROC __glewTexParameterIuiv; +GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSPROC __glewTransformFeedbackVaryings; +GLEW_FUN_EXPORT PFNGLUNIFORM1UIPROC __glewUniform1ui; +GLEW_FUN_EXPORT PFNGLUNIFORM1UIVPROC __glewUniform1uiv; +GLEW_FUN_EXPORT PFNGLUNIFORM2UIPROC __glewUniform2ui; +GLEW_FUN_EXPORT PFNGLUNIFORM2UIVPROC __glewUniform2uiv; +GLEW_FUN_EXPORT PFNGLUNIFORM3UIPROC __glewUniform3ui; +GLEW_FUN_EXPORT PFNGLUNIFORM3UIVPROC __glewUniform3uiv; +GLEW_FUN_EXPORT PFNGLUNIFORM4UIPROC __glewUniform4ui; +GLEW_FUN_EXPORT PFNGLUNIFORM4UIVPROC __glewUniform4uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IPROC __glewVertexAttribI1i; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IVPROC __glewVertexAttribI1iv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIPROC __glewVertexAttribI1ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIVPROC __glewVertexAttribI1uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IPROC __glewVertexAttribI2i; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IVPROC __glewVertexAttribI2iv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIPROC __glewVertexAttribI2ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIVPROC __glewVertexAttribI2uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IPROC __glewVertexAttribI3i; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IVPROC __glewVertexAttribI3iv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIPROC __glewVertexAttribI3ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIVPROC __glewVertexAttribI3uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4BVPROC __glewVertexAttribI4bv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IPROC __glewVertexAttribI4i; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IVPROC __glewVertexAttribI4iv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4SVPROC __glewVertexAttribI4sv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UBVPROC __glewVertexAttribI4ubv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIPROC __glewVertexAttribI4ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIVPROC __glewVertexAttribI4uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4USVPROC __glewVertexAttribI4usv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIPOINTERPROC __glewVertexAttribIPointer; + +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDPROC __glewDrawArraysInstanced; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDPROC __glewDrawElementsInstanced; +GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXPROC __glewPrimitiveRestartIndex; +GLEW_FUN_EXPORT PFNGLTEXBUFFERPROC __glewTexBuffer; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREPROC __glewFramebufferTexture; +GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERI64VPROC __glewGetBufferParameteri64v; +GLEW_FUN_EXPORT PFNGLGETINTEGER64I_VPROC __glewGetInteger64i_v; + +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORPROC __glewVertexAttribDivisor; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIPROC __glewBlendEquationSeparatei; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIPROC __glewBlendEquationi; +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIPROC __glewBlendFuncSeparatei; +GLEW_FUN_EXPORT PFNGLBLENDFUNCIPROC __glewBlendFunci; +GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGPROC __glewMinSampleShading; + +GLEW_FUN_EXPORT PFNGLGETGRAPHICSRESETSTATUSPROC __glewGetGraphicsResetStatus; +GLEW_FUN_EXPORT PFNGLGETNCOMPRESSEDTEXIMAGEPROC __glewGetnCompressedTexImage; +GLEW_FUN_EXPORT PFNGLGETNTEXIMAGEPROC __glewGetnTexImage; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMDVPROC __glewGetnUniformdv; + +GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC __glewMultiDrawArraysIndirectCount; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC __glewMultiDrawElementsIndirectCount; +GLEW_FUN_EXPORT PFNGLSPECIALIZESHADERPROC __glewSpecializeShader; + +GLEW_FUN_EXPORT PFNGLTBUFFERMASK3DFXPROC __glewTbufferMask3DFX; + +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKAMDPROC __glewDebugMessageCallbackAMD; +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEENABLEAMDPROC __glewDebugMessageEnableAMD; +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTAMDPROC __glewDebugMessageInsertAMD; +GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGAMDPROC __glewGetDebugMessageLogAMD; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONINDEXEDAMDPROC __glewBlendEquationIndexedAMD; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC __glewBlendEquationSeparateIndexedAMD; +GLEW_FUN_EXPORT PFNGLBLENDFUNCINDEXEDAMDPROC __glewBlendFuncIndexedAMD; +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC __glewBlendFuncSeparateIndexedAMD; + +GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC __glewNamedRenderbufferStorageMultisampleAdvancedAMD; +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC __glewRenderbufferStorageMultisampleAdvancedAMD; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC __glewFramebufferSamplePositionsfvAMD; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC __glewGetFramebufferParameterfvAMD; +GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC __glewGetNamedFramebufferParameterfvAMD; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC __glewNamedFramebufferSamplePositionsfvAMD; + +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPARAMETERIAMDPROC __glewVertexAttribParameteriAMD; + +GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC __glewMultiDrawArraysIndirectAMD; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC __glewMultiDrawElementsIndirectAMD; + +GLEW_FUN_EXPORT PFNGLDELETENAMESAMDPROC __glewDeleteNamesAMD; +GLEW_FUN_EXPORT PFNGLGENNAMESAMDPROC __glewGenNamesAMD; +GLEW_FUN_EXPORT PFNGLISNAMEAMDPROC __glewIsNameAMD; + +GLEW_FUN_EXPORT PFNGLQUERYOBJECTPARAMETERUIAMDPROC __glewQueryObjectParameteruiAMD; + +GLEW_FUN_EXPORT PFNGLBEGINPERFMONITORAMDPROC __glewBeginPerfMonitorAMD; +GLEW_FUN_EXPORT PFNGLDELETEPERFMONITORSAMDPROC __glewDeletePerfMonitorsAMD; +GLEW_FUN_EXPORT PFNGLENDPERFMONITORAMDPROC __glewEndPerfMonitorAMD; +GLEW_FUN_EXPORT PFNGLGENPERFMONITORSAMDPROC __glewGenPerfMonitorsAMD; +GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERDATAAMDPROC __glewGetPerfMonitorCounterDataAMD; +GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERINFOAMDPROC __glewGetPerfMonitorCounterInfoAMD; +GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC __glewGetPerfMonitorCounterStringAMD; +GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSAMDPROC __glewGetPerfMonitorCountersAMD; +GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSTRINGAMDPROC __glewGetPerfMonitorGroupStringAMD; +GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSAMDPROC __glewGetPerfMonitorGroupsAMD; +GLEW_FUN_EXPORT PFNGLSELECTPERFMONITORCOUNTERSAMDPROC __glewSelectPerfMonitorCountersAMD; + +GLEW_FUN_EXPORT PFNGLSETMULTISAMPLEFVAMDPROC __glewSetMultisamplefvAMD; + +GLEW_FUN_EXPORT PFNGLTEXSTORAGESPARSEAMDPROC __glewTexStorageSparseAMD; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGESPARSEAMDPROC __glewTextureStorageSparseAMD; + +GLEW_FUN_EXPORT PFNGLSTENCILOPVALUEAMDPROC __glewStencilOpValueAMD; + +GLEW_FUN_EXPORT PFNGLTESSELLATIONFACTORAMDPROC __glewTessellationFactorAMD; +GLEW_FUN_EXPORT PFNGLTESSELLATIONMODEAMDPROC __glewTessellationModeAMD; + +GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERANGLEPROC __glewBlitFramebufferANGLE; + +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC __glewRenderbufferStorageMultisampleANGLE; + +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDANGLEPROC __glewDrawArraysInstancedANGLE; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDANGLEPROC __glewDrawElementsInstancedANGLE; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORANGLEPROC __glewVertexAttribDivisorANGLE; + +GLEW_FUN_EXPORT PFNGLBEGINQUERYANGLEPROC __glewBeginQueryANGLE; +GLEW_FUN_EXPORT PFNGLDELETEQUERIESANGLEPROC __glewDeleteQueriesANGLE; +GLEW_FUN_EXPORT PFNGLENDQUERYANGLEPROC __glewEndQueryANGLE; +GLEW_FUN_EXPORT PFNGLGENQUERIESANGLEPROC __glewGenQueriesANGLE; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VANGLEPROC __glewGetQueryObjecti64vANGLE; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVANGLEPROC __glewGetQueryObjectivANGLE; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VANGLEPROC __glewGetQueryObjectui64vANGLE; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVANGLEPROC __glewGetQueryObjectuivANGLE; +GLEW_FUN_EXPORT PFNGLGETQUERYIVANGLEPROC __glewGetQueryivANGLE; +GLEW_FUN_EXPORT PFNGLISQUERYANGLEPROC __glewIsQueryANGLE; +GLEW_FUN_EXPORT PFNGLQUERYCOUNTERANGLEPROC __glewQueryCounterANGLE; + +GLEW_FUN_EXPORT PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC __glewGetTranslatedShaderSourceANGLE; + +GLEW_FUN_EXPORT PFNGLCOPYTEXTURELEVELSAPPLEPROC __glewCopyTextureLevelsAPPLE; + +GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYAPPLEPROC __glewDrawElementArrayAPPLE; +GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC __glewDrawRangeElementArrayAPPLE; +GLEW_FUN_EXPORT PFNGLELEMENTPOINTERAPPLEPROC __glewElementPointerAPPLE; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC __glewMultiDrawElementArrayAPPLE; +GLEW_FUN_EXPORT PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC __glewMultiDrawRangeElementArrayAPPLE; + +GLEW_FUN_EXPORT PFNGLDELETEFENCESAPPLEPROC __glewDeleteFencesAPPLE; +GLEW_FUN_EXPORT PFNGLFINISHFENCEAPPLEPROC __glewFinishFenceAPPLE; +GLEW_FUN_EXPORT PFNGLFINISHOBJECTAPPLEPROC __glewFinishObjectAPPLE; +GLEW_FUN_EXPORT PFNGLGENFENCESAPPLEPROC __glewGenFencesAPPLE; +GLEW_FUN_EXPORT PFNGLISFENCEAPPLEPROC __glewIsFenceAPPLE; +GLEW_FUN_EXPORT PFNGLSETFENCEAPPLEPROC __glewSetFenceAPPLE; +GLEW_FUN_EXPORT PFNGLTESTFENCEAPPLEPROC __glewTestFenceAPPLE; +GLEW_FUN_EXPORT PFNGLTESTOBJECTAPPLEPROC __glewTestObjectAPPLE; + +GLEW_FUN_EXPORT PFNGLBUFFERPARAMETERIAPPLEPROC __glewBufferParameteriAPPLE; +GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC __glewFlushMappedBufferRangeAPPLE; + +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC __glewRenderbufferStorageMultisampleAPPLE; +GLEW_FUN_EXPORT PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC __glewResolveMultisampleFramebufferAPPLE; + +GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVAPPLEPROC __glewGetObjectParameterivAPPLE; +GLEW_FUN_EXPORT PFNGLOBJECTPURGEABLEAPPLEPROC __glewObjectPurgeableAPPLE; +GLEW_FUN_EXPORT PFNGLOBJECTUNPURGEABLEAPPLEPROC __glewObjectUnpurgeableAPPLE; + +GLEW_FUN_EXPORT PFNGLCLIENTWAITSYNCAPPLEPROC __glewClientWaitSyncAPPLE; +GLEW_FUN_EXPORT PFNGLDELETESYNCAPPLEPROC __glewDeleteSyncAPPLE; +GLEW_FUN_EXPORT PFNGLFENCESYNCAPPLEPROC __glewFenceSyncAPPLE; +GLEW_FUN_EXPORT PFNGLGETINTEGER64VAPPLEPROC __glewGetInteger64vAPPLE; +GLEW_FUN_EXPORT PFNGLGETSYNCIVAPPLEPROC __glewGetSyncivAPPLE; +GLEW_FUN_EXPORT PFNGLISSYNCAPPLEPROC __glewIsSyncAPPLE; +GLEW_FUN_EXPORT PFNGLWAITSYNCAPPLEPROC __glewWaitSyncAPPLE; + +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC __glewGetTexParameterPointervAPPLE; +GLEW_FUN_EXPORT PFNGLTEXTURERANGEAPPLEPROC __glewTextureRangeAPPLE; + +GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYAPPLEPROC __glewBindVertexArrayAPPLE; +GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSAPPLEPROC __glewDeleteVertexArraysAPPLE; +GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSAPPLEPROC __glewGenVertexArraysAPPLE; +GLEW_FUN_EXPORT PFNGLISVERTEXARRAYAPPLEPROC __glewIsVertexArrayAPPLE; + +GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC __glewFlushVertexArrayRangeAPPLE; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYPARAMETERIAPPLEPROC __glewVertexArrayParameteriAPPLE; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGEAPPLEPROC __glewVertexArrayRangeAPPLE; + +GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBAPPLEPROC __glewDisableVertexAttribAPPLE; +GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBAPPLEPROC __glewEnableVertexAttribAPPLE; +GLEW_FUN_EXPORT PFNGLISVERTEXATTRIBENABLEDAPPLEPROC __glewIsVertexAttribEnabledAPPLE; +GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1DAPPLEPROC __glewMapVertexAttrib1dAPPLE; +GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1FAPPLEPROC __glewMapVertexAttrib1fAPPLE; +GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2DAPPLEPROC __glewMapVertexAttrib2dAPPLE; +GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2FAPPLEPROC __glewMapVertexAttrib2fAPPLE; + +GLEW_FUN_EXPORT PFNGLCLEARDEPTHFPROC __glewClearDepthf; +GLEW_FUN_EXPORT PFNGLDEPTHRANGEFPROC __glewDepthRangef; +GLEW_FUN_EXPORT PFNGLGETSHADERPRECISIONFORMATPROC __glewGetShaderPrecisionFormat; +GLEW_FUN_EXPORT PFNGLRELEASESHADERCOMPILERPROC __glewReleaseShaderCompiler; +GLEW_FUN_EXPORT PFNGLSHADERBINARYPROC __glewShaderBinary; + +GLEW_FUN_EXPORT PFNGLMEMORYBARRIERBYREGIONPROC __glewMemoryBarrierByRegion; + +GLEW_FUN_EXPORT PFNGLPRIMITIVEBOUNDINGBOXARBPROC __glewPrimitiveBoundingBoxARB; + +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC __glewDrawArraysInstancedBaseInstance; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC __glewDrawElementsInstancedBaseInstance; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC __glewDrawElementsInstancedBaseVertexBaseInstance; + +GLEW_FUN_EXPORT PFNGLGETIMAGEHANDLEARBPROC __glewGetImageHandleARB; +GLEW_FUN_EXPORT PFNGLGETTEXTUREHANDLEARBPROC __glewGetTextureHandleARB; +GLEW_FUN_EXPORT PFNGLGETTEXTURESAMPLERHANDLEARBPROC __glewGetTextureSamplerHandleARB; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLUI64VARBPROC __glewGetVertexAttribLui64vARB; +GLEW_FUN_EXPORT PFNGLISIMAGEHANDLERESIDENTARBPROC __glewIsImageHandleResidentARB; +GLEW_FUN_EXPORT PFNGLISTEXTUREHANDLERESIDENTARBPROC __glewIsTextureHandleResidentARB; +GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC __glewMakeImageHandleNonResidentARB; +GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLERESIDENTARBPROC __glewMakeImageHandleResidentARB; +GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC __glewMakeTextureHandleNonResidentARB; +GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLERESIDENTARBPROC __glewMakeTextureHandleResidentARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC __glewProgramUniformHandleui64ARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC __glewProgramUniformHandleui64vARB; +GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64ARBPROC __glewUniformHandleui64ARB; +GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64VARBPROC __glewUniformHandleui64vARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64ARBPROC __glewVertexAttribL1ui64ARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64VARBPROC __glewVertexAttribL1ui64vARB; + +GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDPROC __glewBindFragDataLocationIndexed; +GLEW_FUN_EXPORT PFNGLGETFRAGDATAINDEXPROC __glewGetFragDataIndex; + +GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEPROC __glewBufferStorage; + +GLEW_FUN_EXPORT PFNGLCREATESYNCFROMCLEVENTARBPROC __glewCreateSyncFromCLeventARB; + +GLEW_FUN_EXPORT PFNGLCLEARBUFFERDATAPROC __glewClearBufferData; +GLEW_FUN_EXPORT PFNGLCLEARBUFFERSUBDATAPROC __glewClearBufferSubData; +GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERDATAEXTPROC __glewClearNamedBufferDataEXT; +GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC __glewClearNamedBufferSubDataEXT; + +GLEW_FUN_EXPORT PFNGLCLEARTEXIMAGEPROC __glewClearTexImage; +GLEW_FUN_EXPORT PFNGLCLEARTEXSUBIMAGEPROC __glewClearTexSubImage; + +GLEW_FUN_EXPORT PFNGLCLIPCONTROLPROC __glewClipControl; + +GLEW_FUN_EXPORT PFNGLCLAMPCOLORARBPROC __glewClampColorARB; + +GLEW_FUN_EXPORT PFNGLDISPATCHCOMPUTEPROC __glewDispatchCompute; +GLEW_FUN_EXPORT PFNGLDISPATCHCOMPUTEINDIRECTPROC __glewDispatchComputeIndirect; + +GLEW_FUN_EXPORT PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC __glewDispatchComputeGroupSizeARB; + +GLEW_FUN_EXPORT PFNGLCOPYBUFFERSUBDATAPROC __glewCopyBufferSubData; + +GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATAPROC __glewCopyImageSubData; + +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKARBPROC __glewDebugMessageCallbackARB; +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECONTROLARBPROC __glewDebugMessageControlARB; +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTARBPROC __glewDebugMessageInsertARB; +GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGARBPROC __glewGetDebugMessageLogARB; + +GLEW_FUN_EXPORT PFNGLBINDTEXTUREUNITPROC __glewBindTextureUnit; +GLEW_FUN_EXPORT PFNGLBLITNAMEDFRAMEBUFFERPROC __glewBlitNamedFramebuffer; +GLEW_FUN_EXPORT PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC __glewCheckNamedFramebufferStatus; +GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERDATAPROC __glewClearNamedBufferData; +GLEW_FUN_EXPORT PFNGLCLEARNAMEDBUFFERSUBDATAPROC __glewClearNamedBufferSubData; +GLEW_FUN_EXPORT PFNGLCLEARNAMEDFRAMEBUFFERFIPROC __glewClearNamedFramebufferfi; +GLEW_FUN_EXPORT PFNGLCLEARNAMEDFRAMEBUFFERFVPROC __glewClearNamedFramebufferfv; +GLEW_FUN_EXPORT PFNGLCLEARNAMEDFRAMEBUFFERIVPROC __glewClearNamedFramebufferiv; +GLEW_FUN_EXPORT PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC __glewClearNamedFramebufferuiv; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC __glewCompressedTextureSubImage1D; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC __glewCompressedTextureSubImage2D; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC __glewCompressedTextureSubImage3D; +GLEW_FUN_EXPORT PFNGLCOPYNAMEDBUFFERSUBDATAPROC __glewCopyNamedBufferSubData; +GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE1DPROC __glewCopyTextureSubImage1D; +GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE2DPROC __glewCopyTextureSubImage2D; +GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE3DPROC __glewCopyTextureSubImage3D; +GLEW_FUN_EXPORT PFNGLCREATEBUFFERSPROC __glewCreateBuffers; +GLEW_FUN_EXPORT PFNGLCREATEFRAMEBUFFERSPROC __glewCreateFramebuffers; +GLEW_FUN_EXPORT PFNGLCREATEPROGRAMPIPELINESPROC __glewCreateProgramPipelines; +GLEW_FUN_EXPORT PFNGLCREATEQUERIESPROC __glewCreateQueries; +GLEW_FUN_EXPORT PFNGLCREATERENDERBUFFERSPROC __glewCreateRenderbuffers; +GLEW_FUN_EXPORT PFNGLCREATESAMPLERSPROC __glewCreateSamplers; +GLEW_FUN_EXPORT PFNGLCREATETEXTURESPROC __glewCreateTextures; +GLEW_FUN_EXPORT PFNGLCREATETRANSFORMFEEDBACKSPROC __glewCreateTransformFeedbacks; +GLEW_FUN_EXPORT PFNGLCREATEVERTEXARRAYSPROC __glewCreateVertexArrays; +GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYATTRIBPROC __glewDisableVertexArrayAttrib; +GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYATTRIBPROC __glewEnableVertexArrayAttrib; +GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC __glewFlushMappedNamedBufferRange; +GLEW_FUN_EXPORT PFNGLGENERATETEXTUREMIPMAPPROC __glewGenerateTextureMipmap; +GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC __glewGetCompressedTextureImage; +GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERI64VPROC __glewGetNamedBufferParameteri64v; +GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERIVPROC __glewGetNamedBufferParameteriv; +GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPOINTERVPROC __glewGetNamedBufferPointerv; +GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERSUBDATAPROC __glewGetNamedBufferSubData; +GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC __glewGetNamedFramebufferAttachmentParameteriv; +GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC __glewGetNamedFramebufferParameteriv; +GLEW_FUN_EXPORT PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC __glewGetNamedRenderbufferParameteriv; +GLEW_FUN_EXPORT PFNGLGETQUERYBUFFEROBJECTI64VPROC __glewGetQueryBufferObjecti64v; +GLEW_FUN_EXPORT PFNGLGETQUERYBUFFEROBJECTIVPROC __glewGetQueryBufferObjectiv; +GLEW_FUN_EXPORT PFNGLGETQUERYBUFFEROBJECTUI64VPROC __glewGetQueryBufferObjectui64v; +GLEW_FUN_EXPORT PFNGLGETQUERYBUFFEROBJECTUIVPROC __glewGetQueryBufferObjectuiv; +GLEW_FUN_EXPORT PFNGLGETTEXTUREIMAGEPROC __glewGetTextureImage; +GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERFVPROC __glewGetTextureLevelParameterfv; +GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERIVPROC __glewGetTextureLevelParameteriv; +GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIIVPROC __glewGetTextureParameterIiv; +GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIUIVPROC __glewGetTextureParameterIuiv; +GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERFVPROC __glewGetTextureParameterfv; +GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIVPROC __glewGetTextureParameteriv; +GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKI64_VPROC __glewGetTransformFeedbacki64_v; +GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKI_VPROC __glewGetTransformFeedbacki_v; +GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKIVPROC __glewGetTransformFeedbackiv; +GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINDEXED64IVPROC __glewGetVertexArrayIndexed64iv; +GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINDEXEDIVPROC __glewGetVertexArrayIndexediv; +GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYIVPROC __glewGetVertexArrayiv; +GLEW_FUN_EXPORT PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC __glewInvalidateNamedFramebufferData; +GLEW_FUN_EXPORT PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC __glewInvalidateNamedFramebufferSubData; +GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFERPROC __glewMapNamedBuffer; +GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFERRANGEPROC __glewMapNamedBufferRange; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERDATAPROC __glewNamedBufferData; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEPROC __glewNamedBufferStorage; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSUBDATAPROC __glewNamedBufferSubData; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC __glewNamedFramebufferDrawBuffer; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC __glewNamedFramebufferDrawBuffers; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC __glewNamedFramebufferParameteri; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC __glewNamedFramebufferReadBuffer; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC __glewNamedFramebufferRenderbuffer; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREPROC __glewNamedFramebufferTexture; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC __glewNamedFramebufferTextureLayer; +GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEPROC __glewNamedRenderbufferStorage; +GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC __glewNamedRenderbufferStorageMultisample; +GLEW_FUN_EXPORT PFNGLTEXTUREBUFFERPROC __glewTextureBuffer; +GLEW_FUN_EXPORT PFNGLTEXTUREBUFFERRANGEPROC __glewTextureBufferRange; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIIVPROC __glewTextureParameterIiv; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIUIVPROC __glewTextureParameterIuiv; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFPROC __glewTextureParameterf; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFVPROC __glewTextureParameterfv; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIPROC __glewTextureParameteri; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIVPROC __glewTextureParameteriv; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE1DPROC __glewTextureStorage1D; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DPROC __glewTextureStorage2D; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC __glewTextureStorage2DMultisample; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DPROC __glewTextureStorage3D; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC __glewTextureStorage3DMultisample; +GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE1DPROC __glewTextureSubImage1D; +GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE2DPROC __glewTextureSubImage2D; +GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE3DPROC __glewTextureSubImage3D; +GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC __glewTransformFeedbackBufferBase; +GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC __glewTransformFeedbackBufferRange; +GLEW_FUN_EXPORT PFNGLUNMAPNAMEDBUFFERPROC __glewUnmapNamedBuffer; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYATTRIBBINDINGPROC __glewVertexArrayAttribBinding; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYATTRIBFORMATPROC __glewVertexArrayAttribFormat; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYATTRIBIFORMATPROC __glewVertexArrayAttribIFormat; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYATTRIBLFORMATPROC __glewVertexArrayAttribLFormat; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYBINDINGDIVISORPROC __glewVertexArrayBindingDivisor; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYELEMENTBUFFERPROC __glewVertexArrayElementBuffer; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXBUFFERPROC __glewVertexArrayVertexBuffer; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXBUFFERSPROC __glewVertexArrayVertexBuffers; + +GLEW_FUN_EXPORT PFNGLDRAWBUFFERSARBPROC __glewDrawBuffersARB; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIARBPROC __glewBlendEquationSeparateiARB; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIARBPROC __glewBlendEquationiARB; +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIARBPROC __glewBlendFuncSeparateiARB; +GLEW_FUN_EXPORT PFNGLBLENDFUNCIARBPROC __glewBlendFunciARB; + +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSBASEVERTEXPROC __glewDrawElementsBaseVertex; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC __glewDrawElementsInstancedBaseVertex; +GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC __glewDrawRangeElementsBaseVertex; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC __glewMultiDrawElementsBaseVertex; + +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINDIRECTPROC __glewDrawArraysIndirect; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINDIRECTPROC __glewDrawElementsIndirect; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERPARAMETERIPROC __glewFramebufferParameteri; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVPROC __glewGetFramebufferParameteriv; +GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC __glewGetNamedFramebufferParameterivEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC __glewNamedFramebufferParameteriEXT; + +GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFERPROC __glewBindFramebuffer; +GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFERPROC __glewBindRenderbuffer; +GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERPROC __glewBlitFramebuffer; +GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSPROC __glewCheckFramebufferStatus; +GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSPROC __glewDeleteFramebuffers; +GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSPROC __glewDeleteRenderbuffers; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFERPROC __glewFramebufferRenderbuffer; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE1DPROC __glewFramebufferTexture1D; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DPROC __glewFramebufferTexture2D; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DPROC __glewFramebufferTexture3D; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERPROC __glewFramebufferTextureLayer; +GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSPROC __glewGenFramebuffers; +GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSPROC __glewGenRenderbuffers; +GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPPROC __glewGenerateMipmap; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC __glewGetFramebufferAttachmentParameteriv; +GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVPROC __glewGetRenderbufferParameteriv; +GLEW_FUN_EXPORT PFNGLISFRAMEBUFFERPROC __glewIsFramebuffer; +GLEW_FUN_EXPORT PFNGLISRENDERBUFFERPROC __glewIsRenderbuffer; +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEPROC __glewRenderbufferStorage; +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC __glewRenderbufferStorageMultisample; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREARBPROC __glewFramebufferTextureARB; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEARBPROC __glewFramebufferTextureFaceARB; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERARBPROC __glewFramebufferTextureLayerARB; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIARBPROC __glewProgramParameteriARB; + +GLEW_FUN_EXPORT PFNGLGETPROGRAMBINARYPROC __glewGetProgramBinary; +GLEW_FUN_EXPORT PFNGLPROGRAMBINARYPROC __glewProgramBinary; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIPROC __glewProgramParameteri; + +GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC __glewGetCompressedTextureSubImage; +GLEW_FUN_EXPORT PFNGLGETTEXTURESUBIMAGEPROC __glewGetTextureSubImage; + +GLEW_FUN_EXPORT PFNGLSPECIALIZESHADERARBPROC __glewSpecializeShaderARB; + +GLEW_FUN_EXPORT PFNGLGETUNIFORMDVPROC __glewGetUniformdv; +GLEW_FUN_EXPORT PFNGLUNIFORM1DPROC __glewUniform1d; +GLEW_FUN_EXPORT PFNGLUNIFORM1DVPROC __glewUniform1dv; +GLEW_FUN_EXPORT PFNGLUNIFORM2DPROC __glewUniform2d; +GLEW_FUN_EXPORT PFNGLUNIFORM2DVPROC __glewUniform2dv; +GLEW_FUN_EXPORT PFNGLUNIFORM3DPROC __glewUniform3d; +GLEW_FUN_EXPORT PFNGLUNIFORM3DVPROC __glewUniform3dv; +GLEW_FUN_EXPORT PFNGLUNIFORM4DPROC __glewUniform4d; +GLEW_FUN_EXPORT PFNGLUNIFORM4DVPROC __glewUniform4dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2DVPROC __glewUniformMatrix2dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3DVPROC __glewUniformMatrix2x3dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4DVPROC __glewUniformMatrix2x4dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3DVPROC __glewUniformMatrix3dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2DVPROC __glewUniformMatrix3x2dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4DVPROC __glewUniformMatrix3x4dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4DVPROC __glewUniformMatrix4dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2DVPROC __glewUniformMatrix4x2dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3DVPROC __glewUniformMatrix4x3dv; + +GLEW_FUN_EXPORT PFNGLGETUNIFORMI64VARBPROC __glewGetUniformi64vARB; +GLEW_FUN_EXPORT PFNGLGETUNIFORMUI64VARBPROC __glewGetUniformui64vARB; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMI64VARBPROC __glewGetnUniformi64vARB; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMUI64VARBPROC __glewGetnUniformui64vARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64ARBPROC __glewProgramUniform1i64ARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64VARBPROC __glewProgramUniform1i64vARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64ARBPROC __glewProgramUniform1ui64ARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64VARBPROC __glewProgramUniform1ui64vARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64ARBPROC __glewProgramUniform2i64ARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64VARBPROC __glewProgramUniform2i64vARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64ARBPROC __glewProgramUniform2ui64ARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64VARBPROC __glewProgramUniform2ui64vARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64ARBPROC __glewProgramUniform3i64ARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64VARBPROC __glewProgramUniform3i64vARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64ARBPROC __glewProgramUniform3ui64ARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64VARBPROC __glewProgramUniform3ui64vARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64ARBPROC __glewProgramUniform4i64ARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64VARBPROC __glewProgramUniform4i64vARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64ARBPROC __glewProgramUniform4ui64ARB; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64VARBPROC __glewProgramUniform4ui64vARB; +GLEW_FUN_EXPORT PFNGLUNIFORM1I64ARBPROC __glewUniform1i64ARB; +GLEW_FUN_EXPORT PFNGLUNIFORM1I64VARBPROC __glewUniform1i64vARB; +GLEW_FUN_EXPORT PFNGLUNIFORM1UI64ARBPROC __glewUniform1ui64ARB; +GLEW_FUN_EXPORT PFNGLUNIFORM1UI64VARBPROC __glewUniform1ui64vARB; +GLEW_FUN_EXPORT PFNGLUNIFORM2I64ARBPROC __glewUniform2i64ARB; +GLEW_FUN_EXPORT PFNGLUNIFORM2I64VARBPROC __glewUniform2i64vARB; +GLEW_FUN_EXPORT PFNGLUNIFORM2UI64ARBPROC __glewUniform2ui64ARB; +GLEW_FUN_EXPORT PFNGLUNIFORM2UI64VARBPROC __glewUniform2ui64vARB; +GLEW_FUN_EXPORT PFNGLUNIFORM3I64ARBPROC __glewUniform3i64ARB; +GLEW_FUN_EXPORT PFNGLUNIFORM3I64VARBPROC __glewUniform3i64vARB; +GLEW_FUN_EXPORT PFNGLUNIFORM3UI64ARBPROC __glewUniform3ui64ARB; +GLEW_FUN_EXPORT PFNGLUNIFORM3UI64VARBPROC __glewUniform3ui64vARB; +GLEW_FUN_EXPORT PFNGLUNIFORM4I64ARBPROC __glewUniform4i64ARB; +GLEW_FUN_EXPORT PFNGLUNIFORM4I64VARBPROC __glewUniform4i64vARB; +GLEW_FUN_EXPORT PFNGLUNIFORM4UI64ARBPROC __glewUniform4ui64ARB; +GLEW_FUN_EXPORT PFNGLUNIFORM4UI64VARBPROC __glewUniform4ui64vARB; + +GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEPROC __glewColorSubTable; +GLEW_FUN_EXPORT PFNGLCOLORTABLEPROC __glewColorTable; +GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVPROC __glewColorTableParameterfv; +GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVPROC __glewColorTableParameteriv; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER1DPROC __glewConvolutionFilter1D; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER2DPROC __glewConvolutionFilter2D; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFPROC __glewConvolutionParameterf; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFVPROC __glewConvolutionParameterfv; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIPROC __glewConvolutionParameteri; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIVPROC __glewConvolutionParameteriv; +GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEPROC __glewCopyColorSubTable; +GLEW_FUN_EXPORT PFNGLCOPYCOLORTABLEPROC __glewCopyColorTable; +GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER1DPROC __glewCopyConvolutionFilter1D; +GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER2DPROC __glewCopyConvolutionFilter2D; +GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPROC __glewGetColorTable; +GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVPROC __glewGetColorTableParameterfv; +GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVPROC __glewGetColorTableParameteriv; +GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONFILTERPROC __glewGetConvolutionFilter; +GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERFVPROC __glewGetConvolutionParameterfv; +GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERIVPROC __glewGetConvolutionParameteriv; +GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPROC __glewGetHistogram; +GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERFVPROC __glewGetHistogramParameterfv; +GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERIVPROC __glewGetHistogramParameteriv; +GLEW_FUN_EXPORT PFNGLGETMINMAXPROC __glewGetMinmax; +GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERFVPROC __glewGetMinmaxParameterfv; +GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERIVPROC __glewGetMinmaxParameteriv; +GLEW_FUN_EXPORT PFNGLGETSEPARABLEFILTERPROC __glewGetSeparableFilter; +GLEW_FUN_EXPORT PFNGLHISTOGRAMPROC __glewHistogram; +GLEW_FUN_EXPORT PFNGLMINMAXPROC __glewMinmax; +GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMPROC __glewResetHistogram; +GLEW_FUN_EXPORT PFNGLRESETMINMAXPROC __glewResetMinmax; +GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DPROC __glewSeparableFilter2D; + +GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC __glewMultiDrawArraysIndirectCountARB; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC __glewMultiDrawElementsIndirectCountARB; + +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDARBPROC __glewDrawArraysInstancedARB; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDARBPROC __glewDrawElementsInstancedARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORARBPROC __glewVertexAttribDivisorARB; + +GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATIVPROC __glewGetInternalformativ; + +GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATI64VPROC __glewGetInternalformati64v; + +GLEW_FUN_EXPORT PFNGLINVALIDATEBUFFERDATAPROC __glewInvalidateBufferData; +GLEW_FUN_EXPORT PFNGLINVALIDATEBUFFERSUBDATAPROC __glewInvalidateBufferSubData; +GLEW_FUN_EXPORT PFNGLINVALIDATEFRAMEBUFFERPROC __glewInvalidateFramebuffer; +GLEW_FUN_EXPORT PFNGLINVALIDATESUBFRAMEBUFFERPROC __glewInvalidateSubFramebuffer; +GLEW_FUN_EXPORT PFNGLINVALIDATETEXIMAGEPROC __glewInvalidateTexImage; +GLEW_FUN_EXPORT PFNGLINVALIDATETEXSUBIMAGEPROC __glewInvalidateTexSubImage; + +GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEPROC __glewFlushMappedBufferRange; +GLEW_FUN_EXPORT PFNGLMAPBUFFERRANGEPROC __glewMapBufferRange; + +GLEW_FUN_EXPORT PFNGLCURRENTPALETTEMATRIXARBPROC __glewCurrentPaletteMatrixARB; +GLEW_FUN_EXPORT PFNGLMATRIXINDEXPOINTERARBPROC __glewMatrixIndexPointerARB; +GLEW_FUN_EXPORT PFNGLMATRIXINDEXUBVARBPROC __glewMatrixIndexubvARB; +GLEW_FUN_EXPORT PFNGLMATRIXINDEXUIVARBPROC __glewMatrixIndexuivARB; +GLEW_FUN_EXPORT PFNGLMATRIXINDEXUSVARBPROC __glewMatrixIndexusvARB; + +GLEW_FUN_EXPORT PFNGLBINDBUFFERSBASEPROC __glewBindBuffersBase; +GLEW_FUN_EXPORT PFNGLBINDBUFFERSRANGEPROC __glewBindBuffersRange; +GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTURESPROC __glewBindImageTextures; +GLEW_FUN_EXPORT PFNGLBINDSAMPLERSPROC __glewBindSamplers; +GLEW_FUN_EXPORT PFNGLBINDTEXTURESPROC __glewBindTextures; +GLEW_FUN_EXPORT PFNGLBINDVERTEXBUFFERSPROC __glewBindVertexBuffers; + +GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTPROC __glewMultiDrawArraysIndirect; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTPROC __glewMultiDrawElementsIndirect; + +GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEARBPROC __glewSampleCoverageARB; + +GLEW_FUN_EXPORT PFNGLACTIVETEXTUREARBPROC __glewActiveTextureARB; +GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREARBPROC __glewClientActiveTextureARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DARBPROC __glewMultiTexCoord1dARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DVARBPROC __glewMultiTexCoord1dvARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FARBPROC __glewMultiTexCoord1fARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FVARBPROC __glewMultiTexCoord1fvARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IARBPROC __glewMultiTexCoord1iARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IVARBPROC __glewMultiTexCoord1ivARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SARBPROC __glewMultiTexCoord1sARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SVARBPROC __glewMultiTexCoord1svARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DARBPROC __glewMultiTexCoord2dARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DVARBPROC __glewMultiTexCoord2dvARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FARBPROC __glewMultiTexCoord2fARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FVARBPROC __glewMultiTexCoord2fvARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IARBPROC __glewMultiTexCoord2iARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IVARBPROC __glewMultiTexCoord2ivARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SARBPROC __glewMultiTexCoord2sARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SVARBPROC __glewMultiTexCoord2svARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DARBPROC __glewMultiTexCoord3dARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DVARBPROC __glewMultiTexCoord3dvARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FARBPROC __glewMultiTexCoord3fARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FVARBPROC __glewMultiTexCoord3fvARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IARBPROC __glewMultiTexCoord3iARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IVARBPROC __glewMultiTexCoord3ivARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SARBPROC __glewMultiTexCoord3sARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SVARBPROC __glewMultiTexCoord3svARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DARBPROC __glewMultiTexCoord4dARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DVARBPROC __glewMultiTexCoord4dvARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FARBPROC __glewMultiTexCoord4fARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FVARBPROC __glewMultiTexCoord4fvARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IARBPROC __glewMultiTexCoord4iARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IVARBPROC __glewMultiTexCoord4ivARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SARBPROC __glewMultiTexCoord4sARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SVARBPROC __glewMultiTexCoord4svARB; + +GLEW_FUN_EXPORT PFNGLBEGINQUERYARBPROC __glewBeginQueryARB; +GLEW_FUN_EXPORT PFNGLDELETEQUERIESARBPROC __glewDeleteQueriesARB; +GLEW_FUN_EXPORT PFNGLENDQUERYARBPROC __glewEndQueryARB; +GLEW_FUN_EXPORT PFNGLGENQUERIESARBPROC __glewGenQueriesARB; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVARBPROC __glewGetQueryObjectivARB; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVARBPROC __glewGetQueryObjectuivARB; +GLEW_FUN_EXPORT PFNGLGETQUERYIVARBPROC __glewGetQueryivARB; +GLEW_FUN_EXPORT PFNGLISQUERYARBPROC __glewIsQueryARB; + +GLEW_FUN_EXPORT PFNGLMAXSHADERCOMPILERTHREADSARBPROC __glewMaxShaderCompilerThreadsARB; + +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFARBPROC __glewPointParameterfARB; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVARBPROC __glewPointParameterfvARB; + +GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETCLAMPPROC __glewPolygonOffsetClamp; + +GLEW_FUN_EXPORT PFNGLGETPROGRAMINTERFACEIVPROC __glewGetProgramInterfaceiv; +GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCEINDEXPROC __glewGetProgramResourceIndex; +GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONPROC __glewGetProgramResourceLocation; +GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC __glewGetProgramResourceLocationIndex; +GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCENAMEPROC __glewGetProgramResourceName; +GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCEIVPROC __glewGetProgramResourceiv; + +GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXPROC __glewProvokingVertex; + +GLEW_FUN_EXPORT PFNGLGETGRAPHICSRESETSTATUSARBPROC __glewGetGraphicsResetStatusARB; +GLEW_FUN_EXPORT PFNGLGETNCOLORTABLEARBPROC __glewGetnColorTableARB; +GLEW_FUN_EXPORT PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC __glewGetnCompressedTexImageARB; +GLEW_FUN_EXPORT PFNGLGETNCONVOLUTIONFILTERARBPROC __glewGetnConvolutionFilterARB; +GLEW_FUN_EXPORT PFNGLGETNHISTOGRAMARBPROC __glewGetnHistogramARB; +GLEW_FUN_EXPORT PFNGLGETNMAPDVARBPROC __glewGetnMapdvARB; +GLEW_FUN_EXPORT PFNGLGETNMAPFVARBPROC __glewGetnMapfvARB; +GLEW_FUN_EXPORT PFNGLGETNMAPIVARBPROC __glewGetnMapivARB; +GLEW_FUN_EXPORT PFNGLGETNMINMAXARBPROC __glewGetnMinmaxARB; +GLEW_FUN_EXPORT PFNGLGETNPIXELMAPFVARBPROC __glewGetnPixelMapfvARB; +GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUIVARBPROC __glewGetnPixelMapuivARB; +GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUSVARBPROC __glewGetnPixelMapusvARB; +GLEW_FUN_EXPORT PFNGLGETNPOLYGONSTIPPLEARBPROC __glewGetnPolygonStippleARB; +GLEW_FUN_EXPORT PFNGLGETNSEPARABLEFILTERARBPROC __glewGetnSeparableFilterARB; +GLEW_FUN_EXPORT PFNGLGETNTEXIMAGEARBPROC __glewGetnTexImageARB; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMDVARBPROC __glewGetnUniformdvARB; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVARBPROC __glewGetnUniformfvARB; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVARBPROC __glewGetnUniformivARB; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMUIVARBPROC __glewGetnUniformuivARB; +GLEW_FUN_EXPORT PFNGLREADNPIXELSARBPROC __glewReadnPixelsARB; + +GLEW_FUN_EXPORT PFNGLEVALUATEDEPTHVALUESARBPROC __glewEvaluateDepthValuesARB; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC __glewFramebufferSampleLocationsfvARB; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC __glewNamedFramebufferSampleLocationsfvARB; + +GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGARBPROC __glewMinSampleShadingARB; + +GLEW_FUN_EXPORT PFNGLBINDSAMPLERPROC __glewBindSampler; +GLEW_FUN_EXPORT PFNGLDELETESAMPLERSPROC __glewDeleteSamplers; +GLEW_FUN_EXPORT PFNGLGENSAMPLERSPROC __glewGenSamplers; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIIVPROC __glewGetSamplerParameterIiv; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIUIVPROC __glewGetSamplerParameterIuiv; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERFVPROC __glewGetSamplerParameterfv; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIVPROC __glewGetSamplerParameteriv; +GLEW_FUN_EXPORT PFNGLISSAMPLERPROC __glewIsSampler; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIIVPROC __glewSamplerParameterIiv; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIUIVPROC __glewSamplerParameterIuiv; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFPROC __glewSamplerParameterf; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFVPROC __glewSamplerParameterfv; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIPROC __glewSamplerParameteri; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIVPROC __glewSamplerParameteriv; + +GLEW_FUN_EXPORT PFNGLACTIVESHADERPROGRAMPROC __glewActiveShaderProgram; +GLEW_FUN_EXPORT PFNGLBINDPROGRAMPIPELINEPROC __glewBindProgramPipeline; +GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMVPROC __glewCreateShaderProgramv; +GLEW_FUN_EXPORT PFNGLDELETEPROGRAMPIPELINESPROC __glewDeleteProgramPipelines; +GLEW_FUN_EXPORT PFNGLGENPROGRAMPIPELINESPROC __glewGenProgramPipelines; +GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEINFOLOGPROC __glewGetProgramPipelineInfoLog; +GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEIVPROC __glewGetProgramPipelineiv; +GLEW_FUN_EXPORT PFNGLISPROGRAMPIPELINEPROC __glewIsProgramPipeline; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DPROC __glewProgramUniform1d; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DVPROC __glewProgramUniform1dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FPROC __glewProgramUniform1f; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVPROC __glewProgramUniform1fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IPROC __glewProgramUniform1i; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVPROC __glewProgramUniform1iv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIPROC __glewProgramUniform1ui; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVPROC __glewProgramUniform1uiv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DPROC __glewProgramUniform2d; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DVPROC __glewProgramUniform2dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FPROC __glewProgramUniform2f; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVPROC __glewProgramUniform2fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IPROC __glewProgramUniform2i; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVPROC __glewProgramUniform2iv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIPROC __glewProgramUniform2ui; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVPROC __glewProgramUniform2uiv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DPROC __glewProgramUniform3d; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DVPROC __glewProgramUniform3dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FPROC __glewProgramUniform3f; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVPROC __glewProgramUniform3fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IPROC __glewProgramUniform3i; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVPROC __glewProgramUniform3iv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIPROC __glewProgramUniform3ui; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVPROC __glewProgramUniform3uiv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DPROC __glewProgramUniform4d; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DVPROC __glewProgramUniform4dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FPROC __glewProgramUniform4f; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVPROC __glewProgramUniform4fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IPROC __glewProgramUniform4i; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVPROC __glewProgramUniform4iv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIPROC __glewProgramUniform4ui; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVPROC __glewProgramUniform4uiv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2DVPROC __glewProgramUniformMatrix2dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVPROC __glewProgramUniformMatrix2fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC __glewProgramUniformMatrix2x3dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC __glewProgramUniformMatrix2x3fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC __glewProgramUniformMatrix2x4dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC __glewProgramUniformMatrix2x4fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3DVPROC __glewProgramUniformMatrix3dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVPROC __glewProgramUniformMatrix3fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC __glewProgramUniformMatrix3x2dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC __glewProgramUniformMatrix3x2fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC __glewProgramUniformMatrix3x4dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC __glewProgramUniformMatrix3x4fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4DVPROC __glewProgramUniformMatrix4dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVPROC __glewProgramUniformMatrix4fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC __glewProgramUniformMatrix4x2dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC __glewProgramUniformMatrix4x2fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC __glewProgramUniformMatrix4x3dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC __glewProgramUniformMatrix4x3fv; +GLEW_FUN_EXPORT PFNGLUSEPROGRAMSTAGESPROC __glewUseProgramStages; +GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMPIPELINEPROC __glewValidateProgramPipeline; + +GLEW_FUN_EXPORT PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC __glewGetActiveAtomicCounterBufferiv; + +GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREPROC __glewBindImageTexture; +GLEW_FUN_EXPORT PFNGLMEMORYBARRIERPROC __glewMemoryBarrier; + +GLEW_FUN_EXPORT PFNGLATTACHOBJECTARBPROC __glewAttachObjectARB; +GLEW_FUN_EXPORT PFNGLCOMPILESHADERARBPROC __glewCompileShaderARB; +GLEW_FUN_EXPORT PFNGLCREATEPROGRAMOBJECTARBPROC __glewCreateProgramObjectARB; +GLEW_FUN_EXPORT PFNGLCREATESHADEROBJECTARBPROC __glewCreateShaderObjectARB; +GLEW_FUN_EXPORT PFNGLDELETEOBJECTARBPROC __glewDeleteObjectARB; +GLEW_FUN_EXPORT PFNGLDETACHOBJECTARBPROC __glewDetachObjectARB; +GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMARBPROC __glewGetActiveUniformARB; +GLEW_FUN_EXPORT PFNGLGETATTACHEDOBJECTSARBPROC __glewGetAttachedObjectsARB; +GLEW_FUN_EXPORT PFNGLGETHANDLEARBPROC __glewGetHandleARB; +GLEW_FUN_EXPORT PFNGLGETINFOLOGARBPROC __glewGetInfoLogARB; +GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERFVARBPROC __glewGetObjectParameterfvARB; +GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVARBPROC __glewGetObjectParameterivARB; +GLEW_FUN_EXPORT PFNGLGETSHADERSOURCEARBPROC __glewGetShaderSourceARB; +GLEW_FUN_EXPORT PFNGLGETUNIFORMLOCATIONARBPROC __glewGetUniformLocationARB; +GLEW_FUN_EXPORT PFNGLGETUNIFORMFVARBPROC __glewGetUniformfvARB; +GLEW_FUN_EXPORT PFNGLGETUNIFORMIVARBPROC __glewGetUniformivARB; +GLEW_FUN_EXPORT PFNGLLINKPROGRAMARBPROC __glewLinkProgramARB; +GLEW_FUN_EXPORT PFNGLSHADERSOURCEARBPROC __glewShaderSourceARB; +GLEW_FUN_EXPORT PFNGLUNIFORM1FARBPROC __glewUniform1fARB; +GLEW_FUN_EXPORT PFNGLUNIFORM1FVARBPROC __glewUniform1fvARB; +GLEW_FUN_EXPORT PFNGLUNIFORM1IARBPROC __glewUniform1iARB; +GLEW_FUN_EXPORT PFNGLUNIFORM1IVARBPROC __glewUniform1ivARB; +GLEW_FUN_EXPORT PFNGLUNIFORM2FARBPROC __glewUniform2fARB; +GLEW_FUN_EXPORT PFNGLUNIFORM2FVARBPROC __glewUniform2fvARB; +GLEW_FUN_EXPORT PFNGLUNIFORM2IARBPROC __glewUniform2iARB; +GLEW_FUN_EXPORT PFNGLUNIFORM2IVARBPROC __glewUniform2ivARB; +GLEW_FUN_EXPORT PFNGLUNIFORM3FARBPROC __glewUniform3fARB; +GLEW_FUN_EXPORT PFNGLUNIFORM3FVARBPROC __glewUniform3fvARB; +GLEW_FUN_EXPORT PFNGLUNIFORM3IARBPROC __glewUniform3iARB; +GLEW_FUN_EXPORT PFNGLUNIFORM3IVARBPROC __glewUniform3ivARB; +GLEW_FUN_EXPORT PFNGLUNIFORM4FARBPROC __glewUniform4fARB; +GLEW_FUN_EXPORT PFNGLUNIFORM4FVARBPROC __glewUniform4fvARB; +GLEW_FUN_EXPORT PFNGLUNIFORM4IARBPROC __glewUniform4iARB; +GLEW_FUN_EXPORT PFNGLUNIFORM4IVARBPROC __glewUniform4ivARB; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2FVARBPROC __glewUniformMatrix2fvARB; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3FVARBPROC __glewUniformMatrix3fvARB; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4FVARBPROC __glewUniformMatrix4fvARB; +GLEW_FUN_EXPORT PFNGLUSEPROGRAMOBJECTARBPROC __glewUseProgramObjectARB; +GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMARBPROC __glewValidateProgramARB; + +GLEW_FUN_EXPORT PFNGLSHADERSTORAGEBLOCKBINDINGPROC __glewShaderStorageBlockBinding; + +GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINENAMEPROC __glewGetActiveSubroutineName; +GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC __glewGetActiveSubroutineUniformName; +GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC __glewGetActiveSubroutineUniformiv; +GLEW_FUN_EXPORT PFNGLGETPROGRAMSTAGEIVPROC __glewGetProgramStageiv; +GLEW_FUN_EXPORT PFNGLGETSUBROUTINEINDEXPROC __glewGetSubroutineIndex; +GLEW_FUN_EXPORT PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC __glewGetSubroutineUniformLocation; +GLEW_FUN_EXPORT PFNGLGETUNIFORMSUBROUTINEUIVPROC __glewGetUniformSubroutineuiv; +GLEW_FUN_EXPORT PFNGLUNIFORMSUBROUTINESUIVPROC __glewUniformSubroutinesuiv; + +GLEW_FUN_EXPORT PFNGLCOMPILESHADERINCLUDEARBPROC __glewCompileShaderIncludeARB; +GLEW_FUN_EXPORT PFNGLDELETENAMEDSTRINGARBPROC __glewDeleteNamedStringARB; +GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGARBPROC __glewGetNamedStringARB; +GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGIVARBPROC __glewGetNamedStringivARB; +GLEW_FUN_EXPORT PFNGLISNAMEDSTRINGARBPROC __glewIsNamedStringARB; +GLEW_FUN_EXPORT PFNGLNAMEDSTRINGARBPROC __glewNamedStringARB; + +GLEW_FUN_EXPORT PFNGLBUFFERPAGECOMMITMENTARBPROC __glewBufferPageCommitmentARB; + +GLEW_FUN_EXPORT PFNGLTEXPAGECOMMITMENTARBPROC __glewTexPageCommitmentARB; + +GLEW_FUN_EXPORT PFNGLCLIENTWAITSYNCPROC __glewClientWaitSync; +GLEW_FUN_EXPORT PFNGLDELETESYNCPROC __glewDeleteSync; +GLEW_FUN_EXPORT PFNGLFENCESYNCPROC __glewFenceSync; +GLEW_FUN_EXPORT PFNGLGETINTEGER64VPROC __glewGetInteger64v; +GLEW_FUN_EXPORT PFNGLGETSYNCIVPROC __glewGetSynciv; +GLEW_FUN_EXPORT PFNGLISSYNCPROC __glewIsSync; +GLEW_FUN_EXPORT PFNGLWAITSYNCPROC __glewWaitSync; + +GLEW_FUN_EXPORT PFNGLPATCHPARAMETERFVPROC __glewPatchParameterfv; +GLEW_FUN_EXPORT PFNGLPATCHPARAMETERIPROC __glewPatchParameteri; + +GLEW_FUN_EXPORT PFNGLTEXTUREBARRIERPROC __glewTextureBarrier; + +GLEW_FUN_EXPORT PFNGLTEXBUFFERARBPROC __glewTexBufferARB; + +GLEW_FUN_EXPORT PFNGLTEXBUFFERRANGEPROC __glewTexBufferRange; +GLEW_FUN_EXPORT PFNGLTEXTUREBUFFERRANGEEXTPROC __glewTextureBufferRangeEXT; + +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DARBPROC __glewCompressedTexImage1DARB; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DARBPROC __glewCompressedTexImage2DARB; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DARBPROC __glewCompressedTexImage3DARB; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC __glewCompressedTexSubImage1DARB; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC __glewCompressedTexSubImage2DARB; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC __glewCompressedTexSubImage3DARB; +GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEARBPROC __glewGetCompressedTexImageARB; + +GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVPROC __glewGetMultisamplefv; +GLEW_FUN_EXPORT PFNGLSAMPLEMASKIPROC __glewSampleMaski; +GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLEPROC __glewTexImage2DMultisample; +GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLEPROC __glewTexImage3DMultisample; + +GLEW_FUN_EXPORT PFNGLTEXSTORAGE1DPROC __glewTexStorage1D; +GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DPROC __glewTexStorage2D; +GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DPROC __glewTexStorage3D; + +GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DMULTISAMPLEPROC __glewTexStorage2DMultisample; +GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DMULTISAMPLEPROC __glewTexStorage3DMultisample; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC __glewTextureStorage2DMultisampleEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC __glewTextureStorage3DMultisampleEXT; + +GLEW_FUN_EXPORT PFNGLTEXTUREVIEWPROC __glewTextureView; + +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VPROC __glewGetQueryObjecti64v; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VPROC __glewGetQueryObjectui64v; +GLEW_FUN_EXPORT PFNGLQUERYCOUNTERPROC __glewQueryCounter; + +GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKPROC __glewBindTransformFeedback; +GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSPROC __glewDeleteTransformFeedbacks; +GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKPROC __glewDrawTransformFeedback; +GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSPROC __glewGenTransformFeedbacks; +GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKPROC __glewIsTransformFeedback; +GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKPROC __glewPauseTransformFeedback; +GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKPROC __glewResumeTransformFeedback; + +GLEW_FUN_EXPORT PFNGLBEGINQUERYINDEXEDPROC __glewBeginQueryIndexed; +GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC __glewDrawTransformFeedbackStream; +GLEW_FUN_EXPORT PFNGLENDQUERYINDEXEDPROC __glewEndQueryIndexed; +GLEW_FUN_EXPORT PFNGLGETQUERYINDEXEDIVPROC __glewGetQueryIndexediv; + +GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC __glewDrawTransformFeedbackInstanced; +GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC __glewDrawTransformFeedbackStreamInstanced; + +GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDARBPROC __glewLoadTransposeMatrixdARB; +GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFARBPROC __glewLoadTransposeMatrixfARB; +GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDARBPROC __glewMultTransposeMatrixdARB; +GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFARBPROC __glewMultTransposeMatrixfARB; + +GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEPROC __glewBindBufferBase; +GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEPROC __glewBindBufferRange; +GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC __glewGetActiveUniformBlockName; +GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKIVPROC __glewGetActiveUniformBlockiv; +GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMNAMEPROC __glewGetActiveUniformName; +GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMSIVPROC __glewGetActiveUniformsiv; +GLEW_FUN_EXPORT PFNGLGETINTEGERI_VPROC __glewGetIntegeri_v; +GLEW_FUN_EXPORT PFNGLGETUNIFORMBLOCKINDEXPROC __glewGetUniformBlockIndex; +GLEW_FUN_EXPORT PFNGLGETUNIFORMINDICESPROC __glewGetUniformIndices; +GLEW_FUN_EXPORT PFNGLUNIFORMBLOCKBINDINGPROC __glewUniformBlockBinding; + +GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYPROC __glewBindVertexArray; +GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSPROC __glewDeleteVertexArrays; +GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSPROC __glewGenVertexArrays; +GLEW_FUN_EXPORT PFNGLISVERTEXARRAYPROC __glewIsVertexArray; + +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVPROC __glewGetVertexAttribLdv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DPROC __glewVertexAttribL1d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVPROC __glewVertexAttribL1dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DPROC __glewVertexAttribL2d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVPROC __glewVertexAttribL2dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DPROC __glewVertexAttribL3d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVPROC __glewVertexAttribL3dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DPROC __glewVertexAttribL4d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVPROC __glewVertexAttribL4dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTERPROC __glewVertexAttribLPointer; + +GLEW_FUN_EXPORT PFNGLBINDVERTEXBUFFERPROC __glewBindVertexBuffer; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC __glewVertexArrayBindVertexBufferEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC __glewVertexArrayVertexAttribBindingEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC __glewVertexArrayVertexAttribFormatEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC __glewVertexArrayVertexAttribIFormatEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC __glewVertexArrayVertexAttribLFormatEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC __glewVertexArrayVertexBindingDivisorEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBBINDINGPROC __glewVertexAttribBinding; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBFORMATPROC __glewVertexAttribFormat; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIFORMATPROC __glewVertexAttribIFormat; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLFORMATPROC __glewVertexAttribLFormat; +GLEW_FUN_EXPORT PFNGLVERTEXBINDINGDIVISORPROC __glewVertexBindingDivisor; + +GLEW_FUN_EXPORT PFNGLVERTEXBLENDARBPROC __glewVertexBlendARB; +GLEW_FUN_EXPORT PFNGLWEIGHTPOINTERARBPROC __glewWeightPointerARB; +GLEW_FUN_EXPORT PFNGLWEIGHTBVARBPROC __glewWeightbvARB; +GLEW_FUN_EXPORT PFNGLWEIGHTDVARBPROC __glewWeightdvARB; +GLEW_FUN_EXPORT PFNGLWEIGHTFVARBPROC __glewWeightfvARB; +GLEW_FUN_EXPORT PFNGLWEIGHTIVARBPROC __glewWeightivARB; +GLEW_FUN_EXPORT PFNGLWEIGHTSVARBPROC __glewWeightsvARB; +GLEW_FUN_EXPORT PFNGLWEIGHTUBVARBPROC __glewWeightubvARB; +GLEW_FUN_EXPORT PFNGLWEIGHTUIVARBPROC __glewWeightuivARB; +GLEW_FUN_EXPORT PFNGLWEIGHTUSVARBPROC __glewWeightusvARB; + +GLEW_FUN_EXPORT PFNGLBINDBUFFERARBPROC __glewBindBufferARB; +GLEW_FUN_EXPORT PFNGLBUFFERDATAARBPROC __glewBufferDataARB; +GLEW_FUN_EXPORT PFNGLBUFFERSUBDATAARBPROC __glewBufferSubDataARB; +GLEW_FUN_EXPORT PFNGLDELETEBUFFERSARBPROC __glewDeleteBuffersARB; +GLEW_FUN_EXPORT PFNGLGENBUFFERSARBPROC __glewGenBuffersARB; +GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERIVARBPROC __glewGetBufferParameterivARB; +GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVARBPROC __glewGetBufferPointervARB; +GLEW_FUN_EXPORT PFNGLGETBUFFERSUBDATAARBPROC __glewGetBufferSubDataARB; +GLEW_FUN_EXPORT PFNGLISBUFFERARBPROC __glewIsBufferARB; +GLEW_FUN_EXPORT PFNGLMAPBUFFERARBPROC __glewMapBufferARB; +GLEW_FUN_EXPORT PFNGLUNMAPBUFFERARBPROC __glewUnmapBufferARB; + +GLEW_FUN_EXPORT PFNGLBINDPROGRAMARBPROC __glewBindProgramARB; +GLEW_FUN_EXPORT PFNGLDELETEPROGRAMSARBPROC __glewDeleteProgramsARB; +GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBARRAYARBPROC __glewDisableVertexAttribArrayARB; +GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBARRAYARBPROC __glewEnableVertexAttribArrayARB; +GLEW_FUN_EXPORT PFNGLGENPROGRAMSARBPROC __glewGenProgramsARB; +GLEW_FUN_EXPORT PFNGLGETPROGRAMENVPARAMETERDVARBPROC __glewGetProgramEnvParameterdvARB; +GLEW_FUN_EXPORT PFNGLGETPROGRAMENVPARAMETERFVARBPROC __glewGetProgramEnvParameterfvARB; +GLEW_FUN_EXPORT PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC __glewGetProgramLocalParameterdvARB; +GLEW_FUN_EXPORT PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC __glewGetProgramLocalParameterfvARB; +GLEW_FUN_EXPORT PFNGLGETPROGRAMSTRINGARBPROC __glewGetProgramStringARB; +GLEW_FUN_EXPORT PFNGLGETPROGRAMIVARBPROC __glewGetProgramivARB; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVARBPROC __glewGetVertexAttribPointervARB; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVARBPROC __glewGetVertexAttribdvARB; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVARBPROC __glewGetVertexAttribfvARB; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVARBPROC __glewGetVertexAttribivARB; +GLEW_FUN_EXPORT PFNGLISPROGRAMARBPROC __glewIsProgramARB; +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4DARBPROC __glewProgramEnvParameter4dARB; +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4DVARBPROC __glewProgramEnvParameter4dvARB; +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4FARBPROC __glewProgramEnvParameter4fARB; +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4FVARBPROC __glewProgramEnvParameter4fvARB; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4DARBPROC __glewProgramLocalParameter4dARB; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4DVARBPROC __glewProgramLocalParameter4dvARB; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4FARBPROC __glewProgramLocalParameter4fARB; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4FVARBPROC __glewProgramLocalParameter4fvARB; +GLEW_FUN_EXPORT PFNGLPROGRAMSTRINGARBPROC __glewProgramStringARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DARBPROC __glewVertexAttrib1dARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVARBPROC __glewVertexAttrib1dvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FARBPROC __glewVertexAttrib1fARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVARBPROC __glewVertexAttrib1fvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SARBPROC __glewVertexAttrib1sARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVARBPROC __glewVertexAttrib1svARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DARBPROC __glewVertexAttrib2dARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVARBPROC __glewVertexAttrib2dvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FARBPROC __glewVertexAttrib2fARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVARBPROC __glewVertexAttrib2fvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SARBPROC __glewVertexAttrib2sARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVARBPROC __glewVertexAttrib2svARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DARBPROC __glewVertexAttrib3dARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVARBPROC __glewVertexAttrib3dvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FARBPROC __glewVertexAttrib3fARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVARBPROC __glewVertexAttrib3fvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SARBPROC __glewVertexAttrib3sARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVARBPROC __glewVertexAttrib3svARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NBVARBPROC __glewVertexAttrib4NbvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NIVARBPROC __glewVertexAttrib4NivARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NSVARBPROC __glewVertexAttrib4NsvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBARBPROC __glewVertexAttrib4NubARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBVARBPROC __glewVertexAttrib4NubvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUIVARBPROC __glewVertexAttrib4NuivARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUSVARBPROC __glewVertexAttrib4NusvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4BVARBPROC __glewVertexAttrib4bvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DARBPROC __glewVertexAttrib4dARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVARBPROC __glewVertexAttrib4dvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FARBPROC __glewVertexAttrib4fARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVARBPROC __glewVertexAttrib4fvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4IVARBPROC __glewVertexAttrib4ivARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SARBPROC __glewVertexAttrib4sARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVARBPROC __glewVertexAttrib4svARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVARBPROC __glewVertexAttrib4ubvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UIVARBPROC __glewVertexAttrib4uivARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4USVARBPROC __glewVertexAttrib4usvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERARBPROC __glewVertexAttribPointerARB; + +GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONARBPROC __glewBindAttribLocationARB; +GLEW_FUN_EXPORT PFNGLGETACTIVEATTRIBARBPROC __glewGetActiveAttribARB; +GLEW_FUN_EXPORT PFNGLGETATTRIBLOCATIONARBPROC __glewGetAttribLocationARB; + +GLEW_FUN_EXPORT PFNGLCOLORP3UIPROC __glewColorP3ui; +GLEW_FUN_EXPORT PFNGLCOLORP3UIVPROC __glewColorP3uiv; +GLEW_FUN_EXPORT PFNGLCOLORP4UIPROC __glewColorP4ui; +GLEW_FUN_EXPORT PFNGLCOLORP4UIVPROC __glewColorP4uiv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIPROC __glewMultiTexCoordP1ui; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIVPROC __glewMultiTexCoordP1uiv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIPROC __glewMultiTexCoordP2ui; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIVPROC __glewMultiTexCoordP2uiv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIPROC __glewMultiTexCoordP3ui; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIVPROC __glewMultiTexCoordP3uiv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIPROC __glewMultiTexCoordP4ui; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIVPROC __glewMultiTexCoordP4uiv; +GLEW_FUN_EXPORT PFNGLNORMALP3UIPROC __glewNormalP3ui; +GLEW_FUN_EXPORT PFNGLNORMALP3UIVPROC __glewNormalP3uiv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIPROC __glewSecondaryColorP3ui; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIVPROC __glewSecondaryColorP3uiv; +GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIPROC __glewTexCoordP1ui; +GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIVPROC __glewTexCoordP1uiv; +GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIPROC __glewTexCoordP2ui; +GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIVPROC __glewTexCoordP2uiv; +GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIPROC __glewTexCoordP3ui; +GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIVPROC __glewTexCoordP3uiv; +GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIPROC __glewTexCoordP4ui; +GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIVPROC __glewTexCoordP4uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIPROC __glewVertexAttribP1ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIVPROC __glewVertexAttribP1uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIPROC __glewVertexAttribP2ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIVPROC __glewVertexAttribP2uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIPROC __glewVertexAttribP3ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIVPROC __glewVertexAttribP3uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIPROC __glewVertexAttribP4ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIVPROC __glewVertexAttribP4uiv; +GLEW_FUN_EXPORT PFNGLVERTEXP2UIPROC __glewVertexP2ui; +GLEW_FUN_EXPORT PFNGLVERTEXP2UIVPROC __glewVertexP2uiv; +GLEW_FUN_EXPORT PFNGLVERTEXP3UIPROC __glewVertexP3ui; +GLEW_FUN_EXPORT PFNGLVERTEXP3UIVPROC __glewVertexP3uiv; +GLEW_FUN_EXPORT PFNGLVERTEXP4UIPROC __glewVertexP4ui; +GLEW_FUN_EXPORT PFNGLVERTEXP4UIVPROC __glewVertexP4uiv; + +GLEW_FUN_EXPORT PFNGLDEPTHRANGEARRAYVPROC __glewDepthRangeArrayv; +GLEW_FUN_EXPORT PFNGLDEPTHRANGEINDEXEDPROC __glewDepthRangeIndexed; +GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VPROC __glewGetDoublei_v; +GLEW_FUN_EXPORT PFNGLGETFLOATI_VPROC __glewGetFloati_v; +GLEW_FUN_EXPORT PFNGLSCISSORARRAYVPROC __glewScissorArrayv; +GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDPROC __glewScissorIndexed; +GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDVPROC __glewScissorIndexedv; +GLEW_FUN_EXPORT PFNGLVIEWPORTARRAYVPROC __glewViewportArrayv; +GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFPROC __glewViewportIndexedf; +GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFVPROC __glewViewportIndexedfv; + +GLEW_FUN_EXPORT PFNGLWINDOWPOS2DARBPROC __glewWindowPos2dARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVARBPROC __glewWindowPos2dvARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2FARBPROC __glewWindowPos2fARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVARBPROC __glewWindowPos2fvARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2IARBPROC __glewWindowPos2iARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVARBPROC __glewWindowPos2ivARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2SARBPROC __glewWindowPos2sARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVARBPROC __glewWindowPos2svARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3DARBPROC __glewWindowPos3dARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVARBPROC __glewWindowPos3dvARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3FARBPROC __glewWindowPos3fARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVARBPROC __glewWindowPos3fvARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3IARBPROC __glewWindowPos3iARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVARBPROC __glewWindowPos3ivARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3SARBPROC __glewWindowPos3sARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVARBPROC __glewWindowPos3svARB; + +GLEW_FUN_EXPORT PFNGLMAXACTIVESHADERCORESARMPROC __glewMaxActiveShaderCoresARM; + +GLEW_FUN_EXPORT PFNGLDRAWBUFFERSATIPROC __glewDrawBuffersATI; + +GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYATIPROC __glewDrawElementArrayATI; +GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYATIPROC __glewDrawRangeElementArrayATI; +GLEW_FUN_EXPORT PFNGLELEMENTPOINTERATIPROC __glewElementPointerATI; + +GLEW_FUN_EXPORT PFNGLGETTEXBUMPPARAMETERFVATIPROC __glewGetTexBumpParameterfvATI; +GLEW_FUN_EXPORT PFNGLGETTEXBUMPPARAMETERIVATIPROC __glewGetTexBumpParameterivATI; +GLEW_FUN_EXPORT PFNGLTEXBUMPPARAMETERFVATIPROC __glewTexBumpParameterfvATI; +GLEW_FUN_EXPORT PFNGLTEXBUMPPARAMETERIVATIPROC __glewTexBumpParameterivATI; + +GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP1ATIPROC __glewAlphaFragmentOp1ATI; +GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP2ATIPROC __glewAlphaFragmentOp2ATI; +GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP3ATIPROC __glewAlphaFragmentOp3ATI; +GLEW_FUN_EXPORT PFNGLBEGINFRAGMENTSHADERATIPROC __glewBeginFragmentShaderATI; +GLEW_FUN_EXPORT PFNGLBINDFRAGMENTSHADERATIPROC __glewBindFragmentShaderATI; +GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP1ATIPROC __glewColorFragmentOp1ATI; +GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP2ATIPROC __glewColorFragmentOp2ATI; +GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP3ATIPROC __glewColorFragmentOp3ATI; +GLEW_FUN_EXPORT PFNGLDELETEFRAGMENTSHADERATIPROC __glewDeleteFragmentShaderATI; +GLEW_FUN_EXPORT PFNGLENDFRAGMENTSHADERATIPROC __glewEndFragmentShaderATI; +GLEW_FUN_EXPORT PFNGLGENFRAGMENTSHADERSATIPROC __glewGenFragmentShadersATI; +GLEW_FUN_EXPORT PFNGLPASSTEXCOORDATIPROC __glewPassTexCoordATI; +GLEW_FUN_EXPORT PFNGLSAMPLEMAPATIPROC __glewSampleMapATI; +GLEW_FUN_EXPORT PFNGLSETFRAGMENTSHADERCONSTANTATIPROC __glewSetFragmentShaderConstantATI; + +GLEW_FUN_EXPORT PFNGLMAPOBJECTBUFFERATIPROC __glewMapObjectBufferATI; +GLEW_FUN_EXPORT PFNGLUNMAPOBJECTBUFFERATIPROC __glewUnmapObjectBufferATI; + +GLEW_FUN_EXPORT PFNGLPNTRIANGLESFATIPROC __glewPNTrianglesfATI; +GLEW_FUN_EXPORT PFNGLPNTRIANGLESIATIPROC __glewPNTrianglesiATI; + +GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEATIPROC __glewStencilFuncSeparateATI; +GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEATIPROC __glewStencilOpSeparateATI; + +GLEW_FUN_EXPORT PFNGLARRAYOBJECTATIPROC __glewArrayObjectATI; +GLEW_FUN_EXPORT PFNGLFREEOBJECTBUFFERATIPROC __glewFreeObjectBufferATI; +GLEW_FUN_EXPORT PFNGLGETARRAYOBJECTFVATIPROC __glewGetArrayObjectfvATI; +GLEW_FUN_EXPORT PFNGLGETARRAYOBJECTIVATIPROC __glewGetArrayObjectivATI; +GLEW_FUN_EXPORT PFNGLGETOBJECTBUFFERFVATIPROC __glewGetObjectBufferfvATI; +GLEW_FUN_EXPORT PFNGLGETOBJECTBUFFERIVATIPROC __glewGetObjectBufferivATI; +GLEW_FUN_EXPORT PFNGLGETVARIANTARRAYOBJECTFVATIPROC __glewGetVariantArrayObjectfvATI; +GLEW_FUN_EXPORT PFNGLGETVARIANTARRAYOBJECTIVATIPROC __glewGetVariantArrayObjectivATI; +GLEW_FUN_EXPORT PFNGLISOBJECTBUFFERATIPROC __glewIsObjectBufferATI; +GLEW_FUN_EXPORT PFNGLNEWOBJECTBUFFERATIPROC __glewNewObjectBufferATI; +GLEW_FUN_EXPORT PFNGLUPDATEOBJECTBUFFERATIPROC __glewUpdateObjectBufferATI; +GLEW_FUN_EXPORT PFNGLVARIANTARRAYOBJECTATIPROC __glewVariantArrayObjectATI; + +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC __glewGetVertexAttribArrayObjectfvATI; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC __glewGetVertexAttribArrayObjectivATI; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBARRAYOBJECTATIPROC __glewVertexAttribArrayObjectATI; + +GLEW_FUN_EXPORT PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC __glewClientActiveVertexStreamATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3BATIPROC __glewNormalStream3bATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3BVATIPROC __glewNormalStream3bvATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3DATIPROC __glewNormalStream3dATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3DVATIPROC __glewNormalStream3dvATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3FATIPROC __glewNormalStream3fATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3FVATIPROC __glewNormalStream3fvATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3IATIPROC __glewNormalStream3iATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3IVATIPROC __glewNormalStream3ivATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3SATIPROC __glewNormalStream3sATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3SVATIPROC __glewNormalStream3svATI; +GLEW_FUN_EXPORT PFNGLVERTEXBLENDENVFATIPROC __glewVertexBlendEnvfATI; +GLEW_FUN_EXPORT PFNGLVERTEXBLENDENVIATIPROC __glewVertexBlendEnviATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1DATIPROC __glewVertexStream1dATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1DVATIPROC __glewVertexStream1dvATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1FATIPROC __glewVertexStream1fATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1FVATIPROC __glewVertexStream1fvATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1IATIPROC __glewVertexStream1iATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1IVATIPROC __glewVertexStream1ivATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1SATIPROC __glewVertexStream1sATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM1SVATIPROC __glewVertexStream1svATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2DATIPROC __glewVertexStream2dATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2DVATIPROC __glewVertexStream2dvATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2FATIPROC __glewVertexStream2fATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2FVATIPROC __glewVertexStream2fvATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2IATIPROC __glewVertexStream2iATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2IVATIPROC __glewVertexStream2ivATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2SATIPROC __glewVertexStream2sATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2SVATIPROC __glewVertexStream2svATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3DATIPROC __glewVertexStream3dATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3DVATIPROC __glewVertexStream3dvATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3FATIPROC __glewVertexStream3fATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3FVATIPROC __glewVertexStream3fvATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3IATIPROC __glewVertexStream3iATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3IVATIPROC __glewVertexStream3ivATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3SATIPROC __glewVertexStream3sATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3SVATIPROC __glewVertexStream3svATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4DATIPROC __glewVertexStream4dATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4DVATIPROC __glewVertexStream4dvATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4FATIPROC __glewVertexStream4fATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4FVATIPROC __glewVertexStream4fvATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IATIPROC __glewVertexStream4iATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IVATIPROC __glewVertexStream4ivATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SATIPROC __glewVertexStream4sATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SVATIPROC __glewVertexStream4svATI; + +GLEW_FUN_EXPORT PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC __glewEGLImageTargetTexStorageEXT; +GLEW_FUN_EXPORT PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC __glewEGLImageTargetTextureStorageEXT; + +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC __glewDrawArraysInstancedBaseInstanceEXT; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC __glewDrawElementsInstancedBaseInstanceEXT; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC __glewDrawElementsInstancedBaseVertexBaseInstanceEXT; + +GLEW_FUN_EXPORT PFNGLGETUNIFORMBUFFERSIZEEXTPROC __glewGetUniformBufferSizeEXT; +GLEW_FUN_EXPORT PFNGLGETUNIFORMOFFSETEXTPROC __glewGetUniformOffsetEXT; +GLEW_FUN_EXPORT PFNGLUNIFORMBUFFEREXTPROC __glewUniformBufferEXT; + +GLEW_FUN_EXPORT PFNGLBLENDCOLOREXTPROC __glewBlendColorEXT; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEEXTPROC __glewBlendEquationSeparateEXT; + +GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC __glewBindFragDataLocationIndexedEXT; +GLEW_FUN_EXPORT PFNGLGETFRAGDATAINDEXEXTPROC __glewGetFragDataIndexEXT; +GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC __glewGetProgramResourceLocationIndexEXT; + +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEEXTPROC __glewBlendFuncSeparateEXT; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONEXTPROC __glewBlendEquationEXT; + +GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEEXTPROC __glewBufferStorageEXT; + +GLEW_FUN_EXPORT PFNGLCLEARTEXIMAGEEXTPROC __glewClearTexImageEXT; +GLEW_FUN_EXPORT PFNGLCLEARTEXSUBIMAGEEXTPROC __glewClearTexSubImageEXT; + +GLEW_FUN_EXPORT PFNGLCLIPCONTROLEXTPROC __glewClipControlEXT; + +GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEEXTPROC __glewColorSubTableEXT; +GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEEXTPROC __glewCopyColorSubTableEXT; + +GLEW_FUN_EXPORT PFNGLLOCKARRAYSEXTPROC __glewLockArraysEXT; +GLEW_FUN_EXPORT PFNGLUNLOCKARRAYSEXTPROC __glewUnlockArraysEXT; + +GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER1DEXTPROC __glewConvolutionFilter1DEXT; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER2DEXTPROC __glewConvolutionFilter2DEXT; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFEXTPROC __glewConvolutionParameterfEXT; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFVEXTPROC __glewConvolutionParameterfvEXT; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIEXTPROC __glewConvolutionParameteriEXT; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIVEXTPROC __glewConvolutionParameterivEXT; +GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC __glewCopyConvolutionFilter1DEXT; +GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC __glewCopyConvolutionFilter2DEXT; +GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONFILTEREXTPROC __glewGetConvolutionFilterEXT; +GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC __glewGetConvolutionParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC __glewGetConvolutionParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETSEPARABLEFILTEREXTPROC __glewGetSeparableFilterEXT; +GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DEXTPROC __glewSeparableFilter2DEXT; + +GLEW_FUN_EXPORT PFNGLBINORMALPOINTEREXTPROC __glewBinormalPointerEXT; +GLEW_FUN_EXPORT PFNGLTANGENTPOINTEREXTPROC __glewTangentPointerEXT; + +GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATAEXTPROC __glewCopyImageSubDataEXT; + +GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE1DEXTPROC __glewCopyTexImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE2DEXTPROC __glewCopyTexImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE1DEXTPROC __glewCopyTexSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE2DEXTPROC __glewCopyTexSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DEXTPROC __glewCopyTexSubImage3DEXT; + +GLEW_FUN_EXPORT PFNGLCULLPARAMETERDVEXTPROC __glewCullParameterdvEXT; +GLEW_FUN_EXPORT PFNGLCULLPARAMETERFVEXTPROC __glewCullParameterfvEXT; + +GLEW_FUN_EXPORT PFNGLGETOBJECTLABELEXTPROC __glewGetObjectLabelEXT; +GLEW_FUN_EXPORT PFNGLLABELOBJECTEXTPROC __glewLabelObjectEXT; + +GLEW_FUN_EXPORT PFNGLINSERTEVENTMARKEREXTPROC __glewInsertEventMarkerEXT; +GLEW_FUN_EXPORT PFNGLPOPGROUPMARKEREXTPROC __glewPopGroupMarkerEXT; +GLEW_FUN_EXPORT PFNGLPUSHGROUPMARKEREXTPROC __glewPushGroupMarkerEXT; + +GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSEXTPROC __glewDepthBoundsEXT; + +GLEW_FUN_EXPORT PFNGLBINDMULTITEXTUREEXTPROC __glewBindMultiTextureEXT; +GLEW_FUN_EXPORT PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC __glewCheckNamedFramebufferStatusEXT; +GLEW_FUN_EXPORT PFNGLCLIENTATTRIBDEFAULTEXTPROC __glewClientAttribDefaultEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC __glewCompressedMultiTexImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC __glewCompressedMultiTexImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC __glewCompressedMultiTexImage3DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC __glewCompressedMultiTexSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC __glewCompressedMultiTexSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC __glewCompressedMultiTexSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC __glewCompressedTextureImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC __glewCompressedTextureImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC __glewCompressedTextureImage3DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC __glewCompressedTextureSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC __glewCompressedTextureSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC __glewCompressedTextureSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE1DEXTPROC __glewCopyMultiTexImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE2DEXTPROC __glewCopyMultiTexImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC __glewCopyMultiTexSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC __glewCopyMultiTexSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC __glewCopyMultiTexSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE1DEXTPROC __glewCopyTextureImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE2DEXTPROC __glewCopyTextureImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC __glewCopyTextureSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC __glewCopyTextureSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC __glewCopyTextureSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC __glewDisableClientStateIndexedEXT; +GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEIEXTPROC __glewDisableClientStateiEXT; +GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC __glewDisableVertexArrayAttribEXT; +GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYEXTPROC __glewDisableVertexArrayEXT; +GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEINDEXEDEXTPROC __glewEnableClientStateIndexedEXT; +GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEIEXTPROC __glewEnableClientStateiEXT; +GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYATTRIBEXTPROC __glewEnableVertexArrayAttribEXT; +GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYEXTPROC __glewEnableVertexArrayEXT; +GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC __glewFlushMappedNamedBufferRangeEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC __glewFramebufferDrawBufferEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC __glewFramebufferDrawBuffersEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERREADBUFFEREXTPROC __glewFramebufferReadBufferEXT; +GLEW_FUN_EXPORT PFNGLGENERATEMULTITEXMIPMAPEXTPROC __glewGenerateMultiTexMipmapEXT; +GLEW_FUN_EXPORT PFNGLGENERATETEXTUREMIPMAPEXTPROC __glewGenerateTextureMipmapEXT; +GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC __glewGetCompressedMultiTexImageEXT; +GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC __glewGetCompressedTextureImageEXT; +GLEW_FUN_EXPORT PFNGLGETDOUBLEINDEXEDVEXTPROC __glewGetDoubleIndexedvEXT; +GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VEXTPROC __glewGetDoublei_vEXT; +GLEW_FUN_EXPORT PFNGLGETFLOATINDEXEDVEXTPROC __glewGetFloatIndexedvEXT; +GLEW_FUN_EXPORT PFNGLGETFLOATI_VEXTPROC __glewGetFloati_vEXT; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC __glewGetFramebufferParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXENVFVEXTPROC __glewGetMultiTexEnvfvEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXENVIVEXTPROC __glewGetMultiTexEnvivEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXGENDVEXTPROC __glewGetMultiTexGendvEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXGENFVEXTPROC __glewGetMultiTexGenfvEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXGENIVEXTPROC __glewGetMultiTexGenivEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXIMAGEEXTPROC __glewGetMultiTexImageEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC __glewGetMultiTexLevelParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC __glewGetMultiTexLevelParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIIVEXTPROC __glewGetMultiTexParameterIivEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIUIVEXTPROC __glewGetMultiTexParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERFVEXTPROC __glewGetMultiTexParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIVEXTPROC __glewGetMultiTexParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC __glewGetNamedBufferParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPOINTERVEXTPROC __glewGetNamedBufferPointervEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERSUBDATAEXTPROC __glewGetNamedBufferSubDataEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetNamedFramebufferAttachmentParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC __glewGetNamedProgramLocalParameterIivEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC __glewGetNamedProgramLocalParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC __glewGetNamedProgramLocalParameterdvEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC __glewGetNamedProgramLocalParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMSTRINGEXTPROC __glewGetNamedProgramStringEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMIVEXTPROC __glewGetNamedProgramivEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC __glewGetNamedRenderbufferParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETPOINTERINDEXEDVEXTPROC __glewGetPointerIndexedvEXT; +GLEW_FUN_EXPORT PFNGLGETPOINTERI_VEXTPROC __glewGetPointeri_vEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTUREIMAGEEXTPROC __glewGetTextureImageEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC __glewGetTextureLevelParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC __glewGetTextureLevelParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIIVEXTPROC __glewGetTextureParameterIivEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIUIVEXTPROC __glewGetTextureParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERFVEXTPROC __glewGetTextureParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIVEXTPROC __glewGetTextureParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC __glewGetVertexArrayIntegeri_vEXT; +GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERVEXTPROC __glewGetVertexArrayIntegervEXT; +GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC __glewGetVertexArrayPointeri_vEXT; +GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERVEXTPROC __glewGetVertexArrayPointervEXT; +GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFEREXTPROC __glewMapNamedBufferEXT; +GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFERRANGEEXTPROC __glewMapNamedBufferRangeEXT; +GLEW_FUN_EXPORT PFNGLMATRIXFRUSTUMEXTPROC __glewMatrixFrustumEXT; +GLEW_FUN_EXPORT PFNGLMATRIXLOADIDENTITYEXTPROC __glewMatrixLoadIdentityEXT; +GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEDEXTPROC __glewMatrixLoadTransposedEXT; +GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEFEXTPROC __glewMatrixLoadTransposefEXT; +GLEW_FUN_EXPORT PFNGLMATRIXLOADDEXTPROC __glewMatrixLoaddEXT; +GLEW_FUN_EXPORT PFNGLMATRIXLOADFEXTPROC __glewMatrixLoadfEXT; +GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEDEXTPROC __glewMatrixMultTransposedEXT; +GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEFEXTPROC __glewMatrixMultTransposefEXT; +GLEW_FUN_EXPORT PFNGLMATRIXMULTDEXTPROC __glewMatrixMultdEXT; +GLEW_FUN_EXPORT PFNGLMATRIXMULTFEXTPROC __glewMatrixMultfEXT; +GLEW_FUN_EXPORT PFNGLMATRIXORTHOEXTPROC __glewMatrixOrthoEXT; +GLEW_FUN_EXPORT PFNGLMATRIXPOPEXTPROC __glewMatrixPopEXT; +GLEW_FUN_EXPORT PFNGLMATRIXPUSHEXTPROC __glewMatrixPushEXT; +GLEW_FUN_EXPORT PFNGLMATRIXROTATEDEXTPROC __glewMatrixRotatedEXT; +GLEW_FUN_EXPORT PFNGLMATRIXROTATEFEXTPROC __glewMatrixRotatefEXT; +GLEW_FUN_EXPORT PFNGLMATRIXSCALEDEXTPROC __glewMatrixScaledEXT; +GLEW_FUN_EXPORT PFNGLMATRIXSCALEFEXTPROC __glewMatrixScalefEXT; +GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEDEXTPROC __glewMatrixTranslatedEXT; +GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEFEXTPROC __glewMatrixTranslatefEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXBUFFEREXTPROC __glewMultiTexBufferEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDPOINTEREXTPROC __glewMultiTexCoordPointerEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXENVFEXTPROC __glewMultiTexEnvfEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXENVFVEXTPROC __glewMultiTexEnvfvEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXENVIEXTPROC __glewMultiTexEnviEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXENVIVEXTPROC __glewMultiTexEnvivEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXGENDEXTPROC __glewMultiTexGendEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXGENDVEXTPROC __glewMultiTexGendvEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXGENFEXTPROC __glewMultiTexGenfEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXGENFVEXTPROC __glewMultiTexGenfvEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXGENIEXTPROC __glewMultiTexGeniEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXGENIVEXTPROC __glewMultiTexGenivEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE1DEXTPROC __glewMultiTexImage1DEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE2DEXTPROC __glewMultiTexImage2DEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE3DEXTPROC __glewMultiTexImage3DEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIIVEXTPROC __glewMultiTexParameterIivEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIUIVEXTPROC __glewMultiTexParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFEXTPROC __glewMultiTexParameterfEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFVEXTPROC __glewMultiTexParameterfvEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIEXTPROC __glewMultiTexParameteriEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIVEXTPROC __glewMultiTexParameterivEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXRENDERBUFFEREXTPROC __glewMultiTexRenderbufferEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE1DEXTPROC __glewMultiTexSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE2DEXTPROC __glewMultiTexSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE3DEXTPROC __glewMultiTexSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERDATAEXTPROC __glewNamedBufferDataEXT; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEEXTPROC __glewNamedBufferStorageEXT; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSUBDATAEXTPROC __glewNamedBufferSubDataEXT; +GLEW_FUN_EXPORT PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC __glewNamedCopyBufferSubDataEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC __glewNamedFramebufferRenderbufferEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC __glewNamedFramebufferTexture1DEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC __glewNamedFramebufferTexture2DEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC __glewNamedFramebufferTexture3DEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC __glewNamedFramebufferTextureEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC __glewNamedFramebufferTextureFaceEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC __glewNamedFramebufferTextureLayerEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC __glewNamedProgramLocalParameter4dEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC __glewNamedProgramLocalParameter4dvEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC __glewNamedProgramLocalParameter4fEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC __glewNamedProgramLocalParameter4fvEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC __glewNamedProgramLocalParameterI4iEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC __glewNamedProgramLocalParameterI4ivEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC __glewNamedProgramLocalParameterI4uiEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC __glewNamedProgramLocalParameterI4uivEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC __glewNamedProgramLocalParameters4fvEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC __glewNamedProgramLocalParametersI4ivEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC __glewNamedProgramLocalParametersI4uivEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMSTRINGEXTPROC __glewNamedProgramStringEXT; +GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC __glewNamedRenderbufferStorageEXT; +GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC __glewNamedRenderbufferStorageMultisampleCoverageEXT; +GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewNamedRenderbufferStorageMultisampleEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FEXTPROC __glewProgramUniform1fEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVEXTPROC __glewProgramUniform1fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IEXTPROC __glewProgramUniform1iEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVEXTPROC __glewProgramUniform1ivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIEXTPROC __glewProgramUniform1uiEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVEXTPROC __glewProgramUniform1uivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FEXTPROC __glewProgramUniform2fEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVEXTPROC __glewProgramUniform2fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IEXTPROC __glewProgramUniform2iEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVEXTPROC __glewProgramUniform2ivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIEXTPROC __glewProgramUniform2uiEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVEXTPROC __glewProgramUniform2uivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FEXTPROC __glewProgramUniform3fEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVEXTPROC __glewProgramUniform3fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IEXTPROC __glewProgramUniform3iEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVEXTPROC __glewProgramUniform3ivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIEXTPROC __glewProgramUniform3uiEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVEXTPROC __glewProgramUniform3uivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FEXTPROC __glewProgramUniform4fEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVEXTPROC __glewProgramUniform4fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IEXTPROC __glewProgramUniform4iEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVEXTPROC __glewProgramUniform4ivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIEXTPROC __glewProgramUniform4uiEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVEXTPROC __glewProgramUniform4uivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC __glewProgramUniformMatrix2fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC __glewProgramUniformMatrix2x3fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC __glewProgramUniformMatrix2x4fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC __glewProgramUniformMatrix3fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC __glewProgramUniformMatrix3x2fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC __glewProgramUniformMatrix3x4fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC __glewProgramUniformMatrix4fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC __glewProgramUniformMatrix4x2fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC __glewProgramUniformMatrix4x3fvEXT; +GLEW_FUN_EXPORT PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC __glewPushClientAttribDefaultEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREBUFFEREXTPROC __glewTextureBufferEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE1DEXTPROC __glewTextureImage1DEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DEXTPROC __glewTextureImage2DEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DEXTPROC __glewTextureImage3DEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPAGECOMMITMENTEXTPROC __glewTexturePageCommitmentEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIIVEXTPROC __glewTextureParameterIivEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIUIVEXTPROC __glewTextureParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFEXTPROC __glewTextureParameterfEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFVEXTPROC __glewTextureParameterfvEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIEXTPROC __glewTextureParameteriEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIVEXTPROC __glewTextureParameterivEXT; +GLEW_FUN_EXPORT PFNGLTEXTURERENDERBUFFEREXTPROC __glewTextureRenderbufferEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE1DEXTPROC __glewTextureSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE2DEXTPROC __glewTextureSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE3DEXTPROC __glewTextureSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLUNMAPNAMEDBUFFEREXTPROC __glewUnmapNamedBufferEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYCOLOROFFSETEXTPROC __glewVertexArrayColorOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC __glewVertexArrayEdgeFlagOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC __glewVertexArrayFogCoordOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYINDEXOFFSETEXTPROC __glewVertexArrayIndexOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC __glewVertexArrayMultiTexCoordOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYNORMALOFFSETEXTPROC __glewVertexArrayNormalOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC __glewVertexArraySecondaryColorOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC __glewVertexArrayTexCoordOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC __glewVertexArrayVertexAttribDivisorEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC __glewVertexArrayVertexAttribIOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC __glewVertexArrayVertexAttribOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC __glewVertexArrayVertexOffsetEXT; + +GLEW_FUN_EXPORT PFNGLDISCARDFRAMEBUFFEREXTPROC __glewDiscardFramebufferEXT; + +GLEW_FUN_EXPORT PFNGLBEGINQUERYEXTPROC __glewBeginQueryEXT; +GLEW_FUN_EXPORT PFNGLDELETEQUERIESEXTPROC __glewDeleteQueriesEXT; +GLEW_FUN_EXPORT PFNGLENDQUERYEXTPROC __glewEndQueryEXT; +GLEW_FUN_EXPORT PFNGLGENQUERIESEXTPROC __glewGenQueriesEXT; +GLEW_FUN_EXPORT PFNGLGETINTEGER64VEXTPROC __glewGetInteger64vEXT; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVEXTPROC __glewGetQueryObjectivEXT; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVEXTPROC __glewGetQueryObjectuivEXT; +GLEW_FUN_EXPORT PFNGLGETQUERYIVEXTPROC __glewGetQueryivEXT; +GLEW_FUN_EXPORT PFNGLISQUERYEXTPROC __glewIsQueryEXT; +GLEW_FUN_EXPORT PFNGLQUERYCOUNTEREXTPROC __glewQueryCounterEXT; + +GLEW_FUN_EXPORT PFNGLDRAWBUFFERSEXTPROC __glewDrawBuffersEXT; + +GLEW_FUN_EXPORT PFNGLCOLORMASKINDEXEDEXTPROC __glewColorMaskIndexedEXT; +GLEW_FUN_EXPORT PFNGLDISABLEINDEXEDEXTPROC __glewDisableIndexedEXT; +GLEW_FUN_EXPORT PFNGLENABLEINDEXEDEXTPROC __glewEnableIndexedEXT; +GLEW_FUN_EXPORT PFNGLGETBOOLEANINDEXEDVEXTPROC __glewGetBooleanIndexedvEXT; +GLEW_FUN_EXPORT PFNGLGETINTEGERINDEXEDVEXTPROC __glewGetIntegerIndexedvEXT; +GLEW_FUN_EXPORT PFNGLISENABLEDINDEXEDEXTPROC __glewIsEnabledIndexedEXT; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIEXTPROC __glewBlendEquationSeparateiEXT; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIEXTPROC __glewBlendEquationiEXT; +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIEXTPROC __glewBlendFuncSeparateiEXT; +GLEW_FUN_EXPORT PFNGLBLENDFUNCIEXTPROC __glewBlendFunciEXT; +GLEW_FUN_EXPORT PFNGLCOLORMASKIEXTPROC __glewColorMaskiEXT; +GLEW_FUN_EXPORT PFNGLDISABLEIEXTPROC __glewDisableiEXT; +GLEW_FUN_EXPORT PFNGLENABLEIEXTPROC __glewEnableiEXT; +GLEW_FUN_EXPORT PFNGLISENABLEDIEXTPROC __glewIsEnablediEXT; + +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSBASEVERTEXEXTPROC __glewDrawElementsBaseVertexEXT; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC __glewDrawElementsInstancedBaseVertexEXT; +GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC __glewDrawRangeElementsBaseVertexEXT; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC __glewMultiDrawElementsBaseVertexEXT; + +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDEXTPROC __glewDrawArraysInstancedEXT; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDEXTPROC __glewDrawElementsInstancedEXT; + +GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSEXTPROC __glewDrawRangeElementsEXT; + +GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKEXTPROC __glewDrawTransformFeedbackEXT; +GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC __glewDrawTransformFeedbackInstancedEXT; + +GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEEXTERNALEXTPROC __glewBufferStorageExternalEXT; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC __glewNamedBufferStorageExternalEXT; + +GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTEREXTPROC __glewFogCoordPointerEXT; +GLEW_FUN_EXPORT PFNGLFOGCOORDDEXTPROC __glewFogCoorddEXT; +GLEW_FUN_EXPORT PFNGLFOGCOORDDVEXTPROC __glewFogCoorddvEXT; +GLEW_FUN_EXPORT PFNGLFOGCOORDFEXTPROC __glewFogCoordfEXT; +GLEW_FUN_EXPORT PFNGLFOGCOORDFVEXTPROC __glewFogCoordfvEXT; + +GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALEXTPROC __glewFragmentColorMaterialEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFEXTPROC __glewFragmentLightModelfEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVEXTPROC __glewFragmentLightModelfvEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIEXTPROC __glewFragmentLightModeliEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVEXTPROC __glewFragmentLightModelivEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFEXTPROC __glewFragmentLightfEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVEXTPROC __glewFragmentLightfvEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIEXTPROC __glewFragmentLightiEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVEXTPROC __glewFragmentLightivEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFEXTPROC __glewFragmentMaterialfEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVEXTPROC __glewFragmentMaterialfvEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIEXTPROC __glewFragmentMaterialiEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVEXTPROC __glewFragmentMaterialivEXT; +GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVEXTPROC __glewGetFragmentLightfvEXT; +GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVEXTPROC __glewGetFragmentLightivEXT; +GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVEXTPROC __glewGetFragmentMaterialfvEXT; +GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVEXTPROC __glewGetFragmentMaterialivEXT; +GLEW_FUN_EXPORT PFNGLLIGHTENVIEXTPROC __glewLightEnviEXT; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERSHADINGRATEEXTPROC __glewFramebufferShadingRateEXT; +GLEW_FUN_EXPORT PFNGLGETFRAGMENTSHADINGRATESEXTPROC __glewGetFragmentShadingRatesEXT; +GLEW_FUN_EXPORT PFNGLSHADINGRATECOMBINEROPSEXTPROC __glewShadingRateCombinerOpsEXT; +GLEW_FUN_EXPORT PFNGLSHADINGRATEEXTPROC __glewShadingRateEXT; + +GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFEREXTPROC __glewBlitFramebufferEXT; + +GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERLAYEREXTPROC __glewBlitFramebufferLayerEXT; +GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERLAYERSEXTPROC __glewBlitFramebufferLayersEXT; + +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewRenderbufferStorageMultisampleEXT; + +GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFEREXTPROC __glewBindFramebufferEXT; +GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFEREXTPROC __glewBindRenderbufferEXT; +GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC __glewCheckFramebufferStatusEXT; +GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSEXTPROC __glewDeleteFramebuffersEXT; +GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSEXTPROC __glewDeleteRenderbuffersEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC __glewFramebufferRenderbufferEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE1DEXTPROC __glewFramebufferTexture1DEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DEXTPROC __glewFramebufferTexture2DEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DEXTPROC __glewFramebufferTexture3DEXT; +GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSEXTPROC __glewGenFramebuffersEXT; +GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSEXTPROC __glewGenRenderbuffersEXT; +GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPEXTPROC __glewGenerateMipmapEXT; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetFramebufferAttachmentParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC __glewGetRenderbufferParameterivEXT; +GLEW_FUN_EXPORT PFNGLISFRAMEBUFFEREXTPROC __glewIsFramebufferEXT; +GLEW_FUN_EXPORT PFNGLISRENDERBUFFEREXTPROC __glewIsRenderbufferEXT; +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEEXTPROC __glewRenderbufferStorageEXT; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREEXTPROC __glewFramebufferTextureEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC __glewFramebufferTextureFaceEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIEXTPROC __glewProgramParameteriEXT; + +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERS4FVEXTPROC __glewProgramEnvParameters4fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC __glewProgramLocalParameters4fvEXT; + +GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONEXTPROC __glewBindFragDataLocationEXT; +GLEW_FUN_EXPORT PFNGLGETFRAGDATALOCATIONEXTPROC __glewGetFragDataLocationEXT; +GLEW_FUN_EXPORT PFNGLGETUNIFORMUIVEXTPROC __glewGetUniformuivEXT; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIIVEXTPROC __glewGetVertexAttribIivEXT; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIUIVEXTPROC __glewGetVertexAttribIuivEXT; +GLEW_FUN_EXPORT PFNGLUNIFORM1UIEXTPROC __glewUniform1uiEXT; +GLEW_FUN_EXPORT PFNGLUNIFORM1UIVEXTPROC __glewUniform1uivEXT; +GLEW_FUN_EXPORT PFNGLUNIFORM2UIEXTPROC __glewUniform2uiEXT; +GLEW_FUN_EXPORT PFNGLUNIFORM2UIVEXTPROC __glewUniform2uivEXT; +GLEW_FUN_EXPORT PFNGLUNIFORM3UIEXTPROC __glewUniform3uiEXT; +GLEW_FUN_EXPORT PFNGLUNIFORM3UIVEXTPROC __glewUniform3uivEXT; +GLEW_FUN_EXPORT PFNGLUNIFORM4UIEXTPROC __glewUniform4uiEXT; +GLEW_FUN_EXPORT PFNGLUNIFORM4UIVEXTPROC __glewUniform4uivEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IEXTPROC __glewVertexAttribI1iEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IVEXTPROC __glewVertexAttribI1ivEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIEXTPROC __glewVertexAttribI1uiEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIVEXTPROC __glewVertexAttribI1uivEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IEXTPROC __glewVertexAttribI2iEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IVEXTPROC __glewVertexAttribI2ivEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIEXTPROC __glewVertexAttribI2uiEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIVEXTPROC __glewVertexAttribI2uivEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IEXTPROC __glewVertexAttribI3iEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IVEXTPROC __glewVertexAttribI3ivEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIEXTPROC __glewVertexAttribI3uiEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIVEXTPROC __glewVertexAttribI3uivEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4BVEXTPROC __glewVertexAttribI4bvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IEXTPROC __glewVertexAttribI4iEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IVEXTPROC __glewVertexAttribI4ivEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4SVEXTPROC __glewVertexAttribI4svEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UBVEXTPROC __glewVertexAttribI4ubvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIEXTPROC __glewVertexAttribI4uiEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIVEXTPROC __glewVertexAttribI4uivEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4USVEXTPROC __glewVertexAttribI4usvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIPOINTEREXTPROC __glewVertexAttribIPointerEXT; + +GLEW_FUN_EXPORT PFNGLGETHISTOGRAMEXTPROC __glewGetHistogramEXT; +GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERFVEXTPROC __glewGetHistogramParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERIVEXTPROC __glewGetHistogramParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETMINMAXEXTPROC __glewGetMinmaxEXT; +GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERFVEXTPROC __glewGetMinmaxParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERIVEXTPROC __glewGetMinmaxParameterivEXT; +GLEW_FUN_EXPORT PFNGLHISTOGRAMEXTPROC __glewHistogramEXT; +GLEW_FUN_EXPORT PFNGLMINMAXEXTPROC __glewMinmaxEXT; +GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMEXTPROC __glewResetHistogramEXT; +GLEW_FUN_EXPORT PFNGLRESETMINMAXEXTPROC __glewResetMinmaxEXT; + +GLEW_FUN_EXPORT PFNGLINDEXFUNCEXTPROC __glewIndexFuncEXT; + +GLEW_FUN_EXPORT PFNGLINDEXMATERIALEXTPROC __glewIndexMaterialEXT; + +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISOREXTPROC __glewVertexAttribDivisorEXT; + +GLEW_FUN_EXPORT PFNGLAPPLYTEXTUREEXTPROC __glewApplyTextureEXT; +GLEW_FUN_EXPORT PFNGLTEXTURELIGHTEXTPROC __glewTextureLightEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREMATERIALEXTPROC __glewTextureMaterialEXT; + +GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC __glewFlushMappedBufferRangeEXT; +GLEW_FUN_EXPORT PFNGLMAPBUFFERRANGEEXTPROC __glewMapBufferRangeEXT; + +GLEW_FUN_EXPORT PFNGLBUFFERSTORAGEMEMEXTPROC __glewBufferStorageMemEXT; +GLEW_FUN_EXPORT PFNGLCREATEMEMORYOBJECTSEXTPROC __glewCreateMemoryObjectsEXT; +GLEW_FUN_EXPORT PFNGLDELETEMEMORYOBJECTSEXTPROC __glewDeleteMemoryObjectsEXT; +GLEW_FUN_EXPORT PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC __glewGetMemoryObjectParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETUNSIGNEDBYTEI_VEXTPROC __glewGetUnsignedBytei_vEXT; +GLEW_FUN_EXPORT PFNGLGETUNSIGNEDBYTEVEXTPROC __glewGetUnsignedBytevEXT; +GLEW_FUN_EXPORT PFNGLISMEMORYOBJECTEXTPROC __glewIsMemoryObjectEXT; +GLEW_FUN_EXPORT PFNGLMEMORYOBJECTPARAMETERIVEXTPROC __glewMemoryObjectParameterivEXT; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC __glewNamedBufferStorageMemEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM1DEXTPROC __glewTexStorageMem1DEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM2DEXTPROC __glewTexStorageMem2DEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC __glewTexStorageMem2DMultisampleEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM3DEXTPROC __glewTexStorageMem3DEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC __glewTexStorageMem3DMultisampleEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM1DEXTPROC __glewTextureStorageMem1DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM2DEXTPROC __glewTextureStorageMem2DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC __glewTextureStorageMem2DMultisampleEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM3DEXTPROC __glewTextureStorageMem3DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC __glewTextureStorageMem3DMultisampleEXT; + +GLEW_FUN_EXPORT PFNGLIMPORTMEMORYFDEXTPROC __glewImportMemoryFdEXT; + +GLEW_FUN_EXPORT PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC __glewImportMemoryWin32HandleEXT; +GLEW_FUN_EXPORT PFNGLIMPORTMEMORYWIN32NAMEEXTPROC __glewImportMemoryWin32NameEXT; + +GLEW_FUN_EXPORT PFNGLDRAWMESHTASKSEXTPROC __glewDrawMeshTasksEXT; +GLEW_FUN_EXPORT PFNGLDRAWMESHTASKSINDIRECTEXTPROC __glewDrawMeshTasksIndirectEXT; +GLEW_FUN_EXPORT PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTEXTPROC __glewMultiDrawMeshTasksIndirectCountEXT; +GLEW_FUN_EXPORT PFNGLMULTIDRAWMESHTASKSINDIRECTEXTPROC __glewMultiDrawMeshTasksIndirectEXT; + +GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSEXTPROC __glewMultiDrawArraysEXT; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSEXTPROC __glewMultiDrawElementsEXT; + +GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC __glewMultiDrawArraysIndirectEXT; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC __glewMultiDrawElementsIndirectEXT; + +GLEW_FUN_EXPORT PFNGLSAMPLEMASKEXTPROC __glewSampleMaskEXT; +GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNEXTPROC __glewSamplePatternEXT; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC __glewFramebufferTexture2DMultisampleEXT; + +GLEW_FUN_EXPORT PFNGLDRAWBUFFERSINDEXEDEXTPROC __glewDrawBuffersIndexedEXT; +GLEW_FUN_EXPORT PFNGLGETINTEGERI_VEXTPROC __glewGetIntegeri_vEXT; +GLEW_FUN_EXPORT PFNGLREADBUFFERINDEXEDEXTPROC __glewReadBufferIndexedEXT; + +GLEW_FUN_EXPORT PFNGLCOLORTABLEEXTPROC __glewColorTableEXT; +GLEW_FUN_EXPORT PFNGLGETCOLORTABLEEXTPROC __glewGetColorTableEXT; +GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVEXTPROC __glewGetColorTableParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVEXTPROC __glewGetColorTableParameterivEXT; + +GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC __glewGetPixelTransformParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC __glewGetPixelTransformParameterivEXT; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFEXTPROC __glewPixelTransformParameterfEXT; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC __glewPixelTransformParameterfvEXT; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIEXTPROC __glewPixelTransformParameteriEXT; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC __glewPixelTransformParameterivEXT; + +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFEXTPROC __glewPointParameterfEXT; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVEXTPROC __glewPointParameterfvEXT; + +GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETEXTPROC __glewPolygonOffsetEXT; + +GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETCLAMPEXTPROC __glewPolygonOffsetClampEXT; + +GLEW_FUN_EXPORT PFNGLPRIMITIVEBOUNDINGBOXEXTPROC __glewPrimitiveBoundingBoxEXT; + +GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXEXTPROC __glewProvokingVertexEXT; + +GLEW_FUN_EXPORT PFNGLCOVERAGEMODULATIONNVPROC __glewCoverageModulationNV; +GLEW_FUN_EXPORT PFNGLCOVERAGEMODULATIONTABLENVPROC __glewCoverageModulationTableNV; +GLEW_FUN_EXPORT PFNGLGETCOVERAGEMODULATIONTABLENVPROC __glewGetCoverageModulationTableNV; +GLEW_FUN_EXPORT PFNGLRASTERSAMPLESEXTPROC __glewRasterSamplesEXT; + +GLEW_FUN_EXPORT PFNGLGETGRAPHICSRESETSTATUSEXTPROC __glewGetGraphicsResetStatusEXT; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVEXTPROC __glewGetnUniformfvEXT; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVEXTPROC __glewGetnUniformivEXT; +GLEW_FUN_EXPORT PFNGLREADNPIXELSEXTPROC __glewReadnPixelsEXT; + +GLEW_FUN_EXPORT PFNGLBEGINSCENEEXTPROC __glewBeginSceneEXT; +GLEW_FUN_EXPORT PFNGLENDSCENEEXTPROC __glewEndSceneEXT; + +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BEXTPROC __glewSecondaryColor3bEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BVEXTPROC __glewSecondaryColor3bvEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DEXTPROC __glewSecondaryColor3dEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DVEXTPROC __glewSecondaryColor3dvEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FEXTPROC __glewSecondaryColor3fEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FVEXTPROC __glewSecondaryColor3fvEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IEXTPROC __glewSecondaryColor3iEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IVEXTPROC __glewSecondaryColor3ivEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SEXTPROC __glewSecondaryColor3sEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SVEXTPROC __glewSecondaryColor3svEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBEXTPROC __glewSecondaryColor3ubEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBVEXTPROC __glewSecondaryColor3ubvEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIEXTPROC __glewSecondaryColor3uiEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIVEXTPROC __glewSecondaryColor3uivEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USEXTPROC __glewSecondaryColor3usEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVEXTPROC __glewSecondaryColor3usvEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTEREXTPROC __glewSecondaryColorPointerEXT; + +GLEW_FUN_EXPORT PFNGLDELETESEMAPHORESEXTPROC __glewDeleteSemaphoresEXT; +GLEW_FUN_EXPORT PFNGLGENSEMAPHORESEXTPROC __glewGenSemaphoresEXT; +GLEW_FUN_EXPORT PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC __glewGetSemaphoreParameterui64vEXT; +GLEW_FUN_EXPORT PFNGLISSEMAPHOREEXTPROC __glewIsSemaphoreEXT; +GLEW_FUN_EXPORT PFNGLSEMAPHOREPARAMETERUI64VEXTPROC __glewSemaphoreParameterui64vEXT; +GLEW_FUN_EXPORT PFNGLSIGNALSEMAPHOREEXTPROC __glewSignalSemaphoreEXT; +GLEW_FUN_EXPORT PFNGLWAITSEMAPHOREEXTPROC __glewWaitSemaphoreEXT; + +GLEW_FUN_EXPORT PFNGLIMPORTSEMAPHOREFDEXTPROC __glewImportSemaphoreFdEXT; + +GLEW_FUN_EXPORT PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC __glewImportSemaphoreWin32HandleEXT; +GLEW_FUN_EXPORT PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC __glewImportSemaphoreWin32NameEXT; + +GLEW_FUN_EXPORT PFNGLACTIVEPROGRAMEXTPROC __glewActiveProgramEXT; +GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMEXTPROC __glewCreateShaderProgramEXT; +GLEW_FUN_EXPORT PFNGLUSESHADERPROGRAMEXTPROC __glewUseShaderProgramEXT; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC __glewFramebufferFetchBarrierEXT; + +GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREEXTPROC __glewBindImageTextureEXT; +GLEW_FUN_EXPORT PFNGLMEMORYBARRIEREXTPROC __glewMemoryBarrierEXT; + +GLEW_FUN_EXPORT PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC __glewClearPixelLocalStorageuiEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC __glewFramebufferPixelLocalStorageSizeEXT; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC __glewGetFramebufferPixelLocalStorageSizeEXT; + +GLEW_FUN_EXPORT PFNGLTEXPAGECOMMITMENTEXTPROC __glewTexPageCommitmentEXT; + +GLEW_FUN_EXPORT PFNGLACTIVESTENCILFACEEXTPROC __glewActiveStencilFaceEXT; + +GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE1DEXTPROC __glewTexSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE2DEXTPROC __glewTexSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DEXTPROC __glewTexSubImage3DEXT; + +GLEW_FUN_EXPORT PFNGLPATCHPARAMETERIEXTPROC __glewPatchParameteriEXT; + +GLEW_FUN_EXPORT PFNGLTEXIMAGE3DEXTPROC __glewTexImage3DEXT; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT; + +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIIVEXTPROC __glewGetSamplerParameterIivEXT; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIUIVEXTPROC __glewGetSamplerParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIIVEXTPROC __glewSamplerParameterIivEXT; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIUIVEXTPROC __glewSamplerParameterIuivEXT; + +GLEW_FUN_EXPORT PFNGLTEXBUFFEREXTPROC __glewTexBufferEXT; + +GLEW_FUN_EXPORT PFNGLCLEARCOLORIIEXTPROC __glewClearColorIiEXT; +GLEW_FUN_EXPORT PFNGLCLEARCOLORIUIEXTPROC __glewClearColorIuiEXT; +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVEXTPROC __glewGetTexParameterIivEXT; +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVEXTPROC __glewGetTexParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVEXTPROC __glewTexParameterIivEXT; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVEXTPROC __glewTexParameterIuivEXT; + +GLEW_FUN_EXPORT PFNGLARETEXTURESRESIDENTEXTPROC __glewAreTexturesResidentEXT; +GLEW_FUN_EXPORT PFNGLBINDTEXTUREEXTPROC __glewBindTextureEXT; +GLEW_FUN_EXPORT PFNGLDELETETEXTURESEXTPROC __glewDeleteTexturesEXT; +GLEW_FUN_EXPORT PFNGLGENTEXTURESEXTPROC __glewGenTexturesEXT; +GLEW_FUN_EXPORT PFNGLISTEXTUREEXTPROC __glewIsTextureEXT; +GLEW_FUN_EXPORT PFNGLPRIORITIZETEXTURESEXTPROC __glewPrioritizeTexturesEXT; + +GLEW_FUN_EXPORT PFNGLTEXTURENORMALEXTPROC __glewTextureNormalEXT; + +GLEW_FUN_EXPORT PFNGLTEXSTORAGE1DEXTPROC __glewTexStorage1DEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGE2DEXTPROC __glewTexStorage2DEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DEXTPROC __glewTexStorage3DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE1DEXTPROC __glewTextureStorage1DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE2DEXTPROC __glewTextureStorage2DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESTORAGE3DEXTPROC __glewTextureStorage3DEXT; + +GLEW_FUN_EXPORT PFNGLTEXSTORAGEATTRIBS2DEXTPROC __glewTexStorageAttribs2DEXT; +GLEW_FUN_EXPORT PFNGLTEXSTORAGEATTRIBS3DEXTPROC __glewTexStorageAttribs3DEXT; + +GLEW_FUN_EXPORT PFNGLTEXTUREVIEWEXTPROC __glewTextureViewEXT; + +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VEXTPROC __glewGetQueryObjecti64vEXT; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VEXTPROC __glewGetQueryObjectui64vEXT; + +GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKEXTPROC __glewBeginTransformFeedbackEXT; +GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEEXTPROC __glewBindBufferBaseEXT; +GLEW_FUN_EXPORT PFNGLBINDBUFFEROFFSETEXTPROC __glewBindBufferOffsetEXT; +GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEEXTPROC __glewBindBufferRangeEXT; +GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKEXTPROC __glewEndTransformFeedbackEXT; +GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC __glewGetTransformFeedbackVaryingEXT; +GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC __glewTransformFeedbackVaryingsEXT; + +GLEW_FUN_EXPORT PFNGLARRAYELEMENTEXTPROC __glewArrayElementEXT; +GLEW_FUN_EXPORT PFNGLCOLORPOINTEREXTPROC __glewColorPointerEXT; +GLEW_FUN_EXPORT PFNGLDRAWARRAYSEXTPROC __glewDrawArraysEXT; +GLEW_FUN_EXPORT PFNGLEDGEFLAGPOINTEREXTPROC __glewEdgeFlagPointerEXT; +GLEW_FUN_EXPORT PFNGLINDEXPOINTEREXTPROC __glewIndexPointerEXT; +GLEW_FUN_EXPORT PFNGLNORMALPOINTEREXTPROC __glewNormalPointerEXT; +GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTEREXTPROC __glewTexCoordPointerEXT; +GLEW_FUN_EXPORT PFNGLVERTEXPOINTEREXTPROC __glewVertexPointerEXT; + +GLEW_FUN_EXPORT PFNGLBINDARRAYSETEXTPROC __glewBindArraySetEXT; +GLEW_FUN_EXPORT PFNGLCREATEARRAYSETEXTPROC __glewCreateArraySetExt; +GLEW_FUN_EXPORT PFNGLDELETEARRAYSETSEXTPROC __glewDeleteArraySetsEXT; + +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVEXTPROC __glewGetVertexAttribLdvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC __glewVertexArrayVertexAttribLOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DEXTPROC __glewVertexAttribL1dEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVEXTPROC __glewVertexAttribL1dvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DEXTPROC __glewVertexAttribL2dEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVEXTPROC __glewVertexAttribL2dvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DEXTPROC __glewVertexAttribL3dEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVEXTPROC __glewVertexAttribL3dvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DEXTPROC __glewVertexAttribL4dEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVEXTPROC __glewVertexAttribL4dvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTEREXTPROC __glewVertexAttribLPointerEXT; + +GLEW_FUN_EXPORT PFNGLBEGINVERTEXSHADEREXTPROC __glewBeginVertexShaderEXT; +GLEW_FUN_EXPORT PFNGLBINDLIGHTPARAMETEREXTPROC __glewBindLightParameterEXT; +GLEW_FUN_EXPORT PFNGLBINDMATERIALPARAMETEREXTPROC __glewBindMaterialParameterEXT; +GLEW_FUN_EXPORT PFNGLBINDPARAMETEREXTPROC __glewBindParameterEXT; +GLEW_FUN_EXPORT PFNGLBINDTEXGENPARAMETEREXTPROC __glewBindTexGenParameterEXT; +GLEW_FUN_EXPORT PFNGLBINDTEXTUREUNITPARAMETEREXTPROC __glewBindTextureUnitParameterEXT; +GLEW_FUN_EXPORT PFNGLBINDVERTEXSHADEREXTPROC __glewBindVertexShaderEXT; +GLEW_FUN_EXPORT PFNGLDELETEVERTEXSHADEREXTPROC __glewDeleteVertexShaderEXT; +GLEW_FUN_EXPORT PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC __glewDisableVariantClientStateEXT; +GLEW_FUN_EXPORT PFNGLENABLEVARIANTCLIENTSTATEEXTPROC __glewEnableVariantClientStateEXT; +GLEW_FUN_EXPORT PFNGLENDVERTEXSHADEREXTPROC __glewEndVertexShaderEXT; +GLEW_FUN_EXPORT PFNGLEXTRACTCOMPONENTEXTPROC __glewExtractComponentEXT; +GLEW_FUN_EXPORT PFNGLGENSYMBOLSEXTPROC __glewGenSymbolsEXT; +GLEW_FUN_EXPORT PFNGLGENVERTEXSHADERSEXTPROC __glewGenVertexShadersEXT; +GLEW_FUN_EXPORT PFNGLGETINVARIANTBOOLEANVEXTPROC __glewGetInvariantBooleanvEXT; +GLEW_FUN_EXPORT PFNGLGETINVARIANTFLOATVEXTPROC __glewGetInvariantFloatvEXT; +GLEW_FUN_EXPORT PFNGLGETINVARIANTINTEGERVEXTPROC __glewGetInvariantIntegervEXT; +GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC __glewGetLocalConstantBooleanvEXT; +GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTFLOATVEXTPROC __glewGetLocalConstantFloatvEXT; +GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTINTEGERVEXTPROC __glewGetLocalConstantIntegervEXT; +GLEW_FUN_EXPORT PFNGLGETVARIANTBOOLEANVEXTPROC __glewGetVariantBooleanvEXT; +GLEW_FUN_EXPORT PFNGLGETVARIANTFLOATVEXTPROC __glewGetVariantFloatvEXT; +GLEW_FUN_EXPORT PFNGLGETVARIANTINTEGERVEXTPROC __glewGetVariantIntegervEXT; +GLEW_FUN_EXPORT PFNGLGETVARIANTPOINTERVEXTPROC __glewGetVariantPointervEXT; +GLEW_FUN_EXPORT PFNGLINSERTCOMPONENTEXTPROC __glewInsertComponentEXT; +GLEW_FUN_EXPORT PFNGLISVARIANTENABLEDEXTPROC __glewIsVariantEnabledEXT; +GLEW_FUN_EXPORT PFNGLSETINVARIANTEXTPROC __glewSetInvariantEXT; +GLEW_FUN_EXPORT PFNGLSETLOCALCONSTANTEXTPROC __glewSetLocalConstantEXT; +GLEW_FUN_EXPORT PFNGLSHADEROP1EXTPROC __glewShaderOp1EXT; +GLEW_FUN_EXPORT PFNGLSHADEROP2EXTPROC __glewShaderOp2EXT; +GLEW_FUN_EXPORT PFNGLSHADEROP3EXTPROC __glewShaderOp3EXT; +GLEW_FUN_EXPORT PFNGLSWIZZLEEXTPROC __glewSwizzleEXT; +GLEW_FUN_EXPORT PFNGLVARIANTPOINTEREXTPROC __glewVariantPointerEXT; +GLEW_FUN_EXPORT PFNGLVARIANTBVEXTPROC __glewVariantbvEXT; +GLEW_FUN_EXPORT PFNGLVARIANTDVEXTPROC __glewVariantdvEXT; +GLEW_FUN_EXPORT PFNGLVARIANTFVEXTPROC __glewVariantfvEXT; +GLEW_FUN_EXPORT PFNGLVARIANTIVEXTPROC __glewVariantivEXT; +GLEW_FUN_EXPORT PFNGLVARIANTSVEXTPROC __glewVariantsvEXT; +GLEW_FUN_EXPORT PFNGLVARIANTUBVEXTPROC __glewVariantubvEXT; +GLEW_FUN_EXPORT PFNGLVARIANTUIVEXTPROC __glewVariantuivEXT; +GLEW_FUN_EXPORT PFNGLVARIANTUSVEXTPROC __glewVariantusvEXT; +GLEW_FUN_EXPORT PFNGLWRITEMASKEXTPROC __glewWriteMaskEXT; + +GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTPOINTEREXTPROC __glewVertexWeightPointerEXT; +GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFEXTPROC __glewVertexWeightfEXT; +GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFVEXTPROC __glewVertexWeightfvEXT; + +GLEW_FUN_EXPORT PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC __glewAcquireKeyedMutexWin32EXT; +GLEW_FUN_EXPORT PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC __glewReleaseKeyedMutexWin32EXT; + +GLEW_FUN_EXPORT PFNGLWINDOWRECTANGLESEXTPROC __glewWindowRectanglesEXT; + +GLEW_FUN_EXPORT PFNGLIMPORTSYNCEXTPROC __glewImportSyncEXT; + +GLEW_FUN_EXPORT PFNGLFRAMETERMINATORGREMEDYPROC __glewFrameTerminatorGREMEDY; + +GLEW_FUN_EXPORT PFNGLSTRINGMARKERGREMEDYPROC __glewStringMarkerGREMEDY; + +GLEW_FUN_EXPORT PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC __glewGetImageTransformParameterfvHP; +GLEW_FUN_EXPORT PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC __glewGetImageTransformParameterivHP; +GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERFHPPROC __glewImageTransformParameterfHP; +GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERFVHPPROC __glewImageTransformParameterfvHP; +GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERIHPPROC __glewImageTransformParameteriHP; +GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERIVHPPROC __glewImageTransformParameterivHP; + +GLEW_FUN_EXPORT PFNGLMULTIMODEDRAWARRAYSIBMPROC __glewMultiModeDrawArraysIBM; +GLEW_FUN_EXPORT PFNGLMULTIMODEDRAWELEMENTSIBMPROC __glewMultiModeDrawElementsIBM; + +GLEW_FUN_EXPORT PFNGLCOLORPOINTERLISTIBMPROC __glewColorPointerListIBM; +GLEW_FUN_EXPORT PFNGLEDGEFLAGPOINTERLISTIBMPROC __glewEdgeFlagPointerListIBM; +GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTERLISTIBMPROC __glewFogCoordPointerListIBM; +GLEW_FUN_EXPORT PFNGLINDEXPOINTERLISTIBMPROC __glewIndexPointerListIBM; +GLEW_FUN_EXPORT PFNGLNORMALPOINTERLISTIBMPROC __glewNormalPointerListIBM; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERLISTIBMPROC __glewSecondaryColorPointerListIBM; +GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERLISTIBMPROC __glewTexCoordPointerListIBM; +GLEW_FUN_EXPORT PFNGLVERTEXPOINTERLISTIBMPROC __glewVertexPointerListIBM; + +GLEW_FUN_EXPORT PFNGLGETTEXTUREHANDLEIMGPROC __glewGetTextureHandleIMG; +GLEW_FUN_EXPORT PFNGLGETTEXTURESAMPLERHANDLEIMGPROC __glewGetTextureSamplerHandleIMG; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC __glewProgramUniformHandleui64IMG; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC __glewProgramUniformHandleui64vIMG; +GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64IMGPROC __glewUniformHandleui64IMG; +GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64VIMGPROC __glewUniformHandleui64vIMG; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC __glewFramebufferTexture2DDownsampleIMG; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC __glewFramebufferTextureLayerDownsampleIMG; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC __glewFramebufferTexture2DMultisampleIMG; +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC __glewRenderbufferStorageMultisampleIMG; + +GLEW_FUN_EXPORT PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC __glewApplyFramebufferAttachmentCMAAINTEL; + +GLEW_FUN_EXPORT PFNGLMAPTEXTURE2DINTELPROC __glewMapTexture2DINTEL; +GLEW_FUN_EXPORT PFNGLSYNCTEXTUREINTELPROC __glewSyncTextureINTEL; +GLEW_FUN_EXPORT PFNGLUNMAPTEXTURE2DINTELPROC __glewUnmapTexture2DINTEL; + +GLEW_FUN_EXPORT PFNGLCOLORPOINTERVINTELPROC __glewColorPointervINTEL; +GLEW_FUN_EXPORT PFNGLNORMALPOINTERVINTELPROC __glewNormalPointervINTEL; +GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERVINTELPROC __glewTexCoordPointervINTEL; +GLEW_FUN_EXPORT PFNGLVERTEXPOINTERVINTELPROC __glewVertexPointervINTEL; + +GLEW_FUN_EXPORT PFNGLBEGINPERFQUERYINTELPROC __glewBeginPerfQueryINTEL; +GLEW_FUN_EXPORT PFNGLCREATEPERFQUERYINTELPROC __glewCreatePerfQueryINTEL; +GLEW_FUN_EXPORT PFNGLDELETEPERFQUERYINTELPROC __glewDeletePerfQueryINTEL; +GLEW_FUN_EXPORT PFNGLENDPERFQUERYINTELPROC __glewEndPerfQueryINTEL; +GLEW_FUN_EXPORT PFNGLGETFIRSTPERFQUERYIDINTELPROC __glewGetFirstPerfQueryIdINTEL; +GLEW_FUN_EXPORT PFNGLGETNEXTPERFQUERYIDINTELPROC __glewGetNextPerfQueryIdINTEL; +GLEW_FUN_EXPORT PFNGLGETPERFCOUNTERINFOINTELPROC __glewGetPerfCounterInfoINTEL; +GLEW_FUN_EXPORT PFNGLGETPERFQUERYDATAINTELPROC __glewGetPerfQueryDataINTEL; +GLEW_FUN_EXPORT PFNGLGETPERFQUERYIDBYNAMEINTELPROC __glewGetPerfQueryIdByNameINTEL; +GLEW_FUN_EXPORT PFNGLGETPERFQUERYINFOINTELPROC __glewGetPerfQueryInfoINTEL; + +GLEW_FUN_EXPORT PFNGLTEXSCISSORFUNCINTELPROC __glewTexScissorFuncINTEL; +GLEW_FUN_EXPORT PFNGLTEXSCISSORINTELPROC __glewTexScissorINTEL; + +GLEW_FUN_EXPORT PFNGLBLENDBARRIERKHRPROC __glewBlendBarrierKHR; + +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKPROC __glewDebugMessageCallback; +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECONTROLPROC __glewDebugMessageControl; +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTPROC __glewDebugMessageInsert; +GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGPROC __glewGetDebugMessageLog; +GLEW_FUN_EXPORT PFNGLGETOBJECTLABELPROC __glewGetObjectLabel; +GLEW_FUN_EXPORT PFNGLGETOBJECTPTRLABELPROC __glewGetObjectPtrLabel; +GLEW_FUN_EXPORT PFNGLOBJECTLABELPROC __glewObjectLabel; +GLEW_FUN_EXPORT PFNGLOBJECTPTRLABELPROC __glewObjectPtrLabel; +GLEW_FUN_EXPORT PFNGLPOPDEBUGGROUPPROC __glewPopDebugGroup; +GLEW_FUN_EXPORT PFNGLPUSHDEBUGGROUPPROC __glewPushDebugGroup; + +GLEW_FUN_EXPORT PFNGLMAXSHADERCOMPILERTHREADSKHRPROC __glewMaxShaderCompilerThreadsKHR; + +GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVPROC __glewGetnUniformfv; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVPROC __glewGetnUniformiv; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMUIVPROC __glewGetnUniformuiv; +GLEW_FUN_EXPORT PFNGLREADNPIXELSPROC __glewReadnPixels; + +GLEW_FUN_EXPORT PFNGLBUFFERREGIONENABLEDPROC __glewBufferRegionEnabled; +GLEW_FUN_EXPORT PFNGLDELETEBUFFERREGIONPROC __glewDeleteBufferRegion; +GLEW_FUN_EXPORT PFNGLDRAWBUFFERREGIONPROC __glewDrawBufferRegion; +GLEW_FUN_EXPORT PFNGLNEWBUFFERREGIONPROC __glewNewBufferRegion; +GLEW_FUN_EXPORT PFNGLREADBUFFERREGIONPROC __glewReadBufferRegion; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERPARAMETERIMESAPROC __glewFramebufferParameteriMESA; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC __glewGetFramebufferParameterivMESA; + +GLEW_FUN_EXPORT PFNGLRESIZEBUFFERSMESAPROC __glewResizeBuffersMESA; + +GLEW_FUN_EXPORT PFNGLWINDOWPOS2DMESAPROC __glewWindowPos2dMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVMESAPROC __glewWindowPos2dvMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2FMESAPROC __glewWindowPos2fMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVMESAPROC __glewWindowPos2fvMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2IMESAPROC __glewWindowPos2iMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVMESAPROC __glewWindowPos2ivMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2SMESAPROC __glewWindowPos2sMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVMESAPROC __glewWindowPos2svMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3DMESAPROC __glewWindowPos3dMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVMESAPROC __glewWindowPos3dvMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3FMESAPROC __glewWindowPos3fMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVMESAPROC __glewWindowPos3fvMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3IMESAPROC __glewWindowPos3iMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVMESAPROC __glewWindowPos3ivMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3SMESAPROC __glewWindowPos3sMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVMESAPROC __glewWindowPos3svMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS4DMESAPROC __glewWindowPos4dMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS4DVMESAPROC __glewWindowPos4dvMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS4FMESAPROC __glewWindowPos4fMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS4FVMESAPROC __glewWindowPos4fvMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS4IMESAPROC __glewWindowPos4iMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS4IVMESAPROC __glewWindowPos4ivMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS4SMESAPROC __glewWindowPos4sMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS4SVMESAPROC __glewWindowPos4svMESA; + +GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERNVXPROC __glewBeginConditionalRenderNVX; +GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERNVXPROC __glewEndConditionalRenderNVX; + +GLEW_FUN_EXPORT PFNGLASYNCCOPYBUFFERSUBDATANVXPROC __glewAsyncCopyBufferSubDataNVX; +GLEW_FUN_EXPORT PFNGLASYNCCOPYIMAGESUBDATANVXPROC __glewAsyncCopyImageSubDataNVX; +GLEW_FUN_EXPORT PFNGLMULTICASTSCISSORARRAYVNVXPROC __glewMulticastScissorArrayvNVX; +GLEW_FUN_EXPORT PFNGLMULTICASTVIEWPORTARRAYVNVXPROC __glewMulticastViewportArrayvNVX; +GLEW_FUN_EXPORT PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC __glewMulticastViewportPositionWScaleNVX; +GLEW_FUN_EXPORT PFNGLUPLOADGPUMASKNVXPROC __glewUploadGpuMaskNVX; + +GLEW_FUN_EXPORT PFNGLLGPUCOPYIMAGESUBDATANVXPROC __glewLGPUCopyImageSubDataNVX; +GLEW_FUN_EXPORT PFNGLLGPUINTERLOCKNVXPROC __glewLGPUInterlockNVX; +GLEW_FUN_EXPORT PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC __glewLGPUNamedBufferSubDataNVX; + +GLEW_FUN_EXPORT PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC __glewClientWaitSemaphoreui64NVX; +GLEW_FUN_EXPORT PFNGLCREATEPROGRESSFENCENVXPROC __glewCreateProgressFenceNVX; +GLEW_FUN_EXPORT PFNGLSIGNALSEMAPHOREUI64NVXPROC __glewSignalSemaphoreui64NVX; +GLEW_FUN_EXPORT PFNGLWAITSEMAPHOREUI64NVXPROC __glewWaitSemaphoreui64NVX; + +GLEW_FUN_EXPORT PFNGLSTEREOPARAMETERFNVPROC __glewStereoParameterfNV; +GLEW_FUN_EXPORT PFNGLSTEREOPARAMETERINVPROC __glewStereoParameteriNV; + +GLEW_FUN_EXPORT PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC __glewAlphaToCoverageDitherControlNV; + +GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC __glewMultiDrawArraysIndirectBindlessNV; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC __glewMultiDrawElementsIndirectBindlessNV; + +GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC __glewMultiDrawArraysIndirectBindlessCountNV; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC __glewMultiDrawElementsIndirectBindlessCountNV; + +GLEW_FUN_EXPORT PFNGLGETIMAGEHANDLENVPROC __glewGetImageHandleNV; +GLEW_FUN_EXPORT PFNGLGETTEXTUREHANDLENVPROC __glewGetTextureHandleNV; +GLEW_FUN_EXPORT PFNGLGETTEXTURESAMPLERHANDLENVPROC __glewGetTextureSamplerHandleNV; +GLEW_FUN_EXPORT PFNGLISIMAGEHANDLERESIDENTNVPROC __glewIsImageHandleResidentNV; +GLEW_FUN_EXPORT PFNGLISTEXTUREHANDLERESIDENTNVPROC __glewIsTextureHandleResidentNV; +GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC __glewMakeImageHandleNonResidentNV; +GLEW_FUN_EXPORT PFNGLMAKEIMAGEHANDLERESIDENTNVPROC __glewMakeImageHandleResidentNV; +GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC __glewMakeTextureHandleNonResidentNV; +GLEW_FUN_EXPORT PFNGLMAKETEXTUREHANDLERESIDENTNVPROC __glewMakeTextureHandleResidentNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC __glewProgramUniformHandleui64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC __glewProgramUniformHandleui64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64NVPROC __glewUniformHandleui64NV; +GLEW_FUN_EXPORT PFNGLUNIFORMHANDLEUI64VNVPROC __glewUniformHandleui64vNV; + +GLEW_FUN_EXPORT PFNGLBLENDBARRIERNVPROC __glewBlendBarrierNV; +GLEW_FUN_EXPORT PFNGLBLENDPARAMETERINVPROC __glewBlendParameteriNV; + +GLEW_FUN_EXPORT PFNGLVIEWPORTPOSITIONWSCALENVPROC __glewViewportPositionWScaleNV; + +GLEW_FUN_EXPORT PFNGLCALLCOMMANDLISTNVPROC __glewCallCommandListNV; +GLEW_FUN_EXPORT PFNGLCOMMANDLISTSEGMENTSNVPROC __glewCommandListSegmentsNV; +GLEW_FUN_EXPORT PFNGLCOMPILECOMMANDLISTNVPROC __glewCompileCommandListNV; +GLEW_FUN_EXPORT PFNGLCREATECOMMANDLISTSNVPROC __glewCreateCommandListsNV; +GLEW_FUN_EXPORT PFNGLCREATESTATESNVPROC __glewCreateStatesNV; +GLEW_FUN_EXPORT PFNGLDELETECOMMANDLISTSNVPROC __glewDeleteCommandListsNV; +GLEW_FUN_EXPORT PFNGLDELETESTATESNVPROC __glewDeleteStatesNV; +GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSADDRESSNVPROC __glewDrawCommandsAddressNV; +GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSNVPROC __glewDrawCommandsNV; +GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC __glewDrawCommandsStatesAddressNV; +GLEW_FUN_EXPORT PFNGLDRAWCOMMANDSSTATESNVPROC __glewDrawCommandsStatesNV; +GLEW_FUN_EXPORT PFNGLGETCOMMANDHEADERNVPROC __glewGetCommandHeaderNV; +GLEW_FUN_EXPORT PFNGLGETSTAGEINDEXNVPROC __glewGetStageIndexNV; +GLEW_FUN_EXPORT PFNGLISCOMMANDLISTNVPROC __glewIsCommandListNV; +GLEW_FUN_EXPORT PFNGLISSTATENVPROC __glewIsStateNV; +GLEW_FUN_EXPORT PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC __glewListDrawCommandsStatesClientNV; +GLEW_FUN_EXPORT PFNGLSTATECAPTURENVPROC __glewStateCaptureNV; + +GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERNVPROC __glewBeginConditionalRenderNV; +GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERNVPROC __glewEndConditionalRenderNV; + +GLEW_FUN_EXPORT PFNGLSUBPIXELPRECISIONBIASNVPROC __glewSubpixelPrecisionBiasNV; + +GLEW_FUN_EXPORT PFNGLCONSERVATIVERASTERPARAMETERFNVPROC __glewConservativeRasterParameterfNV; + +GLEW_FUN_EXPORT PFNGLCONSERVATIVERASTERPARAMETERINVPROC __glewConservativeRasterParameteriNV; + +GLEW_FUN_EXPORT PFNGLCOPYBUFFERSUBDATANVPROC __glewCopyBufferSubDataNV; + +GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATANVPROC __glewCopyImageSubDataNV; + +GLEW_FUN_EXPORT PFNGLCLEARDEPTHDNVPROC __glewClearDepthdNV; +GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSDNVPROC __glewDepthBoundsdNV; +GLEW_FUN_EXPORT PFNGLDEPTHRANGEDNVPROC __glewDepthRangedNV; + +GLEW_FUN_EXPORT PFNGLDRAWBUFFERSNVPROC __glewDrawBuffersNV; + +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDNVPROC __glewDrawArraysInstancedNV; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDNVPROC __glewDrawElementsInstancedNV; + +GLEW_FUN_EXPORT PFNGLDRAWTEXTURENVPROC __glewDrawTextureNV; + +GLEW_FUN_EXPORT PFNGLDRAWVKIMAGENVPROC __glewDrawVkImageNV; +GLEW_FUN_EXPORT PFNGLGETVKPROCADDRNVPROC __glewGetVkProcAddrNV; +GLEW_FUN_EXPORT PFNGLSIGNALVKFENCENVPROC __glewSignalVkFenceNV; +GLEW_FUN_EXPORT PFNGLSIGNALVKSEMAPHORENVPROC __glewSignalVkSemaphoreNV; +GLEW_FUN_EXPORT PFNGLWAITVKSEMAPHORENVPROC __glewWaitVkSemaphoreNV; + +GLEW_FUN_EXPORT PFNGLEVALMAPSNVPROC __glewEvalMapsNV; +GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERFVNVPROC __glewGetMapAttribParameterfvNV; +GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERIVNVPROC __glewGetMapAttribParameterivNV; +GLEW_FUN_EXPORT PFNGLGETMAPCONTROLPOINTSNVPROC __glewGetMapControlPointsNV; +GLEW_FUN_EXPORT PFNGLGETMAPPARAMETERFVNVPROC __glewGetMapParameterfvNV; +GLEW_FUN_EXPORT PFNGLGETMAPPARAMETERIVNVPROC __glewGetMapParameterivNV; +GLEW_FUN_EXPORT PFNGLMAPCONTROLPOINTSNVPROC __glewMapControlPointsNV; +GLEW_FUN_EXPORT PFNGLMAPPARAMETERFVNVPROC __glewMapParameterfvNV; +GLEW_FUN_EXPORT PFNGLMAPPARAMETERIVNVPROC __glewMapParameterivNV; + +GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVNVPROC __glewGetMultisamplefvNV; +GLEW_FUN_EXPORT PFNGLSAMPLEMASKINDEXEDNVPROC __glewSampleMaskIndexedNV; +GLEW_FUN_EXPORT PFNGLTEXRENDERBUFFERNVPROC __glewTexRenderbufferNV; + +GLEW_FUN_EXPORT PFNGLDELETEFENCESNVPROC __glewDeleteFencesNV; +GLEW_FUN_EXPORT PFNGLFINISHFENCENVPROC __glewFinishFenceNV; +GLEW_FUN_EXPORT PFNGLGENFENCESNVPROC __glewGenFencesNV; +GLEW_FUN_EXPORT PFNGLGETFENCEIVNVPROC __glewGetFenceivNV; +GLEW_FUN_EXPORT PFNGLISFENCENVPROC __glewIsFenceNV; +GLEW_FUN_EXPORT PFNGLSETFENCENVPROC __glewSetFenceNV; +GLEW_FUN_EXPORT PFNGLTESTFENCENVPROC __glewTestFenceNV; + +GLEW_FUN_EXPORT PFNGLFRAGMENTCOVERAGECOLORNVPROC __glewFragmentCoverageColorNV; + +GLEW_FUN_EXPORT PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC __glewGetProgramNamedParameterdvNV; +GLEW_FUN_EXPORT PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC __glewGetProgramNamedParameterfvNV; +GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DNVPROC __glewProgramNamedParameter4dNV; +GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC __glewProgramNamedParameter4dvNV; +GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FNVPROC __glewProgramNamedParameter4fNV; +GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC __glewProgramNamedParameter4fvNV; + +GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERNVPROC __glewBlitFramebufferNV; + +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC __glewRenderbufferStorageMultisampleNV; + +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC __glewRenderbufferStorageMultisampleCoverageNV; + +GLEW_FUN_EXPORT PFNGLPROGRAMVERTEXLIMITNVPROC __glewProgramVertexLimitNV; + +GLEW_FUN_EXPORT PFNGLMULTICASTBARRIERNVPROC __glewMulticastBarrierNV; +GLEW_FUN_EXPORT PFNGLMULTICASTBLITFRAMEBUFFERNVPROC __glewMulticastBlitFramebufferNV; +GLEW_FUN_EXPORT PFNGLMULTICASTBUFFERSUBDATANVPROC __glewMulticastBufferSubDataNV; +GLEW_FUN_EXPORT PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC __glewMulticastCopyBufferSubDataNV; +GLEW_FUN_EXPORT PFNGLMULTICASTCOPYIMAGESUBDATANVPROC __glewMulticastCopyImageSubDataNV; +GLEW_FUN_EXPORT PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewMulticastFramebufferSampleLocationsfvNV; +GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC __glewMulticastGetQueryObjecti64vNV; +GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTIVNVPROC __glewMulticastGetQueryObjectivNV; +GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC __glewMulticastGetQueryObjectui64vNV; +GLEW_FUN_EXPORT PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC __glewMulticastGetQueryObjectuivNV; +GLEW_FUN_EXPORT PFNGLMULTICASTWAITSYNCNVPROC __glewMulticastWaitSyncNV; +GLEW_FUN_EXPORT PFNGLRENDERGPUMASKNVPROC __glewRenderGpuMaskNV; + +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4INVPROC __glewProgramEnvParameterI4iNV; +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4IVNVPROC __glewProgramEnvParameterI4ivNV; +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UINVPROC __glewProgramEnvParameterI4uiNV; +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UIVNVPROC __glewProgramEnvParameterI4uivNV; +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERSI4IVNVPROC __glewProgramEnvParametersI4ivNV; +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC __glewProgramEnvParametersI4uivNV; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4INVPROC __glewProgramLocalParameterI4iNV; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC __glewProgramLocalParameterI4ivNV; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UINVPROC __glewProgramLocalParameterI4uiNV; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC __glewProgramLocalParameterI4uivNV; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC __glewProgramLocalParametersI4ivNV; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC __glewProgramLocalParametersI4uivNV; + +GLEW_FUN_EXPORT PFNGLGETUNIFORMI64VNVPROC __glewGetUniformi64vNV; +GLEW_FUN_EXPORT PFNGLGETUNIFORMUI64VNVPROC __glewGetUniformui64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64NVPROC __glewProgramUniform1i64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64VNVPROC __glewProgramUniform1i64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64NVPROC __glewProgramUniform1ui64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64VNVPROC __glewProgramUniform1ui64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64NVPROC __glewProgramUniform2i64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64VNVPROC __glewProgramUniform2i64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64NVPROC __glewProgramUniform2ui64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64VNVPROC __glewProgramUniform2ui64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64NVPROC __glewProgramUniform3i64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64VNVPROC __glewProgramUniform3i64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64NVPROC __glewProgramUniform3ui64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64VNVPROC __glewProgramUniform3ui64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64NVPROC __glewProgramUniform4i64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64VNVPROC __glewProgramUniform4i64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64NVPROC __glewProgramUniform4ui64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64VNVPROC __glewProgramUniform4ui64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM1I64NVPROC __glewUniform1i64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM1I64VNVPROC __glewUniform1i64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM1UI64NVPROC __glewUniform1ui64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM1UI64VNVPROC __glewUniform1ui64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM2I64NVPROC __glewUniform2i64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM2I64VNVPROC __glewUniform2i64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM2UI64NVPROC __glewUniform2ui64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM2UI64VNVPROC __glewUniform2ui64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM3I64NVPROC __glewUniform3i64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM3I64VNVPROC __glewUniform3i64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM3UI64NVPROC __glewUniform3ui64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM3UI64VNVPROC __glewUniform3ui64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM4I64NVPROC __glewUniform4i64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM4I64VNVPROC __glewUniform4i64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM4UI64NVPROC __glewUniform4ui64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM4UI64VNVPROC __glewUniform4ui64vNV; + +GLEW_FUN_EXPORT PFNGLCOLOR3HNVPROC __glewColor3hNV; +GLEW_FUN_EXPORT PFNGLCOLOR3HVNVPROC __glewColor3hvNV; +GLEW_FUN_EXPORT PFNGLCOLOR4HNVPROC __glewColor4hNV; +GLEW_FUN_EXPORT PFNGLCOLOR4HVNVPROC __glewColor4hvNV; +GLEW_FUN_EXPORT PFNGLFOGCOORDHNVPROC __glewFogCoordhNV; +GLEW_FUN_EXPORT PFNGLFOGCOORDHVNVPROC __glewFogCoordhvNV; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1HNVPROC __glewMultiTexCoord1hNV; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1HVNVPROC __glewMultiTexCoord1hvNV; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2HNVPROC __glewMultiTexCoord2hNV; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2HVNVPROC __glewMultiTexCoord2hvNV; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3HNVPROC __glewMultiTexCoord3hNV; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3HVNVPROC __glewMultiTexCoord3hvNV; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4HNVPROC __glewMultiTexCoord4hNV; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4HVNVPROC __glewMultiTexCoord4hvNV; +GLEW_FUN_EXPORT PFNGLNORMAL3HNVPROC __glewNormal3hNV; +GLEW_FUN_EXPORT PFNGLNORMAL3HVNVPROC __glewNormal3hvNV; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3HNVPROC __glewSecondaryColor3hNV; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3HVNVPROC __glewSecondaryColor3hvNV; +GLEW_FUN_EXPORT PFNGLTEXCOORD1HNVPROC __glewTexCoord1hNV; +GLEW_FUN_EXPORT PFNGLTEXCOORD1HVNVPROC __glewTexCoord1hvNV; +GLEW_FUN_EXPORT PFNGLTEXCOORD2HNVPROC __glewTexCoord2hNV; +GLEW_FUN_EXPORT PFNGLTEXCOORD2HVNVPROC __glewTexCoord2hvNV; +GLEW_FUN_EXPORT PFNGLTEXCOORD3HNVPROC __glewTexCoord3hNV; +GLEW_FUN_EXPORT PFNGLTEXCOORD3HVNVPROC __glewTexCoord3hvNV; +GLEW_FUN_EXPORT PFNGLTEXCOORD4HNVPROC __glewTexCoord4hNV; +GLEW_FUN_EXPORT PFNGLTEXCOORD4HVNVPROC __glewTexCoord4hvNV; +GLEW_FUN_EXPORT PFNGLVERTEX2HNVPROC __glewVertex2hNV; +GLEW_FUN_EXPORT PFNGLVERTEX2HVNVPROC __glewVertex2hvNV; +GLEW_FUN_EXPORT PFNGLVERTEX3HNVPROC __glewVertex3hNV; +GLEW_FUN_EXPORT PFNGLVERTEX3HVNVPROC __glewVertex3hvNV; +GLEW_FUN_EXPORT PFNGLVERTEX4HNVPROC __glewVertex4hNV; +GLEW_FUN_EXPORT PFNGLVERTEX4HVNVPROC __glewVertex4hvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1HNVPROC __glewVertexAttrib1hNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1HVNVPROC __glewVertexAttrib1hvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2HNVPROC __glewVertexAttrib2hNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2HVNVPROC __glewVertexAttrib2hvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3HNVPROC __glewVertexAttrib3hNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3HVNVPROC __glewVertexAttrib3hvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4HNVPROC __glewVertexAttrib4hNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4HVNVPROC __glewVertexAttrib4hvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1HVNVPROC __glewVertexAttribs1hvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2HVNVPROC __glewVertexAttribs2hvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3HVNVPROC __glewVertexAttribs3hvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4HVNVPROC __glewVertexAttribs4hvNV; +GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHNVPROC __glewVertexWeighthNV; +GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHVNVPROC __glewVertexWeighthvNV; + +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORNVPROC __glewVertexAttribDivisorNV; + +GLEW_FUN_EXPORT PFNGLGETINTERNALFORMATSAMPLEIVNVPROC __glewGetInternalformatSampleivNV; + +GLEW_FUN_EXPORT PFNGLBUFFERATTACHMEMORYNVPROC __glewBufferAttachMemoryNV; +GLEW_FUN_EXPORT PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC __glewGetMemoryObjectDetachedResourcesuivNV; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERATTACHMEMORYNVPROC __glewNamedBufferAttachMemoryNV; +GLEW_FUN_EXPORT PFNGLRESETMEMORYOBJECTPARAMETERNVPROC __glewResetMemoryObjectParameterNV; +GLEW_FUN_EXPORT PFNGLTEXATTACHMEMORYNVPROC __glewTexAttachMemoryNV; +GLEW_FUN_EXPORT PFNGLTEXTUREATTACHMEMORYNVPROC __glewTextureAttachMemoryNV; + +GLEW_FUN_EXPORT PFNGLBUFFERPAGECOMMITMENTMEMNVPROC __glewBufferPageCommitmentMemNV; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERPAGECOMMITMENTMEMNVPROC __glewNamedBufferPageCommitmentMemNV; +GLEW_FUN_EXPORT PFNGLTEXPAGECOMMITMENTMEMNVPROC __glewTexPageCommitmentMemNV; +GLEW_FUN_EXPORT PFNGLTEXTUREPAGECOMMITMENTMEMNVPROC __glewTexturePageCommitmentMemNV; + +GLEW_FUN_EXPORT PFNGLDRAWMESHTASKSINDIRECTNVPROC __glewDrawMeshTasksIndirectNV; +GLEW_FUN_EXPORT PFNGLDRAWMESHTASKSNVPROC __glewDrawMeshTasksNV; +GLEW_FUN_EXPORT PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC __glewMultiDrawMeshTasksIndirectCountNV; +GLEW_FUN_EXPORT PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC __glewMultiDrawMeshTasksIndirectNV; + +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3FVNVPROC __glewUniformMatrix2x3fvNV; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4FVNVPROC __glewUniformMatrix2x4fvNV; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2FVNVPROC __glewUniformMatrix3x2fvNV; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4FVNVPROC __glewUniformMatrix3x4fvNV; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2FVNVPROC __glewUniformMatrix4x2fvNV; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3FVNVPROC __glewUniformMatrix4x3fvNV; + +GLEW_FUN_EXPORT PFNGLBEGINOCCLUSIONQUERYNVPROC __glewBeginOcclusionQueryNV; +GLEW_FUN_EXPORT PFNGLDELETEOCCLUSIONQUERIESNVPROC __glewDeleteOcclusionQueriesNV; +GLEW_FUN_EXPORT PFNGLENDOCCLUSIONQUERYNVPROC __glewEndOcclusionQueryNV; +GLEW_FUN_EXPORT PFNGLGENOCCLUSIONQUERIESNVPROC __glewGenOcclusionQueriesNV; +GLEW_FUN_EXPORT PFNGLGETOCCLUSIONQUERYIVNVPROC __glewGetOcclusionQueryivNV; +GLEW_FUN_EXPORT PFNGLGETOCCLUSIONQUERYUIVNVPROC __glewGetOcclusionQueryuivNV; +GLEW_FUN_EXPORT PFNGLISOCCLUSIONQUERYNVPROC __glewIsOcclusionQueryNV; + +GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC __glewProgramBufferParametersIivNV; +GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC __glewProgramBufferParametersIuivNV; +GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC __glewProgramBufferParametersfvNV; + +GLEW_FUN_EXPORT PFNGLCOPYPATHNVPROC __glewCopyPathNV; +GLEW_FUN_EXPORT PFNGLCOVERFILLPATHINSTANCEDNVPROC __glewCoverFillPathInstancedNV; +GLEW_FUN_EXPORT PFNGLCOVERFILLPATHNVPROC __glewCoverFillPathNV; +GLEW_FUN_EXPORT PFNGLCOVERSTROKEPATHINSTANCEDNVPROC __glewCoverStrokePathInstancedNV; +GLEW_FUN_EXPORT PFNGLCOVERSTROKEPATHNVPROC __glewCoverStrokePathNV; +GLEW_FUN_EXPORT PFNGLDELETEPATHSNVPROC __glewDeletePathsNV; +GLEW_FUN_EXPORT PFNGLGENPATHSNVPROC __glewGenPathsNV; +GLEW_FUN_EXPORT PFNGLGETPATHCOLORGENFVNVPROC __glewGetPathColorGenfvNV; +GLEW_FUN_EXPORT PFNGLGETPATHCOLORGENIVNVPROC __glewGetPathColorGenivNV; +GLEW_FUN_EXPORT PFNGLGETPATHCOMMANDSNVPROC __glewGetPathCommandsNV; +GLEW_FUN_EXPORT PFNGLGETPATHCOORDSNVPROC __glewGetPathCoordsNV; +GLEW_FUN_EXPORT PFNGLGETPATHDASHARRAYNVPROC __glewGetPathDashArrayNV; +GLEW_FUN_EXPORT PFNGLGETPATHLENGTHNVPROC __glewGetPathLengthNV; +GLEW_FUN_EXPORT PFNGLGETPATHMETRICRANGENVPROC __glewGetPathMetricRangeNV; +GLEW_FUN_EXPORT PFNGLGETPATHMETRICSNVPROC __glewGetPathMetricsNV; +GLEW_FUN_EXPORT PFNGLGETPATHPARAMETERFVNVPROC __glewGetPathParameterfvNV; +GLEW_FUN_EXPORT PFNGLGETPATHPARAMETERIVNVPROC __glewGetPathParameterivNV; +GLEW_FUN_EXPORT PFNGLGETPATHSPACINGNVPROC __glewGetPathSpacingNV; +GLEW_FUN_EXPORT PFNGLGETPATHTEXGENFVNVPROC __glewGetPathTexGenfvNV; +GLEW_FUN_EXPORT PFNGLGETPATHTEXGENIVNVPROC __glewGetPathTexGenivNV; +GLEW_FUN_EXPORT PFNGLGETPROGRAMRESOURCEFVNVPROC __glewGetProgramResourcefvNV; +GLEW_FUN_EXPORT PFNGLINTERPOLATEPATHSNVPROC __glewInterpolatePathsNV; +GLEW_FUN_EXPORT PFNGLISPATHNVPROC __glewIsPathNV; +GLEW_FUN_EXPORT PFNGLISPOINTINFILLPATHNVPROC __glewIsPointInFillPathNV; +GLEW_FUN_EXPORT PFNGLISPOINTINSTROKEPATHNVPROC __glewIsPointInStrokePathNV; +GLEW_FUN_EXPORT PFNGLMATRIXLOAD3X2FNVPROC __glewMatrixLoad3x2fNV; +GLEW_FUN_EXPORT PFNGLMATRIXLOAD3X3FNVPROC __glewMatrixLoad3x3fNV; +GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC __glewMatrixLoadTranspose3x3fNV; +GLEW_FUN_EXPORT PFNGLMATRIXMULT3X2FNVPROC __glewMatrixMult3x2fNV; +GLEW_FUN_EXPORT PFNGLMATRIXMULT3X3FNVPROC __glewMatrixMult3x3fNV; +GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC __glewMatrixMultTranspose3x3fNV; +GLEW_FUN_EXPORT PFNGLPATHCOLORGENNVPROC __glewPathColorGenNV; +GLEW_FUN_EXPORT PFNGLPATHCOMMANDSNVPROC __glewPathCommandsNV; +GLEW_FUN_EXPORT PFNGLPATHCOORDSNVPROC __glewPathCoordsNV; +GLEW_FUN_EXPORT PFNGLPATHCOVERDEPTHFUNCNVPROC __glewPathCoverDepthFuncNV; +GLEW_FUN_EXPORT PFNGLPATHDASHARRAYNVPROC __glewPathDashArrayNV; +GLEW_FUN_EXPORT PFNGLPATHFOGGENNVPROC __glewPathFogGenNV; +GLEW_FUN_EXPORT PFNGLPATHGLYPHINDEXARRAYNVPROC __glewPathGlyphIndexArrayNV; +GLEW_FUN_EXPORT PFNGLPATHGLYPHINDEXRANGENVPROC __glewPathGlyphIndexRangeNV; +GLEW_FUN_EXPORT PFNGLPATHGLYPHRANGENVPROC __glewPathGlyphRangeNV; +GLEW_FUN_EXPORT PFNGLPATHGLYPHSNVPROC __glewPathGlyphsNV; +GLEW_FUN_EXPORT PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC __glewPathMemoryGlyphIndexArrayNV; +GLEW_FUN_EXPORT PFNGLPATHPARAMETERFNVPROC __glewPathParameterfNV; +GLEW_FUN_EXPORT PFNGLPATHPARAMETERFVNVPROC __glewPathParameterfvNV; +GLEW_FUN_EXPORT PFNGLPATHPARAMETERINVPROC __glewPathParameteriNV; +GLEW_FUN_EXPORT PFNGLPATHPARAMETERIVNVPROC __glewPathParameterivNV; +GLEW_FUN_EXPORT PFNGLPATHSTENCILDEPTHOFFSETNVPROC __glewPathStencilDepthOffsetNV; +GLEW_FUN_EXPORT PFNGLPATHSTENCILFUNCNVPROC __glewPathStencilFuncNV; +GLEW_FUN_EXPORT PFNGLPATHSTRINGNVPROC __glewPathStringNV; +GLEW_FUN_EXPORT PFNGLPATHSUBCOMMANDSNVPROC __glewPathSubCommandsNV; +GLEW_FUN_EXPORT PFNGLPATHSUBCOORDSNVPROC __glewPathSubCoordsNV; +GLEW_FUN_EXPORT PFNGLPATHTEXGENNVPROC __glewPathTexGenNV; +GLEW_FUN_EXPORT PFNGLPOINTALONGPATHNVPROC __glewPointAlongPathNV; +GLEW_FUN_EXPORT PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC __glewProgramPathFragmentInputGenNV; +GLEW_FUN_EXPORT PFNGLSTENCILFILLPATHINSTANCEDNVPROC __glewStencilFillPathInstancedNV; +GLEW_FUN_EXPORT PFNGLSTENCILFILLPATHNVPROC __glewStencilFillPathNV; +GLEW_FUN_EXPORT PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC __glewStencilStrokePathInstancedNV; +GLEW_FUN_EXPORT PFNGLSTENCILSTROKEPATHNVPROC __glewStencilStrokePathNV; +GLEW_FUN_EXPORT PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC __glewStencilThenCoverFillPathInstancedNV; +GLEW_FUN_EXPORT PFNGLSTENCILTHENCOVERFILLPATHNVPROC __glewStencilThenCoverFillPathNV; +GLEW_FUN_EXPORT PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC __glewStencilThenCoverStrokePathInstancedNV; +GLEW_FUN_EXPORT PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC __glewStencilThenCoverStrokePathNV; +GLEW_FUN_EXPORT PFNGLTRANSFORMPATHNVPROC __glewTransformPathNV; +GLEW_FUN_EXPORT PFNGLWEIGHTPATHSNVPROC __glewWeightPathsNV; + +GLEW_FUN_EXPORT PFNGLFLUSHPIXELDATARANGENVPROC __glewFlushPixelDataRangeNV; +GLEW_FUN_EXPORT PFNGLPIXELDATARANGENVPROC __glewPixelDataRangeNV; + +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERINVPROC __glewPointParameteriNV; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVNVPROC __glewPointParameterivNV; + +GLEW_FUN_EXPORT PFNGLPOLYGONMODENVPROC __glewPolygonModeNV; + +GLEW_FUN_EXPORT PFNGLGETVIDEOI64VNVPROC __glewGetVideoi64vNV; +GLEW_FUN_EXPORT PFNGLGETVIDEOIVNVPROC __glewGetVideoivNV; +GLEW_FUN_EXPORT PFNGLGETVIDEOUI64VNVPROC __glewGetVideoui64vNV; +GLEW_FUN_EXPORT PFNGLGETVIDEOUIVNVPROC __glewGetVideouivNV; +GLEW_FUN_EXPORT PFNGLPRESENTFRAMEDUALFILLNVPROC __glewPresentFrameDualFillNV; +GLEW_FUN_EXPORT PFNGLPRESENTFRAMEKEYEDNVPROC __glewPresentFrameKeyedNV; + +GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXNVPROC __glewPrimitiveRestartIndexNV; +GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTNVPROC __glewPrimitiveRestartNV; + +GLEW_FUN_EXPORT PFNGLREADBUFFERNVPROC __glewReadBufferNV; + +GLEW_FUN_EXPORT PFNGLCOMBINERINPUTNVPROC __glewCombinerInputNV; +GLEW_FUN_EXPORT PFNGLCOMBINEROUTPUTNVPROC __glewCombinerOutputNV; +GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFNVPROC __glewCombinerParameterfNV; +GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFVNVPROC __glewCombinerParameterfvNV; +GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERINVPROC __glewCombinerParameteriNV; +GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERIVNVPROC __glewCombinerParameterivNV; +GLEW_FUN_EXPORT PFNGLFINALCOMBINERINPUTNVPROC __glewFinalCombinerInputNV; +GLEW_FUN_EXPORT PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC __glewGetCombinerInputParameterfvNV; +GLEW_FUN_EXPORT PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC __glewGetCombinerInputParameterivNV; +GLEW_FUN_EXPORT PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC __glewGetCombinerOutputParameterfvNV; +GLEW_FUN_EXPORT PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC __glewGetCombinerOutputParameterivNV; +GLEW_FUN_EXPORT PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC __glewGetFinalCombinerInputParameterfvNV; +GLEW_FUN_EXPORT PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC __glewGetFinalCombinerInputParameterivNV; + +GLEW_FUN_EXPORT PFNGLCOMBINERSTAGEPARAMETERFVNVPROC __glewCombinerStageParameterfvNV; +GLEW_FUN_EXPORT PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC __glewGetCombinerStageParameterfvNV; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewFramebufferSampleLocationsfvNV; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewNamedFramebufferSampleLocationsfvNV; +GLEW_FUN_EXPORT PFNGLRESOLVEDEPTHVALUESNVPROC __glewResolveDepthValuesNV; + +GLEW_FUN_EXPORT PFNGLSCISSOREXCLUSIVEARRAYVNVPROC __glewScissorExclusiveArrayvNV; +GLEW_FUN_EXPORT PFNGLSCISSOREXCLUSIVENVPROC __glewScissorExclusiveNV; + +GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERUI64VNVPROC __glewGetBufferParameterui64vNV; +GLEW_FUN_EXPORT PFNGLGETINTEGERUI64VNVPROC __glewGetIntegerui64vNV; +GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC __glewGetNamedBufferParameterui64vNV; +GLEW_FUN_EXPORT PFNGLISBUFFERRESIDENTNVPROC __glewIsBufferResidentNV; +GLEW_FUN_EXPORT PFNGLISNAMEDBUFFERRESIDENTNVPROC __glewIsNamedBufferResidentNV; +GLEW_FUN_EXPORT PFNGLMAKEBUFFERNONRESIDENTNVPROC __glewMakeBufferNonResidentNV; +GLEW_FUN_EXPORT PFNGLMAKEBUFFERRESIDENTNVPROC __glewMakeBufferResidentNV; +GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC __glewMakeNamedBufferNonResidentNV; +GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERRESIDENTNVPROC __glewMakeNamedBufferResidentNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64NVPROC __glewProgramUniformui64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64VNVPROC __glewProgramUniformui64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORMUI64NVPROC __glewUniformui64NV; +GLEW_FUN_EXPORT PFNGLUNIFORMUI64VNVPROC __glewUniformui64vNV; + +GLEW_FUN_EXPORT PFNGLBINDSHADINGRATEIMAGENVPROC __glewBindShadingRateImageNV; +GLEW_FUN_EXPORT PFNGLGETSHADINGRATEIMAGEPALETTENVPROC __glewGetShadingRateImagePaletteNV; +GLEW_FUN_EXPORT PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC __glewGetShadingRateSampleLocationivNV; +GLEW_FUN_EXPORT PFNGLSHADINGRATEIMAGEBARRIERNVPROC __glewShadingRateImageBarrierNV; +GLEW_FUN_EXPORT PFNGLSHADINGRATEIMAGEPALETTENVPROC __glewShadingRateImagePaletteNV; +GLEW_FUN_EXPORT PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC __glewShadingRateSampleOrderCustomNV; +GLEW_FUN_EXPORT PFNGLSHADINGRATESAMPLEORDERNVPROC __glewShadingRateSampleOrderNV; + +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DNVPROC __glewCompressedTexImage3DNV; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC __glewCompressedTexSubImage3DNV; +GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DNVPROC __glewCopyTexSubImage3DNV; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERNVPROC __glewFramebufferTextureLayerNV; +GLEW_FUN_EXPORT PFNGLTEXIMAGE3DNVPROC __glewTexImage3DNV; +GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DNVPROC __glewTexSubImage3DNV; + +GLEW_FUN_EXPORT PFNGLTEXTUREBARRIERNVPROC __glewTextureBarrierNV; + +GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTexImage2DMultisampleCoverageNV; +GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTexImage3DMultisampleCoverageNV; +GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTextureImage2DMultisampleCoverageNV; +GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC __glewTextureImage2DMultisampleNV; +GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTextureImage3DMultisampleCoverageNV; +GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC __glewTextureImage3DMultisampleNV; + +GLEW_FUN_EXPORT PFNGLCREATESEMAPHORESNVPROC __glewCreateSemaphoresNV; +GLEW_FUN_EXPORT PFNGLGETSEMAPHOREPARAMETERIVNVPROC __glewGetSemaphoreParameterivNV; +GLEW_FUN_EXPORT PFNGLSEMAPHOREPARAMETERIVNVPROC __glewSemaphoreParameterivNV; + +GLEW_FUN_EXPORT PFNGLACTIVEVARYINGNVPROC __glewActiveVaryingNV; +GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKNVPROC __glewBeginTransformFeedbackNV; +GLEW_FUN_EXPORT PFNGLBINDBUFFERBASENVPROC __glewBindBufferBaseNV; +GLEW_FUN_EXPORT PFNGLBINDBUFFEROFFSETNVPROC __glewBindBufferOffsetNV; +GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGENVPROC __glewBindBufferRangeNV; +GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKNVPROC __glewEndTransformFeedbackNV; +GLEW_FUN_EXPORT PFNGLGETACTIVEVARYINGNVPROC __glewGetActiveVaryingNV; +GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC __glewGetTransformFeedbackVaryingNV; +GLEW_FUN_EXPORT PFNGLGETVARYINGLOCATIONNVPROC __glewGetVaryingLocationNV; +GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC __glewTransformFeedbackAttribsNV; +GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC __glewTransformFeedbackVaryingsNV; + +GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKNVPROC __glewBindTransformFeedbackNV; +GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSNVPROC __glewDeleteTransformFeedbacksNV; +GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKNVPROC __glewDrawTransformFeedbackNV; +GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSNVPROC __glewGenTransformFeedbacksNV; +GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKNVPROC __glewIsTransformFeedbackNV; +GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKNVPROC __glewPauseTransformFeedbackNV; +GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKNVPROC __glewResumeTransformFeedbackNV; + +GLEW_FUN_EXPORT PFNGLVDPAUFININVPROC __glewVDPAUFiniNV; +GLEW_FUN_EXPORT PFNGLVDPAUGETSURFACEIVNVPROC __glewVDPAUGetSurfaceivNV; +GLEW_FUN_EXPORT PFNGLVDPAUINITNVPROC __glewVDPAUInitNV; +GLEW_FUN_EXPORT PFNGLVDPAUISSURFACENVPROC __glewVDPAUIsSurfaceNV; +GLEW_FUN_EXPORT PFNGLVDPAUMAPSURFACESNVPROC __glewVDPAUMapSurfacesNV; +GLEW_FUN_EXPORT PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC __glewVDPAURegisterOutputSurfaceNV; +GLEW_FUN_EXPORT PFNGLVDPAUREGISTERVIDEOSURFACENVPROC __glewVDPAURegisterVideoSurfaceNV; +GLEW_FUN_EXPORT PFNGLVDPAUSURFACEACCESSNVPROC __glewVDPAUSurfaceAccessNV; +GLEW_FUN_EXPORT PFNGLVDPAUUNMAPSURFACESNVPROC __glewVDPAUUnmapSurfacesNV; +GLEW_FUN_EXPORT PFNGLVDPAUUNREGISTERSURFACENVPROC __glewVDPAUUnregisterSurfaceNV; + +GLEW_FUN_EXPORT PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC __glewVDPAURegisterVideoSurfaceWithPictureStructureNV; + +GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGENVPROC __glewFlushVertexArrayRangeNV; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGENVPROC __glewVertexArrayRangeNV; + +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLI64VNVPROC __glewGetVertexAttribLi64vNV; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLUI64VNVPROC __glewGetVertexAttribLui64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64NVPROC __glewVertexAttribL1i64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64VNVPROC __glewVertexAttribL1i64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64NVPROC __glewVertexAttribL1ui64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64VNVPROC __glewVertexAttribL1ui64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64NVPROC __glewVertexAttribL2i64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64VNVPROC __glewVertexAttribL2i64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64NVPROC __glewVertexAttribL2ui64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64VNVPROC __glewVertexAttribL2ui64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64NVPROC __glewVertexAttribL3i64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64VNVPROC __glewVertexAttribL3i64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64NVPROC __glewVertexAttribL3ui64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64VNVPROC __glewVertexAttribL3ui64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64NVPROC __glewVertexAttribL4i64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64VNVPROC __glewVertexAttribL4i64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64NVPROC __glewVertexAttribL4ui64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64VNVPROC __glewVertexAttribL4ui64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLFORMATNVPROC __glewVertexAttribLFormatNV; + +GLEW_FUN_EXPORT PFNGLBUFFERADDRESSRANGENVPROC __glewBufferAddressRangeNV; +GLEW_FUN_EXPORT PFNGLCOLORFORMATNVPROC __glewColorFormatNV; +GLEW_FUN_EXPORT PFNGLEDGEFLAGFORMATNVPROC __glewEdgeFlagFormatNV; +GLEW_FUN_EXPORT PFNGLFOGCOORDFORMATNVPROC __glewFogCoordFormatNV; +GLEW_FUN_EXPORT PFNGLGETINTEGERUI64I_VNVPROC __glewGetIntegerui64i_vNV; +GLEW_FUN_EXPORT PFNGLINDEXFORMATNVPROC __glewIndexFormatNV; +GLEW_FUN_EXPORT PFNGLNORMALFORMATNVPROC __glewNormalFormatNV; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLORFORMATNVPROC __glewSecondaryColorFormatNV; +GLEW_FUN_EXPORT PFNGLTEXCOORDFORMATNVPROC __glewTexCoordFormatNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBFORMATNVPROC __glewVertexAttribFormatNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIFORMATNVPROC __glewVertexAttribIFormatNV; +GLEW_FUN_EXPORT PFNGLVERTEXFORMATNVPROC __glewVertexFormatNV; + +GLEW_FUN_EXPORT PFNGLAREPROGRAMSRESIDENTNVPROC __glewAreProgramsResidentNV; +GLEW_FUN_EXPORT PFNGLBINDPROGRAMNVPROC __glewBindProgramNV; +GLEW_FUN_EXPORT PFNGLDELETEPROGRAMSNVPROC __glewDeleteProgramsNV; +GLEW_FUN_EXPORT PFNGLEXECUTEPROGRAMNVPROC __glewExecuteProgramNV; +GLEW_FUN_EXPORT PFNGLGENPROGRAMSNVPROC __glewGenProgramsNV; +GLEW_FUN_EXPORT PFNGLGETPROGRAMPARAMETERDVNVPROC __glewGetProgramParameterdvNV; +GLEW_FUN_EXPORT PFNGLGETPROGRAMPARAMETERFVNVPROC __glewGetProgramParameterfvNV; +GLEW_FUN_EXPORT PFNGLGETPROGRAMSTRINGNVPROC __glewGetProgramStringNV; +GLEW_FUN_EXPORT PFNGLGETPROGRAMIVNVPROC __glewGetProgramivNV; +GLEW_FUN_EXPORT PFNGLGETTRACKMATRIXIVNVPROC __glewGetTrackMatrixivNV; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVNVPROC __glewGetVertexAttribPointervNV; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVNVPROC __glewGetVertexAttribdvNV; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVNVPROC __glewGetVertexAttribfvNV; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVNVPROC __glewGetVertexAttribivNV; +GLEW_FUN_EXPORT PFNGLISPROGRAMNVPROC __glewIsProgramNV; +GLEW_FUN_EXPORT PFNGLLOADPROGRAMNVPROC __glewLoadProgramNV; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4DNVPROC __glewProgramParameter4dNV; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4DVNVPROC __glewProgramParameter4dvNV; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4FNVPROC __glewProgramParameter4fNV; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4FVNVPROC __glewProgramParameter4fvNV; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERS4DVNVPROC __glewProgramParameters4dvNV; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERS4FVNVPROC __glewProgramParameters4fvNV; +GLEW_FUN_EXPORT PFNGLREQUESTRESIDENTPROGRAMSNVPROC __glewRequestResidentProgramsNV; +GLEW_FUN_EXPORT PFNGLTRACKMATRIXNVPROC __glewTrackMatrixNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DNVPROC __glewVertexAttrib1dNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVNVPROC __glewVertexAttrib1dvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FNVPROC __glewVertexAttrib1fNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVNVPROC __glewVertexAttrib1fvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SNVPROC __glewVertexAttrib1sNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVNVPROC __glewVertexAttrib1svNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DNVPROC __glewVertexAttrib2dNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVNVPROC __glewVertexAttrib2dvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FNVPROC __glewVertexAttrib2fNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVNVPROC __glewVertexAttrib2fvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SNVPROC __glewVertexAttrib2sNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVNVPROC __glewVertexAttrib2svNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DNVPROC __glewVertexAttrib3dNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVNVPROC __glewVertexAttrib3dvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FNVPROC __glewVertexAttrib3fNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVNVPROC __glewVertexAttrib3fvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SNVPROC __glewVertexAttrib3sNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVNVPROC __glewVertexAttrib3svNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DNVPROC __glewVertexAttrib4dNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVNVPROC __glewVertexAttrib4dvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FNVPROC __glewVertexAttrib4fNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVNVPROC __glewVertexAttrib4fvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SNVPROC __glewVertexAttrib4sNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVNVPROC __glewVertexAttrib4svNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBNVPROC __glewVertexAttrib4ubNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVNVPROC __glewVertexAttrib4ubvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERNVPROC __glewVertexAttribPointerNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1DVNVPROC __glewVertexAttribs1dvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1FVNVPROC __glewVertexAttribs1fvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1SVNVPROC __glewVertexAttribs1svNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2DVNVPROC __glewVertexAttribs2dvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2FVNVPROC __glewVertexAttribs2fvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2SVNVPROC __glewVertexAttribs2svNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3DVNVPROC __glewVertexAttribs3dvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3FVNVPROC __glewVertexAttribs3fvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3SVNVPROC __glewVertexAttribs3svNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4DVNVPROC __glewVertexAttribs4dvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4FVNVPROC __glewVertexAttribs4fvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4SVNVPROC __glewVertexAttribs4svNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4UBVNVPROC __glewVertexAttribs4ubvNV; + +GLEW_FUN_EXPORT PFNGLBEGINVIDEOCAPTURENVPROC __glewBeginVideoCaptureNV; +GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC __glewBindVideoCaptureStreamBufferNV; +GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC __glewBindVideoCaptureStreamTextureNV; +GLEW_FUN_EXPORT PFNGLENDVIDEOCAPTURENVPROC __glewEndVideoCaptureNV; +GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMDVNVPROC __glewGetVideoCaptureStreamdvNV; +GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMFVNVPROC __glewGetVideoCaptureStreamfvNV; +GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMIVNVPROC __glewGetVideoCaptureStreamivNV; +GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTUREIVNVPROC __glewGetVideoCaptureivNV; +GLEW_FUN_EXPORT PFNGLVIDEOCAPTURENVPROC __glewVideoCaptureNV; +GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC __glewVideoCaptureStreamParameterdvNV; +GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC __glewVideoCaptureStreamParameterfvNV; +GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC __glewVideoCaptureStreamParameterivNV; + +GLEW_FUN_EXPORT PFNGLDEPTHRANGEARRAYFVNVPROC __glewDepthRangeArrayfvNV; +GLEW_FUN_EXPORT PFNGLDEPTHRANGEINDEXEDFNVPROC __glewDepthRangeIndexedfNV; +GLEW_FUN_EXPORT PFNGLDISABLEINVPROC __glewDisableiNV; +GLEW_FUN_EXPORT PFNGLENABLEINVPROC __glewEnableiNV; +GLEW_FUN_EXPORT PFNGLGETFLOATI_VNVPROC __glewGetFloati_vNV; +GLEW_FUN_EXPORT PFNGLISENABLEDINVPROC __glewIsEnablediNV; +GLEW_FUN_EXPORT PFNGLSCISSORARRAYVNVPROC __glewScissorArrayvNV; +GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDNVPROC __glewScissorIndexedNV; +GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDVNVPROC __glewScissorIndexedvNV; +GLEW_FUN_EXPORT PFNGLVIEWPORTARRAYVNVPROC __glewViewportArrayvNV; +GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFNVPROC __glewViewportIndexedfNV; +GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFVNVPROC __glewViewportIndexedfvNV; + +GLEW_FUN_EXPORT PFNGLVIEWPORTSWIZZLENVPROC __glewViewportSwizzleNV; + +GLEW_FUN_EXPORT PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC __glewEGLImageTargetRenderbufferStorageOES; +GLEW_FUN_EXPORT PFNGLEGLIMAGETARGETTEXTURE2DOESPROC __glewEGLImageTargetTexture2DOES; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEOESPROC __glewBlendEquationSeparateOES; + +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEOESPROC __glewBlendFuncSeparateOES; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONOESPROC __glewBlendEquationOES; + +GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATAOESPROC __glewCopyImageSubDataOES; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIOESPROC __glewBlendEquationSeparateiOES; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIOESPROC __glewBlendEquationiOES; +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIOESPROC __glewBlendFuncSeparateiOES; +GLEW_FUN_EXPORT PFNGLBLENDFUNCIOESPROC __glewBlendFunciOES; +GLEW_FUN_EXPORT PFNGLCOLORMASKIOESPROC __glewColorMaskiOES; +GLEW_FUN_EXPORT PFNGLDISABLEIOESPROC __glewDisableiOES; +GLEW_FUN_EXPORT PFNGLENABLEIOESPROC __glewEnableiOES; +GLEW_FUN_EXPORT PFNGLISENABLEDIOESPROC __glewIsEnablediOES; + +GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFEROESPROC __glewBindFramebufferOES; +GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFEROESPROC __glewBindRenderbufferOES; +GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSOESPROC __glewCheckFramebufferStatusOES; +GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSOESPROC __glewDeleteFramebuffersOES; +GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSOESPROC __glewDeleteRenderbuffersOES; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFEROESPROC __glewFramebufferRenderbufferOES; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DOESPROC __glewFramebufferTexture2DOES; +GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSOESPROC __glewGenFramebuffersOES; +GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSOESPROC __glewGenRenderbuffersOES; +GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPOESPROC __glewGenerateMipmapOES; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC __glewGetFramebufferAttachmentParameterivOES; +GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVOESPROC __glewGetRenderbufferParameterivOES; +GLEW_FUN_EXPORT PFNGLISFRAMEBUFFEROESPROC __glewIsFramebufferOES; +GLEW_FUN_EXPORT PFNGLISRENDERBUFFEROESPROC __glewIsRenderbufferOES; +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEOESPROC __glewRenderbufferStorageOES; + +GLEW_FUN_EXPORT PFNGLGETPROGRAMBINARYOESPROC __glewGetProgramBinaryOES; +GLEW_FUN_EXPORT PFNGLPROGRAMBINARYOESPROC __glewProgramBinaryOES; + +GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVOESPROC __glewGetBufferPointervOES; +GLEW_FUN_EXPORT PFNGLMAPBUFFEROESPROC __glewMapBufferOES; +GLEW_FUN_EXPORT PFNGLUNMAPBUFFEROESPROC __glewUnmapBufferOES; + +GLEW_FUN_EXPORT PFNGLCURRENTPALETTEMATRIXOESPROC __glewCurrentPaletteMatrixOES; +GLEW_FUN_EXPORT PFNGLLOADPALETTEFROMMODELVIEWMATRIXOESPROC __glewLoadPaletteFromModelViewMatrixOES; +GLEW_FUN_EXPORT PFNGLMATRIXINDEXPOINTEROESPROC __glewMatrixIndexPointerOES; +GLEW_FUN_EXPORT PFNGLWEIGHTPOINTEROESPROC __glewWeightPointerOES; + +GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGOESPROC __glewMinSampleShadingOES; + +GLEW_FUN_EXPORT PFNGLCLEARDEPTHFOESPROC __glewClearDepthfOES; +GLEW_FUN_EXPORT PFNGLCLIPPLANEFOESPROC __glewClipPlanefOES; +GLEW_FUN_EXPORT PFNGLDEPTHRANGEFOESPROC __glewDepthRangefOES; +GLEW_FUN_EXPORT PFNGLFRUSTUMFOESPROC __glewFrustumfOES; +GLEW_FUN_EXPORT PFNGLGETCLIPPLANEFOESPROC __glewGetClipPlanefOES; +GLEW_FUN_EXPORT PFNGLORTHOFOESPROC __glewOrthofOES; + +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DOESPROC __glewCompressedTexImage3DOES; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC __glewCompressedTexSubImage3DOES; +GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DOESPROC __glewCopyTexSubImage3DOES; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DOESPROC __glewFramebufferTexture3DOES; +GLEW_FUN_EXPORT PFNGLTEXIMAGE3DOESPROC __glewTexImage3DOES; +GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DOESPROC __glewTexSubImage3DOES; + +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIIVOESPROC __glewGetSamplerParameterIivOES; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIUIVOESPROC __glewGetSamplerParameterIuivOES; +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVOESPROC __glewGetTexParameterIivOES; +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVOESPROC __glewGetTexParameterIuivOES; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIIVOESPROC __glewSamplerParameterIivOES; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIUIVOESPROC __glewSamplerParameterIuivOES; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVOESPROC __glewTexParameterIivOES; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVOESPROC __glewTexParameterIuivOES; + +GLEW_FUN_EXPORT PFNGLTEXBUFFEROESPROC __glewTexBufferOES; +GLEW_FUN_EXPORT PFNGLTEXBUFFERRANGEOESPROC __glewTexBufferRangeOES; + +GLEW_FUN_EXPORT PFNGLGETTEXGENFVOESPROC __glewGetTexGenfvOES; +GLEW_FUN_EXPORT PFNGLGETTEXGENIVOESPROC __glewGetTexGenivOES; +GLEW_FUN_EXPORT PFNGLGETTEXGENXVOESPROC __glewGetTexGenxvOES; +GLEW_FUN_EXPORT PFNGLTEXGENFOESPROC __glewTexGenfOES; +GLEW_FUN_EXPORT PFNGLTEXGENFVOESPROC __glewTexGenfvOES; +GLEW_FUN_EXPORT PFNGLTEXGENIOESPROC __glewTexGeniOES; +GLEW_FUN_EXPORT PFNGLTEXGENIVOESPROC __glewTexGenivOES; +GLEW_FUN_EXPORT PFNGLTEXGENXOESPROC __glewTexGenxOES; +GLEW_FUN_EXPORT PFNGLTEXGENXVOESPROC __glewTexGenxvOES; + +GLEW_FUN_EXPORT PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC __glewTexStorage3DMultisampleOES; + +GLEW_FUN_EXPORT PFNGLTEXTUREVIEWOESPROC __glewTextureViewOES; + +GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYOESPROC __glewBindVertexArrayOES; +GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSOESPROC __glewDeleteVertexArraysOES; +GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSOESPROC __glewGenVertexArraysOES; +GLEW_FUN_EXPORT PFNGLISVERTEXARRAYOESPROC __glewIsVertexArrayOES; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC __glewFramebufferTextureMultiviewOVR; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC __glewNamedFramebufferTextureMultiviewOVR; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC __glewFramebufferTextureMultisampleMultiviewOVR; + +GLEW_FUN_EXPORT PFNGLALPHAFUNCQCOMPROC __glewAlphaFuncQCOM; + +GLEW_FUN_EXPORT PFNGLDISABLEDRIVERCONTROLQCOMPROC __glewDisableDriverControlQCOM; +GLEW_FUN_EXPORT PFNGLENABLEDRIVERCONTROLQCOMPROC __glewEnableDriverControlQCOM; +GLEW_FUN_EXPORT PFNGLGETDRIVERCONTROLSTRINGQCOMPROC __glewGetDriverControlStringQCOM; +GLEW_FUN_EXPORT PFNGLGETDRIVERCONTROLSQCOMPROC __glewGetDriverControlsQCOM; + +GLEW_FUN_EXPORT PFNGLEXTGETBUFFERPOINTERVQCOMPROC __glewExtGetBufferPointervQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETBUFFERSQCOMPROC __glewExtGetBuffersQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETFRAMEBUFFERSQCOMPROC __glewExtGetFramebuffersQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETRENDERBUFFERSQCOMPROC __glewExtGetRenderbuffersQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC __glewExtGetTexLevelParameterivQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETTEXSUBIMAGEQCOMPROC __glewExtGetTexSubImageQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETTEXTURESQCOMPROC __glewExtGetTexturesQCOM; +GLEW_FUN_EXPORT PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC __glewExtTexObjectStateOverrideiQCOM; + +GLEW_FUN_EXPORT PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC __glewExtGetProgramBinarySourceQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETPROGRAMSQCOMPROC __glewExtGetProgramsQCOM; +GLEW_FUN_EXPORT PFNGLEXTGETSHADERSQCOMPROC __glewExtGetShadersQCOM; +GLEW_FUN_EXPORT PFNGLEXTISPROGRAMBINARYQCOMPROC __glewExtIsProgramBinaryQCOM; + +GLEW_FUN_EXPORT PFNGLEXTRAPOLATETEX2DQCOMPROC __glewExtrapolateTex2DQCOM; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC __glewFramebufferFoveationConfigQCOM; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC __glewFramebufferFoveationParametersQCOM; + +GLEW_FUN_EXPORT PFNGLTEXESTIMATEMOTIONQCOMPROC __glewTexEstimateMotionQCOM; +GLEW_FUN_EXPORT PFNGLTEXESTIMATEMOTIONREGIONSQCOMPROC __glewTexEstimateMotionRegionsQCOM; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC __glewFramebufferFetchBarrierQCOM; + +GLEW_FUN_EXPORT PFNGLSHADINGRATEQCOMPROC __glewShadingRateQCOM; + +GLEW_FUN_EXPORT PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC __glewTextureFoveationParametersQCOM; + +GLEW_FUN_EXPORT PFNGLENDTILINGQCOMPROC __glewEndTilingQCOM; +GLEW_FUN_EXPORT PFNGLSTARTTILINGQCOMPROC __glewStartTilingQCOM; + +GLEW_FUN_EXPORT PFNGLALPHAFUNCXPROC __glewAlphaFuncx; +GLEW_FUN_EXPORT PFNGLCLEARCOLORXPROC __glewClearColorx; +GLEW_FUN_EXPORT PFNGLCLEARDEPTHXPROC __glewClearDepthx; +GLEW_FUN_EXPORT PFNGLCOLOR4XPROC __glewColor4x; +GLEW_FUN_EXPORT PFNGLDEPTHRANGEXPROC __glewDepthRangex; +GLEW_FUN_EXPORT PFNGLFOGXPROC __glewFogx; +GLEW_FUN_EXPORT PFNGLFOGXVPROC __glewFogxv; +GLEW_FUN_EXPORT PFNGLFRUSTUMFPROC __glewFrustumf; +GLEW_FUN_EXPORT PFNGLFRUSTUMXPROC __glewFrustumx; +GLEW_FUN_EXPORT PFNGLLIGHTMODELXPROC __glewLightModelx; +GLEW_FUN_EXPORT PFNGLLIGHTMODELXVPROC __glewLightModelxv; +GLEW_FUN_EXPORT PFNGLLIGHTXPROC __glewLightx; +GLEW_FUN_EXPORT PFNGLLIGHTXVPROC __glewLightxv; +GLEW_FUN_EXPORT PFNGLLINEWIDTHXPROC __glewLineWidthx; +GLEW_FUN_EXPORT PFNGLLOADMATRIXXPROC __glewLoadMatrixx; +GLEW_FUN_EXPORT PFNGLMATERIALXPROC __glewMaterialx; +GLEW_FUN_EXPORT PFNGLMATERIALXVPROC __glewMaterialxv; +GLEW_FUN_EXPORT PFNGLMULTMATRIXXPROC __glewMultMatrixx; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4XPROC __glewMultiTexCoord4x; +GLEW_FUN_EXPORT PFNGLNORMAL3XPROC __glewNormal3x; +GLEW_FUN_EXPORT PFNGLORTHOFPROC __glewOrthof; +GLEW_FUN_EXPORT PFNGLORTHOXPROC __glewOrthox; +GLEW_FUN_EXPORT PFNGLPOINTSIZEXPROC __glewPointSizex; +GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETXPROC __glewPolygonOffsetx; +GLEW_FUN_EXPORT PFNGLROTATEXPROC __glewRotatex; +GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEXPROC __glewSampleCoveragex; +GLEW_FUN_EXPORT PFNGLSCALEXPROC __glewScalex; +GLEW_FUN_EXPORT PFNGLTEXENVXPROC __glewTexEnvx; +GLEW_FUN_EXPORT PFNGLTEXENVXVPROC __glewTexEnvxv; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERXPROC __glewTexParameterx; +GLEW_FUN_EXPORT PFNGLTRANSLATEXPROC __glewTranslatex; + +GLEW_FUN_EXPORT PFNGLCLIPPLANEFPROC __glewClipPlanef; +GLEW_FUN_EXPORT PFNGLCLIPPLANEXPROC __glewClipPlanex; +GLEW_FUN_EXPORT PFNGLGETCLIPPLANEFPROC __glewGetClipPlanef; +GLEW_FUN_EXPORT PFNGLGETCLIPPLANEXPROC __glewGetClipPlanex; +GLEW_FUN_EXPORT PFNGLGETFIXEDVPROC __glewGetFixedv; +GLEW_FUN_EXPORT PFNGLGETLIGHTXVPROC __glewGetLightxv; +GLEW_FUN_EXPORT PFNGLGETMATERIALXVPROC __glewGetMaterialxv; +GLEW_FUN_EXPORT PFNGLGETTEXENVXVPROC __glewGetTexEnvxv; +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERXVPROC __glewGetTexParameterxv; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERXPROC __glewPointParameterx; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERXVPROC __glewPointParameterxv; +GLEW_FUN_EXPORT PFNGLPOINTSIZEPOINTEROESPROC __glewPointSizePointerOES; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERXVPROC __glewTexParameterxv; + +GLEW_FUN_EXPORT PFNGLERRORSTRINGREGALPROC __glewErrorStringREGAL; + +GLEW_FUN_EXPORT PFNGLGETEXTENSIONREGALPROC __glewGetExtensionREGAL; +GLEW_FUN_EXPORT PFNGLISSUPPORTEDREGALPROC __glewIsSupportedREGAL; + +GLEW_FUN_EXPORT PFNGLLOGMESSAGECALLBACKREGALPROC __glewLogMessageCallbackREGAL; + +GLEW_FUN_EXPORT PFNGLGETPROCADDRESSREGALPROC __glewGetProcAddressREGAL; + +GLEW_FUN_EXPORT PFNGLDETAILTEXFUNCSGISPROC __glewDetailTexFuncSGIS; +GLEW_FUN_EXPORT PFNGLGETDETAILTEXFUNCSGISPROC __glewGetDetailTexFuncSGIS; + +GLEW_FUN_EXPORT PFNGLFOGFUNCSGISPROC __glewFogFuncSGIS; +GLEW_FUN_EXPORT PFNGLGETFOGFUNCSGISPROC __glewGetFogFuncSGIS; + +GLEW_FUN_EXPORT PFNGLSAMPLEMASKSGISPROC __glewSampleMaskSGIS; +GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNSGISPROC __glewSamplePatternSGIS; + +GLEW_FUN_EXPORT PFNGLINTERLEAVEDTEXTURECOORDSETSSGISPROC __glewInterleavedTextureCoordSetsSGIS; +GLEW_FUN_EXPORT PFNGLSELECTTEXTURECOORDSETSGISPROC __glewSelectTextureCoordSetSGIS; +GLEW_FUN_EXPORT PFNGLSELECTTEXTURESGISPROC __glewSelectTextureSGIS; +GLEW_FUN_EXPORT PFNGLSELECTTEXTURETRANSFORMSGISPROC __glewSelectTextureTransformSGIS; + +GLEW_FUN_EXPORT PFNGLMULTISAMPLESUBRECTPOSSGISPROC __glewMultisampleSubRectPosSGIS; + +GLEW_FUN_EXPORT PFNGLGETSHARPENTEXFUNCSGISPROC __glewGetSharpenTexFuncSGIS; +GLEW_FUN_EXPORT PFNGLSHARPENTEXFUNCSGISPROC __glewSharpenTexFuncSGIS; + +GLEW_FUN_EXPORT PFNGLTEXIMAGE4DSGISPROC __glewTexImage4DSGIS; +GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE4DSGISPROC __glewTexSubImage4DSGIS; + +GLEW_FUN_EXPORT PFNGLGETTEXFILTERFUNCSGISPROC __glewGetTexFilterFuncSGIS; +GLEW_FUN_EXPORT PFNGLTEXFILTERFUNCSGISPROC __glewTexFilterFuncSGIS; + +GLEW_FUN_EXPORT PFNGLASYNCMARKERSGIXPROC __glewAsyncMarkerSGIX; +GLEW_FUN_EXPORT PFNGLDELETEASYNCMARKERSSGIXPROC __glewDeleteAsyncMarkersSGIX; +GLEW_FUN_EXPORT PFNGLFINISHASYNCSGIXPROC __glewFinishAsyncSGIX; +GLEW_FUN_EXPORT PFNGLGENASYNCMARKERSSGIXPROC __glewGenAsyncMarkersSGIX; +GLEW_FUN_EXPORT PFNGLISASYNCMARKERSGIXPROC __glewIsAsyncMarkerSGIX; +GLEW_FUN_EXPORT PFNGLPOLLASYNCSGIXPROC __glewPollAsyncSGIX; + +GLEW_FUN_EXPORT PFNGLADDRESSSPACEPROC __glewAddressSpace; +GLEW_FUN_EXPORT PFNGLDATAPIPEPROC __glewDataPipe; + +GLEW_FUN_EXPORT PFNGLFLUSHRASTERSGIXPROC __glewFlushRasterSGIX; + +GLEW_FUN_EXPORT PFNGLFOGLAYERSSGIXPROC __glewFogLayersSGIX; +GLEW_FUN_EXPORT PFNGLGETFOGLAYERSSGIXPROC __glewGetFogLayersSGIX; + +GLEW_FUN_EXPORT PFNGLTEXTUREFOGSGIXPROC __glewTextureFogSGIX; + +GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALSGIXPROC __glewFragmentColorMaterialSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFSGIXPROC __glewFragmentLightModelfSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVSGIXPROC __glewFragmentLightModelfvSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELISGIXPROC __glewFragmentLightModeliSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVSGIXPROC __glewFragmentLightModelivSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFSGIXPROC __glewFragmentLightfSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVSGIXPROC __glewFragmentLightfvSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTISGIXPROC __glewFragmentLightiSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVSGIXPROC __glewFragmentLightivSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFSGIXPROC __glewFragmentMaterialfSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVSGIXPROC __glewFragmentMaterialfvSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALISGIXPROC __glewFragmentMaterialiSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVSGIXPROC __glewFragmentMaterialivSGIX; +GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVSGIXPROC __glewGetFragmentLightfvSGIX; +GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVSGIXPROC __glewGetFragmentLightivSGIX; +GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVSGIXPROC __glewGetFragmentMaterialfvSGIX; +GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVSGIXPROC __glewGetFragmentMaterialivSGIX; + +GLEW_FUN_EXPORT PFNGLFRAMEZOOMSGIXPROC __glewFrameZoomSGIX; + +GLEW_FUN_EXPORT PFNGLIGLOOINTERFACESGIXPROC __glewIglooInterfaceSGIX; + +GLEW_FUN_EXPORT PFNGLALLOCMPEGPREDICTORSSGIXPROC __glewAllocMPEGPredictorsSGIX; +GLEW_FUN_EXPORT PFNGLDELETEMPEGPREDICTORSSGIXPROC __glewDeleteMPEGPredictorsSGIX; +GLEW_FUN_EXPORT PFNGLGENMPEGPREDICTORSSGIXPROC __glewGenMPEGPredictorsSGIX; +GLEW_FUN_EXPORT PFNGLGETMPEGPARAMETERFVSGIXPROC __glewGetMPEGParameterfvSGIX; +GLEW_FUN_EXPORT PFNGLGETMPEGPARAMETERIVSGIXPROC __glewGetMPEGParameterivSGIX; +GLEW_FUN_EXPORT PFNGLGETMPEGPREDICTORSGIXPROC __glewGetMPEGPredictorSGIX; +GLEW_FUN_EXPORT PFNGLGETMPEGQUANTTABLEUBVPROC __glewGetMPEGQuantTableubv; +GLEW_FUN_EXPORT PFNGLISMPEGPREDICTORSGIXPROC __glewIsMPEGPredictorSGIX; +GLEW_FUN_EXPORT PFNGLMPEGPREDICTORSGIXPROC __glewMPEGPredictorSGIX; +GLEW_FUN_EXPORT PFNGLMPEGQUANTTABLEUBVPROC __glewMPEGQuantTableubv; +GLEW_FUN_EXPORT PFNGLSWAPMPEGPREDICTORSSGIXPROC __glewSwapMPEGPredictorsSGIX; + +GLEW_FUN_EXPORT PFNGLGETNONLINLIGHTFVSGIXPROC __glewGetNonlinLightfvSGIX; +GLEW_FUN_EXPORT PFNGLGETNONLINMATERIALFVSGIXPROC __glewGetNonlinMaterialfvSGIX; +GLEW_FUN_EXPORT PFNGLNONLINLIGHTFVSGIXPROC __glewNonlinLightfvSGIX; +GLEW_FUN_EXPORT PFNGLNONLINMATERIALFVSGIXPROC __glewNonlinMaterialfvSGIX; + +GLEW_FUN_EXPORT PFNGLPIXELTEXGENSGIXPROC __glewPixelTexGenSGIX; + +GLEW_FUN_EXPORT PFNGLDEFORMSGIXPROC __glewDeformSGIX; +GLEW_FUN_EXPORT PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC __glewLoadIdentityDeformationMapSGIX; + +GLEW_FUN_EXPORT PFNGLMESHBREADTHSGIXPROC __glewMeshBreadthSGIX; +GLEW_FUN_EXPORT PFNGLMESHSTRIDESGIXPROC __glewMeshStrideSGIX; + +GLEW_FUN_EXPORT PFNGLREFERENCEPLANESGIXPROC __glewReferencePlaneSGIX; + +GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFSGIXPROC __glewSpriteParameterfSGIX; +GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFVSGIXPROC __glewSpriteParameterfvSGIX; +GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERISGIXPROC __glewSpriteParameteriSGIX; +GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERIVSGIXPROC __glewSpriteParameterivSGIX; + +GLEW_FUN_EXPORT PFNGLTAGSAMPLEBUFFERSGIXPROC __glewTagSampleBufferSGIX; + +GLEW_FUN_EXPORT PFNGLGETVECTOROPERATIONSGIXPROC __glewGetVectorOperationSGIX; +GLEW_FUN_EXPORT PFNGLVECTOROPERATIONSGIXPROC __glewVectorOperationSGIX; + +GLEW_FUN_EXPORT PFNGLAREVERTEXARRAYSRESIDENTSGIXPROC __glewAreVertexArraysResidentSGIX; +GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYSGIXPROC __glewBindVertexArraySGIX; +GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSSGIXPROC __glewDeleteVertexArraysSGIX; +GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSSGIXPROC __glewGenVertexArraysSGIX; +GLEW_FUN_EXPORT PFNGLISVERTEXARRAYSGIXPROC __glewIsVertexArraySGIX; +GLEW_FUN_EXPORT PFNGLPRIORITIZEVERTEXARRAYSSGIXPROC __glewPrioritizeVertexArraysSGIX; + +GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVSGIPROC __glewColorTableParameterfvSGI; +GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVSGIPROC __glewColorTableParameterivSGI; +GLEW_FUN_EXPORT PFNGLCOLORTABLESGIPROC __glewColorTableSGI; +GLEW_FUN_EXPORT PFNGLCOPYCOLORTABLESGIPROC __glewCopyColorTableSGI; +GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVSGIPROC __glewGetColorTableParameterfvSGI; +GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVSGIPROC __glewGetColorTableParameterivSGI; +GLEW_FUN_EXPORT PFNGLGETCOLORTABLESGIPROC __glewGetColorTableSGI; + +GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERFVSGIPROC __glewGetPixelTransformParameterfvSGI; +GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERIVSGIPROC __glewGetPixelTransformParameterivSGI; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFSGIPROC __glewPixelTransformParameterfSGI; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFVSGIPROC __glewPixelTransformParameterfvSGI; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERISGIPROC __glewPixelTransformParameteriSGI; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIVSGIPROC __glewPixelTransformParameterivSGI; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMSGIPROC __glewPixelTransformSGI; + +GLEW_FUN_EXPORT PFNGLFINISHTEXTURESUNXPROC __glewFinishTextureSUNX; + +GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORBSUNPROC __glewGlobalAlphaFactorbSUN; +GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORDSUNPROC __glewGlobalAlphaFactordSUN; +GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORFSUNPROC __glewGlobalAlphaFactorfSUN; +GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORISUNPROC __glewGlobalAlphaFactoriSUN; +GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORSSUNPROC __glewGlobalAlphaFactorsSUN; +GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUBSUNPROC __glewGlobalAlphaFactorubSUN; +GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUISUNPROC __glewGlobalAlphaFactoruiSUN; +GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUSSUNPROC __glewGlobalAlphaFactorusSUN; + +GLEW_FUN_EXPORT PFNGLREADVIDEOPIXELSSUNPROC __glewReadVideoPixelsSUN; + +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEPOINTERSUNPROC __glewReplacementCodePointerSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUBSUNPROC __glewReplacementCodeubSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUBVSUNPROC __glewReplacementCodeubvSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUISUNPROC __glewReplacementCodeuiSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVSUNPROC __glewReplacementCodeuivSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUSSUNPROC __glewReplacementCodeusSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUSVSUNPROC __glewReplacementCodeusvSUN; + +GLEW_FUN_EXPORT PFNGLCOLOR3FVERTEX3FSUNPROC __glewColor3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLCOLOR3FVERTEX3FVSUNPROC __glewColor3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewColor4fNormal3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewColor4fNormal3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX2FSUNPROC __glewColor4ubVertex2fSUN; +GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX2FVSUNPROC __glewColor4ubVertex2fvSUN; +GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX3FSUNPROC __glewColor4ubVertex3fSUN; +GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX3FVSUNPROC __glewColor4ubVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLNORMAL3FVERTEX3FSUNPROC __glewNormal3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLNORMAL3FVERTEX3FVSUNPROC __glewNormal3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC __glewReplacementCodeuiColor3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC __glewReplacementCodeuiColor4ubVertex3fSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC __glewReplacementCodeuiColor4ubVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiNormal3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiNormal3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC __glewReplacementCodeuiVertex3fSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC __glewReplacementCodeuiVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC __glewTexCoord2fColor3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC __glewTexCoord2fColor3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC __glewTexCoord2fColor4ubVertex3fSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC __glewTexCoord2fColor4ubVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fNormal3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fNormal3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FVERTEX3FSUNPROC __glewTexCoord2fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FVERTEX3FVSUNPROC __glewTexCoord2fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fvSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FSUNPROC __glewTexCoord4fVertex4fSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FVSUNPROC __glewTexCoord4fVertex4fvSUN; + +GLEW_FUN_EXPORT PFNGLADDSWAPHINTRECTWINPROC __glewAddSwapHintRectWIN; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_1; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2_1; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_3; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_4; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_5; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_0; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_1; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_0; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_1; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_2; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_3; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_0; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_1; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_2; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_3; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_4; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_5; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_6; +GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_tbuffer; +GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_texture_compression_FXT1; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_blend_minmax_factor; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_compressed_3DC_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_compressed_ATC_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_conservative_depth; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_debug_output; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_depth_clamp_separate; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_draw_buffers_blend; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_framebuffer_multisample_advanced; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_framebuffer_sample_positions; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gcn_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_half_float; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_half_float_fetch; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_int16; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_gpu_shader_int64; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_interleaved_elements; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_multi_draw_indirect; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_name_gen_delete; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_occlusion_query_event; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_performance_monitor; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_pinned_memory; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_program_binary_Z400; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_query_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_sample_positions; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_seamless_cubemap_per_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_atomic_counter_ops; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_ballot; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_explicit_vertex_parameter; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_image_load_store_lod; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_stencil_export; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_stencil_value_export; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_trinary_minmax; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_sparse_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_stencil_operation_extended; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_texture_gather_bias_lod; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_texture_texture4; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_transform_feedback3_lines_triangles; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_transform_feedback4; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_layer; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_tessellator; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_viewport_index; +GLEW_VAR_EXPORT GLboolean __GLEW_ANDROID_extension_pack_es31a; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_depth_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_framebuffer_blit; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_framebuffer_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_instanced_arrays; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_pack_reverse_row_order; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_program_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_compression_dxt1; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_compression_dxt3; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_compression_dxt5; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_texture_usage; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_timer_query; +GLEW_VAR_EXPORT GLboolean __GLEW_ANGLE_translated_shader_source; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_aux_depth_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_client_storage; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_clip_distance; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_color_buffer_packed_float; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_copy_texture_levels; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_element_array; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_fence; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_float_pixels; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_flush_buffer_range; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_framebuffer_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_object_purgeable; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_pixel_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_rgb_422; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_row_bytes; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_specular_vector; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_sync; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_2D_limited_npot; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_format_BGRA8888; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_max_level; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_packed_float; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_range; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_transform_hint; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_object; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_range; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_program_evaluators; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_ycbcr_422; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES2_compatibility; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES3_1_compatibility; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES3_2_compatibility; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES3_compatibility; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_arrays_of_arrays; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_base_instance; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_bindless_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_blend_func_extended; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_buffer_storage; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_cl_event; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_clear_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_clear_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_clip_control; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_color_buffer_float; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compatibility; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compressed_texture_pixel_storage; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compute_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compute_variable_group_size; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_conditional_render_inverted; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_conservative_depth; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_copy_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_copy_image; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_cull_distance; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_debug_output; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_buffer_float; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_derivative_control; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_direct_state_access; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers_blend; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_elements_base_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_indirect; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_instanced; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_enhanced_layouts; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_explicit_attrib_location; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_explicit_uniform_location; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_coord_conventions; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_layer_viewport; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program_shadow; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_shader_interlock; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_no_attachments; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_sRGB; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_geometry_shader4; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_get_program_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_get_texture_sub_image; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gl_spirv; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader5; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader_fp64; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader_int64; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_pixel; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_imaging; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_indirect_parameters; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_instanced_arrays; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_internalformat_query; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_internalformat_query2; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_invalidate_subdata; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_map_buffer_alignment; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_map_buffer_range; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_matrix_palette; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multi_bind; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multi_draw_indirect; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multitexture; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query2; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_parallel_shader_compile; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_pipeline_statistics_query; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_pixel_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_parameters; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_sprite; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_polygon_offset_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_post_depth_coverage; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_program_interface_query; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_provoking_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_query_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robust_buffer_access_behavior; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness_application_isolation; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness_share_group_isolation; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sample_locations; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sample_shading; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sampler_objects; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_seamless_cube_map; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_seamless_cubemap_per_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_separate_shader_objects; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_atomic_counter_ops; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_atomic_counters; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_ballot; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_bit_encoding; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_clock; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_draw_parameters; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_group_vote; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_image_load_store; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_image_size; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_objects; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_precision; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_stencil_export; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_storage_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_subroutine; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_texture_image_samples; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_texture_lod; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_viewport_layer_array; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_100; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_420pack; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_include; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_packing; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow_ambient; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_texture2; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sparse_texture_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_spirv_extensions; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_stencil_texturing; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sync; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_tessellation_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_barrier; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_border_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object_rgb32; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_range; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_bptc; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_rgtc; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map_array; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_add; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_combine; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_crossbar; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_dot3; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_filter_anisotropic; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_filter_minmax; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_float; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_gather; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_mirror_clamp_to_edge; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_mirrored_repeat; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_non_power_of_two; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_query_levels; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_query_lod; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rectangle; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rg; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rgb10_a2ui; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_stencil8; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_storage; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_storage_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_swizzle; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_view; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_timer_query; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback2; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback3; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback_instanced; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback_overflow_query; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transpose_matrix; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_uniform_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_bgra; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_attrib_64bit; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_attrib_binding; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_blend; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_program; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_type_10f_11f_11f_rev; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_type_2_10_10_10_rev; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_viewport_array; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_window_pos; +GLEW_VAR_EXPORT GLboolean __GLEW_ARM_mali_program_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_ARM_mali_shader_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_ARM_rgba8; +GLEW_VAR_EXPORT GLboolean __GLEW_ARM_shader_core_properties; +GLEW_VAR_EXPORT GLboolean __GLEW_ARM_shader_framebuffer_fetch; +GLEW_VAR_EXPORT GLboolean __GLEW_ARM_shader_framebuffer_fetch_depth_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_ARM_texture_unnormalized_coordinates; +GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_point_sprites; +GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_combine3; +GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_route; +GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_vertex_shader_output_point_size; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_draw_buffers; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_element_array; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_envmap_bumpmap; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_fragment_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_map_object_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_meminfo; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_pn_triangles; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_separate_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_shader_texture_lod; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_text_fragment_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_compression_3dc; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_env_combine3; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_float; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_mirror_once; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_array_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_attrib_array_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_streams; +GLEW_VAR_EXPORT GLboolean __GLEW_DMP_program_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_DMP_shader_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_422_pixels; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_Cg_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_EGL_image_array; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_EGL_image_external_wrap_modes; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_EGL_image_storage; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_EGL_image_storage_compression; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_EGL_sync; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_YUV_target; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_abgr; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_base_instance; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bgra; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bindable_uniform; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_color; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_equation_separate; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_func_extended; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_func_separate; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_logic_op; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_minmax; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_subtract; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_buffer_storage; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clear_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_control; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_cull_distance; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_volume_hint; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cmyka; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_buffer_float; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_buffer_half_float; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_subtable; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_compiled_vertex_array; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_compressed_ETC1_RGB8_sub_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_conservative_depth; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_convolution; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_coordinate_frame; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_copy_image; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_copy_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cull_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_debug_label; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_debug_marker; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_depth_bounds_test; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_depth_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_direct_state_access; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_discard_framebuffer; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_disjoint_timer_query; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers2; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers_indexed; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_elements_base_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_instanced; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_range_elements; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_transform_feedback; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_external_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_float_blend; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fog_coord; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_frag_depth; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fragment_lighting; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fragment_shading_rate; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fragment_shading_rate_attachment; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fragment_shading_rate_primitive; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_blit; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_blit_layers; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample_blit_scaled; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_sRGB; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_point_size; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_shader4; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_program_parameters; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_shader4; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_shader5; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_histogram; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_array_formats; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_func; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_material; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_instanced_arrays; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_light_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_map_buffer_range; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_memory_object; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_memory_object_fd; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_memory_object_win32; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_mesh_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_misc_attribute; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multi_draw_arrays; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multi_draw_indirect; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiple_textures; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisample_compatibility; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisampled_render_to_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisampled_render_to_texture2; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiview_draw_buffers; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiview_tessellation_geometry_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiview_texture_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multiview_timer_query; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_occlusion_query_boolean; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_depth_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_float; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_pixels; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_paletted_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform_color_table; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_point_parameters; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_polygon_offset; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_polygon_offset_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_post_depth_coverage; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_primitive_bounding_box; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_protected_textures; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_provoking_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pvrtc_sRGB; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_raster_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_read_format_bgra; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_render_snorm; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_rescale_normal; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_robustness; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sRGB; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sRGB_write_control; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_scene_marker; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_secondary_color; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_semaphore; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_semaphore_fd; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_semaphore_win32; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_depth_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_shader_objects; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_specular_color; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_clock; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_framebuffer_fetch; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_framebuffer_fetch_non_coherent; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_group_vote; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_image_load_formatted; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_image_load_store; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_implicit_conversions; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_integer_mix; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_io_blocks; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_non_constant_global_initializers; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_pixel_local_storage; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_pixel_local_storage2; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_realtime_clock; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_samples_identical; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_texture_lod; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_texture_samples; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shadow_funcs; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shadow_samplers; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shared_texture_palette; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sparse_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_sparse_texture2; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_static_vertex_array; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_clear_tag; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_two_side; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_wrap; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_subtexture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_tessellation_point_size; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_tessellation_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture3D; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_array; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_border_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_astc_decode_mode; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_bptc; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_dxt1; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_latc; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_rgtc; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_s3tc; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_s3tc_srgb; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_cube_map; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_cube_map_array; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_edge_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_add; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_combine; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_dot3; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_filter_anisotropic; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_filter_minmax; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_format_BGRA8888; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_format_sRGB_override; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_integer; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_lod_bias; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_mirror_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_mirror_clamp_to_edge; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_norm16; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_object; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_perturb_normal; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_query_lod; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_rectangle; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_rg; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_R8; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_RG8; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_decode; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_shadow_lod; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_shared_exponent; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_snorm; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_storage; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_storage_compression; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_swizzle; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_type_2_10_10_10_REV; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_view; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_timer_query; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_transform_feedback; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_unpack_subimage; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array_bgra; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array_setXXX; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_attrib_64bit; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_weighting; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_win32_keyed_mutex; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_window_rectangles; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_x11_sync_object; +GLEW_VAR_EXPORT GLboolean __GLEW_FJ_shader_binary_GCCSO; +GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_frame_terminator; +GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_string_marker; +GLEW_VAR_EXPORT GLboolean __GLEW_HP_convolution_border_modes; +GLEW_VAR_EXPORT GLboolean __GLEW_HP_image_transform; +GLEW_VAR_EXPORT GLboolean __GLEW_HP_occlusion_test; +GLEW_VAR_EXPORT GLboolean __GLEW_HP_texture_lighting; +GLEW_VAR_EXPORT GLboolean __GLEW_HUAWEI_program_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_HUAWEI_shader_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_IBM_cull_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_IBM_multimode_draw_arrays; +GLEW_VAR_EXPORT GLboolean __GLEW_IBM_rasterpos_clip; +GLEW_VAR_EXPORT GLboolean __GLEW_IBM_static_data; +GLEW_VAR_EXPORT GLboolean __GLEW_IBM_texture_mirrored_repeat; +GLEW_VAR_EXPORT GLboolean __GLEW_IBM_vertex_array_lists; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_bindless_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_framebuffer_downsample; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_multisampled_render_to_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_program_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_pvric_end_to_end_signature; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_read_format; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_shader_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_texture_compression_pvrtc; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_texture_compression_pvrtc2; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_texture_env_enhanced_fixed_function; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_texture_filter_cubic; +GLEW_VAR_EXPORT GLboolean __GLEW_IMG_tile_region_protection; +GLEW_VAR_EXPORT GLboolean __GLEW_INGR_color_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_INGR_interlace_read; +GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_blackhole_render; +GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_conservative_rasterization; +GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_fragment_shader_ordering; +GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_framebuffer_CMAA; +GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_map_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_parallel_arrays; +GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_performance_query; +GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_shader_integer_functions2; +GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_texture_scissor; +GLEW_VAR_EXPORT GLboolean __GLEW_KHR_blend_equation_advanced; +GLEW_VAR_EXPORT GLboolean __GLEW_KHR_blend_equation_advanced_coherent; +GLEW_VAR_EXPORT GLboolean __GLEW_KHR_context_flush_control; +GLEW_VAR_EXPORT GLboolean __GLEW_KHR_debug; +GLEW_VAR_EXPORT GLboolean __GLEW_KHR_no_error; +GLEW_VAR_EXPORT GLboolean __GLEW_KHR_parallel_shader_compile; +GLEW_VAR_EXPORT GLboolean __GLEW_KHR_robust_buffer_access_behavior; +GLEW_VAR_EXPORT GLboolean __GLEW_KHR_robustness; +GLEW_VAR_EXPORT GLboolean __GLEW_KHR_shader_subgroup; +GLEW_VAR_EXPORT GLboolean __GLEW_KHR_texture_compression_astc_hdr; +GLEW_VAR_EXPORT GLboolean __GLEW_KHR_texture_compression_astc_ldr; +GLEW_VAR_EXPORT GLboolean __GLEW_KHR_texture_compression_astc_sliced_3d; +GLEW_VAR_EXPORT GLboolean __GLEW_KTX_buffer_region; +GLEW_VAR_EXPORT GLboolean __GLEW_MESAX_texture_stack; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_bgra; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_framebuffer_flip_x; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_framebuffer_flip_y; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_framebuffer_swap_xy; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_pack_invert; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_program_binary_formats; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_resize_buffers; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_shader_integer_functions; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_texture_const_bandwidth; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_tile_raster_order; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_window_pos; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_ycbcr_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_NVX_blend_equation_advanced_multi_draw_buffers; +GLEW_VAR_EXPORT GLboolean __GLEW_NVX_conditional_render; +GLEW_VAR_EXPORT GLboolean __GLEW_NVX_gpu_memory_info; +GLEW_VAR_EXPORT GLboolean __GLEW_NVX_gpu_multicast2; +GLEW_VAR_EXPORT GLboolean __GLEW_NVX_linked_gpu_multicast; +GLEW_VAR_EXPORT GLboolean __GLEW_NVX_progress_fence; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_3dvision_settings; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_EGL_stream_consumer_external; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_alpha_to_coverage_dither_control; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_bgr; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_multi_draw_indirect; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_multi_draw_indirect_count; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_bindless_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_equation_advanced; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_equation_advanced_coherent; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_minmax_factor; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_square; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_clip_space_w_scaling; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_command_list; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_compute_program5; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_compute_shader_derivatives; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_conditional_render; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster_dilate; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster_pre_snap; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster_pre_snap_triangles; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_conservative_raster_underestimation; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_depth_to_color; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_image; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_deep_texture3D; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_buffer_float; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_nonlinear; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_range_unclamped; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_buffers; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_instanced; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_draw_vulkan_image; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_evaluators; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_explicit_attrib_location; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_explicit_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fbo_color_attachments; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fence; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fill_rectangle; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_float_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fog_distance; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_coverage_to_color; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program4; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program_option; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_shader_barycentric; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_shader_interlock; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_blit; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_mixed_samples; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_multisample_coverage; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_generate_mipmap_sRGB; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_program4; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_shader4; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_shader_passthrough; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_multicast; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program4; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program5; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program5_mem_extended; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program_fp64; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_shader5; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_half_float; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_image_formats; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_instanced_arrays; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_internalformat_sample_query; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_light_max_exponent; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_memory_attachment; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_memory_object_sparse; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_mesh_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_coverage; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_filter_hint; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_non_square_matrices; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_occlusion_query; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_pack_subimage; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_depth_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_float; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_float_linear; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_path_rendering; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_path_rendering_shared_edge; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_pixel_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_pixel_data_range; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_platform_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_point_sprite; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_polygon_mode; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_present_video; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_primitive_restart; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_primitive_shading_rate; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_query_resource_tag; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_buffer_front; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_depth; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_depth_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_read_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_representative_fragment_test; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_robustness_video_memory_purge; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_sRGB_formats; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_sample_locations; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_sample_mask_override_coverage; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_scissor_exclusive; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_counters; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_float; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_float64; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_fp16_vector; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_atomic_int64; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_buffer_load; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_noperspective_interpolation; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_storage_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_subgroup_partitioned; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_texture_footprint; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_thread_group; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_thread_shuffle; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shading_rate_image; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shadow_samplers_array; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shadow_samplers_cube; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_stereo_view_rendering; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_tessellation_program5; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_emboss; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_reflection; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_array; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_barrier; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_border_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_latc; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_s3tc; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_s3tc_update; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_vtc; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_env_combine4; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_expand_normal; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_npot_2D_mipmap; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_rectangle; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_rectangle_compressed; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader3; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_timeline_semaphore; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_uniform_buffer_std430_layout; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_uniform_buffer_unified_memory; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vdpau_interop; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vdpau_interop2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_attrib_integer_64bit; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_buffer_unified_memory; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program1_1; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2_option; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program3; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program4; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_video_capture; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_viewport_array; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_viewport_array2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_viewport_swizzle; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_EGL_image; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_EGL_image_external; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_EGL_image_external_essl3; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_blend_equation_separate; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_blend_func_separate; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_blend_subtract; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_byte_coordinates; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_compressed_ETC1_RGB8_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_compressed_paletted_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_copy_image; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_depth24; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_depth32; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_depth_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_depth_texture_cube_map; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_draw_buffers_indexed; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_draw_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_element_index_uint; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_extended_matrix_palette; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_fbo_render_mipmap; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_fragment_precision_high; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_framebuffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_geometry_point_size; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_geometry_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_get_program_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_gpu_shader5; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_mapbuffer; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_matrix_get; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_matrix_palette; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_packed_depth_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_point_size_array; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_point_sprite; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_read_format; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_required_internalformat; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_rgb8_rgba8; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_sample_shading; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_sample_variables; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_shader_image_atomic; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_shader_io_blocks; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_shader_multisample_interpolation; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_single_precision; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_standard_derivatives; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_stencil1; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_stencil4; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_stencil8; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_surfaceless_context; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_tessellation_point_size; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_tessellation_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_3D; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_border_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_compression_astc; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_cube_map; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_cube_map_array; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_env_crossbar; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_mirrored_repeat; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_npot; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_stencil8; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_storage_multisample_2d_array; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_texture_view; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_vertex_array_object; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_vertex_half_float; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_vertex_type_10_10_10_2; +GLEW_VAR_EXPORT GLboolean __GLEW_OML_interlace; +GLEW_VAR_EXPORT GLboolean __GLEW_OML_resample; +GLEW_VAR_EXPORT GLboolean __GLEW_OML_subsample; +GLEW_VAR_EXPORT GLboolean __GLEW_OVR_multiview; +GLEW_VAR_EXPORT GLboolean __GLEW_OVR_multiview2; +GLEW_VAR_EXPORT GLboolean __GLEW_OVR_multiview_multisampled_render_to_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_PGI_misc_hints; +GLEW_VAR_EXPORT GLboolean __GLEW_PGI_vertex_hints; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_YUV_texture_gather; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_alpha_test; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_binning_control; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_driver_control; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_extended_get; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_extended_get2; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_frame_extrapolation; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_framebuffer_foveated; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_motion_estimation; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_perfmon_global_mode; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_render_sRGB_R8_RG8; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_render_shared_exponent; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_shader_framebuffer_fetch_noncoherent; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_shader_framebuffer_fetch_rate; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_shading_rate; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_texture_foveated; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_texture_foveated2; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_texture_foveated_subsampled_layout; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_texture_lod_bias; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_tiled_rendering; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_writeonly_rendering; +GLEW_VAR_EXPORT GLboolean __GLEW_QCOM_ycbcr_degamma; +GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_ES1_0_compatibility; +GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_ES1_1_compatibility; +GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_enable; +GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_error_string; +GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_extension_query; +GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_log; +GLEW_VAR_EXPORT GLboolean __GLEW_REGAL_proc_address; +GLEW_VAR_EXPORT GLboolean __GLEW_REND_screen_coordinates; +GLEW_VAR_EXPORT GLboolean __GLEW_S3_s3tc; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_clip_band_hint; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_color_range; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_detail_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_fog_function; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_generate_mipmap; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_line_texgen; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_multitexture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_pixel_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_point_line_texgen; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_shared_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_sharpen_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture4D; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_border_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_edge_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_filter4; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_lod; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_select; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_histogram; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_pixel; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_bali_g_instruments; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_bali_r_instruments; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_bali_timer_instruments; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_alpha_minmax; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_cadd; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_cmultiply; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_calligraphic_fragment; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_clipmap; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_color_matrix_accuracy; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_color_table_index_mode; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_complex_polar; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_convolution_accuracy; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_cube_map; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_cylinder_texgen; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_datapipe; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_decimation; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_depth_pass_instrument; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_depth_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_dvc; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_flush_raster; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_blend; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_factor_to_alpha; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_layers; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_offset; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_patchy; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_scale; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragment_lighting_space; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragment_specular_lighting; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragments_instrument; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_framezoom; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_icc_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_igloo_interface; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_image_compression; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_impact_pixel_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_instrument_error; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_interlace; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ir_instrument1; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_line_quality_hint; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_list_priority; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_mpeg1; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_mpeg2; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_nonlinear_lighting_pervertex; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_nurbs_eval; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_occlusion_instrument; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_packed_6bytes; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture_bits; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture_lod; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_tiles; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_polynomial_ffd; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_quad_mesh; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_reference_plane; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_resample; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_scalebias_hint; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow_ambient; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_slim; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_spotlight_cutoff; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_sprite; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_subdiv_patch; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_subsample; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_tag_sample_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_add_env; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_coordinate_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_lod_bias; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_mipmap_anisotropic; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_multi_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_phase; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_range; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_scale_bias; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_supersample; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vector_ops; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_array_object; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip_hint; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcb; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcb_subsample; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcba; +GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_matrix; +GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_table; +GLEW_VAR_EXPORT GLboolean __GLEW_SGI_complex; +GLEW_VAR_EXPORT GLboolean __GLEW_SGI_complex_type; +GLEW_VAR_EXPORT GLboolean __GLEW_SGI_fft; +GLEW_VAR_EXPORT GLboolean __GLEW_SGI_texture_color_table; +GLEW_VAR_EXPORT GLboolean __GLEW_SUNX_constant_data; +GLEW_VAR_EXPORT GLboolean __GLEW_SUN_convolution_border_modes; +GLEW_VAR_EXPORT GLboolean __GLEW_SUN_global_alpha; +GLEW_VAR_EXPORT GLboolean __GLEW_SUN_mesh_array; +GLEW_VAR_EXPORT GLboolean __GLEW_SUN_read_video_pixels; +GLEW_VAR_EXPORT GLboolean __GLEW_SUN_slice_accum; +GLEW_VAR_EXPORT GLboolean __GLEW_SUN_triangle_list; +GLEW_VAR_EXPORT GLboolean __GLEW_SUN_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_VIV_shader_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_WIN_phong_shading; +GLEW_VAR_EXPORT GLboolean __GLEW_WIN_scene_markerXXX; +GLEW_VAR_EXPORT GLboolean __GLEW_WIN_specular_fog; +GLEW_VAR_EXPORT GLboolean __GLEW_WIN_swap_hint; +/* ------------------------------------------------------------------------- */ + +/* error codes */ +#define GLEW_OK 0 +#define GLEW_NO_ERROR 0 +#define GLEW_ERROR_NO_GL_VERSION 1 /* missing GL version */ +#define GLEW_ERROR_GL_VERSION_10_ONLY 2 /* Need at least OpenGL 1.1 */ +#define GLEW_ERROR_GLX_VERSION_11_ONLY 3 /* Need at least GLX 1.2 */ +#define GLEW_ERROR_NO_GLX_DISPLAY 4 /* Need GLX display for GLX support */ + +/* string codes */ +#define GLEW_VERSION 1 +#define GLEW_VERSION_MAJOR 2 +#define GLEW_VERSION_MINOR 3 +#define GLEW_VERSION_MICRO 4 + +/* ------------------------------------------------------------------------- */ + +/* GLEW version info */ + +/* +VERSION 2.3.1 +VERSION_MAJOR 2 +VERSION_MINOR 3 +VERSION_MICRO 1 +*/ + +/* API */ +GLEWAPI GLenum GLEWAPIENTRY glewInit (void); +GLEWAPI GLenum GLEWAPIENTRY glewContextInit (void); +GLEWAPI GLboolean GLEWAPIENTRY glewIsSupported (const char *name); +#define glewIsExtensionSupported(x) glewIsSupported(x) + +#ifndef GLEW_GET_VAR +#define GLEW_GET_VAR(x) (*(const GLboolean*)&x) +#endif + +#ifndef GLEW_GET_FUN +#define GLEW_GET_FUN(x) x +#endif + +GLEWAPI GLboolean glewExperimental; +GLEWAPI GLboolean GLEWAPIENTRY glewGetExtension (const char *name); +GLEWAPI const GLubyte * GLEWAPIENTRY glewGetErrorString (GLenum error); +GLEWAPI const GLubyte * GLEWAPIENTRY glewGetString (GLenum name); + +#ifdef __cplusplus +} +#endif + +#ifdef GLEW_APIENTRY_DEFINED +#undef GLEW_APIENTRY_DEFINED +#undef APIENTRY +#endif + +#ifdef GLEW_CALLBACK_DEFINED +#undef GLEW_CALLBACK_DEFINED +#undef CALLBACK +#endif + +#ifdef GLEW_WINGDIAPI_DEFINED +#undef GLEW_WINGDIAPI_DEFINED +#undef WINGDIAPI +#endif + +#undef GLAPI +/* #undef GLEWAPI */ + +#endif /* __glew_h__ */ diff --git a/lib/windows/include/GL/glxew.h b/lib/windows/include/GL/glxew.h new file mode 100644 index 0000000..b7b5719 --- /dev/null +++ b/lib/windows/include/GL/glxew.h @@ -0,0 +1,1843 @@ +/* +** The OpenGL Extension Wrangler Library +** Copyright (C) 2008-2025, Nigel Stewart +** Copyright (C) 2002-2008, Milan Ikits +** Copyright (C) 2002-2008, Marcelo E. Magallon +** Copyright (C) 2002, Lev Povalahev +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are met: +** +** * Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** * The name of the author may be used to endorse or promote products +** derived from this software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +** THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* + * Mesa 3-D graphics library + * Version: 7.0 + * + * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* +** Copyright (c) 2007 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +#ifndef __glxew_h__ +#define __glxew_h__ +#define __GLXEW_H__ + +#ifdef __glxext_h_ +#error glxext.h included before glxew.h +#endif + +#if defined(GLX_H) || defined(__GLX_glx_h__) || defined(__glx_h__) +#error glx.h included before glxew.h +#endif + +#define __glxext_h_ + +#define GLX_H +#define __GLX_glx_h__ +#define __glx_h__ + +#include +#include +#include + +#ifndef GLEW_INCLUDE +# include +#else +# include GLEW_INCLUDE +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* ---------------------------- GLX_VERSION_1_0 --------------------------- */ + +#ifndef GLX_VERSION_1_0 +#define GLX_VERSION_1_0 1 + +#define GLX_USE_GL 1 +#define GLX_BUFFER_SIZE 2 +#define GLX_LEVEL 3 +#define GLX_RGBA 4 +#define GLX_DOUBLEBUFFER 5 +#define GLX_STEREO 6 +#define GLX_AUX_BUFFERS 7 +#define GLX_RED_SIZE 8 +#define GLX_GREEN_SIZE 9 +#define GLX_BLUE_SIZE 10 +#define GLX_ALPHA_SIZE 11 +#define GLX_DEPTH_SIZE 12 +#define GLX_STENCIL_SIZE 13 +#define GLX_ACCUM_RED_SIZE 14 +#define GLX_ACCUM_GREEN_SIZE 15 +#define GLX_ACCUM_BLUE_SIZE 16 +#define GLX_ACCUM_ALPHA_SIZE 17 +#define GLX_BAD_SCREEN 1 +#define GLX_BAD_ATTRIBUTE 2 +#define GLX_NO_EXTENSION 3 +#define GLX_BAD_VISUAL 4 +#define GLX_BAD_CONTEXT 5 +#define GLX_BAD_VALUE 6 +#define GLX_BAD_ENUM 7 + +typedef XID GLXDrawable; +typedef XID GLXPixmap; +#ifdef __sun +typedef struct __glXContextRec *GLXContext; +#else +typedef struct __GLXcontextRec *GLXContext; +#endif + +typedef unsigned int GLXVideoDeviceNV; + +extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase); +extern Bool glXQueryVersion (Display *dpy, int *major, int *minor); +extern int glXGetConfig (Display *dpy, XVisualInfo *vis, int attrib, int *value); +extern XVisualInfo* glXChooseVisual (Display *dpy, int screen, int *attribList); +extern GLXPixmap glXCreateGLXPixmap (Display *dpy, XVisualInfo *vis, Pixmap pixmap); +extern void glXDestroyGLXPixmap (Display *dpy, GLXPixmap pix); +extern GLXContext glXCreateContext (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct); +extern void glXDestroyContext (Display *dpy, GLXContext ctx); +extern Bool glXIsDirect (Display *dpy, GLXContext ctx); +extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLulong mask); +extern Bool glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx); +extern GLXContext glXGetCurrentContext (void); +extern GLXDrawable glXGetCurrentDrawable (void); +extern void glXWaitGL (void); +extern void glXWaitX (void); +extern void glXSwapBuffers (Display *dpy, GLXDrawable drawable); +extern void glXUseXFont (Font font, int first, int count, int listBase); + +#define GLXEW_VERSION_1_0 GLXEW_GET_VAR(__GLXEW_VERSION_1_0) + +#endif /* GLX_VERSION_1_0 */ + +/* ---------------------------- GLX_VERSION_1_1 --------------------------- */ + +#ifndef GLX_VERSION_1_1 +#define GLX_VERSION_1_1 + +#define GLX_VENDOR 0x1 +#define GLX_VERSION 0x2 +#define GLX_EXTENSIONS 0x3 + +extern const char* glXQueryExtensionsString (Display *dpy, int screen); +extern const char* glXGetClientString (Display *dpy, int name); +extern const char* glXQueryServerString (Display *dpy, int screen, int name); + +#define GLXEW_VERSION_1_1 GLXEW_GET_VAR(__GLXEW_VERSION_1_1) + +#endif /* GLX_VERSION_1_1 */ + +/* ---------------------------- GLX_VERSION_1_2 ---------------------------- */ + +#ifndef GLX_VERSION_1_2 +#define GLX_VERSION_1_2 1 + +typedef Display* ( * PFNGLXGETCURRENTDISPLAYPROC) (void); + +#define glXGetCurrentDisplay GLXEW_GET_FUN(__glewXGetCurrentDisplay) + +#define GLXEW_VERSION_1_2 GLXEW_GET_VAR(__GLXEW_VERSION_1_2) + +#endif /* GLX_VERSION_1_2 */ + +/* ---------------------------- GLX_VERSION_1_3 ---------------------------- */ + +#ifndef GLX_VERSION_1_3 +#define GLX_VERSION_1_3 1 + +#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 +#define GLX_RGBA_BIT 0x00000001 +#define GLX_WINDOW_BIT 0x00000001 +#define GLX_COLOR_INDEX_BIT 0x00000002 +#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 +#define GLX_PIXMAP_BIT 0x00000002 +#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 +#define GLX_PBUFFER_BIT 0x00000004 +#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 +#define GLX_AUX_BUFFERS_BIT 0x00000010 +#define GLX_CONFIG_CAVEAT 0x20 +#define GLX_DEPTH_BUFFER_BIT 0x00000020 +#define GLX_X_VISUAL_TYPE 0x22 +#define GLX_TRANSPARENT_TYPE 0x23 +#define GLX_TRANSPARENT_INDEX_VALUE 0x24 +#define GLX_TRANSPARENT_RED_VALUE 0x25 +#define GLX_TRANSPARENT_GREEN_VALUE 0x26 +#define GLX_TRANSPARENT_BLUE_VALUE 0x27 +#define GLX_TRANSPARENT_ALPHA_VALUE 0x28 +#define GLX_STENCIL_BUFFER_BIT 0x00000040 +#define GLX_ACCUM_BUFFER_BIT 0x00000080 +#define GLX_NONE 0x8000 +#define GLX_SLOW_CONFIG 0x8001 +#define GLX_TRUE_COLOR 0x8002 +#define GLX_DIRECT_COLOR 0x8003 +#define GLX_PSEUDO_COLOR 0x8004 +#define GLX_STATIC_COLOR 0x8005 +#define GLX_GRAY_SCALE 0x8006 +#define GLX_STATIC_GRAY 0x8007 +#define GLX_TRANSPARENT_RGB 0x8008 +#define GLX_TRANSPARENT_INDEX 0x8009 +#define GLX_VISUAL_ID 0x800B +#define GLX_SCREEN 0x800C +#define GLX_NON_CONFORMANT_CONFIG 0x800D +#define GLX_DRAWABLE_TYPE 0x8010 +#define GLX_RENDER_TYPE 0x8011 +#define GLX_X_RENDERABLE 0x8012 +#define GLX_FBCONFIG_ID 0x8013 +#define GLX_RGBA_TYPE 0x8014 +#define GLX_COLOR_INDEX_TYPE 0x8015 +#define GLX_MAX_PBUFFER_WIDTH 0x8016 +#define GLX_MAX_PBUFFER_HEIGHT 0x8017 +#define GLX_MAX_PBUFFER_PIXELS 0x8018 +#define GLX_PRESERVED_CONTENTS 0x801B +#define GLX_LARGEST_PBUFFER 0x801C +#define GLX_WIDTH 0x801D +#define GLX_HEIGHT 0x801E +#define GLX_EVENT_MASK 0x801F +#define GLX_DAMAGED 0x8020 +#define GLX_SAVED 0x8021 +#define GLX_WINDOW 0x8022 +#define GLX_PBUFFER 0x8023 +#define GLX_PBUFFER_HEIGHT 0x8040 +#define GLX_PBUFFER_WIDTH 0x8041 +#define GLX_PBUFFER_CLOBBER_MASK 0x08000000 +#define GLX_DONT_CARE 0xFFFFFFFF + +typedef XID GLXFBConfigID; +typedef XID GLXPbuffer; +typedef XID GLXWindow; +typedef struct __GLXFBConfigRec *GLXFBConfig; + +typedef struct { + int event_type; + int draw_type; + unsigned long serial; + Bool send_event; + Display *display; + GLXDrawable drawable; + unsigned int buffer_mask; + unsigned int aux_buffer; + int x, y; + int width, height; + int count; +} GLXPbufferClobberEvent; +typedef union __GLXEvent { + GLXPbufferClobberEvent glxpbufferclobber; + long pad[24]; +} GLXEvent; + +typedef GLXFBConfig* ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); +typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); +typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); +typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); +typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); +typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); +typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); +typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); +typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void); +typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); +typedef GLXFBConfig* ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); +typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); +typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); +typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx); +typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); +typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); +typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); + +#define glXChooseFBConfig GLXEW_GET_FUN(__glewXChooseFBConfig) +#define glXCreateNewContext GLXEW_GET_FUN(__glewXCreateNewContext) +#define glXCreatePbuffer GLXEW_GET_FUN(__glewXCreatePbuffer) +#define glXCreatePixmap GLXEW_GET_FUN(__glewXCreatePixmap) +#define glXCreateWindow GLXEW_GET_FUN(__glewXCreateWindow) +#define glXDestroyPbuffer GLXEW_GET_FUN(__glewXDestroyPbuffer) +#define glXDestroyPixmap GLXEW_GET_FUN(__glewXDestroyPixmap) +#define glXDestroyWindow GLXEW_GET_FUN(__glewXDestroyWindow) +#define glXGetCurrentReadDrawable GLXEW_GET_FUN(__glewXGetCurrentReadDrawable) +#define glXGetFBConfigAttrib GLXEW_GET_FUN(__glewXGetFBConfigAttrib) +#define glXGetFBConfigs GLXEW_GET_FUN(__glewXGetFBConfigs) +#define glXGetSelectedEvent GLXEW_GET_FUN(__glewXGetSelectedEvent) +#define glXGetVisualFromFBConfig GLXEW_GET_FUN(__glewXGetVisualFromFBConfig) +#define glXMakeContextCurrent GLXEW_GET_FUN(__glewXMakeContextCurrent) +#define glXQueryContext GLXEW_GET_FUN(__glewXQueryContext) +#define glXQueryDrawable GLXEW_GET_FUN(__glewXQueryDrawable) +#define glXSelectEvent GLXEW_GET_FUN(__glewXSelectEvent) + +#define GLXEW_VERSION_1_3 GLXEW_GET_VAR(__GLXEW_VERSION_1_3) + +#endif /* GLX_VERSION_1_3 */ + +/* ---------------------------- GLX_VERSION_1_4 ---------------------------- */ + +#ifndef GLX_VERSION_1_4 +#define GLX_VERSION_1_4 1 + +#define GLX_SAMPLE_BUFFERS 100000 +#define GLX_SAMPLES 100001 + +extern void ( * glXGetProcAddress (const GLubyte *procName)) (void); + +#define GLXEW_VERSION_1_4 GLXEW_GET_VAR(__GLXEW_VERSION_1_4) + +#endif /* GLX_VERSION_1_4 */ + +/* -------------------------- GLX_3DFX_multisample ------------------------- */ + +#ifndef GLX_3DFX_multisample +#define GLX_3DFX_multisample 1 + +#define GLX_SAMPLE_BUFFERS_3DFX 0x8050 +#define GLX_SAMPLES_3DFX 0x8051 + +#define GLXEW_3DFX_multisample GLXEW_GET_VAR(__GLXEW_3DFX_multisample) + +#endif /* GLX_3DFX_multisample */ + +/* ------------------------ GLX_AMD_gpu_association ------------------------ */ + +#ifndef GLX_AMD_gpu_association +#define GLX_AMD_gpu_association 1 + +#define GLX_GPU_VENDOR_AMD 0x1F00 +#define GLX_GPU_RENDERER_STRING_AMD 0x1F01 +#define GLX_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 +#define GLX_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 +#define GLX_GPU_RAM_AMD 0x21A3 +#define GLX_GPU_CLOCK_AMD 0x21A4 +#define GLX_GPU_NUM_PIPES_AMD 0x21A5 +#define GLX_GPU_NUM_SIMD_AMD 0x21A6 +#define GLX_GPU_NUM_RB_AMD 0x21A7 +#define GLX_GPU_NUM_SPI_AMD 0x21A8 + +typedef void ( * PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC) (GLXContext dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef GLXContext ( * PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC) (unsigned int id, GLXContext share_list); +typedef GLXContext ( * PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (unsigned int id, GLXContext share_context, const int* attribList); +typedef Bool ( * PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC) (GLXContext ctx); +typedef unsigned int ( * PFNGLXGETCONTEXTGPUIDAMDPROC) (GLXContext ctx); +typedef GLXContext ( * PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void); +typedef unsigned int ( * PFNGLXGETGPUIDSAMDPROC) (unsigned int maxCount, unsigned int* ids); +typedef int ( * PFNGLXGETGPUINFOAMDPROC) (unsigned int id, int property, GLenum dataType, unsigned int size, void* data); +typedef Bool ( * PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (GLXContext ctx); + +#define glXBlitContextFramebufferAMD GLXEW_GET_FUN(__glewXBlitContextFramebufferAMD) +#define glXCreateAssociatedContextAMD GLXEW_GET_FUN(__glewXCreateAssociatedContextAMD) +#define glXCreateAssociatedContextAttribsAMD GLXEW_GET_FUN(__glewXCreateAssociatedContextAttribsAMD) +#define glXDeleteAssociatedContextAMD GLXEW_GET_FUN(__glewXDeleteAssociatedContextAMD) +#define glXGetContextGPUIDAMD GLXEW_GET_FUN(__glewXGetContextGPUIDAMD) +#define glXGetCurrentAssociatedContextAMD GLXEW_GET_FUN(__glewXGetCurrentAssociatedContextAMD) +#define glXGetGPUIDsAMD GLXEW_GET_FUN(__glewXGetGPUIDsAMD) +#define glXGetGPUInfoAMD GLXEW_GET_FUN(__glewXGetGPUInfoAMD) +#define glXMakeAssociatedContextCurrentAMD GLXEW_GET_FUN(__glewXMakeAssociatedContextCurrentAMD) + +#define GLXEW_AMD_gpu_association GLXEW_GET_VAR(__GLXEW_AMD_gpu_association) + +#endif /* GLX_AMD_gpu_association */ + +/* --------------------- GLX_ARB_context_flush_control --------------------- */ + +#ifndef GLX_ARB_context_flush_control +#define GLX_ARB_context_flush_control 1 + +#define GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0 +#define GLX_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097 +#define GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098 + +#define GLXEW_ARB_context_flush_control GLXEW_GET_VAR(__GLXEW_ARB_context_flush_control) + +#endif /* GLX_ARB_context_flush_control */ + +/* ------------------------- GLX_ARB_create_context ------------------------ */ + +#ifndef GLX_ARB_create_context +#define GLX_ARB_create_context 1 + +#define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001 +#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002 +#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 +#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 +#define GLX_CONTEXT_FLAGS_ARB 0x2094 + +typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int* attrib_list); + +#define glXCreateContextAttribsARB GLXEW_GET_FUN(__glewXCreateContextAttribsARB) + +#define GLXEW_ARB_create_context GLXEW_GET_VAR(__GLXEW_ARB_create_context) + +#endif /* GLX_ARB_create_context */ + +/* -------------------- GLX_ARB_create_context_no_error -------------------- */ + +#ifndef GLX_ARB_create_context_no_error +#define GLX_ARB_create_context_no_error 1 + +#define GLX_CONTEXT_OPENGL_NO_ERROR_ARB 0x31B3 + +#define GLXEW_ARB_create_context_no_error GLXEW_GET_VAR(__GLXEW_ARB_create_context_no_error) + +#endif /* GLX_ARB_create_context_no_error */ + +/* --------------------- GLX_ARB_create_context_profile -------------------- */ + +#ifndef GLX_ARB_create_context_profile +#define GLX_ARB_create_context_profile 1 + +#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 +#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 +#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126 + +#define GLXEW_ARB_create_context_profile GLXEW_GET_VAR(__GLXEW_ARB_create_context_profile) + +#endif /* GLX_ARB_create_context_profile */ + +/* ------------------- GLX_ARB_create_context_robustness ------------------- */ + +#ifndef GLX_ARB_create_context_robustness +#define GLX_ARB_create_context_robustness 1 + +#define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 +#define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252 +#define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 +#define GLX_NO_RESET_NOTIFICATION_ARB 0x8261 + +#define GLXEW_ARB_create_context_robustness GLXEW_GET_VAR(__GLXEW_ARB_create_context_robustness) + +#endif /* GLX_ARB_create_context_robustness */ + +/* ------------------------- GLX_ARB_fbconfig_float ------------------------ */ + +#ifndef GLX_ARB_fbconfig_float +#define GLX_ARB_fbconfig_float 1 + +#define GLX_RGBA_FLOAT_BIT_ARB 0x00000004 +#define GLX_RGBA_FLOAT_TYPE_ARB 0x20B9 + +#define GLXEW_ARB_fbconfig_float GLXEW_GET_VAR(__GLXEW_ARB_fbconfig_float) + +#endif /* GLX_ARB_fbconfig_float */ + +/* ------------------------ GLX_ARB_framebuffer_sRGB ----------------------- */ + +#ifndef GLX_ARB_framebuffer_sRGB +#define GLX_ARB_framebuffer_sRGB 1 + +#define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2 + +#define GLXEW_ARB_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_ARB_framebuffer_sRGB) + +#endif /* GLX_ARB_framebuffer_sRGB */ + +/* ------------------------ GLX_ARB_get_proc_address ----------------------- */ + +#ifndef GLX_ARB_get_proc_address +#define GLX_ARB_get_proc_address 1 + +extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void); + +#define GLXEW_ARB_get_proc_address GLXEW_GET_VAR(__GLXEW_ARB_get_proc_address) + +#endif /* GLX_ARB_get_proc_address */ + +/* -------------------------- GLX_ARB_multisample -------------------------- */ + +#ifndef GLX_ARB_multisample +#define GLX_ARB_multisample 1 + +#define GLX_SAMPLE_BUFFERS_ARB 100000 +#define GLX_SAMPLES_ARB 100001 + +#define GLXEW_ARB_multisample GLXEW_GET_VAR(__GLXEW_ARB_multisample) + +#endif /* GLX_ARB_multisample */ + +/* ---------------- GLX_ARB_robustness_application_isolation --------------- */ + +#ifndef GLX_ARB_robustness_application_isolation +#define GLX_ARB_robustness_application_isolation 1 + +#define GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008 + +#define GLXEW_ARB_robustness_application_isolation GLXEW_GET_VAR(__GLXEW_ARB_robustness_application_isolation) + +#endif /* GLX_ARB_robustness_application_isolation */ + +/* ---------------- GLX_ARB_robustness_share_group_isolation --------------- */ + +#ifndef GLX_ARB_robustness_share_group_isolation +#define GLX_ARB_robustness_share_group_isolation 1 + +#define GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008 + +#define GLXEW_ARB_robustness_share_group_isolation GLXEW_GET_VAR(__GLXEW_ARB_robustness_share_group_isolation) + +#endif /* GLX_ARB_robustness_share_group_isolation */ + +/* ---------------------- GLX_ARB_vertex_buffer_object --------------------- */ + +#ifndef GLX_ARB_vertex_buffer_object +#define GLX_ARB_vertex_buffer_object 1 + +#define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095 + +#define GLXEW_ARB_vertex_buffer_object GLXEW_GET_VAR(__GLXEW_ARB_vertex_buffer_object) + +#endif /* GLX_ARB_vertex_buffer_object */ + +/* ----------------------- GLX_ATI_pixel_format_float ---------------------- */ + +#ifndef GLX_ATI_pixel_format_float +#define GLX_ATI_pixel_format_float 1 + +#define GLX_RGBA_FLOAT_ATI_BIT 0x00000100 + +#define GLXEW_ATI_pixel_format_float GLXEW_GET_VAR(__GLXEW_ATI_pixel_format_float) + +#endif /* GLX_ATI_pixel_format_float */ + +/* ------------------------- GLX_ATI_render_texture ------------------------ */ + +#ifndef GLX_ATI_render_texture +#define GLX_ATI_render_texture 1 + +#define GLX_BIND_TO_TEXTURE_RGB_ATI 0x9800 +#define GLX_BIND_TO_TEXTURE_RGBA_ATI 0x9801 +#define GLX_TEXTURE_FORMAT_ATI 0x9802 +#define GLX_TEXTURE_TARGET_ATI 0x9803 +#define GLX_MIPMAP_TEXTURE_ATI 0x9804 +#define GLX_TEXTURE_RGB_ATI 0x9805 +#define GLX_TEXTURE_RGBA_ATI 0x9806 +#define GLX_NO_TEXTURE_ATI 0x9807 +#define GLX_TEXTURE_CUBE_MAP_ATI 0x9808 +#define GLX_TEXTURE_1D_ATI 0x9809 +#define GLX_TEXTURE_2D_ATI 0x980A +#define GLX_MIPMAP_LEVEL_ATI 0x980B +#define GLX_CUBE_MAP_FACE_ATI 0x980C +#define GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980D +#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980E +#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980F +#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810 +#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811 +#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812 +#define GLX_FRONT_LEFT_ATI 0x9813 +#define GLX_FRONT_RIGHT_ATI 0x9814 +#define GLX_BACK_LEFT_ATI 0x9815 +#define GLX_BACK_RIGHT_ATI 0x9816 +#define GLX_AUX0_ATI 0x9817 +#define GLX_AUX1_ATI 0x9818 +#define GLX_AUX2_ATI 0x9819 +#define GLX_AUX3_ATI 0x981A +#define GLX_AUX4_ATI 0x981B +#define GLX_AUX5_ATI 0x981C +#define GLX_AUX6_ATI 0x981D +#define GLX_AUX7_ATI 0x981E +#define GLX_AUX8_ATI 0x981F +#define GLX_AUX9_ATI 0x9820 +#define GLX_BIND_TO_TEXTURE_LUMINANCE_ATI 0x9821 +#define GLX_BIND_TO_TEXTURE_INTENSITY_ATI 0x9822 + +typedef void ( * PFNGLXBINDTEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer); +typedef void ( * PFNGLXDRAWABLEATTRIBATIPROC) (Display *dpy, GLXDrawable draw, const int *attrib_list); +typedef void ( * PFNGLXRELEASETEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer); + +#define glXBindTexImageATI GLXEW_GET_FUN(__glewXBindTexImageATI) +#define glXDrawableAttribATI GLXEW_GET_FUN(__glewXDrawableAttribATI) +#define glXReleaseTexImageATI GLXEW_GET_FUN(__glewXReleaseTexImageATI) + +#define GLXEW_ATI_render_texture GLXEW_GET_VAR(__GLXEW_ATI_render_texture) + +#endif /* GLX_ATI_render_texture */ + +/* --------------------------- GLX_EXT_buffer_age -------------------------- */ + +#ifndef GLX_EXT_buffer_age +#define GLX_EXT_buffer_age 1 + +#define GLX_BACK_BUFFER_AGE_EXT 0x20F4 + +#define GLXEW_EXT_buffer_age GLXEW_GET_VAR(__GLXEW_EXT_buffer_age) + +#endif /* GLX_EXT_buffer_age */ + +/* ------------------------ GLX_EXT_context_priority ----------------------- */ + +#ifndef GLX_EXT_context_priority +#define GLX_EXT_context_priority 1 + +#define GLX_CONTEXT_PRIORITY_LEVEL_EXT 0x3100 +#define GLX_CONTEXT_PRIORITY_HIGH_EXT 0x3101 +#define GLX_CONTEXT_PRIORITY_MEDIUM_EXT 0x3102 +#define GLX_CONTEXT_PRIORITY_LOW_EXT 0x3103 + +#define GLXEW_EXT_context_priority GLXEW_GET_VAR(__GLXEW_EXT_context_priority) + +#endif /* GLX_EXT_context_priority */ + +/* ------------------- GLX_EXT_create_context_es2_profile ------------------ */ + +#ifndef GLX_EXT_create_context_es2_profile +#define GLX_EXT_create_context_es2_profile 1 + +#define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 + +#define GLXEW_EXT_create_context_es2_profile GLXEW_GET_VAR(__GLXEW_EXT_create_context_es2_profile) + +#endif /* GLX_EXT_create_context_es2_profile */ + +/* ------------------- GLX_EXT_create_context_es_profile ------------------- */ + +#ifndef GLX_EXT_create_context_es_profile +#define GLX_EXT_create_context_es_profile 1 + +#define GLX_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004 + +#define GLXEW_EXT_create_context_es_profile GLXEW_GET_VAR(__GLXEW_EXT_create_context_es_profile) + +#endif /* GLX_EXT_create_context_es_profile */ + +/* --------------------- GLX_EXT_fbconfig_packed_float --------------------- */ + +#ifndef GLX_EXT_fbconfig_packed_float +#define GLX_EXT_fbconfig_packed_float 1 + +#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008 +#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1 + +#define GLXEW_EXT_fbconfig_packed_float GLXEW_GET_VAR(__GLXEW_EXT_fbconfig_packed_float) + +#endif /* GLX_EXT_fbconfig_packed_float */ + +/* ------------------------ GLX_EXT_framebuffer_sRGB ----------------------- */ + +#ifndef GLX_EXT_framebuffer_sRGB +#define GLX_EXT_framebuffer_sRGB 1 + +#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2 + +#define GLXEW_EXT_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_EXT_framebuffer_sRGB) + +#endif /* GLX_EXT_framebuffer_sRGB */ + +/* ----------------------- GLX_EXT_get_drawable_type ----------------------- */ + +#ifndef GLX_EXT_get_drawable_type +#define GLX_EXT_get_drawable_type 1 + +#define GLX_DRAWABLE_TYPE 0x8010 + +#define GLXEW_EXT_get_drawable_type GLXEW_GET_VAR(__GLXEW_EXT_get_drawable_type) + +#endif /* GLX_EXT_get_drawable_type */ + +/* ------------------------- GLX_EXT_import_context ------------------------ */ + +#ifndef GLX_EXT_import_context +#define GLX_EXT_import_context 1 + +#define GLX_SHARE_CONTEXT_EXT 0x800A +#define GLX_VISUAL_ID_EXT 0x800B +#define GLX_SCREEN_EXT 0x800C + +typedef XID GLXContextID; + +typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display* dpy, GLXContext context); +typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context); +typedef Display* ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void); +typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display* dpy, GLXContextID contextID); +typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context, int attribute, int* value); + +#define glXFreeContextEXT GLXEW_GET_FUN(__glewXFreeContextEXT) +#define glXGetContextIDEXT GLXEW_GET_FUN(__glewXGetContextIDEXT) +#define glXGetCurrentDisplayEXT GLXEW_GET_FUN(__glewXGetCurrentDisplayEXT) +#define glXImportContextEXT GLXEW_GET_FUN(__glewXImportContextEXT) +#define glXQueryContextInfoEXT GLXEW_GET_FUN(__glewXQueryContextInfoEXT) + +#define GLXEW_EXT_import_context GLXEW_GET_VAR(__GLXEW_EXT_import_context) + +#endif /* GLX_EXT_import_context */ + +/* ---------------------------- GLX_EXT_libglvnd --------------------------- */ + +#ifndef GLX_EXT_libglvnd +#define GLX_EXT_libglvnd 1 + +#define GLX_VENDOR_NAMES_EXT 0x20F6 + +#define GLXEW_EXT_libglvnd GLXEW_GET_VAR(__GLXEW_EXT_libglvnd) + +#endif /* GLX_EXT_libglvnd */ + +/* ----------------------- GLX_EXT_no_config_context ----------------------- */ + +#ifndef GLX_EXT_no_config_context +#define GLX_EXT_no_config_context 1 + +#define GLXEW_EXT_no_config_context GLXEW_GET_VAR(__GLXEW_EXT_no_config_context) + +#endif /* GLX_EXT_no_config_context */ + +/* -------------------------- GLX_EXT_scene_marker ------------------------- */ + +#ifndef GLX_EXT_scene_marker +#define GLX_EXT_scene_marker 1 + +#define GLXEW_EXT_scene_marker GLXEW_GET_VAR(__GLXEW_EXT_scene_marker) + +#endif /* GLX_EXT_scene_marker */ + +/* -------------------------- GLX_EXT_stereo_tree -------------------------- */ + +#ifndef GLX_EXT_stereo_tree +#define GLX_EXT_stereo_tree 1 + +#define GLX_STEREO_NOTIFY_EXT 0x00000000 +#define GLX_STEREO_NOTIFY_MASK_EXT 0x00000001 +#define GLX_STEREO_TREE_EXT 0x20F5 + +#define GLXEW_EXT_stereo_tree GLXEW_GET_VAR(__GLXEW_EXT_stereo_tree) + +#endif /* GLX_EXT_stereo_tree */ + +/* -------------------------- GLX_EXT_swap_control ------------------------- */ + +#ifndef GLX_EXT_swap_control +#define GLX_EXT_swap_control 1 + +#define GLX_SWAP_INTERVAL_EXT 0x20F1 +#define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2 + +typedef void ( * PFNGLXSWAPINTERVALEXTPROC) (Display* dpy, GLXDrawable drawable, int interval); + +#define glXSwapIntervalEXT GLXEW_GET_FUN(__glewXSwapIntervalEXT) + +#define GLXEW_EXT_swap_control GLXEW_GET_VAR(__GLXEW_EXT_swap_control) + +#endif /* GLX_EXT_swap_control */ + +/* ----------------------- GLX_EXT_swap_control_tear ----------------------- */ + +#ifndef GLX_EXT_swap_control_tear +#define GLX_EXT_swap_control_tear 1 + +#define GLX_LATE_SWAPS_TEAR_EXT 0x20F3 + +#define GLXEW_EXT_swap_control_tear GLXEW_GET_VAR(__GLXEW_EXT_swap_control_tear) + +#endif /* GLX_EXT_swap_control_tear */ + +/* ---------------------- GLX_EXT_texture_from_pixmap ---------------------- */ + +#ifndef GLX_EXT_texture_from_pixmap +#define GLX_EXT_texture_from_pixmap 1 + +#define GLX_TEXTURE_1D_BIT_EXT 0x00000001 +#define GLX_TEXTURE_2D_BIT_EXT 0x00000002 +#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 +#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 +#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 +#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 +#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 +#define GLX_Y_INVERTED_EXT 0x20D4 +#define GLX_TEXTURE_FORMAT_EXT 0x20D5 +#define GLX_TEXTURE_TARGET_EXT 0x20D6 +#define GLX_MIPMAP_TEXTURE_EXT 0x20D7 +#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 +#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 +#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA +#define GLX_TEXTURE_1D_EXT 0x20DB +#define GLX_TEXTURE_2D_EXT 0x20DC +#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD +#define GLX_FRONT_EXT 0x20DE +#define GLX_FRONT_LEFT_EXT 0x20DE +#define GLX_FRONT_RIGHT_EXT 0x20DF +#define GLX_BACK_EXT 0x20E0 +#define GLX_BACK_LEFT_EXT 0x20E0 +#define GLX_BACK_RIGHT_EXT 0x20E1 +#define GLX_AUX0_EXT 0x20E2 +#define GLX_AUX1_EXT 0x20E3 +#define GLX_AUX2_EXT 0x20E4 +#define GLX_AUX3_EXT 0x20E5 +#define GLX_AUX4_EXT 0x20E6 +#define GLX_AUX5_EXT 0x20E7 +#define GLX_AUX6_EXT 0x20E8 +#define GLX_AUX7_EXT 0x20E9 +#define GLX_AUX8_EXT 0x20EA +#define GLX_AUX9_EXT 0x20EB + +typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display* dpy, GLXDrawable drawable, int buffer, const int* attrib_list); +typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display* dpy, GLXDrawable drawable, int buffer); + +#define glXBindTexImageEXT GLXEW_GET_FUN(__glewXBindTexImageEXT) +#define glXReleaseTexImageEXT GLXEW_GET_FUN(__glewXReleaseTexImageEXT) + +#define GLXEW_EXT_texture_from_pixmap GLXEW_GET_VAR(__GLXEW_EXT_texture_from_pixmap) + +#endif /* GLX_EXT_texture_from_pixmap */ + +/* -------------------------- GLX_EXT_visual_info -------------------------- */ + +#ifndef GLX_EXT_visual_info +#define GLX_EXT_visual_info 1 + +#define GLX_X_VISUAL_TYPE_EXT 0x22 +#define GLX_TRANSPARENT_TYPE_EXT 0x23 +#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24 +#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25 +#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26 +#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27 +#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28 +#define GLX_NONE_EXT 0x8000 +#define GLX_TRUE_COLOR_EXT 0x8002 +#define GLX_DIRECT_COLOR_EXT 0x8003 +#define GLX_PSEUDO_COLOR_EXT 0x8004 +#define GLX_STATIC_COLOR_EXT 0x8005 +#define GLX_GRAY_SCALE_EXT 0x8006 +#define GLX_STATIC_GRAY_EXT 0x8007 +#define GLX_TRANSPARENT_RGB_EXT 0x8008 +#define GLX_TRANSPARENT_INDEX_EXT 0x8009 + +#define GLXEW_EXT_visual_info GLXEW_GET_VAR(__GLXEW_EXT_visual_info) + +#endif /* GLX_EXT_visual_info */ + +/* ------------------------- GLX_EXT_visual_rating ------------------------- */ + +#ifndef GLX_EXT_visual_rating +#define GLX_EXT_visual_rating 1 + +#define GLX_VISUAL_CAVEAT_EXT 0x20 +#define GLX_SLOW_VISUAL_EXT 0x8001 +#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D + +#define GLXEW_EXT_visual_rating GLXEW_GET_VAR(__GLXEW_EXT_visual_rating) + +#endif /* GLX_EXT_visual_rating */ + +/* -------------------------- GLX_INTEL_swap_event ------------------------- */ + +#ifndef GLX_INTEL_swap_event +#define GLX_INTEL_swap_event 1 + +#define GLX_EXCHANGE_COMPLETE_INTEL 0x8180 +#define GLX_COPY_COMPLETE_INTEL 0x8181 +#define GLX_FLIP_COMPLETE_INTEL 0x8182 +#define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x04000000 + +#define GLXEW_INTEL_swap_event GLXEW_GET_VAR(__GLXEW_INTEL_swap_event) + +#endif /* GLX_INTEL_swap_event */ + +/* -------------------------- GLX_MESA_agp_offset -------------------------- */ + +#ifndef GLX_MESA_agp_offset +#define GLX_MESA_agp_offset 1 + +typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void* pointer); + +#define glXGetAGPOffsetMESA GLXEW_GET_FUN(__glewXGetAGPOffsetMESA) + +#define GLXEW_MESA_agp_offset GLXEW_GET_VAR(__GLXEW_MESA_agp_offset) + +#endif /* GLX_MESA_agp_offset */ + +/* ------------------------ GLX_MESA_copy_sub_buffer ----------------------- */ + +#ifndef GLX_MESA_copy_sub_buffer +#define GLX_MESA_copy_sub_buffer 1 + +typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display* dpy, GLXDrawable drawable, int x, int y, int width, int height); + +#define glXCopySubBufferMESA GLXEW_GET_FUN(__glewXCopySubBufferMESA) + +#define GLXEW_MESA_copy_sub_buffer GLXEW_GET_VAR(__GLXEW_MESA_copy_sub_buffer) + +#endif /* GLX_MESA_copy_sub_buffer */ + +/* ------------------------ GLX_MESA_pixmap_colormap ----------------------- */ + +#ifndef GLX_MESA_pixmap_colormap +#define GLX_MESA_pixmap_colormap 1 + +typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display* dpy, XVisualInfo* visual, Pixmap pixmap, Colormap cmap); + +#define glXCreateGLXPixmapMESA GLXEW_GET_FUN(__glewXCreateGLXPixmapMESA) + +#define GLXEW_MESA_pixmap_colormap GLXEW_GET_VAR(__GLXEW_MESA_pixmap_colormap) + +#endif /* GLX_MESA_pixmap_colormap */ + +/* ------------------------ GLX_MESA_query_renderer ------------------------ */ + +#ifndef GLX_MESA_query_renderer +#define GLX_MESA_query_renderer 1 + +#define GLX_RENDERER_VENDOR_ID_MESA 0x8183 +#define GLX_RENDERER_DEVICE_ID_MESA 0x8184 +#define GLX_RENDERER_VERSION_MESA 0x8185 +#define GLX_RENDERER_ACCELERATED_MESA 0x8186 +#define GLX_RENDERER_VIDEO_MEMORY_MESA 0x8187 +#define GLX_RENDERER_UNIFIED_MEMORY_ARCHITECTURE_MESA 0x8188 +#define GLX_RENDERER_PREFERRED_PROFILE_MESA 0x8189 +#define GLX_RENDERER_OPENGL_CORE_PROFILE_VERSION_MESA 0x818A +#define GLX_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_MESA 0x818B +#define GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA 0x818C +#define GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA 0x818D + +typedef Bool ( * PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC) (int attribute, unsigned int* value); +typedef const char* ( * PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC) (int attribute); +typedef Bool ( * PFNGLXQUERYRENDERERINTEGERMESAPROC) (Display* dpy, int screen, int renderer, int attribute, unsigned int* value); +typedef const char* ( * PFNGLXQUERYRENDERERSTRINGMESAPROC) (Display* dpy, int screen, int renderer, int attribute); + +#define glXQueryCurrentRendererIntegerMESA GLXEW_GET_FUN(__glewXQueryCurrentRendererIntegerMESA) +#define glXQueryCurrentRendererStringMESA GLXEW_GET_FUN(__glewXQueryCurrentRendererStringMESA) +#define glXQueryRendererIntegerMESA GLXEW_GET_FUN(__glewXQueryRendererIntegerMESA) +#define glXQueryRendererStringMESA GLXEW_GET_FUN(__glewXQueryRendererStringMESA) + +#define GLXEW_MESA_query_renderer GLXEW_GET_VAR(__GLXEW_MESA_query_renderer) + +#endif /* GLX_MESA_query_renderer */ + +/* ------------------------ GLX_MESA_release_buffers ----------------------- */ + +#ifndef GLX_MESA_release_buffers +#define GLX_MESA_release_buffers 1 + +typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display* dpy, GLXDrawable drawable); + +#define glXReleaseBuffersMESA GLXEW_GET_FUN(__glewXReleaseBuffersMESA) + +#define GLXEW_MESA_release_buffers GLXEW_GET_VAR(__GLXEW_MESA_release_buffers) + +#endif /* GLX_MESA_release_buffers */ + +/* ------------------------- GLX_MESA_set_3dfx_mode ------------------------ */ + +#ifndef GLX_MESA_set_3dfx_mode +#define GLX_MESA_set_3dfx_mode 1 + +#define GLX_3DFX_WINDOW_MODE_MESA 0x1 +#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 + +typedef GLboolean ( * PFNGLXSET3DFXMODEMESAPROC) (GLint mode); + +#define glXSet3DfxModeMESA GLXEW_GET_FUN(__glewXSet3DfxModeMESA) + +#define GLXEW_MESA_set_3dfx_mode GLXEW_GET_VAR(__GLXEW_MESA_set_3dfx_mode) + +#endif /* GLX_MESA_set_3dfx_mode */ + +/* ------------------------- GLX_MESA_swap_control ------------------------- */ + +#ifndef GLX_MESA_swap_control +#define GLX_MESA_swap_control 1 + +typedef int ( * PFNGLXGETSWAPINTERVALMESAPROC) (void); +typedef int ( * PFNGLXSWAPINTERVALMESAPROC) (unsigned int interval); + +#define glXGetSwapIntervalMESA GLXEW_GET_FUN(__glewXGetSwapIntervalMESA) +#define glXSwapIntervalMESA GLXEW_GET_FUN(__glewXSwapIntervalMESA) + +#define GLXEW_MESA_swap_control GLXEW_GET_VAR(__GLXEW_MESA_swap_control) + +#endif /* GLX_MESA_swap_control */ + +/* --------------------------- GLX_NV_copy_buffer -------------------------- */ + +#ifndef GLX_NV_copy_buffer +#define GLX_NV_copy_buffer 1 + +typedef void ( * PFNGLXCOPYBUFFERSUBDATANVPROC) (Display* dpy, GLXContext readCtx, GLXContext writeCtx, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +typedef void ( * PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC) (Display* dpy, GLXContext readCtx, GLXContext writeCtx, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); + +#define glXCopyBufferSubDataNV GLXEW_GET_FUN(__glewXCopyBufferSubDataNV) +#define glXNamedCopyBufferSubDataNV GLXEW_GET_FUN(__glewXNamedCopyBufferSubDataNV) + +#define GLXEW_NV_copy_buffer GLXEW_GET_VAR(__GLXEW_NV_copy_buffer) + +#endif /* GLX_NV_copy_buffer */ + +/* --------------------------- GLX_NV_copy_image --------------------------- */ + +#ifndef GLX_NV_copy_image +#define GLX_NV_copy_image 1 + +typedef void ( * PFNGLXCOPYIMAGESUBDATANVPROC) (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); + +#define glXCopyImageSubDataNV GLXEW_GET_FUN(__glewXCopyImageSubDataNV) + +#define GLXEW_NV_copy_image GLXEW_GET_VAR(__GLXEW_NV_copy_image) + +#endif /* GLX_NV_copy_image */ + +/* ------------------------ GLX_NV_delay_before_swap ----------------------- */ + +#ifndef GLX_NV_delay_before_swap +#define GLX_NV_delay_before_swap 1 + +typedef Bool ( * PFNGLXDELAYBEFORESWAPNVPROC) (Display* dpy, GLXDrawable drawable, GLfloat seconds); + +#define glXDelayBeforeSwapNV GLXEW_GET_FUN(__glewXDelayBeforeSwapNV) + +#define GLXEW_NV_delay_before_swap GLXEW_GET_VAR(__GLXEW_NV_delay_before_swap) + +#endif /* GLX_NV_delay_before_swap */ + +/* -------------------------- GLX_NV_float_buffer -------------------------- */ + +#ifndef GLX_NV_float_buffer +#define GLX_NV_float_buffer 1 + +#define GLX_FLOAT_COMPONENTS_NV 0x20B0 + +#define GLXEW_NV_float_buffer GLXEW_GET_VAR(__GLXEW_NV_float_buffer) + +#endif /* GLX_NV_float_buffer */ + +/* ------------------------ GLX_NV_multigpu_context ------------------------ */ + +#ifndef GLX_NV_multigpu_context +#define GLX_NV_multigpu_context 1 + +#define GLX_CONTEXT_MULTIGPU_ATTRIB_NV 0x20AA +#define GLX_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB +#define GLX_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC +#define GLX_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD +#define GLX_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE + +#define GLXEW_NV_multigpu_context GLXEW_GET_VAR(__GLXEW_NV_multigpu_context) + +#endif /* GLX_NV_multigpu_context */ + +/* ---------------------- GLX_NV_multisample_coverage ---------------------- */ + +#ifndef GLX_NV_multisample_coverage +#define GLX_NV_multisample_coverage 1 + +#define GLX_COLOR_SAMPLES_NV 0x20B3 +#define GLX_COVERAGE_SAMPLES_NV 100001 + +#define GLXEW_NV_multisample_coverage GLXEW_GET_VAR(__GLXEW_NV_multisample_coverage) + +#endif /* GLX_NV_multisample_coverage */ + +/* -------------------------- GLX_NV_present_video ------------------------- */ + +#ifndef GLX_NV_present_video +#define GLX_NV_present_video 1 + +#define GLX_NUM_VIDEO_SLOTS_NV 0x20F0 + +typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display* dpy, unsigned int video_slot, unsigned int video_device, const int* attrib_list); +typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display* dpy, int screen, int* nelements); + +#define glXBindVideoDeviceNV GLXEW_GET_FUN(__glewXBindVideoDeviceNV) +#define glXEnumerateVideoDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoDevicesNV) + +#define GLXEW_NV_present_video GLXEW_GET_VAR(__GLXEW_NV_present_video) + +#endif /* GLX_NV_present_video */ + +/* ------------------ GLX_NV_robustness_video_memory_purge ----------------- */ + +#ifndef GLX_NV_robustness_video_memory_purge +#define GLX_NV_robustness_video_memory_purge 1 + +#define GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x20F7 + +#define GLXEW_NV_robustness_video_memory_purge GLXEW_GET_VAR(__GLXEW_NV_robustness_video_memory_purge) + +#endif /* GLX_NV_robustness_video_memory_purge */ + +/* --------------------------- GLX_NV_swap_group --------------------------- */ + +#ifndef GLX_NV_swap_group +#define GLX_NV_swap_group 1 + +typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display* dpy, GLuint group, GLuint barrier); +typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint group); +typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display* dpy, int screen, GLuint* count); +typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display* dpy, int screen, GLuint* maxGroups, GLuint* maxBarriers); +typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint* group, GLuint* barrier); +typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display* dpy, int screen); + +#define glXBindSwapBarrierNV GLXEW_GET_FUN(__glewXBindSwapBarrierNV) +#define glXJoinSwapGroupNV GLXEW_GET_FUN(__glewXJoinSwapGroupNV) +#define glXQueryFrameCountNV GLXEW_GET_FUN(__glewXQueryFrameCountNV) +#define glXQueryMaxSwapGroupsNV GLXEW_GET_FUN(__glewXQueryMaxSwapGroupsNV) +#define glXQuerySwapGroupNV GLXEW_GET_FUN(__glewXQuerySwapGroupNV) +#define glXResetFrameCountNV GLXEW_GET_FUN(__glewXResetFrameCountNV) + +#define GLXEW_NV_swap_group GLXEW_GET_VAR(__GLXEW_NV_swap_group) + +#endif /* GLX_NV_swap_group */ + +/* ----------------------- GLX_NV_vertex_array_range ----------------------- */ + +#ifndef GLX_NV_vertex_array_range +#define GLX_NV_vertex_array_range 1 + +typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority); +typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *pointer); + +#define glXAllocateMemoryNV GLXEW_GET_FUN(__glewXAllocateMemoryNV) +#define glXFreeMemoryNV GLXEW_GET_FUN(__glewXFreeMemoryNV) + +#define GLXEW_NV_vertex_array_range GLXEW_GET_VAR(__GLXEW_NV_vertex_array_range) + +#endif /* GLX_NV_vertex_array_range */ + +/* -------------------------- GLX_NV_video_capture ------------------------- */ + +#ifndef GLX_NV_video_capture +#define GLX_NV_video_capture 1 + +#define GLX_DEVICE_ID_NV 0x20CD +#define GLX_UNIQUE_ID_NV 0x20CE +#define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF + +typedef XID GLXVideoCaptureDeviceNV; + +typedef int ( * PFNGLXBINDVIDEOCAPTUREDEVICENVPROC) (Display* dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device); +typedef GLXVideoCaptureDeviceNV* ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display* dpy, int screen, int* nelements); +typedef void ( * PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device); +typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device, int attribute, int* value); +typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device); + +#define glXBindVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXBindVideoCaptureDeviceNV) +#define glXEnumerateVideoCaptureDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoCaptureDevicesNV) +#define glXLockVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXLockVideoCaptureDeviceNV) +#define glXQueryVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXQueryVideoCaptureDeviceNV) +#define glXReleaseVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoCaptureDeviceNV) + +#define GLXEW_NV_video_capture GLXEW_GET_VAR(__GLXEW_NV_video_capture) + +#endif /* GLX_NV_video_capture */ + +/* ---------------------------- GLX_NV_video_out --------------------------- */ + +#ifndef GLX_NV_video_out +#define GLX_NV_video_out 1 + +#define GLX_VIDEO_OUT_COLOR_NV 0x20C3 +#define GLX_VIDEO_OUT_ALPHA_NV 0x20C4 +#define GLX_VIDEO_OUT_DEPTH_NV 0x20C5 +#define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 +#define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 +#define GLX_VIDEO_OUT_FRAME_NV 0x20C8 +#define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9 +#define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA +#define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB +#define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC + +typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display* dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer); +typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display* dpy, int screen, int numVideoDevices, GLXVideoDeviceNV* pVideoDevice); +typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long* pulCounterOutputVideo); +typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice); +typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display* dpy, GLXPbuffer pbuf); +typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display* dpy, GLXPbuffer pbuf, int iBufferType, unsigned long* pulCounterPbuffer, GLboolean bBlock); + +#define glXBindVideoImageNV GLXEW_GET_FUN(__glewXBindVideoImageNV) +#define glXGetVideoDeviceNV GLXEW_GET_FUN(__glewXGetVideoDeviceNV) +#define glXGetVideoInfoNV GLXEW_GET_FUN(__glewXGetVideoInfoNV) +#define glXReleaseVideoDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoDeviceNV) +#define glXReleaseVideoImageNV GLXEW_GET_FUN(__glewXReleaseVideoImageNV) +#define glXSendPbufferToVideoNV GLXEW_GET_FUN(__glewXSendPbufferToVideoNV) + +#define GLXEW_NV_video_out GLXEW_GET_VAR(__GLXEW_NV_video_out) + +#endif /* GLX_NV_video_out */ + +/* -------------------------- GLX_OML_swap_method -------------------------- */ + +#ifndef GLX_OML_swap_method +#define GLX_OML_swap_method 1 + +#define GLX_SWAP_METHOD_OML 0x8060 +#define GLX_SWAP_EXCHANGE_OML 0x8061 +#define GLX_SWAP_COPY_OML 0x8062 +#define GLX_SWAP_UNDEFINED_OML 0x8063 + +#define GLXEW_OML_swap_method GLXEW_GET_VAR(__GLXEW_OML_swap_method) + +#endif /* GLX_OML_swap_method */ + +/* -------------------------- GLX_OML_sync_control ------------------------- */ + +#ifndef GLX_OML_sync_control +#define GLX_OML_sync_control 1 + +typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator); +typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t* ust, int64_t* msc, int64_t* sbc); +typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder); +typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t* ust, int64_t* msc, int64_t* sbc); +typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_sbc, int64_t* ust, int64_t* msc, int64_t* sbc); + +#define glXGetMscRateOML GLXEW_GET_FUN(__glewXGetMscRateOML) +#define glXGetSyncValuesOML GLXEW_GET_FUN(__glewXGetSyncValuesOML) +#define glXSwapBuffersMscOML GLXEW_GET_FUN(__glewXSwapBuffersMscOML) +#define glXWaitForMscOML GLXEW_GET_FUN(__glewXWaitForMscOML) +#define glXWaitForSbcOML GLXEW_GET_FUN(__glewXWaitForSbcOML) + +#define GLXEW_OML_sync_control GLXEW_GET_VAR(__GLXEW_OML_sync_control) + +#endif /* GLX_OML_sync_control */ + +/* ------------------------ GLX_SGIS_blended_overlay ----------------------- */ + +#ifndef GLX_SGIS_blended_overlay +#define GLX_SGIS_blended_overlay 1 + +#define GLX_BLENDED_RGBA_SGIS 0x8025 + +#define GLXEW_SGIS_blended_overlay GLXEW_GET_VAR(__GLXEW_SGIS_blended_overlay) + +#endif /* GLX_SGIS_blended_overlay */ + +/* -------------------------- GLX_SGIS_color_range ------------------------- */ + +#ifndef GLX_SGIS_color_range +#define GLX_SGIS_color_range 1 + +#define GLXEW_SGIS_color_range GLXEW_GET_VAR(__GLXEW_SGIS_color_range) + +#endif /* GLX_SGIS_color_range */ + +/* -------------------------- GLX_SGIS_multisample ------------------------- */ + +#ifndef GLX_SGIS_multisample +#define GLX_SGIS_multisample 1 + +#define GLX_SAMPLE_BUFFERS_SGIS 100000 +#define GLX_SAMPLES_SGIS 100001 + +#define GLXEW_SGIS_multisample GLXEW_GET_VAR(__GLXEW_SGIS_multisample) + +#endif /* GLX_SGIS_multisample */ + +/* ---------------------- GLX_SGIS_shared_multisample ---------------------- */ + +#ifndef GLX_SGIS_shared_multisample +#define GLX_SGIS_shared_multisample 1 + +#define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026 +#define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027 + +#define GLXEW_SGIS_shared_multisample GLXEW_GET_VAR(__GLXEW_SGIS_shared_multisample) + +#endif /* GLX_SGIS_shared_multisample */ + +/* --------------------------- GLX_SGIX_fbconfig --------------------------- */ + +#ifndef GLX_SGIX_fbconfig +#define GLX_SGIX_fbconfig 1 + +#define GLX_RGBA_BIT_SGIX 0x00000001 +#define GLX_WINDOW_BIT_SGIX 0x00000001 +#define GLX_COLOR_INDEX_BIT_SGIX 0x00000002 +#define GLX_PIXMAP_BIT_SGIX 0x00000002 +#define GLX_SCREEN_EXT 0x800C +#define GLX_DRAWABLE_TYPE_SGIX 0x8010 +#define GLX_RENDER_TYPE_SGIX 0x8011 +#define GLX_X_RENDERABLE_SGIX 0x8012 +#define GLX_FBCONFIG_ID_SGIX 0x8013 +#define GLX_RGBA_TYPE_SGIX 0x8014 +#define GLX_COLOR_INDEX_TYPE_SGIX 0x8015 + +typedef XID GLXFBConfigIDSGIX; +typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; + +typedef GLXFBConfigSGIX* ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display* dpy, int screen, int* attrib_list, int* nelements); +typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct); +typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, Pixmap pixmap); +typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int attribute, int* value); +typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display* dpy, XVisualInfo* vis); +typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display* dpy, GLXFBConfigSGIX config); + +#define glXChooseFBConfigSGIX GLXEW_GET_FUN(__glewXChooseFBConfigSGIX) +#define glXCreateContextWithConfigSGIX GLXEW_GET_FUN(__glewXCreateContextWithConfigSGIX) +#define glXCreateGLXPixmapWithConfigSGIX GLXEW_GET_FUN(__glewXCreateGLXPixmapWithConfigSGIX) +#define glXGetFBConfigAttribSGIX GLXEW_GET_FUN(__glewXGetFBConfigAttribSGIX) +#define glXGetFBConfigFromVisualSGIX GLXEW_GET_FUN(__glewXGetFBConfigFromVisualSGIX) +#define glXGetVisualFromFBConfigSGIX GLXEW_GET_FUN(__glewXGetVisualFromFBConfigSGIX) + +#define GLXEW_SGIX_fbconfig GLXEW_GET_VAR(__GLXEW_SGIX_fbconfig) + +#endif /* GLX_SGIX_fbconfig */ + +/* --------------------------- GLX_SGIX_hyperpipe -------------------------- */ + +#ifndef GLX_SGIX_hyperpipe +#define GLX_SGIX_hyperpipe 1 + +#define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001 +#define GLX_PIPE_RECT_SGIX 0x00000001 +#define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002 +#define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002 +#define GLX_HYPERPIPE_STEREO_SGIX 0x00000003 +#define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004 +#define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80 +#define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91 +#define GLX_BAD_HYPERPIPE_SGIX 92 +#define GLX_HYPERPIPE_ID_SGIX 0x8030 + +typedef struct { + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int networkId; +} GLXHyperpipeNetworkSGIX; +typedef struct { + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int XOrigin; + int YOrigin; + int maxHeight; + int maxWidth; +} GLXPipeRectLimits; +typedef struct { + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int channel; + unsigned int participationType; + int timeSlice; +} GLXHyperpipeConfigSGIX; +typedef struct { + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int srcXOrigin; + int srcYOrigin; + int srcWidth; + int srcHeight; + int destXOrigin; + int destYOrigin; + int destWidth; + int destHeight; +} GLXPipeRect; + +typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId); +typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId); +typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList); +typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId); +typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList); +typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList); +typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes); +typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes); + +#define glXBindHyperpipeSGIX GLXEW_GET_FUN(__glewXBindHyperpipeSGIX) +#define glXDestroyHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXDestroyHyperpipeConfigSGIX) +#define glXHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXHyperpipeAttribSGIX) +#define glXHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXHyperpipeConfigSGIX) +#define glXQueryHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeAttribSGIX) +#define glXQueryHyperpipeBestAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeBestAttribSGIX) +#define glXQueryHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeConfigSGIX) +#define glXQueryHyperpipeNetworkSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeNetworkSGIX) + +#define GLXEW_SGIX_hyperpipe GLXEW_GET_VAR(__GLXEW_SGIX_hyperpipe) + +#endif /* GLX_SGIX_hyperpipe */ + +/* ---------------------------- GLX_SGIX_pbuffer --------------------------- */ + +#ifndef GLX_SGIX_pbuffer +#define GLX_SGIX_pbuffer 1 + +#define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001 +#define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002 +#define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004 +#define GLX_PBUFFER_BIT_SGIX 0x00000004 +#define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008 +#define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010 +#define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020 +#define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040 +#define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080 +#define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100 +#define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016 +#define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017 +#define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018 +#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019 +#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A +#define GLX_PRESERVED_CONTENTS_SGIX 0x801B +#define GLX_LARGEST_PBUFFER_SGIX 0x801C +#define GLX_WIDTH_SGIX 0x801D +#define GLX_HEIGHT_SGIX 0x801E +#define GLX_EVENT_MASK_SGIX 0x801F +#define GLX_DAMAGED_SGIX 0x8020 +#define GLX_SAVED_SGIX 0x8021 +#define GLX_WINDOW_SGIX 0x8022 +#define GLX_PBUFFER_SGIX 0x8023 +#define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000 + +typedef XID GLXPbufferSGIX; +typedef struct { int type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; int event_type; int draw_type; unsigned int mask; int x, y; int width, height; int count; } GLXBufferClobberEventSGIX; + +typedef GLXPbufferSGIX ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int* attrib_list); +typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbufferSGIX pbuf); +typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long* mask); +typedef void ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int* value); +typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long mask); + +#define glXCreateGLXPbufferSGIX GLXEW_GET_FUN(__glewXCreateGLXPbufferSGIX) +#define glXDestroyGLXPbufferSGIX GLXEW_GET_FUN(__glewXDestroyGLXPbufferSGIX) +#define glXGetSelectedEventSGIX GLXEW_GET_FUN(__glewXGetSelectedEventSGIX) +#define glXQueryGLXPbufferSGIX GLXEW_GET_FUN(__glewXQueryGLXPbufferSGIX) +#define glXSelectEventSGIX GLXEW_GET_FUN(__glewXSelectEventSGIX) + +#define GLXEW_SGIX_pbuffer GLXEW_GET_VAR(__GLXEW_SGIX_pbuffer) + +#endif /* GLX_SGIX_pbuffer */ + +/* ------------------------- GLX_SGIX_swap_barrier ------------------------- */ + +#ifndef GLX_SGIX_swap_barrier +#define GLX_SGIX_swap_barrier 1 + +typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display* dpy, GLXDrawable drawable, int barrier); +typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display* dpy, int screen, int* max); + +#define glXBindSwapBarrierSGIX GLXEW_GET_FUN(__glewXBindSwapBarrierSGIX) +#define glXQueryMaxSwapBarriersSGIX GLXEW_GET_FUN(__glewXQueryMaxSwapBarriersSGIX) + +#define GLXEW_SGIX_swap_barrier GLXEW_GET_VAR(__GLXEW_SGIX_swap_barrier) + +#endif /* GLX_SGIX_swap_barrier */ + +/* -------------------------- GLX_SGIX_swap_group -------------------------- */ + +#ifndef GLX_SGIX_swap_group +#define GLX_SGIX_swap_group 1 + +typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display* dpy, GLXDrawable drawable, GLXDrawable member); + +#define glXJoinSwapGroupSGIX GLXEW_GET_FUN(__glewXJoinSwapGroupSGIX) + +#define GLXEW_SGIX_swap_group GLXEW_GET_VAR(__GLXEW_SGIX_swap_group) + +#endif /* GLX_SGIX_swap_group */ + +/* ------------------------- GLX_SGIX_video_resize ------------------------- */ + +#ifndef GLX_SGIX_video_resize +#define GLX_SGIX_video_resize 1 + +#define GLX_SYNC_FRAME_SGIX 0x00000000 +#define GLX_SYNC_SWAP_SGIX 0x00000001 + +typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display* display, int screen, int channel, Window window); +typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int x, int y, int w, int h); +typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display* display, int screen, int channel, GLenum synctype); +typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display* display, int screen, int channel, int* x, int* y, int* w, int* h); +typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int* dx, int* dy, int* dw, int* dh); + +#define glXBindChannelToWindowSGIX GLXEW_GET_FUN(__glewXBindChannelToWindowSGIX) +#define glXChannelRectSGIX GLXEW_GET_FUN(__glewXChannelRectSGIX) +#define glXChannelRectSyncSGIX GLXEW_GET_FUN(__glewXChannelRectSyncSGIX) +#define glXQueryChannelDeltasSGIX GLXEW_GET_FUN(__glewXQueryChannelDeltasSGIX) +#define glXQueryChannelRectSGIX GLXEW_GET_FUN(__glewXQueryChannelRectSGIX) + +#define GLXEW_SGIX_video_resize GLXEW_GET_VAR(__GLXEW_SGIX_video_resize) + +#endif /* GLX_SGIX_video_resize */ + +/* ---------------------- GLX_SGIX_visual_select_group --------------------- */ + +#ifndef GLX_SGIX_visual_select_group +#define GLX_SGIX_visual_select_group 1 + +#define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028 + +#define GLXEW_SGIX_visual_select_group GLXEW_GET_VAR(__GLXEW_SGIX_visual_select_group) + +#endif /* GLX_SGIX_visual_select_group */ + +/* ---------------------------- GLX_SGI_cushion ---------------------------- */ + +#ifndef GLX_SGI_cushion +#define GLX_SGI_cushion 1 + +typedef void ( * PFNGLXCUSHIONSGIPROC) (Display* dpy, Window window, float cushion); + +#define glXCushionSGI GLXEW_GET_FUN(__glewXCushionSGI) + +#define GLXEW_SGI_cushion GLXEW_GET_VAR(__GLXEW_SGI_cushion) + +#endif /* GLX_SGI_cushion */ + +/* ----------------------- GLX_SGI_make_current_read ----------------------- */ + +#ifndef GLX_SGI_make_current_read +#define GLX_SGI_make_current_read 1 + +typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void); +typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display* dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); + +#define glXGetCurrentReadDrawableSGI GLXEW_GET_FUN(__glewXGetCurrentReadDrawableSGI) +#define glXMakeCurrentReadSGI GLXEW_GET_FUN(__glewXMakeCurrentReadSGI) + +#define GLXEW_SGI_make_current_read GLXEW_GET_VAR(__GLXEW_SGI_make_current_read) + +#endif /* GLX_SGI_make_current_read */ + +/* -------------------------- GLX_SGI_swap_control ------------------------- */ + +#ifndef GLX_SGI_swap_control +#define GLX_SGI_swap_control 1 + +typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval); + +#define glXSwapIntervalSGI GLXEW_GET_FUN(__glewXSwapIntervalSGI) + +#define GLXEW_SGI_swap_control GLXEW_GET_VAR(__GLXEW_SGI_swap_control) + +#endif /* GLX_SGI_swap_control */ + +/* --------------------------- GLX_SGI_video_sync -------------------------- */ + +#ifndef GLX_SGI_video_sync +#define GLX_SGI_video_sync 1 + +typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int* count); +typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int* count); + +#define glXGetVideoSyncSGI GLXEW_GET_FUN(__glewXGetVideoSyncSGI) +#define glXWaitVideoSyncSGI GLXEW_GET_FUN(__glewXWaitVideoSyncSGI) + +#define GLXEW_SGI_video_sync GLXEW_GET_VAR(__GLXEW_SGI_video_sync) + +#endif /* GLX_SGI_video_sync */ + +/* --------------------- GLX_SUN_get_transparent_index --------------------- */ + +#ifndef GLX_SUN_get_transparent_index +#define GLX_SUN_get_transparent_index 1 + +typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display* dpy, Window overlay, Window underlay, unsigned long* pTransparentIndex); + +#define glXGetTransparentIndexSUN GLXEW_GET_FUN(__glewXGetTransparentIndexSUN) + +#define GLXEW_SUN_get_transparent_index GLXEW_GET_VAR(__GLXEW_SUN_get_transparent_index) + +#endif /* GLX_SUN_get_transparent_index */ + +/* -------------------------- GLX_SUN_video_resize ------------------------- */ + +#ifndef GLX_SUN_video_resize +#define GLX_SUN_video_resize 1 + +#define GLX_VIDEO_RESIZE_SUN 0x8171 +#define GL_VIDEO_RESIZE_COMPENSATION_SUN 0x85CD + +typedef int ( * PFNGLXGETVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float* factor); +typedef int ( * PFNGLXVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float factor); + +#define glXGetVideoResizeSUN GLXEW_GET_FUN(__glewXGetVideoResizeSUN) +#define glXVideoResizeSUN GLXEW_GET_FUN(__glewXVideoResizeSUN) + +#define GLXEW_SUN_video_resize GLXEW_GET_VAR(__GLXEW_SUN_video_resize) + +#endif /* GLX_SUN_video_resize */ + +/* ------------------------------------------------------------------------- */ + +#define GLXEW_FUN_EXPORT GLEW_FUN_EXPORT +#define GLXEW_VAR_EXPORT GLEW_VAR_EXPORT + +GLXEW_FUN_EXPORT PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay; + +GLXEW_FUN_EXPORT PFNGLXCHOOSEFBCONFIGPROC __glewXChooseFBConfig; +GLXEW_FUN_EXPORT PFNGLXCREATENEWCONTEXTPROC __glewXCreateNewContext; +GLXEW_FUN_EXPORT PFNGLXCREATEPBUFFERPROC __glewXCreatePbuffer; +GLXEW_FUN_EXPORT PFNGLXCREATEPIXMAPPROC __glewXCreatePixmap; +GLXEW_FUN_EXPORT PFNGLXCREATEWINDOWPROC __glewXCreateWindow; +GLXEW_FUN_EXPORT PFNGLXDESTROYPBUFFERPROC __glewXDestroyPbuffer; +GLXEW_FUN_EXPORT PFNGLXDESTROYPIXMAPPROC __glewXDestroyPixmap; +GLXEW_FUN_EXPORT PFNGLXDESTROYWINDOWPROC __glewXDestroyWindow; +GLXEW_FUN_EXPORT PFNGLXGETCURRENTREADDRAWABLEPROC __glewXGetCurrentReadDrawable; +GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGATTRIBPROC __glewXGetFBConfigAttrib; +GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGSPROC __glewXGetFBConfigs; +GLXEW_FUN_EXPORT PFNGLXGETSELECTEDEVENTPROC __glewXGetSelectedEvent; +GLXEW_FUN_EXPORT PFNGLXGETVISUALFROMFBCONFIGPROC __glewXGetVisualFromFBConfig; +GLXEW_FUN_EXPORT PFNGLXMAKECONTEXTCURRENTPROC __glewXMakeContextCurrent; +GLXEW_FUN_EXPORT PFNGLXQUERYCONTEXTPROC __glewXQueryContext; +GLXEW_FUN_EXPORT PFNGLXQUERYDRAWABLEPROC __glewXQueryDrawable; +GLXEW_FUN_EXPORT PFNGLXSELECTEVENTPROC __glewXSelectEvent; + +GLXEW_FUN_EXPORT PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC __glewXBlitContextFramebufferAMD; +GLXEW_FUN_EXPORT PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC __glewXCreateAssociatedContextAMD; +GLXEW_FUN_EXPORT PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __glewXCreateAssociatedContextAttribsAMD; +GLXEW_FUN_EXPORT PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC __glewXDeleteAssociatedContextAMD; +GLXEW_FUN_EXPORT PFNGLXGETCONTEXTGPUIDAMDPROC __glewXGetContextGPUIDAMD; +GLXEW_FUN_EXPORT PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC __glewXGetCurrentAssociatedContextAMD; +GLXEW_FUN_EXPORT PFNGLXGETGPUIDSAMDPROC __glewXGetGPUIDsAMD; +GLXEW_FUN_EXPORT PFNGLXGETGPUINFOAMDPROC __glewXGetGPUInfoAMD; +GLXEW_FUN_EXPORT PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __glewXMakeAssociatedContextCurrentAMD; + +GLXEW_FUN_EXPORT PFNGLXCREATECONTEXTATTRIBSARBPROC __glewXCreateContextAttribsARB; + +GLXEW_FUN_EXPORT PFNGLXBINDTEXIMAGEATIPROC __glewXBindTexImageATI; +GLXEW_FUN_EXPORT PFNGLXDRAWABLEATTRIBATIPROC __glewXDrawableAttribATI; +GLXEW_FUN_EXPORT PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI; + +GLXEW_FUN_EXPORT PFNGLXFREECONTEXTEXTPROC __glewXFreeContextEXT; +GLXEW_FUN_EXPORT PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT; +GLXEW_FUN_EXPORT PFNGLXGETCURRENTDISPLAYEXTPROC __glewXGetCurrentDisplayEXT; +GLXEW_FUN_EXPORT PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT; +GLXEW_FUN_EXPORT PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT; + +GLXEW_FUN_EXPORT PFNGLXSWAPINTERVALEXTPROC __glewXSwapIntervalEXT; + +GLXEW_FUN_EXPORT PFNGLXBINDTEXIMAGEEXTPROC __glewXBindTexImageEXT; +GLXEW_FUN_EXPORT PFNGLXRELEASETEXIMAGEEXTPROC __glewXReleaseTexImageEXT; + +GLXEW_FUN_EXPORT PFNGLXGETAGPOFFSETMESAPROC __glewXGetAGPOffsetMESA; + +GLXEW_FUN_EXPORT PFNGLXCOPYSUBBUFFERMESAPROC __glewXCopySubBufferMESA; + +GLXEW_FUN_EXPORT PFNGLXCREATEGLXPIXMAPMESAPROC __glewXCreateGLXPixmapMESA; + +GLXEW_FUN_EXPORT PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC __glewXQueryCurrentRendererIntegerMESA; +GLXEW_FUN_EXPORT PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC __glewXQueryCurrentRendererStringMESA; +GLXEW_FUN_EXPORT PFNGLXQUERYRENDERERINTEGERMESAPROC __glewXQueryRendererIntegerMESA; +GLXEW_FUN_EXPORT PFNGLXQUERYRENDERERSTRINGMESAPROC __glewXQueryRendererStringMESA; + +GLXEW_FUN_EXPORT PFNGLXRELEASEBUFFERSMESAPROC __glewXReleaseBuffersMESA; + +GLXEW_FUN_EXPORT PFNGLXSET3DFXMODEMESAPROC __glewXSet3DfxModeMESA; + +GLXEW_FUN_EXPORT PFNGLXGETSWAPINTERVALMESAPROC __glewXGetSwapIntervalMESA; +GLXEW_FUN_EXPORT PFNGLXSWAPINTERVALMESAPROC __glewXSwapIntervalMESA; + +GLXEW_FUN_EXPORT PFNGLXCOPYBUFFERSUBDATANVPROC __glewXCopyBufferSubDataNV; +GLXEW_FUN_EXPORT PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC __glewXNamedCopyBufferSubDataNV; + +GLXEW_FUN_EXPORT PFNGLXCOPYIMAGESUBDATANVPROC __glewXCopyImageSubDataNV; + +GLXEW_FUN_EXPORT PFNGLXDELAYBEFORESWAPNVPROC __glewXDelayBeforeSwapNV; + +GLXEW_FUN_EXPORT PFNGLXBINDVIDEODEVICENVPROC __glewXBindVideoDeviceNV; +GLXEW_FUN_EXPORT PFNGLXENUMERATEVIDEODEVICESNVPROC __glewXEnumerateVideoDevicesNV; + +GLXEW_FUN_EXPORT PFNGLXBINDSWAPBARRIERNVPROC __glewXBindSwapBarrierNV; +GLXEW_FUN_EXPORT PFNGLXJOINSWAPGROUPNVPROC __glewXJoinSwapGroupNV; +GLXEW_FUN_EXPORT PFNGLXQUERYFRAMECOUNTNVPROC __glewXQueryFrameCountNV; +GLXEW_FUN_EXPORT PFNGLXQUERYMAXSWAPGROUPSNVPROC __glewXQueryMaxSwapGroupsNV; +GLXEW_FUN_EXPORT PFNGLXQUERYSWAPGROUPNVPROC __glewXQuerySwapGroupNV; +GLXEW_FUN_EXPORT PFNGLXRESETFRAMECOUNTNVPROC __glewXResetFrameCountNV; + +GLXEW_FUN_EXPORT PFNGLXALLOCATEMEMORYNVPROC __glewXAllocateMemoryNV; +GLXEW_FUN_EXPORT PFNGLXFREEMEMORYNVPROC __glewXFreeMemoryNV; + +GLXEW_FUN_EXPORT PFNGLXBINDVIDEOCAPTUREDEVICENVPROC __glewXBindVideoCaptureDeviceNV; +GLXEW_FUN_EXPORT PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC __glewXEnumerateVideoCaptureDevicesNV; +GLXEW_FUN_EXPORT PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC __glewXLockVideoCaptureDeviceNV; +GLXEW_FUN_EXPORT PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC __glewXQueryVideoCaptureDeviceNV; +GLXEW_FUN_EXPORT PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC __glewXReleaseVideoCaptureDeviceNV; + +GLXEW_FUN_EXPORT PFNGLXBINDVIDEOIMAGENVPROC __glewXBindVideoImageNV; +GLXEW_FUN_EXPORT PFNGLXGETVIDEODEVICENVPROC __glewXGetVideoDeviceNV; +GLXEW_FUN_EXPORT PFNGLXGETVIDEOINFONVPROC __glewXGetVideoInfoNV; +GLXEW_FUN_EXPORT PFNGLXRELEASEVIDEODEVICENVPROC __glewXReleaseVideoDeviceNV; +GLXEW_FUN_EXPORT PFNGLXRELEASEVIDEOIMAGENVPROC __glewXReleaseVideoImageNV; +GLXEW_FUN_EXPORT PFNGLXSENDPBUFFERTOVIDEONVPROC __glewXSendPbufferToVideoNV; + +GLXEW_FUN_EXPORT PFNGLXGETMSCRATEOMLPROC __glewXGetMscRateOML; +GLXEW_FUN_EXPORT PFNGLXGETSYNCVALUESOMLPROC __glewXGetSyncValuesOML; +GLXEW_FUN_EXPORT PFNGLXSWAPBUFFERSMSCOMLPROC __glewXSwapBuffersMscOML; +GLXEW_FUN_EXPORT PFNGLXWAITFORMSCOMLPROC __glewXWaitForMscOML; +GLXEW_FUN_EXPORT PFNGLXWAITFORSBCOMLPROC __glewXWaitForSbcOML; + +GLXEW_FUN_EXPORT PFNGLXCHOOSEFBCONFIGSGIXPROC __glewXChooseFBConfigSGIX; +GLXEW_FUN_EXPORT PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC __glewXCreateContextWithConfigSGIX; +GLXEW_FUN_EXPORT PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC __glewXCreateGLXPixmapWithConfigSGIX; +GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGATTRIBSGIXPROC __glewXGetFBConfigAttribSGIX; +GLXEW_FUN_EXPORT PFNGLXGETFBCONFIGFROMVISUALSGIXPROC __glewXGetFBConfigFromVisualSGIX; +GLXEW_FUN_EXPORT PFNGLXGETVISUALFROMFBCONFIGSGIXPROC __glewXGetVisualFromFBConfigSGIX; + +GLXEW_FUN_EXPORT PFNGLXBINDHYPERPIPESGIXPROC __glewXBindHyperpipeSGIX; +GLXEW_FUN_EXPORT PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC __glewXDestroyHyperpipeConfigSGIX; +GLXEW_FUN_EXPORT PFNGLXHYPERPIPEATTRIBSGIXPROC __glewXHyperpipeAttribSGIX; +GLXEW_FUN_EXPORT PFNGLXHYPERPIPECONFIGSGIXPROC __glewXHyperpipeConfigSGIX; +GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC __glewXQueryHyperpipeAttribSGIX; +GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC __glewXQueryHyperpipeBestAttribSGIX; +GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPECONFIGSGIXPROC __glewXQueryHyperpipeConfigSGIX; +GLXEW_FUN_EXPORT PFNGLXQUERYHYPERPIPENETWORKSGIXPROC __glewXQueryHyperpipeNetworkSGIX; + +GLXEW_FUN_EXPORT PFNGLXCREATEGLXPBUFFERSGIXPROC __glewXCreateGLXPbufferSGIX; +GLXEW_FUN_EXPORT PFNGLXDESTROYGLXPBUFFERSGIXPROC __glewXDestroyGLXPbufferSGIX; +GLXEW_FUN_EXPORT PFNGLXGETSELECTEDEVENTSGIXPROC __glewXGetSelectedEventSGIX; +GLXEW_FUN_EXPORT PFNGLXQUERYGLXPBUFFERSGIXPROC __glewXQueryGLXPbufferSGIX; +GLXEW_FUN_EXPORT PFNGLXSELECTEVENTSGIXPROC __glewXSelectEventSGIX; + +GLXEW_FUN_EXPORT PFNGLXBINDSWAPBARRIERSGIXPROC __glewXBindSwapBarrierSGIX; +GLXEW_FUN_EXPORT PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC __glewXQueryMaxSwapBarriersSGIX; + +GLXEW_FUN_EXPORT PFNGLXJOINSWAPGROUPSGIXPROC __glewXJoinSwapGroupSGIX; + +GLXEW_FUN_EXPORT PFNGLXBINDCHANNELTOWINDOWSGIXPROC __glewXBindChannelToWindowSGIX; +GLXEW_FUN_EXPORT PFNGLXCHANNELRECTSGIXPROC __glewXChannelRectSGIX; +GLXEW_FUN_EXPORT PFNGLXCHANNELRECTSYNCSGIXPROC __glewXChannelRectSyncSGIX; +GLXEW_FUN_EXPORT PFNGLXQUERYCHANNELDELTASSGIXPROC __glewXQueryChannelDeltasSGIX; +GLXEW_FUN_EXPORT PFNGLXQUERYCHANNELRECTSGIXPROC __glewXQueryChannelRectSGIX; + +GLXEW_FUN_EXPORT PFNGLXCUSHIONSGIPROC __glewXCushionSGI; + +GLXEW_FUN_EXPORT PFNGLXGETCURRENTREADDRAWABLESGIPROC __glewXGetCurrentReadDrawableSGI; +GLXEW_FUN_EXPORT PFNGLXMAKECURRENTREADSGIPROC __glewXMakeCurrentReadSGI; + +GLXEW_FUN_EXPORT PFNGLXSWAPINTERVALSGIPROC __glewXSwapIntervalSGI; + +GLXEW_FUN_EXPORT PFNGLXGETVIDEOSYNCSGIPROC __glewXGetVideoSyncSGI; +GLXEW_FUN_EXPORT PFNGLXWAITVIDEOSYNCSGIPROC __glewXWaitVideoSyncSGI; + +GLXEW_FUN_EXPORT PFNGLXGETTRANSPARENTINDEXSUNPROC __glewXGetTransparentIndexSUN; + +GLXEW_FUN_EXPORT PFNGLXGETVIDEORESIZESUNPROC __glewXGetVideoResizeSUN; +GLXEW_FUN_EXPORT PFNGLXVIDEORESIZESUNPROC __glewXVideoResizeSUN; +GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_0; +GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_1; +GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_2; +GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_3; +GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_4; +GLXEW_VAR_EXPORT GLboolean __GLXEW_3DFX_multisample; +GLXEW_VAR_EXPORT GLboolean __GLXEW_AMD_gpu_association; +GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_context_flush_control; +GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context; +GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_no_error; +GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_profile; +GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_create_context_robustness; +GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_fbconfig_float; +GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_framebuffer_sRGB; +GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_get_proc_address; +GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_multisample; +GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_robustness_application_isolation; +GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_robustness_share_group_isolation; +GLXEW_VAR_EXPORT GLboolean __GLXEW_ARB_vertex_buffer_object; +GLXEW_VAR_EXPORT GLboolean __GLXEW_ATI_pixel_format_float; +GLXEW_VAR_EXPORT GLboolean __GLXEW_ATI_render_texture; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_buffer_age; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_context_priority; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_create_context_es2_profile; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_create_context_es_profile; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_fbconfig_packed_float; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_framebuffer_sRGB; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_get_drawable_type; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_import_context; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_libglvnd; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_no_config_context; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_scene_marker; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_stereo_tree; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_swap_control; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_swap_control_tear; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_texture_from_pixmap; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_visual_info; +GLXEW_VAR_EXPORT GLboolean __GLXEW_EXT_visual_rating; +GLXEW_VAR_EXPORT GLboolean __GLXEW_INTEL_swap_event; +GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_agp_offset; +GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_copy_sub_buffer; +GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_pixmap_colormap; +GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_query_renderer; +GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_release_buffers; +GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_set_3dfx_mode; +GLXEW_VAR_EXPORT GLboolean __GLXEW_MESA_swap_control; +GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_copy_buffer; +GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_copy_image; +GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_delay_before_swap; +GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_float_buffer; +GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_multigpu_context; +GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_multisample_coverage; +GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_present_video; +GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_robustness_video_memory_purge; +GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_swap_group; +GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_vertex_array_range; +GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_video_capture; +GLXEW_VAR_EXPORT GLboolean __GLXEW_NV_video_out; +GLXEW_VAR_EXPORT GLboolean __GLXEW_OML_swap_method; +GLXEW_VAR_EXPORT GLboolean __GLXEW_OML_sync_control; +GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_blended_overlay; +GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_color_range; +GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_multisample; +GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIS_shared_multisample; +GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_fbconfig; +GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_hyperpipe; +GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_pbuffer; +GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_swap_barrier; +GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_swap_group; +GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_video_resize; +GLXEW_VAR_EXPORT GLboolean __GLXEW_SGIX_visual_select_group; +GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_cushion; +GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_make_current_read; +GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_swap_control; +GLXEW_VAR_EXPORT GLboolean __GLXEW_SGI_video_sync; +GLXEW_VAR_EXPORT GLboolean __GLXEW_SUN_get_transparent_index; +GLXEW_VAR_EXPORT GLboolean __GLXEW_SUN_video_resize; +/* ------------------------------------------------------------------------ */ + +GLEWAPI GLenum GLEWAPIENTRY glxewInit (void); +GLEWAPI GLboolean GLEWAPIENTRY glxewIsSupported (const char *name); + +#ifndef GLXEW_GET_VAR +#define GLXEW_GET_VAR(x) (*(const GLboolean*)&x) +#endif + +#ifndef GLXEW_GET_FUN +#define GLXEW_GET_FUN(x) x +#endif + +GLEWAPI GLboolean GLEWAPIENTRY glxewGetExtension (const char *name); + +#ifdef __cplusplus +} +#endif + +#endif /* __glxew_h__ */ diff --git a/lib/windows/include/GL/wglew.h b/lib/windows/include/GL/wglew.h new file mode 100644 index 0000000..80b0ce3 --- /dev/null +++ b/lib/windows/include/GL/wglew.h @@ -0,0 +1,1468 @@ +/* +** The OpenGL Extension Wrangler Library +** Copyright (C) 2008-2025, Nigel Stewart +** Copyright (C) 2002-2008, Milan Ikits +** Copyright (C) 2002-2008, Marcelo E. Magallon +** Copyright (C) 2002, Lev Povalahev +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are met: +** +** * Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** * The name of the author may be used to endorse or promote products +** derived from this software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +** THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* +** Copyright (c) 2007 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +#ifndef __wglew_h__ +#define __wglew_h__ +#define __WGLEW_H__ + +#ifdef __wglext_h_ +#error wglext.h included before wglew.h +#endif + +#define __wglext_h_ + +#if !defined(WINAPI) +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN 1 +# endif +#include +# undef WIN32_LEAN_AND_MEAN +#endif + +/* + * GLEW_STATIC needs to be set when using the static version. + * GLEW_BUILD is set when building the DLL version. + */ +#ifdef GLEW_STATIC +# define GLEWAPI extern +#else +# ifdef GLEW_BUILD +# define GLEWAPI extern __declspec(dllexport) +# else +# define GLEWAPI extern __declspec(dllimport) +# endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* -------------------------- WGL_3DFX_multisample ------------------------- */ + +#ifndef WGL_3DFX_multisample +#define WGL_3DFX_multisample 1 + +#define WGL_SAMPLE_BUFFERS_3DFX 0x2060 +#define WGL_SAMPLES_3DFX 0x2061 + +#define WGLEW_3DFX_multisample WGLEW_GET_VAR(__WGLEW_3DFX_multisample) + +#endif /* WGL_3DFX_multisample */ + +/* ------------------------- WGL_3DL_stereo_control ------------------------ */ + +#ifndef WGL_3DL_stereo_control +#define WGL_3DL_stereo_control 1 + +#define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055 +#define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056 +#define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057 +#define WGL_STEREO_POLARITY_INVERT_3DL 0x2058 + +typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState); + +#define wglSetStereoEmitterState3DL WGLEW_GET_FUN(__wglewSetStereoEmitterState3DL) + +#define WGLEW_3DL_stereo_control WGLEW_GET_VAR(__WGLEW_3DL_stereo_control) + +#endif /* WGL_3DL_stereo_control */ + +/* ------------------------ WGL_AMD_gpu_association ------------------------ */ + +#ifndef WGL_AMD_gpu_association +#define WGL_AMD_gpu_association 1 + +#define WGL_GPU_VENDOR_AMD 0x1F00 +#define WGL_GPU_RENDERER_STRING_AMD 0x1F01 +#define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 +#define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 +#define WGL_GPU_RAM_AMD 0x21A3 +#define WGL_GPU_CLOCK_AMD 0x21A4 +#define WGL_GPU_NUM_PIPES_AMD 0x21A5 +#define WGL_GPU_NUM_SIMD_AMD 0x21A6 +#define WGL_GPU_NUM_RB_AMD 0x21A7 +#define WGL_GPU_NUM_SPI_AMD 0x21A8 + +typedef VOID (WINAPI * PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC) (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) (UINT id); +typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UINT id, HGLRC hShareContext, const int* attribList); +typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc); +typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc); +typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void); +typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT* ids); +typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, INT property, GLenum dataType, UINT size, void* data); +typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc); + +#define wglBlitContextFramebufferAMD WGLEW_GET_FUN(__wglewBlitContextFramebufferAMD) +#define wglCreateAssociatedContextAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAMD) +#define wglCreateAssociatedContextAttribsAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAttribsAMD) +#define wglDeleteAssociatedContextAMD WGLEW_GET_FUN(__wglewDeleteAssociatedContextAMD) +#define wglGetContextGPUIDAMD WGLEW_GET_FUN(__wglewGetContextGPUIDAMD) +#define wglGetCurrentAssociatedContextAMD WGLEW_GET_FUN(__wglewGetCurrentAssociatedContextAMD) +#define wglGetGPUIDsAMD WGLEW_GET_FUN(__wglewGetGPUIDsAMD) +#define wglGetGPUInfoAMD WGLEW_GET_FUN(__wglewGetGPUInfoAMD) +#define wglMakeAssociatedContextCurrentAMD WGLEW_GET_FUN(__wglewMakeAssociatedContextCurrentAMD) + +#define WGLEW_AMD_gpu_association WGLEW_GET_VAR(__WGLEW_AMD_gpu_association) + +#endif /* WGL_AMD_gpu_association */ + +/* ------------------------- WGL_ARB_buffer_region ------------------------- */ + +#ifndef WGL_ARB_buffer_region +#define WGL_ARB_buffer_region 1 + +#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001 +#define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002 +#define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004 +#define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008 + +typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType); +typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion); +typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); +typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height); + +#define wglCreateBufferRegionARB WGLEW_GET_FUN(__wglewCreateBufferRegionARB) +#define wglDeleteBufferRegionARB WGLEW_GET_FUN(__wglewDeleteBufferRegionARB) +#define wglRestoreBufferRegionARB WGLEW_GET_FUN(__wglewRestoreBufferRegionARB) +#define wglSaveBufferRegionARB WGLEW_GET_FUN(__wglewSaveBufferRegionARB) + +#define WGLEW_ARB_buffer_region WGLEW_GET_VAR(__WGLEW_ARB_buffer_region) + +#endif /* WGL_ARB_buffer_region */ + +/* --------------------- WGL_ARB_context_flush_control --------------------- */ + +#ifndef WGL_ARB_context_flush_control +#define WGL_ARB_context_flush_control 1 + +#define WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0 +#define WGL_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097 +#define WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098 + +#define WGLEW_ARB_context_flush_control WGLEW_GET_VAR(__WGLEW_ARB_context_flush_control) + +#endif /* WGL_ARB_context_flush_control */ + +/* ------------------------- WGL_ARB_create_context ------------------------ */ + +#ifndef WGL_ARB_create_context +#define WGL_ARB_create_context 1 + +#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001 +#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002 +#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091 +#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092 +#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093 +#define WGL_CONTEXT_FLAGS_ARB 0x2094 +#define ERROR_INVALID_VERSION_ARB 0x2095 + +typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int* attribList); + +#define wglCreateContextAttribsARB WGLEW_GET_FUN(__wglewCreateContextAttribsARB) + +#define WGLEW_ARB_create_context WGLEW_GET_VAR(__WGLEW_ARB_create_context) + +#endif /* WGL_ARB_create_context */ + +/* -------------------- WGL_ARB_create_context_no_error -------------------- */ + +#ifndef WGL_ARB_create_context_no_error +#define WGL_ARB_create_context_no_error 1 + +#define WGL_CONTEXT_OPENGL_NO_ERROR_ARB 0x31B3 + +#define WGLEW_ARB_create_context_no_error WGLEW_GET_VAR(__WGLEW_ARB_create_context_no_error) + +#endif /* WGL_ARB_create_context_no_error */ + +/* --------------------- WGL_ARB_create_context_profile -------------------- */ + +#ifndef WGL_ARB_create_context_profile +#define WGL_ARB_create_context_profile 1 + +#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 +#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 +#define ERROR_INVALID_PROFILE_ARB 0x2096 +#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126 + +#define WGLEW_ARB_create_context_profile WGLEW_GET_VAR(__WGLEW_ARB_create_context_profile) + +#endif /* WGL_ARB_create_context_profile */ + +/* ------------------- WGL_ARB_create_context_robustness ------------------- */ + +#ifndef WGL_ARB_create_context_robustness +#define WGL_ARB_create_context_robustness 1 + +#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 +#define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 +#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 +#define WGL_NO_RESET_NOTIFICATION_ARB 0x8261 + +#define WGLEW_ARB_create_context_robustness WGLEW_GET_VAR(__WGLEW_ARB_create_context_robustness) + +#endif /* WGL_ARB_create_context_robustness */ + +/* ----------------------- WGL_ARB_extensions_string ----------------------- */ + +#ifndef WGL_ARB_extensions_string +#define WGL_ARB_extensions_string 1 + +typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc); + +#define wglGetExtensionsStringARB WGLEW_GET_FUN(__wglewGetExtensionsStringARB) + +#define WGLEW_ARB_extensions_string WGLEW_GET_VAR(__WGLEW_ARB_extensions_string) + +#endif /* WGL_ARB_extensions_string */ + +/* ------------------------ WGL_ARB_framebuffer_sRGB ----------------------- */ + +#ifndef WGL_ARB_framebuffer_sRGB +#define WGL_ARB_framebuffer_sRGB 1 + +#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9 + +#define WGLEW_ARB_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_ARB_framebuffer_sRGB) + +#endif /* WGL_ARB_framebuffer_sRGB */ + +/* ----------------------- WGL_ARB_make_current_read ----------------------- */ + +#ifndef WGL_ARB_make_current_read +#define WGL_ARB_make_current_read 1 + +#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043 +#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054 + +typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (void); +typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); + +#define wglGetCurrentReadDCARB WGLEW_GET_FUN(__wglewGetCurrentReadDCARB) +#define wglMakeContextCurrentARB WGLEW_GET_FUN(__wglewMakeContextCurrentARB) + +#define WGLEW_ARB_make_current_read WGLEW_GET_VAR(__WGLEW_ARB_make_current_read) + +#endif /* WGL_ARB_make_current_read */ + +/* -------------------------- WGL_ARB_multisample -------------------------- */ + +#ifndef WGL_ARB_multisample +#define WGL_ARB_multisample 1 + +#define WGL_SAMPLE_BUFFERS_ARB 0x2041 +#define WGL_SAMPLES_ARB 0x2042 + +#define WGLEW_ARB_multisample WGLEW_GET_VAR(__WGLEW_ARB_multisample) + +#endif /* WGL_ARB_multisample */ + +/* ---------------------------- WGL_ARB_pbuffer ---------------------------- */ + +#ifndef WGL_ARB_pbuffer +#define WGL_ARB_pbuffer 1 + +#define WGL_DRAW_TO_PBUFFER_ARB 0x202D +#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E +#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F +#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030 +#define WGL_PBUFFER_LARGEST_ARB 0x2033 +#define WGL_PBUFFER_WIDTH_ARB 0x2034 +#define WGL_PBUFFER_HEIGHT_ARB 0x2035 +#define WGL_PBUFFER_LOST_ARB 0x2036 + +DECLARE_HANDLE(HPBUFFERARB); + +typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList); +typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer); +typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer); +typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int* piValue); +typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC); + +#define wglCreatePbufferARB WGLEW_GET_FUN(__wglewCreatePbufferARB) +#define wglDestroyPbufferARB WGLEW_GET_FUN(__wglewDestroyPbufferARB) +#define wglGetPbufferDCARB WGLEW_GET_FUN(__wglewGetPbufferDCARB) +#define wglQueryPbufferARB WGLEW_GET_FUN(__wglewQueryPbufferARB) +#define wglReleasePbufferDCARB WGLEW_GET_FUN(__wglewReleasePbufferDCARB) + +#define WGLEW_ARB_pbuffer WGLEW_GET_VAR(__WGLEW_ARB_pbuffer) + +#endif /* WGL_ARB_pbuffer */ + +/* -------------------------- WGL_ARB_pixel_format ------------------------- */ + +#ifndef WGL_ARB_pixel_format +#define WGL_ARB_pixel_format 1 + +#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 +#define WGL_DRAW_TO_WINDOW_ARB 0x2001 +#define WGL_DRAW_TO_BITMAP_ARB 0x2002 +#define WGL_ACCELERATION_ARB 0x2003 +#define WGL_NEED_PALETTE_ARB 0x2004 +#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 +#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 +#define WGL_SWAP_METHOD_ARB 0x2007 +#define WGL_NUMBER_OVERLAYS_ARB 0x2008 +#define WGL_NUMBER_UNDERLAYS_ARB 0x2009 +#define WGL_TRANSPARENT_ARB 0x200A +#define WGL_SHARE_DEPTH_ARB 0x200C +#define WGL_SHARE_STENCIL_ARB 0x200D +#define WGL_SHARE_ACCUM_ARB 0x200E +#define WGL_SUPPORT_GDI_ARB 0x200F +#define WGL_SUPPORT_OPENGL_ARB 0x2010 +#define WGL_DOUBLE_BUFFER_ARB 0x2011 +#define WGL_STEREO_ARB 0x2012 +#define WGL_PIXEL_TYPE_ARB 0x2013 +#define WGL_COLOR_BITS_ARB 0x2014 +#define WGL_RED_BITS_ARB 0x2015 +#define WGL_RED_SHIFT_ARB 0x2016 +#define WGL_GREEN_BITS_ARB 0x2017 +#define WGL_GREEN_SHIFT_ARB 0x2018 +#define WGL_BLUE_BITS_ARB 0x2019 +#define WGL_BLUE_SHIFT_ARB 0x201A +#define WGL_ALPHA_BITS_ARB 0x201B +#define WGL_ALPHA_SHIFT_ARB 0x201C +#define WGL_ACCUM_BITS_ARB 0x201D +#define WGL_ACCUM_RED_BITS_ARB 0x201E +#define WGL_ACCUM_GREEN_BITS_ARB 0x201F +#define WGL_ACCUM_BLUE_BITS_ARB 0x2020 +#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 +#define WGL_DEPTH_BITS_ARB 0x2022 +#define WGL_STENCIL_BITS_ARB 0x2023 +#define WGL_AUX_BUFFERS_ARB 0x2024 +#define WGL_NO_ACCELERATION_ARB 0x2025 +#define WGL_GENERIC_ACCELERATION_ARB 0x2026 +#define WGL_FULL_ACCELERATION_ARB 0x2027 +#define WGL_SWAP_EXCHANGE_ARB 0x2028 +#define WGL_SWAP_COPY_ARB 0x2029 +#define WGL_SWAP_UNDEFINED_ARB 0x202A +#define WGL_TYPE_RGBA_ARB 0x202B +#define WGL_TYPE_COLORINDEX_ARB 0x202C +#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 +#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 +#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 +#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A +#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B + +typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int* piAttribIList, const FLOAT* pfAttribFList, UINT nMaxFormats, int* piFormats, UINT* nNumFormats); +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, FLOAT* pfValues); +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, int* piValues); + +#define wglChoosePixelFormatARB WGLEW_GET_FUN(__wglewChoosePixelFormatARB) +#define wglGetPixelFormatAttribfvARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvARB) +#define wglGetPixelFormatAttribivARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribivARB) + +#define WGLEW_ARB_pixel_format WGLEW_GET_VAR(__WGLEW_ARB_pixel_format) + +#endif /* WGL_ARB_pixel_format */ + +/* ----------------------- WGL_ARB_pixel_format_float ---------------------- */ + +#ifndef WGL_ARB_pixel_format_float +#define WGL_ARB_pixel_format_float 1 + +#define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0 + +#define WGLEW_ARB_pixel_format_float WGLEW_GET_VAR(__WGLEW_ARB_pixel_format_float) + +#endif /* WGL_ARB_pixel_format_float */ + +/* ------------------------- WGL_ARB_render_texture ------------------------ */ + +#ifndef WGL_ARB_render_texture +#define WGL_ARB_render_texture 1 + +#define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070 +#define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071 +#define WGL_TEXTURE_FORMAT_ARB 0x2072 +#define WGL_TEXTURE_TARGET_ARB 0x2073 +#define WGL_MIPMAP_TEXTURE_ARB 0x2074 +#define WGL_TEXTURE_RGB_ARB 0x2075 +#define WGL_TEXTURE_RGBA_ARB 0x2076 +#define WGL_NO_TEXTURE_ARB 0x2077 +#define WGL_TEXTURE_CUBE_MAP_ARB 0x2078 +#define WGL_TEXTURE_1D_ARB 0x2079 +#define WGL_TEXTURE_2D_ARB 0x207A +#define WGL_MIPMAP_LEVEL_ARB 0x207B +#define WGL_CUBE_MAP_FACE_ARB 0x207C +#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D +#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E +#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F +#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080 +#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081 +#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082 +#define WGL_FRONT_LEFT_ARB 0x2083 +#define WGL_FRONT_RIGHT_ARB 0x2084 +#define WGL_BACK_LEFT_ARB 0x2085 +#define WGL_BACK_RIGHT_ARB 0x2086 +#define WGL_AUX0_ARB 0x2087 +#define WGL_AUX1_ARB 0x2088 +#define WGL_AUX2_ARB 0x2089 +#define WGL_AUX3_ARB 0x208A +#define WGL_AUX4_ARB 0x208B +#define WGL_AUX5_ARB 0x208C +#define WGL_AUX6_ARB 0x208D +#define WGL_AUX7_ARB 0x208E +#define WGL_AUX8_ARB 0x208F +#define WGL_AUX9_ARB 0x2090 + +typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); +typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); +typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int* piAttribList); + +#define wglBindTexImageARB WGLEW_GET_FUN(__wglewBindTexImageARB) +#define wglReleaseTexImageARB WGLEW_GET_FUN(__wglewReleaseTexImageARB) +#define wglSetPbufferAttribARB WGLEW_GET_FUN(__wglewSetPbufferAttribARB) + +#define WGLEW_ARB_render_texture WGLEW_GET_VAR(__WGLEW_ARB_render_texture) + +#endif /* WGL_ARB_render_texture */ + +/* ---------------- WGL_ARB_robustness_application_isolation --------------- */ + +#ifndef WGL_ARB_robustness_application_isolation +#define WGL_ARB_robustness_application_isolation 1 + +#define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008 + +#define WGLEW_ARB_robustness_application_isolation WGLEW_GET_VAR(__WGLEW_ARB_robustness_application_isolation) + +#endif /* WGL_ARB_robustness_application_isolation */ + +/* ---------------- WGL_ARB_robustness_share_group_isolation --------------- */ + +#ifndef WGL_ARB_robustness_share_group_isolation +#define WGL_ARB_robustness_share_group_isolation 1 + +#define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008 + +#define WGLEW_ARB_robustness_share_group_isolation WGLEW_GET_VAR(__WGLEW_ARB_robustness_share_group_isolation) + +#endif /* WGL_ARB_robustness_share_group_isolation */ + +/* ----------------------- WGL_ATI_pixel_format_float ---------------------- */ + +#ifndef WGL_ATI_pixel_format_float +#define WGL_ATI_pixel_format_float 1 + +#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0 +#define GL_RGBA_FLOAT_MODE_ATI 0x8820 +#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 + +#define WGLEW_ATI_pixel_format_float WGLEW_GET_VAR(__WGLEW_ATI_pixel_format_float) + +#endif /* WGL_ATI_pixel_format_float */ + +/* -------------------- WGL_ATI_render_texture_rectangle ------------------- */ + +#ifndef WGL_ATI_render_texture_rectangle +#define WGL_ATI_render_texture_rectangle 1 + +#define WGL_TEXTURE_RECTANGLE_ATI 0x21A5 + +#define WGLEW_ATI_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_ATI_render_texture_rectangle) + +#endif /* WGL_ATI_render_texture_rectangle */ + +/* --------------------------- WGL_EXT_colorspace -------------------------- */ + +#ifndef WGL_EXT_colorspace +#define WGL_EXT_colorspace 1 + +#define WGL_COLORSPACE_SRGB_EXT 0x3089 +#define WGL_COLORSPACE_LINEAR_EXT 0x308A +#define WGL_COLORSPACE_EXT 0x309D + +#define WGLEW_EXT_colorspace WGLEW_GET_VAR(__WGLEW_EXT_colorspace) + +#endif /* WGL_EXT_colorspace */ + +/* ------------------- WGL_EXT_create_context_es2_profile ------------------ */ + +#ifndef WGL_EXT_create_context_es2_profile +#define WGL_EXT_create_context_es2_profile 1 + +#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 + +#define WGLEW_EXT_create_context_es2_profile WGLEW_GET_VAR(__WGLEW_EXT_create_context_es2_profile) + +#endif /* WGL_EXT_create_context_es2_profile */ + +/* ------------------- WGL_EXT_create_context_es_profile ------------------- */ + +#ifndef WGL_EXT_create_context_es_profile +#define WGL_EXT_create_context_es_profile 1 + +#define WGL_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004 + +#define WGLEW_EXT_create_context_es_profile WGLEW_GET_VAR(__WGLEW_EXT_create_context_es_profile) + +#endif /* WGL_EXT_create_context_es_profile */ + +/* -------------------------- WGL_EXT_depth_float -------------------------- */ + +#ifndef WGL_EXT_depth_float +#define WGL_EXT_depth_float 1 + +#define WGL_DEPTH_FLOAT_EXT 0x2040 + +#define WGLEW_EXT_depth_float WGLEW_GET_VAR(__WGLEW_EXT_depth_float) + +#endif /* WGL_EXT_depth_float */ + +/* ---------------------- WGL_EXT_display_color_table ---------------------- */ + +#ifndef WGL_EXT_display_color_table +#define WGL_EXT_display_color_table 1 + +typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id); +typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id); +typedef VOID (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id); +typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (const GLushort* table, GLuint length); + +#define wglBindDisplayColorTableEXT WGLEW_GET_FUN(__wglewBindDisplayColorTableEXT) +#define wglCreateDisplayColorTableEXT WGLEW_GET_FUN(__wglewCreateDisplayColorTableEXT) +#define wglDestroyDisplayColorTableEXT WGLEW_GET_FUN(__wglewDestroyDisplayColorTableEXT) +#define wglLoadDisplayColorTableEXT WGLEW_GET_FUN(__wglewLoadDisplayColorTableEXT) + +#define WGLEW_EXT_display_color_table WGLEW_GET_VAR(__WGLEW_EXT_display_color_table) + +#endif /* WGL_EXT_display_color_table */ + +/* ----------------------- WGL_EXT_extensions_string ----------------------- */ + +#ifndef WGL_EXT_extensions_string +#define WGL_EXT_extensions_string 1 + +typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void); + +#define wglGetExtensionsStringEXT WGLEW_GET_FUN(__wglewGetExtensionsStringEXT) + +#define WGLEW_EXT_extensions_string WGLEW_GET_VAR(__WGLEW_EXT_extensions_string) + +#endif /* WGL_EXT_extensions_string */ + +/* ------------------------ WGL_EXT_framebuffer_sRGB ----------------------- */ + +#ifndef WGL_EXT_framebuffer_sRGB +#define WGL_EXT_framebuffer_sRGB 1 + +#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9 + +#define WGLEW_EXT_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_EXT_framebuffer_sRGB) + +#endif /* WGL_EXT_framebuffer_sRGB */ + +/* ----------------------- WGL_EXT_make_current_read ----------------------- */ + +#ifndef WGL_EXT_make_current_read +#define WGL_EXT_make_current_read 1 + +#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043 + +typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (void); +typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); + +#define wglGetCurrentReadDCEXT WGLEW_GET_FUN(__wglewGetCurrentReadDCEXT) +#define wglMakeContextCurrentEXT WGLEW_GET_FUN(__wglewMakeContextCurrentEXT) + +#define WGLEW_EXT_make_current_read WGLEW_GET_VAR(__WGLEW_EXT_make_current_read) + +#endif /* WGL_EXT_make_current_read */ + +/* -------------------------- WGL_EXT_multisample -------------------------- */ + +#ifndef WGL_EXT_multisample +#define WGL_EXT_multisample 1 + +#define WGL_SAMPLE_BUFFERS_EXT 0x2041 +#define WGL_SAMPLES_EXT 0x2042 + +#define WGLEW_EXT_multisample WGLEW_GET_VAR(__WGLEW_EXT_multisample) + +#endif /* WGL_EXT_multisample */ + +/* ---------------------------- WGL_EXT_pbuffer ---------------------------- */ + +#ifndef WGL_EXT_pbuffer +#define WGL_EXT_pbuffer 1 + +#define WGL_DRAW_TO_PBUFFER_EXT 0x202D +#define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E +#define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F +#define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030 +#define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031 +#define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032 +#define WGL_PBUFFER_LARGEST_EXT 0x2033 +#define WGL_PBUFFER_WIDTH_EXT 0x2034 +#define WGL_PBUFFER_HEIGHT_EXT 0x2035 + +DECLARE_HANDLE(HPBUFFEREXT); + +typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList); +typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer); +typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer); +typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int* piValue); +typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC); + +#define wglCreatePbufferEXT WGLEW_GET_FUN(__wglewCreatePbufferEXT) +#define wglDestroyPbufferEXT WGLEW_GET_FUN(__wglewDestroyPbufferEXT) +#define wglGetPbufferDCEXT WGLEW_GET_FUN(__wglewGetPbufferDCEXT) +#define wglQueryPbufferEXT WGLEW_GET_FUN(__wglewQueryPbufferEXT) +#define wglReleasePbufferDCEXT WGLEW_GET_FUN(__wglewReleasePbufferDCEXT) + +#define WGLEW_EXT_pbuffer WGLEW_GET_VAR(__WGLEW_EXT_pbuffer) + +#endif /* WGL_EXT_pbuffer */ + +/* -------------------------- WGL_EXT_pixel_format ------------------------- */ + +#ifndef WGL_EXT_pixel_format +#define WGL_EXT_pixel_format 1 + +#define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000 +#define WGL_DRAW_TO_WINDOW_EXT 0x2001 +#define WGL_DRAW_TO_BITMAP_EXT 0x2002 +#define WGL_ACCELERATION_EXT 0x2003 +#define WGL_NEED_PALETTE_EXT 0x2004 +#define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005 +#define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006 +#define WGL_SWAP_METHOD_EXT 0x2007 +#define WGL_NUMBER_OVERLAYS_EXT 0x2008 +#define WGL_NUMBER_UNDERLAYS_EXT 0x2009 +#define WGL_TRANSPARENT_EXT 0x200A +#define WGL_TRANSPARENT_VALUE_EXT 0x200B +#define WGL_SHARE_DEPTH_EXT 0x200C +#define WGL_SHARE_STENCIL_EXT 0x200D +#define WGL_SHARE_ACCUM_EXT 0x200E +#define WGL_SUPPORT_GDI_EXT 0x200F +#define WGL_SUPPORT_OPENGL_EXT 0x2010 +#define WGL_DOUBLE_BUFFER_EXT 0x2011 +#define WGL_STEREO_EXT 0x2012 +#define WGL_PIXEL_TYPE_EXT 0x2013 +#define WGL_COLOR_BITS_EXT 0x2014 +#define WGL_RED_BITS_EXT 0x2015 +#define WGL_RED_SHIFT_EXT 0x2016 +#define WGL_GREEN_BITS_EXT 0x2017 +#define WGL_GREEN_SHIFT_EXT 0x2018 +#define WGL_BLUE_BITS_EXT 0x2019 +#define WGL_BLUE_SHIFT_EXT 0x201A +#define WGL_ALPHA_BITS_EXT 0x201B +#define WGL_ALPHA_SHIFT_EXT 0x201C +#define WGL_ACCUM_BITS_EXT 0x201D +#define WGL_ACCUM_RED_BITS_EXT 0x201E +#define WGL_ACCUM_GREEN_BITS_EXT 0x201F +#define WGL_ACCUM_BLUE_BITS_EXT 0x2020 +#define WGL_ACCUM_ALPHA_BITS_EXT 0x2021 +#define WGL_DEPTH_BITS_EXT 0x2022 +#define WGL_STENCIL_BITS_EXT 0x2023 +#define WGL_AUX_BUFFERS_EXT 0x2024 +#define WGL_NO_ACCELERATION_EXT 0x2025 +#define WGL_GENERIC_ACCELERATION_EXT 0x2026 +#define WGL_FULL_ACCELERATION_EXT 0x2027 +#define WGL_SWAP_EXCHANGE_EXT 0x2028 +#define WGL_SWAP_COPY_EXT 0x2029 +#define WGL_SWAP_UNDEFINED_EXT 0x202A +#define WGL_TYPE_RGBA_EXT 0x202B +#define WGL_TYPE_COLORINDEX_EXT 0x202C + +typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int* piAttribIList, const FLOAT* pfAttribFList, UINT nMaxFormats, int* piFormats, UINT* nNumFormats); +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, FLOAT* pfValues); +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, int* piValues); + +#define wglChoosePixelFormatEXT WGLEW_GET_FUN(__wglewChoosePixelFormatEXT) +#define wglGetPixelFormatAttribfvEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvEXT) +#define wglGetPixelFormatAttribivEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribivEXT) + +#define WGLEW_EXT_pixel_format WGLEW_GET_VAR(__WGLEW_EXT_pixel_format) + +#endif /* WGL_EXT_pixel_format */ + +/* ------------------- WGL_EXT_pixel_format_packed_float ------------------- */ + +#ifndef WGL_EXT_pixel_format_packed_float +#define WGL_EXT_pixel_format_packed_float 1 + +#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8 + +#define WGLEW_EXT_pixel_format_packed_float WGLEW_GET_VAR(__WGLEW_EXT_pixel_format_packed_float) + +#endif /* WGL_EXT_pixel_format_packed_float */ + +/* -------------------------- WGL_EXT_swap_control ------------------------- */ + +#ifndef WGL_EXT_swap_control +#define WGL_EXT_swap_control 1 + +typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void); +typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval); + +#define wglGetSwapIntervalEXT WGLEW_GET_FUN(__wglewGetSwapIntervalEXT) +#define wglSwapIntervalEXT WGLEW_GET_FUN(__wglewSwapIntervalEXT) + +#define WGLEW_EXT_swap_control WGLEW_GET_VAR(__WGLEW_EXT_swap_control) + +#endif /* WGL_EXT_swap_control */ + +/* ----------------------- WGL_EXT_swap_control_tear ----------------------- */ + +#ifndef WGL_EXT_swap_control_tear +#define WGL_EXT_swap_control_tear 1 + +#define WGLEW_EXT_swap_control_tear WGLEW_GET_VAR(__WGLEW_EXT_swap_control_tear) + +#endif /* WGL_EXT_swap_control_tear */ + +/* --------------------- WGL_I3D_digital_video_control --------------------- */ + +#ifndef WGL_I3D_digital_video_control +#define WGL_I3D_digital_video_control 1 + +#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050 +#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051 +#define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052 +#define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053 + +typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue); +typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue); + +#define wglGetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewGetDigitalVideoParametersI3D) +#define wglSetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewSetDigitalVideoParametersI3D) + +#define WGLEW_I3D_digital_video_control WGLEW_GET_VAR(__WGLEW_I3D_digital_video_control) + +#endif /* WGL_I3D_digital_video_control */ + +/* ----------------------------- WGL_I3D_gamma ----------------------------- */ + +#ifndef WGL_I3D_gamma +#define WGL_I3D_gamma 1 + +#define WGL_GAMMA_TABLE_SIZE_I3D 0x204E +#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F + +typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT* puRed, USHORT* puGreen, USHORT* puBlue); +typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue); +typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT* puRed, const USHORT* puGreen, const USHORT* puBlue); +typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue); + +#define wglGetGammaTableI3D WGLEW_GET_FUN(__wglewGetGammaTableI3D) +#define wglGetGammaTableParametersI3D WGLEW_GET_FUN(__wglewGetGammaTableParametersI3D) +#define wglSetGammaTableI3D WGLEW_GET_FUN(__wglewSetGammaTableI3D) +#define wglSetGammaTableParametersI3D WGLEW_GET_FUN(__wglewSetGammaTableParametersI3D) + +#define WGLEW_I3D_gamma WGLEW_GET_VAR(__WGLEW_I3D_gamma) + +#endif /* WGL_I3D_gamma */ + +/* ---------------------------- WGL_I3D_genlock ---------------------------- */ + +#ifndef WGL_I3D_genlock +#define WGL_I3D_genlock 1 + +#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044 +#define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045 +#define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046 +#define WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D 0x2047 +#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048 +#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049 +#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A +#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B +#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C + +typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC); +typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC); +typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate); +typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay); +typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge); +typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource); +typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT* uRate); +typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT* uDelay); +typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT* uEdge); +typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT* uSource); +typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL* pFlag); +typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT* uMaxLineDelay, UINT* uMaxPixelDelay); + +#define wglDisableGenlockI3D WGLEW_GET_FUN(__wglewDisableGenlockI3D) +#define wglEnableGenlockI3D WGLEW_GET_FUN(__wglewEnableGenlockI3D) +#define wglGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGenlockSampleRateI3D) +#define wglGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGenlockSourceDelayI3D) +#define wglGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGenlockSourceEdgeI3D) +#define wglGenlockSourceI3D WGLEW_GET_FUN(__wglewGenlockSourceI3D) +#define wglGetGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGetGenlockSampleRateI3D) +#define wglGetGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGetGenlockSourceDelayI3D) +#define wglGetGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGetGenlockSourceEdgeI3D) +#define wglGetGenlockSourceI3D WGLEW_GET_FUN(__wglewGetGenlockSourceI3D) +#define wglIsEnabledGenlockI3D WGLEW_GET_FUN(__wglewIsEnabledGenlockI3D) +#define wglQueryGenlockMaxSourceDelayI3D WGLEW_GET_FUN(__wglewQueryGenlockMaxSourceDelayI3D) + +#define WGLEW_I3D_genlock WGLEW_GET_VAR(__WGLEW_I3D_genlock) + +#endif /* WGL_I3D_genlock */ + +/* -------------------------- WGL_I3D_image_buffer ------------------------- */ + +#ifndef WGL_I3D_image_buffer +#define WGL_I3D_image_buffer 1 + +#define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001 +#define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002 + +typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const HANDLE* pEvent, const LPVOID* pAddress, const DWORD* pSize, UINT count); +typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags); +typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress); +typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const LPVOID* pAddress, UINT count); + +#define wglAssociateImageBufferEventsI3D WGLEW_GET_FUN(__wglewAssociateImageBufferEventsI3D) +#define wglCreateImageBufferI3D WGLEW_GET_FUN(__wglewCreateImageBufferI3D) +#define wglDestroyImageBufferI3D WGLEW_GET_FUN(__wglewDestroyImageBufferI3D) +#define wglReleaseImageBufferEventsI3D WGLEW_GET_FUN(__wglewReleaseImageBufferEventsI3D) + +#define WGLEW_I3D_image_buffer WGLEW_GET_VAR(__WGLEW_I3D_image_buffer) + +#endif /* WGL_I3D_image_buffer */ + +/* ------------------------ WGL_I3D_swap_frame_lock ------------------------ */ + +#ifndef WGL_I3D_swap_frame_lock +#define WGL_I3D_swap_frame_lock 1 + +typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (void); +typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (void); +typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL* pFlag); +typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL* pFlag); + +#define wglDisableFrameLockI3D WGLEW_GET_FUN(__wglewDisableFrameLockI3D) +#define wglEnableFrameLockI3D WGLEW_GET_FUN(__wglewEnableFrameLockI3D) +#define wglIsEnabledFrameLockI3D WGLEW_GET_FUN(__wglewIsEnabledFrameLockI3D) +#define wglQueryFrameLockMasterI3D WGLEW_GET_FUN(__wglewQueryFrameLockMasterI3D) + +#define WGLEW_I3D_swap_frame_lock WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_lock) + +#endif /* WGL_I3D_swap_frame_lock */ + +/* ------------------------ WGL_I3D_swap_frame_usage ----------------------- */ + +#ifndef WGL_I3D_swap_frame_usage +#define WGL_I3D_swap_frame_usage 1 + +typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void); +typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void); +typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float* pUsage); +typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWORD* pMissedFrames, float* pLastMissedUsage); + +#define wglBeginFrameTrackingI3D WGLEW_GET_FUN(__wglewBeginFrameTrackingI3D) +#define wglEndFrameTrackingI3D WGLEW_GET_FUN(__wglewEndFrameTrackingI3D) +#define wglGetFrameUsageI3D WGLEW_GET_FUN(__wglewGetFrameUsageI3D) +#define wglQueryFrameTrackingI3D WGLEW_GET_FUN(__wglewQueryFrameTrackingI3D) + +#define WGLEW_I3D_swap_frame_usage WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_usage) + +#endif /* WGL_I3D_swap_frame_usage */ + +/* --------------------------- WGL_NV_DX_interop --------------------------- */ + +#ifndef WGL_NV_DX_interop +#define WGL_NV_DX_interop 1 + +#define WGL_ACCESS_READ_ONLY_NV 0x00000000 +#define WGL_ACCESS_READ_WRITE_NV 0x00000001 +#define WGL_ACCESS_WRITE_DISCARD_NV 0x00000002 + +typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice); +typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects); +typedef BOOL (WINAPI * PFNWGLDXOBJECTACCESSNVPROC) (HANDLE hObject, GLenum access); +typedef HANDLE (WINAPI * PFNWGLDXOPENDEVICENVPROC) (void* dxDevice); +typedef HANDLE (WINAPI * PFNWGLDXREGISTEROBJECTNVPROC) (HANDLE hDevice, void* dxObject, GLuint name, GLenum type, GLenum access); +typedef BOOL (WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC) (void* dxObject, HANDLE shareHandle); +typedef BOOL (WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects); +typedef BOOL (WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC) (HANDLE hDevice, HANDLE hObject); + +#define wglDXCloseDeviceNV WGLEW_GET_FUN(__wglewDXCloseDeviceNV) +#define wglDXLockObjectsNV WGLEW_GET_FUN(__wglewDXLockObjectsNV) +#define wglDXObjectAccessNV WGLEW_GET_FUN(__wglewDXObjectAccessNV) +#define wglDXOpenDeviceNV WGLEW_GET_FUN(__wglewDXOpenDeviceNV) +#define wglDXRegisterObjectNV WGLEW_GET_FUN(__wglewDXRegisterObjectNV) +#define wglDXSetResourceShareHandleNV WGLEW_GET_FUN(__wglewDXSetResourceShareHandleNV) +#define wglDXUnlockObjectsNV WGLEW_GET_FUN(__wglewDXUnlockObjectsNV) +#define wglDXUnregisterObjectNV WGLEW_GET_FUN(__wglewDXUnregisterObjectNV) + +#define WGLEW_NV_DX_interop WGLEW_GET_VAR(__WGLEW_NV_DX_interop) + +#endif /* WGL_NV_DX_interop */ + +/* --------------------------- WGL_NV_DX_interop2 -------------------------- */ + +#ifndef WGL_NV_DX_interop2 +#define WGL_NV_DX_interop2 1 + +#define WGLEW_NV_DX_interop2 WGLEW_GET_VAR(__WGLEW_NV_DX_interop2) + +#endif /* WGL_NV_DX_interop2 */ + +/* --------------------------- WGL_NV_copy_image --------------------------- */ + +#ifndef WGL_NV_copy_image +#define WGL_NV_copy_image 1 + +typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); + +#define wglCopyImageSubDataNV WGLEW_GET_FUN(__wglewCopyImageSubDataNV) + +#define WGLEW_NV_copy_image WGLEW_GET_VAR(__WGLEW_NV_copy_image) + +#endif /* WGL_NV_copy_image */ + +/* ------------------------ WGL_NV_delay_before_swap ----------------------- */ + +#ifndef WGL_NV_delay_before_swap +#define WGL_NV_delay_before_swap 1 + +typedef BOOL (WINAPI * PFNWGLDELAYBEFORESWAPNVPROC) (HDC hDC, GLfloat seconds); + +#define wglDelayBeforeSwapNV WGLEW_GET_FUN(__wglewDelayBeforeSwapNV) + +#define WGLEW_NV_delay_before_swap WGLEW_GET_VAR(__WGLEW_NV_delay_before_swap) + +#endif /* WGL_NV_delay_before_swap */ + +/* -------------------------- WGL_NV_float_buffer -------------------------- */ + +#ifndef WGL_NV_float_buffer +#define WGL_NV_float_buffer 1 + +#define WGL_FLOAT_COMPONENTS_NV 0x20B0 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4 +#define WGL_TEXTURE_FLOAT_R_NV 0x20B5 +#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6 +#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7 +#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8 + +#define WGLEW_NV_float_buffer WGLEW_GET_VAR(__WGLEW_NV_float_buffer) + +#endif /* WGL_NV_float_buffer */ + +/* -------------------------- WGL_NV_gpu_affinity -------------------------- */ + +#ifndef WGL_NV_gpu_affinity +#define WGL_NV_gpu_affinity 1 + +#define WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0 +#define WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1 + +DECLARE_HANDLE(HGPUNV); +typedef struct _GPU_DEVICE { + DWORD cb; + CHAR DeviceName[32]; + CHAR DeviceString[128]; + DWORD Flags; + RECT rcVirtualScreen; +} GPU_DEVICE, *PGPU_DEVICE; + +typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList); +typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc); +typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice); +typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu); +typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu); + +#define wglCreateAffinityDCNV WGLEW_GET_FUN(__wglewCreateAffinityDCNV) +#define wglDeleteDCNV WGLEW_GET_FUN(__wglewDeleteDCNV) +#define wglEnumGpuDevicesNV WGLEW_GET_FUN(__wglewEnumGpuDevicesNV) +#define wglEnumGpusFromAffinityDCNV WGLEW_GET_FUN(__wglewEnumGpusFromAffinityDCNV) +#define wglEnumGpusNV WGLEW_GET_FUN(__wglewEnumGpusNV) + +#define WGLEW_NV_gpu_affinity WGLEW_GET_VAR(__WGLEW_NV_gpu_affinity) + +#endif /* WGL_NV_gpu_affinity */ + +/* ------------------------ WGL_NV_multigpu_context ------------------------ */ + +#ifndef WGL_NV_multigpu_context +#define WGL_NV_multigpu_context 1 + +#define WGL_CONTEXT_MULTIGPU_ATTRIB_NV 0x20AA +#define WGL_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB +#define WGL_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC +#define WGL_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD +#define WGL_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE + +#define WGLEW_NV_multigpu_context WGLEW_GET_VAR(__WGLEW_NV_multigpu_context) + +#endif /* WGL_NV_multigpu_context */ + +/* ---------------------- WGL_NV_multisample_coverage ---------------------- */ + +#ifndef WGL_NV_multisample_coverage +#define WGL_NV_multisample_coverage 1 + +#define WGL_COVERAGE_SAMPLES_NV 0x2042 +#define WGL_COLOR_SAMPLES_NV 0x20B9 + +#define WGLEW_NV_multisample_coverage WGLEW_GET_VAR(__WGLEW_NV_multisample_coverage) + +#endif /* WGL_NV_multisample_coverage */ + +/* -------------------------- WGL_NV_present_video ------------------------- */ + +#ifndef WGL_NV_present_video +#define WGL_NV_present_video 1 + +#define WGL_NUM_VIDEO_SLOTS_NV 0x20F0 + +DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV); + +typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDc, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int* piAttribList); +typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDc, HVIDEOOUTPUTDEVICENV* phDeviceList); +typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int* piValue); + +#define wglBindVideoDeviceNV WGLEW_GET_FUN(__wglewBindVideoDeviceNV) +#define wglEnumerateVideoDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoDevicesNV) +#define wglQueryCurrentContextNV WGLEW_GET_FUN(__wglewQueryCurrentContextNV) + +#define WGLEW_NV_present_video WGLEW_GET_VAR(__WGLEW_NV_present_video) + +#endif /* WGL_NV_present_video */ + +/* ---------------------- WGL_NV_render_depth_texture ---------------------- */ + +#ifndef WGL_NV_render_depth_texture +#define WGL_NV_render_depth_texture 1 + +#define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4 +#define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5 +#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6 +#define WGL_DEPTH_COMPONENT_NV 0x20A7 + +#define WGLEW_NV_render_depth_texture WGLEW_GET_VAR(__WGLEW_NV_render_depth_texture) + +#endif /* WGL_NV_render_depth_texture */ + +/* -------------------- WGL_NV_render_texture_rectangle -------------------- */ + +#ifndef WGL_NV_render_texture_rectangle +#define WGL_NV_render_texture_rectangle 1 + +#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1 +#define WGL_TEXTURE_RECTANGLE_NV 0x20A2 + +#define WGLEW_NV_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_NV_render_texture_rectangle) + +#endif /* WGL_NV_render_texture_rectangle */ + +/* --------------------------- WGL_NV_swap_group --------------------------- */ + +#ifndef WGL_NV_swap_group +#define WGL_NV_swap_group 1 + +typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier); +typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group); +typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint* count); +typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint* maxGroups, GLuint* maxBarriers); +typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint* group, GLuint* barrier); +typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC); + +#define wglBindSwapBarrierNV WGLEW_GET_FUN(__wglewBindSwapBarrierNV) +#define wglJoinSwapGroupNV WGLEW_GET_FUN(__wglewJoinSwapGroupNV) +#define wglQueryFrameCountNV WGLEW_GET_FUN(__wglewQueryFrameCountNV) +#define wglQueryMaxSwapGroupsNV WGLEW_GET_FUN(__wglewQueryMaxSwapGroupsNV) +#define wglQuerySwapGroupNV WGLEW_GET_FUN(__wglewQuerySwapGroupNV) +#define wglResetFrameCountNV WGLEW_GET_FUN(__wglewResetFrameCountNV) + +#define WGLEW_NV_swap_group WGLEW_GET_VAR(__WGLEW_NV_swap_group) + +#endif /* WGL_NV_swap_group */ + +/* ----------------------- WGL_NV_vertex_array_range ----------------------- */ + +#ifndef WGL_NV_vertex_array_range +#define WGL_NV_vertex_array_range 1 + +typedef void* (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); +typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void* pointer); + +#define wglAllocateMemoryNV WGLEW_GET_FUN(__wglewAllocateMemoryNV) +#define wglFreeMemoryNV WGLEW_GET_FUN(__wglewFreeMemoryNV) + +#define WGLEW_NV_vertex_array_range WGLEW_GET_VAR(__WGLEW_NV_vertex_array_range) + +#endif /* WGL_NV_vertex_array_range */ + +/* -------------------------- WGL_NV_video_capture ------------------------- */ + +#ifndef WGL_NV_video_capture +#define WGL_NV_video_capture 1 + +#define WGL_UNIQUE_ID_NV 0x20CE +#define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF + +DECLARE_HANDLE(HVIDEOINPUTDEVICENV); + +typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice); +typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV* phDeviceList); +typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); +typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int* piValue); +typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); + +#define wglBindVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewBindVideoCaptureDeviceNV) +#define wglEnumerateVideoCaptureDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoCaptureDevicesNV) +#define wglLockVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewLockVideoCaptureDeviceNV) +#define wglQueryVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewQueryVideoCaptureDeviceNV) +#define wglReleaseVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoCaptureDeviceNV) + +#define WGLEW_NV_video_capture WGLEW_GET_VAR(__WGLEW_NV_video_capture) + +#endif /* WGL_NV_video_capture */ + +/* -------------------------- WGL_NV_video_output -------------------------- */ + +#ifndef WGL_NV_video_output +#define WGL_NV_video_output 1 + +#define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0 +#define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1 +#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2 +#define WGL_VIDEO_OUT_COLOR_NV 0x20C3 +#define WGL_VIDEO_OUT_ALPHA_NV 0x20C4 +#define WGL_VIDEO_OUT_DEPTH_NV 0x20C5 +#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 +#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 +#define WGL_VIDEO_OUT_FRAME 0x20C8 +#define WGL_VIDEO_OUT_FIELD_1 0x20C9 +#define WGL_VIDEO_OUT_FIELD_2 0x20CA +#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB +#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC + +DECLARE_HANDLE(HPVIDEODEV); + +typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer); +typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV* hVideoDevice); +typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long* pulCounterOutputVideo); +typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice); +typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer); +typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long* pulCounterPbuffer, BOOL bBlock); + +#define wglBindVideoImageNV WGLEW_GET_FUN(__wglewBindVideoImageNV) +#define wglGetVideoDeviceNV WGLEW_GET_FUN(__wglewGetVideoDeviceNV) +#define wglGetVideoInfoNV WGLEW_GET_FUN(__wglewGetVideoInfoNV) +#define wglReleaseVideoDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoDeviceNV) +#define wglReleaseVideoImageNV WGLEW_GET_FUN(__wglewReleaseVideoImageNV) +#define wglSendPbufferToVideoNV WGLEW_GET_FUN(__wglewSendPbufferToVideoNV) + +#define WGLEW_NV_video_output WGLEW_GET_VAR(__WGLEW_NV_video_output) + +#endif /* WGL_NV_video_output */ + +/* -------------------------- WGL_OML_sync_control ------------------------- */ + +#ifndef WGL_OML_sync_control +#define WGL_OML_sync_control 1 + +typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32* numerator, INT32* denominator); +typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64* ust, INT64* msc, INT64* sbc); +typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); +typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, INT fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); +typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64* ust, INT64* msc, INT64* sbc); +typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64* ust, INT64* msc, INT64* sbc); + +#define wglGetMscRateOML WGLEW_GET_FUN(__wglewGetMscRateOML) +#define wglGetSyncValuesOML WGLEW_GET_FUN(__wglewGetSyncValuesOML) +#define wglSwapBuffersMscOML WGLEW_GET_FUN(__wglewSwapBuffersMscOML) +#define wglSwapLayerBuffersMscOML WGLEW_GET_FUN(__wglewSwapLayerBuffersMscOML) +#define wglWaitForMscOML WGLEW_GET_FUN(__wglewWaitForMscOML) +#define wglWaitForSbcOML WGLEW_GET_FUN(__wglewWaitForSbcOML) + +#define WGLEW_OML_sync_control WGLEW_GET_VAR(__WGLEW_OML_sync_control) + +#endif /* WGL_OML_sync_control */ + +/* ------------------------------------------------------------------------- */ + +#define WGLEW_FUN_EXPORT GLEW_FUN_EXPORT +#define WGLEW_VAR_EXPORT GLEW_VAR_EXPORT + +WGLEW_FUN_EXPORT PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL; + +WGLEW_FUN_EXPORT PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC __wglewBlitContextFramebufferAMD; +WGLEW_FUN_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC __wglewCreateAssociatedContextAMD; +WGLEW_FUN_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __wglewCreateAssociatedContextAttribsAMD; +WGLEW_FUN_EXPORT PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC __wglewDeleteAssociatedContextAMD; +WGLEW_FUN_EXPORT PFNWGLGETCONTEXTGPUIDAMDPROC __wglewGetContextGPUIDAMD; +WGLEW_FUN_EXPORT PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC __wglewGetCurrentAssociatedContextAMD; +WGLEW_FUN_EXPORT PFNWGLGETGPUIDSAMDPROC __wglewGetGPUIDsAMD; +WGLEW_FUN_EXPORT PFNWGLGETGPUINFOAMDPROC __wglewGetGPUInfoAMD; +WGLEW_FUN_EXPORT PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __wglewMakeAssociatedContextCurrentAMD; + +WGLEW_FUN_EXPORT PFNWGLCREATEBUFFERREGIONARBPROC __wglewCreateBufferRegionARB; +WGLEW_FUN_EXPORT PFNWGLDELETEBUFFERREGIONARBPROC __wglewDeleteBufferRegionARB; +WGLEW_FUN_EXPORT PFNWGLRESTOREBUFFERREGIONARBPROC __wglewRestoreBufferRegionARB; +WGLEW_FUN_EXPORT PFNWGLSAVEBUFFERREGIONARBPROC __wglewSaveBufferRegionARB; + +WGLEW_FUN_EXPORT PFNWGLCREATECONTEXTATTRIBSARBPROC __wglewCreateContextAttribsARB; + +WGLEW_FUN_EXPORT PFNWGLGETEXTENSIONSSTRINGARBPROC __wglewGetExtensionsStringARB; + +WGLEW_FUN_EXPORT PFNWGLGETCURRENTREADDCARBPROC __wglewGetCurrentReadDCARB; +WGLEW_FUN_EXPORT PFNWGLMAKECONTEXTCURRENTARBPROC __wglewMakeContextCurrentARB; + +WGLEW_FUN_EXPORT PFNWGLCREATEPBUFFERARBPROC __wglewCreatePbufferARB; +WGLEW_FUN_EXPORT PFNWGLDESTROYPBUFFERARBPROC __wglewDestroyPbufferARB; +WGLEW_FUN_EXPORT PFNWGLGETPBUFFERDCARBPROC __wglewGetPbufferDCARB; +WGLEW_FUN_EXPORT PFNWGLQUERYPBUFFERARBPROC __wglewQueryPbufferARB; +WGLEW_FUN_EXPORT PFNWGLRELEASEPBUFFERDCARBPROC __wglewReleasePbufferDCARB; + +WGLEW_FUN_EXPORT PFNWGLCHOOSEPIXELFORMATARBPROC __wglewChoosePixelFormatARB; +WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBFVARBPROC __wglewGetPixelFormatAttribfvARB; +WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBIVARBPROC __wglewGetPixelFormatAttribivARB; + +WGLEW_FUN_EXPORT PFNWGLBINDTEXIMAGEARBPROC __wglewBindTexImageARB; +WGLEW_FUN_EXPORT PFNWGLRELEASETEXIMAGEARBPROC __wglewReleaseTexImageARB; +WGLEW_FUN_EXPORT PFNWGLSETPBUFFERATTRIBARBPROC __wglewSetPbufferAttribARB; + +WGLEW_FUN_EXPORT PFNWGLBINDDISPLAYCOLORTABLEEXTPROC __wglewBindDisplayColorTableEXT; +WGLEW_FUN_EXPORT PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC __wglewCreateDisplayColorTableEXT; +WGLEW_FUN_EXPORT PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC __wglewDestroyDisplayColorTableEXT; +WGLEW_FUN_EXPORT PFNWGLLOADDISPLAYCOLORTABLEEXTPROC __wglewLoadDisplayColorTableEXT; + +WGLEW_FUN_EXPORT PFNWGLGETEXTENSIONSSTRINGEXTPROC __wglewGetExtensionsStringEXT; + +WGLEW_FUN_EXPORT PFNWGLGETCURRENTREADDCEXTPROC __wglewGetCurrentReadDCEXT; +WGLEW_FUN_EXPORT PFNWGLMAKECONTEXTCURRENTEXTPROC __wglewMakeContextCurrentEXT; + +WGLEW_FUN_EXPORT PFNWGLCREATEPBUFFEREXTPROC __wglewCreatePbufferEXT; +WGLEW_FUN_EXPORT PFNWGLDESTROYPBUFFEREXTPROC __wglewDestroyPbufferEXT; +WGLEW_FUN_EXPORT PFNWGLGETPBUFFERDCEXTPROC __wglewGetPbufferDCEXT; +WGLEW_FUN_EXPORT PFNWGLQUERYPBUFFEREXTPROC __wglewQueryPbufferEXT; +WGLEW_FUN_EXPORT PFNWGLRELEASEPBUFFERDCEXTPROC __wglewReleasePbufferDCEXT; + +WGLEW_FUN_EXPORT PFNWGLCHOOSEPIXELFORMATEXTPROC __wglewChoosePixelFormatEXT; +WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBFVEXTPROC __wglewGetPixelFormatAttribfvEXT; +WGLEW_FUN_EXPORT PFNWGLGETPIXELFORMATATTRIBIVEXTPROC __wglewGetPixelFormatAttribivEXT; + +WGLEW_FUN_EXPORT PFNWGLGETSWAPINTERVALEXTPROC __wglewGetSwapIntervalEXT; +WGLEW_FUN_EXPORT PFNWGLSWAPINTERVALEXTPROC __wglewSwapIntervalEXT; + +WGLEW_FUN_EXPORT PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC __wglewGetDigitalVideoParametersI3D; +WGLEW_FUN_EXPORT PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC __wglewSetDigitalVideoParametersI3D; + +WGLEW_FUN_EXPORT PFNWGLGETGAMMATABLEI3DPROC __wglewGetGammaTableI3D; +WGLEW_FUN_EXPORT PFNWGLGETGAMMATABLEPARAMETERSI3DPROC __wglewGetGammaTableParametersI3D; +WGLEW_FUN_EXPORT PFNWGLSETGAMMATABLEI3DPROC __wglewSetGammaTableI3D; +WGLEW_FUN_EXPORT PFNWGLSETGAMMATABLEPARAMETERSI3DPROC __wglewSetGammaTableParametersI3D; + +WGLEW_FUN_EXPORT PFNWGLDISABLEGENLOCKI3DPROC __wglewDisableGenlockI3D; +WGLEW_FUN_EXPORT PFNWGLENABLEGENLOCKI3DPROC __wglewEnableGenlockI3D; +WGLEW_FUN_EXPORT PFNWGLGENLOCKSAMPLERATEI3DPROC __wglewGenlockSampleRateI3D; +WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEDELAYI3DPROC __wglewGenlockSourceDelayI3D; +WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEEDGEI3DPROC __wglewGenlockSourceEdgeI3D; +WGLEW_FUN_EXPORT PFNWGLGENLOCKSOURCEI3DPROC __wglewGenlockSourceI3D; +WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSAMPLERATEI3DPROC __wglewGetGenlockSampleRateI3D; +WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEDELAYI3DPROC __wglewGetGenlockSourceDelayI3D; +WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEEDGEI3DPROC __wglewGetGenlockSourceEdgeI3D; +WGLEW_FUN_EXPORT PFNWGLGETGENLOCKSOURCEI3DPROC __wglewGetGenlockSourceI3D; +WGLEW_FUN_EXPORT PFNWGLISENABLEDGENLOCKI3DPROC __wglewIsEnabledGenlockI3D; +WGLEW_FUN_EXPORT PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC __wglewQueryGenlockMaxSourceDelayI3D; + +WGLEW_FUN_EXPORT PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC __wglewAssociateImageBufferEventsI3D; +WGLEW_FUN_EXPORT PFNWGLCREATEIMAGEBUFFERI3DPROC __wglewCreateImageBufferI3D; +WGLEW_FUN_EXPORT PFNWGLDESTROYIMAGEBUFFERI3DPROC __wglewDestroyImageBufferI3D; +WGLEW_FUN_EXPORT PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC __wglewReleaseImageBufferEventsI3D; + +WGLEW_FUN_EXPORT PFNWGLDISABLEFRAMELOCKI3DPROC __wglewDisableFrameLockI3D; +WGLEW_FUN_EXPORT PFNWGLENABLEFRAMELOCKI3DPROC __wglewEnableFrameLockI3D; +WGLEW_FUN_EXPORT PFNWGLISENABLEDFRAMELOCKI3DPROC __wglewIsEnabledFrameLockI3D; +WGLEW_FUN_EXPORT PFNWGLQUERYFRAMELOCKMASTERI3DPROC __wglewQueryFrameLockMasterI3D; + +WGLEW_FUN_EXPORT PFNWGLBEGINFRAMETRACKINGI3DPROC __wglewBeginFrameTrackingI3D; +WGLEW_FUN_EXPORT PFNWGLENDFRAMETRACKINGI3DPROC __wglewEndFrameTrackingI3D; +WGLEW_FUN_EXPORT PFNWGLGETFRAMEUSAGEI3DPROC __wglewGetFrameUsageI3D; +WGLEW_FUN_EXPORT PFNWGLQUERYFRAMETRACKINGI3DPROC __wglewQueryFrameTrackingI3D; + +WGLEW_FUN_EXPORT PFNWGLDXCLOSEDEVICENVPROC __wglewDXCloseDeviceNV; +WGLEW_FUN_EXPORT PFNWGLDXLOCKOBJECTSNVPROC __wglewDXLockObjectsNV; +WGLEW_FUN_EXPORT PFNWGLDXOBJECTACCESSNVPROC __wglewDXObjectAccessNV; +WGLEW_FUN_EXPORT PFNWGLDXOPENDEVICENVPROC __wglewDXOpenDeviceNV; +WGLEW_FUN_EXPORT PFNWGLDXREGISTEROBJECTNVPROC __wglewDXRegisterObjectNV; +WGLEW_FUN_EXPORT PFNWGLDXSETRESOURCESHAREHANDLENVPROC __wglewDXSetResourceShareHandleNV; +WGLEW_FUN_EXPORT PFNWGLDXUNLOCKOBJECTSNVPROC __wglewDXUnlockObjectsNV; +WGLEW_FUN_EXPORT PFNWGLDXUNREGISTEROBJECTNVPROC __wglewDXUnregisterObjectNV; + +WGLEW_FUN_EXPORT PFNWGLCOPYIMAGESUBDATANVPROC __wglewCopyImageSubDataNV; + +WGLEW_FUN_EXPORT PFNWGLDELAYBEFORESWAPNVPROC __wglewDelayBeforeSwapNV; + +WGLEW_FUN_EXPORT PFNWGLCREATEAFFINITYDCNVPROC __wglewCreateAffinityDCNV; +WGLEW_FUN_EXPORT PFNWGLDELETEDCNVPROC __wglewDeleteDCNV; +WGLEW_FUN_EXPORT PFNWGLENUMGPUDEVICESNVPROC __wglewEnumGpuDevicesNV; +WGLEW_FUN_EXPORT PFNWGLENUMGPUSFROMAFFINITYDCNVPROC __wglewEnumGpusFromAffinityDCNV; +WGLEW_FUN_EXPORT PFNWGLENUMGPUSNVPROC __wglewEnumGpusNV; + +WGLEW_FUN_EXPORT PFNWGLBINDVIDEODEVICENVPROC __wglewBindVideoDeviceNV; +WGLEW_FUN_EXPORT PFNWGLENUMERATEVIDEODEVICESNVPROC __wglewEnumerateVideoDevicesNV; +WGLEW_FUN_EXPORT PFNWGLQUERYCURRENTCONTEXTNVPROC __wglewQueryCurrentContextNV; + +WGLEW_FUN_EXPORT PFNWGLBINDSWAPBARRIERNVPROC __wglewBindSwapBarrierNV; +WGLEW_FUN_EXPORT PFNWGLJOINSWAPGROUPNVPROC __wglewJoinSwapGroupNV; +WGLEW_FUN_EXPORT PFNWGLQUERYFRAMECOUNTNVPROC __wglewQueryFrameCountNV; +WGLEW_FUN_EXPORT PFNWGLQUERYMAXSWAPGROUPSNVPROC __wglewQueryMaxSwapGroupsNV; +WGLEW_FUN_EXPORT PFNWGLQUERYSWAPGROUPNVPROC __wglewQuerySwapGroupNV; +WGLEW_FUN_EXPORT PFNWGLRESETFRAMECOUNTNVPROC __wglewResetFrameCountNV; + +WGLEW_FUN_EXPORT PFNWGLALLOCATEMEMORYNVPROC __wglewAllocateMemoryNV; +WGLEW_FUN_EXPORT PFNWGLFREEMEMORYNVPROC __wglewFreeMemoryNV; + +WGLEW_FUN_EXPORT PFNWGLBINDVIDEOCAPTUREDEVICENVPROC __wglewBindVideoCaptureDeviceNV; +WGLEW_FUN_EXPORT PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC __wglewEnumerateVideoCaptureDevicesNV; +WGLEW_FUN_EXPORT PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC __wglewLockVideoCaptureDeviceNV; +WGLEW_FUN_EXPORT PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC __wglewQueryVideoCaptureDeviceNV; +WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC __wglewReleaseVideoCaptureDeviceNV; + +WGLEW_FUN_EXPORT PFNWGLBINDVIDEOIMAGENVPROC __wglewBindVideoImageNV; +WGLEW_FUN_EXPORT PFNWGLGETVIDEODEVICENVPROC __wglewGetVideoDeviceNV; +WGLEW_FUN_EXPORT PFNWGLGETVIDEOINFONVPROC __wglewGetVideoInfoNV; +WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEODEVICENVPROC __wglewReleaseVideoDeviceNV; +WGLEW_FUN_EXPORT PFNWGLRELEASEVIDEOIMAGENVPROC __wglewReleaseVideoImageNV; +WGLEW_FUN_EXPORT PFNWGLSENDPBUFFERTOVIDEONVPROC __wglewSendPbufferToVideoNV; + +WGLEW_FUN_EXPORT PFNWGLGETMSCRATEOMLPROC __wglewGetMscRateOML; +WGLEW_FUN_EXPORT PFNWGLGETSYNCVALUESOMLPROC __wglewGetSyncValuesOML; +WGLEW_FUN_EXPORT PFNWGLSWAPBUFFERSMSCOMLPROC __wglewSwapBuffersMscOML; +WGLEW_FUN_EXPORT PFNWGLSWAPLAYERBUFFERSMSCOMLPROC __wglewSwapLayerBuffersMscOML; +WGLEW_FUN_EXPORT PFNWGLWAITFORMSCOMLPROC __wglewWaitForMscOML; +WGLEW_FUN_EXPORT PFNWGLWAITFORSBCOMLPROC __wglewWaitForSbcOML; +WGLEW_VAR_EXPORT GLboolean __WGLEW_3DFX_multisample; +WGLEW_VAR_EXPORT GLboolean __WGLEW_3DL_stereo_control; +WGLEW_VAR_EXPORT GLboolean __WGLEW_AMD_gpu_association; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_buffer_region; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_context_flush_control; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_no_error; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_profile; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_create_context_robustness; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_extensions_string; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_framebuffer_sRGB; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_make_current_read; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_multisample; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pbuffer; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pixel_format; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_pixel_format_float; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_render_texture; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_robustness_application_isolation; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ARB_robustness_share_group_isolation; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ATI_pixel_format_float; +WGLEW_VAR_EXPORT GLboolean __WGLEW_ATI_render_texture_rectangle; +WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_colorspace; +WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_create_context_es2_profile; +WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_create_context_es_profile; +WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_depth_float; +WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_display_color_table; +WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_extensions_string; +WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_framebuffer_sRGB; +WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_make_current_read; +WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_multisample; +WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pbuffer; +WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pixel_format; +WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_pixel_format_packed_float; +WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_swap_control; +WGLEW_VAR_EXPORT GLboolean __WGLEW_EXT_swap_control_tear; +WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_digital_video_control; +WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_gamma; +WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_genlock; +WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_image_buffer; +WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_swap_frame_lock; +WGLEW_VAR_EXPORT GLboolean __WGLEW_I3D_swap_frame_usage; +WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_DX_interop; +WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_DX_interop2; +WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_copy_image; +WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_delay_before_swap; +WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_float_buffer; +WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_gpu_affinity; +WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_multigpu_context; +WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_multisample_coverage; +WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_present_video; +WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_render_depth_texture; +WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_render_texture_rectangle; +WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_swap_group; +WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_vertex_array_range; +WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_video_capture; +WGLEW_VAR_EXPORT GLboolean __WGLEW_NV_video_output; +WGLEW_VAR_EXPORT GLboolean __WGLEW_OML_sync_control; +/* ------------------------------------------------------------------------- */ + +GLEWAPI GLenum GLEWAPIENTRY wglewInit (void); +GLEWAPI GLboolean GLEWAPIENTRY wglewIsSupported (const char *name); + +#ifndef WGLEW_GET_VAR +#define WGLEW_GET_VAR(x) (*(const GLboolean*)&x) +#endif + +#ifndef WGLEW_GET_FUN +#define WGLEW_GET_FUN(x) x +#endif + +GLEWAPI GLboolean GLEWAPIENTRY wglewGetExtension (const char *name); + +#ifdef __cplusplus +} +#endif + +#undef GLEWAPI + +#endif /* __wglew_h__ */ diff --git a/lib/windows/include/SDL2/SDL.h b/lib/windows/include/SDL2/SDL.h new file mode 100644 index 0000000..0fe0713 --- /dev/null +++ b/lib/windows/include/SDL2/SDL.h @@ -0,0 +1,234 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * \file SDL.h + * + * Main include header for the SDL library + */ + +#ifndef SDL_h_ +#define SDL_h_ + +#include "SDL_main.h" +#include "SDL_stdinc.h" +#include "SDL_assert.h" +#include "SDL_atomic.h" +#include "SDL_audio.h" +#include "SDL_clipboard.h" +#include "SDL_cpuinfo.h" +#include "SDL_endian.h" +#include "SDL_error.h" +#include "SDL_events.h" +#include "SDL_filesystem.h" +#include "SDL_gamecontroller.h" +#include "SDL_guid.h" +#include "SDL_haptic.h" +#include "SDL_hidapi.h" +#include "SDL_hints.h" +#include "SDL_joystick.h" +#include "SDL_loadso.h" +#include "SDL_log.h" +#include "SDL_messagebox.h" +#include "SDL_metal.h" +#include "SDL_mutex.h" +#include "SDL_power.h" +#include "SDL_render.h" +#include "SDL_rwops.h" +#include "SDL_sensor.h" +#include "SDL_shape.h" +#include "SDL_system.h" +#include "SDL_thread.h" +#include "SDL_timer.h" +#include "SDL_version.h" +#include "SDL_video.h" +#include "SDL_locale.h" +#include "SDL_misc.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* WIKI CATEGORY: Init */ + +/* As of version 0.5, SDL is loaded dynamically into the application */ + +/** + * \name SDL_INIT_* + * + * These are the flags which may be passed to SDL_Init(). You should + * specify the subsystems which you will be using in your application. + */ +/* @{ */ +#define SDL_INIT_TIMER 0x00000001u +#define SDL_INIT_AUDIO 0x00000010u +#define SDL_INIT_VIDEO 0x00000020u /**< SDL_INIT_VIDEO implies SDL_INIT_EVENTS */ +#define SDL_INIT_JOYSTICK 0x00000200u /**< SDL_INIT_JOYSTICK implies SDL_INIT_EVENTS */ +#define SDL_INIT_HAPTIC 0x00001000u +#define SDL_INIT_GAMECONTROLLER 0x00002000u /**< SDL_INIT_GAMECONTROLLER implies SDL_INIT_JOYSTICK */ +#define SDL_INIT_EVENTS 0x00004000u +#define SDL_INIT_SENSOR 0x00008000u +#define SDL_INIT_NOPARACHUTE 0x00100000u /**< compatibility; this flag is ignored. */ +#define SDL_INIT_EVERYTHING ( \ + SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | SDL_INIT_EVENTS | \ + SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | SDL_INIT_GAMECONTROLLER | SDL_INIT_SENSOR \ + ) +/* @} */ + +/** + * Initialize the SDL library. + * + * SDL_Init() simply forwards to calling SDL_InitSubSystem(). Therefore, the + * two may be used interchangeably. Though for readability of your code + * SDL_InitSubSystem() might be preferred. + * + * The file I/O (for example: SDL_RWFromFile) and threading (SDL_CreateThread) + * subsystems are initialized by default. Message boxes + * (SDL_ShowSimpleMessageBox) also attempt to work without initializing the + * video subsystem, in hopes of being useful in showing an error dialog when + * SDL_Init fails. You must specifically initialize other subsystems if you + * use them in your application. + * + * Logging (such as SDL_Log) works without initialization, too. + * + * `flags` may be any of the following OR'd together: + * + * - `SDL_INIT_TIMER`: timer subsystem + * - `SDL_INIT_AUDIO`: audio subsystem + * - `SDL_INIT_VIDEO`: video subsystem; automatically initializes the events + * subsystem + * - `SDL_INIT_JOYSTICK`: joystick subsystem; automatically initializes the + * events subsystem + * - `SDL_INIT_HAPTIC`: haptic (force feedback) subsystem + * - `SDL_INIT_GAMECONTROLLER`: controller subsystem; automatically + * initializes the joystick subsystem + * - `SDL_INIT_EVENTS`: events subsystem + * - `SDL_INIT_EVERYTHING`: all of the above subsystems + * - `SDL_INIT_NOPARACHUTE`: compatibility; this flag is ignored + * + * Subsystem initialization is ref-counted, you must call SDL_QuitSubSystem() + * for each SDL_InitSubSystem() to correctly shutdown a subsystem manually (or + * call SDL_Quit() to force shutdown). If a subsystem is already loaded then + * this call will increase the ref-count and return. + * + * \param flags subsystem initialization flags. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_InitSubSystem + * \sa SDL_Quit + * \sa SDL_SetMainReady + * \sa SDL_WasInit + */ +extern DECLSPEC int SDLCALL SDL_Init(Uint32 flags); + +/** + * Compatibility function to initialize the SDL library. + * + * In SDL2, this function and SDL_Init() are interchangeable. + * + * \param flags any of the flags used by SDL_Init(); see SDL_Init for details. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Init + * \sa SDL_Quit + * \sa SDL_QuitSubSystem + */ +extern DECLSPEC int SDLCALL SDL_InitSubSystem(Uint32 flags); + +/** + * Shut down specific SDL subsystems. + * + * If you start a subsystem using a call to that subsystem's init function + * (for example SDL_VideoInit()) instead of SDL_Init() or SDL_InitSubSystem(), + * SDL_QuitSubSystem() and SDL_WasInit() will not work. You will need to use + * that subsystem's quit function (SDL_VideoQuit()) directly instead. But + * generally, you should not be using those functions directly anyhow; use + * SDL_Init() instead. + * + * You still need to call SDL_Quit() even if you close all open subsystems + * with SDL_QuitSubSystem(). + * + * \param flags any of the flags used by SDL_Init(); see SDL_Init for details. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_InitSubSystem + * \sa SDL_Quit + */ +extern DECLSPEC void SDLCALL SDL_QuitSubSystem(Uint32 flags); + +/** + * Get a mask of the specified subsystems which are currently initialized. + * + * \param flags any of the flags used by SDL_Init(); see SDL_Init for details. + * \returns a mask of all initialized subsystems if `flags` is 0, otherwise it + * returns the initialization status of the specified subsystems. + * + * The return value does not include SDL_INIT_NOPARACHUTE. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Init + * \sa SDL_InitSubSystem + */ +extern DECLSPEC Uint32 SDLCALL SDL_WasInit(Uint32 flags); + +/** + * Clean up all initialized subsystems. + * + * You should call this function even if you have already shutdown each + * initialized subsystem with SDL_QuitSubSystem(). It is safe to call this + * function even in the case of errors in initialization. + * + * If you start a subsystem using a call to that subsystem's init function + * (for example SDL_VideoInit()) instead of SDL_Init() or SDL_InitSubSystem(), + * then you must use that subsystem's quit function (SDL_VideoQuit()) to shut + * it down before calling SDL_Quit(). But generally, you should not be using + * those functions directly anyhow; use SDL_Init() instead. + * + * You can use this function with atexit() to ensure that it is run when your + * application is shutdown, but it is not wise to do this from a library or + * other dynamically loaded code. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Init + * \sa SDL_QuitSubSystem + */ +extern DECLSPEC void SDLCALL SDL_Quit(void); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_assert.h b/lib/windows/include/SDL2/SDL_assert.h new file mode 100644 index 0000000..5d7e19a --- /dev/null +++ b/lib/windows/include/SDL2/SDL_assert.h @@ -0,0 +1,324 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_assert_h_ +#define SDL_assert_h_ + +#include "SDL_stdinc.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef SDL_ASSERT_LEVEL +#ifdef SDL_DEFAULT_ASSERT_LEVEL +#define SDL_ASSERT_LEVEL SDL_DEFAULT_ASSERT_LEVEL +#elif defined(_DEBUG) || defined(DEBUG) || \ + (defined(__GNUC__) && !defined(__OPTIMIZE__)) +#define SDL_ASSERT_LEVEL 2 +#else +#define SDL_ASSERT_LEVEL 1 +#endif +#endif /* SDL_ASSERT_LEVEL */ + +/* +These are macros and not first class functions so that the debugger breaks +on the assertion line and not in some random guts of SDL, and so each +assert can have unique static variables associated with it. +*/ + +#if defined(_MSC_VER) +/* Don't include intrin.h here because it contains C++ code */ + extern void __cdecl __debugbreak(void); + #define SDL_TriggerBreakpoint() __debugbreak() +#elif _SDL_HAS_BUILTIN(__builtin_debugtrap) + #define SDL_TriggerBreakpoint() __builtin_debugtrap() +#elif ( (!defined(__NACL__)) && ((defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__))) ) + #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int $3\n\t" ) +#elif (defined(__GNUC__) || defined(__clang__)) && defined(__riscv) + #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "ebreak\n\t" ) +#elif ( defined(__APPLE__) && (defined(__arm64__) || defined(__aarch64__)) ) /* this might work on other ARM targets, but this is a known quantity... */ + #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "brk #22\n\t" ) +#elif defined(__APPLE__) && defined(__arm__) + #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "bkpt #22\n\t" ) +#elif defined(_WIN32) && ((defined(__GNUC__) || defined(__clang__)) && (defined(__arm64__) || defined(__aarch64__)) ) + #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "brk #0xF000\n\t" ) +#elif defined(__386__) && defined(__WATCOMC__) + #define SDL_TriggerBreakpoint() { _asm { int 0x03 } } +#elif defined(HAVE_SIGNAL_H) && !defined(__WATCOMC__) + #include + #define SDL_TriggerBreakpoint() raise(SIGTRAP) +#else + /* How do we trigger breakpoints on this platform? */ + #define SDL_TriggerBreakpoint() +#endif + +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 supports __func__ as a standard. */ +# define SDL_FUNCTION __func__ +#elif ((defined(__GNUC__) && (__GNUC__ >= 2)) || defined(_MSC_VER) || defined (__WATCOMC__)) +# define SDL_FUNCTION __FUNCTION__ +#else +# define SDL_FUNCTION "???" +#endif +#define SDL_FILE __FILE__ +#define SDL_LINE __LINE__ + +/* +sizeof (x) makes the compiler still parse the expression even without +assertions enabled, so the code is always checked at compile time, but +doesn't actually generate code for it, so there are no side effects or +expensive checks at run time, just the constant size of what x WOULD be, +which presumably gets optimized out as unused. +This also solves the problem of... + + int somevalue = blah(); + SDL_assert(somevalue == 1); + +...which would cause compiles to complain that somevalue is unused if we +disable assertions. +*/ + +/* "while (0,0)" fools Microsoft's compiler's /W4 warning level into thinking + this condition isn't constant. And looks like an owl's face! */ +#ifdef _MSC_VER /* stupid /W4 warnings. */ +#define SDL_NULL_WHILE_LOOP_CONDITION (0,0) +#else +#define SDL_NULL_WHILE_LOOP_CONDITION (0) +#endif + +#define SDL_disabled_assert(condition) \ + do { (void) sizeof ((condition)); } while (SDL_NULL_WHILE_LOOP_CONDITION) + +typedef enum +{ + SDL_ASSERTION_RETRY, /**< Retry the assert immediately. */ + SDL_ASSERTION_BREAK, /**< Make the debugger trigger a breakpoint. */ + SDL_ASSERTION_ABORT, /**< Terminate the program. */ + SDL_ASSERTION_IGNORE, /**< Ignore the assert. */ + SDL_ASSERTION_ALWAYS_IGNORE /**< Ignore the assert from now on. */ +} SDL_AssertState; + +typedef struct SDL_AssertData +{ + int always_ignore; + unsigned int trigger_count; + const char *condition; + const char *filename; + int linenum; + const char *function; + const struct SDL_AssertData *next; +} SDL_AssertData; + +/* Never call this directly. Use the SDL_assert* macros. */ +extern DECLSPEC SDL_AssertState SDLCALL SDL_ReportAssertion(SDL_AssertData *, + const char *, + const char *, int) +#if defined(__clang__) +#if __has_feature(attribute_analyzer_noreturn) +/* this tells Clang's static analysis that we're a custom assert function, + and that the analyzer should assume the condition was always true past this + SDL_assert test. */ + __attribute__((analyzer_noreturn)) +#endif +#endif +; + +/* the do {} while(0) avoids dangling else problems: + if (x) SDL_assert(y); else blah(); + ... without the do/while, the "else" could attach to this macro's "if". + We try to handle just the minimum we need here in a macro...the loop, + the static vars, and break points. The heavy lifting is handled in + SDL_ReportAssertion(), in SDL_assert.c. +*/ +#define SDL_enabled_assert(condition) \ + do { \ + while ( !(condition) ) { \ + static struct SDL_AssertData sdl_assert_data = { 0, 0, #condition, NULL, 0, NULL, NULL }; \ + const SDL_AssertState sdl_assert_state = SDL_ReportAssertion(&sdl_assert_data, SDL_FUNCTION, SDL_FILE, SDL_LINE); \ + if (sdl_assert_state == SDL_ASSERTION_RETRY) { \ + continue; /* go again. */ \ + } else if (sdl_assert_state == SDL_ASSERTION_BREAK) { \ + SDL_TriggerBreakpoint(); \ + } \ + break; /* not retrying. */ \ + } \ + } while (SDL_NULL_WHILE_LOOP_CONDITION) + +/* Enable various levels of assertions. */ +#if SDL_ASSERT_LEVEL == 0 /* assertions disabled */ +# define SDL_assert(condition) SDL_disabled_assert(condition) +# define SDL_assert_release(condition) SDL_disabled_assert(condition) +# define SDL_assert_paranoid(condition) SDL_disabled_assert(condition) +#elif SDL_ASSERT_LEVEL == 1 /* release settings. */ +# define SDL_assert(condition) SDL_disabled_assert(condition) +# define SDL_assert_release(condition) SDL_enabled_assert(condition) +# define SDL_assert_paranoid(condition) SDL_disabled_assert(condition) +#elif SDL_ASSERT_LEVEL == 2 /* normal settings. */ +# define SDL_assert(condition) SDL_enabled_assert(condition) +# define SDL_assert_release(condition) SDL_enabled_assert(condition) +# define SDL_assert_paranoid(condition) SDL_disabled_assert(condition) +#elif SDL_ASSERT_LEVEL == 3 /* paranoid settings. */ +# define SDL_assert(condition) SDL_enabled_assert(condition) +# define SDL_assert_release(condition) SDL_enabled_assert(condition) +# define SDL_assert_paranoid(condition) SDL_enabled_assert(condition) +#else +# error Unknown assertion level. +#endif + +/* this assertion is never disabled at any level. */ +#define SDL_assert_always(condition) SDL_enabled_assert(condition) + + +/** + * A callback that fires when an SDL assertion fails. + * + * \param data a pointer to the SDL_AssertData structure corresponding to the + * current assertion. + * \param userdata what was passed as `userdata` to SDL_SetAssertionHandler(). + * \returns an SDL_AssertState value indicating how to handle the failure. + */ +typedef SDL_AssertState (SDLCALL *SDL_AssertionHandler)( + const SDL_AssertData* data, void* userdata); + +/** + * Set an application-defined assertion handler. + * + * This function allows an application to show its own assertion UI and/or + * force the response to an assertion failure. If the application doesn't + * provide this, SDL will try to do the right thing, popping up a + * system-specific GUI dialog, and probably minimizing any fullscreen windows. + * + * This callback may fire from any thread, but it runs wrapped in a mutex, so + * it will only fire from one thread at a time. + * + * This callback is NOT reset to SDL's internal handler upon SDL_Quit()! + * + * \param handler the SDL_AssertionHandler function to call when an assertion + * fails or NULL for the default handler. + * \param userdata a pointer that is passed to `handler`. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetAssertionHandler + */ +extern DECLSPEC void SDLCALL SDL_SetAssertionHandler( + SDL_AssertionHandler handler, + void *userdata); + +/** + * Get the default assertion handler. + * + * This returns the function pointer that is called by default when an + * assertion is triggered. This is an internal function provided by SDL, that + * is used for assertions when SDL_SetAssertionHandler() hasn't been used to + * provide a different function. + * + * \returns the default SDL_AssertionHandler that is called when an assert + * triggers. + * + * \since This function is available since SDL 2.0.2. + * + * \sa SDL_GetAssertionHandler + */ +extern DECLSPEC SDL_AssertionHandler SDLCALL SDL_GetDefaultAssertionHandler(void); + +/** + * Get the current assertion handler. + * + * This returns the function pointer that is called when an assertion is + * triggered. This is either the value last passed to + * SDL_SetAssertionHandler(), or if no application-specified function is set, + * is equivalent to calling SDL_GetDefaultAssertionHandler(). + * + * The parameter `puserdata` is a pointer to a void*, which will store the + * "userdata" pointer that was passed to SDL_SetAssertionHandler(). This value + * will always be NULL for the default handler. If you don't care about this + * data, it is safe to pass a NULL pointer to this function to ignore it. + * + * \param puserdata pointer which is filled with the "userdata" pointer that + * was passed to SDL_SetAssertionHandler(). + * \returns the SDL_AssertionHandler that is called when an assert triggers. + * + * \since This function is available since SDL 2.0.2. + * + * \sa SDL_SetAssertionHandler + */ +extern DECLSPEC SDL_AssertionHandler SDLCALL SDL_GetAssertionHandler(void **puserdata); + +/** + * Get a list of all assertion failures. + * + * This function gets all assertions triggered since the last call to + * SDL_ResetAssertionReport(), or the start of the program. + * + * The proper way to examine this data looks something like this: + * + * ```c + * const SDL_AssertData *item = SDL_GetAssertionReport(); + * while (item) { + * printf("'%s', %s (%s:%d), triggered %u times, always ignore: %s.\\n", + * item->condition, item->function, item->filename, + * item->linenum, item->trigger_count, + * item->always_ignore ? "yes" : "no"); + * item = item->next; + * } + * ``` + * + * \returns a list of all failed assertions or NULL if the list is empty. This + * memory should not be modified or freed by the application. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_ResetAssertionReport + */ +extern DECLSPEC const SDL_AssertData * SDLCALL SDL_GetAssertionReport(void); + +/** + * Clear the list of all assertion failures. + * + * This function will clear the list of all assertions triggered up to that + * point. Immediately following this call, SDL_GetAssertionReport will return + * no items. In addition, any previously-triggered assertions will be reset to + * a trigger_count of zero, and their always_ignore state will be false. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetAssertionReport + */ +extern DECLSPEC void SDLCALL SDL_ResetAssertionReport(void); + + +/* these had wrong naming conventions until 2.0.4. Please update your app! */ +#define SDL_assert_state SDL_AssertState +#define SDL_assert_data SDL_AssertData + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_assert_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_atomic.h b/lib/windows/include/SDL2/SDL_atomic.h new file mode 100644 index 0000000..226ec7c --- /dev/null +++ b/lib/windows/include/SDL2/SDL_atomic.h @@ -0,0 +1,408 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryAtomic + * + * Atomic operations. + * + * IMPORTANT: If you are not an expert in concurrent lockless programming, you + * should not be using any functions in this file. You should be protecting + * your data structures with full mutexes instead. + * + * ***Seriously, here be dragons!*** + * + * You can find out a little more about lockless programming and the subtle + * issues that can arise here: + * https://learn.microsoft.com/en-us/windows/win32/dxtecharts/lockless-programming + * + * There's also lots of good information here: + * + * - https://www.1024cores.net/home/lock-free-algorithms + * - https://preshing.com/ + * + * These operations may or may not actually be implemented using processor + * specific atomic operations. When possible they are implemented as true + * processor specific atomic operations. When that is not possible the are + * implemented using locks that *do* use the available atomic operations. + * + * All of the atomic operations that modify memory are full memory barriers. + */ + +#ifndef SDL_atomic_h_ +#define SDL_atomic_h_ + +#include "SDL_stdinc.h" +#include "SDL_platform.h" + +#include "begin_code.h" + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \name SDL AtomicLock + * + * The atomic locks are efficient spinlocks using CPU instructions, + * but are vulnerable to starvation and can spin forever if a thread + * holding a lock has been terminated. For this reason you should + * minimize the code executed inside an atomic lock and never do + * expensive things like API or system calls while holding them. + * + * The atomic locks are not safe to lock recursively. + * + * Porting Note: + * The spin lock functions and type are required and can not be + * emulated because they are used in the atomic emulation code. + */ +/* @{ */ + +typedef int SDL_SpinLock; + +/** + * Try to lock a spin lock by setting it to a non-zero value. + * + * ***Please note that spinlocks are dangerous if you don't know what you're + * doing. Please be careful using any sort of spinlock!*** + * + * \param lock a pointer to a lock variable. + * \returns SDL_TRUE if the lock succeeded, SDL_FALSE if the lock is already + * held. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AtomicLock + * \sa SDL_AtomicUnlock + */ +extern DECLSPEC SDL_bool SDLCALL SDL_AtomicTryLock(SDL_SpinLock *lock); + +/** + * Lock a spin lock by setting it to a non-zero value. + * + * ***Please note that spinlocks are dangerous if you don't know what you're + * doing. Please be careful using any sort of spinlock!*** + * + * \param lock a pointer to a lock variable. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AtomicTryLock + * \sa SDL_AtomicUnlock + */ +extern DECLSPEC void SDLCALL SDL_AtomicLock(SDL_SpinLock *lock); + +/** + * Unlock a spin lock by setting it to 0. + * + * Always returns immediately. + * + * ***Please note that spinlocks are dangerous if you don't know what you're + * doing. Please be careful using any sort of spinlock!*** + * + * \param lock a pointer to a lock variable. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AtomicLock + * \sa SDL_AtomicTryLock + */ +extern DECLSPEC void SDLCALL SDL_AtomicUnlock(SDL_SpinLock *lock); + +/* @} *//* SDL AtomicLock */ + + +/** + * The compiler barrier prevents the compiler from reordering + * reads and writes to globally visible variables across the call. + */ +#if defined(_MSC_VER) && (_MSC_VER > 1200) && !defined(__clang__) +void _ReadWriteBarrier(void); +#pragma intrinsic(_ReadWriteBarrier) +#define SDL_CompilerBarrier() _ReadWriteBarrier() +#elif (defined(__GNUC__) && !defined(__EMSCRIPTEN__)) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5120)) +/* This is correct for all CPUs when using GCC or Solaris Studio 12.1+. */ +#define SDL_CompilerBarrier() __asm__ __volatile__ ("" : : : "memory") +#elif defined(__WATCOMC__) +extern __inline void SDL_CompilerBarrier(void); +#pragma aux SDL_CompilerBarrier = "" parm [] modify exact []; +#else +#define SDL_CompilerBarrier() \ +{ SDL_SpinLock _tmp = 0; SDL_AtomicLock(&_tmp); SDL_AtomicUnlock(&_tmp); } +#endif + +/** + * Memory barriers are designed to prevent reads and writes from being + * reordered by the compiler and being seen out of order on multi-core CPUs. + * + * A typical pattern would be for thread A to write some data and a flag, and + * for thread B to read the flag and get the data. In this case you would + * insert a release barrier between writing the data and the flag, + * guaranteeing that the data write completes no later than the flag is + * written, and you would insert an acquire barrier between reading the flag + * and reading the data, to ensure that all the reads associated with the flag + * have completed. + * + * In this pattern you should always see a release barrier paired with an + * acquire barrier and you should gate the data reads/writes with a single + * flag variable. + * + * For more information on these semantics, take a look at the blog post: + * http://preshing.com/20120913/acquire-and-release-semantics + * + * \since This function is available since SDL 2.0.6. + */ +extern DECLSPEC void SDLCALL SDL_MemoryBarrierReleaseFunction(void); +extern DECLSPEC void SDLCALL SDL_MemoryBarrierAcquireFunction(void); + +#if defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__)) +#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("lwsync" : : : "memory") +#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("lwsync" : : : "memory") +#elif defined(__GNUC__) && defined(__aarch64__) +#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("dmb ish" : : : "memory") +#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("dmb ish" : : : "memory") +#elif defined(__GNUC__) && defined(__arm__) +#if 0 /* defined(__LINUX__) || defined(__ANDROID__) */ +/* Information from: + https://chromium.googlesource.com/chromium/chromium/+/trunk/base/atomicops_internals_arm_gcc.h#19 + + The Linux kernel provides a helper function which provides the right code for a memory barrier, + hard-coded at address 0xffff0fa0 +*/ +typedef void (*SDL_KernelMemoryBarrierFunc)(); +#define SDL_MemoryBarrierRelease() ((SDL_KernelMemoryBarrierFunc)0xffff0fa0)() +#define SDL_MemoryBarrierAcquire() ((SDL_KernelMemoryBarrierFunc)0xffff0fa0)() +#elif 0 /* defined(__QNXNTO__) */ +#include + +#define SDL_MemoryBarrierRelease() __cpu_membarrier() +#define SDL_MemoryBarrierAcquire() __cpu_membarrier() +#else +#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7EM__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) || defined(__ARM_ARCH_8A__) +#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("dmb ish" : : : "memory") +#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("dmb ish" : : : "memory") +#elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6T2__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) +#ifdef __thumb__ +/* The mcr instruction isn't available in thumb mode, use real functions */ +#define SDL_MEMORY_BARRIER_USES_FUNCTION +#define SDL_MemoryBarrierRelease() SDL_MemoryBarrierReleaseFunction() +#define SDL_MemoryBarrierAcquire() SDL_MemoryBarrierAcquireFunction() +#else +#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" : : "r"(0) : "memory") +#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" : : "r"(0) : "memory") +#endif /* __thumb__ */ +#else +#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("" : : : "memory") +#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("" : : : "memory") +#endif /* __LINUX__ || __ANDROID__ */ +#endif /* __GNUC__ && __arm__ */ +#else +#if (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5120)) +/* This is correct for all CPUs on Solaris when using Solaris Studio 12.1+. */ +#include +#define SDL_MemoryBarrierRelease() __machine_rel_barrier() +#define SDL_MemoryBarrierAcquire() __machine_acq_barrier() +#else +/* This is correct for the x86 and x64 CPUs, and we'll expand this over time. */ +#define SDL_MemoryBarrierRelease() SDL_CompilerBarrier() +#define SDL_MemoryBarrierAcquire() SDL_CompilerBarrier() +#endif +#endif + +/* "REP NOP" is PAUSE, coded for tools that don't know it by that name. */ +#if (defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__)) + #define SDL_CPUPauseInstruction() __asm__ __volatile__("pause\n") /* Some assemblers can't do REP NOP, so go with PAUSE. */ +#elif (defined(__arm__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7) || defined(__aarch64__) + #define SDL_CPUPauseInstruction() __asm__ __volatile__("yield" ::: "memory") +#elif (defined(__powerpc__) || defined(__powerpc64__)) + #define SDL_CPUPauseInstruction() __asm__ __volatile__("or 27,27,27"); +#elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64)) + #define SDL_CPUPauseInstruction() _mm_pause() /* this is actually "rep nop" and not a SIMD instruction. No inline asm in MSVC x86-64! */ +#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64)) + #define SDL_CPUPauseInstruction() __yield() +#elif defined(__WATCOMC__) && defined(__386__) + extern __inline void SDL_CPUPauseInstruction(void); + #pragma aux SDL_CPUPauseInstruction = ".686p" ".xmm2" "pause" +#else + #define SDL_CPUPauseInstruction() +#endif + + +/** + * A type representing an atomic integer value. + * + * It is a struct so people don't accidentally use numeric operations on it. + */ +typedef struct SDL_atomic_t { + int value; +} SDL_atomic_t; + +/** + * Set an atomic variable to a new value if it is currently an old value. + * + * ***Note: If you don't know what this function is for, you shouldn't use + * it!*** + * + * \param a a pointer to an SDL_atomic_t variable to be modified. + * \param oldval the old value. + * \param newval the new value. + * \returns SDL_TRUE if the atomic variable was set, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AtomicCASPtr + * \sa SDL_AtomicGet + * \sa SDL_AtomicSet + */ +extern DECLSPEC SDL_bool SDLCALL SDL_AtomicCAS(SDL_atomic_t *a, int oldval, int newval); + +/** + * Set an atomic variable to a value. + * + * This function also acts as a full memory barrier. + * + * ***Note: If you don't know what this function is for, you shouldn't use + * it!*** + * + * \param a a pointer to an SDL_atomic_t variable to be modified. + * \param v the desired value. + * \returns the previous value of the atomic variable. + * + * \since This function is available since SDL 2.0.2. + * + * \sa SDL_AtomicGet + */ +extern DECLSPEC int SDLCALL SDL_AtomicSet(SDL_atomic_t *a, int v); + +/** + * Get the value of an atomic variable. + * + * ***Note: If you don't know what this function is for, you shouldn't use + * it!*** + * + * \param a a pointer to an SDL_atomic_t variable. + * \returns the current value of an atomic variable. + * + * \since This function is available since SDL 2.0.2. + * + * \sa SDL_AtomicSet + */ +extern DECLSPEC int SDLCALL SDL_AtomicGet(SDL_atomic_t *a); + +/** + * Add to an atomic variable. + * + * This function also acts as a full memory barrier. + * + * ***Note: If you don't know what this function is for, you shouldn't use + * it!*** + * + * \param a a pointer to an SDL_atomic_t variable to be modified. + * \param v the desired value to add. + * \returns the previous value of the atomic variable. + * + * \since This function is available since SDL 2.0.2. + * + * \sa SDL_AtomicDecRef + * \sa SDL_AtomicIncRef + */ +extern DECLSPEC int SDLCALL SDL_AtomicAdd(SDL_atomic_t *a, int v); + +/** + * \brief Increment an atomic variable used as a reference count. + */ +#ifndef SDL_AtomicIncRef +#define SDL_AtomicIncRef(a) SDL_AtomicAdd(a, 1) +#endif + +/** + * \brief Decrement an atomic variable used as a reference count. + * + * \return SDL_TRUE if the variable reached zero after decrementing, + * SDL_FALSE otherwise + */ +#ifndef SDL_AtomicDecRef +#define SDL_AtomicDecRef(a) (SDL_AtomicAdd(a, -1) == 1) +#endif + +/** + * Set a pointer to a new value if it is currently an old value. + * + * ***Note: If you don't know what this function is for, you shouldn't use + * it!*** + * + * \param a a pointer to a pointer. + * \param oldval the old pointer value. + * \param newval the new pointer value. + * \returns SDL_TRUE if the pointer was set, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AtomicCAS + * \sa SDL_AtomicGetPtr + * \sa SDL_AtomicSetPtr + */ +extern DECLSPEC SDL_bool SDLCALL SDL_AtomicCASPtr(void **a, void *oldval, void *newval); + +/** + * Set a pointer to a value atomically. + * + * ***Note: If you don't know what this function is for, you shouldn't use + * it!*** + * + * \param a a pointer to a pointer. + * \param v the desired pointer value. + * \returns the previous value of the pointer. + * + * \since This function is available since SDL 2.0.2. + * + * \sa SDL_AtomicCASPtr + * \sa SDL_AtomicGetPtr + */ +extern DECLSPEC void* SDLCALL SDL_AtomicSetPtr(void **a, void* v); + +/** + * Get the value of a pointer atomically. + * + * ***Note: If you don't know what this function is for, you shouldn't use + * it!*** + * + * \param a a pointer to a pointer. + * \returns the current value of a pointer. + * + * \since This function is available since SDL 2.0.2. + * + * \sa SDL_AtomicCASPtr + * \sa SDL_AtomicSetPtr + */ +extern DECLSPEC void* SDLCALL SDL_AtomicGetPtr(void **a); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif + +#include "close_code.h" + +#endif /* SDL_atomic_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_audio.h b/lib/windows/include/SDL2/SDL_audio.h new file mode 100644 index 0000000..cb76e93 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_audio.h @@ -0,0 +1,1502 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* !!! FIXME: several functions in here need Doxygen comments. */ + +/** + * # CategoryAudio + * + * Access to the raw audio mixing buffer for the SDL library. + */ + +#ifndef SDL_audio_h_ +#define SDL_audio_h_ + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_endian.h" +#include "SDL_mutex.h" +#include "SDL_thread.h" +#include "SDL_rwops.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Audio format flags. + * + * These are what the 16 bits in SDL_AudioFormat currently mean... + * (Unspecified bits are always zero). + * + * ``` + * ++-----------------------sample is signed if set + * || + * || ++-----------sample is bigendian if set + * || || + * || || ++---sample is float if set + * || || || + * || || || +---sample bit size---+ + * || || || | | + * 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 + * ``` + * + * There are macros in SDL 2.0 and later to query these bits. + */ +typedef Uint16 SDL_AudioFormat; + +/** + * \name Audio flags + */ +/* @{ */ + +#define SDL_AUDIO_MASK_BITSIZE (0xFF) +#define SDL_AUDIO_MASK_DATATYPE (1<<8) +#define SDL_AUDIO_MASK_ENDIAN (1<<12) +#define SDL_AUDIO_MASK_SIGNED (1<<15) +#define SDL_AUDIO_BITSIZE(x) (x & SDL_AUDIO_MASK_BITSIZE) +#define SDL_AUDIO_ISFLOAT(x) (x & SDL_AUDIO_MASK_DATATYPE) +#define SDL_AUDIO_ISBIGENDIAN(x) (x & SDL_AUDIO_MASK_ENDIAN) +#define SDL_AUDIO_ISSIGNED(x) (x & SDL_AUDIO_MASK_SIGNED) +#define SDL_AUDIO_ISINT(x) (!SDL_AUDIO_ISFLOAT(x)) +#define SDL_AUDIO_ISLITTLEENDIAN(x) (!SDL_AUDIO_ISBIGENDIAN(x)) +#define SDL_AUDIO_ISUNSIGNED(x) (!SDL_AUDIO_ISSIGNED(x)) + +/** + * \name Audio format flags + * + * Defaults to LSB byte order. + */ +/* @{ */ +#define AUDIO_U8 0x0008 /**< Unsigned 8-bit samples */ +#define AUDIO_S8 0x8008 /**< Signed 8-bit samples */ +#define AUDIO_U16LSB 0x0010 /**< Unsigned 16-bit samples */ +#define AUDIO_S16LSB 0x8010 /**< Signed 16-bit samples */ +#define AUDIO_U16MSB 0x1010 /**< As above, but big-endian byte order */ +#define AUDIO_S16MSB 0x9010 /**< As above, but big-endian byte order */ +#define AUDIO_U16 AUDIO_U16LSB +#define AUDIO_S16 AUDIO_S16LSB +/* @} */ + +/** + * \name int32 support + */ +/* @{ */ +#define AUDIO_S32LSB 0x8020 /**< 32-bit integer samples */ +#define AUDIO_S32MSB 0x9020 /**< As above, but big-endian byte order */ +#define AUDIO_S32 AUDIO_S32LSB +/* @} */ + +/** + * \name float32 support + */ +/* @{ */ +#define AUDIO_F32LSB 0x8120 /**< 32-bit floating point samples */ +#define AUDIO_F32MSB 0x9120 /**< As above, but big-endian byte order */ +#define AUDIO_F32 AUDIO_F32LSB +/* @} */ + +/** + * \name Native audio byte ordering + */ +/* @{ */ +#if SDL_BYTEORDER == SDL_LIL_ENDIAN +#define AUDIO_U16SYS AUDIO_U16LSB +#define AUDIO_S16SYS AUDIO_S16LSB +#define AUDIO_S32SYS AUDIO_S32LSB +#define AUDIO_F32SYS AUDIO_F32LSB +#else +#define AUDIO_U16SYS AUDIO_U16MSB +#define AUDIO_S16SYS AUDIO_S16MSB +#define AUDIO_S32SYS AUDIO_S32MSB +#define AUDIO_F32SYS AUDIO_F32MSB +#endif +/* @} */ + +/** + * \name Allow change flags + * + * Which audio format changes are allowed when opening a device. + */ +/* @{ */ +#define SDL_AUDIO_ALLOW_FREQUENCY_CHANGE 0x00000001 +#define SDL_AUDIO_ALLOW_FORMAT_CHANGE 0x00000002 +#define SDL_AUDIO_ALLOW_CHANNELS_CHANGE 0x00000004 +#define SDL_AUDIO_ALLOW_SAMPLES_CHANGE 0x00000008 +#define SDL_AUDIO_ALLOW_ANY_CHANGE (SDL_AUDIO_ALLOW_FREQUENCY_CHANGE|SDL_AUDIO_ALLOW_FORMAT_CHANGE|SDL_AUDIO_ALLOW_CHANNELS_CHANGE|SDL_AUDIO_ALLOW_SAMPLES_CHANGE) +/* @} */ + +/* @} *//* Audio flags */ + +/** + * This function is called when the audio device needs more data. + * + * \param userdata An application-specific parameter saved in the + * SDL_AudioSpec structure. + * \param stream A pointer to the audio data buffer. + * \param len Length of **stream** in bytes. + */ +typedef void (SDLCALL * SDL_AudioCallback) (void *userdata, Uint8 * stream, + int len); + +/** + * The calculated values in this structure are calculated by SDL_OpenAudio(). + * + * For multi-channel audio, the default SDL channel mapping is: + * + * ``` + * 2: FL FR (stereo) + * 3: FL FR LFE (2.1 surround) + * 4: FL FR BL BR (quad) + * 5: FL FR LFE BL BR (4.1 surround) + * 6: FL FR FC LFE SL SR (5.1 surround - last two can also be BL BR) + * 7: FL FR FC LFE BC SL SR (6.1 surround) + * 8: FL FR FC LFE BL BR SL SR (7.1 surround) + * ``` + */ +typedef struct SDL_AudioSpec +{ + int freq; /**< DSP frequency -- samples per second */ + SDL_AudioFormat format; /**< Audio data format */ + Uint8 channels; /**< Number of channels: 1 mono, 2 stereo */ + Uint8 silence; /**< Audio buffer silence value (calculated) */ + Uint16 samples; /**< Audio buffer size in sample FRAMES (total samples divided by channel count) */ + Uint16 padding; /**< Necessary for some compile environments */ + Uint32 size; /**< Audio buffer size in bytes (calculated) */ + SDL_AudioCallback callback; /**< Callback that feeds the audio device (NULL to use SDL_QueueAudio()). */ + void *userdata; /**< Userdata passed to callback (ignored for NULL callbacks). */ +} SDL_AudioSpec; + + +struct SDL_AudioCVT; +typedef void (SDLCALL * SDL_AudioFilter) (struct SDL_AudioCVT * cvt, + SDL_AudioFormat format); + +/** + * Upper limit of filters in SDL_AudioCVT + * + * The maximum number of SDL_AudioFilter functions in SDL_AudioCVT is + * currently limited to 9. The SDL_AudioCVT.filters array has 10 pointers, one + * of which is the terminating NULL pointer. + */ +#define SDL_AUDIOCVT_MAX_FILTERS 9 + +/** + * \struct SDL_AudioCVT + * \brief A structure to hold a set of audio conversion filters and buffers. + * + * Note that various parts of the conversion pipeline can take advantage + * of SIMD operations (like SSE2, for example). SDL_AudioCVT doesn't require + * you to pass it aligned data, but can possibly run much faster if you + * set both its (buf) field to a pointer that is aligned to 16 bytes, and its + * (len) field to something that's a multiple of 16, if possible. + */ +#if defined(__GNUC__) && !defined(__CHERI_PURE_CAPABILITY__) +/* This structure is 84 bytes on 32-bit architectures, make sure GCC doesn't + pad it out to 88 bytes to guarantee ABI compatibility between compilers. + This is not a concern on CHERI architectures, where pointers must be stored + at aligned locations otherwise they will become invalid, and thus structs + containing pointers cannot be packed without giving a warning or error. + vvv + The next time we rev the ABI, make sure to size the ints and add padding. +*/ +#define SDL_AUDIOCVT_PACKED __attribute__((packed)) +#else +#define SDL_AUDIOCVT_PACKED +#endif +/* */ +typedef struct SDL_AudioCVT +{ + int needed; /**< Set to 1 if conversion possible */ + SDL_AudioFormat src_format; /**< Source audio format */ + SDL_AudioFormat dst_format; /**< Target audio format */ + double rate_incr; /**< Rate conversion increment */ + Uint8 *buf; /**< Buffer to hold entire audio data */ + int len; /**< Length of original audio buffer */ + int len_cvt; /**< Length of converted audio buffer */ + int len_mult; /**< buffer must be len*len_mult big */ + double len_ratio; /**< Given len, final size is len*len_ratio */ + SDL_AudioFilter filters[SDL_AUDIOCVT_MAX_FILTERS + 1]; /**< NULL-terminated list of filter functions */ + int filter_index; /**< Current audio conversion function */ +} SDL_AUDIOCVT_PACKED SDL_AudioCVT; + + +/* Function prototypes */ + +/** + * \name Driver discovery functions + * + * These functions return the list of built in audio drivers, in the + * order that they are normally initialized by default. + */ +/* @{ */ + +/** + * Use this function to get the number of built-in audio drivers. + * + * This function returns a hardcoded number. This never returns a negative + * value; if there are no drivers compiled into this build of SDL, this + * function returns zero. The presence of a driver in this list does not mean + * it will function, it just means SDL is capable of interacting with that + * interface. For example, a build of SDL might have esound support, but if + * there's no esound server available, SDL's esound driver would fail if used. + * + * By default, SDL tries all drivers, in its preferred order, until one is + * found to be usable. + * + * \returns the number of built-in audio drivers. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetAudioDriver + */ +extern DECLSPEC int SDLCALL SDL_GetNumAudioDrivers(void); + +/** + * Use this function to get the name of a built in audio driver. + * + * The list of audio drivers is given in the order that they are normally + * initialized by default; the drivers that seem more reasonable to choose + * first (as far as the SDL developers believe) are earlier in the list. + * + * The names of drivers are all simple, low-ASCII identifiers, like "alsa", + * "coreaudio" or "xaudio2". These never have Unicode characters, and are not + * meant to be proper names. + * + * \param index the index of the audio driver; the value ranges from 0 to + * SDL_GetNumAudioDrivers() - 1. + * \returns the name of the audio driver at the requested index, or NULL if an + * invalid index was specified. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetNumAudioDrivers + */ +extern DECLSPEC const char *SDLCALL SDL_GetAudioDriver(int index); +/* @} */ + +/** + * \name Initialization and cleanup + * + * \internal These functions are used internally, and should not be used unless + * you have a specific need to specify the audio driver you want to + * use. You should normally use SDL_Init() or SDL_InitSubSystem(). + */ +/* @{ */ + +/** + * Use this function to initialize a particular audio driver. + * + * This function is used internally, and should not be used unless you have a + * specific need to designate the audio driver you want to use. You should + * normally use SDL_Init() or SDL_InitSubSystem(). + * + * \param driver_name the name of the desired audio driver. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AudioQuit + */ +extern DECLSPEC int SDLCALL SDL_AudioInit(const char *driver_name); + +/** + * Use this function to shut down audio if you initialized it with + * SDL_AudioInit(). + * + * This function is used internally, and should not be used unless you have a + * specific need to specify the audio driver you want to use. You should + * normally use SDL_Quit() or SDL_QuitSubSystem(). + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AudioInit + */ +extern DECLSPEC void SDLCALL SDL_AudioQuit(void); +/* @} */ + +/** + * Get the name of the current audio driver. + * + * The returned string points to internal static memory and thus never becomes + * invalid, even if you quit the audio subsystem and initialize a new driver + * (although such a case would return a different static string from another + * call to this function, of course). As such, you should not modify or free + * the returned string. + * + * \returns the name of the current audio driver or NULL if no driver has been + * initialized. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AudioInit + */ +extern DECLSPEC const char *SDLCALL SDL_GetCurrentAudioDriver(void); + +/** + * This function is a legacy means of opening the audio device. + * + * This function remains for compatibility with SDL 1.2, but also because it's + * slightly easier to use than the new functions in SDL 2.0. The new, more + * powerful, and preferred way to do this is SDL_OpenAudioDevice(). + * + * This function is roughly equivalent to: + * + * ```c + * SDL_OpenAudioDevice(NULL, 0, desired, obtained, SDL_AUDIO_ALLOW_ANY_CHANGE); + * ``` + * + * With two notable exceptions: + * + * - If `obtained` is NULL, we use `desired` (and allow no changes), which + * means desired will be modified to have the correct values for silence, + * etc, and SDL will convert any differences between your app's specific + * request and the hardware behind the scenes. + * - The return value is always success or failure, and not a device ID, which + * means you can only have one device open at a time with this function. + * + * \param desired an SDL_AudioSpec structure representing the desired output + * format. Please refer to the SDL_OpenAudioDevice + * documentation for details on how to prepare this structure. + * \param obtained an SDL_AudioSpec structure filled in with the actual + * parameters, or NULL. + * \returns 0 if successful, placing the actual hardware parameters in the + * structure pointed to by `obtained`. + * + * If `obtained` is NULL, the audio data passed to the callback + * function will be guaranteed to be in the requested format, and + * will be automatically converted to the actual hardware audio + * format if necessary. If `obtained` is NULL, `desired` will have + * fields modified. + * + * This function returns a negative error code on failure to open the + * audio device or failure to set up the audio thread; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CloseAudio + * \sa SDL_LockAudio + * \sa SDL_PauseAudio + * \sa SDL_UnlockAudio + */ +extern DECLSPEC int SDLCALL SDL_OpenAudio(SDL_AudioSpec * desired, + SDL_AudioSpec * obtained); + +/** + * SDL Audio Device IDs. + * + * A successful call to SDL_OpenAudio() is always device id 1, and legacy SDL + * audio APIs assume you want this device ID. SDL_OpenAudioDevice() calls + * always returns devices >= 2 on success. The legacy calls are good both for + * backwards compatibility and when you don't care about multiple, specific, + * or capture devices. + */ +typedef Uint32 SDL_AudioDeviceID; + +/** + * Get the number of built-in audio devices. + * + * This function is only valid after successfully initializing the audio + * subsystem. + * + * Note that audio capture support is not implemented as of SDL 2.0.4, so the + * `iscapture` parameter is for future expansion and should always be zero for + * now. + * + * This function will return -1 if an explicit list of devices can't be + * determined. Returning -1 is not an error. For example, if SDL is set up to + * talk to a remote audio server, it can't list every one available on the + * Internet, but it will still allow a specific host to be specified in + * SDL_OpenAudioDevice(). + * + * In many common cases, when this function returns a value <= 0, it can still + * successfully open the default device (NULL for first argument of + * SDL_OpenAudioDevice()). + * + * This function may trigger a complete redetect of available hardware. It + * should not be called for each iteration of a loop, but rather once at the + * start of a loop: + * + * ```c + * // Don't do this: + * for (int i = 0; i < SDL_GetNumAudioDevices(0); i++) + * + * // do this instead: + * const int count = SDL_GetNumAudioDevices(0); + * for (int i = 0; i < count; ++i) { do_something_here(); } + * ``` + * + * \param iscapture zero to request playback devices, non-zero to request + * recording devices. + * \returns the number of available devices exposed by the current driver or + * -1 if an explicit list of devices can't be determined. A return + * value of -1 does not necessarily mean an error condition. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetAudioDeviceName + * \sa SDL_OpenAudioDevice + */ +extern DECLSPEC int SDLCALL SDL_GetNumAudioDevices(int iscapture); + +/** + * Get the human-readable name of a specific audio device. + * + * This function is only valid after successfully initializing the audio + * subsystem. The values returned by this function reflect the latest call to + * SDL_GetNumAudioDevices(); re-call that function to redetect available + * hardware. + * + * The string returned by this function is UTF-8 encoded, read-only, and + * managed internally. You are not to free it. If you need to keep the string + * for any length of time, you should make your own copy of it, as it will be + * invalid next time any of several other SDL functions are called. + * + * \param index the index of the audio device; valid values range from 0 to + * SDL_GetNumAudioDevices() - 1. + * \param iscapture non-zero to query the list of recording devices, zero to + * query the list of output devices. + * \returns the name of the audio device at the requested index, or NULL on + * error. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetNumAudioDevices + * \sa SDL_GetDefaultAudioInfo + */ +extern DECLSPEC const char *SDLCALL SDL_GetAudioDeviceName(int index, + int iscapture); + +/** + * Get the preferred audio format of a specific audio device. + * + * This function is only valid after a successfully initializing the audio + * subsystem. The values returned by this function reflect the latest call to + * SDL_GetNumAudioDevices(); re-call that function to redetect available + * hardware. + * + * `spec` will be filled with the sample rate, sample format, and channel + * count. + * + * \param index the index of the audio device; valid values range from 0 to + * SDL_GetNumAudioDevices() - 1. + * \param iscapture non-zero to query the list of recording devices, zero to + * query the list of output devices. + * \param spec The SDL_AudioSpec to be initialized by this function. + * \returns 0 on success, nonzero on error. + * + * \since This function is available since SDL 2.0.16. + * + * \sa SDL_GetNumAudioDevices + * \sa SDL_GetDefaultAudioInfo + */ +extern DECLSPEC int SDLCALL SDL_GetAudioDeviceSpec(int index, + int iscapture, + SDL_AudioSpec *spec); + + +/** + * Get the name and preferred format of the default audio device. + * + * Some (but not all!) platforms have an isolated mechanism to get information + * about the "default" device. This can actually be a completely different + * device that's not in the list you get from SDL_GetAudioDeviceSpec(). It can + * even be a network address! (This is discussed in SDL_OpenAudioDevice().) + * + * As a result, this call is not guaranteed to be performant, as it can query + * the sound server directly every time, unlike the other query functions. You + * should call this function sparingly! + * + * `spec` will be filled with the sample rate, sample format, and channel + * count, if a default device exists on the system. If `name` is provided, + * will be filled with either a dynamically-allocated UTF-8 string or NULL. + * + * \param name A pointer to be filled with the name of the default device (can + * be NULL). Please call SDL_free() when you are done with this + * pointer! + * \param spec The SDL_AudioSpec to be initialized by this function. + * \param iscapture non-zero to query the default recording device, zero to + * query the default output device. + * \returns 0 on success, nonzero on error. + * + * \since This function is available since SDL 2.24.0. + * + * \sa SDL_GetAudioDeviceName + * \sa SDL_GetAudioDeviceSpec + * \sa SDL_OpenAudioDevice + */ +extern DECLSPEC int SDLCALL SDL_GetDefaultAudioInfo(char **name, + SDL_AudioSpec *spec, + int iscapture); + + +/** + * Open a specific audio device. + * + * SDL_OpenAudio(), unlike this function, always acts on device ID 1. As such, + * this function will never return a 1 so as not to conflict with the legacy + * function. + * + * Please note that SDL 2.0 before 2.0.5 did not support recording; as such, + * this function would fail if `iscapture` was not zero. Starting with SDL + * 2.0.5, recording is implemented and this value can be non-zero. + * + * Passing in a `device` name of NULL requests the most reasonable default + * (and is equivalent to what SDL_OpenAudio() does to choose a device). The + * `device` name is a UTF-8 string reported by SDL_GetAudioDeviceName(), but + * some drivers allow arbitrary and driver-specific strings, such as a + * hostname/IP address for a remote audio server, or a filename in the + * diskaudio driver. + * + * An opened audio device starts out paused, and should be enabled for playing + * by calling SDL_PauseAudioDevice(devid, 0) when you are ready for your audio + * callback function to be called. Since the audio driver may modify the + * requested size of the audio buffer, you should allocate any local mixing + * buffers after you open the audio device. + * + * The audio callback runs in a separate thread in most cases; you can prevent + * race conditions between your callback and other threads without fully + * pausing playback with SDL_LockAudioDevice(). For more information about the + * callback, see SDL_AudioSpec. + * + * Managing the audio spec via 'desired' and 'obtained': + * + * When filling in the desired audio spec structure: + * + * - `desired->freq` should be the frequency in sample-frames-per-second (Hz). + * - `desired->format` should be the audio format (`AUDIO_S16SYS`, etc). + * - `desired->samples` is the desired size of the audio buffer, in _sample + * frames_ (with stereo output, two samples--left and right--would make a + * single sample frame). This number should be a power of two, and may be + * adjusted by the audio driver to a value more suitable for the hardware. + * Good values seem to range between 512 and 4096 inclusive, depending on + * the application and CPU speed. Smaller values reduce latency, but can + * lead to underflow if the application is doing heavy processing and cannot + * fill the audio buffer in time. Note that the number of sample frames is + * directly related to time by the following formula: `ms = + * (sampleframes*1000)/freq` + * - `desired->size` is the size in _bytes_ of the audio buffer, and is + * calculated by SDL_OpenAudioDevice(). You don't initialize this. + * - `desired->silence` is the value used to set the buffer to silence, and is + * calculated by SDL_OpenAudioDevice(). You don't initialize this. + * - `desired->callback` should be set to a function that will be called when + * the audio device is ready for more data. It is passed a pointer to the + * audio buffer, and the length in bytes of the audio buffer. This function + * usually runs in a separate thread, and so you should protect data + * structures that it accesses by calling SDL_LockAudioDevice() and + * SDL_UnlockAudioDevice() in your code. Alternately, you may pass a NULL + * pointer here, and call SDL_QueueAudio() with some frequency, to queue + * more audio samples to be played (or for capture devices, call + * SDL_DequeueAudio() with some frequency, to obtain audio samples). + * - `desired->userdata` is passed as the first parameter to your callback + * function. If you passed a NULL callback, this value is ignored. + * + * `allowed_changes` can have the following flags OR'd together: + * + * - `SDL_AUDIO_ALLOW_FREQUENCY_CHANGE` + * - `SDL_AUDIO_ALLOW_FORMAT_CHANGE` + * - `SDL_AUDIO_ALLOW_CHANNELS_CHANGE` + * - `SDL_AUDIO_ALLOW_SAMPLES_CHANGE` + * - `SDL_AUDIO_ALLOW_ANY_CHANGE` + * + * These flags specify how SDL should behave when a device cannot offer a + * specific feature. If the application requests a feature that the hardware + * doesn't offer, SDL will always try to get the closest equivalent. + * + * For example, if you ask for float32 audio format, but the sound card only + * supports int16, SDL will set the hardware to int16. If you had set + * SDL_AUDIO_ALLOW_FORMAT_CHANGE, SDL will change the format in the `obtained` + * structure. If that flag was *not* set, SDL will prepare to convert your + * callback's float32 audio to int16 before feeding it to the hardware and + * will keep the originally requested format in the `obtained` structure. + * + * The resulting audio specs, varying depending on hardware and on what + * changes were allowed, will then be written back to `obtained`. + * + * If your application can only handle one specific data format, pass a zero + * for `allowed_changes` and let SDL transparently handle any differences. + * + * \param device a UTF-8 string reported by SDL_GetAudioDeviceName() or a + * driver-specific name as appropriate. NULL requests the most + * reasonable default device. + * \param iscapture non-zero to specify a device should be opened for + * recording, not playback. + * \param desired an SDL_AudioSpec structure representing the desired output + * format; see SDL_OpenAudio() for more information. + * \param obtained an SDL_AudioSpec structure filled in with the actual output + * format; see SDL_OpenAudio() for more information. + * \param allowed_changes 0, or one or more flags OR'd together. + * \returns a valid device ID that is > 0 on success or 0 on failure; call + * SDL_GetError() for more information. + * + * For compatibility with SDL 1.2, this will never return 1, since + * SDL reserves that ID for the legacy SDL_OpenAudio() function. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CloseAudioDevice + * \sa SDL_GetAudioDeviceName + * \sa SDL_LockAudioDevice + * \sa SDL_OpenAudio + * \sa SDL_PauseAudioDevice + * \sa SDL_UnlockAudioDevice + */ +extern DECLSPEC SDL_AudioDeviceID SDLCALL SDL_OpenAudioDevice( + const char *device, + int iscapture, + const SDL_AudioSpec *desired, + SDL_AudioSpec *obtained, + int allowed_changes); + + + +/** + * \name Audio state + * + * Get the current audio state. + */ +/* @{ */ +typedef enum +{ + SDL_AUDIO_STOPPED = 0, + SDL_AUDIO_PLAYING, + SDL_AUDIO_PAUSED +} SDL_AudioStatus; + +/** + * This function is a legacy means of querying the audio device. + * + * New programs might want to use SDL_GetAudioDeviceStatus() instead. This + * function is equivalent to calling... + * + * ```c + * SDL_GetAudioDeviceStatus(1); + * ``` + * + * ...and is only useful if you used the legacy SDL_OpenAudio() function. + * + * \returns the SDL_AudioStatus of the audio device opened by SDL_OpenAudio(). + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetAudioDeviceStatus + */ +extern DECLSPEC SDL_AudioStatus SDLCALL SDL_GetAudioStatus(void); + +/** + * Use this function to get the current audio state of an audio device. + * + * \param dev the ID of an audio device previously opened with + * SDL_OpenAudioDevice(). + * \returns the SDL_AudioStatus of the specified audio device. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_PauseAudioDevice + */ +extern DECLSPEC SDL_AudioStatus SDLCALL SDL_GetAudioDeviceStatus(SDL_AudioDeviceID dev); +/* @} *//* Audio State */ + +/** + * \name Pause audio functions + * + * These functions pause and unpause the audio callback processing. + * They should be called with a parameter of 0 after opening the audio + * device to start playing sound. This is so you can safely initialize + * data for your callback function after opening the audio device. + * Silence will be written to the audio device during the pause. + */ +/* @{ */ + +/** + * This function is a legacy means of pausing the audio device. + * + * New programs might want to use SDL_PauseAudioDevice() instead. This + * function is equivalent to calling... + * + * ```c + * SDL_PauseAudioDevice(1, pause_on); + * ``` + * + * ...and is only useful if you used the legacy SDL_OpenAudio() function. + * + * \param pause_on non-zero to pause, 0 to unpause. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetAudioStatus + * \sa SDL_PauseAudioDevice + */ +extern DECLSPEC void SDLCALL SDL_PauseAudio(int pause_on); + +/** + * Use this function to pause and unpause audio playback on a specified + * device. + * + * This function pauses and unpauses the audio callback processing for a given + * device. Newly-opened audio devices start in the paused state, so you must + * call this function with **pause_on**=0 after opening the specified audio + * device to start playing sound. This allows you to safely initialize data + * for your callback function after opening the audio device. Silence will be + * written to the audio device while paused, and the audio callback is + * guaranteed to not be called. Pausing one device does not prevent other + * unpaused devices from running their callbacks. + * + * Pausing state does not stack; even if you pause a device several times, a + * single unpause will start the device playing again, and vice versa. This is + * different from how SDL_LockAudioDevice() works. + * + * If you just need to protect a few variables from race conditions vs your + * callback, you shouldn't pause the audio device, as it will lead to dropouts + * in the audio playback. Instead, you should use SDL_LockAudioDevice(). + * + * \param dev a device opened by SDL_OpenAudioDevice(). + * \param pause_on non-zero to pause, 0 to unpause. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LockAudioDevice + */ +extern DECLSPEC void SDLCALL SDL_PauseAudioDevice(SDL_AudioDeviceID dev, + int pause_on); +/* @} *//* Pause audio functions */ + +/** + * Load the audio data of a WAVE file into memory. + * + * Loading a WAVE file requires `src`, `spec`, `audio_buf` and `audio_len` to + * be valid pointers. The entire data portion of the file is then loaded into + * memory and decoded if necessary. + * + * If `freesrc` is non-zero, the data source gets automatically closed and + * freed before the function returns. + * + * Supported formats are RIFF WAVE files with the formats PCM (8, 16, 24, and + * 32 bits), IEEE Float (32 bits), Microsoft ADPCM and IMA ADPCM (4 bits), and + * A-law and mu-law (8 bits). Other formats are currently unsupported and + * cause an error. + * + * If this function succeeds, the pointer returned by it is equal to `spec` + * and the pointer to the audio data allocated by the function is written to + * `audio_buf` and its length in bytes to `audio_len`. The SDL_AudioSpec + * members `freq`, `channels`, and `format` are set to the values of the audio + * data in the buffer. The `samples` member is set to a sane default and all + * others are set to zero. + * + * It's necessary to use SDL_FreeWAV() to free the audio data returned in + * `audio_buf` when it is no longer used. + * + * Because of the underspecification of the .WAV format, there are many + * problematic files in the wild that cause issues with strict decoders. To + * provide compatibility with these files, this decoder is lenient in regards + * to the truncation of the file, the fact chunk, and the size of the RIFF + * chunk. The hints `SDL_HINT_WAVE_RIFF_CHUNK_SIZE`, + * `SDL_HINT_WAVE_TRUNCATION`, and `SDL_HINT_WAVE_FACT_CHUNK` can be used to + * tune the behavior of the loading process. + * + * Any file that is invalid (due to truncation, corruption, or wrong values in + * the headers), too big, or unsupported causes an error. Additionally, any + * critical I/O error from the data source will terminate the loading process + * with an error. The function returns NULL on error and in all cases (with + * the exception of `src` being NULL), an appropriate error message will be + * set. + * + * It is required that the data source supports seeking. + * + * Example: + * + * ```c + * SDL_LoadWAV_RW(SDL_RWFromFile("sample.wav", "rb"), 1, &spec, &buf, &len); + * ``` + * + * Note that the SDL_LoadWAV macro does this same thing for you, but in a less + * messy way: + * + * ```c + * SDL_LoadWAV("sample.wav", &spec, &buf, &len); + * ``` + * + * \param src The data source for the WAVE data. + * \param freesrc If non-zero, SDL will _always_ free the data source. + * \param spec An SDL_AudioSpec that will be filled in with the wave file's + * format details. + * \param audio_buf A pointer filled with the audio data, allocated by the + * function. + * \param audio_len A pointer filled with the length of the audio data buffer + * in bytes. + * \returns This function, if successfully called, returns `spec`, which will + * be filled with the audio data format of the wave source data. + * `audio_buf` will be filled with a pointer to an allocated buffer + * containing the audio data, and `audio_len` is filled with the + * length of that audio buffer in bytes. + * + * This function returns NULL if the .WAV file cannot be opened, uses + * an unknown data format, or is corrupt; call SDL_GetError() for + * more information. + * + * When the application is done with the data returned in + * `audio_buf`, it should call SDL_FreeWAV() to dispose of it. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_FreeWAV + * \sa SDL_LoadWAV + */ +extern DECLSPEC SDL_AudioSpec *SDLCALL SDL_LoadWAV_RW(SDL_RWops * src, + int freesrc, + SDL_AudioSpec * spec, + Uint8 ** audio_buf, + Uint32 * audio_len); + +/** + * Loads a WAV from a file. + * + * Compatibility convenience function. + */ +#define SDL_LoadWAV(file, spec, audio_buf, audio_len) \ + SDL_LoadWAV_RW(SDL_RWFromFile(file, "rb"),1, spec,audio_buf,audio_len) + +/** + * Free data previously allocated with SDL_LoadWAV() or SDL_LoadWAV_RW(). + * + * After a WAVE file has been opened with SDL_LoadWAV() or SDL_LoadWAV_RW() + * its data can eventually be freed with SDL_FreeWAV(). It is safe to call + * this function with a NULL pointer. + * + * \param audio_buf a pointer to the buffer created by SDL_LoadWAV() or + * SDL_LoadWAV_RW(). + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LoadWAV + * \sa SDL_LoadWAV_RW + */ +extern DECLSPEC void SDLCALL SDL_FreeWAV(Uint8 * audio_buf); + +/** + * Initialize an SDL_AudioCVT structure for conversion. + * + * Before an SDL_AudioCVT structure can be used to convert audio data it must + * be initialized with source and destination information. + * + * This function will zero out every field of the SDL_AudioCVT, so it must be + * called before the application fills in the final buffer information. + * + * Once this function has returned successfully, and reported that a + * conversion is necessary, the application fills in the rest of the fields in + * SDL_AudioCVT, now that it knows how large a buffer it needs to allocate, + * and then can call SDL_ConvertAudio() to complete the conversion. + * + * \param cvt an SDL_AudioCVT structure filled in with audio conversion + * information. + * \param src_format the source format of the audio data; for more info see + * SDL_AudioFormat. + * \param src_channels the number of channels in the source. + * \param src_rate the frequency (sample-frames-per-second) of the source. + * \param dst_format the destination format of the audio data; for more info + * see SDL_AudioFormat. + * \param dst_channels the number of channels in the destination. + * \param dst_rate the frequency (sample-frames-per-second) of the + * destination. + * \returns 1 if the audio filter is prepared, 0 if no conversion is needed, + * or a negative error code on failure; call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_ConvertAudio + */ +extern DECLSPEC int SDLCALL SDL_BuildAudioCVT(SDL_AudioCVT * cvt, + SDL_AudioFormat src_format, + Uint8 src_channels, + int src_rate, + SDL_AudioFormat dst_format, + Uint8 dst_channels, + int dst_rate); + +/** + * Convert audio data to a desired audio format. + * + * This function does the actual audio data conversion, after the application + * has called SDL_BuildAudioCVT() to prepare the conversion information and + * then filled in the buffer details. + * + * Once the application has initialized the `cvt` structure using + * SDL_BuildAudioCVT(), allocated an audio buffer and filled it with audio + * data in the source format, this function will convert the buffer, in-place, + * to the desired format. + * + * The data conversion may go through several passes; any given pass may + * possibly temporarily increase the size of the data. For example, SDL might + * expand 16-bit data to 32 bits before resampling to a lower frequency, + * shrinking the data size after having grown it briefly. Since the supplied + * buffer will be both the source and destination, converting as necessary + * in-place, the application must allocate a buffer that will fully contain + * the data during its largest conversion pass. After SDL_BuildAudioCVT() + * returns, the application should set the `cvt->len` field to the size, in + * bytes, of the source data, and allocate a buffer that is `cvt->len * + * cvt->len_mult` bytes long for the `buf` field. + * + * The source data should be copied into this buffer before the call to + * SDL_ConvertAudio(). Upon successful return, this buffer will contain the + * converted audio, and `cvt->len_cvt` will be the size of the converted data, + * in bytes. Any bytes in the buffer past `cvt->len_cvt` are undefined once + * this function returns. + * + * \param cvt an SDL_AudioCVT structure that was previously set up by + * SDL_BuildAudioCVT(). + * \returns 0 if the conversion was completed successfully or a negative error + * code on failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_BuildAudioCVT + */ +extern DECLSPEC int SDLCALL SDL_ConvertAudio(SDL_AudioCVT * cvt); + +/* SDL_AudioStream is a new audio conversion interface. + The benefits vs SDL_AudioCVT: + - it can handle resampling data in chunks without generating + artifacts, when it doesn't have the complete buffer available. + - it can handle incoming data in any variable size. + - You push data as you have it, and pull it when you need it + */ +/* this is opaque to the outside world. */ +struct _SDL_AudioStream; +typedef struct _SDL_AudioStream SDL_AudioStream; + +/** + * Create a new audio stream. + * + * \param src_format The format of the source audio. + * \param src_channels The number of channels of the source audio. + * \param src_rate The sampling rate of the source audio. + * \param dst_format The format of the desired audio output. + * \param dst_channels The number of channels of the desired audio output. + * \param dst_rate The sampling rate of the desired audio output. + * \returns 0 on success, or -1 on error. + * + * \since This function is available since SDL 2.0.7. + * + * \sa SDL_AudioStreamPut + * \sa SDL_AudioStreamGet + * \sa SDL_AudioStreamAvailable + * \sa SDL_AudioStreamFlush + * \sa SDL_AudioStreamClear + * \sa SDL_FreeAudioStream + */ +extern DECLSPEC SDL_AudioStream * SDLCALL SDL_NewAudioStream(const SDL_AudioFormat src_format, + const Uint8 src_channels, + const int src_rate, + const SDL_AudioFormat dst_format, + const Uint8 dst_channels, + const int dst_rate); + +/** + * Add data to be converted/resampled to the stream. + * + * \param stream The stream the audio data is being added to. + * \param buf A pointer to the audio data to add. + * \param len The number of bytes to write to the stream. + * \returns 0 on success, or -1 on error. + * + * \since This function is available since SDL 2.0.7. + * + * \sa SDL_NewAudioStream + * \sa SDL_AudioStreamGet + * \sa SDL_AudioStreamAvailable + * \sa SDL_AudioStreamFlush + * \sa SDL_AudioStreamClear + * \sa SDL_FreeAudioStream + */ +extern DECLSPEC int SDLCALL SDL_AudioStreamPut(SDL_AudioStream *stream, const void *buf, int len); + +/** + * Get converted/resampled data from the stream + * + * \param stream The stream the audio is being requested from. + * \param buf A buffer to fill with audio data. + * \param len The maximum number of bytes to fill. + * \returns the number of bytes read from the stream, or -1 on error. + * + * \since This function is available since SDL 2.0.7. + * + * \sa SDL_NewAudioStream + * \sa SDL_AudioStreamPut + * \sa SDL_AudioStreamAvailable + * \sa SDL_AudioStreamFlush + * \sa SDL_AudioStreamClear + * \sa SDL_FreeAudioStream + */ +extern DECLSPEC int SDLCALL SDL_AudioStreamGet(SDL_AudioStream *stream, void *buf, int len); + +/** + * Get the number of converted/resampled bytes available. + * + * The stream may be buffering data behind the scenes until it has enough to + * resample correctly, so this number might be lower than what you expect, or + * even be zero. Add more data or flush the stream if you need the data now. + * + * \since This function is available since SDL 2.0.7. + * + * \sa SDL_NewAudioStream + * \sa SDL_AudioStreamPut + * \sa SDL_AudioStreamGet + * \sa SDL_AudioStreamFlush + * \sa SDL_AudioStreamClear + * \sa SDL_FreeAudioStream + */ +extern DECLSPEC int SDLCALL SDL_AudioStreamAvailable(SDL_AudioStream *stream); + +/** + * Tell the stream that you're done sending data, and anything being buffered + * should be converted/resampled and made available immediately. + * + * It is legal to add more data to a stream after flushing, but there will be + * audio gaps in the output. Generally this is intended to signal the end of + * input, so the complete output becomes available. + * + * \since This function is available since SDL 2.0.7. + * + * \sa SDL_NewAudioStream + * \sa SDL_AudioStreamPut + * \sa SDL_AudioStreamGet + * \sa SDL_AudioStreamAvailable + * \sa SDL_AudioStreamClear + * \sa SDL_FreeAudioStream + */ +extern DECLSPEC int SDLCALL SDL_AudioStreamFlush(SDL_AudioStream *stream); + +/** + * Clear any pending data in the stream without converting it + * + * \since This function is available since SDL 2.0.7. + * + * \sa SDL_NewAudioStream + * \sa SDL_AudioStreamPut + * \sa SDL_AudioStreamGet + * \sa SDL_AudioStreamAvailable + * \sa SDL_AudioStreamFlush + * \sa SDL_FreeAudioStream + */ +extern DECLSPEC void SDLCALL SDL_AudioStreamClear(SDL_AudioStream *stream); + +/** + * Free an audio stream + * + * \since This function is available since SDL 2.0.7. + * + * \sa SDL_NewAudioStream + * \sa SDL_AudioStreamPut + * \sa SDL_AudioStreamGet + * \sa SDL_AudioStreamAvailable + * \sa SDL_AudioStreamFlush + * \sa SDL_AudioStreamClear + */ +extern DECLSPEC void SDLCALL SDL_FreeAudioStream(SDL_AudioStream *stream); + +/** + * Maximum volume allowed in calls to SDL_MixAudio and SDL_MixAudioFormat. + */ +#define SDL_MIX_MAXVOLUME 128 + +/** + * This function is a legacy means of mixing audio. + * + * This function is equivalent to calling... + * + * ```c + * SDL_MixAudioFormat(dst, src, format, len, volume); + * ``` + * + * ...where `format` is the obtained format of the audio device from the + * legacy SDL_OpenAudio() function. + * + * \param dst the destination for the mixed audio. + * \param src the source audio buffer to be mixed. + * \param len the length of the audio buffer in bytes. + * \param volume ranges from 0 - 128, and should be set to SDL_MIX_MAXVOLUME + * for full audio volume. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_MixAudioFormat + */ +extern DECLSPEC void SDLCALL SDL_MixAudio(Uint8 * dst, const Uint8 * src, + Uint32 len, int volume); + +/** + * Mix audio data in a specified format. + * + * This takes an audio buffer `src` of `len` bytes of `format` data and mixes + * it into `dst`, performing addition, volume adjustment, and overflow + * clipping. The buffer pointed to by `dst` must also be `len` bytes of + * `format` data. + * + * This is provided for convenience -- you can mix your own audio data. + * + * Do not use this function for mixing together more than two streams of + * sample data. The output from repeated application of this function may be + * distorted by clipping, because there is no accumulator with greater range + * than the input (not to mention this being an inefficient way of doing it). + * + * It is a common misconception that this function is required to write audio + * data to an output stream in an audio callback. While you can do that, + * SDL_MixAudioFormat() is really only needed when you're mixing a single + * audio stream with a volume adjustment. + * + * \param dst the destination for the mixed audio. + * \param src the source audio buffer to be mixed. + * \param format the SDL_AudioFormat structure representing the desired audio + * format. + * \param len the length of the audio buffer in bytes. + * \param volume ranges from 0 - 128, and should be set to SDL_MIX_MAXVOLUME + * for full audio volume. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC void SDLCALL SDL_MixAudioFormat(Uint8 * dst, + const Uint8 * src, + SDL_AudioFormat format, + Uint32 len, int volume); + +/** + * Queue more audio on non-callback devices. + * + * If you are looking to retrieve queued audio from a non-callback capture + * device, you want SDL_DequeueAudio() instead. SDL_QueueAudio() will return + * -1 to signify an error if you use it with capture devices. + * + * SDL offers two ways to feed audio to the device: you can either supply a + * callback that SDL triggers with some frequency to obtain more audio (pull + * method), or you can supply no callback, and then SDL will expect you to + * supply data at regular intervals (push method) with this function. + * + * There are no limits on the amount of data you can queue, short of + * exhaustion of address space. Queued data will drain to the device as + * necessary without further intervention from you. If the device needs audio + * but there is not enough queued, it will play silence to make up the + * difference. This means you will have skips in your audio playback if you + * aren't routinely queueing sufficient data. + * + * This function copies the supplied data, so you are safe to free it when the + * function returns. This function is thread-safe, but queueing to the same + * device from two threads at once does not promise which buffer will be + * queued first. + * + * You may not queue audio on a device that is using an application-supplied + * callback; doing so returns an error. You have to use the audio callback or + * queue audio with this function, but not both. + * + * You should not call SDL_LockAudio() on the device before queueing; SDL + * handles locking internally for this function. + * + * Note that SDL2 does not support planar audio. You will need to resample + * from planar audio formats into a non-planar one (see SDL_AudioFormat) + * before queuing audio. + * + * \param dev the device ID to which we will queue audio. + * \param data the data to queue to the device for later playback. + * \param len the number of bytes (not samples!) to which `data` points. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.4. + * + * \sa SDL_ClearQueuedAudio + * \sa SDL_GetQueuedAudioSize + */ +extern DECLSPEC int SDLCALL SDL_QueueAudio(SDL_AudioDeviceID dev, const void *data, Uint32 len); + +/** + * Dequeue more audio on non-callback devices. + * + * If you are looking to queue audio for output on a non-callback playback + * device, you want SDL_QueueAudio() instead. SDL_DequeueAudio() will always + * return 0 if you use it with playback devices. + * + * SDL offers two ways to retrieve audio from a capture device: you can either + * supply a callback that SDL triggers with some frequency as the device + * records more audio data, (push method), or you can supply no callback, and + * then SDL will expect you to retrieve data at regular intervals (pull + * method) with this function. + * + * There are no limits on the amount of data you can queue, short of + * exhaustion of address space. Data from the device will keep queuing as + * necessary without further intervention from you. This means you will + * eventually run out of memory if you aren't routinely dequeueing data. + * + * Capture devices will not queue data when paused; if you are expecting to + * not need captured audio for some length of time, use SDL_PauseAudioDevice() + * to stop the capture device from queueing more data. This can be useful + * during, say, level loading times. When unpaused, capture devices will start + * queueing data from that point, having flushed any capturable data available + * while paused. + * + * This function is thread-safe, but dequeueing from the same device from two + * threads at once does not promise which thread will dequeue data first. + * + * You may not dequeue audio from a device that is using an + * application-supplied callback; doing so returns an error. You have to use + * the audio callback, or dequeue audio with this function, but not both. + * + * You should not call SDL_LockAudio() on the device before dequeueing; SDL + * handles locking internally for this function. + * + * \param dev the device ID from which we will dequeue audio. + * \param data a pointer into where audio data should be copied. + * \param len the number of bytes (not samples!) to which (data) points. + * \returns the number of bytes dequeued, which could be less than requested; + * call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.5. + * + * \sa SDL_ClearQueuedAudio + * \sa SDL_GetQueuedAudioSize + */ +extern DECLSPEC Uint32 SDLCALL SDL_DequeueAudio(SDL_AudioDeviceID dev, void *data, Uint32 len); + +/** + * Get the number of bytes of still-queued audio. + * + * For playback devices: this is the number of bytes that have been queued for + * playback with SDL_QueueAudio(), but have not yet been sent to the hardware. + * + * Once we've sent it to the hardware, this function can not decide the exact + * byte boundary of what has been played. It's possible that we just gave the + * hardware several kilobytes right before you called this function, but it + * hasn't played any of it yet, or maybe half of it, etc. + * + * For capture devices, this is the number of bytes that have been captured by + * the device and are waiting for you to dequeue. This number may grow at any + * time, so this only informs of the lower-bound of available data. + * + * You may not queue or dequeue audio on a device that is using an + * application-supplied callback; calling this function on such a device + * always returns 0. You have to use the audio callback or queue audio, but + * not both. + * + * You should not call SDL_LockAudio() on the device before querying; SDL + * handles locking internally for this function. + * + * \param dev the device ID of which we will query queued audio size. + * \returns the number of bytes (not samples!) of queued audio. + * + * \since This function is available since SDL 2.0.4. + * + * \sa SDL_ClearQueuedAudio + * \sa SDL_QueueAudio + * \sa SDL_DequeueAudio + */ +extern DECLSPEC Uint32 SDLCALL SDL_GetQueuedAudioSize(SDL_AudioDeviceID dev); + +/** + * Drop any queued audio data waiting to be sent to the hardware. + * + * Immediately after this call, SDL_GetQueuedAudioSize() will return 0. For + * output devices, the hardware will start playing silence if more audio isn't + * queued. For capture devices, the hardware will start filling the empty + * queue with new data if the capture device isn't paused. + * + * This will not prevent playback of queued audio that's already been sent to + * the hardware, as we can not undo that, so expect there to be some fraction + * of a second of audio that might still be heard. This can be useful if you + * want to, say, drop any pending music or any unprocessed microphone input + * during a level change in your game. + * + * You may not queue or dequeue audio on a device that is using an + * application-supplied callback; calling this function on such a device + * always returns 0. You have to use the audio callback or queue audio, but + * not both. + * + * You should not call SDL_LockAudio() on the device before clearing the + * queue; SDL handles locking internally for this function. + * + * This function always succeeds and thus returns void. + * + * \param dev the device ID of which to clear the audio queue. + * + * \since This function is available since SDL 2.0.4. + * + * \sa SDL_GetQueuedAudioSize + * \sa SDL_QueueAudio + * \sa SDL_DequeueAudio + */ +extern DECLSPEC void SDLCALL SDL_ClearQueuedAudio(SDL_AudioDeviceID dev); + + +/** + * \name Audio lock functions + * + * The lock manipulated by these functions protects the callback function. + * During a SDL_LockAudio()/SDL_UnlockAudio() pair, you can be guaranteed that + * the callback function is not running. Do not call these from the callback + * function or you will cause deadlock. + */ +/* @{ */ + +/** + * This function is a legacy means of locking the audio device. + * + * New programs might want to use SDL_LockAudioDevice() instead. This function + * is equivalent to calling... + * + * ```c + * SDL_LockAudioDevice(1); + * ``` + * + * ...and is only useful if you used the legacy SDL_OpenAudio() function. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LockAudioDevice + * \sa SDL_UnlockAudio + * \sa SDL_UnlockAudioDevice + */ +extern DECLSPEC void SDLCALL SDL_LockAudio(void); + +/** + * Use this function to lock out the audio callback function for a specified + * device. + * + * The lock manipulated by these functions protects the audio callback + * function specified in SDL_OpenAudioDevice(). During a + * SDL_LockAudioDevice()/SDL_UnlockAudioDevice() pair, you can be guaranteed + * that the callback function for that device is not running, even if the + * device is not paused. While a device is locked, any other unpaused, + * unlocked devices may still run their callbacks. + * + * Calling this function from inside your audio callback is unnecessary. SDL + * obtains this lock before calling your function, and releases it when the + * function returns. + * + * You should not hold the lock longer than absolutely necessary. If you hold + * it too long, you'll experience dropouts in your audio playback. Ideally, + * your application locks the device, sets a few variables and unlocks again. + * Do not do heavy work while holding the lock for a device. + * + * It is safe to lock the audio device multiple times, as long as you unlock + * it an equivalent number of times. The callback will not run until the + * device has been unlocked completely in this way. If your application fails + * to unlock the device appropriately, your callback will never run, you might + * hear repeating bursts of audio, and SDL_CloseAudioDevice() will probably + * deadlock. + * + * Internally, the audio device lock is a mutex; if you lock from two threads + * at once, not only will you block the audio callback, you'll block the other + * thread. + * + * \param dev the ID of the device to be locked. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_UnlockAudioDevice + */ +extern DECLSPEC void SDLCALL SDL_LockAudioDevice(SDL_AudioDeviceID dev); + +/** + * This function is a legacy means of unlocking the audio device. + * + * New programs might want to use SDL_UnlockAudioDevice() instead. This + * function is equivalent to calling... + * + * ```c + * SDL_UnlockAudioDevice(1); + * ``` + * + * ...and is only useful if you used the legacy SDL_OpenAudio() function. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LockAudio + * \sa SDL_UnlockAudioDevice + */ +extern DECLSPEC void SDLCALL SDL_UnlockAudio(void); + +/** + * Use this function to unlock the audio callback function for a specified + * device. + * + * This function should be paired with a previous SDL_LockAudioDevice() call. + * + * \param dev the ID of the device to be unlocked. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LockAudioDevice + */ +extern DECLSPEC void SDLCALL SDL_UnlockAudioDevice(SDL_AudioDeviceID dev); +/* @} *//* Audio lock functions */ + +/** + * This function is a legacy means of closing the audio device. + * + * This function is equivalent to calling... + * + * ```c + * SDL_CloseAudioDevice(1); + * ``` + * + * ...and is only useful if you used the legacy SDL_OpenAudio() function. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_OpenAudio + */ +extern DECLSPEC void SDLCALL SDL_CloseAudio(void); + +/** + * Use this function to shut down audio processing and close the audio device. + * + * The application should close open audio devices once they are no longer + * needed. Calling this function will wait until the device's audio callback + * is not running, release the audio hardware and then clean up internal + * state. No further audio will play from this device once this function + * returns. + * + * This function may block briefly while pending audio data is played by the + * hardware, so that applications don't drop the last buffer of data they + * supplied. + * + * The device ID is invalid as soon as the device is closed, and is eligible + * for reuse in a new SDL_OpenAudioDevice() call immediately. + * + * \param dev an audio device previously opened with SDL_OpenAudioDevice(). + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_OpenAudioDevice + */ +extern DECLSPEC void SDLCALL SDL_CloseAudioDevice(SDL_AudioDeviceID dev); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_audio_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_bits.h b/lib/windows/include/SDL2/SDL_bits.h new file mode 100644 index 0000000..747f556 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_bits.h @@ -0,0 +1,132 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryBits + * + * Functions for fiddling with bits and bitmasks. + */ + +#ifndef SDL_bits_h_ +#define SDL_bits_h_ + +#include "SDL_stdinc.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \file SDL_bits.h + */ + +/** + * Get the index of the most significant bit. Result is undefined when called + * with 0. This operation can also be stated as "count leading zeroes" and + * "log base 2". + * + * \return the index of the most significant bit, or -1 if the value is 0. + */ +#if defined(__WATCOMC__) && defined(__386__) +extern __inline int _SDL_bsr_watcom(Uint32); +#pragma aux _SDL_bsr_watcom = \ + "bsr eax, eax" \ + parm [eax] nomemory \ + value [eax] \ + modify exact [eax] nomemory; +#endif + +/** + * Use this function to get the index of the most significant (set) bit in a + * + * \param x the number to find the MSB of. + * \returns the index of the most significant bit of x, or -1 if x is 0. + */ +SDL_FORCE_INLINE int +SDL_MostSignificantBitIndex32(Uint32 x) +{ +#if defined(__GNUC__) && (__GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) + /* Count Leading Zeroes builtin in GCC. + * http://gcc.gnu.org/onlinedocs/gcc-4.3.4/gcc/Other-Builtins.html + */ + if (x == 0) { + return -1; + } + return 31 - __builtin_clz(x); +#elif defined(__WATCOMC__) && defined(__386__) + if (x == 0) { + return -1; + } + return _SDL_bsr_watcom(x); +#elif defined(_MSC_VER) + unsigned long index; + if (_BitScanReverse(&index, x)) { + return index; + } + return -1; +#else + /* Based off of Bit Twiddling Hacks by Sean Eron Anderson + * , released in the public domain. + * http://graphics.stanford.edu/~seander/bithacks.html#IntegerLog + */ + const Uint32 b[] = {0x2, 0xC, 0xF0, 0xFF00, 0xFFFF0000}; + const int S[] = {1, 2, 4, 8, 16}; + + int msbIndex = 0; + int i; + + if (x == 0) { + return -1; + } + + for (i = 4; i >= 0; i--) + { + if (x & b[i]) + { + x >>= S[i]; + msbIndex |= S[i]; + } + } + + return msbIndex; +#endif +} + +SDL_FORCE_INLINE SDL_bool +SDL_HasExactlyOneBitSet32(Uint32 x) +{ + if (x && !(x & (x - 1))) { + return SDL_TRUE; + } + return SDL_FALSE; +} + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_bits_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_blendmode.h b/lib/windows/include/SDL2/SDL_blendmode.h new file mode 100644 index 0000000..c0c6811 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_blendmode.h @@ -0,0 +1,199 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryBlendmode + * + * Header file declaring the SDL_BlendMode enumeration + */ + +#ifndef SDL_blendmode_h_ +#define SDL_blendmode_h_ + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * The blend mode used in SDL_RenderCopy() and drawing operations. + */ +typedef enum SDL_BlendMode +{ + SDL_BLENDMODE_NONE = 0x00000000, /**< no blending + dstRGBA = srcRGBA */ + SDL_BLENDMODE_BLEND = 0x00000001, /**< alpha blending + dstRGB = (srcRGB * srcA) + (dstRGB * (1-srcA)) + dstA = srcA + (dstA * (1-srcA)) */ + SDL_BLENDMODE_ADD = 0x00000002, /**< additive blending + dstRGB = (srcRGB * srcA) + dstRGB + dstA = dstA */ + SDL_BLENDMODE_MOD = 0x00000004, /**< color modulate + dstRGB = srcRGB * dstRGB + dstA = dstA */ + SDL_BLENDMODE_MUL = 0x00000008, /**< color multiply + dstRGB = (srcRGB * dstRGB) + (dstRGB * (1-srcA)) + dstA = dstA */ + SDL_BLENDMODE_INVALID = 0x7FFFFFFF + + /* Additional custom blend modes can be returned by SDL_ComposeCustomBlendMode() */ + +} SDL_BlendMode; + +/** + * The blend operation used when combining source and destination pixel + * components + */ +typedef enum SDL_BlendOperation +{ + SDL_BLENDOPERATION_ADD = 0x1, /**< dst + src: supported by all renderers */ + SDL_BLENDOPERATION_SUBTRACT = 0x2, /**< src - dst : supported by D3D9, D3D11, OpenGL, OpenGLES */ + SDL_BLENDOPERATION_REV_SUBTRACT = 0x3, /**< dst - src : supported by D3D9, D3D11, OpenGL, OpenGLES */ + SDL_BLENDOPERATION_MINIMUM = 0x4, /**< min(dst, src) : supported by D3D9, D3D11 */ + SDL_BLENDOPERATION_MAXIMUM = 0x5 /**< max(dst, src) : supported by D3D9, D3D11 */ +} SDL_BlendOperation; + +/** + * The normalized factor used to multiply pixel components + */ +typedef enum SDL_BlendFactor +{ + SDL_BLENDFACTOR_ZERO = 0x1, /**< 0, 0, 0, 0 */ + SDL_BLENDFACTOR_ONE = 0x2, /**< 1, 1, 1, 1 */ + SDL_BLENDFACTOR_SRC_COLOR = 0x3, /**< srcR, srcG, srcB, srcA */ + SDL_BLENDFACTOR_ONE_MINUS_SRC_COLOR = 0x4, /**< 1-srcR, 1-srcG, 1-srcB, 1-srcA */ + SDL_BLENDFACTOR_SRC_ALPHA = 0x5, /**< srcA, srcA, srcA, srcA */ + SDL_BLENDFACTOR_ONE_MINUS_SRC_ALPHA = 0x6, /**< 1-srcA, 1-srcA, 1-srcA, 1-srcA */ + SDL_BLENDFACTOR_DST_COLOR = 0x7, /**< dstR, dstG, dstB, dstA */ + SDL_BLENDFACTOR_ONE_MINUS_DST_COLOR = 0x8, /**< 1-dstR, 1-dstG, 1-dstB, 1-dstA */ + SDL_BLENDFACTOR_DST_ALPHA = 0x9, /**< dstA, dstA, dstA, dstA */ + SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA = 0xA /**< 1-dstA, 1-dstA, 1-dstA, 1-dstA */ +} SDL_BlendFactor; + +/** + * Compose a custom blend mode for renderers. + * + * The functions SDL_SetRenderDrawBlendMode and SDL_SetTextureBlendMode accept + * the SDL_BlendMode returned by this function if the renderer supports it. + * + * A blend mode controls how the pixels from a drawing operation (source) get + * combined with the pixels from the render target (destination). First, the + * components of the source and destination pixels get multiplied with their + * blend factors. Then, the blend operation takes the two products and + * calculates the result that will get stored in the render target. + * + * Expressed in pseudocode, it would look like this: + * + * ```c + * dstRGB = colorOperation(srcRGB * srcColorFactor, dstRGB * dstColorFactor); + * dstA = alphaOperation(srcA * srcAlphaFactor, dstA * dstAlphaFactor); + * ``` + * + * Where the functions `colorOperation(src, dst)` and `alphaOperation(src, + * dst)` can return one of the following: + * + * - `src + dst` + * - `src - dst` + * - `dst - src` + * - `min(src, dst)` + * - `max(src, dst)` + * + * The red, green, and blue components are always multiplied with the first, + * second, and third components of the SDL_BlendFactor, respectively. The + * fourth component is not used. + * + * The alpha component is always multiplied with the fourth component of the + * SDL_BlendFactor. The other components are not used in the alpha + * calculation. + * + * Support for these blend modes varies for each renderer. To check if a + * specific SDL_BlendMode is supported, create a renderer and pass it to + * either SDL_SetRenderDrawBlendMode or SDL_SetTextureBlendMode. They will + * return with an error if the blend mode is not supported. + * + * This list describes the support of custom blend modes for each renderer in + * SDL 2.0.6. All renderers support the four blend modes listed in the + * SDL_BlendMode enumeration. + * + * - **direct3d**: Supports all operations with all factors. However, some + * factors produce unexpected results with `SDL_BLENDOPERATION_MINIMUM` and + * `SDL_BLENDOPERATION_MAXIMUM`. + * - **direct3d11**: Same as Direct3D 9. + * - **opengl**: Supports the `SDL_BLENDOPERATION_ADD` operation with all + * factors. OpenGL versions 1.1, 1.2, and 1.3 do not work correctly with SDL + * 2.0.6. + * - **opengles**: Supports the `SDL_BLENDOPERATION_ADD` operation with all + * factors. Color and alpha factors need to be the same. OpenGL ES 1 + * implementation specific: May also support `SDL_BLENDOPERATION_SUBTRACT` + * and `SDL_BLENDOPERATION_REV_SUBTRACT`. May support color and alpha + * operations being different from each other. May support color and alpha + * factors being different from each other. + * - **opengles2**: Supports the `SDL_BLENDOPERATION_ADD`, + * `SDL_BLENDOPERATION_SUBTRACT`, `SDL_BLENDOPERATION_REV_SUBTRACT` + * operations with all factors. + * - **psp**: No custom blend mode support. + * - **software**: No custom blend mode support. + * + * Some renderers do not provide an alpha component for the default render + * target. The `SDL_BLENDFACTOR_DST_ALPHA` and + * `SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA` factors do not have an effect in this + * case. + * + * \param srcColorFactor the SDL_BlendFactor applied to the red, green, and + * blue components of the source pixels. + * \param dstColorFactor the SDL_BlendFactor applied to the red, green, and + * blue components of the destination pixels. + * \param colorOperation the SDL_BlendOperation used to combine the red, + * green, and blue components of the source and + * destination pixels. + * \param srcAlphaFactor the SDL_BlendFactor applied to the alpha component of + * the source pixels. + * \param dstAlphaFactor the SDL_BlendFactor applied to the alpha component of + * the destination pixels. + * \param alphaOperation the SDL_BlendOperation used to combine the alpha + * component of the source and destination pixels. + * \returns an SDL_BlendMode that represents the chosen factors and + * operations. + * + * \since This function is available since SDL 2.0.6. + * + * \sa SDL_SetRenderDrawBlendMode + * \sa SDL_GetRenderDrawBlendMode + * \sa SDL_SetTextureBlendMode + * \sa SDL_GetTextureBlendMode + */ +extern DECLSPEC SDL_BlendMode SDLCALL SDL_ComposeCustomBlendMode(SDL_BlendFactor srcColorFactor, + SDL_BlendFactor dstColorFactor, + SDL_BlendOperation colorOperation, + SDL_BlendFactor srcAlphaFactor, + SDL_BlendFactor dstAlphaFactor, + SDL_BlendOperation alphaOperation); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_blendmode_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_clipboard.h b/lib/windows/include/SDL2/SDL_clipboard.h new file mode 100644 index 0000000..2ae16a1 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_clipboard.h @@ -0,0 +1,141 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryClipboard + * + * Include file for SDL clipboard handling + */ + +#ifndef SDL_clipboard_h_ +#define SDL_clipboard_h_ + +#include "SDL_stdinc.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Function prototypes */ + +/** + * Put UTF-8 text into the clipboard. + * + * \param text the text to store in the clipboard. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetClipboardText + * \sa SDL_HasClipboardText + */ +extern DECLSPEC int SDLCALL SDL_SetClipboardText(const char *text); + +/** + * Get UTF-8 text from the clipboard, which must be freed with SDL_free(). + * + * This functions returns empty string if there was not enough memory left for + * a copy of the clipboard's content. + * + * \returns the clipboard text on success or an empty string on failure; call + * SDL_GetError() for more information. Caller must call SDL_free() + * on the returned pointer when done with it (even if there was an + * error). + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HasClipboardText + * \sa SDL_SetClipboardText + */ +extern DECLSPEC char * SDLCALL SDL_GetClipboardText(void); + +/** + * Query whether the clipboard exists and contains a non-empty text string. + * + * \returns SDL_TRUE if the clipboard has text, or SDL_FALSE if it does not. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetClipboardText + * \sa SDL_SetClipboardText + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasClipboardText(void); + +/** + * Put UTF-8 text into the primary selection. + * + * \param text the text to store in the primary selection. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.26.0. + * + * \sa SDL_GetPrimarySelectionText + * \sa SDL_HasPrimarySelectionText + */ +extern DECLSPEC int SDLCALL SDL_SetPrimarySelectionText(const char *text); + +/** + * Get UTF-8 text from the primary selection, which must be freed with + * SDL_free(). + * + * This functions returns empty string if there was not enough memory left for + * a copy of the primary selection's content. + * + * \returns the primary selection text on success or an empty string on + * failure; call SDL_GetError() for more information. Caller must + * call SDL_free() on the returned pointer when done with it (even if + * there was an error). + * + * \since This function is available since SDL 2.26.0. + * + * \sa SDL_HasPrimarySelectionText + * \sa SDL_SetPrimarySelectionText + */ +extern DECLSPEC char * SDLCALL SDL_GetPrimarySelectionText(void); + +/** + * Query whether the primary selection exists and contains a non-empty text + * string. + * + * \returns SDL_TRUE if the primary selection has text, or SDL_FALSE if it + * does not. + * + * \since This function is available since SDL 2.26.0. + * + * \sa SDL_GetPrimarySelectionText + * \sa SDL_SetPrimarySelectionText + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasPrimarySelectionText(void); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_clipboard_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_config.h b/lib/windows/include/SDL2/SDL_config.h new file mode 100644 index 0000000..eabd78b --- /dev/null +++ b/lib/windows/include/SDL2/SDL_config.h @@ -0,0 +1,59 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_config_h_ +#define SDL_config_h_ + +#include "SDL_platform.h" + +/* WIKI CATEGORY: - */ + +/* Add any platform that doesn't build using the configure system. */ +#if defined(__WIN32__) +#include "SDL_config_windows.h" +#elif defined(__WINRT__) +#include "SDL_config_winrt.h" +#elif defined(__WINGDK__) +#include "SDL_config_wingdk.h" +#elif defined(__XBOXONE__) || defined(__XBOXSERIES__) +#include "SDL_config_xbox.h" +#elif defined(__MACOSX__) +#include "SDL_config_macosx.h" +#elif defined(__IPHONEOS__) +#include "SDL_config_iphoneos.h" +#elif defined(__ANDROID__) +#include "SDL_config_android.h" +#elif defined(__OS2__) +#include "SDL_config_os2.h" +#elif defined(__EMSCRIPTEN__) +#include "SDL_config_emscripten.h" +#elif defined(__NGAGE__) +#include "SDL_config_ngage.h" +#else +/* This is a minimal configuration just to get SDL running on new platforms. */ +#include "SDL_config_minimal.h" +#endif /* platform config */ + +#ifdef USING_GENERATED_CONFIG_H +#error Wrong SDL_config.h, check your include path? +#endif + +#endif /* SDL_config_h_ */ diff --git a/lib/windows/include/SDL2/SDL_config_android.h b/lib/windows/include/SDL2/SDL_config_android.h new file mode 100644 index 0000000..0609995 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_config_android.h @@ -0,0 +1,194 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_config_android_h_ +#define SDL_config_android_h_ +#define SDL_config_h_ + +#include "SDL_platform.h" + +/** + * \file SDL_config_android.h + * + * This is a configuration that can be used to build SDL for Android + */ + +#include + +#define HAVE_GCC_ATOMICS 1 + +#define STDC_HEADERS 1 +#define HAVE_ALLOCA_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_LIMITS_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_STRING_H 1 +#define HAVE_SYS_TYPES_H 1 + +/* C library functions */ +#define HAVE_DLOPEN 1 +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_GETENV 1 +#define HAVE_SETENV 1 +#define HAVE_PUTENV 1 +#define HAVE_SETENV 1 +#define HAVE_UNSETENV 1 +#define HAVE_QSORT 1 +#define HAVE_BSEARCH 1 +#define HAVE_ABS 1 +#define HAVE_BCOPY 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +#define HAVE_STRLCPY 1 +#define HAVE_STRLCAT 1 +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE_STRTOK_R 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE_STRCASECMP 1 +#define HAVE_STRNCASECMP 1 +#define HAVE_STRCASESTR 1 +#define HAVE_VSSCANF 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_ACOS 1 +#define HAVE_ACOSF 1 +#define HAVE_ASIN 1 +#define HAVE_ASINF 1 +#define HAVE_ATAN 1 +#define HAVE_ATANF 1 +#define HAVE_ATAN2 1 +#define HAVE_ATAN2F 1 +#define HAVE_CEIL 1 +#define HAVE_CEILF 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COPYSIGNF 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_EXP 1 +#define HAVE_EXPF 1 +#define HAVE_FABS 1 +#define HAVE_FABSF 1 +#define HAVE_FLOOR 1 +#define HAVE_FLOORF 1 +#define HAVE_FMOD 1 +#define HAVE_FMODF 1 +#define HAVE_LOG 1 +#define HAVE_LOGF 1 +#define HAVE_LOG10 1 +#define HAVE_LOG10F 1 +#define HAVE_LROUND 1 +#define HAVE_LROUNDF 1 +#define HAVE_POW 1 +#define HAVE_POWF 1 +#define HAVE_ROUND 1 +#define HAVE_ROUNDF 1 +#define HAVE_SCALBN 1 +#define HAVE_SCALBNF 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#define HAVE_SQRTF 1 +#define HAVE_TAN 1 +#define HAVE_TANF 1 +#define HAVE_TRUNC 1 +#define HAVE_TRUNCF 1 +#define HAVE_SIGACTION 1 +#define HAVE_SETJMP 1 +#define HAVE_NANOSLEEP 1 +#define HAVE_SYSCONF 1 +#define HAVE_CLOCK_GETTIME 1 + +#ifdef __LP64__ +#define SIZEOF_VOIDP 8 +#else +#define SIZEOF_VOIDP 4 +#endif + +/* Enable various audio drivers */ +#define SDL_AUDIO_DRIVER_ANDROID 1 +#define SDL_AUDIO_DRIVER_OPENSLES 1 +#define SDL_AUDIO_DRIVER_AAUDIO 1 +#define SDL_AUDIO_DRIVER_DUMMY 1 + +/* Enable various input drivers */ +#define SDL_JOYSTICK_ANDROID 1 +#define SDL_JOYSTICK_HIDAPI 1 +#define SDL_JOYSTICK_VIRTUAL 1 +#define SDL_HAPTIC_ANDROID 1 + +/* Enable sensor driver */ +#define SDL_SENSOR_ANDROID 1 + +/* Enable various shared object loading systems */ +#define SDL_LOADSO_DLOPEN 1 + +/* Enable various threading systems */ +#define SDL_THREAD_PTHREAD 1 +#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1 + +/* Enable various timer systems */ +#define SDL_TIMER_UNIX 1 + +/* Enable various video drivers */ +#define SDL_VIDEO_DRIVER_ANDROID 1 + +/* Enable OpenGL ES */ +#define SDL_VIDEO_OPENGL_ES 1 +#define SDL_VIDEO_OPENGL_ES2 1 +#define SDL_VIDEO_OPENGL_EGL 1 +#define SDL_VIDEO_RENDER_OGL_ES 1 +#define SDL_VIDEO_RENDER_OGL_ES2 1 + +/* Enable Vulkan support */ +/* Android does not support Vulkan in native code using the "armeabi" ABI. */ +#if defined(__ARM_ARCH) && __ARM_ARCH < 7 +#define SDL_VIDEO_VULKAN 0 +#else +#define SDL_VIDEO_VULKAN 1 +#endif + +/* Enable system power support */ +#define SDL_POWER_ANDROID 1 + +/* Enable the filesystem driver */ +#define SDL_FILESYSTEM_ANDROID 1 + +#endif /* SDL_config_android_h_ */ diff --git a/lib/windows/include/SDL2/SDL_config_emscripten.h b/lib/windows/include/SDL2/SDL_config_emscripten.h new file mode 100644 index 0000000..3f06490 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_config_emscripten.h @@ -0,0 +1,218 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef _SDL_config_emscripten_h_ +#define _SDL_config_emscripten_h_ + +#include "SDL_platform.h" + +/** + * \file SDL_config_emscripten.h + * + * This is a configuration that can be used to build SDL for Emscripten. + */ + +#ifdef __LP64__ +#define SIZEOF_VOIDP 8 +#else +#define SIZEOF_VOIDP 4 +#endif +#define HAVE_GCC_ATOMICS 1 + +/* Useful headers */ +#define STDC_HEADERS 1 +#define HAVE_ALLOCA_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_ICONV_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_LIMITS_H 1 +#define HAVE_MALLOC_H 1 +#define HAVE_MATH_H 1 +#define HAVE_MEMORY_H 1 +#define HAVE_SIGNAL_H 1 +#define HAVE_STDARG_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_STRING_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_WCHAR_H 1 + +/* C library functions */ +#define HAVE_DLOPEN 1 +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_GETENV 1 +#define HAVE_SETENV 1 +#define HAVE_PUTENV 1 +#define HAVE_UNSETENV 1 +#define HAVE_QSORT 1 +#define HAVE_BSEARCH 1 +#define HAVE_ABS 1 +#define HAVE_BCOPY 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_WCSLEN 1 +#define HAVE_WCSDUP 1 +#define HAVE_WCSSTR 1 +#define HAVE_WCSCMP 1 +#define HAVE_WCSNCMP 1 +#define HAVE_WCSCASECMP 1 +#define HAVE_WCSNCASECMP 1 +#define HAVE_STRLEN 1 +#define HAVE_STRLCPY 1 +#define HAVE_STRLCAT 1 +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE_STRTOK_R 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE_STRCASECMP 1 +#define HAVE_STRNCASECMP 1 +#define HAVE_SSCANF 1 +#define HAVE_VSSCANF 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_M_PI 1 +#define HAVE_ACOS 1 +#define HAVE_ACOSF 1 +#define HAVE_ASIN 1 +#define HAVE_ASINF 1 +#define HAVE_ATAN 1 +#define HAVE_ATANF 1 +#define HAVE_ATAN2 1 +#define HAVE_ATAN2F 1 +#define HAVE_CEIL 1 +#define HAVE_CEILF 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COPYSIGNF 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_EXP 1 +#define HAVE_EXPF 1 +#define HAVE_FABS 1 +#define HAVE_FABSF 1 +#define HAVE_FLOOR 1 +#define HAVE_FLOORF 1 +#define HAVE_FMOD 1 +#define HAVE_FMODF 1 +#define HAVE_LOG 1 +#define HAVE_LOGF 1 +#define HAVE_LOG10 1 +#define HAVE_LOG10F 1 +#define HAVE_LROUND 1 +#define HAVE_LROUNDF 1 +#define HAVE_POW 1 +#define HAVE_POWF 1 +#define HAVE_ROUND 1 +#define HAVE_ROUNDF 1 +#define HAVE_SCALBN 1 +#define HAVE_SCALBNF 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#define HAVE_SQRTF 1 +#define HAVE_TAN 1 +#define HAVE_TANF 1 +#define HAVE_TRUNC 1 +#define HAVE_TRUNCF 1 +#define HAVE_FSEEKO 1 +#define HAVE_FSEEKO64 1 +#define HAVE_SIGACTION 1 +#define HAVE_SA_SIGACTION 1 +#define HAVE_SETJMP 1 +#define HAVE_NANOSLEEP 1 +#define HAVE_SYSCONF 1 +#define HAVE_CLOCK_GETTIME 1 +/* #undef HAVE_GETPAGESIZE */ +#define HAVE_MPROTECT 1 +#define HAVE_ICONV 1 + +/* SDL internal assertion support */ +/* #undef SDL_DEFAULT_ASSERT_LEVEL */ + +#define SDL_CPUINFO_DISABLED 1 +#define SDL_HAPTIC_DISABLED 1 +#define SDL_HIDAPI_DISABLED 1 +#ifndef __EMSCRIPTEN_PTHREADS__ +#define SDL_THREADS_DISABLED 1 +#endif + +/* Enable various audio drivers */ +#define SDL_AUDIO_DRIVER_DISK 1 +#define SDL_AUDIO_DRIVER_DUMMY 1 +#define SDL_AUDIO_DRIVER_EMSCRIPTEN 1 + +/* Enable various input drivers */ +#define SDL_JOYSTICK_EMSCRIPTEN 1 + +/* Enable various sensor drivers */ +#define SDL_SENSOR_DUMMY 1 + +/* Enable various shared object loading systems */ +#define SDL_LOADSO_DLOPEN 1 + +/* Enable various threading systems */ +#ifdef __EMSCRIPTEN_PTHREADS__ +#define SDL_THREAD_PTHREAD 1 +#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1 +#endif + +/* Enable various timer systems */ +#define SDL_TIMER_UNIX 1 + +/* Enable various video drivers */ +#define SDL_VIDEO_DRIVER_EMSCRIPTEN 1 + +#define SDL_VIDEO_RENDER_OGL_ES2 1 + +/* Enable OpenGL support */ +/* #undef SDL_VIDEO_OPENGL */ +/* #undef SDL_VIDEO_OPENGL_ES */ +#define SDL_VIDEO_OPENGL_ES2 1 +/* #undef SDL_VIDEO_OPENGL_BGL */ +/* #undef SDL_VIDEO_OPENGL_CGL */ +/* #undef SDL_VIDEO_OPENGL_GLX */ +/* #undef SDL_VIDEO_OPENGL_WGL */ +#define SDL_VIDEO_OPENGL_EGL 1 +/* #undef SDL_VIDEO_OPENGL_OSMESA */ +/* #undef SDL_VIDEO_OPENGL_OSMESA_DYNAMIC */ + +/* Enable system power support */ +#define SDL_POWER_EMSCRIPTEN 1 + +/* Enable system filesystem support */ +#define SDL_FILESYSTEM_EMSCRIPTEN 1 + +#endif /* _SDL_config_emscripten_h_ */ diff --git a/lib/windows/include/SDL2/SDL_config_iphoneos.h b/lib/windows/include/SDL2/SDL_config_iphoneos.h new file mode 100644 index 0000000..fed314e --- /dev/null +++ b/lib/windows/include/SDL2/SDL_config_iphoneos.h @@ -0,0 +1,217 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_config_iphoneos_h_ +#define SDL_config_iphoneos_h_ +#define SDL_config_h_ + +#include "SDL_platform.h" + +#ifdef __LP64__ +#define SIZEOF_VOIDP 8 +#else +#define SIZEOF_VOIDP 4 +#endif + +#define HAVE_GCC_ATOMICS 1 + +#define STDC_HEADERS 1 +#define HAVE_ALLOCA_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_LIMITS_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_STRING_H 1 +#define HAVE_SYS_TYPES_H 1 +/* The libunwind functions are only available on x86 */ +/* #undef HAVE_LIBUNWIND_H */ + +/* C library functions */ +#define HAVE_DLOPEN 1 +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_GETENV 1 +#define HAVE_SETENV 1 +#define HAVE_PUTENV 1 +#define HAVE_SETENV 1 +#define HAVE_UNSETENV 1 +#define HAVE_QSORT 1 +#define HAVE_BSEARCH 1 +#define HAVE_ABS 1 +#define HAVE_BCOPY 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +#define HAVE_STRLCPY 1 +#define HAVE_STRLCAT 1 +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE_STRTOK_R 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE_STRCASECMP 1 +#define HAVE_STRNCASECMP 1 +#define HAVE_STRCASESTR 1 +#define HAVE_VSSCANF 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_M_PI 1 +#define HAVE_ACOS 1 +#define HAVE_ACOSF 1 +#define HAVE_ASIN 1 +#define HAVE_ASINF 1 +#define HAVE_ATAN 1 +#define HAVE_ATANF 1 +#define HAVE_ATAN2 1 +#define HAVE_ATAN2F 1 +#define HAVE_CEIL 1 +#define HAVE_CEILF 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COPYSIGNF 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_EXP 1 +#define HAVE_EXPF 1 +#define HAVE_FABS 1 +#define HAVE_FABSF 1 +#define HAVE_FLOOR 1 +#define HAVE_FLOORF 1 +#define HAVE_FMOD 1 +#define HAVE_FMODF 1 +#define HAVE_LOG 1 +#define HAVE_LOGF 1 +#define HAVE_LOG10 1 +#define HAVE_LOG10F 1 +#define HAVE_LROUND 1 +#define HAVE_LROUNDF 1 +#define HAVE_POW 1 +#define HAVE_POWF 1 +#define HAVE_ROUND 1 +#define HAVE_ROUNDF 1 +#define HAVE_SCALBN 1 +#define HAVE_SCALBNF 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#define HAVE_SQRTF 1 +#define HAVE_TAN 1 +#define HAVE_TANF 1 +#define HAVE_TRUNC 1 +#define HAVE_TRUNCF 1 +#define HAVE_SIGACTION 1 +#define HAVE_SETJMP 1 +#define HAVE_NANOSLEEP 1 +#define HAVE_SYSCONF 1 +#define HAVE_SYSCTLBYNAME 1 +#define HAVE_O_CLOEXEC 1 + +/* enable iPhone version of Core Audio driver */ +#define SDL_AUDIO_DRIVER_COREAUDIO 1 +/* Enable the dummy audio driver (src/audio/dummy/\*.c) */ +#define SDL_AUDIO_DRIVER_DUMMY 1 + +/* Enable the stub haptic driver (src/haptic/dummy/\*.c) */ +#define SDL_HAPTIC_DUMMY 1 + +/* Enable joystick support */ +/* Only enable HIDAPI support if you want to support Steam Controllers on iOS and tvOS */ +/*#define SDL_JOYSTICK_HIDAPI 1*/ +#define SDL_JOYSTICK_MFI 1 +#define SDL_JOYSTICK_VIRTUAL 1 + +#ifdef __TVOS__ +#define SDL_SENSOR_DUMMY 1 +#else +/* Enable the CoreMotion sensor driver */ +#define SDL_SENSOR_COREMOTION 1 +#endif + +/* Enable Unix style SO loading */ +#define SDL_LOADSO_DLOPEN 1 + +/* Enable various threading systems */ +#define SDL_THREAD_PTHREAD 1 +#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1 + +/* Enable various timer systems */ +#define SDL_TIMER_UNIX 1 + +/* Supported video drivers */ +#define SDL_VIDEO_DRIVER_UIKIT 1 +#define SDL_VIDEO_DRIVER_DUMMY 1 + +/* Enable OpenGL ES */ +#if !TARGET_OS_MACCATALYST +#define SDL_VIDEO_OPENGL_ES2 1 +#define SDL_VIDEO_OPENGL_ES 1 +#define SDL_VIDEO_RENDER_OGL_ES 1 +#define SDL_VIDEO_RENDER_OGL_ES2 1 +#endif + +/* Metal supported on 64-bit devices running iOS 8.0 and tvOS 9.0 and newer + Also supported in simulator from iOS 13.0 and tvOS 13.0 + */ +#if (TARGET_OS_SIMULATOR && ((__IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) || (__TV_OS_VERSION_MIN_REQUIRED >= 130000))) || (!TARGET_CPU_ARM && ((__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 90000))) +#define SDL_PLATFORM_SUPPORTS_METAL 1 +#else +#define SDL_PLATFORM_SUPPORTS_METAL 0 +#endif + +#if SDL_PLATFORM_SUPPORTS_METAL +#define SDL_VIDEO_RENDER_METAL 1 +#endif + +#if SDL_PLATFORM_SUPPORTS_METAL +#define SDL_VIDEO_VULKAN 1 +#endif + +#if SDL_PLATFORM_SUPPORTS_METAL +#define SDL_VIDEO_METAL 1 +#endif + +/* Enable system power support */ +#define SDL_POWER_UIKIT 1 + +/* enable iPhone keyboard support */ +#define SDL_IPHONE_KEYBOARD 1 + +/* enable iOS extended launch screen */ +#define SDL_IPHONE_LAUNCHSCREEN 1 + +/* enable filesystem support */ +#define SDL_FILESYSTEM_COCOA 1 + +#endif /* SDL_config_iphoneos_h_ */ diff --git a/lib/windows/include/SDL2/SDL_config_macosx.h b/lib/windows/include/SDL2/SDL_config_macosx.h new file mode 100644 index 0000000..e9e6b6d --- /dev/null +++ b/lib/windows/include/SDL2/SDL_config_macosx.h @@ -0,0 +1,277 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_config_macosx_h_ +#define SDL_config_macosx_h_ +#define SDL_config_h_ + +#include "SDL_platform.h" + +/* This gets us MAC_OS_X_VERSION_MIN_REQUIRED... */ +#include + +/* This is a set of defines to configure the SDL features */ + +#ifdef __LP64__ + #define SIZEOF_VOIDP 8 +#else + #define SIZEOF_VOIDP 4 +#endif + +/* Useful headers */ +#define STDC_HEADERS 1 +#define HAVE_ALLOCA_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_FLOAT_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_LIMITS_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_STRING_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_LIBUNWIND_H 1 + +/* C library functions */ +#define HAVE_DLOPEN 1 +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_GETENV 1 +#define HAVE_SETENV 1 +#define HAVE_PUTENV 1 +#define HAVE_UNSETENV 1 +#define HAVE_QSORT 1 +#define HAVE_BSEARCH 1 +#define HAVE_ABS 1 +#define HAVE_BCOPY 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +#define HAVE_STRLCPY 1 +#define HAVE_STRLCAT 1 +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE_STRTOK_R 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE_STRCASECMP 1 +#define HAVE_STRNCASECMP 1 +#define HAVE_STRCASESTR 1 +#define HAVE_VSSCANF 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_M_PI 1 +#define HAVE_ACOS 1 +#define HAVE_ACOSF 1 +#define HAVE_ASIN 1 +#define HAVE_ASINF 1 +#define HAVE_ATAN 1 +#define HAVE_ATANF 1 +#define HAVE_ATAN2 1 +#define HAVE_ATAN2F 1 +#define HAVE_CEIL 1 +#define HAVE_CEILF 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COPYSIGNF 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_EXP 1 +#define HAVE_EXPF 1 +#define HAVE_FABS 1 +#define HAVE_FABSF 1 +#define HAVE_FLOOR 1 +#define HAVE_FLOORF 1 +#define HAVE_FMOD 1 +#define HAVE_FMODF 1 +#define HAVE_LOG 1 +#define HAVE_LOGF 1 +#define HAVE_LOG10 1 +#define HAVE_LOG10F 1 +#define HAVE_LROUND 1 +#define HAVE_LROUNDF 1 +#define HAVE_POW 1 +#define HAVE_POWF 1 +#define HAVE_ROUND 1 +#define HAVE_ROUNDF 1 +#define HAVE_SCALBN 1 +#define HAVE_SCALBNF 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#define HAVE_SQRTF 1 +#define HAVE_TAN 1 +#define HAVE_TANF 1 +#define HAVE_TRUNC 1 +#define HAVE_TRUNCF 1 +#define HAVE_SIGACTION 1 +#define HAVE_SETJMP 1 +#define HAVE_NANOSLEEP 1 +#define HAVE_SYSCONF 1 +#define HAVE_SYSCTLBYNAME 1 + +#if defined(__has_include) && (defined(__i386__) || defined(__x86_64)) +# if __has_include() +# define HAVE_IMMINTRIN_H 1 +# endif +#endif + +#if (MAC_OS_X_VERSION_MAX_ALLOWED >= 1070) +#define HAVE_O_CLOEXEC 1 +#endif + +#define HAVE_GCC_ATOMICS 1 + +/* Enable various audio drivers */ +#define SDL_AUDIO_DRIVER_COREAUDIO 1 +#define SDL_AUDIO_DRIVER_DISK 1 +#define SDL_AUDIO_DRIVER_DUMMY 1 + +/* Enable various input drivers */ +#define SDL_JOYSTICK_HIDAPI 1 +#define SDL_JOYSTICK_IOKIT 1 +#define SDL_JOYSTICK_VIRTUAL 1 +#define SDL_HAPTIC_IOKIT 1 + +/* The MFI controller support requires ARC Objective C runtime */ +#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1080 && !defined(__i386__) +#define SDL_JOYSTICK_MFI 1 +#endif + +/* Enable the dummy sensor driver */ +#define SDL_SENSOR_DUMMY 1 + +/* Enable various shared object loading systems */ +#define SDL_LOADSO_DLOPEN 1 + +/* Enable various threading systems */ +#define SDL_THREAD_PTHREAD 1 +#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1 + +/* Enable various timer systems */ +#define SDL_TIMER_UNIX 1 + +/* Enable various video drivers */ +#define SDL_VIDEO_DRIVER_COCOA 1 +#define SDL_VIDEO_DRIVER_DUMMY 1 +#undef SDL_VIDEO_DRIVER_X11 +#define SDL_VIDEO_DRIVER_X11_DYNAMIC "/opt/X11/lib/libX11.6.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "/opt/X11/lib/libXext.6.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "/opt/X11/lib/libXi.6.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "/opt/X11/lib/libXrandr.2.dylib" +#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "/opt/X11/lib/libXss.1.dylib" +#define SDL_VIDEO_DRIVER_X11_XDBE 1 +#define SDL_VIDEO_DRIVER_X11_XRANDR 1 +#define SDL_VIDEO_DRIVER_X11_XSCRNSAVER 1 +#define SDL_VIDEO_DRIVER_X11_XSHAPE 1 +#define SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM 1 + +#ifdef MAC_OS_X_VERSION_10_8 +/* + * No matter the versions targeted, this is the 10.8 or later SDK, so you have + * to use the external Xquartz, which is a more modern Xlib. Previous SDKs + * used an older Xlib. + */ +#define SDL_VIDEO_DRIVER_X11_XINPUT2 1 +#define SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS 1 +#endif + +#ifndef SDL_VIDEO_RENDER_OGL +#define SDL_VIDEO_RENDER_OGL 1 +#endif + +#ifndef SDL_VIDEO_RENDER_OGL_ES2 +#define SDL_VIDEO_RENDER_OGL_ES2 1 +#endif + +/* Metal only supported on 64-bit architectures with 10.11+ */ +#if TARGET_RT_64_BIT && (MAC_OS_X_VERSION_MAX_ALLOWED >= 101100) +#define SDL_PLATFORM_SUPPORTS_METAL 1 +#else +#define SDL_PLATFORM_SUPPORTS_METAL 0 +#endif + +#ifndef SDL_VIDEO_RENDER_METAL +#if SDL_PLATFORM_SUPPORTS_METAL +#define SDL_VIDEO_RENDER_METAL 1 +#else +#define SDL_VIDEO_RENDER_METAL 0 +#endif +#endif + +/* Enable OpenGL support */ +#ifndef SDL_VIDEO_OPENGL +#define SDL_VIDEO_OPENGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL_ES2 +#define SDL_VIDEO_OPENGL_ES2 1 +#endif +#ifndef SDL_VIDEO_OPENGL_EGL +#define SDL_VIDEO_OPENGL_EGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL_CGL +#define SDL_VIDEO_OPENGL_CGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL_GLX +#define SDL_VIDEO_OPENGL_GLX 1 +#endif + +/* Enable Vulkan and Metal support */ +#ifndef SDL_VIDEO_VULKAN +#if SDL_PLATFORM_SUPPORTS_METAL +#define SDL_VIDEO_VULKAN 1 +#else +#define SDL_VIDEO_VULKAN 0 +#endif +#endif + +#ifndef SDL_VIDEO_METAL +#if SDL_PLATFORM_SUPPORTS_METAL +#define SDL_VIDEO_METAL 1 +#else +#define SDL_VIDEO_METAL 0 +#endif +#endif + +/* Enable system power support */ +#define SDL_POWER_MACOSX 1 + +/* enable filesystem support */ +#define SDL_FILESYSTEM_COCOA 1 + +/* Enable assembly routines */ +#ifdef __ppc__ +#define SDL_ALTIVEC_BLITTERS 1 +#endif + +#endif /* SDL_config_macosx_h_ */ diff --git a/lib/windows/include/SDL2/SDL_config_minimal.h b/lib/windows/include/SDL2/SDL_config_minimal.h new file mode 100644 index 0000000..5695871 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_config_minimal.h @@ -0,0 +1,95 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_config_minimal_h_ +#define SDL_config_minimal_h_ +#define SDL_config_h_ + +#include "SDL_platform.h" + +/** + * \file SDL_config_minimal.h + * + * This is the minimal configuration that can be used to build SDL. + */ + +#define HAVE_STDARG_H 1 +#define HAVE_STDDEF_H 1 + +#if !defined(HAVE_STDINT_H) && !defined(_STDINT_H_) +/* Most everything except Visual Studio 2008 and earlier has stdint.h now */ +#if defined(_MSC_VER) && (_MSC_VER < 1600) +typedef signed __int8 int8_t; +typedef unsigned __int8 uint8_t; +typedef signed __int16 int16_t; +typedef unsigned __int16 uint16_t; +typedef signed __int32 int32_t; +typedef unsigned __int32 uint32_t; +typedef signed __int64 int64_t; +typedef unsigned __int64 uint64_t; +#ifndef _UINTPTR_T_DEFINED +#ifdef _WIN64 +typedef unsigned __int64 uintptr_t; +#else +typedef unsigned int uintptr_t; +#endif +#define _UINTPTR_T_DEFINED +#endif +#else +#define HAVE_STDINT_H 1 +#endif /* Visual Studio 2008 */ +#endif /* !_STDINT_H_ && !HAVE_STDINT_H */ + +#ifdef __GNUC__ +#define HAVE_GCC_SYNC_LOCK_TEST_AND_SET 1 +#endif + +/* Enable the dummy audio driver (src/audio/dummy/\*.c) */ +#define SDL_AUDIO_DRIVER_DUMMY 1 + +/* Enable the stub joystick driver (src/joystick/dummy/\*.c) */ +#define SDL_JOYSTICK_DISABLED 1 + +/* Enable the stub haptic driver (src/haptic/dummy/\*.c) */ +#define SDL_HAPTIC_DISABLED 1 + +/* Enable the stub HIDAPI */ +#define SDL_HIDAPI_DISABLED 1 + +/* Enable the stub sensor driver (src/sensor/dummy/\*.c) */ +#define SDL_SENSOR_DISABLED 1 + +/* Enable the stub shared object loader (src/loadso/dummy/\*.c) */ +#define SDL_LOADSO_DISABLED 1 + +/* Enable the stub thread support (src/thread/generic/\*.c) */ +#define SDL_THREADS_DISABLED 1 + +/* Enable the stub timer support (src/timer/dummy/\*.c) */ +#define SDL_TIMERS_DISABLED 1 + +/* Enable the dummy video driver (src/video/dummy/\*.c) */ +#define SDL_VIDEO_DRIVER_DUMMY 1 + +/* Enable the dummy filesystem driver (src/filesystem/dummy/\*.c) */ +#define SDL_FILESYSTEM_DUMMY 1 + +#endif /* SDL_config_minimal_h_ */ diff --git a/lib/windows/include/SDL2/SDL_config_ngage.h b/lib/windows/include/SDL2/SDL_config_ngage.h new file mode 100644 index 0000000..b6042cd --- /dev/null +++ b/lib/windows/include/SDL2/SDL_config_ngage.h @@ -0,0 +1,89 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_config_ngage_h_ +#define SDL_config_ngage_h_ +#define SDL_config_h_ + +#include "SDL_platform.h" + +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; +typedef signed int int32_t; +typedef unsigned int uint32_t; +typedef signed long long int64_t; +typedef unsigned long long uint64_t; +typedef unsigned long uintptr_t; + +#define HAVE_STDARG_H 1 +#define HAVE_STDDEF_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_MATH_H 1 +#define HAVE_CEIL 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COS 1 +#define HAVE_EXP 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_LOG 1 +#define HAVE_LOG10 1 +#define HAVE_SCALBN 1 +#define HAVE_SIN 1 +#define HAVE_SQRT 1 +#define HAVE_TAN 1 +#define HAVE_MALLOC 1 +#define SDL_MAIN_NEEDED 1 +#define LACKS_SYS_MMAN_H 1 + +/* Enable the N-Gage thread support (src/thread/ngage/\*.c) */ +#define SDL_THREAD_NGAGE 1 + +/* Enable the N-Gage timer support (src/timer/ngage/\*.c) */ +#define SDL_TIMER_NGAGE 1 + +/* Enable the N-Gage video driver (src/video/ngage/\*.c) */ +#define SDL_VIDEO_DRIVER_NGAGE 1 + +/* Enable the dummy audio driver (src/audio/dummy/\*.c) */ +#define SDL_AUDIO_DRIVER_DUMMY 1 + +/* Enable the stub joystick driver (src/joystick/dummy/\*.c) */ +#define SDL_JOYSTICK_DISABLED 1 + +/* Enable the stub haptic driver (src/haptic/dummy/\*.c) */ +#define SDL_HAPTIC_DISABLED 1 + +/* Enable the stub HIDAPI */ +#define SDL_HIDAPI_DISABLED 1 + +/* Enable the stub sensor driver (src/sensor/dummy/\*.c) */ +#define SDL_SENSOR_DISABLED 1 + +/* Enable the stub shared object loader (src/loadso/dummy/\*.c) */ +#define SDL_LOADSO_DISABLED 1 + +/* Enable the dummy filesystem driver (src/filesystem/dummy/\*.c) */ +#define SDL_FILESYSTEM_DUMMY 1 + +#endif /* SDL_config_ngage_h_ */ diff --git a/lib/windows/include/SDL2/SDL_config_os2.h b/lib/windows/include/SDL2/SDL_config_os2.h new file mode 100644 index 0000000..22fafb1 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_config_os2.h @@ -0,0 +1,204 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_config_os2_h_ +#define SDL_config_os2_h_ +#define SDL_config_h_ + +#include "SDL_platform.h" + +#define SIZEOF_VOIDP 4 + +#define SDL_AUDIO_DRIVER_DUMMY 1 +#define SDL_AUDIO_DRIVER_DISK 1 +#define SDL_AUDIO_DRIVER_OS2 1 + +#define SDL_POWER_DISABLED 1 +#define SDL_HAPTIC_DISABLED 1 + +#define SDL_SENSOR_DUMMY 1 +#define SDL_VIDEO_DRIVER_DUMMY 1 +#define SDL_VIDEO_DRIVER_OS2 1 +#define SDL_JOYSTICK_OS2 1 +#ifndef HAVE_LIBUSB_H /* see Makefile */ +#define SDL_HIDAPI_DISABLED 1 +/*#undef SDL_JOYSTICK_HIDAPI */ +#else +#define SDL_JOYSTICK_HIDAPI 1 +#define HAVE_LIBUSB 1 +/* dynamically loaded libusb-1.0 dll: */ +#define SDL_LIBUSB_DYNAMIC "usb100.dll" +#endif +#define SDL_JOYSTICK_VIRTUAL 1 + +/* Enable OpenGL support */ +/* #undef SDL_VIDEO_OPENGL */ + +#define SDL_THREAD_OS2 1 +#define SDL_LOADSO_OS2 1 +#define SDL_TIMER_OS2 1 +#define SDL_FILESYSTEM_OS2 1 + +/* use libsamplerate for audio rate conversion. */ +/*#define HAVE_LIBSAMPLERATE_H 1 */ + +/* Enable dynamic libsamplerate support */ +#define SDL_LIBSAMPLERATE_DYNAMIC "SAMPRATE.DLL" + +#define HAVE_LIBC 1 + +#define HAVE_STDARG_H 1 +#define HAVE_STDDEF_H 1 +#define HAVE_STDINT_H 1 + +#define HAVE_SYS_TYPES_H 1 +#define HAVE_STDIO_H 1 +#define STDC_HEADERS 1 +#define HAVE_STDLIB_H 1 +#define HAVE_MALLOC_H 1 +#define HAVE_MEMORY_H 1 +#define HAVE_STRING_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_WCHAR_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_LIMITS_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_MATH_H 1 +#define HAVE_FLOAT_H 1 +#define HAVE_SIGNAL_H 1 + +#if 0 /* see Makefile */ +#define HAVE_ICONV 1 +#define HAVE_ICONV_H 1 +#endif + +/* #undef HAVE_DLOPEN */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#if defined(__WATCOMC__) +#define HAVE__FSEEKI64 1 +#define HAVE__FTELLI64 1 +#endif +#define HAVE_ALLOCA 1 +#define HAVE_GETENV 1 +#define HAVE_SETENV 1 +#define HAVE_PUTENV 1 +/* OpenWatcom requires specific calling conventions for qsort and bsearch */ +#ifndef __WATCOMC__ +#define HAVE_QSORT 1 +#define HAVE_BSEARCH 1 +#endif +#define HAVE_ABS 1 +#define HAVE_BCOPY 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_WCSCMP 1 +#define HAVE__WCSICMP 1 +#define HAVE__WCSNICMP 1 +#define HAVE_WCSLEN 1 +#define HAVE_WCSLCPY 1 +#define HAVE_WCSLCAT 1 +/* #undef HAVE_WCSDUP */ +#define HAVE__WCSDUP 1 +#define HAVE_WCSSTR 1 +#define HAVE_WCSCMP 1 +#define HAVE_WCSNCMP 1 +#define HAVE_STRLEN 1 +#define HAVE_STRLCPY 1 +#define HAVE_STRLCAT 1 +#define HAVE__STRREV 1 +#define HAVE__STRUPR 1 +#define HAVE__STRLWR 1 +/* #undef HAVE_INDEX */ +/* #undef HAVE_RINDEX */ +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +/* #undef HAVE_STRTOK_R */ +#define HAVE_ITOA 1 +#define HAVE__LTOA 1 +#define HAVE__ULTOA 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE__I64TOA 1 +#define HAVE__UI64TOA 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE_STRICMP 1 +#define HAVE_STRCASECMP 1 +#define HAVE_STRNCASECMP 1 +#define HAVE_SSCANF 1 +#define HAVE_VSSCANF 1 +#define HAVE_SNPRINTF 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_SETJMP 1 +#define HAVE_ACOS 1 +/* #undef HAVE_ACOSF */ +#define HAVE_ASIN 1 +/* #undef HAVE_ASINF */ +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 +/* #undef HAVE_ATAN2F */ +#define HAVE_CEIL 1 +/* #undef HAVE_CEILF */ +/* #undef HAVE_COPYSIGN */ +/* #undef HAVE_COPYSIGNF */ +#define HAVE_COS 1 +/* #undef HAVE_COSF */ +#define HAVE_EXP 1 +/* #undef HAVE_EXPF */ +#define HAVE_FABS 1 +/* #undef HAVE_FABSF */ +#define HAVE_FLOOR 1 +/* #undef HAVE_FLOORF */ +#define HAVE_FMOD 1 +/* #undef HAVE_FMODF */ +#define HAVE_LOG 1 +/* #undef HAVE_LOGF */ +#define HAVE_LOG10 1 +/* #undef HAVE_LOG10F */ +#define HAVE_POW 1 +/* #undef HAVE_POWF */ +#define HAVE_SIN 1 +/* #undef HAVE_SINF */ +/* #undef HAVE_SCALBN */ +/* #undef HAVE_SCALBNF */ +#define HAVE_SQRT 1 +/* #undef HAVE_SQRTF */ +#define HAVE_TAN 1 +/* #undef HAVE_TANF */ +/* #undef HAVE_TRUNC */ +/* #undef HAVE_TRUNCF */ +/* #undef HAVE_LROUND */ +/* #undef HAVE_LROUNDF */ +/* #undef HAVE_ROUND */ +/* #undef HAVE_ROUNDF */ + +#endif /* SDL_config_os2_h_ */ diff --git a/lib/windows/include/SDL2/SDL_config_pandora.h b/lib/windows/include/SDL2/SDL_config_pandora.h new file mode 100644 index 0000000..96375c1 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_config_pandora.h @@ -0,0 +1,141 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_config_pandora_h_ +#define SDL_config_pandora_h_ +#define SDL_config_h_ + +/* This is a set of defines to configure the SDL features */ + +/* General platform specific identifiers */ +#include "SDL_platform.h" + +#ifdef __LP64__ +#define SIZEOF_VOIDP 8 +#else +#define SIZEOF_VOIDP 4 +#endif + +#define SDL_BYTEORDER 1234 + +#define STDC_HEADERS 1 +#define HAVE_ALLOCA_H 1 +#define HAVE_CTYPE_H 1 +#define HAVE_ICONV_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_LIMITS_H 1 +#define HAVE_MALLOC_H 1 +#define HAVE_MATH_H 1 +#define HAVE_MEMORY_H 1 +#define HAVE_SIGNAL_H 1 +#define HAVE_STDARG_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_STRING_H 1 +#define HAVE_SYS_TYPES_H 1 + +#define HAVE_DLOPEN 1 +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_GETENV 1 +#define HAVE_SETENV 1 +#define HAVE_PUTENV 1 +#define HAVE_UNSETENV 1 +#define HAVE_QSORT 1 +#define HAVE_BSEARCH 1 +#define HAVE_ABS 1 +#define HAVE_BCOPY 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_STRLEN 1 +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE_STRCASECMP 1 +#define HAVE_STRNCASECMP 1 +#define HAVE_VSSCANF 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_M_PI 1 +#define HAVE_CEIL 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_EXP 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_LOG 1 +#define HAVE_LOG10 1 +#define HAVE_LROUND 1 +#define HAVE_LROUNDF 1 +#define HAVE_ROUND 1 +#define HAVE_ROUNDF 1 +#define HAVE_SCALBN 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#define HAVE_SQRTF 1 +#define HAVE_TAN 1 +#define HAVE_TANF 1 +#define HAVE_TRUNC 1 +#define HAVE_TRUNCF 1 +#define HAVE_SIGACTION 1 +#define HAVE_SETJMP 1 +#define HAVE_NANOSLEEP 1 + +#define SDL_AUDIO_DRIVER_DUMMY 1 +#define SDL_AUDIO_DRIVER_OSS 1 + +#define SDL_INPUT_LINUXEV 1 +#define SDL_JOYSTICK_LINUX 1 +#define SDL_JOYSTICK_VIRTUAL 1 +#define SDL_HAPTIC_LINUX 1 + +#define SDL_SENSOR_DUMMY 1 + +#define SDL_LOADSO_DLOPEN 1 + +#define SDL_THREAD_PTHREAD 1 +#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP 1 + +#define SDL_TIMER_UNIX 1 +#define SDL_FILESYSTEM_UNIX 1 + +#define SDL_VIDEO_DRIVER_DUMMY 1 +#define SDL_VIDEO_DRIVER_X11 1 +#define SDL_VIDEO_DRIVER_PANDORA 1 +#define SDL_VIDEO_RENDER_OGL_ES 1 +#define SDL_VIDEO_OPENGL_ES 1 + +#endif /* SDL_config_pandora_h_ */ diff --git a/lib/windows/include/SDL2/SDL_config_windows.h b/lib/windows/include/SDL2/SDL_config_windows.h new file mode 100644 index 0000000..77d2d74 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_config_windows.h @@ -0,0 +1,333 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_config_windows_h_ +#define SDL_config_windows_h_ +#define SDL_config_h_ + +#include "SDL_platform.h" + +/* winsdkver.h defines _WIN32_MAXVER for SDK version detection. It is present since at least the Windows 7 SDK, + * but out of caution we'll only use it if the compiler supports __has_include() to confirm its presence. + * If your compiler doesn't support __has_include() but you have winsdkver.h, define HAVE_WINSDKVER_H. */ +#if !defined(HAVE_WINSDKVER_H) && defined(__has_include) +#if __has_include() +#define HAVE_WINSDKVER_H 1 +#endif +#endif + +#ifdef HAVE_WINSDKVER_H +#include +#endif + +/* sdkddkver.h defines more specific SDK version numbers. This is needed because older versions of the + * Windows 10 SDK have broken declarations for the C API for DirectX 12. */ +#if !defined(HAVE_SDKDDKVER_H) && defined(__has_include) +#if __has_include() +#define HAVE_SDKDDKVER_H 1 +#endif +#endif + +#ifdef HAVE_SDKDDKVER_H +#include +#endif + +/* This is a set of defines to configure the SDL features */ + +#if !defined(HAVE_STDINT_H) && !defined(_STDINT_H_) +/* Most everything except Visual Studio 2008 and earlier has stdint.h now */ +#if defined(_MSC_VER) && (_MSC_VER < 1600) +typedef signed __int8 int8_t; +typedef unsigned __int8 uint8_t; +typedef signed __int16 int16_t; +typedef unsigned __int16 uint16_t; +typedef signed __int32 int32_t; +typedef unsigned __int32 uint32_t; +typedef signed __int64 int64_t; +typedef unsigned __int64 uint64_t; +#ifndef _UINTPTR_T_DEFINED +#ifdef _WIN64 +typedef unsigned __int64 uintptr_t; +#else +typedef unsigned int uintptr_t; +#endif +#define _UINTPTR_T_DEFINED +#endif +#else +#define HAVE_STDINT_H 1 +#endif /* Visual Studio 2008 */ +#endif /* !_STDINT_H_ && !HAVE_STDINT_H */ + +#ifdef _WIN64 +# define SIZEOF_VOIDP 8 +#else +# define SIZEOF_VOIDP 4 +#endif + +#ifdef __clang__ +# define HAVE_GCC_ATOMICS 1 +#endif + +#define HAVE_DDRAW_H 1 +#define HAVE_DINPUT_H 1 +#define HAVE_DSOUND_H 1 +#ifndef __WATCOMC__ +#define HAVE_DXGI_H 1 +#define HAVE_XINPUT_H 1 +#if defined(_WIN32_MAXVER) && _WIN32_MAXVER >= 0x0A00 /* Windows 10 SDK */ +#define HAVE_WINDOWS_GAMING_INPUT_H 1 +#endif +#if defined(_WIN32_MAXVER) && _WIN32_MAXVER >= 0x0602 /* Windows 8 SDK */ +#define HAVE_D3D11_H 1 +#define HAVE_ROAPI_H 1 +#endif +#if defined(__has_include) +#if __has_include() && __has_include() +#define HAVE_D3D12_H 1 +#endif +#endif +#if defined(_WIN32_MAXVER) && _WIN32_MAXVER >= 0x0603 /* Windows 8.1 SDK */ +#define HAVE_SHELLSCALINGAPI_H 1 +#endif +#define HAVE_MMDEVICEAPI_H 1 +#define HAVE_AUDIOCLIENT_H 1 +#define HAVE_TPCSHRD_H 1 +#define HAVE_SENSORSAPI_H 1 +#endif +#if (defined(_M_IX86) || defined(_M_X64) || defined(_M_AMD64)) && (defined(_MSC_VER) && _MSC_VER >= 1600) +#define HAVE_IMMINTRIN_H 1 +#elif defined(__has_include) && (defined(__i386__) || defined(__x86_64)) +# if __has_include() +# define HAVE_IMMINTRIN_H 1 +# endif +#endif + +/* This is disabled by default to avoid C runtime dependencies and manifest requirements */ +#ifdef HAVE_LIBC +/* Useful headers */ +#define STDC_HEADERS 1 +#define HAVE_CTYPE_H 1 +#define HAVE_FLOAT_H 1 +#define HAVE_LIMITS_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_STRING_H 1 + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +/* OpenWatcom requires specific calling conventions for qsort and bsearch */ +#ifndef __WATCOMC__ +#define HAVE_QSORT 1 +#define HAVE_BSEARCH 1 +#endif +#define HAVE_ABS 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +#define HAVE__STRREV 1 +/* These functions have security warnings, so we won't use them */ +/* #undef HAVE__STRUPR */ +/* #undef HAVE__STRLWR */ +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +/* #undef HAVE_STRTOK_R */ +/* These functions have security warnings, so we won't use them */ +/* #undef HAVE__LTOA */ +/* #undef HAVE__ULTOA */ +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE__STRICMP 1 +#define HAVE__STRNICMP 1 +#define HAVE__WCSICMP 1 +#define HAVE__WCSNICMP 1 +#define HAVE__WCSDUP 1 +#define HAVE_ACOS 1 +#define HAVE_ASIN 1 +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 +#define HAVE_CEIL 1 +#define HAVE_COS 1 +#define HAVE_EXP 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_FMOD 1 +#define HAVE_LOG 1 +#define HAVE_LOG10 1 +#define HAVE_POW 1 +#define HAVE_SIN 1 +#define HAVE_SQRT 1 +#define HAVE_TAN 1 +#ifndef __WATCOMC__ +#define HAVE_ACOSF 1 +#define HAVE_ASINF 1 +#define HAVE_ATANF 1 +#define HAVE_ATAN2F 1 +#define HAVE_CEILF 1 +#define HAVE__COPYSIGN 1 +#define HAVE_COSF 1 +#define HAVE_EXPF 1 +#define HAVE_FABSF 1 +#define HAVE_FLOORF 1 +#define HAVE_FMODF 1 +#define HAVE_LOGF 1 +#define HAVE_LOG10F 1 +#define HAVE_POWF 1 +#define HAVE_SINF 1 +#define HAVE_SQRTF 1 +#define HAVE_TANF 1 +#endif +#if defined(_MSC_VER) +/* These functions were added with the VC++ 2013 C runtime library */ +#if _MSC_VER >= 1800 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_VSSCANF 1 +#define HAVE_LROUND 1 +#define HAVE_LROUNDF 1 +#define HAVE_ROUND 1 +#define HAVE_ROUNDF 1 +#define HAVE_SCALBN 1 +#define HAVE_SCALBNF 1 +#define HAVE_TRUNC 1 +#define HAVE_TRUNCF 1 +#endif +/* This function is available with at least the VC++ 2008 C runtime library */ +#if _MSC_VER >= 1400 +#define HAVE__FSEEKI64 1 +#endif +#ifdef _USE_MATH_DEFINES +#define HAVE_M_PI 1 +#endif +#elif defined(__WATCOMC__) +#define HAVE__FSEEKI64 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_VSSCANF 1 +#define HAVE_ROUND 1 +#define HAVE_SCALBN 1 +#define HAVE_TRUNC 1 +#else +#define HAVE_M_PI 1 +#endif +#else +#define HAVE_STDARG_H 1 +#define HAVE_STDDEF_H 1 +#endif + +/* Enable various audio drivers */ +#if defined(HAVE_MMDEVICEAPI_H) && defined(HAVE_AUDIOCLIENT_H) +#define SDL_AUDIO_DRIVER_WASAPI 1 +#endif +#define SDL_AUDIO_DRIVER_DSOUND 1 +#define SDL_AUDIO_DRIVER_WINMM 1 +#define SDL_AUDIO_DRIVER_DISK 1 +#define SDL_AUDIO_DRIVER_DUMMY 1 + +/* Enable various input drivers */ +#define SDL_JOYSTICK_DINPUT 1 +#define SDL_JOYSTICK_HIDAPI 1 +#ifndef __WINRT__ +#define SDL_JOYSTICK_RAWINPUT 1 +#endif +#define SDL_JOYSTICK_VIRTUAL 1 +#ifdef HAVE_WINDOWS_GAMING_INPUT_H +#define SDL_JOYSTICK_WGI 1 +#endif +#define SDL_JOYSTICK_XINPUT 1 +#define SDL_HAPTIC_DINPUT 1 +#define SDL_HAPTIC_XINPUT 1 + +/* Enable the sensor driver */ +#ifdef HAVE_SENSORSAPI_H +#define SDL_SENSOR_WINDOWS 1 +#else +#define SDL_SENSOR_DUMMY 1 +#endif + +/* Enable various shared object loading systems */ +#define SDL_LOADSO_WINDOWS 1 + +/* Enable various threading systems */ +#define SDL_THREAD_GENERIC_COND_SUFFIX 1 +#define SDL_THREAD_WINDOWS 1 + +/* Enable various timer systems */ +#define SDL_TIMER_WINDOWS 1 + +/* Enable various video drivers */ +#define SDL_VIDEO_DRIVER_DUMMY 1 +#define SDL_VIDEO_DRIVER_WINDOWS 1 + +#ifndef SDL_VIDEO_RENDER_D3D +#define SDL_VIDEO_RENDER_D3D 1 +#endif +#if !defined(SDL_VIDEO_RENDER_D3D11) && defined(HAVE_D3D11_H) +#define SDL_VIDEO_RENDER_D3D11 1 +#endif +#if !defined(SDL_VIDEO_RENDER_D3D12) && defined(HAVE_D3D12_H) +#define SDL_VIDEO_RENDER_D3D12 1 +#endif + +/* Enable OpenGL support */ +#ifndef SDL_VIDEO_OPENGL +#define SDL_VIDEO_OPENGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL_WGL +#define SDL_VIDEO_OPENGL_WGL 1 +#endif +#ifndef SDL_VIDEO_RENDER_OGL +#define SDL_VIDEO_RENDER_OGL 1 +#endif +#ifndef SDL_VIDEO_RENDER_OGL_ES2 +#define SDL_VIDEO_RENDER_OGL_ES2 1 +#endif +#ifndef SDL_VIDEO_OPENGL_ES2 +#define SDL_VIDEO_OPENGL_ES2 1 +#endif +#ifndef SDL_VIDEO_OPENGL_EGL +#define SDL_VIDEO_OPENGL_EGL 1 +#endif + +/* Enable Vulkan support */ +#define SDL_VIDEO_VULKAN 1 + +/* Enable system power support */ +#define SDL_POWER_WINDOWS 1 + +/* Enable filesystem support */ +#define SDL_FILESYSTEM_WINDOWS 1 + +#endif /* SDL_config_windows_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_config_wingdk.h b/lib/windows/include/SDL2/SDL_config_wingdk.h new file mode 100644 index 0000000..2e32927 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_config_wingdk.h @@ -0,0 +1,253 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_config_wingdk_h_ +#define SDL_config_wingdk_h_ +#define SDL_config_h_ + +#include "SDL_platform.h" + +/* Windows GDK does not need Windows SDK version checks because it requires + * a recent version of the Windows 10 SDK. */ + +/* GDK only supports 64-bit */ +# define SIZEOF_VOIDP 8 + +#ifdef __clang__ +# define HAVE_GCC_ATOMICS 1 +#endif + +#define HAVE_DDRAW_H 1 +#define HAVE_DINPUT_H 1 +#define HAVE_DSOUND_H 1 +/* No SDK version checks needed for these because the SDK has to be new. */ +#define HAVE_DXGI_H 1 +#define HAVE_XINPUT_H 1 +#define HAVE_WINDOWS_GAMING_INPUT_H 1 +#define HAVE_D3D11_H 1 +#define HAVE_ROAPI_H 1 +#define HAVE_D3D12_H 1 +#define HAVE_SHELLSCALINGAPI_H 1 +#define HAVE_MMDEVICEAPI_H 1 +#define HAVE_AUDIOCLIENT_H 1 +#define HAVE_TPCSHRD_H 1 +#define HAVE_SENSORSAPI_H 1 +#if (defined(_M_IX86) || defined(_M_X64) || defined(_M_AMD64)) && (defined(_MSC_VER) && _MSC_VER >= 1600) +#define HAVE_IMMINTRIN_H 1 +#elif defined(__has_include) && (defined(__i386__) || defined(__x86_64)) +# if __has_include() +# define HAVE_IMMINTRIN_H 1 +# endif +#endif + +/* This is disabled by default to avoid C runtime dependencies and manifest requirements */ +#ifdef HAVE_LIBC +/* Useful headers */ +#define STDC_HEADERS 1 +#define HAVE_CTYPE_H 1 +#define HAVE_FLOAT_H 1 +#define HAVE_LIMITS_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_STRING_H 1 + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_QSORT 1 +#define HAVE_BSEARCH 1 +#define HAVE_ABS 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +#define HAVE__STRREV 1 +/* These functions have security warnings, so we won't use them */ +/* #undef HAVE__STRUPR */ +/* #undef HAVE__STRLWR */ +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +/* #undef HAVE_STRTOK_R */ +/* These functions have security warnings, so we won't use them */ +/* #undef HAVE__LTOA */ +/* #undef HAVE__ULTOA */ +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE__STRICMP 1 +#define HAVE__STRNICMP 1 +#define HAVE__WCSICMP 1 +#define HAVE__WCSNICMP 1 +#define HAVE__WCSDUP 1 +#define HAVE_ACOS 1 +#define HAVE_ASIN 1 +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 +#define HAVE_CEIL 1 +#define HAVE_COS 1 +#define HAVE_EXP 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_FMOD 1 +#define HAVE_LOG 1 +#define HAVE_LOG10 1 +#define HAVE_POW 1 +#define HAVE_SIN 1 +#define HAVE_SQRT 1 +#define HAVE_TAN 1 +#define HAVE_ACOSF 1 +#define HAVE_ASINF 1 +#define HAVE_ATANF 1 +#define HAVE_ATAN2F 1 +#define HAVE_CEILF 1 +#define HAVE__COPYSIGN 1 +#define HAVE_COSF 1 +#define HAVE_EXPF 1 +#define HAVE_FABSF 1 +#define HAVE_FLOORF 1 +#define HAVE_FMODF 1 +#define HAVE_LOGF 1 +#define HAVE_LOG10F 1 +#define HAVE_POWF 1 +#define HAVE_SINF 1 +#define HAVE_SQRTF 1 +#define HAVE_TANF 1 +#if defined(_MSC_VER) +/* These functions were added with the VC++ 2013 C runtime library */ +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_VSSCANF 1 +#define HAVE_LROUND 1 +#define HAVE_LROUNDF 1 +#define HAVE_ROUND 1 +#define HAVE_ROUNDF 1 +#define HAVE_SCALBN 1 +#define HAVE_SCALBNF 1 +#define HAVE_TRUNC 1 +#define HAVE_TRUNCF 1 +#define HAVE__FSEEKI64 1 +#ifdef _USE_MATH_DEFINES +#define HAVE_M_PI 1 +#endif +#else +#define HAVE_M_PI 1 +#endif +#else +#define HAVE_STDARG_H 1 +#define HAVE_STDDEF_H 1 +#define HAVE_STDINT_H 1 +#endif + +/* Enable various audio drivers */ +#if defined(HAVE_MMDEVICEAPI_H) && defined(HAVE_AUDIOCLIENT_H) +#define SDL_AUDIO_DRIVER_WASAPI 1 +#endif +#define SDL_AUDIO_DRIVER_DSOUND 1 +#define SDL_AUDIO_DRIVER_WINMM 1 +#define SDL_AUDIO_DRIVER_DISK 1 +#define SDL_AUDIO_DRIVER_DUMMY 1 + +/* Enable various input drivers */ +#define SDL_JOYSTICK_DINPUT 1 +#define SDL_JOYSTICK_HIDAPI 1 +#define SDL_JOYSTICK_RAWINPUT 1 +#define SDL_JOYSTICK_VIRTUAL 1 +#ifdef HAVE_WINDOWS_GAMING_INPUT_H +#define SDL_JOYSTICK_WGI 1 +#endif +#define SDL_JOYSTICK_XINPUT 1 +#define SDL_HAPTIC_DINPUT 1 +#define SDL_HAPTIC_XINPUT 1 + +/* Enable the sensor driver */ +#ifdef HAVE_SENSORSAPI_H +#define SDL_SENSOR_WINDOWS 1 +#else +#define SDL_SENSOR_DUMMY 1 +#endif + +/* Enable various shared object loading systems */ +#define SDL_LOADSO_WINDOWS 1 + +/* Enable various threading systems */ +#define SDL_THREAD_GENERIC_COND_SUFFIX 1 +#define SDL_THREAD_WINDOWS 1 + +/* Enable various timer systems */ +#define SDL_TIMER_WINDOWS 1 + +/* Enable various video drivers */ +#define SDL_VIDEO_DRIVER_DUMMY 1 +#define SDL_VIDEO_DRIVER_WINDOWS 1 + +#ifndef SDL_VIDEO_RENDER_D3D +#define SDL_VIDEO_RENDER_D3D 1 +#endif +#if !defined(SDL_VIDEO_RENDER_D3D11) && defined(HAVE_D3D11_H) +#define SDL_VIDEO_RENDER_D3D11 1 +#endif +#if !defined(SDL_VIDEO_RENDER_D3D12) && defined(HAVE_D3D12_H) +#define SDL_VIDEO_RENDER_D3D12 1 +#endif + +/* Enable OpenGL support */ +#ifndef SDL_VIDEO_OPENGL +#define SDL_VIDEO_OPENGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL_WGL +#define SDL_VIDEO_OPENGL_WGL 1 +#endif +#ifndef SDL_VIDEO_RENDER_OGL +#define SDL_VIDEO_RENDER_OGL 1 +#endif +#ifndef SDL_VIDEO_RENDER_OGL_ES2 +#define SDL_VIDEO_RENDER_OGL_ES2 1 +#endif +#ifndef SDL_VIDEO_OPENGL_ES2 +#define SDL_VIDEO_OPENGL_ES2 1 +#endif +#ifndef SDL_VIDEO_OPENGL_EGL +#define SDL_VIDEO_OPENGL_EGL 1 +#endif + +/* Enable Vulkan support */ +#define SDL_VIDEO_VULKAN 1 + +/* Enable system power support */ +#define SDL_POWER_WINDOWS 1 + +/* Enable filesystem support */ +#define SDL_FILESYSTEM_WINDOWS 1 + +#endif /* SDL_config_wingdk_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_config_winrt.h b/lib/windows/include/SDL2/SDL_config_winrt.h new file mode 100644 index 0000000..8fe0b66 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_config_winrt.h @@ -0,0 +1,220 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_config_winrt_h_ +#define SDL_config_winrt_h_ +#define SDL_config_h_ + +#include "SDL_platform.h" + +/* Make sure the Windows SDK's NTDDI_VERSION macro gets defined. This is used + by SDL to determine which version of the Windows SDK is being used. +*/ +#include + +/* Define possibly-undefined NTDDI values (used when compiling SDL against + older versions of the Windows SDK. +*/ +#ifndef NTDDI_WINBLUE +#define NTDDI_WINBLUE 0x06030000 +#endif +#ifndef NTDDI_WIN10 +#define NTDDI_WIN10 0x0A000000 +#endif + +/* This is a set of defines to configure the SDL features */ + +#ifdef _WIN64 +# define SIZEOF_VOIDP 8 +#else +# define SIZEOF_VOIDP 4 +#endif + +#ifdef __clang__ +# define HAVE_GCC_ATOMICS 1 +#endif + +/* Useful headers */ +#define HAVE_DXGI_H 1 +#if !SDL_WINAPI_FAMILY_PHONE +#define HAVE_XINPUT_H 1 +#endif + +#define HAVE_MMDEVICEAPI_H 1 +#define HAVE_AUDIOCLIENT_H 1 +#define HAVE_TPCSHRD_H 1 + +#define HAVE_LIBC 1 +#define STDC_HEADERS 1 +#define HAVE_CTYPE_H 1 +#define HAVE_FLOAT_H 1 +#define HAVE_LIMITS_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_STRING_H 1 + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_QSORT 1 +#define HAVE_BSEARCH 1 +#define HAVE_ABS 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +#define HAVE__STRREV 1 +#define HAVE__STRUPR 1 +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +/* #undef HAVE_STRTOLL */ +/* #undef HAVE_STRTOULL */ +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE__STRICMP 1 +#define HAVE__STRNICMP 1 +#define HAVE_VSNPRINTF 1 +/* TODO, WinRT: consider using ??_s versions of the following */ +/* #undef HAVE__STRLWR */ +/* #undef HAVE_ITOA */ +/* #undef HAVE__LTOA */ +/* #undef HAVE__ULTOA */ +/* #undef HAVE_SSCANF */ +#define HAVE_M_PI 1 +#define HAVE_ACOS 1 +#define HAVE_ACOSF 1 +#define HAVE_ASIN 1 +#define HAVE_ASINF 1 +#define HAVE_ATAN 1 +#define HAVE_ATANF 1 +#define HAVE_ATAN2 1 +#define HAVE_ATAN2F 1 +#define HAVE_CEIL 1 +#define HAVE_CEILF 1 +#define HAVE__COPYSIGN 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_EXP 1 +#define HAVE_EXPF 1 +#define HAVE_FABS 1 +#define HAVE_FABSF 1 +#define HAVE_FLOOR 1 +#define HAVE_FLOORF 1 +#define HAVE_FMOD 1 +#define HAVE_FMODF 1 +#define HAVE_LOG 1 +#define HAVE_LOGF 1 +#define HAVE_LOG10 1 +#define HAVE_LOG10F 1 +#define HAVE_LROUND 1 +#define HAVE_LROUNDF 1 +#define HAVE_POW 1 +#define HAVE_POWF 1 +#define HAVE_ROUND 1 +#define HAVE_ROUNDF 1 +#define HAVE__SCALB 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#define HAVE_SQRTF 1 +#define HAVE_TAN 1 +#define HAVE_TANF 1 +#define HAVE_TRUNC 1 +#define HAVE_TRUNCF 1 +#define HAVE__FSEEKI64 1 + +#define HAVE_ROAPI_H 1 + +/* Enable various audio drivers */ +#define SDL_AUDIO_DRIVER_WASAPI 1 +#define SDL_AUDIO_DRIVER_DISK 1 +#define SDL_AUDIO_DRIVER_DUMMY 1 + +/* Enable various input drivers */ +#if SDL_WINAPI_FAMILY_PHONE +#define SDL_JOYSTICK_DISABLED 1 +#define SDL_HAPTIC_DISABLED 1 +#else +#define SDL_JOYSTICK_VIRTUAL 1 +#if (NTDDI_VERSION >= NTDDI_WIN10) +#define SDL_JOYSTICK_WGI 1 +#define SDL_HAPTIC_DISABLED 1 +#else +#define SDL_JOYSTICK_XINPUT 1 +#define SDL_HAPTIC_XINPUT 1 +#endif /* WIN10 */ +#endif + +/* WinRT doesn't have HIDAPI available */ +#define SDL_HIDAPI_DISABLED 1 + +/* Enable the dummy sensor driver */ +#define SDL_SENSOR_DUMMY 1 + +/* Enable various shared object loading systems */ +#define SDL_LOADSO_WINDOWS 1 + +/* Enable various threading systems */ +#if (NTDDI_VERSION >= NTDDI_WINBLUE) +#define SDL_THREAD_GENERIC_COND_SUFFIX 1 +#define SDL_THREAD_WINDOWS 1 +#else +/* WinRT on Windows 8.0 and Windows Phone 8.0 don't support CreateThread() */ +#define SDL_THREAD_STDCPP 1 +#endif + +/* Enable various timer systems */ +#define SDL_TIMER_WINDOWS 1 + +/* Enable various video drivers */ +#define SDL_VIDEO_DRIVER_WINRT 1 +#define SDL_VIDEO_DRIVER_DUMMY 1 + +/* Enable OpenGL ES 2.0 (via a modified ANGLE library) */ +#define SDL_VIDEO_OPENGL_ES2 1 +#define SDL_VIDEO_OPENGL_EGL 1 + +/* Enable appropriate renderer(s) */ +#define SDL_VIDEO_RENDER_D3D11 1 + +/* Disable D3D12 as it's not implemented for WinRT */ +/* #undef SDL_VIDEO_RENDER_D3D12 */ + +#ifdef SDL_VIDEO_OPENGL_ES2 +#define SDL_VIDEO_RENDER_OGL_ES2 1 +#endif + +/* Enable system power support */ +#define SDL_POWER_WINRT 1 + +#endif /* SDL_config_winrt_h_ */ diff --git a/lib/windows/include/SDL2/SDL_config_xbox.h b/lib/windows/include/SDL2/SDL_config_xbox.h new file mode 100644 index 0000000..a06f52e --- /dev/null +++ b/lib/windows/include/SDL2/SDL_config_xbox.h @@ -0,0 +1,240 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_config_wingdk_h_ +#define SDL_config_wingdk_h_ +#define SDL_config_h_ + +#include "SDL_platform.h" + +/* Windows GDK does not need Windows SDK version checks because it requires + * a recent version of the Windows 10 SDK. */ + +/* GDK only supports 64-bit */ +# define SIZEOF_VOIDP 8 + +#ifdef __clang__ +# define HAVE_GCC_ATOMICS 1 +#endif + +/*#define HAVE_DDRAW_H 1*/ +/*#define HAVE_DINPUT_H 1*/ +/*#define HAVE_DSOUND_H 1*/ +/* No SDK version checks needed for these because the SDK has to be new. */ +/* #define HAVE_DXGI_H 1 */ +#define HAVE_XINPUT_H 1 +/*#define HAVE_WINDOWS_GAMING_INPUT_H 1*/ +/*#define HAVE_D3D11_H 1*/ +/*#define HAVE_ROAPI_H 1*/ +#define HAVE_D3D12_H 1 +/*#define HAVE_SHELLSCALINGAPI_H 1*/ +#define HAVE_MMDEVICEAPI_H 1 +#define HAVE_AUDIOCLIENT_H 1 +/*#define HAVE_TPCSHRD_H 1*/ +/*#define HAVE_SENSORSAPI_H 1*/ +#if (defined(_M_IX86) || defined(_M_X64) || defined(_M_AMD64)) && (defined(_MSC_VER) && _MSC_VER >= 1600) +#define HAVE_IMMINTRIN_H 1 +#elif defined(__has_include) && (defined(__i386__) || defined(__x86_64)) +# if __has_include() +# define HAVE_IMMINTRIN_H 1 +# endif +#endif + +/* This is disabled by default to avoid C runtime dependencies and manifest requirements */ +#ifdef HAVE_LIBC +/* Useful headers */ +#define STDC_HEADERS 1 +#define HAVE_CTYPE_H 1 +#define HAVE_FLOAT_H 1 +#define HAVE_LIMITS_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_STRING_H 1 + +/* C library functions */ +#define HAVE_MALLOC 1 +#define HAVE_CALLOC 1 +#define HAVE_REALLOC 1 +#define HAVE_FREE 1 +#define HAVE_ALLOCA 1 +#define HAVE_QSORT 1 +#define HAVE_BSEARCH 1 +#define HAVE_ABS 1 +#define HAVE_MEMSET 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMCMP 1 +#define HAVE_STRLEN 1 +#define HAVE__STRREV 1 +/* These functions have security warnings, so we won't use them */ +/* #undef HAVE__STRUPR */ +/* #undef HAVE__STRLWR */ +#define HAVE_STRCHR 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +/* #undef HAVE_STRTOK_R */ +/* These functions have security warnings, so we won't use them */ +/* #undef HAVE__LTOA */ +/* #undef HAVE__ULTOA */ +#define HAVE_STRTOL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOD 1 +#define HAVE_ATOI 1 +#define HAVE_ATOF 1 +#define HAVE_STRCMP 1 +#define HAVE_STRNCMP 1 +#define HAVE__STRICMP 1 +#define HAVE__STRNICMP 1 +#define HAVE__WCSICMP 1 +#define HAVE__WCSNICMP 1 +#define HAVE__WCSDUP 1 +#define HAVE_ACOS 1 +#define HAVE_ASIN 1 +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 +#define HAVE_CEIL 1 +#define HAVE_COS 1 +#define HAVE_EXP 1 +#define HAVE_FABS 1 +#define HAVE_FLOOR 1 +#define HAVE_FMOD 1 +#define HAVE_LOG 1 +#define HAVE_LOG10 1 +#define HAVE_POW 1 +#define HAVE_SIN 1 +#define HAVE_SQRT 1 +#define HAVE_TAN 1 +#define HAVE_ACOSF 1 +#define HAVE_ASINF 1 +#define HAVE_ATANF 1 +#define HAVE_ATAN2F 1 +#define HAVE_CEILF 1 +#define HAVE__COPYSIGN 1 +#define HAVE_COSF 1 +#define HAVE_EXPF 1 +#define HAVE_FABSF 1 +#define HAVE_FLOORF 1 +#define HAVE_FMODF 1 +#define HAVE_LOGF 1 +#define HAVE_LOG10F 1 +#define HAVE_POWF 1 +#define HAVE_SINF 1 +#define HAVE_SQRTF 1 +#define HAVE_TANF 1 +#if defined(_MSC_VER) +/* These functions were added with the VC++ 2013 C runtime library */ +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_VSSCANF 1 +#define HAVE_LROUND 1 +#define HAVE_LROUNDF 1 +#define HAVE_ROUND 1 +#define HAVE_ROUNDF 1 +#define HAVE_SCALBN 1 +#define HAVE_SCALBNF 1 +#define HAVE_TRUNC 1 +#define HAVE_TRUNCF 1 +#define HAVE__FSEEKI64 1 +#ifdef _USE_MATH_DEFINES +#define HAVE_M_PI 1 +#endif +#else +#define HAVE_M_PI 1 +#endif +#else +#define HAVE_STDARG_H 1 +#define HAVE_STDDEF_H 1 +#define HAVE_STDINT_H 1 +#endif + +/* Enable various audio drivers */ +#if defined(HAVE_MMDEVICEAPI_H) && defined(HAVE_AUDIOCLIENT_H) +#define SDL_AUDIO_DRIVER_WASAPI 1 +#endif +/*#define SDL_AUDIO_DRIVER_DSOUND 1*/ +/*#define SDL_AUDIO_DRIVER_WINMM 1*/ +#define SDL_AUDIO_DRIVER_DISK 1 +#define SDL_AUDIO_DRIVER_DUMMY 1 + +/* Enable various input drivers */ +/*#define SDL_JOYSTICK_DINPUT 1*/ +/*#define SDL_JOYSTICK_HIDAPI 1*/ +/*#define SDL_JOYSTICK_RAWINPUT 1*/ +#define SDL_JOYSTICK_VIRTUAL 1 +#ifdef HAVE_WINDOWS_GAMING_INPUT_H +#define SDL_JOYSTICK_WGI 1 +#endif +#define SDL_JOYSTICK_XINPUT 1 +/*#define SDL_HAPTIC_DINPUT 1*/ +#define SDL_HAPTIC_XINPUT 1 + +/* Enable the sensor driver */ +#ifdef HAVE_SENSORSAPI_H +#define SDL_SENSOR_WINDOWS 1 +#else +#define SDL_SENSOR_DUMMY 1 +#endif + +/* Enable various shared object loading systems */ +#define SDL_LOADSO_WINDOWS 1 + +/* Enable various threading systems */ +#define SDL_THREAD_GENERIC_COND_SUFFIX 1 +#define SDL_THREAD_WINDOWS 1 + +/* Enable various timer systems */ +#define SDL_TIMER_WINDOWS 1 + +/* Enable various video drivers */ +#define SDL_VIDEO_DRIVER_DUMMY 1 +#define SDL_VIDEO_DRIVER_WINDOWS 1 + +#if !defined(SDL_VIDEO_RENDER_D3D12) && defined(HAVE_D3D12_H) +#define SDL_VIDEO_RENDER_D3D12 1 +#endif + +/* Enable OpenGL support */ +#ifndef SDL_VIDEO_OPENGL +#define SDL_VIDEO_OPENGL 1 +#endif +#ifndef SDL_VIDEO_OPENGL_WGL +#define SDL_VIDEO_OPENGL_WGL 1 +#endif +#ifndef SDL_VIDEO_RENDER_OGL +#define SDL_VIDEO_RENDER_OGL 1 +#endif + +/* Enable system power support */ +/*#define SDL_POWER_WINDOWS 1*/ +#define SDL_POWER_HARDWIRED 1 + +/* Enable filesystem support */ +/* #define SDL_FILESYSTEM_WINDOWS 1*/ +#define SDL_FILESYSTEM_XBOX 1 + +/* Disable IME as not supported yet (TODO: Xbox IME?) */ +#define SDL_DISABLE_WINDOWS_IME 1 + +#endif /* SDL_config_wingdk_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_cpuinfo.h b/lib/windows/include/SDL2/SDL_cpuinfo.h new file mode 100644 index 0000000..696a03b --- /dev/null +++ b/lib/windows/include/SDL2/SDL_cpuinfo.h @@ -0,0 +1,603 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* WIKI CATEGORY: CPUInfo */ + +/** + * # CategoryCPUInfo + * + * CPU feature detection for SDL. + * + * These functions are largely concerned with reporting if the system has + * access to various SIMD instruction sets, but also has other important info + * to share, such as number of logical CPU cores. + */ + +#ifndef SDL_cpuinfo_h_ +#define SDL_cpuinfo_h_ + +#include "SDL_stdinc.h" + +/* Need to do this here because intrin.h has C++ code in it */ +/* Visual Studio 2005 has a bug where intrin.h conflicts with winnt.h */ +#if defined(_MSC_VER) && (_MSC_VER >= 1500) && (defined(_M_IX86) || defined(_M_X64)) +#ifdef __clang__ +/* As of Clang 11, '_m_prefetchw' is conflicting with the winnt.h's version, + so we define the needed '_m_prefetch' here as a pseudo-header, until the issue is fixed. */ + +#ifndef __PRFCHWINTRIN_H +#define __PRFCHWINTRIN_H + +static __inline__ void __attribute__((__always_inline__, __nodebug__)) +_m_prefetch(void *__P) +{ + __builtin_prefetch (__P, 0, 3 /* _MM_HINT_T0 */); +} + +#endif /* __PRFCHWINTRIN_H */ +#endif /* __clang__ */ +#include +#ifndef _WIN64 +#ifndef __MMX__ +#define __MMX__ +#endif +/* +#ifndef __3dNOW__ +#define __3dNOW__ +#endif +*/ +#endif +#ifndef __SSE__ +#define __SSE__ +#endif +#ifndef __SSE2__ +#define __SSE2__ +#endif +#ifndef __SSE3__ +#define __SSE3__ +#endif +#elif defined(__MINGW64_VERSION_MAJOR) +#include +#if !defined(SDL_DISABLE_ARM_NEON_H) && defined(__ARM_NEON) +# include +#endif +#else +/* altivec.h redefining bool causes a number of problems, see bugs 3993 and 4392, so you need to explicitly define SDL_ENABLE_ALTIVEC_H to have it included. */ +#if defined(HAVE_ALTIVEC_H) && defined(__ALTIVEC__) && !defined(__APPLE_ALTIVEC__) && defined(SDL_ENABLE_ALTIVEC_H) +#include +#endif +#if !defined(SDL_DISABLE_ARM_NEON_H) +# if defined(__ARM_NEON) +# include +# elif defined(__WINDOWS__) || defined(__WINRT__) || defined(__GDK__) +/* Visual Studio doesn't define __ARM_ARCH, but _M_ARM (if set, always 7), and _M_ARM64 (if set, always 1). */ +# if defined(_M_ARM) +# include +# include +# define __ARM_NEON 1 /* Set __ARM_NEON so that it can be used elsewhere, at compile time */ +# endif +# if defined (_M_ARM64) +# include +# include +# define __ARM_NEON 1 /* Set __ARM_NEON so that it can be used elsewhere, at compile time */ +# define __ARM_ARCH 8 +# endif +# endif +#endif +#endif /* compiler version */ + +#if defined(__3dNOW__) && !defined(SDL_DISABLE_MM3DNOW_H) +#include +#endif +#if defined(__loongarch_sx) && !defined(SDL_DISABLE_LSX_H) +#include +#define __LSX__ +#endif +#if defined(__loongarch_asx) && !defined(SDL_DISABLE_LASX_H) +#include +#define __LASX__ +#endif +#if defined(HAVE_IMMINTRIN_H) && !defined(SDL_DISABLE_IMMINTRIN_H) && \ + (defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || defined(_M_IX86)) +#include +#else +#if defined(__MMX__) && !defined(SDL_DISABLE_MMINTRIN_H) +#include +#endif +#if defined(__SSE__) && !defined(SDL_DISABLE_XMMINTRIN_H) +#include +#endif +#if defined(__SSE2__) && !defined(SDL_DISABLE_EMMINTRIN_H) +#include +#endif +#if defined(__SSE3__) && !defined(SDL_DISABLE_PMMINTRIN_H) +#include +#endif +#endif /* HAVE_IMMINTRIN_H */ + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* This is a guess for the cacheline size used for padding. + * Most x86 processors have a 64 byte cache line. + * The 64-bit PowerPC processors have a 128 byte cache line. + * We'll use the larger value to be generally safe. + */ +#define SDL_CACHELINE_SIZE 128 + +/** + * Get the number of CPU cores available. + * + * \returns the total number of logical CPU cores. On CPUs that include + * technologies such as hyperthreading, the number of logical cores + * may be more than the number of physical cores. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC int SDLCALL SDL_GetCPUCount(void); + +/** + * Determine the L1 cache line size of the CPU. + * + * This is useful for determining multi-threaded structure padding or SIMD + * prefetch sizes. + * + * \returns the L1 cache line size of the CPU, in bytes. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC int SDLCALL SDL_GetCPUCacheLineSize(void); + +/** + * Determine whether the CPU has the RDTSC instruction. + * + * This always returns false on CPUs that aren't using Intel instruction sets. + * + * \returns SDL_TRUE if the CPU has the RDTSC instruction or SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Has3DNow + * \sa SDL_HasAltiVec + * \sa SDL_HasAVX + * \sa SDL_HasAVX2 + * \sa SDL_HasMMX + * \sa SDL_HasSSE + * \sa SDL_HasSSE2 + * \sa SDL_HasSSE3 + * \sa SDL_HasSSE41 + * \sa SDL_HasSSE42 + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasRDTSC(void); + +/** + * Determine whether the CPU has AltiVec features. + * + * This always returns false on CPUs that aren't using PowerPC instruction + * sets. + * + * \returns SDL_TRUE if the CPU has AltiVec features or SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Has3DNow + * \sa SDL_HasAVX + * \sa SDL_HasAVX2 + * \sa SDL_HasMMX + * \sa SDL_HasRDTSC + * \sa SDL_HasSSE + * \sa SDL_HasSSE2 + * \sa SDL_HasSSE3 + * \sa SDL_HasSSE41 + * \sa SDL_HasSSE42 + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasAltiVec(void); + +/** + * Determine whether the CPU has MMX features. + * + * This always returns false on CPUs that aren't using Intel instruction sets. + * + * \returns SDL_TRUE if the CPU has MMX features or SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Has3DNow + * \sa SDL_HasAltiVec + * \sa SDL_HasAVX + * \sa SDL_HasAVX2 + * \sa SDL_HasRDTSC + * \sa SDL_HasSSE + * \sa SDL_HasSSE2 + * \sa SDL_HasSSE3 + * \sa SDL_HasSSE41 + * \sa SDL_HasSSE42 + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasMMX(void); + +/** + * Determine whether the CPU has 3DNow! features. + * + * This always returns false on CPUs that aren't using AMD instruction sets. + * + * \returns SDL_TRUE if the CPU has 3DNow! features or SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HasAltiVec + * \sa SDL_HasAVX + * \sa SDL_HasAVX2 + * \sa SDL_HasMMX + * \sa SDL_HasRDTSC + * \sa SDL_HasSSE + * \sa SDL_HasSSE2 + * \sa SDL_HasSSE3 + * \sa SDL_HasSSE41 + * \sa SDL_HasSSE42 + */ +extern DECLSPEC SDL_bool SDLCALL SDL_Has3DNow(void); + +/** + * Determine whether the CPU has SSE features. + * + * This always returns false on CPUs that aren't using Intel instruction sets. + * + * \returns SDL_TRUE if the CPU has SSE features or SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Has3DNow + * \sa SDL_HasAltiVec + * \sa SDL_HasAVX + * \sa SDL_HasAVX2 + * \sa SDL_HasMMX + * \sa SDL_HasRDTSC + * \sa SDL_HasSSE2 + * \sa SDL_HasSSE3 + * \sa SDL_HasSSE41 + * \sa SDL_HasSSE42 + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE(void); + +/** + * Determine whether the CPU has SSE2 features. + * + * This always returns false on CPUs that aren't using Intel instruction sets. + * + * \returns SDL_TRUE if the CPU has SSE2 features or SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Has3DNow + * \sa SDL_HasAltiVec + * \sa SDL_HasAVX + * \sa SDL_HasAVX2 + * \sa SDL_HasMMX + * \sa SDL_HasRDTSC + * \sa SDL_HasSSE + * \sa SDL_HasSSE3 + * \sa SDL_HasSSE41 + * \sa SDL_HasSSE42 + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE2(void); + +/** + * Determine whether the CPU has SSE3 features. + * + * This always returns false on CPUs that aren't using Intel instruction sets. + * + * \returns SDL_TRUE if the CPU has SSE3 features or SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Has3DNow + * \sa SDL_HasAltiVec + * \sa SDL_HasAVX + * \sa SDL_HasAVX2 + * \sa SDL_HasMMX + * \sa SDL_HasRDTSC + * \sa SDL_HasSSE + * \sa SDL_HasSSE2 + * \sa SDL_HasSSE41 + * \sa SDL_HasSSE42 + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE3(void); + +/** + * Determine whether the CPU has SSE4.1 features. + * + * This always returns false on CPUs that aren't using Intel instruction sets. + * + * \returns SDL_TRUE if the CPU has SSE4.1 features or SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Has3DNow + * \sa SDL_HasAltiVec + * \sa SDL_HasAVX + * \sa SDL_HasAVX2 + * \sa SDL_HasMMX + * \sa SDL_HasRDTSC + * \sa SDL_HasSSE + * \sa SDL_HasSSE2 + * \sa SDL_HasSSE3 + * \sa SDL_HasSSE42 + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE41(void); + +/** + * Determine whether the CPU has SSE4.2 features. + * + * This always returns false on CPUs that aren't using Intel instruction sets. + * + * \returns SDL_TRUE if the CPU has SSE4.2 features or SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Has3DNow + * \sa SDL_HasAltiVec + * \sa SDL_HasAVX + * \sa SDL_HasAVX2 + * \sa SDL_HasMMX + * \sa SDL_HasRDTSC + * \sa SDL_HasSSE + * \sa SDL_HasSSE2 + * \sa SDL_HasSSE3 + * \sa SDL_HasSSE41 + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE42(void); + +/** + * Determine whether the CPU has AVX features. + * + * This always returns false on CPUs that aren't using Intel instruction sets. + * + * \returns SDL_TRUE if the CPU has AVX features or SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.2. + * + * \sa SDL_Has3DNow + * \sa SDL_HasAltiVec + * \sa SDL_HasAVX2 + * \sa SDL_HasMMX + * \sa SDL_HasRDTSC + * \sa SDL_HasSSE + * \sa SDL_HasSSE2 + * \sa SDL_HasSSE3 + * \sa SDL_HasSSE41 + * \sa SDL_HasSSE42 + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX(void); + +/** + * Determine whether the CPU has AVX2 features. + * + * This always returns false on CPUs that aren't using Intel instruction sets. + * + * \returns SDL_TRUE if the CPU has AVX2 features or SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.4. + * + * \sa SDL_Has3DNow + * \sa SDL_HasAltiVec + * \sa SDL_HasAVX + * \sa SDL_HasMMX + * \sa SDL_HasRDTSC + * \sa SDL_HasSSE + * \sa SDL_HasSSE2 + * \sa SDL_HasSSE3 + * \sa SDL_HasSSE41 + * \sa SDL_HasSSE42 + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX2(void); + +/** + * Determine whether the CPU has AVX-512F (foundation) features. + * + * This always returns false on CPUs that aren't using Intel instruction sets. + * + * \returns SDL_TRUE if the CPU has AVX-512F features or SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.9. + * + * \sa SDL_HasAVX + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX512F(void); + +/** + * Determine whether the CPU has ARM SIMD (ARMv6) features. + * + * This is different from ARM NEON, which is a different instruction set. + * + * This always returns false on CPUs that aren't using ARM instruction sets. + * + * \returns SDL_TRUE if the CPU has ARM SIMD features or SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.12. + * + * \sa SDL_HasNEON + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasARMSIMD(void); + +/** + * Determine whether the CPU has NEON (ARM SIMD) features. + * + * This always returns false on CPUs that aren't using ARM instruction sets. + * + * \returns SDL_TRUE if the CPU has ARM NEON features or SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.6. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasNEON(void); + +/** + * Determine whether the CPU has LSX (LOONGARCH SIMD) features. + * + * This always returns false on CPUs that aren't using LOONGARCH instruction + * sets. + * + * \returns SDL_TRUE if the CPU has LOONGARCH LSX features or SDL_FALSE if + * not. + * + * \since This function is available since SDL 2.24.0. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasLSX(void); + +/** + * Determine whether the CPU has LASX (LOONGARCH SIMD) features. + * + * This always returns false on CPUs that aren't using LOONGARCH instruction + * sets. + * + * \returns SDL_TRUE if the CPU has LOONGARCH LASX features or SDL_FALSE if + * not. + * + * \since This function is available since SDL 2.24.0. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasLASX(void); + +/** + * Get the amount of RAM configured in the system. + * + * \returns the amount of RAM configured in the system in MiB. + * + * \since This function is available since SDL 2.0.1. + */ +extern DECLSPEC int SDLCALL SDL_GetSystemRAM(void); + +/** + * Report the alignment this system needs for SIMD allocations. + * + * This will return the minimum number of bytes to which a pointer must be + * aligned to be compatible with SIMD instructions on the current machine. For + * example, if the machine supports SSE only, it will return 16, but if it + * supports AVX-512F, it'll return 64 (etc). This only reports values for + * instruction sets SDL knows about, so if your SDL build doesn't have + * SDL_HasAVX512F(), then it might return 16 for the SSE support it sees and + * not 64 for the AVX-512 instructions that exist but SDL doesn't know about. + * Plan accordingly. + * + * \returns the alignment in bytes needed for available, known SIMD + * instructions. + * + * \since This function is available since SDL 2.0.10. + */ +extern DECLSPEC size_t SDLCALL SDL_SIMDGetAlignment(void); + +/** + * Allocate memory in a SIMD-friendly way. + * + * This will allocate a block of memory that is suitable for use with SIMD + * instructions. Specifically, it will be properly aligned and padded for the + * system's supported vector instructions. + * + * The memory returned will be padded such that it is safe to read or write an + * incomplete vector at the end of the memory block. This can be useful so you + * don't have to drop back to a scalar fallback at the end of your SIMD + * processing loop to deal with the final elements without overflowing the + * allocated buffer. + * + * You must free this memory with SDL_FreeSIMD(), not free() or SDL_free() or + * delete[], etc. + * + * Note that SDL will only deal with SIMD instruction sets it is aware of; for + * example, SDL 2.0.8 knows that SSE wants 16-byte vectors (SDL_HasSSE()), and + * AVX2 wants 32 bytes (SDL_HasAVX2()), but doesn't know that AVX-512 wants + * 64. To be clear: if you can't decide to use an instruction set with an + * SDL_Has*() function, don't use that instruction set with memory allocated + * through here. + * + * SDL_AllocSIMD(0) will return a non-NULL pointer, assuming the system isn't + * out of memory, but you are not allowed to dereference it (because you only + * own zero bytes of that buffer). + * + * \param len The length, in bytes, of the block to allocate. The actual + * allocated block might be larger due to padding, etc. + * \returns a pointer to the newly-allocated block, NULL if out of memory. + * + * \since This function is available since SDL 2.0.10. + * + * \sa SDL_SIMDGetAlignment + * \sa SDL_SIMDRealloc + * \sa SDL_SIMDFree + */ +extern DECLSPEC void * SDLCALL SDL_SIMDAlloc(const size_t len); + +/** + * Reallocate memory obtained from SDL_SIMDAlloc + * + * It is not valid to use this function on a pointer from anything but + * SDL_SIMDAlloc(). It can't be used on pointers from malloc, realloc, + * SDL_malloc, memalign, new[], etc. + * + * \param mem The pointer obtained from SDL_SIMDAlloc. This function also + * accepts NULL, at which point this function is the same as + * calling SDL_SIMDAlloc with a NULL pointer. + * \param len The length, in bytes, of the block to allocated. The actual + * allocated block might be larger due to padding, etc. Passing 0 + * will return a non-NULL pointer, assuming the system isn't out of + * memory. + * \returns a pointer to the newly-reallocated block, NULL if out of memory. + * + * \since This function is available since SDL 2.0.14. + * + * \sa SDL_SIMDGetAlignment + * \sa SDL_SIMDAlloc + * \sa SDL_SIMDFree + */ +extern DECLSPEC void * SDLCALL SDL_SIMDRealloc(void *mem, const size_t len); + +/** + * Deallocate memory obtained from SDL_SIMDAlloc + * + * It is not valid to use this function on a pointer from anything but + * SDL_SIMDAlloc() or SDL_SIMDRealloc(). It can't be used on pointers from + * malloc, realloc, SDL_malloc, memalign, new[], etc. + * + * However, SDL_SIMDFree(NULL) is a legal no-op. + * + * The memory pointed to by `ptr` is no longer valid for access upon return, + * and may be returned to the system or reused by a future allocation. The + * pointer passed to this function is no longer safe to dereference once this + * function returns, and should be discarded. + * + * \param ptr The pointer, returned from SDL_SIMDAlloc or SDL_SIMDRealloc, to + * deallocate. NULL is a legal no-op. + * + * \since This function is available since SDL 2.0.10. + * + * \sa SDL_SIMDAlloc + * \sa SDL_SIMDRealloc + */ +extern DECLSPEC void SDLCALL SDL_SIMDFree(void *ptr); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_cpuinfo_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_egl.h b/lib/windows/include/SDL2/SDL_egl.h new file mode 100644 index 0000000..31290ec --- /dev/null +++ b/lib/windows/include/SDL2/SDL_egl.h @@ -0,0 +1,2351 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* + * This is a simple file to encapsulate the EGL API headers. + */ + +#if !defined(_MSC_VER) && !defined(__ANDROID__) && !defined(SDL_USE_BUILTIN_OPENGL_DEFINITIONS) + +#if defined(__vita__) || defined(__psp2__) +#include +#endif + +#include +#include + +#else /* _MSC_VER */ + +/* EGL headers for Visual Studio */ + +#ifndef __khrplatform_h_ +#define __khrplatform_h_ + +/* +** Copyright (c) 2008-2018 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* Khronos platform-specific types and definitions. + * + * The master copy of khrplatform.h is maintained in the Khronos EGL + * Registry repository at https://github.com/KhronosGroup/EGL-Registry + * The last semantic modification to khrplatform.h was at commit ID: + * 67a3e0864c2d75ea5287b9f3d2eb74a745936692 + * + * Adopters may modify this file to suit their platform. Adopters are + * encouraged to submit platform specific modifications to the Khronos + * group so that they can be included in future versions of this file. + * Please submit changes by filing pull requests or issues on + * the EGL Registry repository linked above. + * + * + * See the Implementer's Guidelines for information about where this file + * should be located on your system and for more details of its use: + * http://www.khronos.org/registry/implementers_guide.pdf + * + * This file should be included as + * #include + * by Khronos client API header files that use its types and defines. + * + * The types in khrplatform.h should only be used to define API-specific types. + * + * Types defined in khrplatform.h: + * khronos_int8_t signed 8 bit + * khronos_uint8_t unsigned 8 bit + * khronos_int16_t signed 16 bit + * khronos_uint16_t unsigned 16 bit + * khronos_int32_t signed 32 bit + * khronos_uint32_t unsigned 32 bit + * khronos_int64_t signed 64 bit + * khronos_uint64_t unsigned 64 bit + * khronos_intptr_t signed same number of bits as a pointer + * khronos_uintptr_t unsigned same number of bits as a pointer + * khronos_ssize_t signed size + * khronos_usize_t unsigned size + * khronos_float_t signed 32 bit floating point + * khronos_time_ns_t unsigned 64 bit time in nanoseconds + * khronos_utime_nanoseconds_t unsigned time interval or absolute time in + * nanoseconds + * khronos_stime_nanoseconds_t signed time interval in nanoseconds + * khronos_boolean_enum_t enumerated boolean type. This should + * only be used as a base type when a client API's boolean type is + * an enum. Client APIs which use an integer or other type for + * booleans cannot use this as the base type for their boolean. + * + * Tokens defined in khrplatform.h: + * + * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. + * + * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. + * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. + * + * Calling convention macros defined in this file: + * KHRONOS_APICALL + * KHRONOS_APIENTRY + * KHRONOS_APIATTRIBUTES + * + * These may be used in function prototypes as: + * + * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( + * int arg1, + * int arg2) KHRONOS_APIATTRIBUTES; + */ + +#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC) +# define KHRONOS_STATIC 1 +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APICALL + *------------------------------------------------------------------------- + * This precedes the return type of the function in the function prototype. + */ +#if defined(KHRONOS_STATIC) + /* If the preprocessor constant KHRONOS_STATIC is defined, make the + * header compatible with static linking. */ +# define KHRONOS_APICALL +#elif defined(_WIN32) +# define KHRONOS_APICALL __declspec(dllimport) +#elif defined (__SYMBIAN32__) +# define KHRONOS_APICALL IMPORT_C +#elif defined(__ANDROID__) +# define KHRONOS_APICALL __attribute__((visibility("default"))) +#else +# define KHRONOS_APICALL +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIENTRY + *------------------------------------------------------------------------- + * This follows the return type of the function and precedes the function + * name in the function prototype. + */ +#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) + /* Win32 but not WinCE */ +# define KHRONOS_APIENTRY __stdcall +#else +# define KHRONOS_APIENTRY +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIATTRIBUTES + *------------------------------------------------------------------------- + * This follows the closing parenthesis of the function prototype arguments. + */ +#if defined (__ARMCC_2__) +#define KHRONOS_APIATTRIBUTES __softfp +#else +#define KHRONOS_APIATTRIBUTES +#endif + +/*------------------------------------------------------------------------- + * basic type definitions + *-----------------------------------------------------------------------*/ +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) + + +/* + * Using + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 +/* + * To support platform where unsigned long cannot be used interchangeably with + * inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t. + * Ideally, we could just use (u)intptr_t everywhere, but this could result in + * ABI breakage if khronos_uintptr_t is changed from unsigned long to + * unsigned long long or similar (this results in different C++ name mangling). + * To avoid changes for existing platforms, we restrict usage of intptr_t to + * platforms where the size of a pointer is larger than the size of long. + */ +#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__) +#if __SIZEOF_POINTER__ > __SIZEOF_LONG__ +#define KHRONOS_USE_INTPTR_T +#endif +#endif + +#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 KHRONOS_USE_INTPTR_T +typedef intptr_t khronos_intptr_t; +typedef uintptr_t khronos_uintptr_t; +#elif defined(_WIN64) +typedef signed long long int khronos_intptr_t; +typedef unsigned long long int khronos_uintptr_t; +#else +typedef signed long int khronos_intptr_t; +typedef unsigned long int khronos_uintptr_t; +#endif + +#if defined(_WIN64) +typedef signed long long int khronos_ssize_t; +typedef unsigned long long int khronos_usize_t; +#else +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_ */ + + +#ifndef __eglplatform_h_ +#define __eglplatform_h_ + +/* +** Copyright 2007-2020 The Khronos Group Inc. +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* Platform-specific types and definitions for egl.h + * + * Adopters may modify khrplatform.h and this file to suit their platform. + * You are encouraged to submit all modifications to the Khronos group so that + * they can be included in future versions of this file. Please submit changes + * by filing an issue or pull request on the public Khronos EGL Registry, at + * https://www.github.com/KhronosGroup/EGL-Registry/ + */ + +/*#include */ + +/* Macros used in EGL function prototype declarations. + * + * EGL functions should be prototyped as: + * + * EGLAPI return-type EGLAPIENTRY eglFunction(arguments); + * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments); + * + * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h + */ + +#ifndef EGLAPI +#define EGLAPI KHRONOS_APICALL +#endif + +#ifndef EGLAPIENTRY +#define EGLAPIENTRY KHRONOS_APIENTRY +#endif +#define EGLAPIENTRYP EGLAPIENTRY* + +/* The types NativeDisplayType, NativeWindowType, and NativePixmapType + * are aliases of window-system-dependent types, such as X Display * or + * Windows Device Context. They must be defined in platform-specific + * code below. The EGL-prefixed versions of Native*Type are the same + * types, renamed in EGL 1.3 so all types in the API start with "EGL". + * + * Khronos STRONGLY RECOMMENDS that you use the default definitions + * provided below, since these changes affect both binary and source + * portability of applications using EGL running on different EGL + * implementations. + */ + +#if defined(EGL_NO_PLATFORM_SPECIFIC_TYPES) + +typedef void *EGLNativeDisplayType; +typedef void *EGLNativePixmapType; +typedef void *EGLNativeWindowType; + +#elif defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN 1 +#endif +#include + +typedef HDC EGLNativeDisplayType; +typedef HBITMAP EGLNativePixmapType; +typedef HWND EGLNativeWindowType; + +#elif defined(__EMSCRIPTEN__) + +typedef int EGLNativeDisplayType; +typedef int EGLNativePixmapType; +typedef int EGLNativeWindowType; + +#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */ + +typedef int EGLNativeDisplayType; +typedef void *EGLNativePixmapType; +typedef void *EGLNativeWindowType; + +#elif defined(WL_EGL_PLATFORM) + +typedef struct wl_display *EGLNativeDisplayType; +typedef struct wl_egl_pixmap *EGLNativePixmapType; +typedef struct wl_egl_window *EGLNativeWindowType; + +#elif defined(__GBM__) + +typedef struct gbm_device *EGLNativeDisplayType; +typedef struct gbm_bo *EGLNativePixmapType; +typedef void *EGLNativeWindowType; + +#elif defined(__ANDROID__) || defined(ANDROID) + +struct ANativeWindow; +struct egl_native_pixmap_t; + +typedef void* EGLNativeDisplayType; +typedef struct egl_native_pixmap_t* EGLNativePixmapType; +typedef struct ANativeWindow* EGLNativeWindowType; + +#elif defined(USE_OZONE) + +typedef intptr_t EGLNativeDisplayType; +typedef intptr_t EGLNativePixmapType; +typedef intptr_t EGLNativeWindowType; + +#elif defined(USE_X11) + +/* X11 (tentative) */ +#include +#include + +typedef Display *EGLNativeDisplayType; +typedef Pixmap EGLNativePixmapType; +typedef Window EGLNativeWindowType; + +#elif defined(__unix__) + +typedef void *EGLNativeDisplayType; +typedef khronos_uintptr_t EGLNativePixmapType; +typedef khronos_uintptr_t EGLNativeWindowType; + +#elif defined(__APPLE__) + +typedef int EGLNativeDisplayType; +typedef void *EGLNativePixmapType; +typedef void *EGLNativeWindowType; + +#elif defined(__HAIKU__) + +#include + +typedef void *EGLNativeDisplayType; +typedef khronos_uintptr_t EGLNativePixmapType; +typedef khronos_uintptr_t EGLNativeWindowType; + +#elif defined(__Fuchsia__) + +typedef void *EGLNativeDisplayType; +typedef khronos_uintptr_t EGLNativePixmapType; +typedef khronos_uintptr_t EGLNativeWindowType; + +#else +#error "Platform not recognized" +#endif + +/* EGL 1.2 types, renamed for consistency in EGL 1.3 */ +typedef EGLNativeDisplayType NativeDisplayType; +typedef EGLNativePixmapType NativePixmapType; +typedef EGLNativeWindowType NativeWindowType; + + +/* Define EGLint. This must be a signed integral type large enough to contain + * all legal attribute names and values passed into and out of EGL, whether + * their type is boolean, bitmask, enumerant (symbolic constant), integer, + * handle, or other. While in general a 32-bit integer will suffice, if + * handles are 64 bit types, then EGLint should be defined as a signed 64-bit + * integer type. + */ +typedef khronos_int32_t EGLint; + + +/* C++ / C typecast macros for special EGL handle values */ +#if defined(__cplusplus) +#define EGL_CAST(type, value) (static_cast(value)) +#else +#define EGL_CAST(type, value) ((type) (value)) +#endif + +#endif /* __eglplatform_h */ + + +#ifndef __egl_h_ +#define __egl_h_ 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright 2013-2020 The Khronos Group Inc. +** SPDX-License-Identifier: Apache-2.0 +** +** This header is generated from the Khronos EGL XML API Registry. +** The current version of the Registry, generator scripts +** used to make the header, and the header can be found at +** http://www.khronos.org/registry/egl +** +** Khronos $Git commit SHA1: 6fb1daea15 $ on $Git commit date: 2022-05-25 09:41:13 -0600 $ +*/ + +/*#include */ + +#ifndef EGL_EGL_PROTOTYPES +#define EGL_EGL_PROTOTYPES 1 +#endif + +/* Generated on date 20220525 */ + +/* Generated C header for: + * API: egl + * Versions considered: .* + * Versions emitted: .* + * Default extensions included: None + * Additional extensions included: _nomatch_^ + * Extensions removed: _nomatch_^ + */ + +#ifndef EGL_VERSION_1_0 +#define EGL_VERSION_1_0 1 +typedef unsigned int EGLBoolean; +typedef void *EGLDisplay; +/*#include */ +/*#include */ +typedef void *EGLConfig; +typedef void *EGLSurface; +typedef void *EGLContext; +typedef void (*__eglMustCastToProperFunctionPointerType)(void); +#define EGL_ALPHA_SIZE 0x3021 +#define EGL_BAD_ACCESS 0x3002 +#define EGL_BAD_ALLOC 0x3003 +#define EGL_BAD_ATTRIBUTE 0x3004 +#define EGL_BAD_CONFIG 0x3005 +#define EGL_BAD_CONTEXT 0x3006 +#define EGL_BAD_CURRENT_SURFACE 0x3007 +#define EGL_BAD_DISPLAY 0x3008 +#define EGL_BAD_MATCH 0x3009 +#define EGL_BAD_NATIVE_PIXMAP 0x300A +#define EGL_BAD_NATIVE_WINDOW 0x300B +#define EGL_BAD_PARAMETER 0x300C +#define EGL_BAD_SURFACE 0x300D +#define EGL_BLUE_SIZE 0x3022 +#define EGL_BUFFER_SIZE 0x3020 +#define EGL_CONFIG_CAVEAT 0x3027 +#define EGL_CONFIG_ID 0x3028 +#define EGL_CORE_NATIVE_ENGINE 0x305B +#define EGL_DEPTH_SIZE 0x3025 +#define EGL_DONT_CARE EGL_CAST(EGLint,-1) +#define EGL_DRAW 0x3059 +#define EGL_EXTENSIONS 0x3055 +#define EGL_FALSE 0 +#define EGL_GREEN_SIZE 0x3023 +#define EGL_HEIGHT 0x3056 +#define EGL_LARGEST_PBUFFER 0x3058 +#define EGL_LEVEL 0x3029 +#define EGL_MAX_PBUFFER_HEIGHT 0x302A +#define EGL_MAX_PBUFFER_PIXELS 0x302B +#define EGL_MAX_PBUFFER_WIDTH 0x302C +#define EGL_NATIVE_RENDERABLE 0x302D +#define EGL_NATIVE_VISUAL_ID 0x302E +#define EGL_NATIVE_VISUAL_TYPE 0x302F +#define EGL_NONE 0x3038 +#define EGL_NON_CONFORMANT_CONFIG 0x3051 +#define EGL_NOT_INITIALIZED 0x3001 +#define EGL_NO_CONTEXT EGL_CAST(EGLContext,0) +#define EGL_NO_DISPLAY EGL_CAST(EGLDisplay,0) +#define EGL_NO_SURFACE EGL_CAST(EGLSurface,0) +#define EGL_PBUFFER_BIT 0x0001 +#define EGL_PIXMAP_BIT 0x0002 +#define EGL_READ 0x305A +#define EGL_RED_SIZE 0x3024 +#define EGL_SAMPLES 0x3031 +#define EGL_SAMPLE_BUFFERS 0x3032 +#define EGL_SLOW_CONFIG 0x3050 +#define EGL_STENCIL_SIZE 0x3026 +#define EGL_SUCCESS 0x3000 +#define EGL_SURFACE_TYPE 0x3033 +#define EGL_TRANSPARENT_BLUE_VALUE 0x3035 +#define EGL_TRANSPARENT_GREEN_VALUE 0x3036 +#define EGL_TRANSPARENT_RED_VALUE 0x3037 +#define EGL_TRANSPARENT_RGB 0x3052 +#define EGL_TRANSPARENT_TYPE 0x3034 +#define EGL_TRUE 1 +#define EGL_VENDOR 0x3053 +#define EGL_VERSION 0x3054 +#define EGL_WIDTH 0x3057 +#define EGL_WINDOW_BIT 0x0004 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLCHOOSECONFIGPROC) (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOPYBUFFERSPROC) (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target); +typedef EGLContext (EGLAPIENTRYP PFNEGLCREATECONTEXTPROC) (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list); +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPBUFFERSURFACEPROC) (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEPROC) (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list); +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEWINDOWSURFACEPROC) (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYCONTEXTPROC) (EGLDisplay dpy, EGLContext ctx); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSURFACEPROC) (EGLDisplay dpy, EGLSurface surface); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCONFIGATTRIBPROC) (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCONFIGSPROC) (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config); +typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETCURRENTDISPLAYPROC) (void); +typedef EGLSurface (EGLAPIENTRYP PFNEGLGETCURRENTSURFACEPROC) (EGLint readdraw); +typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETDISPLAYPROC) (EGLNativeDisplayType display_id); +typedef EGLint (EGLAPIENTRYP PFNEGLGETERRORPROC) (void); +typedef __eglMustCastToProperFunctionPointerType (EGLAPIENTRYP PFNEGLGETPROCADDRESSPROC) (const char *procname); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLINITIALIZEPROC) (EGLDisplay dpy, EGLint *major, EGLint *minor); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLMAKECURRENTPROC) (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYCONTEXTPROC) (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value); +typedef const char *(EGLAPIENTRYP PFNEGLQUERYSTRINGPROC) (EGLDisplay dpy, EGLint name); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSPROC) (EGLDisplay dpy, EGLSurface surface); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLTERMINATEPROC) (EGLDisplay dpy); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITGLPROC) (void); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITNATIVEPROC) (EGLint engine); +#if EGL_EGL_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config); +EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target); +EGLAPI EGLContext EGLAPIENTRY eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext (EGLDisplay dpy, EGLContext ctx); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface (EGLDisplay dpy, EGLSurface surface); +EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value); +EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config); +EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay (void); +EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface (EGLint readdraw); +EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay (EGLNativeDisplayType display_id); +EGLAPI EGLint EGLAPIENTRY eglGetError (void); +EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname); +EGLAPI EGLBoolean EGLAPIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor); +EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value); +EGLAPI const char *EGLAPIENTRY eglQueryString (EGLDisplay dpy, EGLint name); +EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value); +EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface surface); +EGLAPI EGLBoolean EGLAPIENTRY eglTerminate (EGLDisplay dpy); +EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL (void); +EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative (EGLint engine); +#endif +#endif /* EGL_VERSION_1_0 */ + +#ifndef EGL_VERSION_1_1 +#define EGL_VERSION_1_1 1 +#define EGL_BACK_BUFFER 0x3084 +#define EGL_BIND_TO_TEXTURE_RGB 0x3039 +#define EGL_BIND_TO_TEXTURE_RGBA 0x303A +#define EGL_CONTEXT_LOST 0x300E +#define EGL_MIN_SWAP_INTERVAL 0x303B +#define EGL_MAX_SWAP_INTERVAL 0x303C +#define EGL_MIPMAP_TEXTURE 0x3082 +#define EGL_MIPMAP_LEVEL 0x3083 +#define EGL_NO_TEXTURE 0x305C +#define EGL_TEXTURE_2D 0x305F +#define EGL_TEXTURE_FORMAT 0x3080 +#define EGL_TEXTURE_RGB 0x305D +#define EGL_TEXTURE_RGBA 0x305E +#define EGL_TEXTURE_TARGET 0x3081 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDTEXIMAGEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint buffer); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLRELEASETEXIMAGEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint buffer); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSURFACEATTRIBPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPINTERVALPROC) (EGLDisplay dpy, EGLint interval); +#if EGL_EGL_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer); +EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer); +EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value); +EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval (EGLDisplay dpy, EGLint interval); +#endif +#endif /* EGL_VERSION_1_1 */ + +#ifndef EGL_VERSION_1_2 +#define EGL_VERSION_1_2 1 +typedef unsigned int EGLenum; +typedef void *EGLClientBuffer; +#define EGL_ALPHA_FORMAT 0x3088 +#define EGL_ALPHA_FORMAT_NONPRE 0x308B +#define EGL_ALPHA_FORMAT_PRE 0x308C +#define EGL_ALPHA_MASK_SIZE 0x303E +#define EGL_BUFFER_PRESERVED 0x3094 +#define EGL_BUFFER_DESTROYED 0x3095 +#define EGL_CLIENT_APIS 0x308D +#define EGL_COLORSPACE 0x3087 +#define EGL_COLORSPACE_sRGB 0x3089 +#define EGL_COLORSPACE_LINEAR 0x308A +#define EGL_COLOR_BUFFER_TYPE 0x303F +#define EGL_CONTEXT_CLIENT_TYPE 0x3097 +#define EGL_DISPLAY_SCALING 10000 +#define EGL_HORIZONTAL_RESOLUTION 0x3090 +#define EGL_LUMINANCE_BUFFER 0x308F +#define EGL_LUMINANCE_SIZE 0x303D +#define EGL_OPENGL_ES_BIT 0x0001 +#define EGL_OPENVG_BIT 0x0002 +#define EGL_OPENGL_ES_API 0x30A0 +#define EGL_OPENVG_API 0x30A1 +#define EGL_OPENVG_IMAGE 0x3096 +#define EGL_PIXEL_ASPECT_RATIO 0x3092 +#define EGL_RENDERABLE_TYPE 0x3040 +#define EGL_RENDER_BUFFER 0x3086 +#define EGL_RGB_BUFFER 0x308E +#define EGL_SINGLE_BUFFER 0x3085 +#define EGL_SWAP_BEHAVIOR 0x3093 +#define EGL_UNKNOWN EGL_CAST(EGLint,-1) +#define EGL_VERTICAL_RESOLUTION 0x3091 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDAPIPROC) (EGLenum api); +typedef EGLenum (EGLAPIENTRYP PFNEGLQUERYAPIPROC) (void); +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC) (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLRELEASETHREADPROC) (void); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITCLIENTPROC) (void); +#if EGL_EGL_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI (EGLenum api); +EGLAPI EGLenum EGLAPIENTRY eglQueryAPI (void); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread (void); +EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient (void); +#endif +#endif /* EGL_VERSION_1_2 */ + +#ifndef EGL_VERSION_1_3 +#define EGL_VERSION_1_3 1 +#define EGL_CONFORMANT 0x3042 +#define EGL_CONTEXT_CLIENT_VERSION 0x3098 +#define EGL_MATCH_NATIVE_PIXMAP 0x3041 +#define EGL_OPENGL_ES2_BIT 0x0004 +#define EGL_VG_ALPHA_FORMAT 0x3088 +#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B +#define EGL_VG_ALPHA_FORMAT_PRE 0x308C +#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 +#define EGL_VG_COLORSPACE 0x3087 +#define EGL_VG_COLORSPACE_sRGB 0x3089 +#define EGL_VG_COLORSPACE_LINEAR 0x308A +#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 +#endif /* EGL_VERSION_1_3 */ + +#ifndef EGL_VERSION_1_4 +#define EGL_VERSION_1_4 1 +#define EGL_DEFAULT_DISPLAY EGL_CAST(EGLNativeDisplayType,0) +#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 +#define EGL_MULTISAMPLE_RESOLVE 0x3099 +#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A +#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B +#define EGL_OPENGL_API 0x30A2 +#define EGL_OPENGL_BIT 0x0008 +#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 +typedef EGLContext (EGLAPIENTRYP PFNEGLGETCURRENTCONTEXTPROC) (void); +#if EGL_EGL_PROTOTYPES +EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext (void); +#endif +#endif /* EGL_VERSION_1_4 */ + +#ifndef EGL_VERSION_1_5 +#define EGL_VERSION_1_5 1 +typedef void *EGLSync; +typedef intptr_t EGLAttrib; +typedef khronos_utime_nanoseconds_t EGLTime; +typedef void *EGLImage; +#define EGL_CONTEXT_MAJOR_VERSION 0x3098 +#define EGL_CONTEXT_MINOR_VERSION 0x30FB +#define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD +#define EGL_NO_RESET_NOTIFICATION 0x31BE +#define EGL_LOSE_CONTEXT_ON_RESET 0x31BF +#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001 +#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002 +#define EGL_CONTEXT_OPENGL_DEBUG 0x31B0 +#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1 +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2 +#define EGL_OPENGL_ES3_BIT 0x00000040 +#define EGL_CL_EVENT_HANDLE 0x309C +#define EGL_SYNC_CL_EVENT 0x30FE +#define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0 +#define EGL_SYNC_TYPE 0x30F7 +#define EGL_SYNC_STATUS 0x30F1 +#define EGL_SYNC_CONDITION 0x30F8 +#define EGL_SIGNALED 0x30F2 +#define EGL_UNSIGNALED 0x30F3 +#define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001 +#define EGL_FOREVER 0xFFFFFFFFFFFFFFFFull +#define EGL_TIMEOUT_EXPIRED 0x30F5 +#define EGL_CONDITION_SATISFIED 0x30F6 +#define EGL_NO_SYNC EGL_CAST(EGLSync,0) +#define EGL_SYNC_FENCE 0x30F9 +#define EGL_GL_COLORSPACE 0x309D +#define EGL_GL_COLORSPACE_SRGB 0x3089 +#define EGL_GL_COLORSPACE_LINEAR 0x308A +#define EGL_GL_RENDERBUFFER 0x30B9 +#define EGL_GL_TEXTURE_2D 0x30B1 +#define EGL_GL_TEXTURE_LEVEL 0x30BC +#define EGL_GL_TEXTURE_3D 0x30B2 +#define EGL_GL_TEXTURE_ZOFFSET 0x30BD +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8 +#define EGL_IMAGE_PRESERVED 0x30D2 +#define EGL_NO_IMAGE EGL_CAST(EGLImage,0) +typedef EGLSync (EGLAPIENTRYP PFNEGLCREATESYNCPROC) (EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCPROC) (EGLDisplay dpy, EGLSync sync); +typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCPROC) (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBPROC) (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value); +typedef EGLImage (EGLAPIENTRYP PFNEGLCREATEIMAGEPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEPROC) (EGLDisplay dpy, EGLImage image); +typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYPROC) (EGLenum platform, void *native_display, const EGLAttrib *attrib_list); +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list); +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC) (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLWAITSYNCPROC) (EGLDisplay dpy, EGLSync sync, EGLint flags); +#if EGL_EGL_PROTOTYPES +EGLAPI EGLSync EGLAPIENTRY eglCreateSync (EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroySync (EGLDisplay dpy, EGLSync sync); +EGLAPI EGLint EGLAPIENTRY eglClientWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout); +EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttrib (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value); +EGLAPI EGLImage EGLAPIENTRY eglCreateImage (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImage (EGLDisplay dpy, EGLImage image); +EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplay (EGLenum platform, void *native_display, const EGLAttrib *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurface (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurface (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags); +#endif +#endif /* EGL_VERSION_1_5 */ + +#ifdef __cplusplus +} +#endif + +#endif /* __egl_h_ */ + + +#ifndef __eglext_h_ +#define __eglext_h_ 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright 2013-2020 The Khronos Group Inc. +** SPDX-License-Identifier: Apache-2.0 +** +** This header is generated from the Khronos EGL XML API Registry. +** The current version of the Registry, generator scripts +** used to make the header, and the header can be found at +** http://www.khronos.org/registry/egl +** +** Khronos $Git commit SHA1: 6fb1daea15 $ on $Git commit date: 2022-05-25 09:41:13 -0600 $ +*/ + +/*#include */ + +#define EGL_EGLEXT_VERSION 20220525 + +/* Generated C header for: + * API: egl + * Versions considered: .* + * Versions emitted: _nomatch_^ + * Default extensions included: egl + * Additional extensions included: _nomatch_^ + * Extensions removed: _nomatch_^ + */ + +#ifndef EGL_KHR_cl_event +#define EGL_KHR_cl_event 1 +#define EGL_CL_EVENT_HANDLE_KHR 0x309C +#define EGL_SYNC_CL_EVENT_KHR 0x30FE +#define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF +#endif /* EGL_KHR_cl_event */ + +#ifndef EGL_KHR_cl_event2 +#define EGL_KHR_cl_event2 1 +typedef void *EGLSyncKHR; +typedef intptr_t EGLAttribKHR; +typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNC64KHRPROC) (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSync64KHR (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list); +#endif +#endif /* EGL_KHR_cl_event2 */ + +#ifndef EGL_KHR_client_get_all_proc_addresses +#define EGL_KHR_client_get_all_proc_addresses 1 +#endif /* EGL_KHR_client_get_all_proc_addresses */ + +#ifndef EGL_KHR_config_attribs +#define EGL_KHR_config_attribs 1 +#define EGL_CONFORMANT_KHR 0x3042 +#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020 +#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040 +#endif /* EGL_KHR_config_attribs */ + +#ifndef EGL_KHR_context_flush_control +#define EGL_KHR_context_flush_control 1 +#define EGL_CONTEXT_RELEASE_BEHAVIOR_NONE_KHR 0 +#define EGL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x2097 +#define EGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x2098 +#endif /* EGL_KHR_context_flush_control */ + +#ifndef EGL_KHR_create_context +#define EGL_KHR_create_context 1 +#define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098 +#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB +#define EGL_CONTEXT_FLAGS_KHR 0x30FC +#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD +#define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE +#define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF +#define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001 +#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002 +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004 +#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001 +#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 +#define EGL_OPENGL_ES3_BIT_KHR 0x00000040 +#endif /* EGL_KHR_create_context */ + +#ifndef EGL_KHR_create_context_no_error +#define EGL_KHR_create_context_no_error 1 +#define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3 +#endif /* EGL_KHR_create_context_no_error */ + +#ifndef EGL_KHR_debug +#define EGL_KHR_debug 1 +typedef void *EGLLabelKHR; +typedef void *EGLObjectKHR; +typedef void (EGLAPIENTRY *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message); +#define EGL_OBJECT_THREAD_KHR 0x33B0 +#define EGL_OBJECT_DISPLAY_KHR 0x33B1 +#define EGL_OBJECT_CONTEXT_KHR 0x33B2 +#define EGL_OBJECT_SURFACE_KHR 0x33B3 +#define EGL_OBJECT_IMAGE_KHR 0x33B4 +#define EGL_OBJECT_SYNC_KHR 0x33B5 +#define EGL_OBJECT_STREAM_KHR 0x33B6 +#define EGL_DEBUG_MSG_CRITICAL_KHR 0x33B9 +#define EGL_DEBUG_MSG_ERROR_KHR 0x33BA +#define EGL_DEBUG_MSG_WARN_KHR 0x33BB +#define EGL_DEBUG_MSG_INFO_KHR 0x33BC +#define EGL_DEBUG_CALLBACK_KHR 0x33B8 +typedef EGLint (EGLAPIENTRYP PFNEGLDEBUGMESSAGECONTROLKHRPROC) (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEBUGKHRPROC) (EGLint attribute, EGLAttrib *value); +typedef EGLint (EGLAPIENTRYP PFNEGLLABELOBJECTKHRPROC) (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLint EGLAPIENTRY eglDebugMessageControlKHR (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDebugKHR (EGLint attribute, EGLAttrib *value); +EGLAPI EGLint EGLAPIENTRY eglLabelObjectKHR (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label); +#endif +#endif /* EGL_KHR_debug */ + +#ifndef EGL_KHR_display_reference +#define EGL_KHR_display_reference 1 +#define EGL_TRACK_REFERENCES_KHR 0x3352 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBKHRPROC) (EGLDisplay dpy, EGLint name, EGLAttrib *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribKHR (EGLDisplay dpy, EGLint name, EGLAttrib *value); +#endif +#endif /* EGL_KHR_display_reference */ + +#ifndef EGL_KHR_fence_sync +#define EGL_KHR_fence_sync 1 +typedef khronos_utime_nanoseconds_t EGLTimeKHR; +#ifdef KHRONOS_SUPPORT_INT64 +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0 +#define EGL_SYNC_CONDITION_KHR 0x30F8 +#define EGL_SYNC_FENCE_KHR 0x30F9 +typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync); +typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync); +EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); +EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_KHR_fence_sync */ + +#ifndef EGL_KHR_get_all_proc_addresses +#define EGL_KHR_get_all_proc_addresses 1 +#endif /* EGL_KHR_get_all_proc_addresses */ + +#ifndef EGL_KHR_gl_colorspace +#define EGL_KHR_gl_colorspace 1 +#define EGL_GL_COLORSPACE_KHR 0x309D +#define EGL_GL_COLORSPACE_SRGB_KHR 0x3089 +#define EGL_GL_COLORSPACE_LINEAR_KHR 0x308A +#endif /* EGL_KHR_gl_colorspace */ + +#ifndef EGL_KHR_gl_renderbuffer_image +#define EGL_KHR_gl_renderbuffer_image 1 +#define EGL_GL_RENDERBUFFER_KHR 0x30B9 +#endif /* EGL_KHR_gl_renderbuffer_image */ + +#ifndef EGL_KHR_gl_texture_2D_image +#define EGL_KHR_gl_texture_2D_image 1 +#define EGL_GL_TEXTURE_2D_KHR 0x30B1 +#define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC +#endif /* EGL_KHR_gl_texture_2D_image */ + +#ifndef EGL_KHR_gl_texture_3D_image +#define EGL_KHR_gl_texture_3D_image 1 +#define EGL_GL_TEXTURE_3D_KHR 0x30B2 +#define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD +#endif /* EGL_KHR_gl_texture_3D_image */ + +#ifndef EGL_KHR_gl_texture_cubemap_image +#define EGL_KHR_gl_texture_cubemap_image 1 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8 +#endif /* EGL_KHR_gl_texture_cubemap_image */ + +#ifndef EGL_KHR_image +#define EGL_KHR_image 1 +typedef void *EGLImageKHR; +#define EGL_NATIVE_PIXMAP_KHR 0x30B0 +#define EGL_NO_IMAGE_KHR EGL_CAST(EGLImageKHR,0) +typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image); +#endif +#endif /* EGL_KHR_image */ + +#ifndef EGL_KHR_image_base +#define EGL_KHR_image_base 1 +#define EGL_IMAGE_PRESERVED_KHR 0x30D2 +#endif /* EGL_KHR_image_base */ + +#ifndef EGL_KHR_image_pixmap +#define EGL_KHR_image_pixmap 1 +#endif /* EGL_KHR_image_pixmap */ + +#ifndef EGL_KHR_lock_surface +#define EGL_KHR_lock_surface 1 +#define EGL_READ_SURFACE_BIT_KHR 0x0001 +#define EGL_WRITE_SURFACE_BIT_KHR 0x0002 +#define EGL_LOCK_SURFACE_BIT_KHR 0x0080 +#define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100 +#define EGL_MATCH_FORMAT_KHR 0x3043 +#define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0 +#define EGL_FORMAT_RGB_565_KHR 0x30C1 +#define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2 +#define EGL_FORMAT_RGBA_8888_KHR 0x30C3 +#define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4 +#define EGL_LOCK_USAGE_HINT_KHR 0x30C5 +#define EGL_BITMAP_POINTER_KHR 0x30C6 +#define EGL_BITMAP_PITCH_KHR 0x30C7 +#define EGL_BITMAP_ORIGIN_KHR 0x30C8 +#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9 +#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA +#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB +#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC +#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD +#define EGL_LOWER_LEFT_KHR 0x30CE +#define EGL_UPPER_LEFT_KHR 0x30CF +typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay dpy, EGLSurface surface); +#endif +#endif /* EGL_KHR_lock_surface */ + +#ifndef EGL_KHR_lock_surface2 +#define EGL_KHR_lock_surface2 1 +#define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110 +#endif /* EGL_KHR_lock_surface2 */ + +#ifndef EGL_KHR_lock_surface3 +#define EGL_KHR_lock_surface3 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACE64KHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value); +#endif +#endif /* EGL_KHR_lock_surface3 */ + +#ifndef EGL_KHR_mutable_render_buffer +#define EGL_KHR_mutable_render_buffer 1 +#define EGL_MUTABLE_RENDER_BUFFER_BIT_KHR 0x1000 +#endif /* EGL_KHR_mutable_render_buffer */ + +#ifndef EGL_KHR_no_config_context +#define EGL_KHR_no_config_context 1 +#define EGL_NO_CONFIG_KHR EGL_CAST(EGLConfig,0) +#endif /* EGL_KHR_no_config_context */ + +#ifndef EGL_KHR_partial_update +#define EGL_KHR_partial_update 1 +#define EGL_BUFFER_AGE_KHR 0x313D +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); +#endif +#endif /* EGL_KHR_partial_update */ + +#ifndef EGL_KHR_platform_android +#define EGL_KHR_platform_android 1 +#define EGL_PLATFORM_ANDROID_KHR 0x3141 +#endif /* EGL_KHR_platform_android */ + +#ifndef EGL_KHR_platform_gbm +#define EGL_KHR_platform_gbm 1 +#define EGL_PLATFORM_GBM_KHR 0x31D7 +#endif /* EGL_KHR_platform_gbm */ + +#ifndef EGL_KHR_platform_wayland +#define EGL_KHR_platform_wayland 1 +#define EGL_PLATFORM_WAYLAND_KHR 0x31D8 +#endif /* EGL_KHR_platform_wayland */ + +#ifndef EGL_KHR_platform_x11 +#define EGL_KHR_platform_x11 1 +#define EGL_PLATFORM_X11_KHR 0x31D5 +#define EGL_PLATFORM_X11_SCREEN_KHR 0x31D6 +#endif /* EGL_KHR_platform_x11 */ + +#ifndef EGL_KHR_reusable_sync +#define EGL_KHR_reusable_sync 1 +#ifdef KHRONOS_SUPPORT_INT64 +#define EGL_SYNC_STATUS_KHR 0x30F1 +#define EGL_SIGNALED_KHR 0x30F2 +#define EGL_UNSIGNALED_KHR 0x30F3 +#define EGL_TIMEOUT_EXPIRED_KHR 0x30F5 +#define EGL_CONDITION_SATISFIED_KHR 0x30F6 +#define EGL_SYNC_TYPE_KHR 0x30F7 +#define EGL_SYNC_REUSABLE_KHR 0x30FA +#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001 +#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull +#define EGL_NO_SYNC_KHR EGL_CAST(EGLSyncKHR,0) +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_KHR_reusable_sync */ + +#ifndef EGL_KHR_stream +#define EGL_KHR_stream 1 +typedef void *EGLStreamKHR; +typedef khronos_uint64_t EGLuint64KHR; +#ifdef KHRONOS_SUPPORT_INT64 +#define EGL_NO_STREAM_KHR EGL_CAST(EGLStreamKHR,0) +#define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210 +#define EGL_PRODUCER_FRAME_KHR 0x3212 +#define EGL_CONSUMER_FRAME_KHR 0x3213 +#define EGL_STREAM_STATE_KHR 0x3214 +#define EGL_STREAM_STATE_CREATED_KHR 0x3215 +#define EGL_STREAM_STATE_CONNECTING_KHR 0x3216 +#define EGL_STREAM_STATE_EMPTY_KHR 0x3217 +#define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218 +#define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219 +#define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A +#define EGL_BAD_STREAM_KHR 0x321B +#define EGL_BAD_STATE_KHR 0x321C +typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMKHRPROC) (EGLDisplay dpy, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMU64KHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR (EGLDisplay dpy, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroyStreamKHR (EGLDisplay dpy, EGLStreamKHR stream); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_KHR_stream */ + +#ifndef EGL_KHR_stream_attrib +#define EGL_KHR_stream_attrib 1 +#ifdef KHRONOS_SUPPORT_INT64 +typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMATTRIBKHRPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib *value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamAttribKHR (EGLDisplay dpy, const EGLAttrib *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglSetStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib *value); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_KHR_stream_attrib */ + +#ifndef EGL_KHR_stream_consumer_gltexture +#define EGL_KHR_stream_consumer_gltexture 1 +#ifdef EGL_KHR_stream +#define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR (EGLDisplay dpy, EGLStreamKHR stream); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR (EGLDisplay dpy, EGLStreamKHR stream); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR (EGLDisplay dpy, EGLStreamKHR stream); +#endif +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_consumer_gltexture */ + +#ifndef EGL_KHR_stream_cross_process_fd +#define EGL_KHR_stream_cross_process_fd 1 +typedef int EGLNativeFileDescriptorKHR; +#ifdef EGL_KHR_stream +#define EGL_NO_FILE_DESCRIPTOR_KHR EGL_CAST(EGLNativeFileDescriptorKHR,-1) +typedef EGLNativeFileDescriptorKHR (EGLAPIENTRYP PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLNativeFileDescriptorKHR EGLAPIENTRY eglGetStreamFileDescriptorKHR (EGLDisplay dpy, EGLStreamKHR stream); +EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamFromFileDescriptorKHR (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); +#endif +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_cross_process_fd */ + +#ifndef EGL_KHR_stream_fifo +#define EGL_KHR_stream_fifo 1 +#ifdef EGL_KHR_stream +#define EGL_STREAM_FIFO_LENGTH_KHR 0x31FC +#define EGL_STREAM_TIME_NOW_KHR 0x31FD +#define EGL_STREAM_TIME_CONSUMER_KHR 0x31FE +#define EGL_STREAM_TIME_PRODUCER_KHR 0x31FF +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMTIMEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamTimeKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); +#endif +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_fifo */ + +#ifndef EGL_KHR_stream_producer_aldatalocator +#define EGL_KHR_stream_producer_aldatalocator 1 +#ifdef EGL_KHR_stream +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_producer_aldatalocator */ + +#ifndef EGL_KHR_stream_producer_eglsurface +#define EGL_KHR_stream_producer_eglsurface 1 +#ifdef EGL_KHR_stream +#define EGL_STREAM_BIT_KHR 0x0800 +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); +#endif +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_producer_eglsurface */ + +#ifndef EGL_KHR_surfaceless_context +#define EGL_KHR_surfaceless_context 1 +#endif /* EGL_KHR_surfaceless_context */ + +#ifndef EGL_KHR_swap_buffers_with_damage +#define EGL_KHR_swap_buffers_with_damage 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects); +#endif +#endif /* EGL_KHR_swap_buffers_with_damage */ + +#ifndef EGL_KHR_vg_parent_image +#define EGL_KHR_vg_parent_image 1 +#define EGL_VG_PARENT_IMAGE_KHR 0x30BA +#endif /* EGL_KHR_vg_parent_image */ + +#ifndef EGL_KHR_wait_sync +#define EGL_KHR_wait_sync 1 +typedef EGLint (EGLAPIENTRYP PFNEGLWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); +#endif +#endif /* EGL_KHR_wait_sync */ + +#ifndef EGL_ANDROID_GLES_layers +#define EGL_ANDROID_GLES_layers 1 +#endif /* EGL_ANDROID_GLES_layers */ + +#ifndef EGL_ANDROID_blob_cache +#define EGL_ANDROID_blob_cache 1 +typedef khronos_ssize_t EGLsizeiANDROID; +typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize); +typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize); +typedef void (EGLAPIENTRYP PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncsANDROID (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); +#endif +#endif /* EGL_ANDROID_blob_cache */ + +#ifndef EGL_ANDROID_create_native_client_buffer +#define EGL_ANDROID_create_native_client_buffer 1 +#define EGL_NATIVE_BUFFER_USAGE_ANDROID 0x3143 +#define EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID 0x00000001 +#define EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID 0x00000002 +#define EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID 0x00000004 +typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC) (const EGLint *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLClientBuffer EGLAPIENTRY eglCreateNativeClientBufferANDROID (const EGLint *attrib_list); +#endif +#endif /* EGL_ANDROID_create_native_client_buffer */ + +#ifndef EGL_ANDROID_framebuffer_target +#define EGL_ANDROID_framebuffer_target 1 +#define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147 +#endif /* EGL_ANDROID_framebuffer_target */ + +#ifndef EGL_ANDROID_front_buffer_auto_refresh +#define EGL_ANDROID_front_buffer_auto_refresh 1 +#define EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID 0x314C +#endif /* EGL_ANDROID_front_buffer_auto_refresh */ + +#ifndef EGL_ANDROID_get_frame_timestamps +#define EGL_ANDROID_get_frame_timestamps 1 +typedef khronos_stime_nanoseconds_t EGLnsecsANDROID; +#define EGL_TIMESTAMP_PENDING_ANDROID EGL_CAST(EGLnsecsANDROID,-2) +#define EGL_TIMESTAMP_INVALID_ANDROID EGL_CAST(EGLnsecsANDROID,-1) +#define EGL_TIMESTAMPS_ANDROID 0x3430 +#define EGL_COMPOSITE_DEADLINE_ANDROID 0x3431 +#define EGL_COMPOSITE_INTERVAL_ANDROID 0x3432 +#define EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID 0x3433 +#define EGL_REQUESTED_PRESENT_TIME_ANDROID 0x3434 +#define EGL_RENDERING_COMPLETE_TIME_ANDROID 0x3435 +#define EGL_COMPOSITION_LATCH_TIME_ANDROID 0x3436 +#define EGL_FIRST_COMPOSITION_START_TIME_ANDROID 0x3437 +#define EGL_LAST_COMPOSITION_START_TIME_ANDROID 0x3438 +#define EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID 0x3439 +#define EGL_DISPLAY_PRESENT_TIME_ANDROID 0x343A +#define EGL_DEQUEUE_READY_TIME_ANDROID 0x343B +#define EGL_READS_DONE_TIME_ANDROID 0x343C +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint name); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint *names, EGLnsecsANDROID *values); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETNEXTFRAMEIDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint timestamp); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint *timestamps, EGLnsecsANDROID *values); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglGetCompositorTimingSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint name); +EGLAPI EGLBoolean EGLAPIENTRY eglGetCompositorTimingANDROID (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint *names, EGLnsecsANDROID *values); +EGLAPI EGLBoolean EGLAPIENTRY eglGetNextFrameIdANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId); +EGLAPI EGLBoolean EGLAPIENTRY eglGetFrameTimestampSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint timestamp); +EGLAPI EGLBoolean EGLAPIENTRY eglGetFrameTimestampsANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint *timestamps, EGLnsecsANDROID *values); +#endif +#endif /* EGL_ANDROID_get_frame_timestamps */ + +#ifndef EGL_ANDROID_get_native_client_buffer +#define EGL_ANDROID_get_native_client_buffer 1 +struct AHardwareBuffer; +typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC) (const struct AHardwareBuffer *buffer); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLClientBuffer EGLAPIENTRY eglGetNativeClientBufferANDROID (const struct AHardwareBuffer *buffer); +#endif +#endif /* EGL_ANDROID_get_native_client_buffer */ + +#ifndef EGL_ANDROID_image_native_buffer +#define EGL_ANDROID_image_native_buffer 1 +#define EGL_NATIVE_BUFFER_ANDROID 0x3140 +#endif /* EGL_ANDROID_image_native_buffer */ + +#ifndef EGL_ANDROID_native_fence_sync +#define EGL_ANDROID_native_fence_sync 1 +#define EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144 +#define EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145 +#define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146 +#define EGL_NO_NATIVE_FENCE_FD_ANDROID -1 +typedef EGLint (EGLAPIENTRYP PFNEGLDUPNATIVEFENCEFDANDROIDPROC) (EGLDisplay dpy, EGLSyncKHR sync); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR sync); +#endif +#endif /* EGL_ANDROID_native_fence_sync */ + +#ifndef EGL_ANDROID_presentation_time +#define EGL_ANDROID_presentation_time 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLPRESENTATIONTIMEANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglPresentationTimeANDROID (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time); +#endif +#endif /* EGL_ANDROID_presentation_time */ + +#ifndef EGL_ANDROID_recordable +#define EGL_ANDROID_recordable 1 +#define EGL_RECORDABLE_ANDROID 0x3142 +#endif /* EGL_ANDROID_recordable */ + +#ifndef EGL_ANGLE_d3d_share_handle_client_buffer +#define EGL_ANGLE_d3d_share_handle_client_buffer 1 +#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200 +#endif /* EGL_ANGLE_d3d_share_handle_client_buffer */ + +#ifndef EGL_ANGLE_device_d3d +#define EGL_ANGLE_device_d3d 1 +#define EGL_D3D9_DEVICE_ANGLE 0x33A0 +#define EGL_D3D11_DEVICE_ANGLE 0x33A1 +#endif /* EGL_ANGLE_device_d3d */ + +#ifndef EGL_ANGLE_query_surface_pointer +#define EGL_ANGLE_query_surface_pointer 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); +#endif +#endif /* EGL_ANGLE_query_surface_pointer */ + +#ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle +#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1 +#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */ + +#ifndef EGL_ANGLE_sync_control_rate +#define EGL_ANGLE_sync_control_rate 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETMSCRATEANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *numerator, EGLint *denominator); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglGetMscRateANGLE (EGLDisplay dpy, EGLSurface surface, EGLint *numerator, EGLint *denominator); +#endif +#endif /* EGL_ANGLE_sync_control_rate */ + +#ifndef EGL_ANGLE_window_fixed_size +#define EGL_ANGLE_window_fixed_size 1 +#define EGL_FIXED_SIZE_ANGLE 0x3201 +#endif /* EGL_ANGLE_window_fixed_size */ + +#ifndef EGL_ARM_image_format +#define EGL_ARM_image_format 1 +#define EGL_COLOR_COMPONENT_TYPE_UNSIGNED_INTEGER_ARM 0x3287 +#define EGL_COLOR_COMPONENT_TYPE_INTEGER_ARM 0x3288 +#endif /* EGL_ARM_image_format */ + +#ifndef EGL_ARM_implicit_external_sync +#define EGL_ARM_implicit_external_sync 1 +#define EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM 0x328A +#endif /* EGL_ARM_implicit_external_sync */ + +#ifndef EGL_ARM_pixmap_multisample_discard +#define EGL_ARM_pixmap_multisample_discard 1 +#define EGL_DISCARD_SAMPLES_ARM 0x3286 +#endif /* EGL_ARM_pixmap_multisample_discard */ + +#ifndef EGL_EXT_bind_to_front +#define EGL_EXT_bind_to_front 1 +#define EGL_FRONT_BUFFER_EXT 0x3464 +#endif /* EGL_EXT_bind_to_front */ + +#ifndef EGL_EXT_buffer_age +#define EGL_EXT_buffer_age 1 +#define EGL_BUFFER_AGE_EXT 0x313D +#endif /* EGL_EXT_buffer_age */ + +#ifndef EGL_EXT_client_extensions +#define EGL_EXT_client_extensions 1 +#endif /* EGL_EXT_client_extensions */ + +#ifndef EGL_EXT_client_sync +#define EGL_EXT_client_sync 1 +#define EGL_SYNC_CLIENT_EXT 0x3364 +#define EGL_SYNC_CLIENT_SIGNAL_EXT 0x3365 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLCLIENTSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglClientSignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); +#endif +#endif /* EGL_EXT_client_sync */ + +#ifndef EGL_EXT_compositor +#define EGL_EXT_compositor 1 +#define EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT 0x3460 +#define EGL_EXTERNAL_REF_ID_EXT 0x3461 +#define EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT 0x3462 +#define EGL_COMPOSITOR_KEEP_NEWEST_FRAME_EXT 0x3463 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC) (const EGLint *external_ref_ids, EGLint num_entries); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC) (EGLint external_ref_id, const EGLint *context_attributes, EGLint num_entries); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC) (EGLint external_ref_id, const EGLint *external_win_ids, EGLint num_entries); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC) (EGLint external_win_id, const EGLint *window_attributes, EGLint num_entries); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC) (EGLint external_win_id); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSETSIZEEXTPROC) (EGLint external_win_id, EGLint width, EGLint height); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLCOMPOSITORSWAPPOLICYEXTPROC) (EGLint external_win_id, EGLint policy); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetContextListEXT (const EGLint *external_ref_ids, EGLint num_entries); +EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetContextAttributesEXT (EGLint external_ref_id, const EGLint *context_attributes, EGLint num_entries); +EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetWindowListEXT (EGLint external_ref_id, const EGLint *external_win_ids, EGLint num_entries); +EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetWindowAttributesEXT (EGLint external_win_id, const EGLint *window_attributes, EGLint num_entries); +EGLAPI EGLBoolean EGLAPIENTRY eglCompositorBindTexWindowEXT (EGLint external_win_id); +EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSetSizeEXT (EGLint external_win_id, EGLint width, EGLint height); +EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSwapPolicyEXT (EGLint external_win_id, EGLint policy); +#endif +#endif /* EGL_EXT_compositor */ + +#ifndef EGL_EXT_config_select_group +#define EGL_EXT_config_select_group 1 +#define EGL_CONFIG_SELECT_GROUP_EXT 0x34C0 +#endif /* EGL_EXT_config_select_group */ + +#ifndef EGL_EXT_create_context_robustness +#define EGL_EXT_create_context_robustness 1 +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138 +#define EGL_NO_RESET_NOTIFICATION_EXT 0x31BE +#define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF +#endif /* EGL_EXT_create_context_robustness */ + +#ifndef EGL_EXT_device_base +#define EGL_EXT_device_base 1 +typedef void *EGLDeviceEXT; +#define EGL_NO_DEVICE_EXT EGL_CAST(EGLDeviceEXT,0) +#define EGL_BAD_DEVICE_EXT 0x322B +#define EGL_DEVICE_EXT 0x322C +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); +typedef const char *(EGLAPIENTRYP PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBEXTPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceAttribEXT (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); +EGLAPI const char *EGLAPIENTRY eglQueryDeviceStringEXT (EGLDeviceEXT device, EGLint name); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDevicesEXT (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); +#endif +#endif /* EGL_EXT_device_base */ + +#ifndef EGL_EXT_device_drm +#define EGL_EXT_device_drm 1 +#define EGL_DRM_DEVICE_FILE_EXT 0x3233 +#define EGL_DRM_MASTER_FD_EXT 0x333C +#endif /* EGL_EXT_device_drm */ + +#ifndef EGL_EXT_device_drm_render_node +#define EGL_EXT_device_drm_render_node 1 +#define EGL_DRM_RENDER_NODE_FILE_EXT 0x3377 +#endif /* EGL_EXT_device_drm_render_node */ + +#ifndef EGL_EXT_device_enumeration +#define EGL_EXT_device_enumeration 1 +#endif /* EGL_EXT_device_enumeration */ + +#ifndef EGL_EXT_device_openwf +#define EGL_EXT_device_openwf 1 +#define EGL_OPENWF_DEVICE_ID_EXT 0x3237 +#define EGL_OPENWF_DEVICE_EXT 0x333D +#endif /* EGL_EXT_device_openwf */ + +#ifndef EGL_EXT_device_persistent_id +#define EGL_EXT_device_persistent_id 1 +#define EGL_DEVICE_UUID_EXT 0x335C +#define EGL_DRIVER_UUID_EXT 0x335D +#define EGL_DRIVER_NAME_EXT 0x335E +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEBINARYEXTPROC) (EGLDeviceEXT device, EGLint name, EGLint max_size, void *value, EGLint *size); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceBinaryEXT (EGLDeviceEXT device, EGLint name, EGLint max_size, void *value, EGLint *size); +#endif +#endif /* EGL_EXT_device_persistent_id */ + +#ifndef EGL_EXT_device_query +#define EGL_EXT_device_query 1 +#endif /* EGL_EXT_device_query */ + +#ifndef EGL_EXT_device_query_name +#define EGL_EXT_device_query_name 1 +#define EGL_RENDERER_EXT 0x335F +#endif /* EGL_EXT_device_query_name */ + +#ifndef EGL_EXT_explicit_device +#define EGL_EXT_explicit_device 1 +#endif /* EGL_EXT_explicit_device */ + +#ifndef EGL_EXT_gl_colorspace_bt2020_linear +#define EGL_EXT_gl_colorspace_bt2020_linear 1 +#define EGL_GL_COLORSPACE_BT2020_LINEAR_EXT 0x333F +#endif /* EGL_EXT_gl_colorspace_bt2020_linear */ + +#ifndef EGL_EXT_gl_colorspace_bt2020_pq +#define EGL_EXT_gl_colorspace_bt2020_pq 1 +#define EGL_GL_COLORSPACE_BT2020_PQ_EXT 0x3340 +#endif /* EGL_EXT_gl_colorspace_bt2020_pq */ + +#ifndef EGL_EXT_gl_colorspace_display_p3 +#define EGL_EXT_gl_colorspace_display_p3 1 +#define EGL_GL_COLORSPACE_DISPLAY_P3_EXT 0x3363 +#endif /* EGL_EXT_gl_colorspace_display_p3 */ + +#ifndef EGL_EXT_gl_colorspace_display_p3_linear +#define EGL_EXT_gl_colorspace_display_p3_linear 1 +#define EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT 0x3362 +#endif /* EGL_EXT_gl_colorspace_display_p3_linear */ + +#ifndef EGL_EXT_gl_colorspace_display_p3_passthrough +#define EGL_EXT_gl_colorspace_display_p3_passthrough 1 +#define EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT 0x3490 +#endif /* EGL_EXT_gl_colorspace_display_p3_passthrough */ + +#ifndef EGL_EXT_gl_colorspace_scrgb +#define EGL_EXT_gl_colorspace_scrgb 1 +#define EGL_GL_COLORSPACE_SCRGB_EXT 0x3351 +#endif /* EGL_EXT_gl_colorspace_scrgb */ + +#ifndef EGL_EXT_gl_colorspace_scrgb_linear +#define EGL_EXT_gl_colorspace_scrgb_linear 1 +#define EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT 0x3350 +#endif /* EGL_EXT_gl_colorspace_scrgb_linear */ + +#ifndef EGL_EXT_image_dma_buf_import +#define EGL_EXT_image_dma_buf_import 1 +#define EGL_LINUX_DMA_BUF_EXT 0x3270 +#define EGL_LINUX_DRM_FOURCC_EXT 0x3271 +#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272 +#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273 +#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274 +#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275 +#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276 +#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277 +#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278 +#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279 +#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A +#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B +#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C +#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D +#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E +#define EGL_ITU_REC601_EXT 0x327F +#define EGL_ITU_REC709_EXT 0x3280 +#define EGL_ITU_REC2020_EXT 0x3281 +#define EGL_YUV_FULL_RANGE_EXT 0x3282 +#define EGL_YUV_NARROW_RANGE_EXT 0x3283 +#define EGL_YUV_CHROMA_SITING_0_EXT 0x3284 +#define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285 +#endif /* EGL_EXT_image_dma_buf_import */ + +#ifndef EGL_EXT_image_dma_buf_import_modifiers +#define EGL_EXT_image_dma_buf_import_modifiers 1 +#define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440 +#define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441 +#define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442 +#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443 +#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444 +#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445 +#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446 +#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447 +#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448 +#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449 +#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDMABUFFORMATSEXTPROC) (EGLDisplay dpy, EGLint max_formats, EGLint *formats, EGLint *num_formats); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDMABUFMODIFIERSEXTPROC) (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR *modifiers, EGLBoolean *external_only, EGLint *num_modifiers); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDmaBufFormatsEXT (EGLDisplay dpy, EGLint max_formats, EGLint *formats, EGLint *num_formats); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDmaBufModifiersEXT (EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR *modifiers, EGLBoolean *external_only, EGLint *num_modifiers); +#endif +#endif /* EGL_EXT_image_dma_buf_import_modifiers */ + +#ifndef EGL_EXT_image_gl_colorspace +#define EGL_EXT_image_gl_colorspace 1 +#define EGL_GL_COLORSPACE_DEFAULT_EXT 0x314D +#endif /* EGL_EXT_image_gl_colorspace */ + +#ifndef EGL_EXT_image_implicit_sync_control +#define EGL_EXT_image_implicit_sync_control 1 +#define EGL_IMPORT_SYNC_TYPE_EXT 0x3470 +#define EGL_IMPORT_IMPLICIT_SYNC_EXT 0x3471 +#define EGL_IMPORT_EXPLICIT_SYNC_EXT 0x3472 +#endif /* EGL_EXT_image_implicit_sync_control */ + +#ifndef EGL_EXT_multiview_window +#define EGL_EXT_multiview_window 1 +#define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134 +#endif /* EGL_EXT_multiview_window */ + +#ifndef EGL_EXT_output_base +#define EGL_EXT_output_base 1 +typedef void *EGLOutputLayerEXT; +typedef void *EGLOutputPortEXT; +#define EGL_NO_OUTPUT_LAYER_EXT EGL_CAST(EGLOutputLayerEXT,0) +#define EGL_NO_OUTPUT_PORT_EXT EGL_CAST(EGLOutputPortEXT,0) +#define EGL_BAD_OUTPUT_LAYER_EXT 0x322D +#define EGL_BAD_OUTPUT_PORT_EXT 0x322E +#define EGL_SWAP_INTERVAL_EXT 0x322F +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value); +typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value); +typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputLayersEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers); +EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputPortsEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports); +EGLAPI EGLBoolean EGLAPIENTRY eglOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value); +EGLAPI const char *EGLAPIENTRY eglQueryOutputLayerStringEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); +EGLAPI EGLBoolean EGLAPIENTRY eglOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value); +EGLAPI const char *EGLAPIENTRY eglQueryOutputPortStringEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); +#endif +#endif /* EGL_EXT_output_base */ + +#ifndef EGL_EXT_output_drm +#define EGL_EXT_output_drm 1 +#define EGL_DRM_CRTC_EXT 0x3234 +#define EGL_DRM_PLANE_EXT 0x3235 +#define EGL_DRM_CONNECTOR_EXT 0x3236 +#endif /* EGL_EXT_output_drm */ + +#ifndef EGL_EXT_output_openwf +#define EGL_EXT_output_openwf 1 +#define EGL_OPENWF_PIPELINE_ID_EXT 0x3238 +#define EGL_OPENWF_PORT_ID_EXT 0x3239 +#endif /* EGL_EXT_output_openwf */ + +#ifndef EGL_EXT_pixel_format_float +#define EGL_EXT_pixel_format_float 1 +#define EGL_COLOR_COMPONENT_TYPE_EXT 0x3339 +#define EGL_COLOR_COMPONENT_TYPE_FIXED_EXT 0x333A +#define EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B +#endif /* EGL_EXT_pixel_format_float */ + +#ifndef EGL_EXT_platform_base +#define EGL_EXT_platform_base 1 +typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list); +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list); +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplayEXT (EGLenum platform, void *native_display, const EGLint *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list); +#endif +#endif /* EGL_EXT_platform_base */ + +#ifndef EGL_EXT_platform_device +#define EGL_EXT_platform_device 1 +#define EGL_PLATFORM_DEVICE_EXT 0x313F +#endif /* EGL_EXT_platform_device */ + +#ifndef EGL_EXT_platform_wayland +#define EGL_EXT_platform_wayland 1 +#define EGL_PLATFORM_WAYLAND_EXT 0x31D8 +#endif /* EGL_EXT_platform_wayland */ + +#ifndef EGL_EXT_platform_x11 +#define EGL_EXT_platform_x11 1 +#define EGL_PLATFORM_X11_EXT 0x31D5 +#define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6 +#endif /* EGL_EXT_platform_x11 */ + +#ifndef EGL_EXT_platform_xcb +#define EGL_EXT_platform_xcb 1 +#define EGL_PLATFORM_XCB_EXT 0x31DC +#define EGL_PLATFORM_XCB_SCREEN_EXT 0x31DE +#endif /* EGL_EXT_platform_xcb */ + +#ifndef EGL_EXT_present_opaque +#define EGL_EXT_present_opaque 1 +#define EGL_PRESENT_OPAQUE_EXT 0x31DF +#endif /* EGL_EXT_present_opaque */ + +#ifndef EGL_EXT_protected_content +#define EGL_EXT_protected_content 1 +#define EGL_PROTECTED_CONTENT_EXT 0x32C0 +#endif /* EGL_EXT_protected_content */ + +#ifndef EGL_EXT_protected_surface +#define EGL_EXT_protected_surface 1 +#endif /* EGL_EXT_protected_surface */ + +#ifndef EGL_EXT_stream_consumer_egloutput +#define EGL_EXT_stream_consumer_egloutput 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerOutputEXT (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); +#endif +#endif /* EGL_EXT_stream_consumer_egloutput */ + +#ifndef EGL_EXT_surface_CTA861_3_metadata +#define EGL_EXT_surface_CTA861_3_metadata 1 +#define EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT 0x3360 +#define EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT 0x3361 +#endif /* EGL_EXT_surface_CTA861_3_metadata */ + +#ifndef EGL_EXT_surface_SMPTE2086_metadata +#define EGL_EXT_surface_SMPTE2086_metadata 1 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT 0x3341 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT 0x3342 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT 0x3343 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT 0x3344 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT 0x3345 +#define EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT 0x3346 +#define EGL_SMPTE2086_WHITE_POINT_X_EXT 0x3347 +#define EGL_SMPTE2086_WHITE_POINT_Y_EXT 0x3348 +#define EGL_SMPTE2086_MAX_LUMINANCE_EXT 0x3349 +#define EGL_SMPTE2086_MIN_LUMINANCE_EXT 0x334A +#define EGL_METADATA_SCALING_EXT 50000 +#endif /* EGL_EXT_surface_SMPTE2086_metadata */ + +#ifndef EGL_EXT_surface_compression +#define EGL_EXT_surface_compression 1 +#define EGL_SURFACE_COMPRESSION_EXT 0x34B0 +#define EGL_SURFACE_COMPRESSION_PLANE1_EXT 0x328E +#define EGL_SURFACE_COMPRESSION_PLANE2_EXT 0x328F +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT 0x34B1 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT 0x34B2 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT 0x34B4 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT 0x34B5 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT 0x34B6 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT 0x34B7 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT 0x34B8 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT 0x34B9 +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT 0x34BA +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT 0x34BB +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT 0x34BC +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT 0x34BD +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT 0x34BE +#define EGL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT 0x34BF +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSUPPORTEDCOMPRESSIONRATESEXTPROC) (EGLDisplay dpy, EGLConfig config, const EGLAttrib *attrib_list, EGLint *rates, EGLint rate_size, EGLint *num_rates); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQuerySupportedCompressionRatesEXT (EGLDisplay dpy, EGLConfig config, const EGLAttrib *attrib_list, EGLint *rates, EGLint rate_size, EGLint *num_rates); +#endif +#endif /* EGL_EXT_surface_compression */ + +#ifndef EGL_EXT_swap_buffers_with_damage +#define EGL_EXT_swap_buffers_with_damage 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT (EGLDisplay dpy, EGLSurface surface, const EGLint *rects, EGLint n_rects); +#endif +#endif /* EGL_EXT_swap_buffers_with_damage */ + +#ifndef EGL_EXT_sync_reuse +#define EGL_EXT_sync_reuse 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglUnsignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list); +#endif +#endif /* EGL_EXT_sync_reuse */ + +#ifndef EGL_EXT_yuv_surface +#define EGL_EXT_yuv_surface 1 +#define EGL_YUV_ORDER_EXT 0x3301 +#define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311 +#define EGL_YUV_SUBSAMPLE_EXT 0x3312 +#define EGL_YUV_DEPTH_RANGE_EXT 0x3317 +#define EGL_YUV_CSC_STANDARD_EXT 0x330A +#define EGL_YUV_PLANE_BPP_EXT 0x331A +#define EGL_YUV_BUFFER_EXT 0x3300 +#define EGL_YUV_ORDER_YUV_EXT 0x3302 +#define EGL_YUV_ORDER_YVU_EXT 0x3303 +#define EGL_YUV_ORDER_YUYV_EXT 0x3304 +#define EGL_YUV_ORDER_UYVY_EXT 0x3305 +#define EGL_YUV_ORDER_YVYU_EXT 0x3306 +#define EGL_YUV_ORDER_VYUY_EXT 0x3307 +#define EGL_YUV_ORDER_AYUV_EXT 0x3308 +#define EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313 +#define EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314 +#define EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315 +#define EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318 +#define EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319 +#define EGL_YUV_CSC_STANDARD_601_EXT 0x330B +#define EGL_YUV_CSC_STANDARD_709_EXT 0x330C +#define EGL_YUV_CSC_STANDARD_2020_EXT 0x330D +#define EGL_YUV_PLANE_BPP_0_EXT 0x331B +#define EGL_YUV_PLANE_BPP_8_EXT 0x331C +#define EGL_YUV_PLANE_BPP_10_EXT 0x331D +#endif /* EGL_EXT_yuv_surface */ + +#ifndef EGL_HI_clientpixmap +#define EGL_HI_clientpixmap 1 +struct EGLClientPixmapHI { + void *pData; + EGLint iWidth; + EGLint iHeight; + EGLint iStride; +}; +#define EGL_CLIENT_PIXMAP_POINTER_HI 0x8F74 +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap); +#endif +#endif /* EGL_HI_clientpixmap */ + +#ifndef EGL_HI_colorformats +#define EGL_HI_colorformats 1 +#define EGL_COLOR_FORMAT_HI 0x8F70 +#define EGL_COLOR_RGB_HI 0x8F71 +#define EGL_COLOR_RGBA_HI 0x8F72 +#define EGL_COLOR_ARGB_HI 0x8F73 +#endif /* EGL_HI_colorformats */ + +#ifndef EGL_IMG_context_priority +#define EGL_IMG_context_priority 1 +#define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100 +#define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101 +#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102 +#define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103 +#endif /* EGL_IMG_context_priority */ + +#ifndef EGL_IMG_image_plane_attribs +#define EGL_IMG_image_plane_attribs 1 +#define EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG 0x3105 +#define EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG 0x3106 +#endif /* EGL_IMG_image_plane_attribs */ + +#ifndef EGL_MESA_drm_image +#define EGL_MESA_drm_image 1 +#define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0 +#define EGL_DRM_BUFFER_USE_MESA 0x31D1 +#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2 +#define EGL_DRM_BUFFER_MESA 0x31D3 +#define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4 +#define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001 +#define EGL_DRM_BUFFER_USE_SHARE_MESA 0x00000002 +#define EGL_DRM_BUFFER_USE_CURSOR_MESA 0x00000004 +typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA (EGLDisplay dpy, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); +#endif +#endif /* EGL_MESA_drm_image */ + +#ifndef EGL_MESA_image_dma_buf_export +#define EGL_MESA_image_dma_buf_export 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers); +EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); +#endif +#endif /* EGL_MESA_image_dma_buf_export */ + +#ifndef EGL_MESA_platform_gbm +#define EGL_MESA_platform_gbm 1 +#define EGL_PLATFORM_GBM_MESA 0x31D7 +#endif /* EGL_MESA_platform_gbm */ + +#ifndef EGL_MESA_platform_surfaceless +#define EGL_MESA_platform_surfaceless 1 +#define EGL_PLATFORM_SURFACELESS_MESA 0x31DD +#endif /* EGL_MESA_platform_surfaceless */ + +#ifndef EGL_MESA_query_driver +#define EGL_MESA_query_driver 1 +typedef char *(EGLAPIENTRYP PFNEGLGETDISPLAYDRIVERCONFIGPROC) (EGLDisplay dpy); +typedef const char *(EGLAPIENTRYP PFNEGLGETDISPLAYDRIVERNAMEPROC) (EGLDisplay dpy); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI char *EGLAPIENTRY eglGetDisplayDriverConfig (EGLDisplay dpy); +EGLAPI const char *EGLAPIENTRY eglGetDisplayDriverName (EGLDisplay dpy); +#endif +#endif /* EGL_MESA_query_driver */ + +#ifndef EGL_NOK_swap_region +#define EGL_NOK_swap_region 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); +#endif +#endif /* EGL_NOK_swap_region */ + +#ifndef EGL_NOK_swap_region2 +#define EGL_NOK_swap_region2 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGION2NOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); +#endif +#endif /* EGL_NOK_swap_region2 */ + +#ifndef EGL_NOK_texture_from_pixmap +#define EGL_NOK_texture_from_pixmap 1 +#define EGL_Y_INVERTED_NOK 0x307F +#endif /* EGL_NOK_texture_from_pixmap */ + +#ifndef EGL_NV_3dvision_surface +#define EGL_NV_3dvision_surface 1 +#define EGL_AUTO_STEREO_NV 0x3136 +#endif /* EGL_NV_3dvision_surface */ + +#ifndef EGL_NV_context_priority_realtime +#define EGL_NV_context_priority_realtime 1 +#define EGL_CONTEXT_PRIORITY_REALTIME_NV 0x3357 +#endif /* EGL_NV_context_priority_realtime */ + +#ifndef EGL_NV_coverage_sample +#define EGL_NV_coverage_sample 1 +#define EGL_COVERAGE_BUFFERS_NV 0x30E0 +#define EGL_COVERAGE_SAMPLES_NV 0x30E1 +#endif /* EGL_NV_coverage_sample */ + +#ifndef EGL_NV_coverage_sample_resolve +#define EGL_NV_coverage_sample_resolve 1 +#define EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131 +#define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132 +#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133 +#endif /* EGL_NV_coverage_sample_resolve */ + +#ifndef EGL_NV_cuda_event +#define EGL_NV_cuda_event 1 +#define EGL_CUDA_EVENT_HANDLE_NV 0x323B +#define EGL_SYNC_CUDA_EVENT_NV 0x323C +#define EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D +#endif /* EGL_NV_cuda_event */ + +#ifndef EGL_NV_depth_nonlinear +#define EGL_NV_depth_nonlinear 1 +#define EGL_DEPTH_ENCODING_NV 0x30E2 +#define EGL_DEPTH_ENCODING_NONE_NV 0 +#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3 +#endif /* EGL_NV_depth_nonlinear */ + +#ifndef EGL_NV_device_cuda +#define EGL_NV_device_cuda 1 +#define EGL_CUDA_DEVICE_NV 0x323A +#endif /* EGL_NV_device_cuda */ + +#ifndef EGL_NV_native_query +#define EGL_NV_native_query 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType *display_id); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEWINDOWNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEPIXMAPNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeDisplayNV (EGLDisplay dpy, EGLNativeDisplayType *display_id); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeWindowNV (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativePixmapNV (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap); +#endif +#endif /* EGL_NV_native_query */ + +#ifndef EGL_NV_post_convert_rounding +#define EGL_NV_post_convert_rounding 1 +#endif /* EGL_NV_post_convert_rounding */ + +#ifndef EGL_NV_post_sub_buffer +#define EGL_NV_post_sub_buffer 1 +#define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE +typedef EGLBoolean (EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); +#endif +#endif /* EGL_NV_post_sub_buffer */ + +#ifndef EGL_NV_quadruple_buffer +#define EGL_NV_quadruple_buffer 1 +#define EGL_QUADRUPLE_BUFFER_NV 0x3231 +#endif /* EGL_NV_quadruple_buffer */ + +#ifndef EGL_NV_robustness_video_memory_purge +#define EGL_NV_robustness_video_memory_purge 1 +#define EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x334C +#endif /* EGL_NV_robustness_video_memory_purge */ + +#ifndef EGL_NV_stream_consumer_eglimage +#define EGL_NV_stream_consumer_eglimage 1 +#define EGL_STREAM_CONSUMER_IMAGE_NV 0x3373 +#define EGL_STREAM_IMAGE_ADD_NV 0x3374 +#define EGL_STREAM_IMAGE_REMOVE_NV 0x3375 +#define EGL_STREAM_IMAGE_AVAILABLE_NV 0x3376 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint num_modifiers, const EGLuint64KHR *modifiers, const EGLAttrib *attrib_list); +typedef EGLint (EGLAPIENTRYP PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLTime timeout, EGLenum *event, EGLAttrib *aux); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMACQUIREIMAGENVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLImage *pImage, EGLSync sync); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMRELEASEIMAGENVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLImage image, EGLSync sync); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglStreamImageConsumerConnectNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint num_modifiers, const EGLuint64KHR *modifiers, const EGLAttrib *attrib_list); +EGLAPI EGLint EGLAPIENTRY eglQueryStreamConsumerEventNV (EGLDisplay dpy, EGLStreamKHR stream, EGLTime timeout, EGLenum *event, EGLAttrib *aux); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamAcquireImageNV (EGLDisplay dpy, EGLStreamKHR stream, EGLImage *pImage, EGLSync sync); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamReleaseImageNV (EGLDisplay dpy, EGLStreamKHR stream, EGLImage image, EGLSync sync); +#endif +#endif /* EGL_NV_stream_consumer_eglimage */ + +#ifndef EGL_NV_stream_consumer_gltexture_yuv +#define EGL_NV_stream_consumer_gltexture_yuv 1 +#define EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C +#define EGL_YUV_PLANE1_TEXTURE_UNIT_NV 0x332D +#define EGL_YUV_PLANE2_TEXTURE_UNIT_NV 0x332E +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalAttribsNV (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list); +#endif +#endif /* EGL_NV_stream_consumer_gltexture_yuv */ + +#ifndef EGL_NV_stream_cross_display +#define EGL_NV_stream_cross_display 1 +#define EGL_STREAM_CROSS_DISPLAY_NV 0x334E +#endif /* EGL_NV_stream_cross_display */ + +#ifndef EGL_NV_stream_cross_object +#define EGL_NV_stream_cross_object 1 +#define EGL_STREAM_CROSS_OBJECT_NV 0x334D +#endif /* EGL_NV_stream_cross_object */ + +#ifndef EGL_NV_stream_cross_partition +#define EGL_NV_stream_cross_partition 1 +#define EGL_STREAM_CROSS_PARTITION_NV 0x323F +#endif /* EGL_NV_stream_cross_partition */ + +#ifndef EGL_NV_stream_cross_process +#define EGL_NV_stream_cross_process 1 +#define EGL_STREAM_CROSS_PROCESS_NV 0x3245 +#endif /* EGL_NV_stream_cross_process */ + +#ifndef EGL_NV_stream_cross_system +#define EGL_NV_stream_cross_system 1 +#define EGL_STREAM_CROSS_SYSTEM_NV 0x334F +#endif /* EGL_NV_stream_cross_system */ + +#ifndef EGL_NV_stream_dma +#define EGL_NV_stream_dma 1 +#define EGL_STREAM_DMA_NV 0x3371 +#define EGL_STREAM_DMA_SERVER_NV 0x3372 +#endif /* EGL_NV_stream_dma */ + +#ifndef EGL_NV_stream_fifo_next +#define EGL_NV_stream_fifo_next 1 +#define EGL_PENDING_FRAME_NV 0x3329 +#define EGL_STREAM_TIME_PENDING_NV 0x332A +#endif /* EGL_NV_stream_fifo_next */ + +#ifndef EGL_NV_stream_fifo_synchronous +#define EGL_NV_stream_fifo_synchronous 1 +#define EGL_STREAM_FIFO_SYNCHRONOUS_NV 0x3336 +#endif /* EGL_NV_stream_fifo_synchronous */ + +#ifndef EGL_NV_stream_flush +#define EGL_NV_stream_flush 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMFLUSHNVPROC) (EGLDisplay dpy, EGLStreamKHR stream); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglStreamFlushNV (EGLDisplay dpy, EGLStreamKHR stream); +#endif +#endif /* EGL_NV_stream_flush */ + +#ifndef EGL_NV_stream_frame_limits +#define EGL_NV_stream_frame_limits 1 +#define EGL_PRODUCER_MAX_FRAME_HINT_NV 0x3337 +#define EGL_CONSUMER_MAX_FRAME_HINT_NV 0x3338 +#endif /* EGL_NV_stream_frame_limits */ + +#ifndef EGL_NV_stream_metadata +#define EGL_NV_stream_metadata 1 +#define EGL_MAX_STREAM_METADATA_BLOCKS_NV 0x3250 +#define EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV 0x3251 +#define EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV 0x3252 +#define EGL_PRODUCER_METADATA_NV 0x3253 +#define EGL_CONSUMER_METADATA_NV 0x3254 +#define EGL_PENDING_METADATA_NV 0x3328 +#define EGL_METADATA0_SIZE_NV 0x3255 +#define EGL_METADATA1_SIZE_NV 0x3256 +#define EGL_METADATA2_SIZE_NV 0x3257 +#define EGL_METADATA3_SIZE_NV 0x3258 +#define EGL_METADATA0_TYPE_NV 0x3259 +#define EGL_METADATA1_TYPE_NV 0x325A +#define EGL_METADATA2_TYPE_NV 0x325B +#define EGL_METADATA3_TYPE_NV 0x325C +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBNVPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribNV (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); +EGLAPI EGLBoolean EGLAPIENTRY eglSetStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data); +#endif +#endif /* EGL_NV_stream_metadata */ + +#ifndef EGL_NV_stream_origin +#define EGL_NV_stream_origin 1 +#define EGL_STREAM_FRAME_ORIGIN_X_NV 0x3366 +#define EGL_STREAM_FRAME_ORIGIN_Y_NV 0x3367 +#define EGL_STREAM_FRAME_MAJOR_AXIS_NV 0x3368 +#define EGL_CONSUMER_AUTO_ORIENTATION_NV 0x3369 +#define EGL_PRODUCER_AUTO_ORIENTATION_NV 0x336A +#define EGL_LEFT_NV 0x336B +#define EGL_RIGHT_NV 0x336C +#define EGL_TOP_NV 0x336D +#define EGL_BOTTOM_NV 0x336E +#define EGL_X_AXIS_NV 0x336F +#define EGL_Y_AXIS_NV 0x3370 +#endif /* EGL_NV_stream_origin */ + +#ifndef EGL_NV_stream_remote +#define EGL_NV_stream_remote 1 +#define EGL_STREAM_STATE_INITIALIZING_NV 0x3240 +#define EGL_STREAM_TYPE_NV 0x3241 +#define EGL_STREAM_PROTOCOL_NV 0x3242 +#define EGL_STREAM_ENDPOINT_NV 0x3243 +#define EGL_STREAM_LOCAL_NV 0x3244 +#define EGL_STREAM_PRODUCER_NV 0x3247 +#define EGL_STREAM_CONSUMER_NV 0x3248 +#define EGL_STREAM_PROTOCOL_FD_NV 0x3246 +#endif /* EGL_NV_stream_remote */ + +#ifndef EGL_NV_stream_reset +#define EGL_NV_stream_reset 1 +#define EGL_SUPPORT_RESET_NV 0x3334 +#define EGL_SUPPORT_REUSE_NV 0x3335 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLRESETSTREAMNVPROC) (EGLDisplay dpy, EGLStreamKHR stream); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglResetStreamNV (EGLDisplay dpy, EGLStreamKHR stream); +#endif +#endif /* EGL_NV_stream_reset */ + +#ifndef EGL_NV_stream_socket +#define EGL_NV_stream_socket 1 +#define EGL_STREAM_PROTOCOL_SOCKET_NV 0x324B +#define EGL_SOCKET_HANDLE_NV 0x324C +#define EGL_SOCKET_TYPE_NV 0x324D +#endif /* EGL_NV_stream_socket */ + +#ifndef EGL_NV_stream_socket_inet +#define EGL_NV_stream_socket_inet 1 +#define EGL_SOCKET_TYPE_INET_NV 0x324F +#endif /* EGL_NV_stream_socket_inet */ + +#ifndef EGL_NV_stream_socket_unix +#define EGL_NV_stream_socket_unix 1 +#define EGL_SOCKET_TYPE_UNIX_NV 0x324E +#endif /* EGL_NV_stream_socket_unix */ + +#ifndef EGL_NV_stream_sync +#define EGL_NV_stream_sync 1 +#define EGL_SYNC_NEW_FRAME_NV 0x321F +typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESTREAMSYNCNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateStreamSyncNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list); +#endif +#endif /* EGL_NV_stream_sync */ + +#ifndef EGL_NV_sync +#define EGL_NV_sync 1 +typedef void *EGLSyncNV; +typedef khronos_utime_nanoseconds_t EGLTimeNV; +#ifdef KHRONOS_SUPPORT_INT64 +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6 +#define EGL_SYNC_STATUS_NV 0x30E7 +#define EGL_SIGNALED_NV 0x30E8 +#define EGL_UNSIGNALED_NV 0x30E9 +#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001 +#define EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFFull +#define EGL_ALREADY_SIGNALED_NV 0x30EA +#define EGL_TIMEOUT_EXPIRED_NV 0x30EB +#define EGL_CONDITION_SATISFIED_NV 0x30EC +#define EGL_SYNC_TYPE_NV 0x30ED +#define EGL_SYNC_CONDITION_NV 0x30EE +#define EGL_SYNC_FENCE_NV 0x30EF +#define EGL_NO_SYNC_NV EGL_CAST(EGLSyncNV,0) +typedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync); +typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSyncNV EGLAPIENTRY eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncNV (EGLSyncNV sync); +EGLAPI EGLBoolean EGLAPIENTRY eglFenceNV (EGLSyncNV sync); +EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); +EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncNV (EGLSyncNV sync, EGLenum mode); +EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_NV_sync */ + +#ifndef EGL_NV_system_time +#define EGL_NV_system_time 1 +typedef khronos_utime_nanoseconds_t EGLuint64NV; +#ifdef KHRONOS_SUPPORT_INT64 +typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void); +typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeFrequencyNV (void); +EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_NV_system_time */ + +#ifndef EGL_NV_triple_buffer +#define EGL_NV_triple_buffer 1 +#define EGL_TRIPLE_BUFFER_NV 0x3230 +#endif /* EGL_NV_triple_buffer */ + +#ifndef EGL_TIZEN_image_native_buffer +#define EGL_TIZEN_image_native_buffer 1 +#define EGL_NATIVE_BUFFER_TIZEN 0x32A0 +#endif /* EGL_TIZEN_image_native_buffer */ + +#ifndef EGL_TIZEN_image_native_surface +#define EGL_TIZEN_image_native_surface 1 +#define EGL_NATIVE_SURFACE_TIZEN 0x32A1 +#endif /* EGL_TIZEN_image_native_surface */ + +#ifndef EGL_WL_bind_wayland_display +#define EGL_WL_bind_wayland_display 1 +#define PFNEGLBINDWAYLANDDISPLAYWL PFNEGLBINDWAYLANDDISPLAYWLPROC +#define PFNEGLUNBINDWAYLANDDISPLAYWL PFNEGLUNBINDWAYLANDDISPLAYWLPROC +#define PFNEGLQUERYWAYLANDBUFFERWL PFNEGLQUERYWAYLANDBUFFERWLPROC +struct wl_display; +struct wl_resource; +#define EGL_WAYLAND_BUFFER_WL 0x31D5 +#define EGL_WAYLAND_PLANE_WL 0x31D6 +#define EGL_TEXTURE_Y_U_V_WL 0x31D7 +#define EGL_TEXTURE_Y_UV_WL 0x31D8 +#define EGL_TEXTURE_Y_XUXV_WL 0x31D9 +#define EGL_TEXTURE_EXTERNAL_WL 0x31DA +#define EGL_WAYLAND_Y_INVERTED_WL 0x31DB +typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDWAYLANDDISPLAYWLPROC) (EGLDisplay dpy, struct wl_display *display); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNBINDWAYLANDDISPLAYWLPROC) (EGLDisplay dpy, struct wl_display *display); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYWAYLANDBUFFERWLPROC) (EGLDisplay dpy, struct wl_resource *buffer, EGLint attribute, EGLint *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglBindWaylandDisplayWL (EGLDisplay dpy, struct wl_display *display); +EGLAPI EGLBoolean EGLAPIENTRY eglUnbindWaylandDisplayWL (EGLDisplay dpy, struct wl_display *display); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryWaylandBufferWL (EGLDisplay dpy, struct wl_resource *buffer, EGLint attribute, EGLint *value); +#endif +#endif /* EGL_WL_bind_wayland_display */ + +#ifndef EGL_WL_create_wayland_buffer_from_image +#define EGL_WL_create_wayland_buffer_from_image 1 +#define PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC +struct wl_buffer; +typedef struct wl_buffer *(EGLAPIENTRYP PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC) (EGLDisplay dpy, EGLImageKHR image); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI struct wl_buffer *EGLAPIENTRY eglCreateWaylandBufferFromImageWL (EGLDisplay dpy, EGLImageKHR image); +#endif +#endif /* EGL_WL_create_wayland_buffer_from_image */ + +#ifdef __cplusplus +} +#endif + +#endif /* __eglext_h_ */ + +#endif /* _MSC_VER */ diff --git a/lib/windows/include/SDL2/SDL_endian.h b/lib/windows/include/SDL2/SDL_endian.h new file mode 100644 index 0000000..5be66ea --- /dev/null +++ b/lib/windows/include/SDL2/SDL_endian.h @@ -0,0 +1,396 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryEndian + * + * Functions for reading and writing endian-specific values + */ + +#ifndef SDL_endian_h_ +#define SDL_endian_h_ + +#include "SDL_stdinc.h" + +#if defined(_MSC_VER) && (_MSC_VER >= 1400) +/* As of Clang 11, '_m_prefetchw' is conflicting with the winnt.h's version, + so we define the needed '_m_prefetch' here as a pseudo-header, until the issue is fixed. */ +#ifdef __clang__ +#ifndef __PRFCHWINTRIN_H +#define __PRFCHWINTRIN_H +static __inline__ void __attribute__((__always_inline__, __nodebug__)) +_m_prefetch(void *__P) +{ + __builtin_prefetch(__P, 0, 3 /* _MM_HINT_T0 */); +} +#endif /* __PRFCHWINTRIN_H */ +#endif /* __clang__ */ + +#include +#endif + +/** + * \name The two types of endianness + */ +/* @{ */ +#define SDL_LIL_ENDIAN 1234 +#define SDL_BIG_ENDIAN 4321 +/* @} */ + +#ifndef SDL_BYTEORDER /* Not defined in SDL_config.h? */ +#ifdef __linux__ +#include +#define SDL_BYTEORDER __BYTE_ORDER +#elif defined(__sun) && defined(__SVR4) /* Solaris */ +#include +#if defined(_LITTLE_ENDIAN) +#define SDL_BYTEORDER SDL_LIL_ENDIAN +#elif defined(_BIG_ENDIAN) +#define SDL_BYTEORDER SDL_BIG_ENDIAN +#else +#error Unsupported endianness +#endif +#elif defined(__OpenBSD__) || defined(__DragonFly__) +#include +#define SDL_BYTEORDER BYTE_ORDER +#elif defined(__FreeBSD__) || defined(__NetBSD__) +#include +#define SDL_BYTEORDER BYTE_ORDER +/* predefs from newer gcc and clang versions: */ +#elif defined(__ORDER_LITTLE_ENDIAN__) && defined(__ORDER_BIG_ENDIAN__) && defined(__BYTE_ORDER__) +#if (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) +#define SDL_BYTEORDER SDL_LIL_ENDIAN +#elif (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) +#define SDL_BYTEORDER SDL_BIG_ENDIAN +#else +#error Unsupported endianness +#endif /**/ +#else +#if defined(__hppa__) || \ + defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \ + (defined(__MIPS__) && defined(__MIPSEB__)) || \ + defined(__ppc__) || defined(__POWERPC__) || defined(__powerpc__) || defined(__PPC__) || \ + defined(__sparc__) || defined(__sparc) +#define SDL_BYTEORDER SDL_BIG_ENDIAN +#else +#define SDL_BYTEORDER SDL_LIL_ENDIAN +#endif +#endif /* __linux__ */ +#endif /* !SDL_BYTEORDER */ + +#ifndef SDL_FLOATWORDORDER /* Not defined in SDL_config.h? */ +/* predefs from newer gcc versions: */ +#if defined(__ORDER_LITTLE_ENDIAN__) && defined(__ORDER_BIG_ENDIAN__) && defined(__FLOAT_WORD_ORDER__) +#if (__FLOAT_WORD_ORDER__ == __ORDER_LITTLE_ENDIAN__) +#define SDL_FLOATWORDORDER SDL_LIL_ENDIAN +#elif (__FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__) +#define SDL_FLOATWORDORDER SDL_BIG_ENDIAN +#else +#error Unsupported endianness +#endif /**/ +#elif defined(__MAVERICK__) +/* For Maverick, float words are always little-endian. */ +#define SDL_FLOATWORDORDER SDL_LIL_ENDIAN +#elif (defined(__arm__) || defined(__thumb__)) && !defined(__VFP_FP__) && !defined(__ARM_EABI__) +/* For FPA, float words are always big-endian. */ +#define SDL_FLOATWORDORDER SDL_BIG_ENDIAN +#else +/* By default, assume that floats words follow the memory system mode. */ +#define SDL_FLOATWORDORDER SDL_BYTEORDER +#endif /* __FLOAT_WORD_ORDER__ */ +#endif /* !SDL_FLOATWORDORDER */ + + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \file SDL_endian.h + */ + +/* various modern compilers may have builtin swap */ +#if defined(__GNUC__) || defined(__clang__) +# define HAS_BUILTIN_BSWAP16 (_SDL_HAS_BUILTIN(__builtin_bswap16)) || \ + (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) +# define HAS_BUILTIN_BSWAP32 (_SDL_HAS_BUILTIN(__builtin_bswap32)) || \ + (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) +# define HAS_BUILTIN_BSWAP64 (_SDL_HAS_BUILTIN(__builtin_bswap64)) || \ + (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) + + /* this one is broken */ +# define HAS_BROKEN_BSWAP (__GNUC__ == 2 && __GNUC_MINOR__ <= 95) +#else +# define HAS_BUILTIN_BSWAP16 0 +# define HAS_BUILTIN_BSWAP32 0 +# define HAS_BUILTIN_BSWAP64 0 +# define HAS_BROKEN_BSWAP 0 +#endif + +#if HAS_BUILTIN_BSWAP16 +#define SDL_Swap16(x) __builtin_bswap16(x) +#elif (defined(_MSC_VER) && (_MSC_VER >= 1400)) && !defined(__ICL) +#pragma intrinsic(_byteswap_ushort) +#define SDL_Swap16(x) _byteswap_ushort(x) +#elif defined(__i386__) && !HAS_BROKEN_BSWAP +SDL_FORCE_INLINE Uint16 +SDL_Swap16(Uint16 x) +{ + __asm__("xchgb %b0,%h0": "=q"(x):"0"(x)); + return x; +} +#elif defined(__x86_64__) +SDL_FORCE_INLINE Uint16 +SDL_Swap16(Uint16 x) +{ + __asm__("xchgb %b0,%h0": "=Q"(x):"0"(x)); + return x; +} +#elif (defined(__powerpc__) || defined(__ppc__)) +SDL_FORCE_INLINE Uint16 +SDL_Swap16(Uint16 x) +{ + int result; + + __asm__("rlwimi %0,%2,8,16,23": "=&r"(result):"0"(x >> 8), "r"(x)); + return (Uint16)result; +} +#elif (defined(__m68k__) && !defined(__mcoldfire__)) +SDL_FORCE_INLINE Uint16 +SDL_Swap16(Uint16 x) +{ + __asm__("rorw #8,%0": "=d"(x): "0"(x):"cc"); + return x; +} +#elif defined(__WATCOMC__) && defined(__386__) +extern __inline Uint16 SDL_Swap16(Uint16); +#pragma aux SDL_Swap16 = \ + "xchg al, ah" \ + parm [ax] \ + modify [ax]; +#else + +/** + * Use this function to swap the byte order of a 16-bit value. + * + * \param x the value to be swapped. + * \returns the swapped value. + * + * \sa SDL_SwapBE16 + * \sa SDL_SwapLE16 + */ +SDL_FORCE_INLINE Uint16 +SDL_Swap16(Uint16 x) +{ + return SDL_static_cast(Uint16, ((x << 8) | (x >> 8))); +} +#endif + +#if HAS_BUILTIN_BSWAP32 +#define SDL_Swap32(x) __builtin_bswap32(x) +#elif (defined(_MSC_VER) && (_MSC_VER >= 1400)) && !defined(__ICL) +#pragma intrinsic(_byteswap_ulong) +#define SDL_Swap32(x) _byteswap_ulong(x) +#elif defined(__i386__) && !HAS_BROKEN_BSWAP +SDL_FORCE_INLINE Uint32 +SDL_Swap32(Uint32 x) +{ + __asm__("bswap %0": "=r"(x):"0"(x)); + return x; +} +#elif defined(__x86_64__) +SDL_FORCE_INLINE Uint32 +SDL_Swap32(Uint32 x) +{ + __asm__("bswapl %0": "=r"(x):"0"(x)); + return x; +} +#elif (defined(__powerpc__) || defined(__ppc__)) +SDL_FORCE_INLINE Uint32 +SDL_Swap32(Uint32 x) +{ + Uint32 result; + + __asm__("rlwimi %0,%2,24,16,23": "=&r"(result): "0" (x>>24), "r"(x)); + __asm__("rlwimi %0,%2,8,8,15" : "=&r"(result): "0" (result), "r"(x)); + __asm__("rlwimi %0,%2,24,0,7" : "=&r"(result): "0" (result), "r"(x)); + return result; +} +#elif (defined(__m68k__) && !defined(__mcoldfire__)) +SDL_FORCE_INLINE Uint32 +SDL_Swap32(Uint32 x) +{ + __asm__("rorw #8,%0\n\tswap %0\n\trorw #8,%0": "=d"(x): "0"(x):"cc"); + return x; +} +#elif defined(__WATCOMC__) && defined(__386__) +extern __inline Uint32 SDL_Swap32(Uint32); +#pragma aux SDL_Swap32 = \ + "bswap eax" \ + parm [eax] \ + modify [eax]; +#else + +/** + * Use this function to swap the byte order of a 32-bit value. + * + * \param x the value to be swapped. + * \returns the swapped value. + * + * \sa SDL_SwapBE32 + * \sa SDL_SwapLE32 + */ +SDL_FORCE_INLINE Uint32 +SDL_Swap32(Uint32 x) +{ + return SDL_static_cast(Uint32, ((x << 24) | ((x << 8) & 0x00FF0000) | + ((x >> 8) & 0x0000FF00) | (x >> 24))); +} +#endif + +#if HAS_BUILTIN_BSWAP64 +#define SDL_Swap64(x) __builtin_bswap64(x) +#elif (defined(_MSC_VER) && (_MSC_VER >= 1400)) && !defined(__ICL) +#pragma intrinsic(_byteswap_uint64) +#define SDL_Swap64(x) _byteswap_uint64(x) +#elif defined(__i386__) && !HAS_BROKEN_BSWAP +SDL_FORCE_INLINE Uint64 +SDL_Swap64(Uint64 x) +{ + union { + struct { + Uint32 a, b; + } s; + Uint64 u; + } v; + v.u = x; + __asm__("bswapl %0 ; bswapl %1 ; xchgl %0,%1" + : "=r"(v.s.a), "=r"(v.s.b) + : "0" (v.s.a), "1"(v.s.b)); + return v.u; +} +#elif defined(__x86_64__) +SDL_FORCE_INLINE Uint64 +SDL_Swap64(Uint64 x) +{ + __asm__("bswapq %0": "=r"(x):"0"(x)); + return x; +} +#elif defined(__WATCOMC__) && defined(__386__) +extern __inline Uint64 SDL_Swap64(Uint64); +#pragma aux SDL_Swap64 = \ + "bswap eax" \ + "bswap edx" \ + "xchg eax,edx" \ + parm [eax edx] \ + modify [eax edx]; +#else + +/** + * Use this function to swap the byte order of a 64-bit value. + * + * \param x the value to be swapped. + * \returns the swapped value. + * + * \sa SDL_SwapBE64 + * \sa SDL_SwapLE64 + */ +SDL_FORCE_INLINE Uint64 +SDL_Swap64(Uint64 x) +{ + Uint32 hi, lo; + + /* Separate into high and low 32-bit values and swap them */ + lo = SDL_static_cast(Uint32, x & 0xFFFFFFFF); + x >>= 32; + hi = SDL_static_cast(Uint32, x & 0xFFFFFFFF); + x = SDL_Swap32(lo); + x <<= 32; + x |= SDL_Swap32(hi); + return (x); +} +#endif + + +/** + * Use this function to swap the byte order of a floating point value. + * + * \param x the value to be swapped. + * \returns the swapped value. + * + * \sa SDL_SwapFloatBE + * \sa SDL_SwapFloatLE + */ +SDL_FORCE_INLINE float +SDL_SwapFloat(float x) +{ + union { + float f; + Uint32 ui32; + } swapper; + swapper.f = x; + swapper.ui32 = SDL_Swap32(swapper.ui32); + return swapper.f; +} + +/* remove extra macros */ +#undef HAS_BROKEN_BSWAP +#undef HAS_BUILTIN_BSWAP16 +#undef HAS_BUILTIN_BSWAP32 +#undef HAS_BUILTIN_BSWAP64 + +/** + * \name Swap to native + * Byteswap item from the specified endianness to the native endianness. + */ +/* @{ */ +#if SDL_BYTEORDER == SDL_LIL_ENDIAN +#define SDL_SwapLE16(X) (X) +#define SDL_SwapLE32(X) (X) +#define SDL_SwapLE64(X) (X) +#define SDL_SwapFloatLE(X) (X) +#define SDL_SwapBE16(X) SDL_Swap16(X) +#define SDL_SwapBE32(X) SDL_Swap32(X) +#define SDL_SwapBE64(X) SDL_Swap64(X) +#define SDL_SwapFloatBE(X) SDL_SwapFloat(X) +#else +#define SDL_SwapLE16(X) SDL_Swap16(X) +#define SDL_SwapLE32(X) SDL_Swap32(X) +#define SDL_SwapLE64(X) SDL_Swap64(X) +#define SDL_SwapFloatLE(X) SDL_SwapFloat(X) +#define SDL_SwapBE16(X) (X) +#define SDL_SwapBE32(X) (X) +#define SDL_SwapBE64(X) (X) +#define SDL_SwapFloatBE(X) (X) +#endif +/* @} *//* Swap to native */ + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_endian_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_error.h b/lib/windows/include/SDL2/SDL_error.h new file mode 100644 index 0000000..8d9cde0 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_error.h @@ -0,0 +1,163 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryError + * + * Simple error message routines for SDL. + */ + +#ifndef SDL_error_h_ +#define SDL_error_h_ + +#include "SDL_stdinc.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Public functions */ + + +/** + * Set the SDL error message for the current thread. + * + * Calling this function will replace any previous error message that was set. + * + * This function always returns -1, since SDL frequently uses -1 to signify an + * failing result, leading to this idiom: + * + * ```c + * if (error_code) { + * return SDL_SetError("This operation has failed: %d", error_code); + * } + * ``` + * + * \param fmt a printf()-style message format string. + * \param ... additional parameters matching % tokens in the `fmt` string, if + * any. + * \returns always -1. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_ClearError + * \sa SDL_GetError + */ +extern DECLSPEC int SDLCALL SDL_SetError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1); + +/** + * Retrieve a message about the last error that occurred on the current + * thread. + * + * It is possible for multiple errors to occur before calling SDL_GetError(). + * Only the last error is returned. + * + * The message is only applicable when an SDL function has signaled an error. + * You must check the return values of SDL function calls to determine when to + * appropriately call SDL_GetError(). You should *not* use the results of + * SDL_GetError() to decide if an error has occurred! Sometimes SDL will set + * an error string even when reporting success. + * + * SDL will *not* clear the error string for successful API calls. You *must* + * check return values for failure cases before you can assume the error + * string applies. + * + * Error strings are set per-thread, so an error set in a different thread + * will not interfere with the current thread's operation. + * + * The returned string is internally allocated and must not be freed by the + * application. + * + * \returns a message with information about the specific error that occurred, + * or an empty string if there hasn't been an error message set since + * the last call to SDL_ClearError(). The message is only applicable + * when an SDL function has signaled an error. You must check the + * return values of SDL function calls to determine when to + * appropriately call SDL_GetError(). + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_ClearError + * \sa SDL_SetError + */ +extern DECLSPEC const char *SDLCALL SDL_GetError(void); + +/** + * Get the last error message that was set for the current thread. + * + * This allows the caller to copy the error string into a provided buffer, but + * otherwise operates exactly the same as SDL_GetError(). + * + * \param errstr A buffer to fill with the last error message that was set for + * the current thread. + * \param maxlen The size of the buffer pointed to by the errstr parameter. + * \returns the pointer passed in as the `errstr` parameter. + * + * \since This function is available since SDL 2.0.14. + * + * \sa SDL_GetError + */ +extern DECLSPEC char * SDLCALL SDL_GetErrorMsg(char *errstr, int maxlen); + +/** + * Clear any previous error message for this thread. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetError + * \sa SDL_SetError + */ +extern DECLSPEC void SDLCALL SDL_ClearError(void); + +/** + * \name Internal error functions + * + * \internal + * Private error reporting function - used internally. + */ +/* @{ */ +#define SDL_OutOfMemory() SDL_Error(SDL_ENOMEM) +#define SDL_Unsupported() SDL_Error(SDL_UNSUPPORTED) +#define SDL_InvalidParamError(param) SDL_SetError("Parameter '%s' is invalid", (param)) +typedef enum +{ + SDL_ENOMEM, + SDL_EFREAD, + SDL_EFWRITE, + SDL_EFSEEK, + SDL_UNSUPPORTED, + SDL_LASTERROR +} SDL_errorcode; +/* SDL_Error() unconditionally returns -1. */ +extern DECLSPEC int SDLCALL SDL_Error(SDL_errorcode code); +/* @} *//* Internal error functions */ + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_error_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_events.h b/lib/windows/include/SDL2/SDL_events.h new file mode 100644 index 0000000..b9596c0 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_events.h @@ -0,0 +1,1196 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryEvents + * + * Include file for SDL event handling. + */ + +#ifndef SDL_events_h_ +#define SDL_events_h_ + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_video.h" +#include "SDL_keyboard.h" +#include "SDL_mouse.h" +#include "SDL_joystick.h" +#include "SDL_gamecontroller.h" +#include "SDL_quit.h" +#include "SDL_gesture.h" +#include "SDL_touch.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* General keyboard/mouse state definitions */ +#define SDL_RELEASED 0 +#define SDL_PRESSED 1 + +/** + * The types of events that can be delivered. + */ +typedef enum SDL_EventType +{ + SDL_FIRSTEVENT = 0, /**< Unused (do not remove) */ + + /* Application events */ + SDL_QUIT = 0x100, /**< User-requested quit */ + + /* These application events have special meaning on iOS, see README-ios.md for details */ + SDL_APP_TERMINATING, /**< The application is being terminated by the OS + Called on iOS in applicationWillTerminate() + Called on Android in onDestroy() + */ + SDL_APP_LOWMEMORY, /**< The application is low on memory, free memory if possible. + Called on iOS in applicationDidReceiveMemoryWarning() + Called on Android in onLowMemory() + */ + SDL_APP_WILLENTERBACKGROUND, /**< The application is about to enter the background + Called on iOS in applicationWillResignActive() + Called on Android in onPause() + */ + SDL_APP_DIDENTERBACKGROUND, /**< The application did enter the background and may not get CPU for some time + Called on iOS in applicationDidEnterBackground() + Called on Android in onPause() + */ + SDL_APP_WILLENTERFOREGROUND, /**< The application is about to enter the foreground + Called on iOS in applicationWillEnterForeground() + Called on Android in onResume() + */ + SDL_APP_DIDENTERFOREGROUND, /**< The application is now interactive + Called on iOS in applicationDidBecomeActive() + Called on Android in onResume() + */ + + SDL_LOCALECHANGED, /**< The user's locale preferences have changed. */ + + /* Display events */ + SDL_DISPLAYEVENT = 0x150, /**< Display state change */ + + /* Window events */ + SDL_WINDOWEVENT = 0x200, /**< Window state change */ + SDL_SYSWMEVENT, /**< System specific event */ + + /* Keyboard events */ + SDL_KEYDOWN = 0x300, /**< Key pressed */ + SDL_KEYUP, /**< Key released */ + SDL_TEXTEDITING, /**< Keyboard text editing (composition) */ + SDL_TEXTINPUT, /**< Keyboard text input */ + SDL_KEYMAPCHANGED, /**< Keymap changed due to a system event such as an + input language or keyboard layout change. + */ + SDL_TEXTEDITING_EXT, /**< Extended keyboard text editing (composition) */ + + /* Mouse events */ + SDL_MOUSEMOTION = 0x400, /**< Mouse moved */ + SDL_MOUSEBUTTONDOWN, /**< Mouse button pressed */ + SDL_MOUSEBUTTONUP, /**< Mouse button released */ + SDL_MOUSEWHEEL, /**< Mouse wheel motion */ + + /* Joystick events */ + SDL_JOYAXISMOTION = 0x600, /**< Joystick axis motion */ + SDL_JOYBALLMOTION, /**< Joystick trackball motion */ + SDL_JOYHATMOTION, /**< Joystick hat position change */ + SDL_JOYBUTTONDOWN, /**< Joystick button pressed */ + SDL_JOYBUTTONUP, /**< Joystick button released */ + SDL_JOYDEVICEADDED, /**< A new joystick has been inserted into the system */ + SDL_JOYDEVICEREMOVED, /**< An opened joystick has been removed */ + SDL_JOYBATTERYUPDATED, /**< Joystick battery level change */ + + /* Game controller events */ + SDL_CONTROLLERAXISMOTION = 0x650, /**< Game controller axis motion */ + SDL_CONTROLLERBUTTONDOWN, /**< Game controller button pressed */ + SDL_CONTROLLERBUTTONUP, /**< Game controller button released */ + SDL_CONTROLLERDEVICEADDED, /**< A new Game controller has been inserted into the system */ + SDL_CONTROLLERDEVICEREMOVED, /**< An opened Game controller has been removed */ + SDL_CONTROLLERDEVICEREMAPPED, /**< The controller mapping was updated */ + SDL_CONTROLLERTOUCHPADDOWN, /**< Game controller touchpad was touched */ + SDL_CONTROLLERTOUCHPADMOTION, /**< Game controller touchpad finger was moved */ + SDL_CONTROLLERTOUCHPADUP, /**< Game controller touchpad finger was lifted */ + SDL_CONTROLLERSENSORUPDATE, /**< Game controller sensor was updated */ + SDL_CONTROLLERUPDATECOMPLETE_RESERVED_FOR_SDL3, + SDL_CONTROLLERSTEAMHANDLEUPDATED, /**< Game controller Steam handle has changed */ + + /* Touch events */ + SDL_FINGERDOWN = 0x700, + SDL_FINGERUP, + SDL_FINGERMOTION, + + /* Gesture events */ + SDL_DOLLARGESTURE = 0x800, + SDL_DOLLARRECORD, + SDL_MULTIGESTURE, + + /* Clipboard events */ + SDL_CLIPBOARDUPDATE = 0x900, /**< The clipboard or primary selection changed */ + + /* Drag and drop events */ + SDL_DROPFILE = 0x1000, /**< The system requests a file open */ + SDL_DROPTEXT, /**< text/plain drag-and-drop event */ + SDL_DROPBEGIN, /**< A new set of drops is beginning (NULL filename) */ + SDL_DROPCOMPLETE, /**< Current set of drops is now complete (NULL filename) */ + + /* Audio hotplug events */ + SDL_AUDIODEVICEADDED = 0x1100, /**< A new audio device is available */ + SDL_AUDIODEVICEREMOVED, /**< An audio device has been removed. */ + + /* Sensor events */ + SDL_SENSORUPDATE = 0x1200, /**< A sensor was updated */ + + /* Render events */ + SDL_RENDER_TARGETS_RESET = 0x2000, /**< The render targets have been reset and their contents need to be updated */ + SDL_RENDER_DEVICE_RESET, /**< The device has been reset and all textures need to be recreated */ + + /* Internal events */ + SDL_POLLSENTINEL = 0x7F00, /**< Signals the end of an event poll cycle */ + + /** Events SDL_USEREVENT through SDL_LASTEVENT are for your use, + * and should be allocated with SDL_RegisterEvents() + */ + SDL_USEREVENT = 0x8000, + + /** + * This last event is only for bounding internal arrays + */ + SDL_LASTEVENT = 0xFFFF +} SDL_EventType; + +/** + * Fields shared by every event + */ +typedef struct SDL_CommonEvent +{ + Uint32 type; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ +} SDL_CommonEvent; + +/** + * Display state change event data (event.display.*) + */ +typedef struct SDL_DisplayEvent +{ + Uint32 type; /**< SDL_DISPLAYEVENT */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + Uint32 display; /**< The associated display index */ + Uint8 event; /**< SDL_DisplayEventID */ + Uint8 padding1; + Uint8 padding2; + Uint8 padding3; + Sint32 data1; /**< event dependent data */ +} SDL_DisplayEvent; + +/** + * Window state change event data (event.window.*) + */ +typedef struct SDL_WindowEvent +{ + Uint32 type; /**< SDL_WINDOWEVENT */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + Uint32 windowID; /**< The associated window */ + Uint8 event; /**< SDL_WindowEventID */ + Uint8 padding1; + Uint8 padding2; + Uint8 padding3; + Sint32 data1; /**< event dependent data */ + Sint32 data2; /**< event dependent data */ +} SDL_WindowEvent; + +/** + * Keyboard button event structure (event.key.*) + */ +typedef struct SDL_KeyboardEvent +{ + Uint32 type; /**< SDL_KEYDOWN or SDL_KEYUP */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + Uint32 windowID; /**< The window with keyboard focus, if any */ + Uint8 state; /**< SDL_PRESSED or SDL_RELEASED */ + Uint8 repeat; /**< Non-zero if this is a key repeat */ + Uint8 padding2; + Uint8 padding3; + SDL_Keysym keysym; /**< The key that was pressed or released */ +} SDL_KeyboardEvent; + +#define SDL_TEXTEDITINGEVENT_TEXT_SIZE (32) + +/** + * Keyboard text editing event structure (event.edit.*) + */ +typedef struct SDL_TextEditingEvent +{ + Uint32 type; /**< SDL_TEXTEDITING */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + Uint32 windowID; /**< The window with keyboard focus, if any */ + char text[SDL_TEXTEDITINGEVENT_TEXT_SIZE]; /**< The editing text */ + Sint32 start; /**< The start cursor of selected editing text */ + Sint32 length; /**< The length of selected editing text */ +} SDL_TextEditingEvent; + +/** + * Extended keyboard text editing event structure (event.editExt.*) when text + * would be truncated if stored in the text buffer SDL_TextEditingEvent + */ +typedef struct SDL_TextEditingExtEvent +{ + Uint32 type; /**< SDL_TEXTEDITING_EXT */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + Uint32 windowID; /**< The window with keyboard focus, if any */ + char* text; /**< The editing text, which should be freed with SDL_free(), and will not be NULL */ + Sint32 start; /**< The start cursor of selected editing text */ + Sint32 length; /**< The length of selected editing text */ +} SDL_TextEditingExtEvent; + +/** + * The maximum bytes of text that can be supplied in an SDL_TextInputEvent. + */ +#define SDL_TEXTINPUTEVENT_TEXT_SIZE (32) + +/** + * Keyboard text input event structure (event.text.*) + * + * `text` is limited to SDL_TEXTINPUTEVENT_TEXT_SIZE bytes. If the incoming + * string is larger than this, SDL will split it and send it in pieces, across + * multiple events. The string is in UTF-8 format, and if split, SDL + * guarantees that it will not split in the middle of a UTF-8 sequence, so any + * event will only contain complete codepoints. However, if there are several + * codepoints that go together into a single glyph (like an emoji "thumbs up" + * followed by a skin color), they may be split between events. + * + * This event will never be delivered unless text input is enabled by calling + * SDL_StartTextInput(). Text input is enabled by default on desktop + * platforms, and disabled by default on mobile platforms! + * + * \sa SDL_StartTextInput + * \sa SDL_StopTextInput + */ +typedef struct SDL_TextInputEvent +{ + Uint32 type; /**< SDL_TEXTINPUT */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + Uint32 windowID; /**< The window with keyboard focus, if any */ + char text[SDL_TEXTINPUTEVENT_TEXT_SIZE]; /**< The input text; UTF-8 encoded. */ +} SDL_TextInputEvent; + +/** + * Mouse motion event structure (event.motion.*) + */ +typedef struct SDL_MouseMotionEvent +{ + Uint32 type; /**< SDL_MOUSEMOTION */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + Uint32 windowID; /**< The window with mouse focus, if any */ + Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ + Uint32 state; /**< The current button state */ + Sint32 x; /**< X coordinate, relative to window */ + Sint32 y; /**< Y coordinate, relative to window */ + Sint32 xrel; /**< The relative motion in the X direction */ + Sint32 yrel; /**< The relative motion in the Y direction */ +} SDL_MouseMotionEvent; + +/** + * Mouse button event structure (event.button.*) + */ +typedef struct SDL_MouseButtonEvent +{ + Uint32 type; /**< SDL_MOUSEBUTTONDOWN or SDL_MOUSEBUTTONUP */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + Uint32 windowID; /**< The window with mouse focus, if any */ + Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ + Uint8 button; /**< The mouse button index */ + Uint8 state; /**< SDL_PRESSED or SDL_RELEASED */ + Uint8 clicks; /**< 1 for single-click, 2 for double-click, etc. */ + Uint8 padding1; + Sint32 x; /**< X coordinate, relative to window */ + Sint32 y; /**< Y coordinate, relative to window */ +} SDL_MouseButtonEvent; + +/** + * Mouse wheel event structure (event.wheel.*) + */ +typedef struct SDL_MouseWheelEvent +{ + Uint32 type; /**< SDL_MOUSEWHEEL */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + Uint32 windowID; /**< The window with mouse focus, if any */ + Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ + Sint32 x; /**< The amount scrolled horizontally, positive to the right and negative to the left */ + Sint32 y; /**< The amount scrolled vertically, positive away from the user and negative toward the user */ + Uint32 direction; /**< Set to one of the SDL_MOUSEWHEEL_* defines. When FLIPPED the values in X and Y will be opposite. Multiply by -1 to change them back */ + float preciseX; /**< The amount scrolled horizontally, positive to the right and negative to the left, with float precision (added in 2.0.18) */ + float preciseY; /**< The amount scrolled vertically, positive away from the user and negative toward the user, with float precision (added in 2.0.18) */ + Sint32 mouseX; /**< X coordinate, relative to window (added in 2.26.0) */ + Sint32 mouseY; /**< Y coordinate, relative to window (added in 2.26.0) */ +} SDL_MouseWheelEvent; + +/** + * Joystick axis motion event structure (event.jaxis.*) + */ +typedef struct SDL_JoyAxisEvent +{ + Uint32 type; /**< SDL_JOYAXISMOTION */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + SDL_JoystickID which; /**< The joystick instance id */ + Uint8 axis; /**< The joystick axis index */ + Uint8 padding1; + Uint8 padding2; + Uint8 padding3; + Sint16 value; /**< The axis value (range: -32768 to 32767) */ + Uint16 padding4; +} SDL_JoyAxisEvent; + +/** + * Joystick trackball motion event structure (event.jball.*) + */ +typedef struct SDL_JoyBallEvent +{ + Uint32 type; /**< SDL_JOYBALLMOTION */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + SDL_JoystickID which; /**< The joystick instance id */ + Uint8 ball; /**< The joystick trackball index */ + Uint8 padding1; + Uint8 padding2; + Uint8 padding3; + Sint16 xrel; /**< The relative motion in the X direction */ + Sint16 yrel; /**< The relative motion in the Y direction */ +} SDL_JoyBallEvent; + +/** + * Joystick hat position change event structure (event.jhat.*) + */ +typedef struct SDL_JoyHatEvent +{ + Uint32 type; /**< SDL_JOYHATMOTION */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + SDL_JoystickID which; /**< The joystick instance id */ + Uint8 hat; /**< The joystick hat index */ + Uint8 value; /**< The hat position value. + * \sa SDL_HAT_LEFTUP SDL_HAT_UP SDL_HAT_RIGHTUP + * \sa SDL_HAT_LEFT SDL_HAT_CENTERED SDL_HAT_RIGHT + * \sa SDL_HAT_LEFTDOWN SDL_HAT_DOWN SDL_HAT_RIGHTDOWN + * + * Note that zero means the POV is centered. + */ + Uint8 padding1; + Uint8 padding2; +} SDL_JoyHatEvent; + +/** + * Joystick button event structure (event.jbutton.*) + */ +typedef struct SDL_JoyButtonEvent +{ + Uint32 type; /**< SDL_JOYBUTTONDOWN or SDL_JOYBUTTONUP */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + SDL_JoystickID which; /**< The joystick instance id */ + Uint8 button; /**< The joystick button index */ + Uint8 state; /**< SDL_PRESSED or SDL_RELEASED */ + Uint8 padding1; + Uint8 padding2; +} SDL_JoyButtonEvent; + +/** + * Joystick device event structure (event.jdevice.*) + * + * SDL will send JOYSTICK_ADDED events for devices that are already plugged in + * during SDL_Init. + * + * \sa SDL_ControllerDeviceEvent + */ +typedef struct SDL_JoyDeviceEvent +{ + Uint32 type; /**< SDL_JOYDEVICEADDED or SDL_JOYDEVICEREMOVED */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED event */ +} SDL_JoyDeviceEvent; + +/** + * Joysick battery level change event structure (event.jbattery.*) + */ +typedef struct SDL_JoyBatteryEvent +{ + Uint32 type; /**< SDL_JOYBATTERYUPDATED */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + SDL_JoystickID which; /**< The joystick instance id */ + SDL_JoystickPowerLevel level; /**< The joystick battery level */ +} SDL_JoyBatteryEvent; + +/** + * Game controller axis motion event structure (event.caxis.*) + */ +typedef struct SDL_ControllerAxisEvent +{ + Uint32 type; /**< SDL_CONTROLLERAXISMOTION */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + SDL_JoystickID which; /**< The joystick instance id */ + Uint8 axis; /**< The controller axis (SDL_GameControllerAxis) */ + Uint8 padding1; + Uint8 padding2; + Uint8 padding3; + Sint16 value; /**< The axis value (range: -32768 to 32767) */ + Uint16 padding4; +} SDL_ControllerAxisEvent; + + +/** + * Game controller button event structure (event.cbutton.*) + */ +typedef struct SDL_ControllerButtonEvent +{ + Uint32 type; /**< SDL_CONTROLLERBUTTONDOWN or SDL_CONTROLLERBUTTONUP */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + SDL_JoystickID which; /**< The joystick instance id */ + Uint8 button; /**< The controller button (SDL_GameControllerButton) */ + Uint8 state; /**< SDL_PRESSED or SDL_RELEASED */ + Uint8 padding1; + Uint8 padding2; +} SDL_ControllerButtonEvent; + + +/** + * Controller device event structure (event.cdevice.*) + * + * Joysticks that are supported game controllers receive both an + * SDL_JoyDeviceEvent and an SDL_ControllerDeviceEvent. + * + * SDL will send CONTROLLERDEVICEADDED events for joysticks that are already + * plugged in during SDL_Init() and are recognized as game controllers. + */ +typedef struct SDL_ControllerDeviceEvent +{ + Uint32 type; /**< SDL_CONTROLLERDEVICEADDED, SDL_CONTROLLERDEVICEREMOVED, SDL_CONTROLLERDEVICEREMAPPED, or SDL_CONTROLLERSTEAMHANDLEUPDATED */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED or REMAPPED event */ +} SDL_ControllerDeviceEvent; + +/** + * Game controller touchpad event structure (event.ctouchpad.*) + */ +typedef struct SDL_ControllerTouchpadEvent +{ + Uint32 type; /**< SDL_CONTROLLERTOUCHPADDOWN or SDL_CONTROLLERTOUCHPADMOTION or SDL_CONTROLLERTOUCHPADUP */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + SDL_JoystickID which; /**< The joystick instance id */ + Sint32 touchpad; /**< The index of the touchpad */ + Sint32 finger; /**< The index of the finger on the touchpad */ + float x; /**< Normalized in the range 0...1 with 0 being on the left */ + float y; /**< Normalized in the range 0...1 with 0 being at the top */ + float pressure; /**< Normalized in the range 0...1 */ +} SDL_ControllerTouchpadEvent; + +/** + * Game controller sensor event structure (event.csensor.*) + */ +typedef struct SDL_ControllerSensorEvent +{ + Uint32 type; /**< SDL_CONTROLLERSENSORUPDATE */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + SDL_JoystickID which; /**< The joystick instance id */ + Sint32 sensor; /**< The type of the sensor, one of the values of SDL_SensorType */ + float data[3]; /**< Up to 3 values from the sensor, as defined in SDL_sensor.h */ + Uint64 timestamp_us; /**< The timestamp of the sensor reading in microseconds, if the hardware provides this information. */ +} SDL_ControllerSensorEvent; + +/** + * Audio device event structure (event.adevice.*) + */ +typedef struct SDL_AudioDeviceEvent +{ + Uint32 type; /**< SDL_AUDIODEVICEADDED, or SDL_AUDIODEVICEREMOVED */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + Uint32 which; /**< The audio device index for the ADDED event (valid until next SDL_GetNumAudioDevices() call), SDL_AudioDeviceID for the REMOVED event */ + Uint8 iscapture; /**< zero if an output device, non-zero if a capture device. */ + Uint8 padding1; + Uint8 padding2; + Uint8 padding3; +} SDL_AudioDeviceEvent; + + +/** + * Touch finger event structure (event.tfinger.*) + */ +typedef struct SDL_TouchFingerEvent +{ + Uint32 type; /**< SDL_FINGERMOTION or SDL_FINGERDOWN or SDL_FINGERUP */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + SDL_TouchID touchId; /**< The touch device id */ + SDL_FingerID fingerId; + float x; /**< Normalized in the range 0...1 */ + float y; /**< Normalized in the range 0...1 */ + float dx; /**< Normalized in the range -1...1 */ + float dy; /**< Normalized in the range -1...1 */ + float pressure; /**< Normalized in the range 0...1 */ + Uint32 windowID; /**< The window underneath the finger, if any */ +} SDL_TouchFingerEvent; + + +/** + * Multiple Finger Gesture Event (event.mgesture.*) + */ +typedef struct SDL_MultiGestureEvent +{ + Uint32 type; /**< SDL_MULTIGESTURE */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + SDL_TouchID touchId; /**< The touch device id */ + float dTheta; + float dDist; + float x; + float y; + Uint16 numFingers; + Uint16 padding; +} SDL_MultiGestureEvent; + + +/** + * Dollar Gesture Event (event.dgesture.*) + */ +typedef struct SDL_DollarGestureEvent +{ + Uint32 type; /**< SDL_DOLLARGESTURE or SDL_DOLLARRECORD */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + SDL_TouchID touchId; /**< The touch device id */ + SDL_GestureID gestureId; + Uint32 numFingers; + float error; + float x; /**< Normalized center of gesture */ + float y; /**< Normalized center of gesture */ +} SDL_DollarGestureEvent; + + +/** + * An event used to request a file open by the system (event.drop.*) + * + * This event is enabled by default, you can disable it with SDL_EventState(). + * + * If this event is enabled, you must free the filename in the event. + */ +typedef struct SDL_DropEvent +{ + Uint32 type; /**< SDL_DROPBEGIN or SDL_DROPFILE or SDL_DROPTEXT or SDL_DROPCOMPLETE */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + char *file; /**< The file name, which should be freed with SDL_free(), is NULL on begin/complete */ + Uint32 windowID; /**< The window that was dropped on, if any */ +} SDL_DropEvent; + + +/** + * Sensor event structure (event.sensor.*) + */ +typedef struct SDL_SensorEvent +{ + Uint32 type; /**< SDL_SENSORUPDATE */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + Sint32 which; /**< The instance ID of the sensor */ + float data[6]; /**< Up to 6 values from the sensor - additional values can be queried using SDL_SensorGetData() */ + Uint64 timestamp_us; /**< The timestamp of the sensor reading in microseconds, if the hardware provides this information. */ +} SDL_SensorEvent; + +/** + * The "quit requested" event + */ +typedef struct SDL_QuitEvent +{ + Uint32 type; /**< SDL_QUIT */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ +} SDL_QuitEvent; + +/** + * A user-defined event type (event.user.*) + */ +typedef struct SDL_UserEvent +{ + Uint32 type; /**< SDL_USEREVENT through SDL_LASTEVENT-1 */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + Uint32 windowID; /**< The associated window if any */ + Sint32 code; /**< User defined event code */ + void *data1; /**< User defined data pointer */ + void *data2; /**< User defined data pointer */ +} SDL_UserEvent; + + +struct SDL_SysWMmsg; +typedef struct SDL_SysWMmsg SDL_SysWMmsg; + +/** + * A video driver dependent system event (event.syswm.*) + * + * This event is disabled by default, you can enable it with SDL_EventState() + * + * If you want to use this event, you should include SDL_syswm.h. + */ +typedef struct SDL_SysWMEvent +{ + Uint32 type; /**< SDL_SYSWMEVENT */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + SDL_SysWMmsg *msg; /**< driver dependent data, defined in SDL_syswm.h */ +} SDL_SysWMEvent; + +/** + * General event structure + * + * The SDL_Event structure is the core of all event handling in SDL. SDL_Event + * is a union of all event structures used in SDL. + */ +typedef union SDL_Event +{ + Uint32 type; /**< Event type, shared with all events */ + SDL_CommonEvent common; /**< Common event data */ + SDL_DisplayEvent display; /**< Display event data */ + SDL_WindowEvent window; /**< Window event data */ + SDL_KeyboardEvent key; /**< Keyboard event data */ + SDL_TextEditingEvent edit; /**< Text editing event data */ + SDL_TextEditingExtEvent editExt; /**< Extended text editing event data */ + SDL_TextInputEvent text; /**< Text input event data */ + SDL_MouseMotionEvent motion; /**< Mouse motion event data */ + SDL_MouseButtonEvent button; /**< Mouse button event data */ + SDL_MouseWheelEvent wheel; /**< Mouse wheel event data */ + SDL_JoyAxisEvent jaxis; /**< Joystick axis event data */ + SDL_JoyBallEvent jball; /**< Joystick ball event data */ + SDL_JoyHatEvent jhat; /**< Joystick hat event data */ + SDL_JoyButtonEvent jbutton; /**< Joystick button event data */ + SDL_JoyDeviceEvent jdevice; /**< Joystick device change event data */ + SDL_JoyBatteryEvent jbattery; /**< Joystick battery event data */ + SDL_ControllerAxisEvent caxis; /**< Game Controller axis event data */ + SDL_ControllerButtonEvent cbutton; /**< Game Controller button event data */ + SDL_ControllerDeviceEvent cdevice; /**< Game Controller device event data */ + SDL_ControllerTouchpadEvent ctouchpad; /**< Game Controller touchpad event data */ + SDL_ControllerSensorEvent csensor; /**< Game Controller sensor event data */ + SDL_AudioDeviceEvent adevice; /**< Audio device event data */ + SDL_SensorEvent sensor; /**< Sensor event data */ + SDL_QuitEvent quit; /**< Quit request event data */ + SDL_UserEvent user; /**< Custom event data */ + SDL_SysWMEvent syswm; /**< System dependent window event data */ + SDL_TouchFingerEvent tfinger; /**< Touch finger event data */ + SDL_MultiGestureEvent mgesture; /**< Gesture event data */ + SDL_DollarGestureEvent dgesture; /**< Gesture event data */ + SDL_DropEvent drop; /**< Drag and drop event data */ + + /* This is necessary for ABI compatibility between Visual C++ and GCC. + Visual C++ will respect the push pack pragma and use 52 bytes (size of + SDL_TextEditingEvent, the largest structure for 32-bit and 64-bit + architectures) for this union, and GCC will use the alignment of the + largest datatype within the union, which is 8 bytes on 64-bit + architectures. + + So... we'll add padding to force the size to be 56 bytes for both. + + On architectures where pointers are 16 bytes, this needs rounding up to + the next multiple of 16, 64, and on architectures where pointers are + even larger the size of SDL_UserEvent will dominate as being 3 pointers. + */ + Uint8 padding[sizeof(void *) <= 8 ? 56 : sizeof(void *) == 16 ? 64 : 3 * sizeof(void *)]; +} SDL_Event; + +/* Make sure we haven't broken binary compatibility */ +SDL_COMPILE_TIME_ASSERT(SDL_Event, sizeof(SDL_Event) == sizeof(((SDL_Event *)NULL)->padding)); + + +/* Function prototypes */ + +/** + * Pump the event loop, gathering events from the input devices. + * + * This function updates the event queue and internal input device state. + * + * **WARNING**: This should only be run in the thread that initialized the + * video subsystem, and for extra safety, you should consider only doing those + * things on the main thread in any case. + * + * SDL_PumpEvents() gathers all the pending input information from devices and + * places it in the event queue. Without calls to SDL_PumpEvents() no events + * would ever be placed on the queue. Often the need for calls to + * SDL_PumpEvents() is hidden from the user since SDL_PollEvent() and + * SDL_WaitEvent() implicitly call SDL_PumpEvents(). However, if you are not + * polling or waiting for events (e.g. you are filtering them), then you must + * call SDL_PumpEvents() to force an event queue update. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_PollEvent + * \sa SDL_WaitEvent + */ +extern DECLSPEC void SDLCALL SDL_PumpEvents(void); + +/* @{ */ +typedef enum SDL_eventaction +{ + SDL_ADDEVENT, + SDL_PEEKEVENT, + SDL_GETEVENT +} SDL_eventaction; + +/** + * Check the event queue for messages and optionally return them. + * + * `action` may be any of the following: + * + * - `SDL_ADDEVENT`: up to `numevents` events will be added to the back of the + * event queue. + * - `SDL_PEEKEVENT`: `numevents` events at the front of the event queue, + * within the specified minimum and maximum type, will be returned to the + * caller and will _not_ be removed from the queue. + * - `SDL_GETEVENT`: up to `numevents` events at the front of the event queue, + * within the specified minimum and maximum type, will be returned to the + * caller and will be removed from the queue. + * + * You may have to call SDL_PumpEvents() before calling this function. + * Otherwise, the events may not be ready to be filtered when you call + * SDL_PeepEvents(). + * + * This function is thread-safe. + * + * \param events destination buffer for the retrieved events. + * \param numevents if action is SDL_ADDEVENT, the number of events to add + * back to the event queue; if action is SDL_PEEKEVENT or + * SDL_GETEVENT, the maximum number of events to retrieve. + * \param action action to take; see [[#action|Remarks]] for details. + * \param minType minimum value of the event type to be considered; + * SDL_FIRSTEVENT is a safe choice. + * \param maxType maximum value of the event type to be considered; + * SDL_LASTEVENT is a safe choice. + * \returns the number of events actually stored or a negative error code on + * failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_PollEvent + * \sa SDL_PumpEvents + * \sa SDL_PushEvent + */ +extern DECLSPEC int SDLCALL SDL_PeepEvents(SDL_Event * events, int numevents, + SDL_eventaction action, + Uint32 minType, Uint32 maxType); +/* @} */ + +/** + * Check for the existence of a certain event type in the event queue. + * + * If you need to check for a range of event types, use SDL_HasEvents() + * instead. + * + * \param type the type of event to be queried; see SDL_EventType for details. + * \returns SDL_TRUE if events matching `type` are present, or SDL_FALSE if + * events matching `type` are not present. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HasEvents + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasEvent(Uint32 type); + + +/** + * Check for the existence of certain event types in the event queue. + * + * If you need to check for a single event type, use SDL_HasEvent() instead. + * + * \param minType the low end of event type to be queried, inclusive; see + * SDL_EventType for details. + * \param maxType the high end of event type to be queried, inclusive; see + * SDL_EventType for details. + * \returns SDL_TRUE if events with type >= `minType` and <= `maxType` are + * present, or SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HasEvents + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasEvents(Uint32 minType, Uint32 maxType); + +/** + * Clear events of a specific type from the event queue. + * + * This will unconditionally remove any events from the queue that match + * `type`. If you need to remove a range of event types, use SDL_FlushEvents() + * instead. + * + * It's also normal to just ignore events you don't care about in your event + * loop without calling this function. + * + * This function only affects currently queued events. If you want to make + * sure that all pending OS events are flushed, you can call SDL_PumpEvents() + * on the main thread immediately before the flush call. + * + * \param type the type of event to be cleared; see SDL_EventType for details. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_FlushEvents + */ +extern DECLSPEC void SDLCALL SDL_FlushEvent(Uint32 type); + +/** + * Clear events of a range of types from the event queue. + * + * This will unconditionally remove any events from the queue that are in the + * range of `minType` to `maxType`, inclusive. If you need to remove a single + * event type, use SDL_FlushEvent() instead. + * + * It's also normal to just ignore events you don't care about in your event + * loop without calling this function. + * + * This function only affects currently queued events. If you want to make + * sure that all pending OS events are flushed, you can call SDL_PumpEvents() + * on the main thread immediately before the flush call. + * + * \param minType the low end of event type to be cleared, inclusive; see + * SDL_EventType for details. + * \param maxType the high end of event type to be cleared, inclusive; see + * SDL_EventType for details. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_FlushEvent + */ +extern DECLSPEC void SDLCALL SDL_FlushEvents(Uint32 minType, Uint32 maxType); + +/** + * Poll for currently pending events. + * + * If `event` is not NULL, the next event is removed from the queue and stored + * in the SDL_Event structure pointed to by `event`. The 1 returned refers to + * this event, immediately stored in the SDL Event structure -- not an event + * to follow. + * + * If `event` is NULL, it simply returns 1 if there is an event in the queue, + * but will not remove it from the queue. + * + * As this function may implicitly call SDL_PumpEvents(), you can only call + * this function in the thread that set the video mode. + * + * SDL_PollEvent() is the favored way of receiving system events since it can + * be done from the main loop and does not suspend the main loop while waiting + * on an event to be posted. + * + * The common practice is to fully process the event queue once every frame, + * usually as a first step before updating the game's state: + * + * ```c + * while (game_is_still_running) { + * SDL_Event event; + * while (SDL_PollEvent(&event)) { // poll until all events are handled! + * // decide what to do with this event. + * } + * + * // update game state, draw the current frame + * } + * ``` + * + * \param event the SDL_Event structure to be filled with the next event from + * the queue, or NULL. + * \returns 1 if there is a pending event or 0 if there are none available. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetEventFilter + * \sa SDL_PeepEvents + * \sa SDL_PushEvent + * \sa SDL_SetEventFilter + * \sa SDL_WaitEvent + * \sa SDL_WaitEventTimeout + */ +extern DECLSPEC int SDLCALL SDL_PollEvent(SDL_Event * event); + +/** + * Wait indefinitely for the next available event. + * + * If `event` is not NULL, the next event is removed from the queue and stored + * in the SDL_Event structure pointed to by `event`. + * + * As this function may implicitly call SDL_PumpEvents(), you can only call + * this function in the thread that initialized the video subsystem. + * + * \param event the SDL_Event structure to be filled in with the next event + * from the queue, or NULL. + * \returns 1 on success or 0 if there was an error while waiting for events; + * call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_PollEvent + * \sa SDL_PumpEvents + * \sa SDL_WaitEventTimeout + */ +extern DECLSPEC int SDLCALL SDL_WaitEvent(SDL_Event * event); + +/** + * Wait until the specified timeout (in milliseconds) for the next available + * event. + * + * If `event` is not NULL, the next event is removed from the queue and stored + * in the SDL_Event structure pointed to by `event`. + * + * As this function may implicitly call SDL_PumpEvents(), you can only call + * this function in the thread that initialized the video subsystem. + * + * \param event the SDL_Event structure to be filled in with the next event + * from the queue, or NULL. + * \param timeout the maximum number of milliseconds to wait for the next + * available event. + * \returns 1 on success or 0 if there was an error while waiting for events; + * call SDL_GetError() for more information. This also returns 0 if + * the timeout elapsed without an event arriving. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_PollEvent + * \sa SDL_PumpEvents + * \sa SDL_WaitEvent + */ +extern DECLSPEC int SDLCALL SDL_WaitEventTimeout(SDL_Event * event, + int timeout); + +/** + * Add an event to the event queue. + * + * The event queue can actually be used as a two way communication channel. + * Not only can events be read from the queue, but the user can also push + * their own events onto it. `event` is a pointer to the event structure you + * wish to push onto the queue. The event is copied into the queue, and the + * caller may dispose of the memory pointed to after SDL_PushEvent() returns. + * + * Note: Pushing device input events onto the queue doesn't modify the state + * of the device within SDL. + * + * This function is thread-safe, and can be called from other threads safely. + * + * Note: Events pushed onto the queue with SDL_PushEvent() get passed through + * the event filter but events added with SDL_PeepEvents() do not. + * + * For pushing application-specific events, please use SDL_RegisterEvents() to + * get an event type that does not conflict with other code that also wants + * its own custom event types. + * + * \param event the SDL_Event to be added to the queue. + * \returns 1 on success, 0 if the event was filtered, or a negative error + * code on failure; call SDL_GetError() for more information. A + * common reason for error is the event queue being full. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_PeepEvents + * \sa SDL_PollEvent + * \sa SDL_RegisterEvents + */ +extern DECLSPEC int SDLCALL SDL_PushEvent(SDL_Event * event); + +/** + * A function pointer used for callbacks that watch the event queue. + * + * \param userdata what was passed as `userdata` to SDL_SetEventFilter() or + * SDL_AddEventWatch, etc. + * \param event the event that triggered the callback. + * \returns 1 to permit event to be added to the queue, and 0 to disallow it. + * When used with SDL_AddEventWatch, the return value is ignored. + * + * \sa SDL_SetEventFilter + * \sa SDL_AddEventWatch + */ +typedef int (SDLCALL * SDL_EventFilter) (void *userdata, SDL_Event * event); + +/** + * Set up a filter to process all events before they change internal state and + * are posted to the internal event queue. + * + * If the filter function returns 1 when called, then the event will be added + * to the internal queue. If it returns 0, then the event will be dropped from + * the queue, but the internal state will still be updated. This allows + * selective filtering of dynamically arriving events. + * + * **WARNING**: Be very careful of what you do in the event filter function, + * as it may run in a different thread! + * + * On platforms that support it, if the quit event is generated by an + * interrupt signal (e.g. pressing Ctrl-C), it will be delivered to the + * application at the next event poll. + * + * There is one caveat when dealing with the SDL_QuitEvent event type. The + * event filter is only called when the window manager desires to close the + * application window. If the event filter returns 1, then the window will be + * closed, otherwise the window will remain open if possible. + * + * Note: Disabled events never make it to the event filter function; see + * SDL_EventState(). + * + * Note: If you just want to inspect events without filtering, you should use + * SDL_AddEventWatch() instead. + * + * Note: Events pushed onto the queue with SDL_PushEvent() get passed through + * the event filter, but events pushed onto the queue with SDL_PeepEvents() do + * not. + * + * \param filter An SDL_EventFilter function to call when an event happens. + * \param userdata a pointer that is passed to `filter`. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AddEventWatch + * \sa SDL_EventState + * \sa SDL_GetEventFilter + * \sa SDL_PeepEvents + * \sa SDL_PushEvent + */ +extern DECLSPEC void SDLCALL SDL_SetEventFilter(SDL_EventFilter filter, + void *userdata); + +/** + * Query the current event filter. + * + * This function can be used to "chain" filters, by saving the existing filter + * before replacing it with a function that will call that saved filter. + * + * \param filter the current callback function will be stored here. + * \param userdata the pointer that is passed to the current event filter will + * be stored here. + * \returns SDL_TRUE on success or SDL_FALSE if there is no event filter set. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetEventFilter + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GetEventFilter(SDL_EventFilter * filter, + void **userdata); + +/** + * Add a callback to be triggered when an event is added to the event queue. + * + * `filter` will be called when an event happens, and its return value is + * ignored. + * + * **WARNING**: Be very careful of what you do in the event filter function, + * as it may run in a different thread! + * + * If the quit event is generated by a signal (e.g. SIGINT), it will bypass + * the internal queue and be delivered to the watch callback immediately, and + * arrive at the next event poll. + * + * Note: the callback is called for events posted by the user through + * SDL_PushEvent(), but not for disabled events, nor for events by a filter + * callback set with SDL_SetEventFilter(), nor for events posted by the user + * through SDL_PeepEvents(). + * + * \param filter an SDL_EventFilter function to call when an event happens. + * \param userdata a pointer that is passed to `filter`. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_DelEventWatch + * \sa SDL_SetEventFilter + */ +extern DECLSPEC void SDLCALL SDL_AddEventWatch(SDL_EventFilter filter, + void *userdata); + +/** + * Remove an event watch callback added with SDL_AddEventWatch(). + * + * This function takes the same input as SDL_AddEventWatch() to identify and + * delete the corresponding callback. + * + * \param filter the function originally passed to SDL_AddEventWatch(). + * \param userdata the pointer originally passed to SDL_AddEventWatch(). + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AddEventWatch + */ +extern DECLSPEC void SDLCALL SDL_DelEventWatch(SDL_EventFilter filter, + void *userdata); + +/** + * Run a specific filter function on the current event queue, removing any + * events for which the filter returns 0. + * + * See SDL_SetEventFilter() for more information. Unlike SDL_SetEventFilter(), + * this function does not change the filter permanently, it only uses the + * supplied filter until this function returns. + * + * \param filter the SDL_EventFilter function to call when an event happens. + * \param userdata a pointer that is passed to `filter`. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetEventFilter + * \sa SDL_SetEventFilter + */ +extern DECLSPEC void SDLCALL SDL_FilterEvents(SDL_EventFilter filter, + void *userdata); + +/* @{ */ +#define SDL_QUERY -1 +#define SDL_IGNORE 0 +#define SDL_DISABLE 0 +#define SDL_ENABLE 1 + +/** + * Set the state of processing events by type. + * + * `state` may be any of the following: + * + * - `SDL_QUERY`: returns the current processing state of the specified event + * - `SDL_IGNORE` (aka `SDL_DISABLE`): the event will automatically be dropped + * from the event queue and will not be filtered + * - `SDL_ENABLE`: the event will be processed normally + * + * \param type the type of event; see SDL_EventType for details. + * \param state how to process the event. + * \returns `SDL_DISABLE` or `SDL_ENABLE`, representing the processing state + * of the event before this function makes any changes to it. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetEventState + */ +extern DECLSPEC Uint8 SDLCALL SDL_EventState(Uint32 type, int state); +/* @} */ +#define SDL_GetEventState(type) SDL_EventState(type, SDL_QUERY) + +/** + * Allocate a set of user-defined events, and return the beginning event + * number for that set of events. + * + * Calling this function with `numevents` <= 0 is an error and will return + * (Uint32)-1. + * + * Note, (Uint32)-1 means the maximum unsigned 32-bit integer value (or + * 0xFFFFFFFF), but is clearer to write. + * + * \param numevents the number of events to be allocated. + * \returns the beginning event number, or (Uint32)-1 if there are not enough + * user-defined events left. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_PushEvent + */ +extern DECLSPEC Uint32 SDLCALL SDL_RegisterEvents(int numevents); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_events_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_filesystem.h b/lib/windows/include/SDL2/SDL_filesystem.h new file mode 100644 index 0000000..c72a616 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_filesystem.h @@ -0,0 +1,149 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryFilesystem + * + * Include file for filesystem SDL API functions + */ + +#ifndef SDL_filesystem_h_ +#define SDL_filesystem_h_ + +#include "SDL_stdinc.h" + +#include "begin_code.h" + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Get the directory where the application was run from. + * + * This is not necessarily a fast call, so you should call this once near + * startup and save the string if you need it. + * + * **Mac OS X and iOS Specific Functionality**: If the application is in a + * ".app" bundle, this function returns the Resource directory (e.g. + * MyApp.app/Contents/Resources/). This behaviour can be overridden by adding + * a property to the Info.plist file. Adding a string key with the name + * SDL_FILESYSTEM_BASE_DIR_TYPE with a supported value will change the + * behaviour. + * + * Supported values for the SDL_FILESYSTEM_BASE_DIR_TYPE property (Given an + * application in /Applications/SDLApp/MyApp.app): + * + * - `resource`: bundle resource directory (the default). For example: + * `/Applications/SDLApp/MyApp.app/Contents/Resources` + * - `bundle`: the Bundle directory. For example: + * `/Applications/SDLApp/MyApp.app/` + * - `parent`: the containing directory of the bundle. For example: + * `/Applications/SDLApp/` + * + * **Nintendo 3DS Specific Functionality**: This function returns "romfs" + * directory of the application as it is uncommon to store resources outside + * the executable. As such it is not a writable directory. + * + * The returned path is guaranteed to end with a path separator ('\\' on + * Windows, '/' on most other platforms). + * + * The pointer returned is owned by the caller. Please call SDL_free() on the + * pointer when done with it. + * + * \returns an absolute path in UTF-8 encoding to the application data + * directory. NULL will be returned on error or when the platform + * doesn't implement this functionality, call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.1. + * + * \sa SDL_GetPrefPath + */ +extern DECLSPEC char *SDLCALL SDL_GetBasePath(void); + +/** + * Get the user-and-app-specific path where files can be written. + * + * Get the "pref dir". This is meant to be where users can write personal + * files (preferences and save games, etc) that are specific to your + * application. This directory is unique per user, per application. + * + * This function will decide the appropriate location in the native + * filesystem, create the directory if necessary, and return a string of the + * absolute path to the directory in UTF-8 encoding. + * + * On Windows, the string might look like: + * + * `C:\\Users\\bob\\AppData\\Roaming\\My Company\\My Program Name\\` + * + * On Linux, the string might look like: + * + * `/home/bob/.local/share/My Program Name/` + * + * On Mac OS X, the string might look like: + * + * `/Users/bob/Library/Application Support/My Program Name/` + * + * You should assume the path returned by this function is the only safe place + * to write files (and that SDL_GetBasePath(), while it might be writable, or + * even the parent of the returned path, isn't where you should be writing + * things). + * + * Both the org and app strings may become part of a directory name, so please + * follow these rules: + * + * - Try to use the same org string (_including case-sensitivity_) for all + * your applications that use this function. + * - Always use a unique app string for each one, and make sure it never + * changes for an app once you've decided on it. + * - Unicode characters are legal, as long as it's UTF-8 encoded, but... + * - ...only use letters, numbers, and spaces. Avoid punctuation like "Game + * Name 2: Bad Guy's Revenge!" ... "Game Name 2" is sufficient. + * + * The returned path is guaranteed to end with a path separator ('\\' on + * Windows, '/' on most other platforms). + * + * The pointer returned is owned by the caller. Please call SDL_free() on the + * pointer when done with it. + * + * \param org the name of your organization. + * \param app the name of your application. + * \returns a UTF-8 string of the user directory in platform-dependent + * notation. NULL if there's a problem (creating directory failed, + * etc.). + * + * \since This function is available since SDL 2.0.1. + * + * \sa SDL_GetBasePath + */ +extern DECLSPEC char *SDLCALL SDL_GetPrefPath(const char *org, const char *app); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_filesystem_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_gamecontroller.h b/lib/windows/include/SDL2/SDL_gamecontroller.h new file mode 100644 index 0000000..4d8bcce --- /dev/null +++ b/lib/windows/include/SDL2/SDL_gamecontroller.h @@ -0,0 +1,1110 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* WIKI CATEGORY: GameController */ + +/** + * # CategoryGameController + * + * Include file for SDL game controller event handling + */ + +#ifndef SDL_gamecontroller_h_ +#define SDL_gamecontroller_h_ + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_rwops.h" +#include "SDL_sensor.h" +#include "SDL_joystick.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \file SDL_gamecontroller.h + * + * In order to use these functions, SDL_Init() must have been called + * with the SDL_INIT_GAMECONTROLLER flag. This causes SDL to scan the system + * for game controllers, and load appropriate drivers. + * + * If you would like to receive controller updates while the application + * is in the background, you should set the following hint before calling + * SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS + */ + +/** + * The gamecontroller structure used to identify an SDL game controller + */ +struct _SDL_GameController; +typedef struct _SDL_GameController SDL_GameController; + +typedef enum SDL_GameControllerType +{ + SDL_CONTROLLER_TYPE_UNKNOWN = 0, + SDL_CONTROLLER_TYPE_XBOX360, + SDL_CONTROLLER_TYPE_XBOXONE, + SDL_CONTROLLER_TYPE_PS3, + SDL_CONTROLLER_TYPE_PS4, + SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO, + SDL_CONTROLLER_TYPE_VIRTUAL, + SDL_CONTROLLER_TYPE_PS5, + SDL_CONTROLLER_TYPE_AMAZON_LUNA, + SDL_CONTROLLER_TYPE_GOOGLE_STADIA, + SDL_CONTROLLER_TYPE_NVIDIA_SHIELD, + SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_LEFT, + SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT, + SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_PAIR, + SDL_CONTROLLER_TYPE_MAX +} SDL_GameControllerType; + +typedef enum SDL_GameControllerBindType +{ + SDL_CONTROLLER_BINDTYPE_NONE = 0, + SDL_CONTROLLER_BINDTYPE_BUTTON, + SDL_CONTROLLER_BINDTYPE_AXIS, + SDL_CONTROLLER_BINDTYPE_HAT +} SDL_GameControllerBindType; + +/** + * Get the SDL joystick layer binding for this controller button/axis mapping + */ +typedef struct SDL_GameControllerButtonBind +{ + SDL_GameControllerBindType bindType; + union + { + int button; + int axis; + struct { + int hat; + int hat_mask; + } hat; + } value; + +} SDL_GameControllerButtonBind; + + +/** + * To count the number of game controllers in the system for the following: + * + * ```c + * int nJoysticks = SDL_NumJoysticks(); + * int nGameControllers = 0; + * for (int i = 0; i < nJoysticks; i++) { + * if (SDL_IsGameController(i)) { + * nGameControllers++; + * } + * } + * ``` + * + * Using the SDL_HINT_GAMECONTROLLERCONFIG hint or the SDL_GameControllerAddMapping() you can add support for controllers SDL is unaware of or cause an existing controller to have a different binding. The format is: + * guid,name,mappings + * + * Where GUID is the string value from SDL_JoystickGetGUIDString(), name is the human readable string for the device and mappings are controller mappings to joystick ones. + * Under Windows there is a reserved GUID of "xinput" that covers any XInput devices. + * The mapping format for joystick is: + * bX - a joystick button, index X + * hX.Y - hat X with value Y + * aX - axis X of the joystick + * Buttons can be used as a controller axis and vice versa. + * + * This string shows an example of a valid mapping for a controller + * + * ```c + * "03000000341a00003608000000000000,PS3 Controller,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7", + * ``` + */ + +/** + * Load a set of Game Controller mappings from a seekable SDL data stream. + * + * You can call this function several times, if needed, to load different + * database files. + * + * If a new mapping is loaded for an already known controller GUID, the later + * version will overwrite the one currently loaded. + * + * If this function is called before SDL_Init, SDL will generate an + * SDL_CONTROLLERDEVICEADDED event for matching controllers that are plugged + * in at the time that SDL_Init is called. + * + * Mappings not belonging to the current platform or with no platform field + * specified will be ignored (i.e. mappings for Linux will be ignored in + * Windows, etc). + * + * This function will load the text database entirely in memory before + * processing it, so take this into consideration if you are in a memory + * constrained environment. + * + * \param rw the data stream for the mappings to be added. + * \param freerw non-zero to close the stream after being read. + * \returns the number of mappings added or -1 on error; call SDL_GetError() + * for more information. + * + * \since This function is available since SDL 2.0.2. + * + * \sa SDL_GameControllerAddMapping + * \sa SDL_GameControllerAddMappingsFromFile + * \sa SDL_GameControllerMappingForGUID + * \sa SDL_CONTROLLERDEVICEADDED + */ +extern DECLSPEC int SDLCALL SDL_GameControllerAddMappingsFromRW(SDL_RWops * rw, int freerw); + +/** + * Load a set of mappings from a file, filtered by the current + * SDL_GetPlatform() + * + * Convenience macro. + */ +#define SDL_GameControllerAddMappingsFromFile(file) SDL_GameControllerAddMappingsFromRW(SDL_RWFromFile(file, "rb"), 1) + +/** + * Add support for controllers that SDL is unaware of or to cause an existing + * controller to have a different binding. + * + * The mapping string has the format "GUID,name,mapping", where GUID is the + * string value from SDL_JoystickGetGUIDString(), name is the human readable + * string for the device and mappings are controller mappings to joystick + * ones. Under Windows there is a reserved GUID of "xinput" that covers all + * XInput devices. The mapping format for joystick is: {| |bX |a joystick + * button, index X |- |hX.Y |hat X with value Y |- |aX |axis X of the joystick + * |} Buttons can be used as a controller axes and vice versa. + * + * This string shows an example of a valid mapping for a controller: + * + * ```c + * "341a3608000000000000504944564944,Afterglow PS3 Controller,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7" + * ``` + * + * If this function is called before SDL_Init, SDL will generate an + * SDL_CONTROLLERDEVICEADDED event for matching controllers that are plugged + * in at the time that SDL_Init is called. + * + * \param mappingString the mapping string. + * \returns 1 if a new mapping is added, 0 if an existing mapping is updated, + * -1 on error; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GameControllerMapping + * \sa SDL_GameControllerMappingForGUID + * \sa SDL_CONTROLLERDEVICEADDED + */ +extern DECLSPEC int SDLCALL SDL_GameControllerAddMapping(const char* mappingString); + +/** + * Get the number of mappings installed. + * + * \returns the number of mappings. + * + * \since This function is available since SDL 2.0.6. + */ +extern DECLSPEC int SDLCALL SDL_GameControllerNumMappings(void); + +/** + * Get the mapping at a particular index. + * + * \returns the mapping string. Must be freed with SDL_free(). Returns NULL if + * the index is out of range. + * + * \since This function is available since SDL 2.0.6. + */ +extern DECLSPEC char * SDLCALL SDL_GameControllerMappingForIndex(int mapping_index); + +/** + * Get the game controller mapping string for a given GUID. + * + * The returned string must be freed with SDL_free(). + * + * \param guid a structure containing the GUID for which a mapping is desired. + * \returns a mapping string or NULL on error; call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickGetDeviceGUID + * \sa SDL_JoystickGetGUID + */ +extern DECLSPEC char * SDLCALL SDL_GameControllerMappingForGUID(SDL_JoystickGUID guid); + +/** + * Get the current mapping of a Game Controller. + * + * The returned string must be freed with SDL_free(). + * + * Details about mappings are discussed with SDL_GameControllerAddMapping(). + * + * \param gamecontroller the game controller you want to get the current + * mapping for. + * \returns a string that has the controller's mapping or NULL if no mapping + * is available; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GameControllerAddMapping + * \sa SDL_GameControllerMappingForGUID + */ +extern DECLSPEC char * SDLCALL SDL_GameControllerMapping(SDL_GameController *gamecontroller); + +/** + * Check if the given joystick is supported by the game controller interface. + * + * `joystick_index` is the same as the `device_index` passed to + * SDL_JoystickOpen(). + * + * \param joystick_index the device_index of a device, up to + * SDL_NumJoysticks(). + * \returns SDL_TRUE if the given joystick is supported by the game controller + * interface, SDL_FALSE if it isn't or it's an invalid index. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GameControllerNameForIndex + * \sa SDL_GameControllerOpen + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IsGameController(int joystick_index); + +/** + * Get the implementation dependent name for the game controller. + * + * This function can be called before any controllers are opened. + * + * `joystick_index` is the same as the `device_index` passed to + * SDL_JoystickOpen(). + * + * \param joystick_index the device_index of a device, from zero to + * SDL_NumJoysticks()-1. + * \returns the implementation-dependent name for the game controller, or NULL + * if there is no name or the index is invalid. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GameControllerName + * \sa SDL_GameControllerOpen + * \sa SDL_IsGameController + */ +extern DECLSPEC const char *SDLCALL SDL_GameControllerNameForIndex(int joystick_index); + +/** + * Get the implementation dependent path for the game controller. + * + * This function can be called before any controllers are opened. + * + * `joystick_index` is the same as the `device_index` passed to + * SDL_JoystickOpen(). + * + * \param joystick_index the device_index of a device, from zero to + * SDL_NumJoysticks()-1. + * \returns the implementation-dependent path for the game controller, or NULL + * if there is no path or the index is invalid. + * + * \since This function is available since SDL 2.24.0. + * + * \sa SDL_GameControllerPath + */ +extern DECLSPEC const char *SDLCALL SDL_GameControllerPathForIndex(int joystick_index); + +/** + * Get the type of a game controller. + * + * This can be called before any controllers are opened. + * + * \param joystick_index the device_index of a device, from zero to + * SDL_NumJoysticks()-1. + * \returns the controller type. + * + * \since This function is available since SDL 2.0.12. + */ +extern DECLSPEC SDL_GameControllerType SDLCALL SDL_GameControllerTypeForIndex(int joystick_index); + +/** + * Get the mapping of a game controller. + * + * This can be called before any controllers are opened. + * + * \param joystick_index the device_index of a device, from zero to + * SDL_NumJoysticks()-1. + * \returns the mapping string. Must be freed with SDL_free(). Returns NULL if + * no mapping is available. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC char *SDLCALL SDL_GameControllerMappingForDeviceIndex(int joystick_index); + +/** + * Open a game controller for use. + * + * `joystick_index` is the same as the `device_index` passed to + * SDL_JoystickOpen(). + * + * The index passed as an argument refers to the N'th game controller on the + * system. This index is not the value which will identify this controller in + * future controller events. The joystick's instance id (SDL_JoystickID) will + * be used there instead. + * + * \param joystick_index the device_index of a device, up to + * SDL_NumJoysticks(). + * \returns a gamecontroller identifier or NULL if an error occurred; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GameControllerClose + * \sa SDL_GameControllerNameForIndex + * \sa SDL_IsGameController + */ +extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerOpen(int joystick_index); + +/** + * Get the SDL_GameController associated with an instance id. + * + * \param joyid the instance id to get the SDL_GameController for. + * \returns an SDL_GameController on success or NULL on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.4. + */ +extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerFromInstanceID(SDL_JoystickID joyid); + +/** + * Get the SDL_GameController associated with a player index. + * + * Please note that the player index is _not_ the device index, nor is it the + * instance id! + * + * \param player_index the player index, which is not the device index or the + * instance id! + * \returns the SDL_GameController associated with a player index. + * + * \since This function is available since SDL 2.0.12. + * + * \sa SDL_GameControllerGetPlayerIndex + * \sa SDL_GameControllerSetPlayerIndex + */ +extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerFromPlayerIndex(int player_index); + +/** + * Get the implementation-dependent name for an opened game controller. + * + * This is the same name as returned by SDL_GameControllerNameForIndex(), but + * it takes a controller identifier instead of the (unstable) device index. + * + * \param gamecontroller a game controller identifier previously returned by + * SDL_GameControllerOpen(). + * \returns the implementation dependent name for the game controller, or NULL + * if there is no name or the identifier passed is invalid. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GameControllerNameForIndex + * \sa SDL_GameControllerOpen + */ +extern DECLSPEC const char *SDLCALL SDL_GameControllerName(SDL_GameController *gamecontroller); + +/** + * Get the implementation-dependent path for an opened game controller. + * + * This is the same path as returned by SDL_GameControllerNameForIndex(), but + * it takes a controller identifier instead of the (unstable) device index. + * + * \param gamecontroller a game controller identifier previously returned by + * SDL_GameControllerOpen(). + * \returns the implementation dependent path for the game controller, or NULL + * if there is no path or the identifier passed is invalid. + * + * \since This function is available since SDL 2.24.0. + * + * \sa SDL_GameControllerPathForIndex + */ +extern DECLSPEC const char *SDLCALL SDL_GameControllerPath(SDL_GameController *gamecontroller); + +/** + * Get the type of this currently opened controller + * + * This is the same name as returned by SDL_GameControllerTypeForIndex(), but + * it takes a controller identifier instead of the (unstable) device index. + * + * \param gamecontroller the game controller object to query. + * \returns the controller type. + * + * \since This function is available since SDL 2.0.12. + */ +extern DECLSPEC SDL_GameControllerType SDLCALL SDL_GameControllerGetType(SDL_GameController *gamecontroller); + +/** + * Get the player index of an opened game controller. + * + * For XInput controllers this returns the XInput user index. + * + * \param gamecontroller the game controller object to query. + * \returns the player index for controller, or -1 if it's not available. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC int SDLCALL SDL_GameControllerGetPlayerIndex(SDL_GameController *gamecontroller); + +/** + * Set the player index of an opened game controller. + * + * \param gamecontroller the game controller object to adjust. + * \param player_index Player index to assign to this controller, or -1 to + * clear the player index and turn off player LEDs. + * + * \since This function is available since SDL 2.0.12. + */ +extern DECLSPEC void SDLCALL SDL_GameControllerSetPlayerIndex(SDL_GameController *gamecontroller, int player_index); + +/** + * Get the USB vendor ID of an opened controller, if available. + * + * If the vendor ID isn't available this function returns 0. + * + * \param gamecontroller the game controller object to query. + * \return the USB vendor ID, or zero if unavailable. + * + * \since This function is available since SDL 2.0.6. + */ +extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetVendor(SDL_GameController *gamecontroller); + +/** + * Get the USB product ID of an opened controller, if available. + * + * If the product ID isn't available this function returns 0. + * + * \param gamecontroller the game controller object to query. + * \return the USB product ID, or zero if unavailable. + * + * \since This function is available since SDL 2.0.6. + */ +extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetProduct(SDL_GameController *gamecontroller); + +/** + * Get the product version of an opened controller, if available. + * + * If the product version isn't available this function returns 0. + * + * \param gamecontroller the game controller object to query. + * \return the USB product version, or zero if unavailable. + * + * \since This function is available since SDL 2.0.6. + */ +extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetProductVersion(SDL_GameController *gamecontroller); + +/** + * Get the firmware version of an opened controller, if available. + * + * If the firmware version isn't available this function returns 0. + * + * \param gamecontroller the game controller object to query. + * \return the controller firmware version, or zero if unavailable. + * + * \since This function is available since SDL 2.24.0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetFirmwareVersion(SDL_GameController *gamecontroller); + +/** + * Get the serial number of an opened controller, if available. + * + * Returns the serial number of the controller, or NULL if it is not + * available. + * + * \param gamecontroller the game controller object to query. + * \return the serial number, or NULL if unavailable. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC const char * SDLCALL SDL_GameControllerGetSerial(SDL_GameController *gamecontroller); + +/** + * Get the Steam Input handle of an opened controller, if available. + * + * Returns an InputHandle_t for the controller that can be used with Steam + * Input API: https://partner.steamgames.com/doc/api/ISteamInput + * + * \param gamecontroller the game controller object to query. + * \returns the gamepad handle, or 0 if unavailable. + * + * \since This function is available since SDL 2.30.0. + */ +extern DECLSPEC Uint64 SDLCALL SDL_GameControllerGetSteamHandle(SDL_GameController *gamecontroller); + + +/** + * Check if a controller has been opened and is currently connected. + * + * \param gamecontroller a game controller identifier previously returned by + * SDL_GameControllerOpen(). + * \returns SDL_TRUE if the controller has been opened and is currently + * connected, or SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GameControllerClose + * \sa SDL_GameControllerOpen + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerGetAttached(SDL_GameController *gamecontroller); + +/** + * Get the Joystick ID from a Game Controller. + * + * This function will give you a SDL_Joystick object, which allows you to use + * the SDL_Joystick functions with a SDL_GameController object. This would be + * useful for getting a joystick's position at any given time, even if it + * hasn't moved (moving it would produce an event, which would have the axis' + * value). + * + * The pointer returned is owned by the SDL_GameController. You should not + * call SDL_JoystickClose() on it, for example, since doing so will likely + * cause SDL to crash. + * + * \param gamecontroller the game controller object that you want to get a + * joystick from. + * \returns a SDL_Joystick object; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC SDL_Joystick *SDLCALL SDL_GameControllerGetJoystick(SDL_GameController *gamecontroller); + +/** + * Query or change current state of Game Controller events. + * + * If controller events are disabled, you must call SDL_GameControllerUpdate() + * yourself and check the state of the controller when you want controller + * information. + * + * Any number can be passed to SDL_GameControllerEventState(), but only -1, 0, + * and 1 will have any effect. Other numbers will just be returned. + * + * \param state can be one of `SDL_QUERY`, `SDL_IGNORE`, or `SDL_ENABLE`. + * \returns the same value passed to the function, with exception to -1 + * (SDL_QUERY), which will return the current state. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickEventState + */ +extern DECLSPEC int SDLCALL SDL_GameControllerEventState(int state); + +/** + * Manually pump game controller updates if not using the loop. + * + * This function is called automatically by the event loop if events are + * enabled. Under such circumstances, it will not be necessary to call this + * function. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC void SDLCALL SDL_GameControllerUpdate(void); + + +/** + * The list of axes available from a controller + * + * Thumbstick axis values range from SDL_JOYSTICK_AXIS_MIN to + * SDL_JOYSTICK_AXIS_MAX, and are centered within ~8000 of zero, though + * advanced UI will allow users to set or autodetect the dead zone, which + * varies between controllers. + * + * Trigger axis values range from 0 (released) to SDL_JOYSTICK_AXIS_MAX (fully + * pressed) when reported by SDL_GameControllerGetAxis(). Note that this is + * not the same range that will be reported by the lower-level + * SDL_GetJoystickAxis(). + */ +typedef enum SDL_GameControllerAxis +{ + SDL_CONTROLLER_AXIS_INVALID = -1, + SDL_CONTROLLER_AXIS_LEFTX, + SDL_CONTROLLER_AXIS_LEFTY, + SDL_CONTROLLER_AXIS_RIGHTX, + SDL_CONTROLLER_AXIS_RIGHTY, + SDL_CONTROLLER_AXIS_TRIGGERLEFT, + SDL_CONTROLLER_AXIS_TRIGGERRIGHT, + SDL_CONTROLLER_AXIS_MAX +} SDL_GameControllerAxis; + +/** + * Convert a string into SDL_GameControllerAxis enum. + * + * This function is called internally to translate SDL_GameController mapping + * strings for the underlying joystick device into the consistent + * SDL_GameController mapping. You do not normally need to call this function + * unless you are parsing SDL_GameController mappings in your own code. + * + * Note specially that "righttrigger" and "lefttrigger" map to + * `SDL_CONTROLLER_AXIS_TRIGGERRIGHT` and `SDL_CONTROLLER_AXIS_TRIGGERLEFT`, + * respectively. + * + * \param str string representing a SDL_GameController axis. + * \returns the SDL_GameControllerAxis enum corresponding to the input string, + * or `SDL_CONTROLLER_AXIS_INVALID` if no match was found. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GameControllerGetStringForAxis + */ +extern DECLSPEC SDL_GameControllerAxis SDLCALL SDL_GameControllerGetAxisFromString(const char *str); + +/** + * Convert from an SDL_GameControllerAxis enum to a string. + * + * The caller should not SDL_free() the returned string. + * + * \param axis an enum value for a given SDL_GameControllerAxis. + * \returns a string for the given axis, or NULL if an invalid axis is + * specified. The string returned is of the format used by + * SDL_GameController mapping strings. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GameControllerGetAxisFromString + */ +extern DECLSPEC const char* SDLCALL SDL_GameControllerGetStringForAxis(SDL_GameControllerAxis axis); + +/** + * Get the SDL joystick layer binding for a controller axis mapping. + * + * \param gamecontroller a game controller. + * \param axis an axis enum value (one of the SDL_GameControllerAxis values). + * \returns a SDL_GameControllerButtonBind describing the bind. On failure + * (like the given Controller axis doesn't exist on the device), its + * `.bindType` will be `SDL_CONTROLLER_BINDTYPE_NONE`. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GameControllerGetBindForButton + */ +extern DECLSPEC SDL_GameControllerButtonBind SDLCALL +SDL_GameControllerGetBindForAxis(SDL_GameController *gamecontroller, + SDL_GameControllerAxis axis); + +/** + * Query whether a game controller has a given axis. + * + * This merely reports whether the controller's mapping defined this axis, as + * that is all the information SDL has about the physical device. + * + * \param gamecontroller a game controller. + * \param axis an axis enum value (an SDL_GameControllerAxis value). + * \returns SDL_TRUE if the controller has this axis, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC SDL_bool SDLCALL +SDL_GameControllerHasAxis(SDL_GameController *gamecontroller, SDL_GameControllerAxis axis); + +/** + * Get the current state of an axis control on a game controller. + * + * The axis indices start at index 0. + * + * For thumbsticks, the state is a value ranging from -32768 (up/left) to + * 32767 (down/right). + * + * Triggers range from 0 when released to 32767 when fully pressed, and never + * return a negative value. Note that this differs from the value reported by + * the lower-level SDL_JoystickGetAxis(), which normally uses the full range. + * + * \param gamecontroller a game controller. + * \param axis an axis index (one of the SDL_GameControllerAxis values). + * \returns axis state (including 0) on success or 0 (also) on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GameControllerGetButton + */ +extern DECLSPEC Sint16 SDLCALL +SDL_GameControllerGetAxis(SDL_GameController *gamecontroller, SDL_GameControllerAxis axis); + +/** + * The list of buttons available from a controller + */ +typedef enum SDL_GameControllerButton +{ + SDL_CONTROLLER_BUTTON_INVALID = -1, + SDL_CONTROLLER_BUTTON_A, + SDL_CONTROLLER_BUTTON_B, + SDL_CONTROLLER_BUTTON_X, + SDL_CONTROLLER_BUTTON_Y, + SDL_CONTROLLER_BUTTON_BACK, + SDL_CONTROLLER_BUTTON_GUIDE, + SDL_CONTROLLER_BUTTON_START, + SDL_CONTROLLER_BUTTON_LEFTSTICK, + SDL_CONTROLLER_BUTTON_RIGHTSTICK, + SDL_CONTROLLER_BUTTON_LEFTSHOULDER, + SDL_CONTROLLER_BUTTON_RIGHTSHOULDER, + SDL_CONTROLLER_BUTTON_DPAD_UP, + SDL_CONTROLLER_BUTTON_DPAD_DOWN, + SDL_CONTROLLER_BUTTON_DPAD_LEFT, + SDL_CONTROLLER_BUTTON_DPAD_RIGHT, + SDL_CONTROLLER_BUTTON_MISC1, /* Xbox Series X share button, PS5 microphone button, Nintendo Switch Pro capture button, Amazon Luna microphone button */ + SDL_CONTROLLER_BUTTON_PADDLE1, /* Xbox Elite paddle P1 (upper left, facing the back) */ + SDL_CONTROLLER_BUTTON_PADDLE2, /* Xbox Elite paddle P3 (upper right, facing the back) */ + SDL_CONTROLLER_BUTTON_PADDLE3, /* Xbox Elite paddle P2 (lower left, facing the back) */ + SDL_CONTROLLER_BUTTON_PADDLE4, /* Xbox Elite paddle P4 (lower right, facing the back) */ + SDL_CONTROLLER_BUTTON_TOUCHPAD, /* PS4/PS5 touchpad button */ + SDL_CONTROLLER_BUTTON_MAX +} SDL_GameControllerButton; + +/** + * Convert a string into an SDL_GameControllerButton enum. + * + * This function is called internally to translate SDL_GameController mapping + * strings for the underlying joystick device into the consistent + * SDL_GameController mapping. You do not normally need to call this function + * unless you are parsing SDL_GameController mappings in your own code. + * + * \param str string representing a SDL_GameController axis. + * \returns the SDL_GameControllerButton enum corresponding to the input + * string, or `SDL_CONTROLLER_AXIS_INVALID` if no match was found. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC SDL_GameControllerButton SDLCALL SDL_GameControllerGetButtonFromString(const char *str); + +/** + * Convert from an SDL_GameControllerButton enum to a string. + * + * The caller should not SDL_free() the returned string. + * + * \param button an enum value for a given SDL_GameControllerButton. + * \returns a string for the given button, or NULL if an invalid button is + * specified. The string returned is of the format used by + * SDL_GameController mapping strings. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GameControllerGetButtonFromString + */ +extern DECLSPEC const char* SDLCALL SDL_GameControllerGetStringForButton(SDL_GameControllerButton button); + +/** + * Get the SDL joystick layer binding for a controller button mapping. + * + * \param gamecontroller a game controller. + * \param button an button enum value (an SDL_GameControllerButton value). + * \returns a SDL_GameControllerButtonBind describing the bind. On failure + * (like the given Controller button doesn't exist on the device), + * its `.bindType` will be `SDL_CONTROLLER_BINDTYPE_NONE`. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GameControllerGetBindForAxis + */ +extern DECLSPEC SDL_GameControllerButtonBind SDLCALL +SDL_GameControllerGetBindForButton(SDL_GameController *gamecontroller, + SDL_GameControllerButton button); + +/** + * Query whether a game controller has a given button. + * + * This merely reports whether the controller's mapping defined this button, + * as that is all the information SDL has about the physical device. + * + * \param gamecontroller a game controller. + * \param button a button enum value (an SDL_GameControllerButton value). + * \returns SDL_TRUE if the controller has this button, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerHasButton(SDL_GameController *gamecontroller, + SDL_GameControllerButton button); + +/** + * Get the current state of a button on a game controller. + * + * \param gamecontroller a game controller. + * \param button a button index (one of the SDL_GameControllerButton values). + * \returns 1 for pressed state or 0 for not pressed state or error; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GameControllerGetAxis + */ +extern DECLSPEC Uint8 SDLCALL SDL_GameControllerGetButton(SDL_GameController *gamecontroller, + SDL_GameControllerButton button); + +/** + * Get the number of touchpads on a game controller. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC int SDLCALL SDL_GameControllerGetNumTouchpads(SDL_GameController *gamecontroller); + +/** + * Get the number of supported simultaneous fingers on a touchpad on a game + * controller. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC int SDLCALL SDL_GameControllerGetNumTouchpadFingers(SDL_GameController *gamecontroller, int touchpad); + +/** + * Get the current state of a finger on a touchpad on a game controller. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC int SDLCALL SDL_GameControllerGetTouchpadFinger(SDL_GameController *gamecontroller, int touchpad, int finger, Uint8 *state, float *x, float *y, float *pressure); + +/** + * Return whether a game controller has a particular sensor. + * + * \param gamecontroller The controller to query. + * \param type The type of sensor to query. + * \returns SDL_TRUE if the sensor exists, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerHasSensor(SDL_GameController *gamecontroller, SDL_SensorType type); + +/** + * Set whether data reporting for a game controller sensor is enabled. + * + * \param gamecontroller The controller to update. + * \param type The type of sensor to enable/disable. + * \param enabled Whether data reporting should be enabled. + * \returns 0 or -1 if an error occurred. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC int SDLCALL SDL_GameControllerSetSensorEnabled(SDL_GameController *gamecontroller, SDL_SensorType type, SDL_bool enabled); + +/** + * Query whether sensor data reporting is enabled for a game controller. + * + * \param gamecontroller The controller to query. + * \param type The type of sensor to query. + * \returns SDL_TRUE if the sensor is enabled, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerIsSensorEnabled(SDL_GameController *gamecontroller, SDL_SensorType type); + +/** + * Get the data rate (number of events per second) of a game controller + * sensor. + * + * \param gamecontroller The controller to query. + * \param type The type of sensor to query. + * \return the data rate, or 0.0f if the data rate is not available. + * + * \since This function is available since SDL 2.0.16. + */ +extern DECLSPEC float SDLCALL SDL_GameControllerGetSensorDataRate(SDL_GameController *gamecontroller, SDL_SensorType type); + +/** + * Get the current state of a game controller sensor. + * + * The number of values and interpretation of the data is sensor dependent. + * See SDL_sensor.h for the details for each type of sensor. + * + * \param gamecontroller The controller to query. + * \param type The type of sensor to query. + * \param data A pointer filled with the current sensor state. + * \param num_values The number of values to write to data. + * \return 0 or -1 if an error occurred. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC int SDLCALL SDL_GameControllerGetSensorData(SDL_GameController *gamecontroller, SDL_SensorType type, float *data, int num_values); + +/** + * Get the current state of a game controller sensor with the timestamp of the + * last update. + * + * The number of values and interpretation of the data is sensor dependent. + * See SDL_sensor.h for the details for each type of sensor. + * + * \param gamecontroller The controller to query. + * \param type The type of sensor to query. + * \param timestamp A pointer filled with the timestamp in microseconds of the + * current sensor reading if available, or 0 if not. + * \param data A pointer filled with the current sensor state. + * \param num_values The number of values to write to data. + * \return 0 or -1 if an error occurred. + * + * \since This function is available since SDL 2.26.0. + */ +extern DECLSPEC int SDLCALL SDL_GameControllerGetSensorDataWithTimestamp(SDL_GameController *gamecontroller, SDL_SensorType type, Uint64 *timestamp, float *data, int num_values); + +/** + * Start a rumble effect on a game controller. + * + * Each call to this function cancels any previous rumble effect, and calling + * it with 0 intensity stops any rumbling. + * + * \param gamecontroller The controller to vibrate. + * \param low_frequency_rumble The intensity of the low frequency (left) + * rumble motor, from 0 to 0xFFFF. + * \param high_frequency_rumble The intensity of the high frequency (right) + * rumble motor, from 0 to 0xFFFF. + * \param duration_ms The duration of the rumble effect, in milliseconds. + * \returns 0, or -1 if rumble isn't supported on this controller. + * + * \since This function is available since SDL 2.0.9. + * + * \sa SDL_GameControllerHasRumble + */ +extern DECLSPEC int SDLCALL SDL_GameControllerRumble(SDL_GameController *gamecontroller, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble, Uint32 duration_ms); + +/** + * Start a rumble effect in the game controller's triggers. + * + * Each call to this function cancels any previous trigger rumble effect, and + * calling it with 0 intensity stops any rumbling. + * + * Note that this is rumbling of the _triggers_ and not the game controller as + * a whole. This is currently only supported on Xbox One controllers. If you + * want the (more common) whole-controller rumble, use + * SDL_GameControllerRumble() instead. + * + * \param gamecontroller The controller to vibrate. + * \param left_rumble The intensity of the left trigger rumble motor, from 0 + * to 0xFFFF. + * \param right_rumble The intensity of the right trigger rumble motor, from 0 + * to 0xFFFF. + * \param duration_ms The duration of the rumble effect, in milliseconds. + * \returns 0, or -1 if trigger rumble isn't supported on this controller. + * + * \since This function is available since SDL 2.0.14. + * + * \sa SDL_GameControllerHasRumbleTriggers + */ +extern DECLSPEC int SDLCALL SDL_GameControllerRumbleTriggers(SDL_GameController *gamecontroller, Uint16 left_rumble, Uint16 right_rumble, Uint32 duration_ms); + +/** + * Query whether a game controller has an LED. + * + * \param gamecontroller The controller to query. + * \returns SDL_TRUE, or SDL_FALSE if this controller does not have a + * modifiable LED. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerHasLED(SDL_GameController *gamecontroller); + +/** + * Query whether a game controller has rumble support. + * + * \param gamecontroller The controller to query. + * \returns SDL_TRUE, or SDL_FALSE if this controller does not have rumble + * support. + * + * \since This function is available since SDL 2.0.18. + * + * \sa SDL_GameControllerRumble + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerHasRumble(SDL_GameController *gamecontroller); + +/** + * Query whether a game controller has rumble support on triggers. + * + * \param gamecontroller The controller to query. + * \returns SDL_TRUE, or SDL_FALSE if this controller does not have trigger + * rumble support. + * + * \since This function is available since SDL 2.0.18. + * + * \sa SDL_GameControllerRumbleTriggers + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GameControllerHasRumbleTriggers(SDL_GameController *gamecontroller); + +/** + * Update a game controller's LED color. + * + * \param gamecontroller The controller to update. + * \param red The intensity of the red LED. + * \param green The intensity of the green LED. + * \param blue The intensity of the blue LED. + * \returns 0, or -1 if this controller does not have a modifiable LED. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC int SDLCALL SDL_GameControllerSetLED(SDL_GameController *gamecontroller, Uint8 red, Uint8 green, Uint8 blue); + +/** + * Send a controller specific effect packet + * + * \param gamecontroller The controller to affect. + * \param data The data to send to the controller. + * \param size The size of the data to send to the controller. + * \returns 0, or -1 if this controller or driver doesn't support effect + * packets. + * + * \since This function is available since SDL 2.0.16. + */ +extern DECLSPEC int SDLCALL SDL_GameControllerSendEffect(SDL_GameController *gamecontroller, const void *data, int size); + +/** + * Close a game controller previously opened with SDL_GameControllerOpen(). + * + * \param gamecontroller a game controller identifier previously returned by + * SDL_GameControllerOpen(). + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GameControllerOpen + */ +extern DECLSPEC void SDLCALL SDL_GameControllerClose(SDL_GameController *gamecontroller); + +/** + * Return the sfSymbolsName for a given button on a game controller on Apple + * platforms. + * + * \param gamecontroller the controller to query. + * \param button a button on the game controller. + * \returns the sfSymbolsName or NULL if the name can't be found. + * + * \since This function is available since SDL 2.0.18. + * + * \sa SDL_GameControllerGetAppleSFSymbolsNameForAxis + */ +extern DECLSPEC const char* SDLCALL SDL_GameControllerGetAppleSFSymbolsNameForButton(SDL_GameController *gamecontroller, SDL_GameControllerButton button); + +/** + * Return the sfSymbolsName for a given axis on a game controller on Apple + * platforms. + * + * \param gamecontroller the controller to query. + * \param axis an axis on the game controller. + * \returns the sfSymbolsName or NULL if the name can't be found. + * + * \since This function is available since SDL 2.0.18. + * + * \sa SDL_GameControllerGetAppleSFSymbolsNameForButton + */ +extern DECLSPEC const char* SDLCALL SDL_GameControllerGetAppleSFSymbolsNameForAxis(SDL_GameController *gamecontroller, SDL_GameControllerAxis axis); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_gamecontroller_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_gesture.h b/lib/windows/include/SDL2/SDL_gesture.h new file mode 100644 index 0000000..acfa56f --- /dev/null +++ b/lib/windows/include/SDL2/SDL_gesture.h @@ -0,0 +1,117 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryGesture + * + * Include file for SDL gesture event handling. + */ + +#ifndef SDL_gesture_h_ +#define SDL_gesture_h_ + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_video.h" + +#include "SDL_touch.h" + + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +typedef Sint64 SDL_GestureID; + +/* Function prototypes */ + +/** + * Begin recording a gesture on a specified touch device or all touch devices. + * + * If the parameter `touchId` is -1 (i.e., all devices), this function will + * always return 1, regardless of whether there actually are any devices. + * + * \param touchId the touch device id, or -1 for all touch devices. + * \returns 1 on success or 0 if the specified device could not be found. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetTouchDevice + */ +extern DECLSPEC int SDLCALL SDL_RecordGesture(SDL_TouchID touchId); + + +/** + * Save all currently loaded Dollar Gesture templates. + * + * \param dst a SDL_RWops to save to. + * \returns the number of saved templates on success or 0 on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LoadDollarTemplates + * \sa SDL_SaveDollarTemplate + */ +extern DECLSPEC int SDLCALL SDL_SaveAllDollarTemplates(SDL_RWops *dst); + +/** + * Save a currently loaded Dollar Gesture template. + * + * \param gestureId a gesture id. + * \param dst a SDL_RWops to save to. + * \returns 1 on success or 0 on failure; call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LoadDollarTemplates + * \sa SDL_SaveAllDollarTemplates + */ +extern DECLSPEC int SDLCALL SDL_SaveDollarTemplate(SDL_GestureID gestureId,SDL_RWops *dst); + + +/** + * Load Dollar Gesture templates from a file. + * + * \param touchId a touch id. + * \param src a SDL_RWops to load from. + * \returns the number of loaded templates on success or a negative error code + * (or 0) on failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SaveAllDollarTemplates + * \sa SDL_SaveDollarTemplate + */ +extern DECLSPEC int SDLCALL SDL_LoadDollarTemplates(SDL_TouchID touchId, SDL_RWops *src); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_gesture_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_guid.h b/lib/windows/include/SDL2/SDL_guid.h new file mode 100644 index 0000000..fd9a50e --- /dev/null +++ b/lib/windows/include/SDL2/SDL_guid.h @@ -0,0 +1,107 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* WIKI CATEGORY: GUID */ + +/** + * # CategoryGUID + * + * A GUID is a 128-bit value that represents something that is uniquely + * identifiable by this value: "globally unique." + */ + +#ifndef SDL_guid_h_ +#define SDL_guid_h_ + +#include "SDL_stdinc.h" +#include "SDL_error.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * An SDL_GUID is a 128-bit identifier. + * + * This is an acronym for "Globally Unique ID." + * + * While a GUID can be used to assign a unique value to almost anything, in + * SDL these are largely used to identify input devices across runs of SDL + * programs on the same platform.If the device is detached and then + * re-attached to a different port, or if the base system is rebooted, the + * device should still report the same GUID. + * + * GUIDs are as precise as possible but are not guaranteed to distinguish + * physically distinct but equivalent devices. For example, two game + * controllers from the same vendor with the same product ID and revision may + * have the same GUID. + * + * GUIDs may be platform-dependent (i.e., the same device may report different + * GUIDs on different operating systems). + */ +typedef struct SDL_GUID { + Uint8 data[16]; +} SDL_GUID; + +/* Function prototypes */ + +/** + * Get an ASCII string representation for a given SDL_GUID. + * + * You should supply at least 33 bytes for pszGUID. + * + * \param guid the SDL_GUID you wish to convert to string. + * \param pszGUID buffer in which to write the ASCII string. + * \param cbGUID the size of pszGUID. + * + * \since This function is available since SDL 2.24.0. + * + * \sa SDL_GUIDFromString + */ +extern DECLSPEC void SDLCALL SDL_GUIDToString(SDL_GUID guid, char *pszGUID, int cbGUID); + +/** + * Convert a GUID string into a SDL_GUID structure. + * + * Performs no error checking. If this function is given a string containing + * an invalid GUID, the function will silently succeed, but the GUID generated + * will not be useful. + * + * \param pchGUID string containing an ASCII representation of a GUID. + * \returns a SDL_GUID structure. + * + * \since This function is available since SDL 2.24.0. + * + * \sa SDL_GUIDToString + */ +extern DECLSPEC SDL_GUID SDLCALL SDL_GUIDFromString(const char *pchGUID); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_guid_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_haptic.h b/lib/windows/include/SDL2/SDL_haptic.h new file mode 100644 index 0000000..f679c57 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_haptic.h @@ -0,0 +1,1354 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryHaptic + * + * SDL haptic subsystem allows you to control haptic (force feedback) devices. + * + * The basic usage is as follows: + * + * - Initialize the subsystem (SDL_INIT_HAPTIC). + * - Open a haptic device. + * - SDL_HapticOpen() to open from index. + * - SDL_HapticOpenFromJoystick() to open from an existing joystick. + * - Create an effect (SDL_HapticEffect). + * - Upload the effect with SDL_HapticNewEffect(). + * - Run the effect with SDL_HapticRunEffect(). + * - (optional) Free the effect with SDL_HapticDestroyEffect(). + * - Close the haptic device with SDL_HapticClose(). + * + * Simple rumble example: + * + * ```c + * SDL_Haptic *haptic; + * + * // Open the device + * haptic = SDL_HapticOpen( 0 ); + * if (haptic == NULL) + * return -1; + * + * // Initialize simple rumble + * if (SDL_HapticRumbleInit( haptic ) != 0) + * return -1; + * + * // Play effect at 50% strength for 2 seconds + * if (SDL_HapticRumblePlay( haptic, 0.5, 2000 ) != 0) + * return -1; + * SDL_Delay( 2000 ); + * + * // Clean up + * SDL_HapticClose( haptic ); + * ``` + * + * Complete example: + * + * ```c + * int test_haptic( SDL_Joystick * joystick ) { + * SDL_Haptic *haptic; + * SDL_HapticEffect effect; + * int effect_id; + * + * // Open the device + * haptic = SDL_HapticOpenFromJoystick( joystick ); + * if (haptic == NULL) return -1; // Most likely joystick isn't haptic + * + * // See if it can do sine waves + * if ((SDL_HapticQuery(haptic) & SDL_HAPTIC_SINE)==0) { + * SDL_HapticClose(haptic); // No sine effect + * return -1; + * } + * + * // Create the effect + * SDL_memset( &effect, 0, sizeof(SDL_HapticEffect) ); // 0 is safe default + * effect.type = SDL_HAPTIC_SINE; + * effect.periodic.direction.type = SDL_HAPTIC_POLAR; // Polar coordinates + * effect.periodic.direction.dir[0] = 18000; // Force comes from south + * effect.periodic.period = 1000; // 1000 ms + * effect.periodic.magnitude = 20000; // 20000/32767 strength + * effect.periodic.length = 5000; // 5 seconds long + * effect.periodic.attack_length = 1000; // Takes 1 second to get max strength + * effect.periodic.fade_length = 1000; // Takes 1 second to fade away + * + * // Upload the effect + * effect_id = SDL_HapticNewEffect( haptic, &effect ); + * + * // Test the effect + * SDL_HapticRunEffect( haptic, effect_id, 1 ); + * SDL_Delay( 5000); // Wait for the effect to finish + * + * // We destroy the effect, although closing the device also does this + * SDL_HapticDestroyEffect( haptic, effect_id ); + * + * // Close the device + * SDL_HapticClose(haptic); + * + * return 0; // Success + * } + * ``` + */ + +#ifndef SDL_haptic_h_ +#define SDL_haptic_h_ + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_joystick.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/* FIXME: For SDL 2.1, adjust all the magnitude variables to be Uint16 (0xFFFF). + * + * At the moment the magnitude variables are mixed between signed/unsigned, and + * it is also not made clear that ALL of those variables expect a max of 0x7FFF. + * + * Some platforms may have higher precision than that (Linux FF, Windows XInput) + * so we should fix the inconsistency in favor of higher possible precision, + * adjusting for platforms that use different scales. + * -flibit + */ + +/** + * \typedef SDL_Haptic + * + * \brief The haptic structure used to identify an SDL haptic. + * + * \sa SDL_HapticOpen + * \sa SDL_HapticOpenFromJoystick + * \sa SDL_HapticClose + */ +struct _SDL_Haptic; +typedef struct _SDL_Haptic SDL_Haptic; + + +/** + * \name Haptic features + * + * Different haptic features a device can have. + */ +/* @{ */ + +/** + * \name Haptic effects + */ +/* @{ */ + +/** + * Constant effect supported. + * + * Constant haptic effect. + * + * \sa SDL_HapticCondition + */ +#define SDL_HAPTIC_CONSTANT (1u<<0) + +/** + * Sine wave effect supported. + * + * Periodic haptic effect that simulates sine waves. + * + * \sa SDL_HapticPeriodic + */ +#define SDL_HAPTIC_SINE (1u<<1) + +/** + * Left/Right effect supported. + * + * Haptic effect for direct control over high/low frequency motors. + * + * \sa SDL_HapticLeftRight + */ +#define SDL_HAPTIC_LEFTRIGHT (1u<<2) + +/* !!! FIXME: put this back when we have more bits in 2.1 */ +/* #define SDL_HAPTIC_SQUARE (1<<2) */ + +/** + * Triangle wave effect supported. + * + * Periodic haptic effect that simulates triangular waves. + * + * \sa SDL_HapticPeriodic + */ +#define SDL_HAPTIC_TRIANGLE (1u<<3) + +/** + * Sawtoothup wave effect supported. + * + * Periodic haptic effect that simulates saw tooth up waves. + * + * \sa SDL_HapticPeriodic + */ +#define SDL_HAPTIC_SAWTOOTHUP (1u<<4) + +/** + * Sawtoothdown wave effect supported. + * + * Periodic haptic effect that simulates saw tooth down waves. + * + * \sa SDL_HapticPeriodic + */ +#define SDL_HAPTIC_SAWTOOTHDOWN (1u<<5) + +/** + * Ramp effect supported. + * + * Ramp haptic effect. + * + * \sa SDL_HapticRamp + */ +#define SDL_HAPTIC_RAMP (1u<<6) + +/** + * Spring effect supported - uses axes position. + * + * Condition haptic effect that simulates a spring. Effect is based on the + * axes position. + * + * \sa SDL_HapticCondition + */ +#define SDL_HAPTIC_SPRING (1u<<7) + +/** + * Damper effect supported - uses axes velocity. + * + * Condition haptic effect that simulates dampening. Effect is based on the + * axes velocity. + * + * \sa SDL_HapticCondition + */ +#define SDL_HAPTIC_DAMPER (1u<<8) + +/** + * Inertia effect supported - uses axes acceleration. + * + * Condition haptic effect that simulates inertia. Effect is based on the axes + * acceleration. + * + * \sa SDL_HapticCondition + */ +#define SDL_HAPTIC_INERTIA (1u<<9) + +/** + * Friction effect supported - uses axes movement. + * + * Condition haptic effect that simulates friction. Effect is based on the + * axes movement. + * + * \sa SDL_HapticCondition + */ +#define SDL_HAPTIC_FRICTION (1u<<10) + +/** + * Custom effect is supported. + * + * User defined custom haptic effect. + */ +#define SDL_HAPTIC_CUSTOM (1u<<11) + +/* @} *//* Haptic effects */ + +/* These last few are features the device has, not effects */ + +/** + * Device can set global gain. + * + * Device supports setting the global gain. + * + * \sa SDL_HapticSetGain + */ +#define SDL_HAPTIC_GAIN (1u<<12) + +/** + * Device can set autocenter. + * + * Device supports setting autocenter. + * + * \sa SDL_HapticSetAutocenter + */ +#define SDL_HAPTIC_AUTOCENTER (1u<<13) + +/** + * Device can be queried for effect status. + * + * Device supports querying effect status. + * + * \sa SDL_HapticGetEffectStatus + */ +#define SDL_HAPTIC_STATUS (1u<<14) + +/** + * Device can be paused. + * + * Devices supports being paused. + * + * \sa SDL_HapticPause + * \sa SDL_HapticUnpause + */ +#define SDL_HAPTIC_PAUSE (1u<<15) + + +/** + * \name Direction encodings + */ +/* @{ */ + +/** + * Uses polar coordinates for the direction. + * + * \sa SDL_HapticDirection + */ +#define SDL_HAPTIC_POLAR 0 + +/** + * Uses cartesian coordinates for the direction. + * + * \sa SDL_HapticDirection + */ +#define SDL_HAPTIC_CARTESIAN 1 + +/** + * Uses spherical coordinates for the direction. + * + * \sa SDL_HapticDirection + */ +#define SDL_HAPTIC_SPHERICAL 2 + +/** + * Use this value to play an effect on the steering wheel axis. + * + * This provides better compatibility across platforms and devices as SDL will + * guess the correct axis. + * + * \sa SDL_HapticDirection + */ +#define SDL_HAPTIC_STEERING_AXIS 3 + +/* @} *//* Direction encodings */ + +/* @} *//* Haptic features */ + +/* + * Misc defines. + */ + +/** + * Used to play a device an infinite number of times. + * + * \sa SDL_HapticRunEffect + */ +#define SDL_HAPTIC_INFINITY 4294967295U + + +/** + * Structure that represents a haptic direction. + * + * This is the direction where the force comes from, instead of the direction + * in which the force is exerted. + * + * Directions can be specified by: + * + * - SDL_HAPTIC_POLAR : Specified by polar coordinates. + * - SDL_HAPTIC_CARTESIAN : Specified by cartesian coordinates. + * - SDL_HAPTIC_SPHERICAL : Specified by spherical coordinates. + * + * Cardinal directions of the haptic device are relative to the positioning of + * the device. North is considered to be away from the user. + * + * The following diagram represents the cardinal directions: + * + * ``` + * .--. + * |__| .-------. + * |=.| |.-----.| + * |--| || || + * | | |'-----'| + * |__|~')_____(' + * [ COMPUTER ] + * + * + * North (0,-1) + * ^ + * | + * | + * (-1,0) West <----[ HAPTIC ]----> East (1,0) + * | + * | + * v + * South (0,1) + * + * + * [ USER ] + * \|||/ + * (o o) + * ---ooO-(_)-Ooo--- + * ``` + * + * If type is SDL_HAPTIC_POLAR, direction is encoded by hundredths of a degree + * starting north and turning clockwise. SDL_HAPTIC_POLAR only uses the first + * `dir` parameter. The cardinal directions would be: + * + * - North: 0 (0 degrees) + * - East: 9000 (90 degrees) + * - South: 18000 (180 degrees) + * - West: 27000 (270 degrees) + * + * If type is SDL_HAPTIC_CARTESIAN, direction is encoded by three positions (X + * axis, Y axis and Z axis (with 3 axes)). SDL_HAPTIC_CARTESIAN uses the first + * three `dir` parameters. The cardinal directions would be: + * + * - North: 0,-1, 0 + * - East: 1, 0, 0 + * - South: 0, 1, 0 + * - West: -1, 0, 0 + * + * The Z axis represents the height of the effect if supported, otherwise it's + * unused. In cartesian encoding (1, 2) would be the same as (2, 4), you can + * use any multiple you want, only the direction matters. + * + * If type is SDL_HAPTIC_SPHERICAL, direction is encoded by two rotations. The + * first two `dir` parameters are used. The `dir` parameters are as follows + * (all values are in hundredths of degrees): + * + * - Degrees from (1, 0) rotated towards (0, 1). + * - Degrees towards (0, 0, 1) (device needs at least 3 axes). + * + * Example of force coming from the south with all encodings (force coming + * from the south means the user will have to pull the stick to counteract): + * + * ```c + * SDL_HapticDirection direction; + * + * // Cartesian directions + * direction.type = SDL_HAPTIC_CARTESIAN; // Using cartesian direction encoding. + * direction.dir[0] = 0; // X position + * direction.dir[1] = 1; // Y position + * // Assuming the device has 2 axes, we don't need to specify third parameter. + * + * // Polar directions + * direction.type = SDL_HAPTIC_POLAR; // We'll be using polar direction encoding. + * direction.dir[0] = 18000; // Polar only uses first parameter + * + * // Spherical coordinates + * direction.type = SDL_HAPTIC_SPHERICAL; // Spherical encoding + * direction.dir[0] = 9000; // Since we only have two axes we don't need more parameters. + * ``` + * + * \sa SDL_HAPTIC_POLAR + * \sa SDL_HAPTIC_CARTESIAN + * \sa SDL_HAPTIC_SPHERICAL + * \sa SDL_HAPTIC_STEERING_AXIS + * \sa SDL_HapticEffect + * \sa SDL_HapticNumAxes + */ +typedef struct SDL_HapticDirection +{ + Uint8 type; /**< The type of encoding. */ + Sint32 dir[3]; /**< The encoded direction. */ +} SDL_HapticDirection; + + +/** + * A structure containing a template for a Constant effect. + * + * This struct is exclusively for the SDL_HAPTIC_CONSTANT effect. + * + * A constant effect applies a constant force in the specified direction to + * the joystick. + * + * \sa SDL_HAPTIC_CONSTANT + * \sa SDL_HapticEffect + */ +typedef struct SDL_HapticConstant +{ + /* Header */ + Uint16 type; /**< SDL_HAPTIC_CONSTANT */ + SDL_HapticDirection direction; /**< Direction of the effect. */ + + /* Replay */ + Uint32 length; /**< Duration of the effect. */ + Uint16 delay; /**< Delay before starting the effect. */ + + /* Trigger */ + Uint16 button; /**< Button that triggers the effect. */ + Uint16 interval; /**< How soon it can be triggered again after button. */ + + /* Constant */ + Sint16 level; /**< Strength of the constant effect. */ + + /* Envelope */ + Uint16 attack_length; /**< Duration of the attack. */ + Uint16 attack_level; /**< Level at the start of the attack. */ + Uint16 fade_length; /**< Duration of the fade. */ + Uint16 fade_level; /**< Level at the end of the fade. */ +} SDL_HapticConstant; + +/** + * A structure containing a template for a Periodic effect. + * + * The struct handles the following effects: + * + * - SDL_HAPTIC_SINE + * - SDL_HAPTIC_SQUARE + * - SDL_HAPTIC_TRIANGLE + * - SDL_HAPTIC_SAWTOOTHUP + * - SDL_HAPTIC_SAWTOOTHDOWN + * + * A periodic effect consists in a wave-shaped effect that repeats itself over + * time. The type determines the shape of the wave and the parameters + * determine the dimensions of the wave. + * + * Phase is given by hundredth of a degree meaning that giving the phase a + * value of 9000 will displace it 25% of its period. Here are sample values: + * + * - 0: No phase displacement. + * - 9000: Displaced 25% of its period. + * - 18000: Displaced 50% of its period. + * - 27000: Displaced 75% of its period. + * - 36000: Displaced 100% of its period, same as 0, but 0 is preferred. + * + * Examples: + * + * ``` + * SDL_HAPTIC_SINE + * __ __ __ __ + * / \ / \ / \ / + * / \__/ \__/ \__/ + * + * SDL_HAPTIC_SQUARE + * __ __ __ __ __ + * | | | | | | | | | | + * | |__| |__| |__| |__| | + * + * SDL_HAPTIC_TRIANGLE + * /\ /\ /\ /\ /\ + * / \ / \ / \ / \ / + * / \/ \/ \/ \/ + * + * SDL_HAPTIC_SAWTOOTHUP + * /| /| /| /| /| /| /| + * / | / | / | / | / | / | / | + * / |/ |/ |/ |/ |/ |/ | + * + * SDL_HAPTIC_SAWTOOTHDOWN + * \ |\ |\ |\ |\ |\ |\ | + * \ | \ | \ | \ | \ | \ | \ | + * \| \| \| \| \| \| \| + * ``` + * + * \sa SDL_HAPTIC_SINE + * \sa SDL_HAPTIC_LEFTRIGHT + * \sa SDL_HAPTIC_TRIANGLE + * \sa SDL_HAPTIC_SAWTOOTHUP + * \sa SDL_HAPTIC_SAWTOOTHDOWN + * \sa SDL_HapticEffect + */ +typedef struct SDL_HapticPeriodic +{ + /* Header */ + Uint16 type; /**< SDL_HAPTIC_SINE, SDL_HAPTIC_LEFTRIGHT, + SDL_HAPTIC_TRIANGLE, SDL_HAPTIC_SAWTOOTHUP or + SDL_HAPTIC_SAWTOOTHDOWN */ + SDL_HapticDirection direction; /**< Direction of the effect. */ + + /* Replay */ + Uint32 length; /**< Duration of the effect. */ + Uint16 delay; /**< Delay before starting the effect. */ + + /* Trigger */ + Uint16 button; /**< Button that triggers the effect. */ + Uint16 interval; /**< How soon it can be triggered again after button. */ + + /* Periodic */ + Uint16 period; /**< Period of the wave. */ + Sint16 magnitude; /**< Peak value; if negative, equivalent to 180 degrees extra phase shift. */ + Sint16 offset; /**< Mean value of the wave. */ + Uint16 phase; /**< Positive phase shift given by hundredth of a degree. */ + + /* Envelope */ + Uint16 attack_length; /**< Duration of the attack. */ + Uint16 attack_level; /**< Level at the start of the attack. */ + Uint16 fade_length; /**< Duration of the fade. */ + Uint16 fade_level; /**< Level at the end of the fade. */ +} SDL_HapticPeriodic; + +/** + * A structure containing a template for a Condition effect. + * + * The struct handles the following effects: + * + * - SDL_HAPTIC_SPRING: Effect based on axes position. + * - SDL_HAPTIC_DAMPER: Effect based on axes velocity. + * - SDL_HAPTIC_INERTIA: Effect based on axes acceleration. + * - SDL_HAPTIC_FRICTION: Effect based on axes movement. + * + * Direction is handled by condition internals instead of a direction member. + * The condition effect specific members have three parameters. The first + * refers to the X axis, the second refers to the Y axis and the third refers + * to the Z axis. The right terms refer to the positive side of the axis and + * the left terms refer to the negative side of the axis. Please refer to the + * SDL_HapticDirection diagram for which side is positive and which is + * negative. + * + * \sa SDL_HapticDirection + * \sa SDL_HAPTIC_SPRING + * \sa SDL_HAPTIC_DAMPER + * \sa SDL_HAPTIC_INERTIA + * \sa SDL_HAPTIC_FRICTION + * \sa SDL_HapticEffect + */ +typedef struct SDL_HapticCondition +{ + /* Header */ + Uint16 type; /**< SDL_HAPTIC_SPRING, SDL_HAPTIC_DAMPER, + SDL_HAPTIC_INERTIA or SDL_HAPTIC_FRICTION */ + SDL_HapticDirection direction; /**< Direction of the effect. */ + + /* Replay */ + Uint32 length; /**< Duration of the effect. */ + Uint16 delay; /**< Delay before starting the effect. */ + + /* Trigger */ + Uint16 button; /**< Button that triggers the effect. */ + Uint16 interval; /**< How soon it can be triggered again after button. */ + + /* Condition */ + Uint16 right_sat[3]; /**< Level when joystick is to the positive side; max 0xFFFF. */ + Uint16 left_sat[3]; /**< Level when joystick is to the negative side; max 0xFFFF. */ + Sint16 right_coeff[3]; /**< How fast to increase the force towards the positive side. */ + Sint16 left_coeff[3]; /**< How fast to increase the force towards the negative side. */ + Uint16 deadband[3]; /**< Size of the dead zone; max 0xFFFF: whole axis-range when 0-centered. */ + Sint16 center[3]; /**< Position of the dead zone. */ +} SDL_HapticCondition; + +/** + * A structure containing a template for a Ramp effect. + * + * This struct is exclusively for the SDL_HAPTIC_RAMP effect. + * + * The ramp effect starts at start strength and ends at end strength. It + * augments in linear fashion. If you use attack and fade with a ramp the + * effects get added to the ramp effect making the effect become quadratic + * instead of linear. + * + * \sa SDL_HAPTIC_RAMP + * \sa SDL_HapticEffect + */ +typedef struct SDL_HapticRamp +{ + /* Header */ + Uint16 type; /**< SDL_HAPTIC_RAMP */ + SDL_HapticDirection direction; /**< Direction of the effect. */ + + /* Replay */ + Uint32 length; /**< Duration of the effect. */ + Uint16 delay; /**< Delay before starting the effect. */ + + /* Trigger */ + Uint16 button; /**< Button that triggers the effect. */ + Uint16 interval; /**< How soon it can be triggered again after button. */ + + /* Ramp */ + Sint16 start; /**< Beginning strength level. */ + Sint16 end; /**< Ending strength level. */ + + /* Envelope */ + Uint16 attack_length; /**< Duration of the attack. */ + Uint16 attack_level; /**< Level at the start of the attack. */ + Uint16 fade_length; /**< Duration of the fade. */ + Uint16 fade_level; /**< Level at the end of the fade. */ +} SDL_HapticRamp; + +/** + * A structure containing a template for a Left/Right effect. + * + * This struct is exclusively for the SDL_HAPTIC_LEFTRIGHT effect. + * + * The Left/Right effect is used to explicitly control the large and small + * motors, commonly found in modern game controllers. The small (right) motor + * is high frequency, and the large (left) motor is low frequency. + * + * \sa SDL_HAPTIC_LEFTRIGHT + * \sa SDL_HapticEffect + */ +typedef struct SDL_HapticLeftRight +{ + /* Header */ + Uint16 type; /**< SDL_HAPTIC_LEFTRIGHT */ + + /* Replay */ + Uint32 length; /**< Duration of the effect in milliseconds. */ + + /* Rumble */ + Uint16 large_magnitude; /**< Control of the large controller motor. */ + Uint16 small_magnitude; /**< Control of the small controller motor. */ +} SDL_HapticLeftRight; + +/** + * A structure containing a template for the SDL_HAPTIC_CUSTOM effect. + * + * This struct is exclusively for the SDL_HAPTIC_CUSTOM effect. + * + * A custom force feedback effect is much like a periodic effect, where the + * application can define its exact shape. You will have to allocate the data + * yourself. Data should consist of channels * samples Uint16 samples. + * + * If channels is one, the effect is rotated using the defined direction. + * Otherwise it uses the samples in data for the different axes. + * + * \sa SDL_HAPTIC_CUSTOM + * \sa SDL_HapticEffect + */ +typedef struct SDL_HapticCustom +{ + /* Header */ + Uint16 type; /**< SDL_HAPTIC_CUSTOM */ + SDL_HapticDirection direction; /**< Direction of the effect. */ + + /* Replay */ + Uint32 length; /**< Duration of the effect. */ + Uint16 delay; /**< Delay before starting the effect. */ + + /* Trigger */ + Uint16 button; /**< Button that triggers the effect. */ + Uint16 interval; /**< How soon it can be triggered again after button. */ + + /* Custom */ + Uint8 channels; /**< Axes to use, minimum of one. */ + Uint16 period; /**< Sample periods. */ + Uint16 samples; /**< Amount of samples. */ + Uint16 *data; /**< Should contain channels*samples items. */ + + /* Envelope */ + Uint16 attack_length; /**< Duration of the attack. */ + Uint16 attack_level; /**< Level at the start of the attack. */ + Uint16 fade_length; /**< Duration of the fade. */ + Uint16 fade_level; /**< Level at the end of the fade. */ +} SDL_HapticCustom; + +/** + * The generic template for any haptic effect. + * + * All values max at 32767 (0x7FFF). Signed values also can be negative. Time + * values unless specified otherwise are in milliseconds. + * + * You can also pass SDL_HAPTIC_INFINITY to length instead of a 0-32767 value. + * Neither delay, interval, attack_length nor fade_length support + * SDL_HAPTIC_INFINITY. Fade will also not be used since effect never ends. + * + * Additionally, the SDL_HAPTIC_RAMP effect does not support a duration of + * SDL_HAPTIC_INFINITY. + * + * Button triggers may not be supported on all devices, it is advised to not + * use them if possible. Buttons start at index 1 instead of index 0 like the + * joystick. + * + * If both attack_length and fade_level are 0, the envelope is not used, + * otherwise both values are used. + * + * Common parts: + * + * ```c + * // Replay - All effects have this + * Uint32 length; // Duration of effect (ms). + * Uint16 delay; // Delay before starting effect. + * + * // Trigger - All effects have this + * Uint16 button; // Button that triggers effect. + * Uint16 interval; // How soon before effect can be triggered again. + * + * // Envelope - All effects except condition effects have this + * Uint16 attack_length; // Duration of the attack (ms). + * Uint16 attack_level; // Level at the start of the attack. + * Uint16 fade_length; // Duration of the fade out (ms). + * Uint16 fade_level; // Level at the end of the fade. + * ``` + * + * Here we have an example of a constant effect evolution in time: + * + * ``` + * Strength + * ^ + * | + * | effect level --> _________________ + * | / \ + * | / \ + * | / \ + * | / \ + * | attack_level --> | \ + * | | | <--- fade_level + * | + * +--------------------------------------------------> Time + * [--] [---] + * attack_length fade_length + * + * [------------------][-----------------------] + * delay length + * ``` + * + * Note either the attack_level or the fade_level may be above the actual + * effect level. + * + * \sa SDL_HapticConstant + * \sa SDL_HapticPeriodic + * \sa SDL_HapticCondition + * \sa SDL_HapticRamp + * \sa SDL_HapticLeftRight + * \sa SDL_HapticCustom + */ +typedef union SDL_HapticEffect +{ + /* Common for all force feedback effects */ + Uint16 type; /**< Effect type. */ + SDL_HapticConstant constant; /**< Constant effect. */ + SDL_HapticPeriodic periodic; /**< Periodic effect. */ + SDL_HapticCondition condition; /**< Condition effect. */ + SDL_HapticRamp ramp; /**< Ramp effect. */ + SDL_HapticLeftRight leftright; /**< Left/Right effect. */ + SDL_HapticCustom custom; /**< Custom effect. */ +} SDL_HapticEffect; + + +/* Function prototypes */ + +/** + * Count the number of haptic devices attached to the system. + * + * \returns the number of haptic devices detected on the system or a negative + * error code on failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticName + */ +extern DECLSPEC int SDLCALL SDL_NumHaptics(void); + +/** + * Get the implementation dependent name of a haptic device. + * + * This can be called before any joysticks are opened. If no name can be + * found, this function returns NULL. + * + * \param device_index index of the device to query. + * \returns the name of the device or NULL on failure; call SDL_GetError() for + * more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_NumHaptics + */ +extern DECLSPEC const char *SDLCALL SDL_HapticName(int device_index); + +/** + * Open a haptic device for use. + * + * The index passed as an argument refers to the N'th haptic device on this + * system. + * + * When opening a haptic device, its gain will be set to maximum and + * autocenter will be disabled. To modify these values use SDL_HapticSetGain() + * and SDL_HapticSetAutocenter(). + * + * \param device_index index of the device to open. + * \returns the device identifier or NULL on failure; call SDL_GetError() for + * more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticClose + * \sa SDL_HapticIndex + * \sa SDL_HapticOpenFromJoystick + * \sa SDL_HapticOpenFromMouse + * \sa SDL_HapticPause + * \sa SDL_HapticSetAutocenter + * \sa SDL_HapticSetGain + * \sa SDL_HapticStopAll + */ +extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpen(int device_index); + +/** + * Check if the haptic device at the designated index has been opened. + * + * \param device_index the index of the device to query. + * \returns 1 if it has been opened, 0 if it hasn't or on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticIndex + * \sa SDL_HapticOpen + */ +extern DECLSPEC int SDLCALL SDL_HapticOpened(int device_index); + +/** + * Get the index of a haptic device. + * + * \param haptic the SDL_Haptic device to query. + * \returns the index of the specified haptic device or a negative error code + * on failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticOpen + * \sa SDL_HapticOpened + */ +extern DECLSPEC int SDLCALL SDL_HapticIndex(SDL_Haptic * haptic); + +/** + * Query whether or not the current mouse has haptic capabilities. + * + * \returns SDL_TRUE if the mouse is haptic or SDL_FALSE if it isn't. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticOpenFromMouse + */ +extern DECLSPEC int SDLCALL SDL_MouseIsHaptic(void); + +/** + * Try to open a haptic device from the current mouse. + * + * \returns the haptic device identifier or NULL on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticOpen + * \sa SDL_MouseIsHaptic + */ +extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpenFromMouse(void); + +/** + * Query if a joystick has haptic features. + * + * \param joystick the SDL_Joystick to test for haptic capabilities. + * \returns SDL_TRUE if the joystick is haptic, SDL_FALSE if it isn't, or a + * negative error code on failure; call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticOpenFromJoystick + */ +extern DECLSPEC int SDLCALL SDL_JoystickIsHaptic(SDL_Joystick * joystick); + +/** + * Open a haptic device for use from a joystick device. + * + * You must still close the haptic device separately. It will not be closed + * with the joystick. + * + * When opened from a joystick you should first close the haptic device before + * closing the joystick device. If not, on some implementations the haptic + * device will also get unallocated and you'll be unable to use force feedback + * on that device. + * + * \param joystick the SDL_Joystick to create a haptic device from. + * \returns a valid haptic device identifier on success or NULL on failure; + * call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticClose + * \sa SDL_HapticOpen + * \sa SDL_JoystickIsHaptic + */ +extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpenFromJoystick(SDL_Joystick * + joystick); + +/** + * Close a haptic device previously opened with SDL_HapticOpen(). + * + * \param haptic the SDL_Haptic device to close. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticOpen + */ +extern DECLSPEC void SDLCALL SDL_HapticClose(SDL_Haptic * haptic); + +/** + * Get the number of effects a haptic device can store. + * + * On some platforms this isn't fully supported, and therefore is an + * approximation. Always check to see if your created effect was actually + * created and do not rely solely on SDL_HapticNumEffects(). + * + * \param haptic the SDL_Haptic device to query. + * \returns the number of effects the haptic device can store or a negative + * error code on failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticNumEffectsPlaying + * \sa SDL_HapticQuery + */ +extern DECLSPEC int SDLCALL SDL_HapticNumEffects(SDL_Haptic * haptic); + +/** + * Get the number of effects a haptic device can play at the same time. + * + * This is not supported on all platforms, but will always return a value. + * + * \param haptic the SDL_Haptic device to query maximum playing effects. + * \returns the number of effects the haptic device can play at the same time + * or a negative error code on failure; call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticNumEffects + * \sa SDL_HapticQuery + */ +extern DECLSPEC int SDLCALL SDL_HapticNumEffectsPlaying(SDL_Haptic * haptic); + +/** + * Get the haptic device's supported features in bitwise manner. + * + * \param haptic the SDL_Haptic device to query. + * \returns a list of supported haptic features in bitwise manner (OR'd), or 0 + * on failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticEffectSupported + * \sa SDL_HapticNumEffects + */ +extern DECLSPEC unsigned int SDLCALL SDL_HapticQuery(SDL_Haptic * haptic); + + +/** + * Get the number of haptic axes the device has. + * + * The number of haptic axes might be useful if working with the + * SDL_HapticDirection effect. + * + * \param haptic the SDL_Haptic device to query. + * \returns the number of axes on success or a negative error code on failure; + * call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC int SDLCALL SDL_HapticNumAxes(SDL_Haptic * haptic); + +/** + * Check to see if an effect is supported by a haptic device. + * + * \param haptic the SDL_Haptic device to query. + * \param effect the desired effect to query. + * \returns SDL_TRUE if effect is supported, SDL_FALSE if it isn't, or a + * negative error code on failure; call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticNewEffect + * \sa SDL_HapticQuery + */ +extern DECLSPEC int SDLCALL SDL_HapticEffectSupported(SDL_Haptic * haptic, + SDL_HapticEffect * + effect); + +/** + * Create a new haptic effect on a specified device. + * + * \param haptic an SDL_Haptic device to create the effect on. + * \param effect an SDL_HapticEffect structure containing the properties of + * the effect to create. + * \returns the ID of the effect on success or a negative error code on + * failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticDestroyEffect + * \sa SDL_HapticRunEffect + * \sa SDL_HapticUpdateEffect + */ +extern DECLSPEC int SDLCALL SDL_HapticNewEffect(SDL_Haptic * haptic, + SDL_HapticEffect * effect); + +/** + * Update the properties of an effect. + * + * Can be used dynamically, although behavior when dynamically changing + * direction may be strange. Specifically the effect may re-upload itself and + * start playing from the start. You also cannot change the type either when + * running SDL_HapticUpdateEffect(). + * + * \param haptic the SDL_Haptic device that has the effect. + * \param effect the identifier of the effect to update. + * \param data an SDL_HapticEffect structure containing the new effect + * properties to use. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticDestroyEffect + * \sa SDL_HapticNewEffect + * \sa SDL_HapticRunEffect + */ +extern DECLSPEC int SDLCALL SDL_HapticUpdateEffect(SDL_Haptic * haptic, + int effect, + SDL_HapticEffect * data); + +/** + * Run the haptic effect on its associated haptic device. + * + * To repeat the effect over and over indefinitely, set `iterations` to + * `SDL_HAPTIC_INFINITY`. (Repeats the envelope - attack and fade.) To make + * one instance of the effect last indefinitely (so the effect does not fade), + * set the effect's `length` in its structure/union to `SDL_HAPTIC_INFINITY` + * instead. + * + * \param haptic the SDL_Haptic device to run the effect on. + * \param effect the ID of the haptic effect to run. + * \param iterations the number of iterations to run the effect; use + * `SDL_HAPTIC_INFINITY` to repeat forever. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticDestroyEffect + * \sa SDL_HapticGetEffectStatus + * \sa SDL_HapticStopEffect + */ +extern DECLSPEC int SDLCALL SDL_HapticRunEffect(SDL_Haptic * haptic, + int effect, + Uint32 iterations); + +/** + * Stop the haptic effect on its associated haptic device. + * + * * + * + * \param haptic the SDL_Haptic device to stop the effect on. + * \param effect the ID of the haptic effect to stop. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticDestroyEffect + * \sa SDL_HapticRunEffect + */ +extern DECLSPEC int SDLCALL SDL_HapticStopEffect(SDL_Haptic * haptic, + int effect); + +/** + * Destroy a haptic effect on the device. + * + * This will stop the effect if it's running. Effects are automatically + * destroyed when the device is closed. + * + * \param haptic the SDL_Haptic device to destroy the effect on. + * \param effect the ID of the haptic effect to destroy. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticNewEffect + */ +extern DECLSPEC void SDLCALL SDL_HapticDestroyEffect(SDL_Haptic * haptic, + int effect); + +/** + * Get the status of the current effect on the specified haptic device. + * + * Device must support the SDL_HAPTIC_STATUS feature. + * + * \param haptic the SDL_Haptic device to query for the effect status on. + * \param effect the ID of the haptic effect to query its status. + * \returns 0 if it isn't playing, 1 if it is playing, or a negative error + * code on failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticRunEffect + * \sa SDL_HapticStopEffect + */ +extern DECLSPEC int SDLCALL SDL_HapticGetEffectStatus(SDL_Haptic * haptic, + int effect); + +/** + * Set the global gain of the specified haptic device. + * + * Device must support the SDL_HAPTIC_GAIN feature. + * + * The user may specify the maximum gain by setting the environment variable + * `SDL_HAPTIC_GAIN_MAX` which should be between 0 and 100. All calls to + * SDL_HapticSetGain() will scale linearly using `SDL_HAPTIC_GAIN_MAX` as the + * maximum. + * + * \param haptic the SDL_Haptic device to set the gain on. + * \param gain value to set the gain to, should be between 0 and 100 (0 - + * 100). + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticQuery + */ +extern DECLSPEC int SDLCALL SDL_HapticSetGain(SDL_Haptic * haptic, int gain); + +/** + * Set the global autocenter of the device. + * + * Autocenter should be between 0 and 100. Setting it to 0 will disable + * autocentering. + * + * Device must support the SDL_HAPTIC_AUTOCENTER feature. + * + * \param haptic the SDL_Haptic device to set autocentering on. + * \param autocenter value to set autocenter to (0-100). + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticQuery + */ +extern DECLSPEC int SDLCALL SDL_HapticSetAutocenter(SDL_Haptic * haptic, + int autocenter); + +/** + * Pause a haptic device. + * + * Device must support the `SDL_HAPTIC_PAUSE` feature. Call + * SDL_HapticUnpause() to resume playback. + * + * Do not modify the effects nor add new ones while the device is paused. That + * can cause all sorts of weird errors. + * + * \param haptic the SDL_Haptic device to pause. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticUnpause + */ +extern DECLSPEC int SDLCALL SDL_HapticPause(SDL_Haptic * haptic); + +/** + * Unpause a haptic device. + * + * Call to unpause after SDL_HapticPause(). + * + * \param haptic the SDL_Haptic device to unpause. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticPause + */ +extern DECLSPEC int SDLCALL SDL_HapticUnpause(SDL_Haptic * haptic); + +/** + * Stop all the currently playing effects on a haptic device. + * + * \param haptic the SDL_Haptic device to stop. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC int SDLCALL SDL_HapticStopAll(SDL_Haptic * haptic); + +/** + * Check whether rumble is supported on a haptic device. + * + * \param haptic haptic device to check for rumble support. + * \returns SDL_TRUE if effect is supported, SDL_FALSE if it isn't, or a + * negative error code on failure; call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticRumbleInit + * \sa SDL_HapticRumblePlay + * \sa SDL_HapticRumbleStop + */ +extern DECLSPEC int SDLCALL SDL_HapticRumbleSupported(SDL_Haptic * haptic); + +/** + * Initialize a haptic device for simple rumble playback. + * + * \param haptic the haptic device to initialize for simple rumble playback. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticOpen + * \sa SDL_HapticRumblePlay + * \sa SDL_HapticRumbleStop + * \sa SDL_HapticRumbleSupported + */ +extern DECLSPEC int SDLCALL SDL_HapticRumbleInit(SDL_Haptic * haptic); + +/** + * Run a simple rumble effect on a haptic device. + * + * \param haptic the haptic device to play the rumble effect on. + * \param strength strength of the rumble to play as a 0-1 float value. + * \param length length of the rumble to play in milliseconds. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticRumbleInit + * \sa SDL_HapticRumbleStop + * \sa SDL_HapticRumbleSupported + */ +extern DECLSPEC int SDLCALL SDL_HapticRumblePlay(SDL_Haptic * haptic, float strength, Uint32 length ); + +/** + * Stop the simple rumble on a haptic device. + * + * \param haptic the haptic device to stop the rumble effect on. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HapticRumbleInit + * \sa SDL_HapticRumblePlay + * \sa SDL_HapticRumbleSupported + */ +extern DECLSPEC int SDLCALL SDL_HapticRumbleStop(SDL_Haptic * haptic); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_haptic_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_hidapi.h b/lib/windows/include/SDL2/SDL_hidapi.h new file mode 100644 index 0000000..b14442a --- /dev/null +++ b/lib/windows/include/SDL2/SDL_hidapi.h @@ -0,0 +1,443 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* WIKI CATEGORY: HIDAPI */ + +/** + * # CategoryHIDAPI + * + * Header file for SDL HIDAPI functions. + * + * This is an adaptation of the original HIDAPI interface by Alan Ott, and + * includes source code licensed under the following license: + * + * ``` + * HIDAPI - Multi-Platform library for + * communication with HID devices. + * + * Copyright 2009, Alan Ott, Signal 11 Software. + * All Rights Reserved. + * + * This software may be used by anyone for any reason so + * long as the copyright notice in the source files + * remains intact. + * ``` + * + * (Note that this license is the same as item three of SDL's zlib license, so + * it adds no new requirements on the user.) + * + * If you would like a version of SDL without this code, you can build SDL + * with SDL_HIDAPI_DISABLED defined to 1. You might want to do this for + * example on iOS or tvOS to avoid a dependency on the CoreBluetooth + * framework. + */ + +#ifndef SDL_hidapi_h_ +#define SDL_hidapi_h_ + +#include "SDL_stdinc.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * A handle representing an open HID device + */ +struct SDL_hid_device_; +typedef struct SDL_hid_device_ SDL_hid_device; /**< opaque hidapi structure */ + +/** hidapi info structure */ + +/** + * Information about a connected HID device + */ +typedef struct SDL_hid_device_info +{ + /** Platform-specific device path */ + char *path; + /** Device Vendor ID */ + unsigned short vendor_id; + /** Device Product ID */ + unsigned short product_id; + /** Serial Number */ + wchar_t *serial_number; + /** Device Release Number in binary-coded decimal, + also known as Device Version Number */ + unsigned short release_number; + /** Manufacturer String */ + wchar_t *manufacturer_string; + /** Product string */ + wchar_t *product_string; + /** Usage Page for this Device/Interface + (Windows/Mac only). */ + unsigned short usage_page; + /** Usage for this Device/Interface + (Windows/Mac only).*/ + unsigned short usage; + /** The USB interface which this logical device + represents. + + * Valid on both Linux implementations in all cases. + * Valid on the Windows implementation only if the device + contains more than one interface. */ + int interface_number; + + /** Additional information about the USB interface. + Valid on libusb and Android implementations. */ + int interface_class; + int interface_subclass; + int interface_protocol; + + /** Pointer to the next device */ + struct SDL_hid_device_info *next; +} SDL_hid_device_info; + + +/** + * Initialize the HIDAPI library. + * + * This function initializes the HIDAPI library. Calling it is not strictly + * necessary, as it will be called automatically by SDL_hid_enumerate() and + * any of the SDL_hid_open_*() functions if it is needed. This function should + * be called at the beginning of execution however, if there is a chance of + * HIDAPI handles being opened by different threads simultaneously. + * + * Each call to this function should have a matching call to SDL_hid_exit() + * + * \returns 0 on success and -1 on error. + * + * \since This function is available since SDL 2.0.18. + * + * \sa SDL_hid_exit + */ +extern DECLSPEC int SDLCALL SDL_hid_init(void); + +/** + * Finalize the HIDAPI library. + * + * This function frees all of the static data associated with HIDAPI. It + * should be called at the end of execution to avoid memory leaks. + * + * \returns 0 on success and -1 on error. + * + * \since This function is available since SDL 2.0.18. + * + * \sa SDL_hid_init + */ +extern DECLSPEC int SDLCALL SDL_hid_exit(void); + +/** + * Check to see if devices may have been added or removed. + * + * Enumerating the HID devices is an expensive operation, so you can call this + * to see if there have been any system device changes since the last call to + * this function. A change in the counter returned doesn't necessarily mean + * that anything has changed, but you can call SDL_hid_enumerate() to get an + * updated device list. + * + * Calling this function for the first time may cause a thread or other system + * resource to be allocated to track device change notifications. + * + * \returns a change counter that is incremented with each potential device + * change, or 0 if device change detection isn't available. + * + * \since This function is available since SDL 2.0.18. + * + * \sa SDL_hid_enumerate + */ +extern DECLSPEC Uint32 SDLCALL SDL_hid_device_change_count(void); + +/** + * Enumerate the HID Devices. + * + * This function returns a linked list of all the HID devices attached to the + * system which match vendor_id and product_id. If `vendor_id` is set to 0 + * then any vendor matches. If `product_id` is set to 0 then any product + * matches. If `vendor_id` and `product_id` are both set to 0, then all HID + * devices will be returned. + * + * \param vendor_id The Vendor ID (VID) of the types of device to open. + * \param product_id The Product ID (PID) of the types of device to open. + * \returns a pointer to a linked list of type SDL_hid_device_info, containing + * information about the HID devices attached to the system, or NULL + * in the case of failure. Free this linked list by calling + * SDL_hid_free_enumeration(). + * + * \since This function is available since SDL 2.0.18. + * + * \sa SDL_hid_device_change_count + */ +extern DECLSPEC SDL_hid_device_info * SDLCALL SDL_hid_enumerate(unsigned short vendor_id, unsigned short product_id); + +/** + * Free an enumeration Linked List + * + * This function frees a linked list created by SDL_hid_enumerate(). + * + * \param devs Pointer to a list of struct_device returned from + * SDL_hid_enumerate(). + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC void SDLCALL SDL_hid_free_enumeration(SDL_hid_device_info *devs); + +/** + * Open a HID device using a Vendor ID (VID), Product ID (PID) and optionally + * a serial number. + * + * If `serial_number` is NULL, the first device with the specified VID and PID + * is opened. + * + * \param vendor_id The Vendor ID (VID) of the device to open. + * \param product_id The Product ID (PID) of the device to open. + * \param serial_number The Serial Number of the device to open (Optionally + * NULL). + * \returns a pointer to a SDL_hid_device object on success or NULL on + * failure. + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC SDL_hid_device * SDLCALL SDL_hid_open(unsigned short vendor_id, unsigned short product_id, const wchar_t *serial_number); + +/** + * Open a HID device by its path name. + * + * The path name be determined by calling SDL_hid_enumerate(), or a + * platform-specific path name can be used (eg: /dev/hidraw0 on Linux). + * + * \param path The path name of the device to open. + * \returns a pointer to a SDL_hid_device object on success or NULL on + * failure. + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC SDL_hid_device * SDLCALL SDL_hid_open_path(const char *path, int bExclusive); + +/** + * Write an Output report to a HID device. + * + * The first byte of `data` must contain the Report ID. For devices which only + * support a single report, this must be set to 0x0. The remaining bytes + * contain the report data. Since the Report ID is mandatory, calls to + * SDL_hid_write() will always contain one more byte than the report contains. + * For example, if a hid report is 16 bytes long, 17 bytes must be passed to + * SDL_hid_write(), the Report ID (or 0x0, for devices with a single report), + * followed by the report data (16 bytes). In this example, the length passed + * in would be 17. + * + * SDL_hid_write() will send the data on the first OUT endpoint, if one + * exists. If it does not, it will send the data through the Control Endpoint + * (Endpoint 0). + * + * \param dev A device handle returned from SDL_hid_open(). + * \param data The data to send, including the report number as the first + * byte. + * \param length The length in bytes of the data to send. + * \returns the actual number of bytes written and -1 on error. + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC int SDLCALL SDL_hid_write(SDL_hid_device *dev, const unsigned char *data, size_t length); + +/** + * Read an Input report from a HID device with timeout. + * + * Input reports are returned to the host through the INTERRUPT IN endpoint. + * The first byte will contain the Report number if the device uses numbered + * reports. + * + * \param dev A device handle returned from SDL_hid_open(). + * \param data A buffer to put the read data into. + * \param length The number of bytes to read. For devices with multiple + * reports, make sure to read an extra byte for the report + * number. + * \param milliseconds timeout in milliseconds or -1 for blocking wait. + * \returns the actual number of bytes read and -1 on error. If no packet was + * available to be read within the timeout period, this function + * returns 0. + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC int SDLCALL SDL_hid_read_timeout(SDL_hid_device *dev, unsigned char *data, size_t length, int milliseconds); + +/** + * Read an Input report from a HID device. + * + * Input reports are returned to the host through the INTERRUPT IN endpoint. + * The first byte will contain the Report number if the device uses numbered + * reports. + * + * \param dev A device handle returned from SDL_hid_open(). + * \param data A buffer to put the read data into. + * \param length The number of bytes to read. For devices with multiple + * reports, make sure to read an extra byte for the report + * number. + * \returns the actual number of bytes read and -1 on error. If no packet was + * available to be read and the handle is in non-blocking mode, this + * function returns 0. + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC int SDLCALL SDL_hid_read(SDL_hid_device *dev, unsigned char *data, size_t length); + +/** + * Set the device handle to be non-blocking. + * + * In non-blocking mode calls to SDL_hid_read() will return immediately with a + * value of 0 if there is no data to be read. In blocking mode, SDL_hid_read() + * will wait (block) until there is data to read before returning. + * + * Nonblocking can be turned on and off at any time. + * + * \param dev A device handle returned from SDL_hid_open(). + * \param nonblock enable or not the nonblocking reads - 1 to enable + * nonblocking - 0 to disable nonblocking. + * \returns 0 on success and -1 on error. + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC int SDLCALL SDL_hid_set_nonblocking(SDL_hid_device *dev, int nonblock); + +/** + * Send a Feature report to the device. + * + * Feature reports are sent over the Control endpoint as a Set_Report + * transfer. The first byte of `data` must contain the Report ID. For devices + * which only support a single report, this must be set to 0x0. The remaining + * bytes contain the report data. Since the Report ID is mandatory, calls to + * SDL_hid_send_feature_report() will always contain one more byte than the + * report contains. For example, if a hid report is 16 bytes long, 17 bytes + * must be passed to SDL_hid_send_feature_report(): the Report ID (or 0x0, for + * devices which do not use numbered reports), followed by the report data (16 + * bytes). In this example, the length passed in would be 17. + * + * \param dev A device handle returned from SDL_hid_open(). + * \param data The data to send, including the report number as the first + * byte. + * \param length The length in bytes of the data to send, including the report + * number. + * \returns the actual number of bytes written and -1 on error. + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC int SDLCALL SDL_hid_send_feature_report(SDL_hid_device *dev, const unsigned char *data, size_t length); + +/** + * Get a feature report from a HID device. + * + * Set the first byte of `data` to the Report ID of the report to be read. + * Make sure to allow space for this extra byte in `data`. Upon return, the + * first byte will still contain the Report ID, and the report data will start + * in data[1]. + * + * \param dev A device handle returned from SDL_hid_open(). + * \param data A buffer to put the read data into, including the Report ID. + * Set the first byte of `data` to the Report ID of the report to + * be read, or set it to zero if your device does not use numbered + * reports. + * \param length The number of bytes to read, including an extra byte for the + * report ID. The buffer can be longer than the actual report. + * \returns the number of bytes read plus one for the report ID (which is + * still in the first byte), or -1 on error. + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC int SDLCALL SDL_hid_get_feature_report(SDL_hid_device *dev, unsigned char *data, size_t length); + +/** + * Close a HID device. + * + * \param dev A device handle returned from SDL_hid_open(). + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC void SDLCALL SDL_hid_close(SDL_hid_device *dev); + +/** + * Get The Manufacturer String from a HID device. + * + * \param dev A device handle returned from SDL_hid_open(). + * \param string A wide string buffer to put the data into. + * \param maxlen The length of the buffer in multiples of wchar_t. + * \returns 0 on success and -1 on error. + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC int SDLCALL SDL_hid_get_manufacturer_string(SDL_hid_device *dev, wchar_t *string, size_t maxlen); + +/** + * Get The Product String from a HID device. + * + * \param dev A device handle returned from SDL_hid_open(). + * \param string A wide string buffer to put the data into. + * \param maxlen The length of the buffer in multiples of wchar_t. + * \returns 0 on success and -1 on error. + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC int SDLCALL SDL_hid_get_product_string(SDL_hid_device *dev, wchar_t *string, size_t maxlen); + +/** + * Get The Serial Number String from a HID device. + * + * \param dev A device handle returned from SDL_hid_open(). + * \param string A wide string buffer to put the data into. + * \param maxlen The length of the buffer in multiples of wchar_t. + * \returns 0 on success and -1 on error. + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC int SDLCALL SDL_hid_get_serial_number_string(SDL_hid_device *dev, wchar_t *string, size_t maxlen); + +/** + * Get a string from a HID device, based on its string index. + * + * \param dev A device handle returned from SDL_hid_open(). + * \param string_index The index of the string to get. + * \param string A wide string buffer to put the data into. + * \param maxlen The length of the buffer in multiples of wchar_t. + * \returns 0 on success and -1 on error. + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC int SDLCALL SDL_hid_get_indexed_string(SDL_hid_device *dev, int string_index, wchar_t *string, size_t maxlen); + +/** + * Start or stop a BLE scan on iOS and tvOS to pair Steam Controllers + * + * \param active SDL_TRUE to start the scan, SDL_FALSE to stop the scan. + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC void SDLCALL SDL_hid_ble_scan(SDL_bool active); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_hidapi_h_ */ + +/* vi: set sts=4 ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_hints.h b/lib/windows/include/SDL2/SDL_hints.h new file mode 100644 index 0000000..6713d01 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_hints.h @@ -0,0 +1,3303 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryHints + * + * Official documentation for SDL configuration variables + * + * This file contains functions to set and get configuration hints, as well as + * listing each of them alphabetically. + * + * The convention for naming hints is SDL_HINT_X, where "SDL_X" is the + * environment variable that can be used to override the default. + * + * In general these hints are just that - they may or may not be supported or + * applicable on any given platform, but they provide a way for an application + * or user to give the library a hint as to how they would like the library to + * work. + */ + +#ifndef SDL_hints_h_ +#define SDL_hints_h_ + +#include "SDL_stdinc.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * A variable controlling whether the Android / iOS built-in accelerometer + * should be listed as a joystick device. + * + * This variable can be set to the following values: + * + * - "0": The accelerometer is not listed as a joystick + * - "1": The accelerometer is available as a 3 axis joystick (the default). + */ +#define SDL_HINT_ACCELEROMETER_AS_JOYSTICK "SDL_ACCELEROMETER_AS_JOYSTICK" + +/** + * Specify the behavior of Alt+Tab while the keyboard is grabbed. + * + * By default, SDL emulates Alt+Tab functionality while the keyboard is + * grabbed and your window is full-screen. This prevents the user from getting + * stuck in your application if you've enabled keyboard grab. + * + * The variable can be set to the following values: + * + * - "0": SDL will not handle Alt+Tab. Your application is responsible for + * handling Alt+Tab while the keyboard is grabbed. + * - "1": SDL will minimize your window when Alt+Tab is pressed (default) + */ +#define SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED "SDL_ALLOW_ALT_TAB_WHILE_GRABBED" + +/** + * If set to "0" then never set the top most bit on a SDL Window, even if the + * video mode expects it. + * + * This is a debugging aid for developers and not expected to be used by end + * users. The default is "1" + * + * This variable can be set to the following values: + * + * - "0": don't allow topmost + * - "1": allow topmost + */ +#define SDL_HINT_ALLOW_TOPMOST "SDL_ALLOW_TOPMOST" + +/** + * Android APK expansion main file version. + * + * Should be a string number like "1", "2" etc. + * + * Must be set together with + * SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION. + * + * If both hints were set then SDL_RWFromFile() will look into expansion files + * after a given relative path was not found in the internal storage and + * assets. + * + * By default this hint is not set and the APK expansion files are not + * searched. + */ +#define SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION "SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION" + +/** + * Android APK expansion patch file version. + * + * Should be a string number like "1", "2" etc. + * + * Must be set together with SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION. + * + * If both hints were set then SDL_RWFromFile() will look into expansion files + * after a given relative path was not found in the internal storage and + * assets. + * + * By default this hint is not set and the APK expansion files are not + * searched. + */ +#define SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION "SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION" + +/** + * A variable to control whether the event loop will block itself when the app + * is paused. + * + * The variable can be set to the following values: + * + * - "0": Non blocking. + * - "1": Blocking. (default) + * + * The value should be set before SDL is initialized. + */ +#define SDL_HINT_ANDROID_BLOCK_ON_PAUSE "SDL_ANDROID_BLOCK_ON_PAUSE" + +/** + * A variable to control whether SDL will pause audio in background (Requires + * SDL_ANDROID_BLOCK_ON_PAUSE as "Non blocking") + * + * The variable can be set to the following values: + * + * - "0": Non paused. + * - "1": Paused. (default) + * + * The value should be set before SDL is initialized. + */ +#define SDL_HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO "SDL_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO" + +/** + * A variable to control whether we trap the Android back button to handle it + * manually. + * + * This is necessary for the right mouse button to work on some Android + * devices, or to be able to trap the back button for use in your code + * reliably. If set to true, the back button will show up as an SDL_KEYDOWN / + * SDL_KEYUP pair with a keycode of SDL_SCANCODE_AC_BACK. + * + * The variable can be set to the following values: + * + * - "0": Back button will be handled as usual for system. (default) + * - "1": Back button will be trapped, allowing you to handle the key press + * manually. (This will also let right mouse click work on systems where the + * right mouse button functions as back.) + * + * The value of this hint is used at runtime, so it can be changed at any + * time. + */ +#define SDL_HINT_ANDROID_TRAP_BACK_BUTTON "SDL_ANDROID_TRAP_BACK_BUTTON" + +/** + * Specify an application name. + * + * This hint lets you specify the application name sent to the OS when + * required. For example, this will often appear in volume control applets for + * audio streams, and in lists of applications which are inhibiting the + * screensaver. You should use a string that describes your program ("My Game + * 2: The Revenge") + * + * Setting this to "" or leaving it unset will have SDL use a reasonable + * default: probably the application's name or "SDL Application" if SDL + * doesn't have any better information. + * + * Note that, for audio streams, this can be overridden with + * SDL_HINT_AUDIO_DEVICE_APP_NAME. + * + * On targets where this is not supported, this hint does nothing. + */ +#define SDL_HINT_APP_NAME "SDL_APP_NAME" + +/** + * A variable controlling whether controllers used with the Apple TV generate + * UI events. + * + * When UI events are generated by controller input, the app will be + * backgrounded when the Apple TV remote's menu button is pressed, and when + * the pause or B buttons on gamepads are pressed. + * + * More information about properly making use of controllers for the Apple TV + * can be found here: + * https://developer.apple.com/tvos/human-interface-guidelines/remote-and-controllers/ + * + * This variable can be set to the following values: + * + * - "0": Controller input does not generate UI events (the default). + * - "1": Controller input generates UI events. + */ +#define SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS "SDL_APPLE_TV_CONTROLLER_UI_EVENTS" + +/** + * A variable controlling whether the Apple TV remote's joystick axes will + * automatically match the rotation of the remote. + * + * This variable can be set to the following values: + * + * - "0": Remote orientation does not affect joystick axes (the default). + * - "1": Joystick axes are based on the orientation of the remote. + */ +#define SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION" + +/** + * A variable controlling the audio category on iOS and Mac OS X + * + * This variable can be set to the following values: + * + * - "ambient": Use the AVAudioSessionCategoryAmbient audio category, will be + * muted by the phone mute switch (default) + * - "playback": Use the AVAudioSessionCategoryPlayback category + * + * For more information, see Apple's documentation: + * https://developer.apple.com/library/content/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategoriesandModes/AudioSessionCategoriesandModes.html + */ +#define SDL_HINT_AUDIO_CATEGORY "SDL_AUDIO_CATEGORY" + +/** + * Specify an application name for an audio device. + * + * Some audio backends (such as PulseAudio) allow you to describe your audio + * stream. Among other things, this description might show up in a system + * control panel that lets the user adjust the volume on specific audio + * streams instead of using one giant master volume slider. + * + * This hints lets you transmit that information to the OS. The contents of + * this hint are used while opening an audio device. You should use a string + * that describes your program ("My Game 2: The Revenge") + * + * Setting this to "" or leaving it unset will have SDL use a reasonable + * default: this will be the name set with SDL_HINT_APP_NAME, if that hint is + * set. Otherwise, it'll probably the application's name or "SDL Application" + * if SDL doesn't have any better information. + * + * On targets where this is not supported, this hint does nothing. + */ +#define SDL_HINT_AUDIO_DEVICE_APP_NAME "SDL_AUDIO_DEVICE_APP_NAME" + +/** + * Specify an application name for an audio device. + * + * Some audio backends (such as PulseAudio) allow you to describe your audio + * stream. Among other things, this description might show up in a system + * control panel that lets the user adjust the volume on specific audio + * streams instead of using one giant master volume slider. + * + * This hints lets you transmit that information to the OS. The contents of + * this hint are used while opening an audio device. You should use a string + * that describes your what your program is playing ("audio stream" is + * probably sufficient in many cases, but this could be useful for something + * like "team chat" if you have a headset playing VoIP audio separately). + * + * Setting this to "" or leaving it unset will have SDL use a reasonable + * default: "audio stream" or something similar. + * + * On targets where this is not supported, this hint does nothing. + */ +#define SDL_HINT_AUDIO_DEVICE_STREAM_NAME "SDL_AUDIO_DEVICE_STREAM_NAME" + +/** + * Specify an application role for an audio device. + * + * Some audio backends (such as Pipewire) allow you to describe the role of + * your audio stream. Among other things, this description might show up in a + * system control panel or software for displaying and manipulating media + * playback/capture graphs. + * + * This hints lets you transmit that information to the OS. The contents of + * this hint are used while opening an audio device. You should use a string + * that describes your what your program is playing (Game, Music, Movie, + * etc...). + * + * Setting this to "" or leaving it unset will have SDL use a reasonable + * default: "Game" or something similar. + * + * On targets where this is not supported, this hint does nothing. + */ +#define SDL_HINT_AUDIO_DEVICE_STREAM_ROLE "SDL_AUDIO_DEVICE_STREAM_ROLE" + +/** + * A variable controlling speed/quality tradeoff of audio resampling. + * + * If available, SDL can use libsamplerate ( http://www.mega-nerd.com/SRC/ ) + * to handle audio resampling. There are different resampling modes available + * that produce different levels of quality, using more CPU. + * + * If this hint isn't specified to a valid setting, or libsamplerate isn't + * available, SDL will use the default, internal resampling algorithm. + * + * As of SDL 2.26, SDL_ConvertAudio() respects this hint when libsamplerate is + * available. + * + * This hint is currently only checked at audio subsystem initialization. + * + * This variable can be set to the following values: + * + * - "0" or "default": Use SDL's internal resampling (Default when not set - + * low quality, fast) + * - "1" or "fast": Use fast, slightly higher quality resampling, if available + * - "2" or "medium": Use medium quality resampling, if available + * - "3" or "best": Use high quality resampling, if available + */ +#define SDL_HINT_AUDIO_RESAMPLING_MODE "SDL_AUDIO_RESAMPLING_MODE" + +/** + * A variable controlling whether SDL updates joystick state when getting + * input events + * + * This variable can be set to the following values: + * + * - "0": You'll call SDL_JoystickUpdate() manually + * - "1": SDL will automatically call SDL_JoystickUpdate() (default) + * + * This hint can be toggled on and off at runtime. + */ +#define SDL_HINT_AUTO_UPDATE_JOYSTICKS "SDL_AUTO_UPDATE_JOYSTICKS" + +/** + * A variable controlling whether SDL updates sensor state when getting input + * events + * + * This variable can be set to the following values: + * + * - "0": You'll call SDL_SensorUpdate() manually + * - "1": SDL will automatically call SDL_SensorUpdate() (default) + * + * This hint can be toggled on and off at runtime. + */ +#define SDL_HINT_AUTO_UPDATE_SENSORS "SDL_AUTO_UPDATE_SENSORS" + +/** + * Prevent SDL from using version 4 of the bitmap header when saving BMPs. + * + * The bitmap header version 4 is required for proper alpha channel support + * and SDL will use it when required. Should this not be desired, this hint + * can force the use of the 40 byte header version which is supported + * everywhere. + * + * The variable can be set to the following values: + * + * - "0": Surfaces with a colorkey or an alpha channel are saved to a 32-bit + * BMP file with an alpha mask. SDL will use the bitmap header version 4 and + * set the alpha mask accordingly. + * - "1": Surfaces with a colorkey or an alpha channel are saved to a 32-bit + * BMP file without an alpha mask. The alpha channel data will be in the + * file, but applications are going to ignore it. + * + * The default value is "0". + */ +#define SDL_HINT_BMP_SAVE_LEGACY_FORMAT "SDL_BMP_SAVE_LEGACY_FORMAT" + +/** + * Override for SDL_GetDisplayUsableBounds() + * + * If set, this hint will override the expected results for + * SDL_GetDisplayUsableBounds() for display index 0. Generally you don't want + * to do this, but this allows an embedded system to request that some of the + * screen be reserved for other uses when paired with a well-behaved + * application. + * + * The contents of this hint must be 4 comma-separated integers, the first is + * the bounds x, then y, width and height, in that order. + */ +#define SDL_HINT_DISPLAY_USABLE_BOUNDS "SDL_DISPLAY_USABLE_BOUNDS" + +/** + * Disable giving back control to the browser automatically when running with + * asyncify + * + * With -s ASYNCIFY, SDL2 calls emscripten_sleep during operations such as + * refreshing the screen or polling events. + * + * This hint only applies to the emscripten platform + * + * The variable can be set to the following values: + * + * - "0": Disable emscripten_sleep calls (if you give back browser control + * manually or use asyncify for other purposes) + * - "1": Enable emscripten_sleep calls (the default) + */ +#define SDL_HINT_EMSCRIPTEN_ASYNCIFY "SDL_EMSCRIPTEN_ASYNCIFY" + +/** + * override the binding element for keyboard inputs for Emscripten builds + * + * This hint only applies to the emscripten platform. + * + * The variable can be one of: + * + * - "#window": the javascript window object (this is the default) + * - "#document": the javascript document object + * - "#screen": the javascript window.screen object + * - "#canvas": the WebGL canvas element + * + * Any other string without a leading # sign applies to the element on the + * page with that ID. + */ +#define SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT" + +/** + * A variable that controls whether the on-screen keyboard should be shown + * when text input is active + * + * The variable can be set to the following values: + * + * - "0": Do not show the on-screen keyboard + * - "1": Show the on-screen keyboard + * + * The default value is "1". This hint must be set before text input is + * activated. + */ +#define SDL_HINT_ENABLE_SCREEN_KEYBOARD "SDL_ENABLE_SCREEN_KEYBOARD" + +/** + * A variable controlling verbosity of the logging of SDL events pushed onto + * the internal queue. + * + * This variable can be set to the following values, from least to most + * verbose: + * + * - "0": Don't log any events (default) + * - "1": Log most events (other than the really spammy ones). + * - "2": Include mouse and finger motion events. + * - "3": Include SDL_SysWMEvent events. + * + * This is generally meant to be used to debug SDL itself, but can be useful + * for application developers that need better visibility into what is going + * on in the event queue. Logged events are sent through SDL_Log(), which + * means by default they appear on stdout on most platforms or maybe + * OutputDebugString() on Windows, and can be funneled by the app with + * SDL_LogSetOutputFunction(), etc. + * + * This hint can be toggled on and off at runtime, if you only need to log + * events for a small subset of program execution. + */ +#define SDL_HINT_EVENT_LOGGING "SDL_EVENT_LOGGING" + +/** + * A variable controlling whether raising the window should be done more + * forcefully + * + * This variable can be set to the following values: + * + * - "0": No forcing (the default) + * - "1": Extra level of forcing + * + * At present, this is only an issue under MS Windows, which makes it nearly + * impossible to programmatically move a window to the foreground, for + * "security" reasons. See http://stackoverflow.com/a/34414846 for a + * discussion. + */ +#define SDL_HINT_FORCE_RAISEWINDOW "SDL_HINT_FORCE_RAISEWINDOW" + +/** + * A variable controlling how 3D acceleration is used to accelerate the SDL + * screen surface. + * + * SDL can try to accelerate the SDL screen surface by using streaming + * textures with a 3D rendering engine. This variable controls whether and how + * this is done. + * + * This variable can be set to the following values: + * + * - "0": Disable 3D acceleration + * - "1": Enable 3D acceleration, using the default renderer. + * - "X": Enable 3D acceleration, using X where X is one of the valid + * rendering drivers. (e.g. "direct3d", "opengl", etc.) + * + * By default SDL tries to make a best guess for each platform whether to use + * acceleration or not. + */ +#define SDL_HINT_FRAMEBUFFER_ACCELERATION "SDL_FRAMEBUFFER_ACCELERATION" + +/** + * A variable that lets you manually hint extra gamecontroller db entries. + * + * The variable should be newline delimited rows of gamecontroller config + * data, see SDL_gamecontroller.h + * + * This hint must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) You + * can update mappings after the system is initialized with + * SDL_GameControllerMappingForGUID() and SDL_GameControllerAddMapping() + */ +#define SDL_HINT_GAMECONTROLLERCONFIG "SDL_GAMECONTROLLERCONFIG" + +/** + * A variable that lets you provide a file with extra gamecontroller db + * entries. + * + * The file should contain lines of gamecontroller config data, see + * SDL_gamecontroller.h + * + * This hint must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) You + * can update mappings after the system is initialized with + * SDL_GameControllerMappingForGUID() and SDL_GameControllerAddMapping() + */ +#define SDL_HINT_GAMECONTROLLERCONFIG_FILE "SDL_GAMECONTROLLERCONFIG_FILE" + +/** + * A variable that overrides the automatic controller type detection + * + * The variable should be comma separated entries, in the form: VID/PID=type + * + * The VID and PID should be hexadecimal with exactly 4 digits, e.g. 0x00fd + * + * The type should be one of: Xbox360 XboxOne PS3 PS4 PS5 SwitchPro + * + * This hint affects what driver is used, and must be set before calling + * SDL_Init(SDL_INIT_GAMECONTROLLER) + */ +#define SDL_HINT_GAMECONTROLLERTYPE "SDL_GAMECONTROLLERTYPE" + +/** + * A variable containing a list of devices to skip when scanning for game + * controllers. + * + * The format of the string is a comma separated list of USB VID/PID pairs in + * hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named file + * will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES "SDL_GAMECONTROLLER_IGNORE_DEVICES" + +/** + * If set, all devices will be skipped when scanning for game controllers + * except for the ones listed in this variable. + * + * The format of the string is a comma separated list of USB VID/PID pairs in + * hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named file + * will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT" + +/** + * If set, game controller face buttons report their values according to their + * labels instead of their positional layout. + * + * For example, on Nintendo Switch controllers, normally you'd get: + * + * ``` + * (Y) + * (X) (B) + * (A) + * ``` + * + * but if this hint is set, you'll get: + * + * ``` + * (X) + * (Y) (A) + * (B) + * ``` + * + * The variable can be set to the following values: + * + * - "0": Report the face buttons by position, as though they were on an Xbox + * controller. + * - "1": Report the face buttons by label instead of position + * + * The default value is "1". This hint may be set at any time. + */ +#define SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS "SDL_GAMECONTROLLER_USE_BUTTON_LABELS" + +/** + * A variable controlling whether grabbing input grabs the keyboard + * + * This variable can be set to the following values: + * + * - "0": Grab will affect only the mouse + * - "1": Grab will affect mouse and keyboard + * + * By default SDL will not grab the keyboard so system shortcuts still work. + */ +#define SDL_HINT_GRAB_KEYBOARD "SDL_GRAB_KEYBOARD" + +/** + * A variable containing a list of devices to ignore in SDL_hid_enumerate() + * + * For example, to ignore the Shanwan DS3 controller and any Valve controller, + * you might have the string "0x2563/0x0523,0x28de/0x0000" + */ +#define SDL_HINT_HIDAPI_IGNORE_DEVICES "SDL_HIDAPI_IGNORE_DEVICES" + +/** + * A variable controlling whether the idle timer is disabled on iOS. + * + * When an iOS app does not receive touches for some time, the screen is + * dimmed automatically. For games where the accelerometer is the only input + * this is problematic. This functionality can be disabled by setting this + * hint. + * + * As of SDL 2.0.4, SDL_EnableScreenSaver() and SDL_DisableScreenSaver() + * accomplish the same thing on iOS. They should be preferred over this hint. + * + * This variable can be set to the following values: + * + * - "0": Enable idle timer + * - "1": Disable idle timer + */ +#define SDL_HINT_IDLE_TIMER_DISABLED "SDL_IOS_IDLE_TIMER_DISABLED" + +/** + * A variable to control whether certain IMEs should handle text editing + * internally instead of sending SDL_TEXTEDITING events. + * + * The variable can be set to the following values: + * + * - "0": SDL_TEXTEDITING events are sent, and it is the application's + * responsibility to render the text from these events and differentiate it + * somehow from committed text. (default) + * - "1": If supported by the IME then SDL_TEXTEDITING events are not sent, + * and text that is being composed will be rendered in its own UI. + */ +#define SDL_HINT_IME_INTERNAL_EDITING "SDL_IME_INTERNAL_EDITING" + +/** + * A variable to control whether certain IMEs should show native UI components + * (such as the Candidate List) instead of suppressing them. + * + * The variable can be set to the following values: + * + * - "0": Native UI components are not display. (default) + * - "1": Native UI components are displayed. + */ +#define SDL_HINT_IME_SHOW_UI "SDL_IME_SHOW_UI" + +/** + * A variable to control if extended IME text support is enabled. + * + * If enabled then SDL_TextEditingExtEvent will be issued if the text would be + * truncated otherwise. Additionally SDL_TextInputEvent will be dispatched + * multiple times so that it is not truncated. + * + * The variable can be set to the following values: + * + * - "0": Legacy behavior. Text can be truncated, no heap allocations. + * (default) + * - "1": Modern behavior. + */ +#define SDL_HINT_IME_SUPPORT_EXTENDED_TEXT "SDL_IME_SUPPORT_EXTENDED_TEXT" + +/** + * A variable controlling whether the home indicator bar on iPhone X should be + * hidden. + * + * This variable can be set to the following values: + * + * - "0": The indicator bar is not hidden (default for windowed applications) + * - "1": The indicator bar is hidden and is shown when the screen is touched + * (useful for movie playback applications) + * - "2": The indicator bar is dim and the first swipe makes it visible and + * the second swipe performs the "home" action (default for fullscreen + * applications) + */ +#define SDL_HINT_IOS_HIDE_HOME_INDICATOR "SDL_IOS_HIDE_HOME_INDICATOR" + +/** + * A variable that lets you enable joystick (and gamecontroller) events even + * when your app is in the background. + * + * The variable can be set to the following values: + * + * - "0": Disable joystick & gamecontroller input events when the application + * is in the background. + * - "1": Enable joystick & gamecontroller input events when the application + * is in the background. + * + * The default value is "0". This hint may be set at any time. + */ +#define SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS" + +/** + * A variable containing a list of arcade stick style controllers. + * + * The format of the string is a comma separated list of USB VID/PID pairs in + * hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named file + * will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_JOYSTICK_ARCADESTICK_DEVICES "SDL_JOYSTICK_ARCADESTICK_DEVICES" + +/** + * A variable containing a list of devices that are not arcade stick style + * controllers. + * + * This will override SDL_HINT_JOYSTICK_ARCADESTICK_DEVICES and the built in + * device list. + * + * The format of the string is a comma separated list of USB VID/PID pairs in + * hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named file + * will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_JOYSTICK_ARCADESTICK_DEVICES_EXCLUDED "SDL_JOYSTICK_ARCADESTICK_DEVICES_EXCLUDED" + +/** + * A variable containing a list of devices that should not be considerd + * joysticks. + * + * The format of the string is a comma separated list of USB VID/PID pairs in + * hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named file + * will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_JOYSTICK_BLACKLIST_DEVICES "SDL_JOYSTICK_BLACKLIST_DEVICES" + +/** + * A variable containing a list of devices that should be considered + * joysticks. + * + * This will override SDL_HINT_JOYSTICK_BLACKLIST_DEVICES and the built in + * device list. + * + * The format of the string is a comma separated list of USB VID/PID pairs in + * hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named file + * will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_JOYSTICK_BLACKLIST_DEVICES_EXCLUDED "SDL_JOYSTICK_BLACKLIST_DEVICES_EXCLUDED" + +/** + * A variable containing a list of flightstick style controllers. + * + * The format of the string is a comma separated list of USB VID/PID pairs in + * hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named file + * will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES "SDL_JOYSTICK_FLIGHTSTICK_DEVICES" + +/** + * A variable containing a list of devices that are not flightstick style + * controllers. + * + * This will override SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES and the built in + * device list. + * + * The format of the string is a comma separated list of USB VID/PID pairs in + * hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named file + * will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED "SDL_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED" + +/** + * A variable containing a list of devices known to have a GameCube form + * factor. + * + * The format of the string is a comma separated list of USB VID/PID pairs in + * hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named file + * will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_JOYSTICK_GAMECUBE_DEVICES "SDL_JOYSTICK_GAMECUBE_DEVICES" + +/** + * A variable containing a list of devices known not to have a GameCube form + * factor. + * + * This will override SDL_HINT_JOYSTICK_GAMECUBE_DEVICES and the built in + * device list. + * + * The format of the string is a comma separated list of USB VID/PID pairs in + * hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named file + * will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_JOYSTICK_GAMECUBE_DEVICES_EXCLUDED "SDL_JOYSTICK_GAMECUBE_DEVICES_EXCLUDED" + +/** + * A variable controlling whether the HIDAPI joystick drivers should be used. + * + * This variable can be set to the following values: + * + * - "0": HIDAPI drivers are not used + * - "1": HIDAPI drivers are used (the default) + * + * This variable is the default for all drivers, but can be overridden by the + * hints for specific drivers below. + */ +#define SDL_HINT_JOYSTICK_HIDAPI "SDL_JOYSTICK_HIDAPI" + +/** + * A variable controlling whether the HIDAPI driver for Nintendo GameCube + * controllers should be used. + * + * This variable can be set to the following values: + * + * - "0": HIDAPI driver is not used + * - "1": HIDAPI driver is used + * + * The default is the value of SDL_HINT_JOYSTICK_HIDAPI + */ +#define SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE "SDL_JOYSTICK_HIDAPI_GAMECUBE" + +/** + * A variable controlling whether "low_frequency_rumble" and + * "high_frequency_rumble" is used to implement the GameCube controller's 3 + * rumble modes, Stop(0), Rumble(1), and StopHard(2) this is useful for + * applications that need full compatibility for things like ADSR envelopes. + * + * Stop is implemented by setting "low_frequency_rumble" to "0" and + * "high_frequency_rumble" ">0" Rumble is both at any arbitrary value, + * StopHard is implemented by setting both "low_frequency_rumble" and + * "high_frequency_rumble" to "0" + * + * This variable can be set to the following values: + * + * - "0": Normal rumble behavior is behavior is used (default) + * - "1": Proper GameCube controller rumble behavior is used + */ +#define SDL_HINT_JOYSTICK_GAMECUBE_RUMBLE_BRAKE "SDL_JOYSTICK_GAMECUBE_RUMBLE_BRAKE" + +/** + * A variable controlling whether the HIDAPI driver for Nintendo Switch + * Joy-Cons should be used. + * + * This variable can be set to the following values: + * + * - "0": HIDAPI driver is not used + * - "1": HIDAPI driver is used + * + * The default is the value of SDL_HINT_JOYSTICK_HIDAPI + */ +#define SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS "SDL_JOYSTICK_HIDAPI_JOY_CONS" + +/** + * A variable controlling whether Nintendo Switch Joy-Con controllers will be + * combined into a single Pro-like controller when using the HIDAPI driver + * + * This variable can be set to the following values: + * + * - "0": Left and right Joy-Con controllers will not be combined and each + * will be a mini-gamepad + * - "1": Left and right Joy-Con controllers will be combined into a single + * controller (the default) + */ +#define SDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS "SDL_JOYSTICK_HIDAPI_COMBINE_JOY_CONS" + +/** + * A variable controlling whether Nintendo Switch Joy-Con controllers will be + * in vertical mode when using the HIDAPI driver + * + * This variable can be set to the following values: + * + * - "0": Left and right Joy-Con controllers will not be in vertical mode (the + * default) + * - "1": Left and right Joy-Con controllers will be in vertical mode + * + * This hint must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) + */ +#define SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS "SDL_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS" + +/** + * A variable controlling whether the HIDAPI driver for Amazon Luna + * controllers connected via Bluetooth should be used. + * + * This variable can be set to the following values: + * + * - "0": HIDAPI driver is not used + * - "1": HIDAPI driver is used + * + * The default is the value of SDL_HINT_JOYSTICK_HIDAPI + */ +#define SDL_HINT_JOYSTICK_HIDAPI_LUNA "SDL_JOYSTICK_HIDAPI_LUNA" + +/** + * A variable controlling whether the HIDAPI driver for Nintendo Online + * classic controllers should be used. + * + * This variable can be set to the following values: + * + * - "0": HIDAPI driver is not used + * - "1": HIDAPI driver is used + * + * The default is the value of SDL_HINT_JOYSTICK_HIDAPI + */ +#define SDL_HINT_JOYSTICK_HIDAPI_NINTENDO_CLASSIC "SDL_JOYSTICK_HIDAPI_NINTENDO_CLASSIC" + +/** + * A variable controlling whether the HIDAPI driver for NVIDIA SHIELD + * controllers should be used. + * + * This variable can be set to the following values: + * + * - "0": HIDAPI driver is not used + * - "1": HIDAPI driver is used + * + * The default is the value of SDL_HINT_JOYSTICK_HIDAPI + */ +#define SDL_HINT_JOYSTICK_HIDAPI_SHIELD "SDL_JOYSTICK_HIDAPI_SHIELD" + +/** + * A variable controlling whether the HIDAPI driver for PS3 controllers should + * be used. + * + * This variable can be set to the following values: + * + * - "0": HIDAPI driver is not used + * - "1": HIDAPI driver is used + * + * The default is the value of SDL_HINT_JOYSTICK_HIDAPI on macOS, and "0" on + * other platforms. + * + * It is not possible to use this driver on Windows, due to limitations in the + * default drivers installed. See https://github.com/ViGEm/DsHidMini for an + * alternative driver on Windows. + */ +#define SDL_HINT_JOYSTICK_HIDAPI_PS3 "SDL_JOYSTICK_HIDAPI_PS3" + +/** + * A variable controlling whether the HIDAPI driver for PS4 controllers should + * be used. + * + * This variable can be set to the following values: + * + * - "0": HIDAPI driver is not used + * - "1": HIDAPI driver is used + * + * The default is the value of SDL_HINT_JOYSTICK_HIDAPI + */ +#define SDL_HINT_JOYSTICK_HIDAPI_PS4 "SDL_JOYSTICK_HIDAPI_PS4" + +/** + * A variable controlling whether extended input reports should be used for + * PS4 controllers when using the HIDAPI driver. + * + * This variable can be set to the following values: + * + * - "0": extended reports are not enabled (the default) + * - "1": extended reports + * + * Extended input reports allow rumble on Bluetooth PS4 controllers, but break + * DirectInput handling for applications that don't use SDL. + * + * Once extended reports are enabled, they can not be disabled without power + * cycling the controller. + * + * For compatibility with applications written for versions of SDL prior to + * the introduction of PS5 controller support, this value will also control + * the state of extended reports on PS5 controllers when the + * SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE hint is not explicitly set. + */ +#define SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE "SDL_JOYSTICK_HIDAPI_PS4_RUMBLE" + +/** + * A variable controlling whether the HIDAPI driver for PS5 controllers should + * be used. + * + * This variable can be set to the following values: + * + * - "0": HIDAPI driver is not used + * - "1": HIDAPI driver is used + * + * The default is the value of SDL_HINT_JOYSTICK_HIDAPI + */ +#define SDL_HINT_JOYSTICK_HIDAPI_PS5 "SDL_JOYSTICK_HIDAPI_PS5" + +/** + * A variable controlling whether the player LEDs should be lit to indicate + * which player is associated with a PS5 controller. + * + * This variable can be set to the following values: + * + * - "0": player LEDs are not enabled + * - "1": player LEDs are enabled (the default) + */ +#define SDL_HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED "SDL_JOYSTICK_HIDAPI_PS5_PLAYER_LED" + +/** + * A variable controlling whether extended input reports should be used for + * PS5 controllers when using the HIDAPI driver. + * + * This variable can be set to the following values: + * + * - "0": extended reports are not enabled (the default) + * - "1": extended reports + * + * Extended input reports allow rumble on Bluetooth PS5 controllers, but break + * DirectInput handling for applications that don't use SDL. + * + * Once extended reports are enabled, they can not be disabled without power + * cycling the controller. + * + * For compatibility with applications written for versions of SDL prior to + * the introduction of PS5 controller support, this value defaults to the + * value of SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE. + */ +#define SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE "SDL_JOYSTICK_HIDAPI_PS5_RUMBLE" + +/** + * A variable controlling whether the HIDAPI driver for Google Stadia + * controllers should be used. + * + * This variable can be set to the following values: + * + * - "0": HIDAPI driver is not used + * - "1": HIDAPI driver is used + * + * The default is the value of SDL_HINT_JOYSTICK_HIDAPI + */ +#define SDL_HINT_JOYSTICK_HIDAPI_STADIA "SDL_JOYSTICK_HIDAPI_STADIA" + +/** + * A variable controlling whether the HIDAPI driver for Bluetooth Steam + * Controllers should be used. + * + * This variable can be set to the following values: + * + * - "0": HIDAPI driver is not used + * - "1": HIDAPI driver is used for Steam Controllers, which requires + * Bluetooth access and may prompt the user for permission on iOS and + * Android. + * + * The default is "0" + */ +#define SDL_HINT_JOYSTICK_HIDAPI_STEAM "SDL_JOYSTICK_HIDAPI_STEAM" + +/** + * A variable controlling whether the HIDAPI driver for the Steam Deck builtin + * controller should be used. + * + * This variable can be set to the following values: + * + * - "0": HIDAPI driver is not used + * - "1": HIDAPI driver is used + * + * The default is the value of SDL_HINT_JOYSTICK_HIDAPI + */ +#define SDL_HINT_JOYSTICK_HIDAPI_STEAMDECK "SDL_JOYSTICK_HIDAPI_STEAMDECK" + +/** + * A variable controlling whether the HIDAPI driver for Nintendo Switch + * controllers should be used. + * + * This variable can be set to the following values: + * + * - "0": HIDAPI driver is not used + * - "1": HIDAPI driver is used + * + * The default is the value of SDL_HINT_JOYSTICK_HIDAPI + */ +#define SDL_HINT_JOYSTICK_HIDAPI_SWITCH "SDL_JOYSTICK_HIDAPI_SWITCH" + +/** + * A variable controlling whether the Home button LED should be turned on when + * a Nintendo Switch Pro controller is opened + * + * This variable can be set to the following values: + * + * - "0": home button LED is turned off + * - "1": home button LED is turned on + * + * By default the Home button LED state is not changed. This hint can also be + * set to a floating point value between 0.0 and 1.0 which controls the + * brightness of the Home button LED. + */ +#define SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED "SDL_JOYSTICK_HIDAPI_SWITCH_HOME_LED" + +/** + * A variable controlling whether the Home button LED should be turned on when + * a Nintendo Switch Joy-Con controller is opened + * + * This variable can be set to the following values: + * + * - "0": home button LED is turned off + * - "1": home button LED is turned on + * + * By default the Home button LED state is not changed. This hint can also be + * set to a floating point value between 0.0 and 1.0 which controls the + * brightness of the Home button LED. + */ +#define SDL_HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED "SDL_JOYSTICK_HIDAPI_JOYCON_HOME_LED" + +/** + * A variable controlling whether the player LEDs should be lit to indicate + * which player is associated with a Nintendo Switch controller. + * + * This variable can be set to the following values: + * + * - "0": player LEDs are not enabled + * - "1": player LEDs are enabled (the default) + */ +#define SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED "SDL_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED" + +/** + * A variable controlling whether the HIDAPI driver for Nintendo Wii and Wii U + * controllers should be used. + * + * This variable can be set to the following values: + * + * - "0": HIDAPI driver is not used + * - "1": HIDAPI driver is used + * + * This driver doesn't work with the dolphinbar, so the default is SDL_FALSE + * for now. + */ +#define SDL_HINT_JOYSTICK_HIDAPI_WII "SDL_JOYSTICK_HIDAPI_WII" + +/** + * A variable controlling whether the player LEDs should be lit to indicate + * which player is associated with a Wii controller. + * + * This variable can be set to the following values: + * + * - "0": player LEDs are not enabled + * - "1": player LEDs are enabled (the default) + */ +#define SDL_HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED "SDL_JOYSTICK_HIDAPI_WII_PLAYER_LED" + +/** + * A variable controlling whether the HIDAPI driver for XBox controllers + * should be used. + * + * This variable can be set to the following values: + * + * - "0": HIDAPI driver is not used + * - "1": HIDAPI driver is used + * + * The default is "0" on Windows, otherwise the value of + * SDL_HINT_JOYSTICK_HIDAPI + */ +#define SDL_HINT_JOYSTICK_HIDAPI_XBOX "SDL_JOYSTICK_HIDAPI_XBOX" + +/** + * A variable controlling whether the HIDAPI driver for XBox 360 controllers + * should be used. + * + * This variable can be set to the following values: + * + * - "0": HIDAPI driver is not used + * - "1": HIDAPI driver is used + * + * The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX + */ +#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360 "SDL_JOYSTICK_HIDAPI_XBOX_360" + +/** + * A variable controlling whether the player LEDs should be lit to indicate + * which player is associated with an Xbox 360 controller. + * + * This variable can be set to the following values: + * + * - "0": player LEDs are not enabled + * - "1": player LEDs are enabled (the default) + */ +#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED "SDL_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED" + +/** + * A variable controlling whether the HIDAPI driver for XBox 360 wireless + * controllers should be used. + * + * This variable can be set to the following values: + * + * - "0": HIDAPI driver is not used + * - "1": HIDAPI driver is used + * + * The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX_360 + */ +#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESS "SDL_JOYSTICK_HIDAPI_XBOX_360_WIRELESS" + +/** + * A variable controlling whether the HIDAPI driver for XBox One controllers + * should be used. + * + * This variable can be set to the following values: + * + * - "0": HIDAPI driver is not used + * - "1": HIDAPI driver is used + * + * The default is the value of SDL_HINT_JOYSTICK_HIDAPI_XBOX + */ +#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE "SDL_JOYSTICK_HIDAPI_XBOX_ONE" + +/** + * A variable controlling whether the Home button LED should be turned on when + * an Xbox One controller is opened + * + * This variable can be set to the following values: + * + * - "0": home button LED is turned off + * - "1": home button LED is turned on + * + * By default the Home button LED state is not changed. This hint can also be + * set to a floating point value between 0.0 and 1.0 which controls the + * brightness of the Home button LED. The default brightness is 0.4. + */ +#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED "SDL_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED" + +/** + * A variable controlling whether IOKit should be used for controller + * handling. + * + * This variable can be set to the following values: + * + * - "0": IOKit is not used + * - "1": IOKit is used (the default) + */ +#define SDL_HINT_JOYSTICK_IOKIT "SDL_JOYSTICK_IOKIT" + +/** + * A variable controlling whether GCController should be used for controller + * handling. + * + * This variable can be set to the following values: + * + * - "0": GCController is not used + * - "1": GCController is used (the default) + */ +#define SDL_HINT_JOYSTICK_MFI "SDL_JOYSTICK_MFI" + +/** + * A variable controlling whether the RAWINPUT joystick drivers should be used + * for better handling XInput-capable devices. + * + * This variable can be set to the following values: + * + * - "0": RAWINPUT drivers are not used + * - "1": RAWINPUT drivers are used (the default) + */ +#define SDL_HINT_JOYSTICK_RAWINPUT "SDL_JOYSTICK_RAWINPUT" + +/** + * A variable controlling whether the RAWINPUT driver should pull correlated + * data from XInput. + * + * This variable can be set to the following values: + * + * - "0": RAWINPUT driver will only use data from raw input APIs + * - "1": RAWINPUT driver will also pull data from XInput, providing better + * trigger axes, guide button presses, and rumble support for Xbox + * controllers + * + * The default is "1". This hint applies to any joysticks opened after setting + * the hint. + */ +#define SDL_HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT "SDL_JOYSTICK_RAWINPUT_CORRELATE_XINPUT" + +/** + * A variable controlling whether the ROG Chakram mice should show up as + * joysticks + * + * This variable can be set to the following values: + * + * - "0": ROG Chakram mice do not show up as joysticks (the default) + * - "1": ROG Chakram mice show up as joysticks + */ +#define SDL_HINT_JOYSTICK_ROG_CHAKRAM "SDL_JOYSTICK_ROG_CHAKRAM" + +/** + * A variable controlling whether a separate thread should be used for + * handling joystick detection and raw input messages on Windows + * + * This variable can be set to the following values: + * + * - "0": A separate thread is not used (the default) + * - "1": A separate thread is used for handling raw input messages + */ +#define SDL_HINT_JOYSTICK_THREAD "SDL_JOYSTICK_THREAD" + +/** + * A variable containing a list of throttle style controllers. + * + * The format of the string is a comma separated list of USB VID/PID pairs in + * hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named file + * will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_JOYSTICK_THROTTLE_DEVICES "SDL_JOYSTICK_THROTTLE_DEVICES" + +/** + * A variable containing a list of devices that are not throttle style + * controllers. + * + * This will override SDL_HINT_JOYSTICK_THROTTLE_DEVICES and the built in + * device list. + * + * The format of the string is a comma separated list of USB VID/PID pairs in + * hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named file + * will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_JOYSTICK_THROTTLE_DEVICES_EXCLUDED "SDL_JOYSTICK_THROTTLE_DEVICES_EXCLUDED" + +/** + * A variable controlling whether Windows.Gaming.Input should be used for + * controller handling. + * + * This variable can be set to the following values: + * + * - "0": WGI is not used + * - "1": WGI is used (the default) + */ +#define SDL_HINT_JOYSTICK_WGI "SDL_JOYSTICK_WGI" + +/** + * A variable containing a list of wheel style controllers. + * + * The format of the string is a comma separated list of USB VID/PID pairs in + * hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named file + * will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_JOYSTICK_WHEEL_DEVICES "SDL_JOYSTICK_WHEEL_DEVICES" + +/** + * A variable containing a list of devices that are not wheel style + * controllers. + * + * This will override SDL_HINT_JOYSTICK_WHEEL_DEVICES and the built in device + * list. + * + * The format of the string is a comma separated list of USB VID/PID pairs in + * hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named file + * will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_JOYSTICK_WHEEL_DEVICES_EXCLUDED "SDL_JOYSTICK_WHEEL_DEVICES_EXCLUDED" + +/** + * A variable containing a list of devices known to have all axes centered at + * zero. + * + * The format of the string is a comma separated list of USB VID/PID pairs in + * hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named file + * will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_JOYSTICK_ZERO_CENTERED_DEVICES "SDL_JOYSTICK_ZERO_CENTERED_DEVICES" + +/** + * Determines whether SDL enforces that DRM master is required in order to + * initialize the KMSDRM video backend. + * + * The DRM subsystem has a concept of a "DRM master" which is a DRM client + * that has the ability to set planes, set cursor, etc. When SDL is DRM + * master, it can draw to the screen using the SDL rendering APIs. Without DRM + * master, SDL is still able to process input and query attributes of attached + * displays, but it cannot change display state or draw to the screen + * directly. + * + * In some cases, it can be useful to have the KMSDRM backend even if it + * cannot be used for rendering. An app may want to use SDL for input + * processing while using another rendering API (such as an MMAL overlay on + * Raspberry Pi) or using its own code to render to DRM overlays that SDL + * doesn't support. + * + * This hint must be set before initializing the video subsystem. + * + * This variable can be set to the following values: + * + * - "0": SDL will allow usage of the KMSDRM backend without DRM master + * - "1": SDL Will require DRM master to use the KMSDRM backend (default) + */ +#define SDL_HINT_KMSDRM_REQUIRE_DRM_MASTER "SDL_KMSDRM_REQUIRE_DRM_MASTER" + +/** + * A comma separated list of devices to open as joysticks + * + * This variable is currently only used by the Linux joystick driver. + */ +#define SDL_HINT_JOYSTICK_DEVICE "SDL_JOYSTICK_DEVICE" + + +/** + * A variable containing a list of devices and their desired number of haptic + * (force feedback) enabled axis. + * + * The format of the string is a comma separated list of USB VID/PID pairs in + * hexadecimal form plus the number of desired axes, e.g. + * + * `0xAAAA/0xBBBB/1,0xCCCC/0xDDDD/3` + * + * This hint supports a "wildcard" device that will set the number of haptic + * axes on all initialized haptic devices which were not defined explicitly in + * this hint. + * + * `0xFFFF/0xFFFF/1` + * + * This hint should be set before a controller is opened. The number of haptic + * axes won't exceed the number of real axes found on the device. + */ +#define SDL_HINT_JOYSTICK_HAPTIC_AXES "SDL_JOYSTICK_HAPTIC_AXES" + +/** + * A variable controlling whether joysticks on Linux will always treat 'hat' + * axis inputs (ABS_HAT0X - ABS_HAT3Y) as 8-way digital hats without checking + * whether they may be analog. + * + * This variable can be set to the following values: + * + * - "0": Only map hat axis inputs to digital hat outputs if the input axes + * appear to actually be digital (the default) + * - "1": Always handle the input axes numbered ABS_HAT0X to ABS_HAT3Y as + * digital hats + */ +#define SDL_HINT_LINUX_DIGITAL_HATS "SDL_LINUX_DIGITAL_HATS" + +/** + * A variable controlling whether digital hats on Linux will apply deadzones + * to their underlying input axes or use unfiltered values. + * + * This variable can be set to the following values: + * + * - "0": Return digital hat values based on unfiltered input axis values + * - "1": Return digital hat values with deadzones on the input axes taken + * into account (the default) + */ +#define SDL_HINT_LINUX_HAT_DEADZONES "SDL_LINUX_HAT_DEADZONES" + +/** + * A variable controlling whether to use the classic /dev/input/js* joystick + * interface or the newer /dev/input/event* joystick interface on Linux + * + * This variable can be set to the following values: + * + * - "0": Use /dev/input/event* + * - "1": Use /dev/input/js* + * + * By default the /dev/input/event* interfaces are used + */ +#define SDL_HINT_LINUX_JOYSTICK_CLASSIC "SDL_LINUX_JOYSTICK_CLASSIC" + +/** + * A variable controlling whether joysticks on Linux adhere to their + * HID-defined deadzones or return unfiltered values. + * + * This variable can be set to the following values: + * + * - "0": Return unfiltered joystick axis values (the default) + * - "1": Return axis values with deadzones taken into account + */ +#define SDL_HINT_LINUX_JOYSTICK_DEADZONES "SDL_LINUX_JOYSTICK_DEADZONES" + +/** + * A variable controlling the default SDL log levels. + * + * This variable is a comma separated set of category=level tokens that define + * the default logging levels for SDL applications. + * + * The category can be a numeric category, one of "app", "error", "assert", + * "system", "audio", "video", "render", "input", "test", or `*` for any + * unspecified category. + * + * The level can be a numeric level, one of "verbose", "debug", "info", + * "warn", "error", "critical", or "quiet" to disable that category. + * + * You can omit the category if you want to set the logging level for all + * categories. + * + * If this hint isn't set, the default log levels are equivalent to: + * "app=info,assert=warn,test=verbose,*=error" + */ +#define SDL_HINT_LOGGING "SDL_LOGGING" + +/** + * When set don't force the SDL app to become a foreground process + * + * This hint only applies to Mac OS X. + */ +#define SDL_HINT_MAC_BACKGROUND_APP "SDL_MAC_BACKGROUND_APP" + +/** + * A variable that determines whether ctrl+click should generate a right-click + * event on Mac + * + * If present, holding ctrl while left clicking will generate a right click + * event when on Mac. + */ +#define SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK" + +/** + * A variable controlling whether dispatching OpenGL context updates should + * block the dispatching thread until the main thread finishes processing + * + * This variable can be set to the following values: + * + * - "0": Dispatching OpenGL context updates will block the dispatching thread + * until the main thread finishes processing (default). + * - "1": Dispatching OpenGL context updates will allow the dispatching thread + * to continue execution. + * + * Generally you want the default, but if you have OpenGL code in a background + * thread on a Mac, and the main thread hangs because it's waiting for that + * background thread, but that background thread is also hanging because it's + * waiting for the main thread to do an update, this might fix your issue. + * + * This hint only applies to macOS. + * + * This hint is available since SDL 2.24.0. + */ +#define SDL_HINT_MAC_OPENGL_ASYNC_DISPATCH "SDL_MAC_OPENGL_ASYNC_DISPATCH" + +/** + * A variable setting the double click radius, in pixels. + */ +#define SDL_HINT_MOUSE_DOUBLE_CLICK_RADIUS "SDL_MOUSE_DOUBLE_CLICK_RADIUS" + +/** + * A variable setting the double click time, in milliseconds. + */ +#define SDL_HINT_MOUSE_DOUBLE_CLICK_TIME "SDL_MOUSE_DOUBLE_CLICK_TIME" + +/** + * Allow mouse click events when clicking to focus an SDL window + * + * This variable can be set to the following values: + * + * - "0": Ignore mouse clicks that activate a window + * - "1": Generate events for mouse clicks that activate a window + * + * By default SDL will ignore mouse clicks that activate a window + */ +#define SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH "SDL_MOUSE_FOCUS_CLICKTHROUGH" + +/** + * A variable setting the speed scale for mouse motion, in floating point, + * when the mouse is not in relative mode + */ +#define SDL_HINT_MOUSE_NORMAL_SPEED_SCALE "SDL_MOUSE_NORMAL_SPEED_SCALE" + +/** + * A variable controlling whether relative mouse mode constrains the mouse to + * the center of the window + * + * This variable can be set to the following values: + * + * - "0": Relative mouse mode constrains the mouse to the window + * - "1": Relative mouse mode constrains the mouse to the center of the window + * + * Constraining to the center of the window works better for FPS games and + * when the application is running over RDP. Constraining to the whole window + * works better for 2D games and increases the chance that the mouse will be + * in the correct position when using high DPI mice. + * + * By default SDL will constrain the mouse to the center of the window + */ +#define SDL_HINT_MOUSE_RELATIVE_MODE_CENTER "SDL_MOUSE_RELATIVE_MODE_CENTER" + +/** + * A variable controlling whether relative mouse mode is implemented using + * mouse warping + * + * This variable can be set to the following values: + * + * - "0": Relative mouse mode uses raw input + * - "1": Relative mouse mode uses mouse warping + * + * By default SDL will use raw input for relative mouse mode + */ +#define SDL_HINT_MOUSE_RELATIVE_MODE_WARP "SDL_MOUSE_RELATIVE_MODE_WARP" + +/** + * A variable controlling whether relative mouse motion is affected by + * renderer scaling + * + * This variable can be set to the following values: + * + * - "0": Relative motion is unaffected by DPI or renderer's logical size + * - "1": Relative motion is scaled according to DPI scaling and logical size + * + * By default relative mouse deltas are affected by DPI and renderer scaling + */ +#define SDL_HINT_MOUSE_RELATIVE_SCALING "SDL_MOUSE_RELATIVE_SCALING" + +/** + * A variable setting the scale for mouse motion, in floating point, when the + * mouse is in relative mode + */ +#define SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE "SDL_MOUSE_RELATIVE_SPEED_SCALE" + +/** + * A variable controlling whether the system mouse acceleration curve is used + * for relative mouse motion. + * + * This variable can be set to the following values: + * + * - "0": Relative mouse motion will be unscaled (the default) + * - "1": Relative mouse motion will be scaled using the system mouse + * acceleration curve. + * + * If SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE is set, that will override the + * system speed scale. + */ +#define SDL_HINT_MOUSE_RELATIVE_SYSTEM_SCALE "SDL_MOUSE_RELATIVE_SYSTEM_SCALE" + +/** + * A variable controlling whether a motion event should be generated for mouse + * warping in relative mode. + * + * This variable can be set to the following values: + * + * - "0": Warping the mouse will not generate a motion event in relative mode + * - "1": Warping the mouse will generate a motion event in relative mode + * + * By default warping the mouse will not generate motion events in relative + * mode. This avoids the application having to filter out large relative + * motion due to warping. + */ +#define SDL_HINT_MOUSE_RELATIVE_WARP_MOTION "SDL_MOUSE_RELATIVE_WARP_MOTION" + +/** + * A variable controlling whether the hardware cursor stays visible when + * relative mode is active. + * + * This variable can be set to the following values: "0" - The cursor will be + * hidden while relative mode is active (default) "1" - The cursor will remain + * visible while relative mode is active + * + * Note that for systems without raw hardware inputs, relative mode is + * implemented using warping, so the hardware cursor will visibly warp between + * frames if this is enabled on those systems. + */ +#define SDL_HINT_MOUSE_RELATIVE_CURSOR_VISIBLE "SDL_MOUSE_RELATIVE_CURSOR_VISIBLE" + +/** + * A variable controlling whether mouse events should generate synthetic touch + * events + * + * This variable can be set to the following values: + * + * - "0": Mouse events will not generate touch events (default for desktop + * platforms) + * - "1": Mouse events will generate touch events (default for mobile + * platforms, such as Android and iOS) + */ +#define SDL_HINT_MOUSE_TOUCH_EVENTS "SDL_MOUSE_TOUCH_EVENTS" + +/** + * A variable controlling whether the mouse is captured while mouse buttons + * are pressed + * + * This variable can be set to the following values: + * + * - "0": The mouse is not captured while mouse buttons are pressed + * - "1": The mouse is captured while mouse buttons are pressed + * + * By default the mouse is captured while mouse buttons are pressed so if the + * mouse is dragged outside the window, the application continues to receive + * mouse events until the button is released. + */ +#define SDL_HINT_MOUSE_AUTO_CAPTURE "SDL_MOUSE_AUTO_CAPTURE" + +/** + * Tell SDL not to catch the SIGINT or SIGTERM signals. + * + * This hint only applies to Unix-like platforms, and should set before any + * calls to SDL_Init() + * + * The variable can be set to the following values: + * + * - "0": SDL will install a SIGINT and SIGTERM handler, and when it catches a + * signal, convert it into an SDL_QUIT event. + * - "1": SDL will not install a signal handler at all. + */ +#define SDL_HINT_NO_SIGNAL_HANDLERS "SDL_NO_SIGNAL_HANDLERS" + +/** + * A variable controlling what driver to use for OpenGL ES contexts. + * + * On some platforms, currently Windows and X11, OpenGL drivers may support + * creating contexts with an OpenGL ES profile. By default SDL uses these + * profiles, when available, otherwise it attempts to load an OpenGL ES + * library, e.g. that provided by the ANGLE project. This variable controls + * whether SDL follows this default behaviour or will always load an OpenGL ES + * library. + * + * Circumstances where this is useful include - Testing an app with a + * particular OpenGL ES implementation, e.g ANGLE, or emulator, e.g. those + * from ARM, Imagination or Qualcomm. - Resolving OpenGL ES function addresses + * at link time by linking with the OpenGL ES library instead of querying them + * at run time with SDL_GL_GetProcAddress(). + * + * Caution: for an application to work with the default behaviour across + * different OpenGL drivers it must query the OpenGL ES function addresses at + * run time using SDL_GL_GetProcAddress(). + * + * This variable is ignored on most platforms because OpenGL ES is native or + * not supported. + * + * This variable can be set to the following values: + * + * - "0": Use ES profile of OpenGL, if available. (Default when not set.) + * - "1": Load OpenGL ES library using the default library names. + */ +#define SDL_HINT_OPENGL_ES_DRIVER "SDL_OPENGL_ES_DRIVER" + +/** + * A variable controlling which orientations are allowed on iOS/Android. + * + * In some circumstances it is necessary to be able to explicitly control + * which UI orientations are allowed. + * + * This variable is a space delimited list of the following values: + * + * - "LandscapeLeft" + * - "LandscapeRight" + * - "Portrait" + * - "PortraitUpsideDown" + */ +#define SDL_HINT_ORIENTATIONS "SDL_IOS_ORIENTATIONS" + +/** + * A variable controlling the use of a sentinel event when polling the event + * queue + * + * This variable can be set to the following values: + * + * - "0": Disable poll sentinels + * - "1": Enable poll sentinels + * + * When polling for events, SDL_PumpEvents is used to gather new events from + * devices. If a device keeps producing new events between calls to + * SDL_PumpEvents, a poll loop will become stuck until the new events stop. + * This is most noticeable when moving a high frequency mouse. + * + * By default, poll sentinels are enabled. + */ +#define SDL_HINT_POLL_SENTINEL "SDL_POLL_SENTINEL" + +/** + * Override for SDL_GetPreferredLocales() + * + * If set, this will be favored over anything the OS might report for the + * user's preferred locales. Changing this hint at runtime will not generate a + * SDL_LOCALECHANGED event (but if you can change the hint, you can push your + * own event, if you want). + * + * The format of this hint is a comma-separated list of language and locale, + * combined with an underscore, as is a common format: "en_GB". Locale is + * optional: "en". So you might have a list like this: "en_GB,jp,es_PT" + */ +#define SDL_HINT_PREFERRED_LOCALES "SDL_PREFERRED_LOCALES" + +/** + * A variable describing the content orientation on QtWayland-based platforms. + * + * On QtWayland platforms, windows are rotated client-side to allow for custom + * transitions. In order to correctly position overlays (e.g. volume bar) and + * gestures (e.g. events view, close/minimize gestures), the system needs to + * know in which orientation the application is currently drawing its + * contents. + * + * This does not cause the window to be rotated or resized, the application + * needs to take care of drawing the content in the right orientation (the + * framebuffer is always in portrait mode). + * + * This variable can be one of the following values: + * + * - "primary" (default) + * - "portrait" + * - "landscape" + * - "inverted-portrait" + * - "inverted-landscape" + * + * Since SDL 2.0.22 this variable accepts a comma-separated list of values + * above. + */ +#define SDL_HINT_QTWAYLAND_CONTENT_ORIENTATION "SDL_QTWAYLAND_CONTENT_ORIENTATION" + +/** + * Flags to set on QtWayland windows to integrate with the native window + * manager. + * + * On QtWayland platforms, this hint controls the flags to set on the windows. + * For example, on Sailfish OS "OverridesSystemGestures" disables swipe + * gestures. + * + * This variable is a space-separated list of the following values (empty = no + * flags): + * + * - "OverridesSystemGestures" + * - "StaysOnTop" + * - "BypassWindowManager" + */ +#define SDL_HINT_QTWAYLAND_WINDOW_FLAGS "SDL_QTWAYLAND_WINDOW_FLAGS" + +/** + * A variable controlling whether the 2D render API is compatible or + * efficient. + * + * This variable can be set to the following values: + * + * - "0": Don't use batching to make rendering more efficient. + * - "1": Use batching, but might cause problems if app makes its own direct + * OpenGL calls. + * + * Up to SDL 2.0.9, the render API would draw immediately when requested. Now + * it batches up draw requests and sends them all to the GPU only when forced + * to (during SDL_RenderPresent, when changing render targets, by updating a + * texture that the batch needs, etc). This is significantly more efficient, + * but it can cause problems for apps that expect to render on top of the + * render API's output. As such, SDL will disable batching if a specific + * render backend is requested (since this might indicate that the app is + * planning to use the underlying graphics API directly). This hint can be + * used to explicitly request batching in this instance. It is a contract that + * you will either never use the underlying graphics API directly, or if you + * do, you will call SDL_RenderFlush() before you do so any current batch goes + * to the GPU before your work begins. Not following this contract will result + * in undefined behavior. + */ +#define SDL_HINT_RENDER_BATCHING "SDL_RENDER_BATCHING" + +/** + * A variable controlling how the 2D render API renders lines + * + * This variable can be set to the following values: + * + * - "0": Use the default line drawing method (Bresenham's line algorithm as + * of SDL 2.0.20) + * - "1": Use the driver point API using Bresenham's line algorithm (correct, + * draws many points) + * - "2": Use the driver line API (occasionally misses line endpoints based on + * hardware driver quirks, was the default before 2.0.20) + * - "3": Use the driver geometry API (correct, draws thicker diagonal lines) + * + * This variable should be set when the renderer is created. + */ +#define SDL_HINT_RENDER_LINE_METHOD "SDL_RENDER_LINE_METHOD" + +/** + * A variable controlling whether to enable Direct3D 11+'s Debug Layer. + * + * This variable does not have any effect on the Direct3D 9 based renderer. + * + * This variable can be set to the following values: + * + * - "0": Disable Debug Layer use + * - "1": Enable Debug Layer use + * + * By default, SDL does not use Direct3D Debug Layer. + */ +#define SDL_HINT_RENDER_DIRECT3D11_DEBUG "SDL_RENDER_DIRECT3D11_DEBUG" + +/** + * A variable controlling whether the Direct3D device is initialized for + * thread-safe operations. + * + * This variable can be set to the following values: + * + * - "0": Thread-safety is not enabled (faster) + * - "1": Thread-safety is enabled + * + * By default the Direct3D device is created with thread-safety disabled. + */ +#define SDL_HINT_RENDER_DIRECT3D_THREADSAFE "SDL_RENDER_DIRECT3D_THREADSAFE" + +/** + * A variable specifying which render driver to use. + * + * If the application doesn't pick a specific renderer to use, this variable + * specifies the name of the preferred renderer. If the preferred renderer + * can't be initialized, the normal default renderer is used. + * + * This variable is case insensitive and can be set to the following values: + * + * - "direct3d" + * - "direct3d11" + * - "direct3d12" + * - "opengl" + * - "opengles2" + * - "opengles" + * - "metal" + * - "software" + * + * The default varies by platform, but it's the first one in the list that is + * available on the current platform. + */ +#define SDL_HINT_RENDER_DRIVER "SDL_RENDER_DRIVER" + +/** + * A variable controlling the scaling policy for SDL_RenderSetLogicalSize. + * + * This variable can be set to the following values: + * + * "0" or "letterbox" - Uses letterbox/sidebars to fit the entire rendering on + * screen "1" or "overscan" - Will zoom the rendering so it fills the entire + * screen, allowing edges to be drawn offscreen + * + * By default letterbox is used + */ +#define SDL_HINT_RENDER_LOGICAL_SIZE_MODE "SDL_RENDER_LOGICAL_SIZE_MODE" + +/** + * A variable controlling whether the OpenGL render driver uses shaders if + * they are available. + * + * This variable can be set to the following values: + * + * - "0": Disable shaders + * - "1": Enable shaders + * + * By default shaders are used if OpenGL supports them. + */ +#define SDL_HINT_RENDER_OPENGL_SHADERS "SDL_RENDER_OPENGL_SHADERS" + +/** + * A variable controlling the scaling quality + * + * This variable can be set to the following values: + * + * - "0" or "nearest": Nearest pixel sampling + * - "1" or "linear": Linear filtering (supported by OpenGL and Direct3D) + * - "2" or "best": Currently this is the same as "linear" + * + * By default nearest pixel sampling is used + */ +#define SDL_HINT_RENDER_SCALE_QUALITY "SDL_RENDER_SCALE_QUALITY" + +/** + * A variable controlling whether updates to the SDL screen surface should be + * synchronized with the vertical refresh, to avoid tearing. + * + * This variable can be set to the following values: + * + * - "0": Disable vsync + * - "1": Enable vsync + * + * By default SDL does not sync screen surface updates with vertical refresh. + */ +#define SDL_HINT_RENDER_VSYNC "SDL_RENDER_VSYNC" + +/** + * A variable controlling whether the Metal render driver select low power + * device over default one + * + * This variable can be set to the following values: + * + * - "0": Use the prefered OS device + * - "1": Select a low power one + * + * By default the prefered OS device is used. + */ +#define SDL_HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE "SDL_RENDER_METAL_PREFER_LOW_POWER_DEVICE" + +/** + * A variable containing a list of ROG gamepad capable mice. + * + * The format of the string is a comma separated list of USB VID/PID pairs in + * hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named file + * will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_ROG_GAMEPAD_MICE "SDL_ROG_GAMEPAD_MICE" + +/** + * A variable containing a list of devices that are not ROG gamepad capable + * mice. + * + * This will override SDL_HINT_ROG_GAMEPAD_MICE and the built in device list. + * + * The format of the string is a comma separated list of USB VID/PID pairs in + * hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named file + * will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_ROG_GAMEPAD_MICE_EXCLUDED "SDL_ROG_GAMEPAD_MICE_EXCLUDED" + +/** + * A variable controlling if VSYNC is automatically disable if doesn't reach + * the enough FPS + * + * This variable can be set to the following values: + * + * - "0": It will be using VSYNC as defined in the main flag. Default + * - "1": If VSYNC was previously enabled, then it will disable VSYNC if + * doesn't reach enough speed + * + * By default SDL does not enable the automatic VSYNC + */ +#define SDL_HINT_PS2_DYNAMIC_VSYNC "SDL_PS2_DYNAMIC_VSYNC" + +/** + * A variable to control whether the return key on the soft keyboard should + * hide the soft keyboard on Android and iOS. + * + * The variable can be set to the following values: + * + * - "0": The return key will be handled as a key event. This is the behaviour + * of SDL <= 2.0.3. (default) + * - "1": The return key will hide the keyboard. + * + * The value of this hint is used at runtime, so it can be changed at any + * time. + */ +#define SDL_HINT_RETURN_KEY_HIDES_IME "SDL_RETURN_KEY_HIDES_IME" + +/** + * Tell SDL which Dispmanx layer to use on a Raspberry PI + * + * Also known as Z-order. The variable can take a negative or positive value. + * The default is 10000. + */ +#define SDL_HINT_RPI_VIDEO_LAYER "SDL_RPI_VIDEO_LAYER" + +/** + * Specify an "activity name" for screensaver inhibition. + * + * Some platforms, notably Linux desktops, list the applications which are + * inhibiting the screensaver or other power-saving features. + * + * This hint lets you specify the "activity name" sent to the OS when + * SDL_DisableScreenSaver() is used (or the screensaver is automatically + * disabled). The contents of this hint are used when the screensaver is + * disabled. You should use a string that describes what your program is doing + * (and, therefore, why the screensaver is disabled). For example, "Playing a + * game" or "Watching a video". + * + * Setting this to "" or leaving it unset will have SDL use a reasonable + * default: "Playing a game" or something similar. + * + * On targets where this is not supported, this hint does nothing. + */ +#define SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME "SDL_SCREENSAVER_INHIBIT_ACTIVITY_NAME" + +/** + * Specifies whether SDL_THREAD_PRIORITY_TIME_CRITICAL should be treated as + * realtime. + * + * On some platforms, like Linux, a realtime priority thread may be subject to + * restrictions that require special handling by the application. This hint + * exists to let SDL know that the app is prepared to handle said + * restrictions. + * + * On Linux, SDL will apply the following configuration to any thread that + * becomes realtime: + * + * - The SCHED_RESET_ON_FORK bit will be set on the scheduling policy. + * - An RLIMIT_RTTIME budget will be configured to the rtkit specified limit. + * - Exceeding this limit will result in the kernel sending SIGKILL to the + * app. + * + * Refer to the man pages for more information. + * + * This variable can be set to the following values: + * + * - "0": default platform specific behaviour + * - "1": Force SDL_THREAD_PRIORITY_TIME_CRITICAL to a realtime scheduling + * policy + */ +#define SDL_HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL "SDL_THREAD_FORCE_REALTIME_TIME_CRITICAL" + +/** + * A string specifying additional information to use with + * SDL_SetThreadPriority. + * + * By default SDL_SetThreadPriority will make appropriate system changes in + * order to apply a thread priority. For example on systems using pthreads the + * scheduler policy is changed automatically to a policy that works well with + * a given priority. Code which has specific requirements can override SDL's + * default behavior with this hint. + * + * pthread hint values are "current", "other", "fifo" and "rr". Currently no + * other platform hint values are defined but may be in the future. + */ +#define SDL_HINT_THREAD_PRIORITY_POLICY "SDL_THREAD_PRIORITY_POLICY" + +/** + * A string specifying SDL's threads stack size in bytes or "0" for the + * backend's default size + * + * Use this hint in case you need to set SDL's threads stack size to other + * than the default. This is specially useful if you build SDL against a non + * glibc libc library (such as musl) which provides a relatively small default + * thread stack size (a few kilobytes versus the default 8MB glibc uses). + * Support for this hint is currently available only in the pthread, Windows, + * and PSP backend. + * + * Instead of this hint, in 2.0.9 and later, you can use + * SDL_CreateThreadWithStackSize(). This hint only works with the classic + * SDL_CreateThread(). + */ +#define SDL_HINT_THREAD_STACK_SIZE "SDL_THREAD_STACK_SIZE" + +/** + * A variable that controls the timer resolution, in milliseconds. + * + * The higher resolution the timer, the more frequently the CPU services timer + * interrupts, and the more precise delays are, but this takes up power and + * CPU time. This hint is only used on Windows. + * + * See this blog post for more information: + * http://randomascii.wordpress.com/2013/07/08/windows-timer-resolution-megawatts-wasted/ + * + * If this variable is set to "0", the system timer resolution is not set. + * + * The default value is "1". This hint may be set at any time. + */ +#define SDL_HINT_TIMER_RESOLUTION "SDL_TIMER_RESOLUTION" + +/** + * A variable controlling whether touch events should generate synthetic mouse + * events + * + * This variable can be set to the following values: + * + * - "0": Touch events will not generate mouse events + * - "1": Touch events will generate mouse events + * + * By default SDL will generate mouse events for touch events + */ +#define SDL_HINT_TOUCH_MOUSE_EVENTS "SDL_TOUCH_MOUSE_EVENTS" + +/** + * A variable controlling which touchpad should generate synthetic mouse + * events + * + * This variable can be set to the following values: + * + * - "0": Only front touchpad should generate mouse events. Default + * - "1": Only back touchpad should generate mouse events. + * - "2": Both touchpads should generate mouse events. + * + * By default SDL will generate mouse events for all touch devices + */ +#define SDL_HINT_VITA_TOUCH_MOUSE_DEVICE "SDL_HINT_VITA_TOUCH_MOUSE_DEVICE" + +/** + * A variable controlling whether the Android / tvOS remotes should be listed + * as joystick devices, instead of sending keyboard events. + * + * This variable can be set to the following values: + * + * - "0": Remotes send enter/escape/arrow key events + * - "1": Remotes are available as 2 axis, 2 button joysticks (the default). + */ +#define SDL_HINT_TV_REMOTE_AS_JOYSTICK "SDL_TV_REMOTE_AS_JOYSTICK" + +/** + * A variable controlling whether the screensaver is enabled. + * + * This variable can be set to the following values: + * + * - "0": Disable screensaver + * - "1": Enable screensaver + * + * By default SDL will disable the screensaver. + */ +#define SDL_HINT_VIDEO_ALLOW_SCREENSAVER "SDL_VIDEO_ALLOW_SCREENSAVER" + +/** + * Tell the video driver that we only want a double buffer. + * + * By default, most lowlevel 2D APIs will use a triple buffer scheme that + * wastes no CPU time on waiting for vsync after issuing a flip, but + * introduces a frame of latency. On the other hand, using a double buffer + * scheme instead is recommended for cases where low latency is an important + * factor because we save a whole frame of latency. We do so by waiting for + * vsync immediately after issuing a flip, usually just after eglSwapBuffers + * call in the backend's *_SwapWindow function. + * + * Since it's driver-specific, it's only supported where possible and + * implemented. Currently supported the following drivers: + * + * - Wayland (wayland) + * - KMSDRM (kmsdrm) + * - Raspberry Pi (raspberrypi) + */ +#define SDL_HINT_VIDEO_DOUBLE_BUFFER "SDL_VIDEO_DOUBLE_BUFFER" + +/** + * A variable controlling whether the EGL window is allowed to be composited + * as transparent, rather than opaque. + * + * Most window systems will always render windows opaque, even if the surface + * format has an alpha channel. This is not always true, however, so by + * default SDL will try to enforce opaque composition. To override this + * behavior, you can set this hint to "1". + */ +#define SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY "SDL_VIDEO_EGL_ALLOW_TRANSPARENCY" + +/** + * A variable controlling whether the graphics context is externally managed. + * + * This variable can be set to the following values: + * + * - "0": SDL will manage graphics contexts that are attached to windows. + * - "1": Disable graphics context management on windows. + * + * By default SDL will manage OpenGL contexts in certain situations. For + * example, on Android the context will be automatically saved and restored + * when pausing the application. Additionally, some platforms will assume + * usage of OpenGL if Vulkan isn't used. Setting this to "1" will prevent this + * behavior, which is desireable when the application manages the graphics + * context, such as an externally managed OpenGL context or attaching a Vulkan + * surface to the window. + */ +#define SDL_HINT_VIDEO_EXTERNAL_CONTEXT "SDL_VIDEO_EXTERNAL_CONTEXT" + +/** + * If set to 1, then do not allow high-DPI windows. + * + * ("Retina" on Mac and iOS) + */ +#define SDL_HINT_VIDEO_HIGHDPI_DISABLED "SDL_VIDEO_HIGHDPI_DISABLED" + +/** + * A variable that dictates policy for fullscreen Spaces on Mac OS X. + * + * This hint only applies to Mac OS X. + * + * The variable can be set to the following values: + * + * - "0": Disable Spaces support (FULLSCREEN_DESKTOP won't use them and + * SDL_WINDOW_RESIZABLE windows won't offer the "fullscreen" button on their + * titlebars). + * - "1": Enable Spaces support (FULLSCREEN_DESKTOP will use them and + * SDL_WINDOW_RESIZABLE windows will offer the "fullscreen" button on their + * titlebars). + * + * The default value is "1". This hint must be set before any windows are + * created. + */ +#define SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES "SDL_VIDEO_MAC_FULLSCREEN_SPACES" + +/** + * Minimize your SDL_Window if it loses key focus when in fullscreen mode. + * + * Defaults to false. + */ +#define SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS" + +/** + * A variable controlling whether the libdecor Wayland backend is allowed to + * be used. + * + * This variable can be set to the following values: + * + * - "0": libdecor use is disabled. + * - "1": libdecor use is enabled (default). + * + * libdecor is used over xdg-shell when xdg-decoration protocol is + * unavailable. + */ +#define SDL_HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR "SDL_VIDEO_WAYLAND_ALLOW_LIBDECOR" + +/** + * A variable controlling whether the libdecor Wayland backend is preferred + * over native decorations. + * + * When this hint is set, libdecor will be used to provide window decorations, + * even if xdg-decoration is available. (Note that, by default, libdecor will + * use xdg-decoration itself if available). + * + * This variable can be set to the following values: + * + * - "0": libdecor is enabled only if server-side decorations are unavailable. + * - "1": libdecor is always enabled if available. + * + * libdecor is used over xdg-shell when xdg-decoration protocol is + * unavailable. + */ +#define SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR "SDL_VIDEO_WAYLAND_PREFER_LIBDECOR" + +/** + * A variable controlling whether video mode emulation is enabled under + * Wayland. + * + * When this hint is set, a standard set of emulated CVT video modes will be + * exposed for use by the application. If it is disabled, the only modes + * exposed will be the logical desktop size and, in the case of a scaled + * desktop, the native display resolution. + * + * This variable can be set to the following values: + * + * - "0": Video mode emulation is disabled. + * - "1": Video mode emulation is enabled. + * + * By default video mode emulation is enabled. + */ +#define SDL_HINT_VIDEO_WAYLAND_MODE_EMULATION "SDL_VIDEO_WAYLAND_MODE_EMULATION" + +/** + * Enable or disable mouse pointer warp emulation, needed by some older games. + * + * When this hint is set, any SDL will emulate mouse warps using relative + * mouse mode. This is required for some older games (such as Source engine + * games), which warp the mouse to the centre of the screen rather than using + * relative mouse motion. Note that relative mouse mode may have different + * mouse acceleration behaviour than pointer warps. + * + * This variable can be set to the following values: + * + * - "0": All mouse warps fail, as mouse warping is not available under + * wayland. + * - "1": Some mouse warps will be emulated by forcing relative mouse mode. + * + * If not set, this is automatically enabled unless an application uses + * relative mouse mode directly. + */ +#define SDL_HINT_VIDEO_WAYLAND_EMULATE_MOUSE_WARP "SDL_VIDEO_WAYLAND_EMULATE_MOUSE_WARP" + +/** + * A variable that is the address of another SDL_Window* (as a hex string + * formatted with "%p"). + * + * If this hint is set before SDL_CreateWindowFrom() and the SDL_Window* it is + * set to has SDL_WINDOW_OPENGL set (and running on WGL only, currently), then + * two things will occur on the newly created SDL_Window: + * + * 1. Its pixel format will be set to the same pixel format as this + * SDL_Window. This is needed for example when sharing an OpenGL context + * across multiple windows. + * + * 2. The flag SDL_WINDOW_OPENGL will be set on the new window so it can be + * used for OpenGL rendering. + * + * This variable can be set to the following values: The address (as a string + * "%p") of the SDL_Window* that new windows created with + * SDL_CreateWindowFrom() should share a pixel format with. + */ +#define SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT "SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT" + +/** + * When calling SDL_CreateWindowFrom(), make the window compatible with + * OpenGL. + * + * This variable can be set to the following values: + * + * - "0": Don't add any graphics flags to the SDL_WindowFlags + * - "1": Add SDL_WINDOW_OPENGL to the SDL_WindowFlags + * + * By default SDL will not make the foreign window compatible with OpenGL. + */ +#define SDL_HINT_VIDEO_FOREIGN_WINDOW_OPENGL "SDL_VIDEO_FOREIGN_WINDOW_OPENGL" + +/** + * When calling SDL_CreateWindowFrom(), make the window compatible with + * Vulkan. + * + * This variable can be set to the following values: + * + * - "0": Don't add any graphics flags to the SDL_WindowFlags + * - "1": Add SDL_WINDOW_VULKAN to the SDL_WindowFlags + * + * By default SDL will not make the foreign window compatible with Vulkan. + */ +#define SDL_HINT_VIDEO_FOREIGN_WINDOW_VULKAN "SDL_VIDEO_FOREIGN_WINDOW_VULKAN" + +/** + * A variable specifying which shader compiler to preload when using the + * Chrome ANGLE binaries + * + * SDL has EGL and OpenGL ES2 support on Windows via the ANGLE project. It can + * use two different sets of binaries, those compiled by the user from source + * or those provided by the Chrome browser. In the later case, these binaries + * require that SDL loads a DLL providing the shader compiler. + * + * This variable can be set to the following values: + * + * - "d3dcompiler_46.dll: default, best for Vista or later. + * - "d3dcompiler_43.dll: for XP support. + * - "none": do not load any library, useful if you compiled ANGLE from source + * and included the compiler in your binaries. + */ +#define SDL_HINT_VIDEO_WIN_D3DCOMPILER "SDL_VIDEO_WIN_D3DCOMPILER" + +/** + * A variable controlling whether X11 should use GLX or EGL by default + * + * This variable can be set to the following values: + * + * - "0": Use GLX + * - "1": Use EGL + * + * By default SDL will use GLX when both are present. + */ +#define SDL_HINT_VIDEO_X11_FORCE_EGL "SDL_VIDEO_X11_FORCE_EGL" + +/** + * A variable controlling whether the X11 _NET_WM_BYPASS_COMPOSITOR hint + * should be used. + * + * This variable can be set to the following values: + * + * - "0": Disable _NET_WM_BYPASS_COMPOSITOR + * - "1": Enable _NET_WM_BYPASS_COMPOSITOR + * + * By default SDL will use _NET_WM_BYPASS_COMPOSITOR + */ +#define SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR" + +/** + * A variable controlling whether the X11 _NET_WM_PING protocol should be + * supported. + * + * This variable can be set to the following values: + * + * - "0": Disable _NET_WM_PING + * - "1": Enable _NET_WM_PING + * + * By default SDL will use _NET_WM_PING, but for applications that know they + * will not always be able to respond to ping requests in a timely manner they + * can turn it off to avoid the window manager thinking the app is hung. The + * hint is checked in CreateWindow. + */ +#define SDL_HINT_VIDEO_X11_NET_WM_PING "SDL_VIDEO_X11_NET_WM_PING" + +/** + * A variable forcing the visual ID chosen for new X11 windows + */ +#define SDL_HINT_VIDEO_X11_WINDOW_VISUALID "SDL_VIDEO_X11_WINDOW_VISUALID" + +/** + * A no-longer-used variable controlling whether the X11 Xinerama extension + * should be used. + * + * Before SDL 2.0.24, this would let apps and users disable Xinerama support + * on X11. Now SDL never uses Xinerama, and does not check for this hint at + * all. The preprocessor define is left here for source compatibility. + */ +#define SDL_HINT_VIDEO_X11_XINERAMA "SDL_VIDEO_X11_XINERAMA" + +/** + * A variable controlling whether the X11 XRandR extension should be used. + * + * This variable can be set to the following values: + * + * - "0": Disable XRandR + * - "1": Enable XRandR + * + * By default SDL will use XRandR. + */ +#define SDL_HINT_VIDEO_X11_XRANDR "SDL_VIDEO_X11_XRANDR" + +/** + * A no-longer-used variable controlling whether the X11 VidMode extension + * should be used. + * + * Before SDL 2.0.24, this would let apps and users disable XVidMode support + * on X11. Now SDL never uses XVidMode, and does not check for this hint at + * all. The preprocessor define is left here for source compatibility. + */ +#define SDL_HINT_VIDEO_X11_XVIDMODE "SDL_VIDEO_X11_XVIDMODE" + +/** + * Controls how the fact chunk affects the loading of a WAVE file. + * + * The fact chunk stores information about the number of samples of a WAVE + * file. The Standards Update from Microsoft notes that this value can be used + * to 'determine the length of the data in seconds'. This is especially useful + * for compressed formats (for which this is a mandatory chunk) if they + * produce multiple sample frames per block and truncating the block is not + * allowed. The fact chunk can exactly specify how many sample frames there + * should be in this case. + * + * Unfortunately, most application seem to ignore the fact chunk and so SDL + * ignores it by default as well. + * + * This variable can be set to the following values: + * + * - "truncate": Use the number of samples to truncate the wave data if the + * fact chunk is present and valid + * - "strict": Like "truncate", but raise an error if the fact chunk is + * invalid, not present for non-PCM formats, or if the data chunk doesn't + * have that many samples + * - "ignorezero": Like "truncate", but ignore fact chunk if the number of + * samples is zero + * - "ignore": Ignore fact chunk entirely (default) + */ +#define SDL_HINT_WAVE_FACT_CHUNK "SDL_WAVE_FACT_CHUNK" + +/** + * Controls how the size of the RIFF chunk affects the loading of a WAVE file. + * + * The size of the RIFF chunk (which includes all the sub-chunks of the WAVE + * file) is not always reliable. In case the size is wrong, it's possible to + * just ignore it and step through the chunks until a fixed limit is reached. + * + * Note that files that have trailing data unrelated to the WAVE file or + * corrupt files may slow down the loading process without a reliable + * boundary. By default, SDL stops after 10000 chunks to prevent wasting time. + * Use the environment variable SDL_WAVE_CHUNK_LIMIT to adjust this value. + * + * This variable can be set to the following values: + * + * - "force": Always use the RIFF chunk size as a boundary for the chunk + * search + * - "ignorezero": Like "force", but a zero size searches up to 4 GiB + * (default) + * - "ignore": Ignore the RIFF chunk size and always search up to 4 GiB + * - "maximum": Search for chunks until the end of file (not recommended) + */ +#define SDL_HINT_WAVE_RIFF_CHUNK_SIZE "SDL_WAVE_RIFF_CHUNK_SIZE" + +/** + * Controls how a truncated WAVE file is handled. + * + * A WAVE file is considered truncated if any of the chunks are incomplete or + * the data chunk size is not a multiple of the block size. By default, SDL + * decodes until the first incomplete block, as most applications seem to do. + * + * This variable can be set to the following values: + * + * - "verystrict": Raise an error if the file is truncated + * - "strict": Like "verystrict", but the size of the RIFF chunk is ignored + * - "dropframe": Decode until the first incomplete sample frame + * - "dropblock": Decode until the first incomplete block (default) + */ +#define SDL_HINT_WAVE_TRUNCATION "SDL_WAVE_TRUNCATION" + +/** + * Tell SDL not to name threads on Windows with the 0x406D1388 Exception. + * + * The 0x406D1388 Exception is a trick used to inform Visual Studio of a + * thread's name, but it tends to cause problems with other debuggers, and the + * .NET runtime. Note that SDL 2.0.6 and later will still use the (safer) + * SetThreadDescription API, introduced in the Windows 10 Creators Update, if + * available. + * + * The variable can be set to the following values: + * + * - "0": SDL will raise the 0x406D1388 Exception to name threads. This is the + * default behavior of SDL <= 2.0.4. + * - "1": SDL will not raise this exception, and threads will be unnamed. + * (default) This is necessary with .NET languages or debuggers that aren't + * Visual Studio. + */ +#define SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING "SDL_WINDOWS_DISABLE_THREAD_NAMING" + +/** + * Controls whether menus can be opened with their keyboard shortcut + * (Alt+mnemonic). + * + * If the mnemonics are enabled, then menus can be opened by pressing the Alt + * key and the corresponding mnemonic (for example, Alt+F opens the File + * menu). However, in case an invalid mnemonic is pressed, Windows makes an + * audible beep to convey that nothing happened. This is true even if the + * window has no menu at all! + * + * Because most SDL applications don't have menus, and some want to use the + * Alt key for other purposes, SDL disables mnemonics (and the beeping) by + * default. + * + * Note: This also affects keyboard events: with mnemonics enabled, when a + * menu is opened from the keyboard, you will not receive a KEYUP event for + * the mnemonic key, and *might* not receive one for Alt. + * + * This variable can be set to the following values: + * + * - "0": Alt+mnemonic does nothing, no beeping. (default) + * - "1": Alt+mnemonic opens menus, invalid mnemonics produce a beep. + */ +#define SDL_HINT_WINDOWS_ENABLE_MENU_MNEMONICS "SDL_WINDOWS_ENABLE_MENU_MNEMONICS" + +/** + * A variable controlling whether the windows message loop is processed by SDL + * + * This variable can be set to the following values: + * + * - "0": The window message loop is not run + * - "1": The window message loop is processed in SDL_PumpEvents() + * + * By default SDL will process the windows message loop + */ +#define SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP "SDL_WINDOWS_ENABLE_MESSAGELOOP" + +/** + * Force SDL to use Critical Sections for mutexes on Windows. + * + * On Windows 7 and newer, Slim Reader/Writer Locks are available. They offer + * better performance, allocate no kernel resources and use less memory. SDL + * will fall back to Critical Sections on older OS versions or if forced to by + * this hint. + * + * This variable can be set to the following values: + * + * - "0": Use SRW Locks when available. If not, fall back to Critical + * Sections. (default) + * - "1": Force the use of Critical Sections in all cases. + */ +#define SDL_HINT_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS "SDL_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS" + +/** + * Force SDL to use Kernel Semaphores on Windows. + * + * Kernel Semaphores are inter-process and require a context switch on every + * interaction. On Windows 8 and newer, the WaitOnAddress API is available. + * Using that and atomics to implement semaphores increases performance. SDL + * will fall back to Kernel Objects on older OS versions or if forced to by + * this hint. + * + * This variable can be set to the following values: + * + * - "0": Use Atomics and WaitOnAddress API when available. If not, fall back + * to Kernel Objects. (default) + * - "1": Force the use of Kernel Objects in all cases. + */ +#define SDL_HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL "SDL_WINDOWS_FORCE_SEMAPHORE_KERNEL" + +/** + * A variable to specify custom icon resource id from RC file on Windows + * platform + */ +#define SDL_HINT_WINDOWS_INTRESOURCE_ICON "SDL_WINDOWS_INTRESOURCE_ICON" + +/** + * A variable to specify custom icon resource id from RC file on Windows + * platform + */ +#define SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL "SDL_WINDOWS_INTRESOURCE_ICON_SMALL" + +/** + * Tell SDL not to generate window-close events for Alt+F4 on Windows. + * + * The variable can be set to the following values: + * + * - "0": SDL will generate a window-close event when it sees Alt+F4. + * - "1": SDL will only do normal key handling for Alt+F4. + */ +#define SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 "SDL_WINDOWS_NO_CLOSE_ON_ALT_F4" + +/** + * Use the D3D9Ex API introduced in Windows Vista, instead of normal D3D9. + * + * Direct3D 9Ex contains changes to state management that can eliminate device + * loss errors during scenarios like Alt+Tab or UAC prompts. D3D9Ex may + * require some changes to your application to cope with the new behavior, so + * this is disabled by default. + * + * This hint must be set before initializing the video subsystem. + * + * For more information on Direct3D 9Ex, see: - + * https://docs.microsoft.com/en-us/windows/win32/direct3darticles/graphics-apis-in-windows-vista#direct3d-9ex + * - + * https://docs.microsoft.com/en-us/windows/win32/direct3darticles/direct3d-9ex-improvements + * + * This variable can be set to the following values: + * + * - "0": Use the original Direct3D 9 API (default) + * - "1": Use the Direct3D 9Ex API on Vista and later (and fall back if D3D9Ex + * is unavailable) + */ +#define SDL_HINT_WINDOWS_USE_D3D9EX "SDL_WINDOWS_USE_D3D9EX" + +/** + * Controls whether SDL will declare the process to be DPI aware. + * + * This hint must be set before initializing the video subsystem. + * + * The main purpose of declaring DPI awareness is to disable OS bitmap scaling + * of SDL windows on monitors with a DPI scale factor. + * + * This hint is equivalent to requesting DPI awareness via external means + * (e.g. calling SetProcessDpiAwarenessContext) and does not cause SDL to use + * a virtualized coordinate system, so it will generally give you 1 SDL + * coordinate = 1 pixel even on high-DPI displays. + * + * For more information, see: + * https://docs.microsoft.com/en-us/windows/win32/hidpi/high-dpi-desktop-application-development-on-windows + * + * This variable can be set to the following values: + * + * - "": Do not change the DPI awareness (default). + * - "unaware": Declare the process as DPI unaware. (Windows 8.1 and later). + * - "system": Request system DPI awareness. (Vista and later). + * - "permonitor": Request per-monitor DPI awareness. (Windows 8.1 and later). + * - "permonitorv2": Request per-monitor V2 DPI awareness. (Windows 10, + * version 1607 and later). The most visible difference from "permonitor" is + * that window title bar will be scaled to the visually correct size when + * dragging between monitors with different scale factors. This is the + * preferred DPI awareness level. + * + * If the requested DPI awareness is not available on the currently running + * OS, SDL will try to request the best available match. + */ +#define SDL_HINT_WINDOWS_DPI_AWARENESS "SDL_WINDOWS_DPI_AWARENESS" + +/** + * Uses DPI-scaled points as the SDL coordinate system on Windows. + * + * This changes the SDL coordinate system units to be DPI-scaled points, + * rather than pixels everywhere. This means windows will be appropriately + * sized, even when created on high-DPI displays with scaling. + * + * e.g. requesting a 640x480 window from SDL, on a display with 125% scaling + * in Windows display settings, will create a window with an 800x600 client + * area (in pixels). + * + * Setting this to "1" implicitly requests process DPI awareness (setting + * SDL_WINDOWS_DPI_AWARENESS is unnecessary), and forces + * SDL_WINDOW_ALLOW_HIGHDPI on all windows. + * + * This variable can be set to the following values: + * + * - "0": SDL coordinates equal Windows coordinates. No automatic window + * resizing when dragging between monitors with different scale factors + * (unless this is performed by Windows itself, which is the case when the + * process is DPI unaware). + * - "1": SDL coordinates are in DPI-scaled points. Automatically resize + * windows as needed on displays with non-100% scale factors. + */ +#define SDL_HINT_WINDOWS_DPI_SCALING "SDL_WINDOWS_DPI_SCALING" + +/** + * A variable controlling whether the window frame and title bar are + * interactive when the cursor is hidden + * + * This variable can be set to the following values: + * + * - "0": The window frame is not interactive when the cursor is hidden (no + * move, resize, etc) + * - "1": The window frame is interactive when the cursor is hidden + * + * By default SDL will allow interaction with the window frame when the cursor + * is hidden + */ +#define SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN" + +/** + * A variable controlling whether the window is activated when the + * SDL_ShowWindow function is called + * + * This variable can be set to the following values: + * + * - "0": The window is activated when the SDL_ShowWindow function is called + * - "1": The window is not activated when the SDL_ShowWindow function is + * called + * + * By default SDL will activate the window when the SDL_ShowWindow function is + * called + */ +#define SDL_HINT_WINDOW_NO_ACTIVATION_WHEN_SHOWN "SDL_WINDOW_NO_ACTIVATION_WHEN_SHOWN" + +/** Allows back-button-press events on Windows Phone to be marked as handled + * + * Windows Phone devices typically feature a Back button. When pressed, + * the OS will emit back-button-press events, which apps are expected to + * handle in an appropriate manner. If apps do not explicitly mark these + * events as 'Handled', then the OS will invoke its default behavior for + * unhandled back-button-press events, which on Windows Phone 8 and 8.1 is to + * terminate the app (and attempt to switch to the previous app, or to the + * device's home screen). + * + * Setting the SDL_HINT_WINRT_HANDLE_BACK_BUTTON hint to "1" will cause SDL + * to mark back-button-press events as Handled, if and when one is sent to + * the app. + * + * Internally, Windows Phone sends back button events as parameters to + * special back-button-press callback functions. Apps that need to respond + * to back-button-press events are expected to register one or more + * callback functions for such, shortly after being launched (during the + * app's initialization phase). After the back button is pressed, the OS + * will invoke these callbacks. If the app's callback(s) do not explicitly + * mark the event as handled by the time they return, or if the app never + * registers one of these callback, the OS will consider the event + * un-handled, and it will apply its default back button behavior (terminate + * the app). + * + * SDL registers its own back-button-press callback with the Windows Phone + * OS. This callback will emit a pair of SDL key-press events (SDL_KEYDOWN + * and SDL_KEYUP), each with a scancode of SDL_SCANCODE_AC_BACK, after which + * it will check the contents of the hint, SDL_HINT_WINRT_HANDLE_BACK_BUTTON. + * If the hint's value is set to "1", the back button event's Handled + * property will get set to 'true'. If the hint's value is set to something + * else, or if it is unset, SDL will leave the event's Handled property + * alone. (By default, the OS sets this property to 'false', to note.) + * + * SDL apps can either set SDL_HINT_WINRT_HANDLE_BACK_BUTTON well before a + * back button is pressed, or can set it in direct-response to a back button + * being pressed. + * + * In order to get notified when a back button is pressed, SDL apps should + * register a callback function with SDL_AddEventWatch(), and have it listen + * for SDL_KEYDOWN events that have a scancode of SDL_SCANCODE_AC_BACK. + * (Alternatively, SDL_KEYUP events can be listened-for. Listening for + * either event type is suitable.) Any value of SDL_HINT_WINRT_HANDLE_BACK_BUTTON + * set by such a callback, will be applied to the OS' current + * back-button-press event. + * + * More details on back button behavior in Windows Phone apps can be found + * at the following page, on Microsoft's developer site: + * + * http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj247550(v=vs.105).aspx + */ +#define SDL_HINT_WINRT_HANDLE_BACK_BUTTON "SDL_WINRT_HANDLE_BACK_BUTTON" + +/** Label text for a WinRT app's privacy policy link + * + * Network-enabled WinRT apps must include a privacy policy. On Windows 8, 8.1, and RT, + * Microsoft mandates that this policy be available via the Windows Settings charm. + * SDL provides code to add a link there, with its label text being set via the + * optional hint, SDL_HINT_WINRT_PRIVACY_POLICY_LABEL. + * + * Please note that a privacy policy's contents are not set via this hint. A separate + * hint, SDL_HINT_WINRT_PRIVACY_POLICY_URL, is used to link to the actual text of the + * policy. + * + * The contents of this hint should be encoded as a UTF8 string. + * + * The default value is "Privacy Policy". This hint should only be set during app + * initialization, preferably before any calls to SDL_Init(). + * + * For additional information on linking to a privacy policy, see the documentation for + * SDL_HINT_WINRT_PRIVACY_POLICY_URL. + */ +#define SDL_HINT_WINRT_PRIVACY_POLICY_LABEL "SDL_WINRT_PRIVACY_POLICY_LABEL" + +/** + * A URL to a WinRT app's privacy policy + * + * All network-enabled WinRT apps must make a privacy policy available to its + * users. On Windows 8, 8.1, and RT, Microsoft mandates that this policy be be + * available in the Windows Settings charm, as accessed from within the app. + * SDL provides code to add a URL-based link there, which can point to the + * app's privacy policy. + * + * To setup a URL to an app's privacy policy, set + * SDL_HINT_WINRT_PRIVACY_POLICY_URL before calling any SDL_Init() functions. + * The contents of the hint should be a valid URL. For example, + * "http://www.example.com". + * + * The default value is "", which will prevent SDL from adding a privacy + * policy link to the Settings charm. This hint should only be set during app + * init. + * + * The label text of an app's "Privacy Policy" link may be customized via + * another hint, SDL_HINT_WINRT_PRIVACY_POLICY_LABEL. + * + * Please note that on Windows Phone, Microsoft does not provide standard UI + * for displaying a privacy policy link, and as such, + * SDL_HINT_WINRT_PRIVACY_POLICY_URL will not get used on that platform. + * Network-enabled phone apps should display their privacy policy through some + * other, in-app means. + */ +#define SDL_HINT_WINRT_PRIVACY_POLICY_URL "SDL_WINRT_PRIVACY_POLICY_URL" + +/** + * Mark X11 windows as override-redirect. + * + * If set, this _might_ increase framerate at the expense of the desktop not + * working as expected. Override-redirect windows aren't noticed by the window + * manager at all. + * + * You should probably only use this for fullscreen windows, and you probably + * shouldn't even use it for that. But it's here if you want to try! + */ +#define SDL_HINT_X11_FORCE_OVERRIDE_REDIRECT "SDL_X11_FORCE_OVERRIDE_REDIRECT" + +/** + * A variable that lets you disable the detection and use of Xinput gamepad + * devices + * + * The variable can be set to the following values: + * + * - "0": Disable XInput detection (only uses direct input) + * - "1": Enable XInput detection (the default) + */ +#define SDL_HINT_XINPUT_ENABLED "SDL_XINPUT_ENABLED" + +/** + * A variable that lets you disable the detection and use of DirectInput + * gamepad devices + * + * The variable can be set to the following values: + * + * - "0": Disable DirectInput detection (only uses XInput) + * - "1": Enable DirectInput detection (the default) + */ +#define SDL_HINT_DIRECTINPUT_ENABLED "SDL_DIRECTINPUT_ENABLED" + +/** + * A variable that causes SDL to use the old axis and button mapping for + * XInput devices. + * + * This hint is for backwards compatibility only and will be removed in SDL + * 2.1 + * + * The default value is "0". This hint must be set before SDL_Init() + */ +#define SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING "SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING" + +/** + * A variable that causes SDL to not ignore audio "monitors" + * + * This is currently only used for PulseAudio and ignored elsewhere. + * + * By default, SDL ignores audio devices that aren't associated with physical + * hardware. Changing this hint to "1" will expose anything SDL sees that + * appears to be an audio source or sink. This will add "devices" to the list + * that the user probably doesn't want or need, but it can be useful in + * scenarios where you want to hook up SDL to some sort of virtual device, + * etc. + * + * The default value is "0". This hint must be set before SDL_Init(). + * + * This hint is available since SDL 2.0.16. Before then, virtual devices are + * always ignored. + */ +#define SDL_HINT_AUDIO_INCLUDE_MONITORS "SDL_AUDIO_INCLUDE_MONITORS" + +/** + * A variable that forces X11 windows to create as a custom type. + * + * This is currently only used for X11 and ignored elsewhere. + * + * During SDL_CreateWindow, SDL uses the _NET_WM_WINDOW_TYPE X11 property to + * report to the window manager the type of window it wants to create. This + * might be set to various things if SDL_WINDOW_TOOLTIP or + * SDL_WINDOW_POPUP_MENU, etc, were specified. For "normal" windows that + * haven't set a specific type, this hint can be used to specify a custom + * type. For example, a dock window might set this to + * "_NET_WM_WINDOW_TYPE_DOCK". + * + * If not set or set to "", this hint is ignored. This hint must be set before + * the SDL_CreateWindow() call that it is intended to affect. + * + * This hint is available since SDL 2.0.22. + */ +#define SDL_HINT_X11_WINDOW_TYPE "SDL_X11_WINDOW_TYPE" + +/** + * A variable that decides whether to send SDL_QUIT when closing the final + * window. + * + * By default, SDL sends an SDL_QUIT event when there is only one window and + * it receives an SDL_WINDOWEVENT_CLOSE event, under the assumption most apps + * would also take the loss of this window as a signal to terminate the + * program. + * + * However, it's not unreasonable in some cases to have the program continue + * to live on, perhaps to create new windows later. + * + * Changing this hint to "0" will cause SDL to not send an SDL_QUIT event when + * the final window is requesting to close. Note that in this case, there are + * still other legitimate reasons one might get an SDL_QUIT event: choosing + * "Quit" from the macOS menu bar, sending a SIGINT (ctrl-c) on Unix, etc. + * + * The default value is "1". This hint can be changed at any time. + * + * This hint is available since SDL 2.0.22. Before then, you always get an + * SDL_QUIT event when closing the final window. + */ +#define SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE "SDL_QUIT_ON_LAST_WINDOW_CLOSE" + + +/** + * A variable that decides what video backend to use. + * + * By default, SDL will try all available video backends in a reasonable order + * until it finds one that can work, but this hint allows the app or user to + * force a specific target, such as "x11" if, say, you are on Wayland but want + * to try talking to the X server instead. + * + * This functionality has existed since SDL 2.0.0 (indeed, before that) but + * before 2.0.22 this was an environment variable only. In 2.0.22, it was + * upgraded to a full SDL hint, so you can set the environment variable as + * usual or programatically set the hint with SDL_SetHint, which won't + * propagate to child processes. + * + * The default value is unset, in which case SDL will try to figure out the + * best video backend on your behalf. This hint needs to be set before + * SDL_Init() is called to be useful. + * + * This hint is available since SDL 2.0.22. Before then, you could set the + * environment variable to get the same effect. + */ +#define SDL_HINT_VIDEODRIVER "SDL_VIDEODRIVER" + +/** + * A variable that decides what audio backend to use. + * + * By default, SDL will try all available audio backends in a reasonable order + * until it finds one that can work, but this hint allows the app or user to + * force a specific target, such as "alsa" if, say, you are on PulseAudio but + * want to try talking to the lower level instead. + * + * This functionality has existed since SDL 2.0.0 (indeed, before that) but + * before 2.0.22 this was an environment variable only. In 2.0.22, it was + * upgraded to a full SDL hint, so you can set the environment variable as + * usual or programatically set the hint with SDL_SetHint, which won't + * propagate to child processes. + * + * The default value is unset, in which case SDL will try to figure out the + * best audio backend on your behalf. This hint needs to be set before + * SDL_Init() is called to be useful. + * + * This hint is available since SDL 2.0.22. Before then, you could set the + * environment variable to get the same effect. + */ +#define SDL_HINT_AUDIODRIVER "SDL_AUDIODRIVER" + +/** + * A variable that decides what KMSDRM device to use. + * + * Internally, SDL might open something like "/dev/dri/cardNN" to access + * KMSDRM functionality, where "NN" is a device index number. + * + * SDL makes a guess at the best index to use (usually zero), but the app or + * user can set this hint to a number between 0 and 99 to force selection. + * + * This hint is available since SDL 2.24.0. + */ +#define SDL_HINT_KMSDRM_DEVICE_INDEX "SDL_KMSDRM_DEVICE_INDEX" + + +/** + * A variable that treats trackpads as touch devices. + * + * On macOS (and possibly other platforms in the future), SDL will report + * touches on a trackpad as mouse input, which is generally what users expect + * from this device; however, these are often actually full multitouch-capable + * touch devices, so it might be preferable to some apps to treat them as + * such. + * + * Setting this hint to true will make the trackpad input report as a + * multitouch device instead of a mouse. The default is false. + * + * Note that most platforms don't support this hint. As of 2.24.0, it only + * supports MacBooks' trackpads on macOS. Others may follow later. + * + * This hint is checked during SDL_Init and can not be changed after. + * + * This hint is available since SDL 2.24.0. + */ +#define SDL_HINT_TRACKPAD_IS_TOUCH_ONLY "SDL_TRACKPAD_IS_TOUCH_ONLY" + +/** + * Cause SDL to call dbus_shutdown() on quit. + * + * This is useful as a debug tool to validate memory leaks, but shouldn't ever + * be set in production applications, as other libraries used by the + * application might use dbus under the hood and this cause cause crashes if + * they continue after SDL_Quit(). + * + * This variable can be set to the following values: + * + * - "0": SDL will not call dbus_shutdown() on quit (default) + * - "1": SDL will call dbus_shutdown() on quit + * + * This hint is available since SDL 2.30.0. + */ +#define SDL_HINT_SHUTDOWN_DBUS_ON_QUIT "SDL_SHUTDOWN_DBUS_ON_QUIT" + +/** + * Specify if SDL_RWFromFile should use the resource dir on Apple platforms. + * + * SDL2 has always done this on Apple platforms, but it can be surprising to + * try opening a path to discover that SDL adjusts the path to elsewhere, so + * this hint allows that behavior to be disabled. + * + * If running from a App Bundle, this will be MyApp.app/Contents/Resources. If + * running as a normal Unix-like process, this will be the directory where the + * running binary lives. Setting this hint to 0 avoids this and just uses the + * requested path as-is. + * + * This variable can be set to the following values: + * + * - "0": SDL will not use the app resource directory. + * - "1": SDL will use the app's resource directory (default). + * + * This hint is available since SDL 2.32.0. + */ +#define SDL_HINT_APPLE_RWFROMFILE_USE_RESOURCES "SDL_APPLE_RWFROMFILE_USE_RESOURCES" + + +/** + * An enumeration of hint priorities + */ +typedef enum SDL_HintPriority +{ + SDL_HINT_DEFAULT, + SDL_HINT_NORMAL, + SDL_HINT_OVERRIDE +} SDL_HintPriority; + + +/** + * Set a hint with a specific priority. + * + * The priority controls the behavior when setting a hint that already has a + * value. Hints will replace existing hints of their priority and lower. + * Environment variables are considered to have override priority. + * + * \param name the hint to set. + * \param value the value of the hint variable. + * \param priority the SDL_HintPriority level for the hint. + * \returns SDL_TRUE if the hint was set, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetHint + * \sa SDL_SetHint + */ +extern DECLSPEC SDL_bool SDLCALL SDL_SetHintWithPriority(const char *name, + const char *value, + SDL_HintPriority priority); + +/** + * Set a hint with normal priority. + * + * Hints will not be set if there is an existing override hint or environment + * variable that takes precedence. You can use SDL_SetHintWithPriority() to + * set the hint with override priority instead. + * + * \param name the hint to set. + * \param value the value of the hint variable. + * \returns SDL_TRUE if the hint was set, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetHint + * \sa SDL_SetHintWithPriority + */ +extern DECLSPEC SDL_bool SDLCALL SDL_SetHint(const char *name, + const char *value); + +/** + * Reset a hint to the default value. + * + * This will reset a hint to the value of the environment variable, or NULL if + * the environment isn't set. Callbacks will be called normally with this + * change. + * + * \param name the hint to set. + * \returns SDL_TRUE if the hint was set, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.24.0. + * + * \sa SDL_GetHint + * \sa SDL_SetHint + */ +extern DECLSPEC SDL_bool SDLCALL SDL_ResetHint(const char *name); + +/** + * Reset all hints to the default values. + * + * This will reset all hints to the value of the associated environment + * variable, or NULL if the environment isn't set. Callbacks will be called + * normally with this change. + * + * \since This function is available since SDL 2.26.0. + * + * \sa SDL_GetHint + * \sa SDL_SetHint + * \sa SDL_ResetHint + */ +extern DECLSPEC void SDLCALL SDL_ResetHints(void); + +/** + * Get the value of a hint. + * + * \param name the hint to query. + * \returns the string value of a hint or NULL if the hint isn't set. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetHint + * \sa SDL_SetHintWithPriority + */ +extern DECLSPEC const char * SDLCALL SDL_GetHint(const char *name); + +/** + * Get the boolean value of a hint variable. + * + * \param name the name of the hint to get the boolean value from. + * \param default_value the value to return if the hint does not exist. + * \returns the boolean value of a hint or the provided default value if the + * hint does not exist. + * + * \since This function is available since SDL 2.0.5. + * + * \sa SDL_GetHint + * \sa SDL_SetHint + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GetHintBoolean(const char *name, SDL_bool default_value); + +/** + * Type definition of the hint callback function. + * + * \param userdata what was passed as `userdata` to SDL_AddHintCallback(). + * \param name what was passed as `name` to SDL_AddHintCallback(). + * \param oldValue the previous hint value. + * \param newValue the new value hint is to be set to. + */ +typedef void (SDLCALL *SDL_HintCallback)(void *userdata, const char *name, const char *oldValue, const char *newValue); + +/** + * Add a function to watch a particular hint. + * + * \param name the hint to watch. + * \param callback An SDL_HintCallback function that will be called when the + * hint value changes. + * \param userdata a pointer to pass to the callback function. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_DelHintCallback + */ +extern DECLSPEC void SDLCALL SDL_AddHintCallback(const char *name, + SDL_HintCallback callback, + void *userdata); + +/** + * Remove a function watching a particular hint. + * + * \param name the hint being watched. + * \param callback An SDL_HintCallback function that will be called when the + * hint value changes. + * \param userdata a pointer being passed to the callback function. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AddHintCallback + */ +extern DECLSPEC void SDLCALL SDL_DelHintCallback(const char *name, + SDL_HintCallback callback, + void *userdata); + +/** + * Clear all hints. + * + * This function is automatically called during SDL_Quit(), and deletes all + * callbacks without calling them and frees all memory associated with hints. + * If you're calling this from application code you probably want to call + * SDL_ResetHints() instead. + * + * This function will be removed from the API the next time we rev the ABI. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_ResetHints + */ +extern DECLSPEC void SDLCALL SDL_ClearHints(void); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_hints_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_joystick.h b/lib/windows/include/SDL2/SDL_joystick.h new file mode 100644 index 0000000..668db5e --- /dev/null +++ b/lib/windows/include/SDL2/SDL_joystick.h @@ -0,0 +1,1088 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryJoystick + * + * Include file for SDL joystick event handling + * + * The term "device_index" identifies currently plugged in joystick devices + * between 0 and SDL_NumJoysticks(), with the exact joystick behind a + * device_index changing as joysticks are plugged and unplugged. + * + * The term "instance_id" is the current instantiation of a joystick device in + * the system, if the joystick is removed and then re-inserted then it will + * get a new instance_id, instance_id's are monotonically increasing + * identifiers of a joystick plugged in. + * + * The term "player_index" is the number assigned to a player on a specific + * controller. For XInput controllers this returns the XInput user index. Many + * joysticks will not be able to supply this information. + * + * The term JoystickGUID is a stable 128-bit identifier for a joystick device + * that does not change over time, it identifies class of the device (a X360 + * wired controller for example). This identifier is platform dependent. + */ + +#ifndef SDL_joystick_h_ +#define SDL_joystick_h_ + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_guid.h" +#include "SDL_mutex.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \file SDL_joystick.h + * + * In order to use these functions, SDL_Init() must have been called + * with the SDL_INIT_JOYSTICK flag. This causes SDL to scan the system + * for joysticks, and load appropriate drivers. + * + * If you would like to receive joystick updates while the application + * is in the background, you should set the following hint before calling + * SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS + */ + +/** + * The joystick structure used to identify an SDL joystick + */ +#ifdef SDL_THREAD_SAFETY_ANALYSIS +extern SDL_mutex *SDL_joystick_lock; +#endif +struct _SDL_Joystick; +typedef struct _SDL_Joystick SDL_Joystick; + +/** + * A structure that encodes the stable unique id for a joystick device. + * + * This is just a standard SDL_GUID by a different name. + */ +typedef SDL_GUID SDL_JoystickGUID; + +/** + * This is a unique ID for a joystick for the time it is connected to the + * system, and is never reused for the lifetime of the application. + * + * If the joystick is disconnected and reconnected, it will get a new ID. + * + * The ID value starts at 0 and increments from there. The value -1 is an + * invalid ID. + */ +typedef Sint32 SDL_JoystickID; + +typedef enum +{ + SDL_JOYSTICK_TYPE_UNKNOWN, + SDL_JOYSTICK_TYPE_GAMECONTROLLER, + SDL_JOYSTICK_TYPE_WHEEL, + SDL_JOYSTICK_TYPE_ARCADE_STICK, + SDL_JOYSTICK_TYPE_FLIGHT_STICK, + SDL_JOYSTICK_TYPE_DANCE_PAD, + SDL_JOYSTICK_TYPE_GUITAR, + SDL_JOYSTICK_TYPE_DRUM_KIT, + SDL_JOYSTICK_TYPE_ARCADE_PAD, + SDL_JOYSTICK_TYPE_THROTTLE +} SDL_JoystickType; + +typedef enum +{ + SDL_JOYSTICK_POWER_UNKNOWN = -1, + SDL_JOYSTICK_POWER_EMPTY, /* <= 5% */ + SDL_JOYSTICK_POWER_LOW, /* <= 20% */ + SDL_JOYSTICK_POWER_MEDIUM, /* <= 70% */ + SDL_JOYSTICK_POWER_FULL, /* <= 100% */ + SDL_JOYSTICK_POWER_WIRED, + SDL_JOYSTICK_POWER_MAX +} SDL_JoystickPowerLevel; + +/* Set max recognized G-force from accelerometer + See src/joystick/uikit/SDL_sysjoystick.m for notes on why this is needed + */ +#define SDL_IPHONE_MAX_GFORCE 5.0 + + +/* Function prototypes */ + +/** + * Locking for multi-threaded access to the joystick API + * + * If you are using the joystick API or handling events from multiple threads + * you should use these locking functions to protect access to the joysticks. + * + * In particular, you are guaranteed that the joystick list won't change, so + * the API functions that take a joystick index will be valid, and joystick + * and game controller events will not be delivered. + * + * As of SDL 2.26.0, you can take the joystick lock around reinitializing the + * joystick subsystem, to prevent other threads from seeing joysticks in an + * uninitialized state. However, all open joysticks will be closed and SDL + * functions called with them will fail. + * + * \since This function is available since SDL 2.0.7. + */ +extern DECLSPEC void SDLCALL SDL_LockJoysticks(void) SDL_ACQUIRE(SDL_joystick_lock); + + +/** + * Unlocking for multi-threaded access to the joystick API + * + * If you are using the joystick API or handling events from multiple threads + * you should use these locking functions to protect access to the joysticks. + * + * In particular, you are guaranteed that the joystick list won't change, so + * the API functions that take a joystick index will be valid, and joystick + * and game controller events will not be delivered. + * + * \since This function is available since SDL 2.0.7. + */ +extern DECLSPEC void SDLCALL SDL_UnlockJoysticks(void) SDL_RELEASE(SDL_joystick_lock); + +/** + * Count the number of joysticks attached to the system. + * + * \returns the number of attached joysticks on success or a negative error + * code on failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickName + * \sa SDL_JoystickPath + * \sa SDL_JoystickOpen + */ +extern DECLSPEC int SDLCALL SDL_NumJoysticks(void); + +/** + * Get the implementation dependent name of a joystick. + * + * This can be called before any joysticks are opened. + * + * \param device_index the index of the joystick to query (the N'th joystick + * on the system). + * \returns the name of the selected joystick. If no name can be found, this + * function returns NULL; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickName + * \sa SDL_JoystickOpen + */ +extern DECLSPEC const char *SDLCALL SDL_JoystickNameForIndex(int device_index); + +/** + * Get the implementation dependent path of a joystick. + * + * This can be called before any joysticks are opened. + * + * \param device_index the index of the joystick to query (the N'th joystick + * on the system). + * \returns the path of the selected joystick. If no path can be found, this + * function returns NULL; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.24.0. + * + * \sa SDL_JoystickPath + * \sa SDL_JoystickOpen + */ +extern DECLSPEC const char *SDLCALL SDL_JoystickPathForIndex(int device_index); + +/** + * Get the player index of a joystick, or -1 if it's not available This can be + * called before any joysticks are opened. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC int SDLCALL SDL_JoystickGetDevicePlayerIndex(int device_index); + +/** + * Get the implementation-dependent GUID for the joystick at a given device + * index. + * + * This function can be called before any joysticks are opened. + * + * \param device_index the index of the joystick to query (the N'th joystick + * on the system. + * \returns the GUID of the selected joystick. If called on an invalid index, + * this function returns a zero GUID. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickGetGUID + * \sa SDL_JoystickGetGUIDString + */ +extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetDeviceGUID(int device_index); + +/** + * Get the USB vendor ID of a joystick, if available. + * + * This can be called before any joysticks are opened. If the vendor ID isn't + * available this function returns 0. + * + * \param device_index the index of the joystick to query (the N'th joystick + * on the system. + * \returns the USB vendor ID of the selected joystick. If called on an + * invalid index, this function returns zero. + * + * \since This function is available since SDL 2.0.6. + */ +extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetDeviceVendor(int device_index); + +/** + * Get the USB product ID of a joystick, if available. + * + * This can be called before any joysticks are opened. If the product ID isn't + * available this function returns 0. + * + * \param device_index the index of the joystick to query (the N'th joystick + * on the system. + * \returns the USB product ID of the selected joystick. If called on an + * invalid index, this function returns zero. + * + * \since This function is available since SDL 2.0.6. + */ +extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetDeviceProduct(int device_index); + +/** + * Get the product version of a joystick, if available. + * + * This can be called before any joysticks are opened. If the product version + * isn't available this function returns 0. + * + * \param device_index the index of the joystick to query (the N'th joystick + * on the system. + * \returns the product version of the selected joystick. If called on an + * invalid index, this function returns zero. + * + * \since This function is available since SDL 2.0.6. + */ +extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetDeviceProductVersion(int device_index); + +/** + * Get the type of a joystick, if available. + * + * This can be called before any joysticks are opened. + * + * \param device_index the index of the joystick to query (the N'th joystick + * on the system. + * \returns the SDL_JoystickType of the selected joystick. If called on an + * invalid index, this function returns `SDL_JOYSTICK_TYPE_UNKNOWN`. + * + * \since This function is available since SDL 2.0.6. + */ +extern DECLSPEC SDL_JoystickType SDLCALL SDL_JoystickGetDeviceType(int device_index); + +/** + * Get the instance ID of a joystick. + * + * This can be called before any joysticks are opened. + * + * \param device_index the index of the joystick to query (the N'th joystick + * on the system. + * \returns the instance id of the selected joystick. If called on an invalid + * index, this function returns -1. + * + * \since This function is available since SDL 2.0.6. + */ +extern DECLSPEC SDL_JoystickID SDLCALL SDL_JoystickGetDeviceInstanceID(int device_index); + +/** + * Open a joystick for use. + * + * The `device_index` argument refers to the N'th joystick presently + * recognized by SDL on the system. It is **NOT** the same as the instance ID + * used to identify the joystick in future events. See + * SDL_JoystickInstanceID() for more details about instance IDs. + * + * The joystick subsystem must be initialized before a joystick can be opened + * for use. + * + * \param device_index the index of the joystick to query. + * \returns a joystick identifier or NULL if an error occurred; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickClose + * \sa SDL_JoystickInstanceID + */ +extern DECLSPEC SDL_Joystick *SDLCALL SDL_JoystickOpen(int device_index); + +/** + * Get the SDL_Joystick associated with an instance id. + * + * \param instance_id the instance id to get the SDL_Joystick for. + * \returns an SDL_Joystick on success or NULL on failure; call SDL_GetError() + * for more information. + * + * \since This function is available since SDL 2.0.4. + */ +extern DECLSPEC SDL_Joystick *SDLCALL SDL_JoystickFromInstanceID(SDL_JoystickID instance_id); + +/** + * Get the SDL_Joystick associated with a player index. + * + * \param player_index the player index to get the SDL_Joystick for. + * \returns an SDL_Joystick on success or NULL on failure; call SDL_GetError() + * for more information. + * + * \since This function is available since SDL 2.0.12. + */ +extern DECLSPEC SDL_Joystick *SDLCALL SDL_JoystickFromPlayerIndex(int player_index); + +/** + * Attach a new virtual joystick. + * + * \returns the joystick's device index, or -1 if an error occurred. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC int SDLCALL SDL_JoystickAttachVirtual(SDL_JoystickType type, + int naxes, + int nbuttons, + int nhats); + +/** + * The structure that defines an extended virtual joystick description + * + * The caller must zero the structure and then initialize the version with + * `SDL_VIRTUAL_JOYSTICK_DESC_VERSION` before passing it to + * SDL_JoystickAttachVirtualEx() All other elements of this structure are + * optional and can be left 0. + * + * \sa SDL_JoystickAttachVirtualEx + */ +typedef struct SDL_VirtualJoystickDesc +{ + Uint16 version; /**< `SDL_VIRTUAL_JOYSTICK_DESC_VERSION` */ + Uint16 type; /**< `SDL_JoystickType` */ + Uint16 naxes; /**< the number of axes on this joystick */ + Uint16 nbuttons; /**< the number of buttons on this joystick */ + Uint16 nhats; /**< the number of hats on this joystick */ + Uint16 vendor_id; /**< the USB vendor ID of this joystick */ + Uint16 product_id; /**< the USB product ID of this joystick */ + Uint16 padding; /**< unused */ + Uint32 button_mask; /**< A mask of which buttons are valid for this controller + e.g. (1 << SDL_CONTROLLER_BUTTON_A) */ + Uint32 axis_mask; /**< A mask of which axes are valid for this controller + e.g. (1 << SDL_CONTROLLER_AXIS_LEFTX) */ + const char *name; /**< the name of the joystick */ + + void *userdata; /**< User data pointer passed to callbacks */ + void (SDLCALL *Update)(void *userdata); /**< Called when the joystick state should be updated */ + void (SDLCALL *SetPlayerIndex)(void *userdata, int player_index); /**< Called when the player index is set */ + int (SDLCALL *Rumble)(void *userdata, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble); /**< Implements SDL_JoystickRumble() */ + int (SDLCALL *RumbleTriggers)(void *userdata, Uint16 left_rumble, Uint16 right_rumble); /**< Implements SDL_JoystickRumbleTriggers() */ + int (SDLCALL *SetLED)(void *userdata, Uint8 red, Uint8 green, Uint8 blue); /**< Implements SDL_JoystickSetLED() */ + int (SDLCALL *SendEffect)(void *userdata, const void *data, int size); /**< Implements SDL_JoystickSendEffect() */ + +} SDL_VirtualJoystickDesc; + +/** + * The current version of the SDL_VirtualJoystickDesc structure + */ +#define SDL_VIRTUAL_JOYSTICK_DESC_VERSION 1 + +/** + * Attach a new virtual joystick with extended properties. + * + * \returns the joystick's device index, or -1 if an error occurred. + * + * \since This function is available since SDL 2.24.0. + */ +extern DECLSPEC int SDLCALL SDL_JoystickAttachVirtualEx(const SDL_VirtualJoystickDesc *desc); + +/** + * Detach a virtual joystick. + * + * \param device_index a value previously returned from + * SDL_JoystickAttachVirtual(). + * \returns 0 on success, or -1 if an error occurred. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC int SDLCALL SDL_JoystickDetachVirtual(int device_index); + +/** + * Query whether or not the joystick at a given device index is virtual. + * + * \param device_index a joystick device index. + * \returns SDL_TRUE if the joystick is virtual, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_JoystickIsVirtual(int device_index); + +/** + * Set values on an opened, virtual-joystick's axis. + * + * Please note that values set here will not be applied until the next call to + * SDL_JoystickUpdate, which can either be called directly, or can be called + * indirectly through various other SDL APIs, including, but not limited to + * the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout, + * SDL_WaitEvent. + * + * Note that when sending trigger axes, you should scale the value to the full + * range of Sint16. For example, a trigger at rest would have the value of + * `SDL_JOYSTICK_AXIS_MIN`. + * + * \param joystick the virtual joystick on which to set state. + * \param axis the specific axis on the virtual joystick to set. + * \param value the new value for the specified axis. + * \returns 0 on success, -1 on error. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC int SDLCALL SDL_JoystickSetVirtualAxis(SDL_Joystick *joystick, int axis, Sint16 value); + +/** + * Set values on an opened, virtual-joystick's button. + * + * Please note that values set here will not be applied until the next call to + * SDL_JoystickUpdate, which can either be called directly, or can be called + * indirectly through various other SDL APIs, including, but not limited to + * the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout, + * SDL_WaitEvent. + * + * \param joystick the virtual joystick on which to set state. + * \param button the specific button on the virtual joystick to set. + * \param value the new value for the specified button. + * \returns 0 on success, -1 on error. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC int SDLCALL SDL_JoystickSetVirtualButton(SDL_Joystick *joystick, int button, Uint8 value); + +/** + * Set values on an opened, virtual-joystick's hat. + * + * Please note that values set here will not be applied until the next call to + * SDL_JoystickUpdate, which can either be called directly, or can be called + * indirectly through various other SDL APIs, including, but not limited to + * the following: SDL_PollEvent, SDL_PumpEvents, SDL_WaitEventTimeout, + * SDL_WaitEvent. + * + * \param joystick the virtual joystick on which to set state. + * \param hat the specific hat on the virtual joystick to set. + * \param value the new value for the specified hat. + * \returns 0 on success, -1 on error. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC int SDLCALL SDL_JoystickSetVirtualHat(SDL_Joystick *joystick, int hat, Uint8 value); + +/** + * Get the implementation dependent name of a joystick. + * + * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen(). + * \returns the name of the selected joystick. If no name can be found, this + * function returns NULL; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickNameForIndex + * \sa SDL_JoystickOpen + */ +extern DECLSPEC const char *SDLCALL SDL_JoystickName(SDL_Joystick *joystick); + +/** + * Get the implementation dependent path of a joystick. + * + * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen(). + * \returns the path of the selected joystick. If no path can be found, this + * function returns NULL; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.24.0. + * + * \sa SDL_JoystickPathForIndex + */ +extern DECLSPEC const char *SDLCALL SDL_JoystickPath(SDL_Joystick *joystick); + +/** + * Get the player index of an opened joystick. + * + * For XInput controllers this returns the XInput user index. Many joysticks + * will not be able to supply this information. + * + * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen(). + * \returns the player index, or -1 if it's not available. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC int SDLCALL SDL_JoystickGetPlayerIndex(SDL_Joystick *joystick); + +/** + * Set the player index of an opened joystick. + * + * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen(). + * \param player_index Player index to assign to this joystick, or -1 to clear + * the player index and turn off player LEDs. + * + * \since This function is available since SDL 2.0.12. + */ +extern DECLSPEC void SDLCALL SDL_JoystickSetPlayerIndex(SDL_Joystick *joystick, int player_index); + +/** + * Get the implementation-dependent GUID for the joystick. + * + * This function requires an open joystick. + * + * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen(). + * \returns the GUID of the given joystick. If called on an invalid index, + * this function returns a zero GUID; call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickGetDeviceGUID + * \sa SDL_JoystickGetGUIDString + */ +extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUID(SDL_Joystick *joystick); + +/** + * Get the USB vendor ID of an opened joystick, if available. + * + * If the vendor ID isn't available this function returns 0. + * + * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen(). + * \returns the USB vendor ID of the selected joystick, or 0 if unavailable. + * + * \since This function is available since SDL 2.0.6. + */ +extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetVendor(SDL_Joystick *joystick); + +/** + * Get the USB product ID of an opened joystick, if available. + * + * If the product ID isn't available this function returns 0. + * + * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen(). + * \returns the USB product ID of the selected joystick, or 0 if unavailable. + * + * \since This function is available since SDL 2.0.6. + */ +extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetProduct(SDL_Joystick *joystick); + +/** + * Get the product version of an opened joystick, if available. + * + * If the product version isn't available this function returns 0. + * + * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen(). + * \returns the product version of the selected joystick, or 0 if unavailable. + * + * \since This function is available since SDL 2.0.6. + */ +extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetProductVersion(SDL_Joystick *joystick); + +/** + * Get the firmware version of an opened joystick, if available. + * + * If the firmware version isn't available this function returns 0. + * + * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen(). + * \returns the firmware version of the selected joystick, or 0 if + * unavailable. + * + * \since This function is available since SDL 2.24.0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetFirmwareVersion(SDL_Joystick *joystick); + +/** + * Get the serial number of an opened joystick, if available. + * + * Returns the serial number of the joystick, or NULL if it is not available. + * + * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen(). + * \returns the serial number of the selected joystick, or NULL if + * unavailable. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC const char * SDLCALL SDL_JoystickGetSerial(SDL_Joystick *joystick); + +/** + * Get the type of an opened joystick. + * + * \param joystick the SDL_Joystick obtained from SDL_JoystickOpen(). + * \returns the SDL_JoystickType of the selected joystick. + * + * \since This function is available since SDL 2.0.6. + */ +extern DECLSPEC SDL_JoystickType SDLCALL SDL_JoystickGetType(SDL_Joystick *joystick); + +/** + * Get an ASCII string representation for a given SDL_JoystickGUID. + * + * You should supply at least 33 bytes for pszGUID. + * + * \param guid the SDL_JoystickGUID you wish to convert to string. + * \param pszGUID buffer in which to write the ASCII string. + * \param cbGUID the size of pszGUID. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickGetDeviceGUID + * \sa SDL_JoystickGetGUID + * \sa SDL_JoystickGetGUIDFromString + */ +extern DECLSPEC void SDLCALL SDL_JoystickGetGUIDString(SDL_JoystickGUID guid, char *pszGUID, int cbGUID); + +/** + * Convert a GUID string into a SDL_JoystickGUID structure. + * + * Performs no error checking. If this function is given a string containing + * an invalid GUID, the function will silently succeed, but the GUID generated + * will not be useful. + * + * \param pchGUID string containing an ASCII representation of a GUID. + * \returns a SDL_JoystickGUID structure. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickGetGUIDString + */ +extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUIDFromString(const char *pchGUID); + +/** + * Get the device information encoded in a SDL_JoystickGUID structure + * + * \param guid the SDL_JoystickGUID you wish to get info about. + * \param vendor A pointer filled in with the device VID, or 0 if not + * available. + * \param product A pointer filled in with the device PID, or 0 if not + * available. + * \param version A pointer filled in with the device version, or 0 if not + * available. + * \param crc16 A pointer filled in with a CRC used to distinguish different + * products with the same VID/PID, or 0 if not available. + * + * \since This function is available since SDL 2.26.0. + * + * \sa SDL_JoystickGetDeviceGUID + */ +extern DECLSPEC void SDLCALL SDL_GetJoystickGUIDInfo(SDL_JoystickGUID guid, Uint16 *vendor, Uint16 *product, Uint16 *version, Uint16 *crc16); + +/** + * Get the status of a specified joystick. + * + * \param joystick the joystick to query. + * \returns SDL_TRUE if the joystick has been opened, SDL_FALSE if it has not; + * call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickClose + * \sa SDL_JoystickOpen + */ +extern DECLSPEC SDL_bool SDLCALL SDL_JoystickGetAttached(SDL_Joystick *joystick); + +/** + * Get the instance ID of an opened joystick. + * + * \param joystick an SDL_Joystick structure containing joystick information. + * \returns the instance ID of the specified joystick on success or a negative + * error code on failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickOpen + */ +extern DECLSPEC SDL_JoystickID SDLCALL SDL_JoystickInstanceID(SDL_Joystick *joystick); + +/** + * Get the number of general axis controls on a joystick. + * + * Often, the directional pad on a game controller will either look like 4 + * separate buttons or a POV hat, and not axes, but all of this is up to the + * device and platform. + * + * \param joystick an SDL_Joystick structure containing joystick information. + * \returns the number of axis controls/number of axes on success or a + * negative error code on failure; call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickGetAxis + * \sa SDL_JoystickOpen + */ +extern DECLSPEC int SDLCALL SDL_JoystickNumAxes(SDL_Joystick *joystick); + +/** + * Get the number of trackballs on a joystick. + * + * Joystick trackballs have only relative motion events associated with them + * and their state cannot be polled. + * + * Most joysticks do not have trackballs. + * + * \param joystick an SDL_Joystick structure containing joystick information. + * \returns the number of trackballs on success or a negative error code on + * failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickGetBall + */ +extern DECLSPEC int SDLCALL SDL_JoystickNumBalls(SDL_Joystick *joystick); + +/** + * Get the number of POV hats on a joystick. + * + * \param joystick an SDL_Joystick structure containing joystick information. + * \returns the number of POV hats on success or a negative error code on + * failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickGetHat + * \sa SDL_JoystickOpen + */ +extern DECLSPEC int SDLCALL SDL_JoystickNumHats(SDL_Joystick *joystick); + +/** + * Get the number of buttons on a joystick. + * + * \param joystick an SDL_Joystick structure containing joystick information. + * \returns the number of buttons on success or a negative error code on + * failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickGetButton + * \sa SDL_JoystickOpen + */ +extern DECLSPEC int SDLCALL SDL_JoystickNumButtons(SDL_Joystick *joystick); + +/** + * Update the current state of the open joysticks. + * + * This is called automatically by the event loop if any joystick events are + * enabled. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickEventState + */ +extern DECLSPEC void SDLCALL SDL_JoystickUpdate(void); + +/** + * Enable/disable joystick event polling. + * + * If joystick events are disabled, you must call SDL_JoystickUpdate() + * yourself and manually check the state of the joystick when you want + * joystick information. + * + * It is recommended that you leave joystick event handling enabled. + * + * **WARNING**: Calling this function may delete all events currently in SDL's + * event queue. + * + * While `param` is meant to be one of `SDL_QUERY`, `SDL_IGNORE`, or + * `SDL_ENABLE`, this function accepts any value, with any non-zero value that + * isn't `SDL_QUERY` being treated as `SDL_ENABLE`. + * + * If SDL was built with events disabled (extremely uncommon!), this will do + * nothing and always return `SDL_IGNORE`. + * + * \param state can be one of `SDL_QUERY`, `SDL_IGNORE`, or `SDL_ENABLE`. + * \returns If `state` is `SDL_QUERY` then the current state is returned, + * otherwise `state` is returned (even if it was not one of the + * allowed values). + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GameControllerEventState + */ +extern DECLSPEC int SDLCALL SDL_JoystickEventState(int state); + +/* Limits for joystick axes... */ +#define SDL_JOYSTICK_AXIS_MAX 32767 +#define SDL_JOYSTICK_AXIS_MIN -32768 + +/** + * Get the current state of an axis control on a joystick. + * + * SDL makes no promises about what part of the joystick any given axis refers + * to. Your game should have some sort of configuration UI to let users + * specify what each axis should be bound to. Alternately, SDL's higher-level + * Game Controller API makes a great effort to apply order to this lower-level + * interface, so you know that a specific axis is the "left thumb stick," etc. + * + * The value returned by SDL_JoystickGetAxis() is a signed integer (-32768 to + * 32767) representing the current position of the axis. It may be necessary + * to impose certain tolerances on these values to account for jitter. + * + * \param joystick an SDL_Joystick structure containing joystick information. + * \param axis the axis to query; the axis indices start at index 0. + * \returns a 16-bit signed integer representing the current position of the + * axis or 0 on failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickNumAxes + */ +extern DECLSPEC Sint16 SDLCALL SDL_JoystickGetAxis(SDL_Joystick *joystick, + int axis); + +/** + * Get the initial state of an axis control on a joystick. + * + * The state is a value ranging from -32768 to 32767. + * + * The axis indices start at index 0. + * + * \param joystick an SDL_Joystick structure containing joystick information. + * \param axis the axis to query; the axis indices start at index 0. + * \param state Upon return, the initial value is supplied here. + * \return SDL_TRUE if this axis has any initial value, or SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.6. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_JoystickGetAxisInitialState(SDL_Joystick *joystick, + int axis, Sint16 *state); + +/** + * \name Hat positions + */ +/* @{ */ +#define SDL_HAT_CENTERED 0x00 +#define SDL_HAT_UP 0x01 +#define SDL_HAT_RIGHT 0x02 +#define SDL_HAT_DOWN 0x04 +#define SDL_HAT_LEFT 0x08 +#define SDL_HAT_RIGHTUP (SDL_HAT_RIGHT|SDL_HAT_UP) +#define SDL_HAT_RIGHTDOWN (SDL_HAT_RIGHT|SDL_HAT_DOWN) +#define SDL_HAT_LEFTUP (SDL_HAT_LEFT|SDL_HAT_UP) +#define SDL_HAT_LEFTDOWN (SDL_HAT_LEFT|SDL_HAT_DOWN) +/* @} */ + +/** + * Get the current state of a POV hat on a joystick. + * + * The returned value will be one of the following positions: + * + * - `SDL_HAT_CENTERED` + * - `SDL_HAT_UP` + * - `SDL_HAT_RIGHT` + * - `SDL_HAT_DOWN` + * - `SDL_HAT_LEFT` + * - `SDL_HAT_RIGHTUP` + * - `SDL_HAT_RIGHTDOWN` + * - `SDL_HAT_LEFTUP` + * - `SDL_HAT_LEFTDOWN` + * + * \param joystick an SDL_Joystick structure containing joystick information. + * \param hat the hat index to get the state from; indices start at index 0. + * \returns the current hat position. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickNumHats + */ +extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetHat(SDL_Joystick *joystick, + int hat); + +/** + * Get the ball axis change since the last poll. + * + * Trackballs can only return relative motion since the last call to + * SDL_JoystickGetBall(), these motion deltas are placed into `dx` and `dy`. + * + * Most joysticks do not have trackballs. + * + * \param joystick the SDL_Joystick to query. + * \param ball the ball index to query; ball indices start at index 0. + * \param dx stores the difference in the x axis position since the last poll. + * \param dy stores the difference in the y axis position since the last poll. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickNumBalls + */ +extern DECLSPEC int SDLCALL SDL_JoystickGetBall(SDL_Joystick *joystick, + int ball, int *dx, int *dy); + +/** + * Get the current state of a button on a joystick. + * + * \param joystick an SDL_Joystick structure containing joystick information. + * \param button the button index to get the state from; indices start at + * index 0. + * \returns 1 if the specified button is pressed, 0 otherwise. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickNumButtons + */ +extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetButton(SDL_Joystick *joystick, + int button); + +/** + * Start a rumble effect. + * + * Each call to this function cancels any previous rumble effect, and calling + * it with 0 intensity stops any rumbling. + * + * \param joystick The joystick to vibrate. + * \param low_frequency_rumble The intensity of the low frequency (left) + * rumble motor, from 0 to 0xFFFF. + * \param high_frequency_rumble The intensity of the high frequency (right) + * rumble motor, from 0 to 0xFFFF. + * \param duration_ms The duration of the rumble effect, in milliseconds. + * \returns 0, or -1 if rumble isn't supported on this joystick. + * + * \since This function is available since SDL 2.0.9. + * + * \sa SDL_JoystickHasRumble + */ +extern DECLSPEC int SDLCALL SDL_JoystickRumble(SDL_Joystick *joystick, Uint16 low_frequency_rumble, Uint16 high_frequency_rumble, Uint32 duration_ms); + +/** + * Start a rumble effect in the joystick's triggers + * + * Each call to this function cancels any previous trigger rumble effect, and + * calling it with 0 intensity stops any rumbling. + * + * Note that this is rumbling of the _triggers_ and not the game controller as + * a whole. This is currently only supported on Xbox One controllers. If you + * want the (more common) whole-controller rumble, use SDL_JoystickRumble() + * instead. + * + * \param joystick The joystick to vibrate. + * \param left_rumble The intensity of the left trigger rumble motor, from 0 + * to 0xFFFF. + * \param right_rumble The intensity of the right trigger rumble motor, from 0 + * to 0xFFFF. + * \param duration_ms The duration of the rumble effect, in milliseconds. + * \returns 0, or -1 if trigger rumble isn't supported on this joystick. + * + * \since This function is available since SDL 2.0.14. + * + * \sa SDL_JoystickHasRumbleTriggers + */ +extern DECLSPEC int SDLCALL SDL_JoystickRumbleTriggers(SDL_Joystick *joystick, Uint16 left_rumble, Uint16 right_rumble, Uint32 duration_ms); + +/** + * Query whether a joystick has an LED. + * + * An example of a joystick LED is the light on the back of a PlayStation 4's + * DualShock 4 controller. + * + * \param joystick The joystick to query. + * \return SDL_TRUE if the joystick has a modifiable LED, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_JoystickHasLED(SDL_Joystick *joystick); + +/** + * Query whether a joystick has rumble support. + * + * \param joystick The joystick to query. + * \return SDL_TRUE if the joystick has rumble, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.18. + * + * \sa SDL_JoystickRumble + */ +extern DECLSPEC SDL_bool SDLCALL SDL_JoystickHasRumble(SDL_Joystick *joystick); + +/** + * Query whether a joystick has rumble support on triggers. + * + * \param joystick The joystick to query. + * \return SDL_TRUE if the joystick has trigger rumble, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.18. + * + * \sa SDL_JoystickRumbleTriggers + */ +extern DECLSPEC SDL_bool SDLCALL SDL_JoystickHasRumbleTriggers(SDL_Joystick *joystick); + +/** + * Update a joystick's LED color. + * + * An example of a joystick LED is the light on the back of a PlayStation 4's + * DualShock 4 controller. + * + * \param joystick The joystick to update. + * \param red The intensity of the red LED. + * \param green The intensity of the green LED. + * \param blue The intensity of the blue LED. + * \returns 0 on success, -1 if this joystick does not have a modifiable LED. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC int SDLCALL SDL_JoystickSetLED(SDL_Joystick *joystick, Uint8 red, Uint8 green, Uint8 blue); + +/** + * Send a joystick specific effect packet + * + * \param joystick The joystick to affect. + * \param data The data to send to the joystick. + * \param size The size of the data to send to the joystick. + * \returns 0, or -1 if this joystick or driver doesn't support effect + * packets. + * + * \since This function is available since SDL 2.0.16. + */ +extern DECLSPEC int SDLCALL SDL_JoystickSendEffect(SDL_Joystick *joystick, const void *data, int size); + +/** + * Close a joystick previously opened with SDL_JoystickOpen(). + * + * \param joystick The joystick device to close. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_JoystickOpen + */ +extern DECLSPEC void SDLCALL SDL_JoystickClose(SDL_Joystick *joystick); + +/** + * Get the battery level of a joystick as SDL_JoystickPowerLevel. + * + * \param joystick the SDL_Joystick to query. + * \returns the current battery level as SDL_JoystickPowerLevel on success or + * `SDL_JOYSTICK_POWER_UNKNOWN` if it is unknown. + * + * \since This function is available since SDL 2.0.4. + */ +extern DECLSPEC SDL_JoystickPowerLevel SDLCALL SDL_JoystickCurrentPowerLevel(SDL_Joystick *joystick); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_joystick_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_keyboard.h b/lib/windows/include/SDL2/SDL_keyboard.h new file mode 100644 index 0000000..eb46db5 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_keyboard.h @@ -0,0 +1,361 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryKeyboard + * + * Include file for SDL keyboard event handling + */ + +#ifndef SDL_keyboard_h_ +#define SDL_keyboard_h_ + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_keycode.h" +#include "SDL_video.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * The SDL keysym structure, used in key events. + * + * If you are looking for translated character input, see the SDL_TEXTINPUT + * event. + */ +typedef struct SDL_Keysym +{ + SDL_Scancode scancode; /**< SDL physical key code - see SDL_Scancode for details */ + SDL_Keycode sym; /**< SDL virtual key code - see SDL_Keycode for details */ + Uint16 mod; /**< current key modifiers - see SDL_Keymod for details */ + Uint32 unused; +} SDL_Keysym; + +/* Function prototypes */ + +/** + * Query the window which currently has keyboard focus. + * + * \returns the window with keyboard focus. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC SDL_Window * SDLCALL SDL_GetKeyboardFocus(void); + +/** + * Get a snapshot of the current state of the keyboard. + * + * The pointer returned is a pointer to an internal SDL array. It will be + * valid for the whole lifetime of the application and should not be freed by + * the caller. + * + * A array element with a value of 1 means that the key is pressed and a value + * of 0 means that it is not. Indexes into this array are obtained by using + * SDL_Scancode values. + * + * Use SDL_PumpEvents() to update the state array. + * + * This function gives you the current state after all events have been + * processed, so if a key or button has been pressed and released before you + * process events, then the pressed state will never show up in the + * SDL_GetKeyboardState() calls. + * + * Note: This function doesn't take into account whether shift has been + * pressed or not. + * + * \param numkeys if non-NULL, receives the length of the returned array. + * \returns a pointer to an array of key states. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_PumpEvents + * \sa SDL_ResetKeyboard + */ +extern DECLSPEC const Uint8 *SDLCALL SDL_GetKeyboardState(int *numkeys); + +/** + * Clear the state of the keyboard + * + * This function will generate key up events for all pressed keys. + * + * \since This function is available since SDL 2.24.0. + * + * \sa SDL_GetKeyboardState + */ +extern DECLSPEC void SDLCALL SDL_ResetKeyboard(void); + +/** + * Get the current key modifier state for the keyboard. + * + * \returns an OR'd combination of the modifier keys for the keyboard. See + * SDL_Keymod for details. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetKeyboardState + * \sa SDL_SetModState + */ +extern DECLSPEC SDL_Keymod SDLCALL SDL_GetModState(void); + +/** + * Set the current key modifier state for the keyboard. + * + * The inverse of SDL_GetModState(), SDL_SetModState() allows you to impose + * modifier key states on your application. Simply pass your desired modifier + * states into `modstate`. This value may be a bitwise, OR'd combination of + * SDL_Keymod values. + * + * This does not change the keyboard state, only the key modifier flags that + * SDL reports. + * + * \param modstate the desired SDL_Keymod for the keyboard. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetModState + */ +extern DECLSPEC void SDLCALL SDL_SetModState(SDL_Keymod modstate); + +/** + * Get the key code corresponding to the given scancode according to the + * current keyboard layout. + * + * See SDL_Keycode for details. + * + * \param scancode the desired SDL_Scancode to query. + * \returns the SDL_Keycode that corresponds to the given SDL_Scancode. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetKeyName + * \sa SDL_GetScancodeFromKey + */ +extern DECLSPEC SDL_Keycode SDLCALL SDL_GetKeyFromScancode(SDL_Scancode scancode); + +/** + * Get the scancode corresponding to the given key code according to the + * current keyboard layout. + * + * See SDL_Scancode for details. + * + * \param key the desired SDL_Keycode to query. + * \returns the SDL_Scancode that corresponds to the given SDL_Keycode. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetKeyFromScancode + * \sa SDL_GetScancodeName + */ +extern DECLSPEC SDL_Scancode SDLCALL SDL_GetScancodeFromKey(SDL_Keycode key); + +/** + * Get a human-readable name for a scancode. + * + * See SDL_Scancode for details. + * + * **Warning**: The returned name is by design not stable across platforms, + * e.g. the name for `SDL_SCANCODE_LGUI` is "Left GUI" under Linux but "Left + * Windows" under Microsoft Windows, and some scancodes like + * `SDL_SCANCODE_NONUSBACKSLASH` don't have any name at all. There are even + * scancodes that share names, e.g. `SDL_SCANCODE_RETURN` and + * `SDL_SCANCODE_RETURN2` (both called "Return"). This function is therefore + * unsuitable for creating a stable cross-platform two-way mapping between + * strings and scancodes. + * + * \param scancode the desired SDL_Scancode to query. + * \returns a pointer to the name for the scancode. If the scancode doesn't + * have a name this function returns an empty string (""). + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetScancodeFromKey + * \sa SDL_GetScancodeFromName + */ +extern DECLSPEC const char *SDLCALL SDL_GetScancodeName(SDL_Scancode scancode); + +/** + * Get a scancode from a human-readable name. + * + * \param name the human-readable scancode name. + * \returns the SDL_Scancode, or `SDL_SCANCODE_UNKNOWN` if the name wasn't + * recognized; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetKeyFromName + * \sa SDL_GetScancodeFromKey + * \sa SDL_GetScancodeName + */ +extern DECLSPEC SDL_Scancode SDLCALL SDL_GetScancodeFromName(const char *name); + +/** + * Get a human-readable name for a key. + * + * See SDL_Scancode and SDL_Keycode for details. + * + * \param key the desired SDL_Keycode to query. + * \returns a pointer to a UTF-8 string that stays valid at least until the + * next call to this function. If you need it around any longer, you + * must copy it. If the key doesn't have a name, this function + * returns an empty string (""). + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetKeyFromName + * \sa SDL_GetKeyFromScancode + * \sa SDL_GetScancodeFromKey + */ +extern DECLSPEC const char *SDLCALL SDL_GetKeyName(SDL_Keycode key); + +/** + * Get a key code from a human-readable name. + * + * \param name the human-readable key name. + * \returns key code, or `SDLK_UNKNOWN` if the name wasn't recognized; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetKeyFromScancode + * \sa SDL_GetKeyName + * \sa SDL_GetScancodeFromName + */ +extern DECLSPEC SDL_Keycode SDLCALL SDL_GetKeyFromName(const char *name); + +/** + * Start accepting Unicode text input events. + * + * This function will start accepting Unicode text input events in the focused + * SDL window, and start emitting SDL_TextInputEvent (SDL_TEXTINPUT) and + * SDL_TextEditingEvent (SDL_TEXTEDITING) events. Please use this function in + * pair with SDL_StopTextInput(). + * + * On some platforms using this function activates the screen keyboard. + * + * On desktop platforms, SDL_StartTextInput() is implicitly called on SDL + * video subsystem initialization which will cause SDL_TextInputEvent and + * SDL_TextEditingEvent to begin emitting. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetTextInputRect + * \sa SDL_StopTextInput + */ +extern DECLSPEC void SDLCALL SDL_StartTextInput(void); + +/** + * Check whether or not Unicode text input events are enabled. + * + * \returns SDL_TRUE if text input events are enabled else SDL_FALSE. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_StartTextInput + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IsTextInputActive(void); + +/** + * Stop receiving any text input events. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_StartTextInput + */ +extern DECLSPEC void SDLCALL SDL_StopTextInput(void); + +/** + * Dismiss the composition window/IME without disabling the subsystem. + * + * \since This function is available since SDL 2.0.22. + * + * \sa SDL_StartTextInput + * \sa SDL_StopTextInput + */ +extern DECLSPEC void SDLCALL SDL_ClearComposition(void); + +/** + * Returns if an IME Composite or Candidate window is currently shown. + * + * \since This function is available since SDL 2.0.22. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IsTextInputShown(void); + +/** + * Set the rectangle used to type Unicode text inputs. + * + * Native input methods will place a window with word suggestions near it, + * without covering the text being inputted. + * + * To start text input in a given location, this function is intended to be + * called before SDL_StartTextInput, although some platforms support moving + * the rectangle even while text input (and a composition) is active. + * + * Note: If you want to use the system native IME window, try setting hint + * **SDL_HINT_IME_SHOW_UI** to **1**, otherwise this function won't give you + * any feedback. + * + * \param rect the SDL_Rect structure representing the rectangle to receive + * text (ignored if NULL). + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_StartTextInput + */ +extern DECLSPEC void SDLCALL SDL_SetTextInputRect(const SDL_Rect *rect); + +/** + * Check whether the platform has screen keyboard support. + * + * \returns SDL_TRUE if the platform has some screen keyboard support or + * SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_StartTextInput + * \sa SDL_IsScreenKeyboardShown + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasScreenKeyboardSupport(void); + +/** + * Check whether the screen keyboard is shown for given window. + * + * \param window the window for which screen keyboard should be queried. + * \returns SDL_TRUE if screen keyboard is shown or SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HasScreenKeyboardSupport + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IsScreenKeyboardShown(SDL_Window *window); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_keyboard_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_keycode.h b/lib/windows/include/SDL2/SDL_keycode.h new file mode 100644 index 0000000..eb1678e --- /dev/null +++ b/lib/windows/include/SDL2/SDL_keycode.h @@ -0,0 +1,358 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryKeycode + * + * Defines constants which identify keyboard keys and modifiers. + */ + +#ifndef SDL_keycode_h_ +#define SDL_keycode_h_ + +#include "SDL_stdinc.h" +#include "SDL_scancode.h" + +/** + * The SDL virtual key representation. + * + * Values of this type are used to represent keyboard keys using the current + * layout of the keyboard. These values include Unicode values representing + * the unmodified character that would be generated by pressing the key, or an + * SDLK_* constant for those keys that do not generate characters. + * + * A special exception is the number keys at the top of the keyboard which map + * to SDLK_0...SDLK_9 on AZERTY layouts. + */ +typedef Sint32 SDL_Keycode; + +#define SDLK_SCANCODE_MASK (1<<30) +#define SDL_SCANCODE_TO_KEYCODE(X) (X | SDLK_SCANCODE_MASK) + +typedef enum SDL_KeyCode +{ + SDLK_UNKNOWN = 0, + + SDLK_RETURN = '\r', + SDLK_ESCAPE = '\x1B', + SDLK_BACKSPACE = '\b', + SDLK_TAB = '\t', + SDLK_SPACE = ' ', + SDLK_EXCLAIM = '!', + SDLK_QUOTEDBL = '"', + SDLK_HASH = '#', + SDLK_PERCENT = '%', + SDLK_DOLLAR = '$', + SDLK_AMPERSAND = '&', + SDLK_QUOTE = '\'', + SDLK_LEFTPAREN = '(', + SDLK_RIGHTPAREN = ')', + SDLK_ASTERISK = '*', + SDLK_PLUS = '+', + SDLK_COMMA = ',', + SDLK_MINUS = '-', + SDLK_PERIOD = '.', + SDLK_SLASH = '/', + SDLK_0 = '0', + SDLK_1 = '1', + SDLK_2 = '2', + SDLK_3 = '3', + SDLK_4 = '4', + SDLK_5 = '5', + SDLK_6 = '6', + SDLK_7 = '7', + SDLK_8 = '8', + SDLK_9 = '9', + SDLK_COLON = ':', + SDLK_SEMICOLON = ';', + SDLK_LESS = '<', + SDLK_EQUALS = '=', + SDLK_GREATER = '>', + SDLK_QUESTION = '?', + SDLK_AT = '@', + + /* + Skip uppercase letters + */ + + SDLK_LEFTBRACKET = '[', + SDLK_BACKSLASH = '\\', + SDLK_RIGHTBRACKET = ']', + SDLK_CARET = '^', + SDLK_UNDERSCORE = '_', + SDLK_BACKQUOTE = '`', + SDLK_a = 'a', + SDLK_b = 'b', + SDLK_c = 'c', + SDLK_d = 'd', + SDLK_e = 'e', + SDLK_f = 'f', + SDLK_g = 'g', + SDLK_h = 'h', + SDLK_i = 'i', + SDLK_j = 'j', + SDLK_k = 'k', + SDLK_l = 'l', + SDLK_m = 'm', + SDLK_n = 'n', + SDLK_o = 'o', + SDLK_p = 'p', + SDLK_q = 'q', + SDLK_r = 'r', + SDLK_s = 's', + SDLK_t = 't', + SDLK_u = 'u', + SDLK_v = 'v', + SDLK_w = 'w', + SDLK_x = 'x', + SDLK_y = 'y', + SDLK_z = 'z', + + SDLK_CAPSLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CAPSLOCK), + + SDLK_F1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F1), + SDLK_F2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F2), + SDLK_F3 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F3), + SDLK_F4 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F4), + SDLK_F5 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F5), + SDLK_F6 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F6), + SDLK_F7 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F7), + SDLK_F8 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F8), + SDLK_F9 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F9), + SDLK_F10 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F10), + SDLK_F11 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F11), + SDLK_F12 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F12), + + SDLK_PRINTSCREEN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PRINTSCREEN), + SDLK_SCROLLLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SCROLLLOCK), + SDLK_PAUSE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAUSE), + SDLK_INSERT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_INSERT), + SDLK_HOME = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HOME), + SDLK_PAGEUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEUP), + SDLK_DELETE = '\x7F', + SDLK_END = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_END), + SDLK_PAGEDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PAGEDOWN), + SDLK_RIGHT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RIGHT), + SDLK_LEFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LEFT), + SDLK_DOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DOWN), + SDLK_UP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_UP), + + SDLK_NUMLOCKCLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_NUMLOCKCLEAR), + SDLK_KP_DIVIDE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DIVIDE), + SDLK_KP_MULTIPLY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MULTIPLY), + SDLK_KP_MINUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MINUS), + SDLK_KP_PLUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PLUS), + SDLK_KP_ENTER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_ENTER), + SDLK_KP_1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_1), + SDLK_KP_2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_2), + SDLK_KP_3 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_3), + SDLK_KP_4 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_4), + SDLK_KP_5 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_5), + SDLK_KP_6 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_6), + SDLK_KP_7 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_7), + SDLK_KP_8 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_8), + SDLK_KP_9 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_9), + SDLK_KP_0 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_0), + SDLK_KP_PERIOD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PERIOD), + + SDLK_APPLICATION = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APPLICATION), + SDLK_POWER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_POWER), + SDLK_KP_EQUALS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EQUALS), + SDLK_F13 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F13), + SDLK_F14 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F14), + SDLK_F15 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F15), + SDLK_F16 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F16), + SDLK_F17 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F17), + SDLK_F18 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F18), + SDLK_F19 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F19), + SDLK_F20 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F20), + SDLK_F21 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F21), + SDLK_F22 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F22), + SDLK_F23 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F23), + SDLK_F24 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_F24), + SDLK_EXECUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EXECUTE), + SDLK_HELP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_HELP), + SDLK_MENU = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MENU), + SDLK_SELECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SELECT), + SDLK_STOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_STOP), + SDLK_AGAIN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AGAIN), + SDLK_UNDO = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_UNDO), + SDLK_CUT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CUT), + SDLK_COPY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_COPY), + SDLK_PASTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PASTE), + SDLK_FIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_FIND), + SDLK_MUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MUTE), + SDLK_VOLUMEUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_VOLUMEUP), + SDLK_VOLUMEDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_VOLUMEDOWN), + SDLK_KP_COMMA = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_COMMA), + SDLK_KP_EQUALSAS400 = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EQUALSAS400), + + SDLK_ALTERASE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_ALTERASE), + SDLK_SYSREQ = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SYSREQ), + SDLK_CANCEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CANCEL), + SDLK_CLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CLEAR), + SDLK_PRIOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_PRIOR), + SDLK_RETURN2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RETURN2), + SDLK_SEPARATOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SEPARATOR), + SDLK_OUT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_OUT), + SDLK_OPER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_OPER), + SDLK_CLEARAGAIN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CLEARAGAIN), + SDLK_CRSEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CRSEL), + SDLK_EXSEL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EXSEL), + + SDLK_KP_00 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_00), + SDLK_KP_000 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_000), + SDLK_THOUSANDSSEPARATOR = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_THOUSANDSSEPARATOR), + SDLK_DECIMALSEPARATOR = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DECIMALSEPARATOR), + SDLK_CURRENCYUNIT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CURRENCYUNIT), + SDLK_CURRENCYSUBUNIT = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CURRENCYSUBUNIT), + SDLK_KP_LEFTPAREN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LEFTPAREN), + SDLK_KP_RIGHTPAREN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_RIGHTPAREN), + SDLK_KP_LEFTBRACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LEFTBRACE), + SDLK_KP_RIGHTBRACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_RIGHTBRACE), + SDLK_KP_TAB = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_TAB), + SDLK_KP_BACKSPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_BACKSPACE), + SDLK_KP_A = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_A), + SDLK_KP_B = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_B), + SDLK_KP_C = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_C), + SDLK_KP_D = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_D), + SDLK_KP_E = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_E), + SDLK_KP_F = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_F), + SDLK_KP_XOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_XOR), + SDLK_KP_POWER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_POWER), + SDLK_KP_PERCENT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PERCENT), + SDLK_KP_LESS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_LESS), + SDLK_KP_GREATER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_GREATER), + SDLK_KP_AMPERSAND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_AMPERSAND), + SDLK_KP_DBLAMPERSAND = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DBLAMPERSAND), + SDLK_KP_VERTICALBAR = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_VERTICALBAR), + SDLK_KP_DBLVERTICALBAR = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DBLVERTICALBAR), + SDLK_KP_COLON = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_COLON), + SDLK_KP_HASH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_HASH), + SDLK_KP_SPACE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_SPACE), + SDLK_KP_AT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_AT), + SDLK_KP_EXCLAM = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_EXCLAM), + SDLK_KP_MEMSTORE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMSTORE), + SDLK_KP_MEMRECALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMRECALL), + SDLK_KP_MEMCLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMCLEAR), + SDLK_KP_MEMADD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMADD), + SDLK_KP_MEMSUBTRACT = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMSUBTRACT), + SDLK_KP_MEMMULTIPLY = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMMULTIPLY), + SDLK_KP_MEMDIVIDE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_MEMDIVIDE), + SDLK_KP_PLUSMINUS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_PLUSMINUS), + SDLK_KP_CLEAR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_CLEAR), + SDLK_KP_CLEARENTRY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_CLEARENTRY), + SDLK_KP_BINARY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_BINARY), + SDLK_KP_OCTAL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_OCTAL), + SDLK_KP_DECIMAL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_DECIMAL), + SDLK_KP_HEXADECIMAL = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KP_HEXADECIMAL), + + SDLK_LCTRL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LCTRL), + SDLK_LSHIFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LSHIFT), + SDLK_LALT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LALT), + SDLK_LGUI = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_LGUI), + SDLK_RCTRL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RCTRL), + SDLK_RSHIFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RSHIFT), + SDLK_RALT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RALT), + SDLK_RGUI = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_RGUI), + + SDLK_MODE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MODE), + + SDLK_AUDIONEXT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIONEXT), + SDLK_AUDIOPREV = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOPREV), + SDLK_AUDIOSTOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOSTOP), + SDLK_AUDIOPLAY = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOPLAY), + SDLK_AUDIOMUTE = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOMUTE), + SDLK_MEDIASELECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MEDIASELECT), + SDLK_WWW = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_WWW), + SDLK_MAIL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MAIL), + SDLK_CALCULATOR = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CALCULATOR), + SDLK_COMPUTER = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_COMPUTER), + SDLK_AC_SEARCH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_SEARCH), + SDLK_AC_HOME = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_HOME), + SDLK_AC_BACK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_BACK), + SDLK_AC_FORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_FORWARD), + SDLK_AC_STOP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_STOP), + SDLK_AC_REFRESH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_REFRESH), + SDLK_AC_BOOKMARKS = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AC_BOOKMARKS), + + SDLK_BRIGHTNESSDOWN = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_BRIGHTNESSDOWN), + SDLK_BRIGHTNESSUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_BRIGHTNESSUP), + SDLK_DISPLAYSWITCH = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_DISPLAYSWITCH), + SDLK_KBDILLUMTOGGLE = + SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMTOGGLE), + SDLK_KBDILLUMDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMDOWN), + SDLK_KBDILLUMUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMUP), + SDLK_EJECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EJECT), + SDLK_SLEEP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SLEEP), + SDLK_APP1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APP1), + SDLK_APP2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APP2), + + SDLK_AUDIOREWIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOREWIND), + SDLK_AUDIOFASTFORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOFASTFORWARD), + + SDLK_SOFTLEFT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SOFTLEFT), + SDLK_SOFTRIGHT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SOFTRIGHT), + SDLK_CALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CALL), + SDLK_ENDCALL = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_ENDCALL) +} SDL_KeyCode; + +/** + * Enumeration of valid key mods (possibly OR'd together). + */ +typedef enum SDL_Keymod +{ + KMOD_NONE = 0x0000, + KMOD_LSHIFT = 0x0001, + KMOD_RSHIFT = 0x0002, + KMOD_LCTRL = 0x0040, + KMOD_RCTRL = 0x0080, + KMOD_LALT = 0x0100, + KMOD_RALT = 0x0200, + KMOD_LGUI = 0x0400, + KMOD_RGUI = 0x0800, + KMOD_NUM = 0x1000, + KMOD_CAPS = 0x2000, + KMOD_MODE = 0x4000, + KMOD_SCROLL = 0x8000, + + KMOD_CTRL = KMOD_LCTRL | KMOD_RCTRL, + KMOD_SHIFT = KMOD_LSHIFT | KMOD_RSHIFT, + KMOD_ALT = KMOD_LALT | KMOD_RALT, + KMOD_GUI = KMOD_LGUI | KMOD_RGUI, + + KMOD_RESERVED = KMOD_SCROLL /* This is for source-level compatibility with SDL 2.0.0. */ +} SDL_Keymod; + +#endif /* SDL_keycode_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_loadso.h b/lib/windows/include/SDL2/SDL_loadso.h new file mode 100644 index 0000000..1763b52 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_loadso.h @@ -0,0 +1,117 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* WIKI CATEGORY: LoadSO */ + +/** + * # CategoryLoadSO + * + * System-dependent library loading routines. + * + * Some things to keep in mind: + * + * - These functions only work on C function names. Other languages may have + * name mangling and intrinsic language support that varies from compiler to + * compiler. + * - Make sure you declare your function pointers with the same calling + * convention as the actual library function. Your code will crash + * mysteriously if you do not do this. + * - Avoid namespace collisions. If you load a symbol from the library, it is + * not defined whether or not it goes into the global symbol namespace for + * the application. If it does and it conflicts with symbols in your code or + * other shared libraries, you will not get the results you expect. :) + */ + +#ifndef SDL_loadso_h_ +#define SDL_loadso_h_ + +#include "SDL_stdinc.h" +#include "SDL_error.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Dynamically load a shared object. + * + * \param sofile a system-dependent name of the object file. + * \returns an opaque pointer to the object handle or NULL if there was an + * error; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LoadFunction + * \sa SDL_UnloadObject + */ +extern DECLSPEC void *SDLCALL SDL_LoadObject(const char *sofile); + +/** + * Look up the address of the named function in a shared object. + * + * This function pointer is no longer valid after calling SDL_UnloadObject(). + * + * This function can only look up C function names. Other languages may have + * name mangling and intrinsic language support that varies from compiler to + * compiler. + * + * Make sure you declare your function pointers with the same calling + * convention as the actual library function. Your code will crash + * mysteriously if you do not do this. + * + * If the requested function doesn't exist, NULL is returned. + * + * \param handle a valid shared object handle returned by SDL_LoadObject(). + * \param name the name of the function to look up. + * \returns a pointer to the function or NULL if there was an error; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LoadObject + * \sa SDL_UnloadObject + */ +extern DECLSPEC void *SDLCALL SDL_LoadFunction(void *handle, + const char *name); + +/** + * Unload a shared object from memory. + * + * \param handle a valid shared object handle returned by SDL_LoadObject(). + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LoadFunction + * \sa SDL_LoadObject + */ +extern DECLSPEC void SDLCALL SDL_UnloadObject(void *handle); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_loadso_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_locale.h b/lib/windows/include/SDL2/SDL_locale.h new file mode 100644 index 0000000..8126efc --- /dev/null +++ b/lib/windows/include/SDL2/SDL_locale.h @@ -0,0 +1,103 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryLocale + * + * Include file for SDL locale services + */ + +#ifndef _SDL_locale_h +#define _SDL_locale_h + +#include "SDL_stdinc.h" +#include "SDL_error.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +/* *INDENT-OFF* */ +extern "C" { +/* *INDENT-ON* */ +#endif + + +typedef struct SDL_Locale +{ + const char *language; /**< A language name, like "en" for English. */ + const char *country; /**< A country, like "US" for America. Can be NULL. */ +} SDL_Locale; + +/** + * Report the user's preferred locale. + * + * This returns an array of SDL_Locale structs, the final item zeroed out. + * When the caller is done with this array, it should call SDL_free() on the + * returned value; all the memory involved is allocated in a single block, so + * a single SDL_free() will suffice. + * + * Returned language strings are in the format xx, where 'xx' is an ISO-639 + * language specifier (such as "en" for English, "de" for German, etc). + * Country strings are in the format YY, where "YY" is an ISO-3166 country + * code (such as "US" for the United States, "CA" for Canada, etc). Country + * might be NULL if there's no specific guidance on them (so you might get { + * "en", "US" } for American English, but { "en", NULL } means "English + * language, generically"). Language strings are never NULL, except to + * terminate the array. + * + * Please note that not all of these strings are 2 characters; some are three + * or more. + * + * The returned list of locales are in the order of the user's preference. For + * example, a German citizen that is fluent in US English and knows enough + * Japanese to navigate around Tokyo might have a list like: { "de", "en_US", + * "jp", NULL }. Someone from England might prefer British English (where + * "color" is spelled "colour", etc), but will settle for anything like it: { + * "en_GB", "en", NULL }. + * + * This function returns NULL on error, including when the platform does not + * supply this information at all. + * + * This might be a "slow" call that has to query the operating system. It's + * best to ask for this once and save the results. However, this list can + * change, usually because the user has changed a system preference outside of + * your program; SDL will send an SDL_LOCALECHANGED event in this case, if + * possible, and you can call this function again to get an updated copy of + * preferred locales. + * + * \return array of locales, terminated with a locale with a NULL language + * field. Will return NULL on error. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC SDL_Locale * SDLCALL SDL_GetPreferredLocales(void); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +/* *INDENT-OFF* */ +} +/* *INDENT-ON* */ +#endif +#include "close_code.h" + +#endif /* _SDL_locale_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_log.h b/lib/windows/include/SDL2/SDL_log.h new file mode 100644 index 0000000..75833ba --- /dev/null +++ b/lib/windows/include/SDL2/SDL_log.h @@ -0,0 +1,405 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryLog + * + * Simple log messages with categories and priorities. + * + * By default logs are quiet, but if you're debugging SDL you might want: + * + * SDL_LogSetAllPriority(SDL_LOG_PRIORITY_WARN); + * + * Here's where the messages go on different platforms: + * + * - Windows: debug output stream + * - Android: log output + * - Others: standard error output (stderr) + */ + +#ifndef SDL_log_h_ +#define SDL_log_h_ + +#include "SDL_stdinc.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + + +/** + * The maximum size of a log message prior to SDL 2.0.24 + * + * As of 2.0.24 there is no limit to the length of SDL log messages. + */ +#define SDL_MAX_LOG_MESSAGE 4096 + +/** + * The predefined log categories + * + * By default the application category is enabled at the INFO level, the + * assert category is enabled at the WARN level, test is enabled at the + * VERBOSE level and all other categories are enabled at the ERROR level. + */ +typedef enum SDL_LogCategory +{ + SDL_LOG_CATEGORY_APPLICATION, + SDL_LOG_CATEGORY_ERROR, + SDL_LOG_CATEGORY_ASSERT, + SDL_LOG_CATEGORY_SYSTEM, + SDL_LOG_CATEGORY_AUDIO, + SDL_LOG_CATEGORY_VIDEO, + SDL_LOG_CATEGORY_RENDER, + SDL_LOG_CATEGORY_INPUT, + SDL_LOG_CATEGORY_TEST, + + /* Reserved for future SDL library use */ + SDL_LOG_CATEGORY_RESERVED1, + SDL_LOG_CATEGORY_RESERVED2, + SDL_LOG_CATEGORY_RESERVED3, + SDL_LOG_CATEGORY_RESERVED4, + SDL_LOG_CATEGORY_RESERVED5, + SDL_LOG_CATEGORY_RESERVED6, + SDL_LOG_CATEGORY_RESERVED7, + SDL_LOG_CATEGORY_RESERVED8, + SDL_LOG_CATEGORY_RESERVED9, + SDL_LOG_CATEGORY_RESERVED10, + + /* Beyond this point is reserved for application use, e.g. + enum { + MYAPP_CATEGORY_AWESOME1 = SDL_LOG_CATEGORY_CUSTOM, + MYAPP_CATEGORY_AWESOME2, + MYAPP_CATEGORY_AWESOME3, + ... + }; + */ + SDL_LOG_CATEGORY_CUSTOM +} SDL_LogCategory; + +/** + * The predefined log priorities + */ +typedef enum SDL_LogPriority +{ + SDL_LOG_PRIORITY_VERBOSE = 1, + SDL_LOG_PRIORITY_DEBUG, + SDL_LOG_PRIORITY_INFO, + SDL_LOG_PRIORITY_WARN, + SDL_LOG_PRIORITY_ERROR, + SDL_LOG_PRIORITY_CRITICAL, + SDL_NUM_LOG_PRIORITIES +} SDL_LogPriority; + + +/** + * Set the priority of all log categories. + * + * \param priority the SDL_LogPriority to assign. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LogSetPriority + */ +extern DECLSPEC void SDLCALL SDL_LogSetAllPriority(SDL_LogPriority priority); + +/** + * Set the priority of a particular log category. + * + * \param category the category to assign a priority to. + * \param priority the SDL_LogPriority to assign. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LogGetPriority + * \sa SDL_LogSetAllPriority + */ +extern DECLSPEC void SDLCALL SDL_LogSetPriority(int category, + SDL_LogPriority priority); + +/** + * Get the priority of a particular log category. + * + * \param category the category to query. + * \returns the SDL_LogPriority for the requested category. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LogSetPriority + */ +extern DECLSPEC SDL_LogPriority SDLCALL SDL_LogGetPriority(int category); + +/** + * Reset all priorities to default. + * + * This is called by SDL_Quit(). + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LogSetAllPriority + * \sa SDL_LogSetPriority + */ +extern DECLSPEC void SDLCALL SDL_LogResetPriorities(void); + +/** + * Log a message with SDL_LOG_CATEGORY_APPLICATION and SDL_LOG_PRIORITY_INFO. + * + * = * \param fmt a printf() style message format string + * + * \param ... additional parameters matching % tokens in the `fmt` string, if + * any. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LogCritical + * \sa SDL_LogDebug + * \sa SDL_LogError + * \sa SDL_LogInfo + * \sa SDL_LogMessage + * \sa SDL_LogMessageV + * \sa SDL_LogVerbose + * \sa SDL_LogWarn + */ +extern DECLSPEC void SDLCALL SDL_Log(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1); + +/** + * Log a message with SDL_LOG_PRIORITY_VERBOSE. + * + * \param category the category of the message. + * \param fmt a printf() style message format string. + * \param ... additional parameters matching % tokens in the **fmt** string, + * if any. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Log + * \sa SDL_LogCritical + * \sa SDL_LogDebug + * \sa SDL_LogError + * \sa SDL_LogInfo + * \sa SDL_LogMessage + * \sa SDL_LogMessageV + * \sa SDL_LogWarn + */ +extern DECLSPEC void SDLCALL SDL_LogVerbose(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); + +/** + * Log a message with SDL_LOG_PRIORITY_DEBUG. + * + * \param category the category of the message. + * \param fmt a printf() style message format string. + * \param ... additional parameters matching % tokens in the **fmt** string, + * if any. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Log + * \sa SDL_LogCritical + * \sa SDL_LogError + * \sa SDL_LogInfo + * \sa SDL_LogMessage + * \sa SDL_LogMessageV + * \sa SDL_LogVerbose + * \sa SDL_LogWarn + */ +extern DECLSPEC void SDLCALL SDL_LogDebug(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); + +/** + * Log a message with SDL_LOG_PRIORITY_INFO. + * + * \param category the category of the message. + * \param fmt a printf() style message format string. + * \param ... additional parameters matching % tokens in the **fmt** string, + * if any. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Log + * \sa SDL_LogCritical + * \sa SDL_LogDebug + * \sa SDL_LogError + * \sa SDL_LogMessage + * \sa SDL_LogMessageV + * \sa SDL_LogVerbose + * \sa SDL_LogWarn + */ +extern DECLSPEC void SDLCALL SDL_LogInfo(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); + +/** + * Log a message with SDL_LOG_PRIORITY_WARN. + * + * \param category the category of the message. + * \param fmt a printf() style message format string. + * \param ... additional parameters matching % tokens in the **fmt** string, + * if any. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Log + * \sa SDL_LogCritical + * \sa SDL_LogDebug + * \sa SDL_LogError + * \sa SDL_LogInfo + * \sa SDL_LogMessage + * \sa SDL_LogMessageV + * \sa SDL_LogVerbose + */ +extern DECLSPEC void SDLCALL SDL_LogWarn(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); + +/** + * Log a message with SDL_LOG_PRIORITY_ERROR. + * + * \param category the category of the message. + * \param fmt a printf() style message format string. + * \param ... additional parameters matching % tokens in the **fmt** string, + * if any. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Log + * \sa SDL_LogCritical + * \sa SDL_LogDebug + * \sa SDL_LogInfo + * \sa SDL_LogMessage + * \sa SDL_LogMessageV + * \sa SDL_LogVerbose + * \sa SDL_LogWarn + */ +extern DECLSPEC void SDLCALL SDL_LogError(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); + +/** + * Log a message with SDL_LOG_PRIORITY_CRITICAL. + * + * \param category the category of the message. + * \param fmt a printf() style message format string. + * \param ... additional parameters matching % tokens in the **fmt** string, + * if any. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Log + * \sa SDL_LogDebug + * \sa SDL_LogError + * \sa SDL_LogInfo + * \sa SDL_LogMessage + * \sa SDL_LogMessageV + * \sa SDL_LogVerbose + * \sa SDL_LogWarn + */ +extern DECLSPEC void SDLCALL SDL_LogCritical(int category, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); + +/** + * Log a message with the specified category and priority. + * + * \param category the category of the message. + * \param priority the priority of the message. + * \param fmt a printf() style message format string. + * \param ... additional parameters matching % tokens in the **fmt** string, + * if any. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Log + * \sa SDL_LogCritical + * \sa SDL_LogDebug + * \sa SDL_LogError + * \sa SDL_LogInfo + * \sa SDL_LogMessageV + * \sa SDL_LogVerbose + * \sa SDL_LogWarn + */ +extern DECLSPEC void SDLCALL SDL_LogMessage(int category, + SDL_LogPriority priority, + SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(3); + +/** + * Log a message with the specified category and priority. + * + * \param category the category of the message. + * \param priority the priority of the message. + * \param fmt a printf() style message format string. + * \param ap a variable argument list. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Log + * \sa SDL_LogCritical + * \sa SDL_LogDebug + * \sa SDL_LogError + * \sa SDL_LogInfo + * \sa SDL_LogMessage + * \sa SDL_LogVerbose + * \sa SDL_LogWarn + */ +extern DECLSPEC void SDLCALL SDL_LogMessageV(int category, + SDL_LogPriority priority, + SDL_PRINTF_FORMAT_STRING const char *fmt, va_list ap) SDL_PRINTF_VARARG_FUNCV(3); + +/** + * The prototype for the log output callback function. + * + * This function is called by SDL when there is new text to be logged. + * + * \param userdata what was passed as `userdata` to + * SDL_LogSetOutputFunction(). + * \param category the category of the message. + * \param priority the priority of the message. + * \param message the message being output. + */ +typedef void (SDLCALL *SDL_LogOutputFunction)(void *userdata, int category, SDL_LogPriority priority, const char *message); + +/** + * Get the current log output function. + * + * \param callback an SDL_LogOutputFunction filled in with the current log + * callback. + * \param userdata a pointer filled in with the pointer that is passed to + * `callback`. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LogSetOutputFunction + */ +extern DECLSPEC void SDLCALL SDL_LogGetOutputFunction(SDL_LogOutputFunction *callback, void **userdata); + +/** + * Replace the default log output function with one of your own. + * + * \param callback an SDL_LogOutputFunction to call instead of the default. + * \param userdata a pointer that is passed to `callback`. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LogGetOutputFunction + */ +extern DECLSPEC void SDLCALL SDL_LogSetOutputFunction(SDL_LogOutputFunction callback, void *userdata); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_log_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_main.h b/lib/windows/include/SDL2/SDL_main.h new file mode 100644 index 0000000..a1ef3e7 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_main.h @@ -0,0 +1,282 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_main_h_ +#define SDL_main_h_ + +#include "SDL_stdinc.h" + +/** + * # CategoryMain + * + * Redefine main() on some platforms so that it is called by SDL. + */ + +#ifndef SDL_MAIN_HANDLED +#if defined(__WIN32__) +/* On Windows SDL provides WinMain(), which parses the command line and passes + the arguments to your main function. + + If you provide your own WinMain(), you may define SDL_MAIN_HANDLED + */ +#define SDL_MAIN_AVAILABLE + +#elif defined(__WINRT__) +/* On WinRT, SDL provides a main function that initializes CoreApplication, + creating an instance of IFrameworkView in the process. + + Please note that #include'ing SDL_main.h is not enough to get a main() + function working. In non-XAML apps, the file, + src/main/winrt/SDL_WinRT_main_NonXAML.cpp, or a copy of it, must be compiled + into the app itself. In XAML apps, the function, SDL_WinRTRunApp must be + called, with a pointer to the Direct3D-hosted XAML control passed in. +*/ +#define SDL_MAIN_NEEDED + +#elif defined(__GDK__) +/* On GDK, SDL provides a main function that initializes the game runtime. + + Please note that #include'ing SDL_main.h is not enough to get a main() + function working. You must either link against SDL2main or, if not possible, + call the SDL_GDKRunApp function from your entry point. +*/ +#define SDL_MAIN_NEEDED + +#elif defined(__IPHONEOS__) +/* On iOS SDL provides a main function that creates an application delegate + and starts the iOS application run loop. + + If you link with SDL dynamically on iOS, the main function can't be in a + shared library, so you need to link with libSDLmain.a, which includes a + stub main function that calls into the shared library to start execution. + + See src/video/uikit/SDL_uikitappdelegate.m for more details. + */ +#define SDL_MAIN_NEEDED + +#elif defined(__ANDROID__) +/* On Android SDL provides a Java class in SDLActivity.java that is the + main activity entry point. + + See docs/README-android.md for more details on extending that class. + */ +#define SDL_MAIN_NEEDED + +/* We need to export SDL_main so it can be launched from Java */ +#define SDLMAIN_DECLSPEC DECLSPEC + +#elif defined(__NACL__) +/* On NACL we use ppapi_simple to set up the application helper code, + then wait for the first PSE_INSTANCE_DIDCHANGEVIEW event before + starting the user main function. + All user code is run in a separate thread by ppapi_simple, thus + allowing for blocking io to take place via nacl_io +*/ +#define SDL_MAIN_NEEDED + +#elif defined(__PSP__) +/* On PSP SDL provides a main function that sets the module info, + activates the GPU and starts the thread required to be able to exit + the software. + + If you provide this yourself, you may define SDL_MAIN_HANDLED + */ +#define SDL_MAIN_AVAILABLE + +#elif defined(__PS2__) +#define SDL_MAIN_AVAILABLE + +#define SDL_PS2_SKIP_IOP_RESET() \ + void reset_IOP(); \ + void reset_IOP() {} + +#elif defined(__3DS__) +/* + On N3DS, SDL provides a main function that sets up the screens + and storage. + + If you provide this yourself, you may define SDL_MAIN_HANDLED +*/ +#define SDL_MAIN_AVAILABLE + +#endif +#endif /* SDL_MAIN_HANDLED */ + +#ifndef SDLMAIN_DECLSPEC +#define SDLMAIN_DECLSPEC +#endif + +/** + * \file SDL_main.h + * + * The application's main() function must be called with C linkage, + * and should be declared like this: + * ```c + * #ifdef __cplusplus + * extern "C" + * #endif + * int main(int argc, char *argv[]) + * { + * } + * ``` + */ + +#if defined(SDL_MAIN_NEEDED) || defined(SDL_MAIN_AVAILABLE) +#define main SDL_main +#endif + +#include "begin_code.h" +#ifdef __cplusplus +extern "C" { +#endif + +/** + * The prototype for the application's main() function + */ +typedef int (*SDL_main_func)(int argc, char *argv[]); +extern SDLMAIN_DECLSPEC int SDL_main(int argc, char *argv[]); + + +/** + * Circumvent failure of SDL_Init() when not using SDL_main() as an entry + * point. + * + * This function is defined in SDL_main.h, along with the preprocessor rule to + * redefine main() as SDL_main(). Thus to ensure that your main() function + * will not be changed it is necessary to define SDL_MAIN_HANDLED before + * including SDL.h. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_Init + */ +extern DECLSPEC void SDLCALL SDL_SetMainReady(void); + +#if defined(__WIN32__) || defined(__GDK__) + +/** + * Register a win32 window class for SDL's use. + * + * This can be called to set the application window class at startup. It is + * safe to call this multiple times, as long as every call is eventually + * paired with a call to SDL_UnregisterApp, but a second registration attempt + * while a previous registration is still active will be ignored, other than + * to increment a counter. + * + * Most applications do not need to, and should not, call this directly; SDL + * will call it when initializing the video subsystem. + * + * \param name the window class name, in UTF-8 encoding. If NULL, SDL + * currently uses "SDL_app" but this isn't guaranteed. + * \param style the value to use in WNDCLASSEX::style. If `name` is NULL, SDL + * currently uses `(CS_BYTEALIGNCLIENT | CS_OWNDC)` regardless of + * what is specified here. + * \param hInst the HINSTANCE to use in WNDCLASSEX::hInstance. If zero, SDL + * will use `GetModuleHandle(NULL)` instead. + * \returns 0 on success, -1 on error. SDL_GetError() may have details. + * + * \since This function is available since SDL 2.0.2. + */ +extern DECLSPEC int SDLCALL SDL_RegisterApp(const char *name, Uint32 style, void *hInst); + +/** + * Deregister the win32 window class from an SDL_RegisterApp call. + * + * This can be called to undo the effects of SDL_RegisterApp. + * + * Most applications do not need to, and should not, call this directly; SDL + * will call it when deinitializing the video subsystem. + * + * It is safe to call this multiple times, as long as every call is eventually + * paired with a prior call to SDL_RegisterApp. The window class will only be + * deregistered when the registration counter in SDL_RegisterApp decrements to + * zero through calls to this function. + * + * \since This function is available since SDL 2.0.2. + */ +extern DECLSPEC void SDLCALL SDL_UnregisterApp(void); + +#endif /* defined(__WIN32__) || defined(__GDK__) */ + + +#ifdef __WINRT__ + +/** + * Initialize and launch an SDL/WinRT application. + * + * \param mainFunction the SDL app's C-style main(), an SDL_main_func. + * \param reserved reserved for future use; should be NULL. + * \returns 0 on success or -1 on failure; call SDL_GetError() to retrieve + * more information on the failure. + * + * \since This function is available since SDL 2.0.3. + */ +extern DECLSPEC int SDLCALL SDL_WinRTRunApp(SDL_main_func mainFunction, void * reserved); + +#endif /* __WINRT__ */ + +#if defined(__IPHONEOS__) + +/** + * Initializes and launches an SDL application. + * + * \param argc The argc parameter from the application's main() function. + * \param argv The argv parameter from the application's main() function. + * \param mainFunction The SDL app's C-style main(), an SDL_main_func. + * \return the return value from mainFunction. + * + * \since This function is available since SDL 2.0.10. + */ +extern DECLSPEC int SDLCALL SDL_UIKitRunApp(int argc, char *argv[], SDL_main_func mainFunction); + +#endif /* __IPHONEOS__ */ + +#ifdef __GDK__ + +/** + * Initialize and launch an SDL GDK application. + * + * \param mainFunction the SDL app's C-style main(), an SDL_main_func. + * \param reserved reserved for future use; should be NULL. + * \returns 0 on success or -1 on failure; call SDL_GetError() to retrieve + * more information on the failure. + * + * \since This function is available since SDL 2.24.0. + */ +extern DECLSPEC int SDLCALL SDL_GDKRunApp(SDL_main_func mainFunction, void *reserved); + +/** + * Callback from the application to let the suspend continue. + * + * \since This function is available since SDL 2.28.0. + */ +extern DECLSPEC void SDLCALL SDL_GDKSuspendComplete(void); + +#endif /* __GDK__ */ + +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_main_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_messagebox.h b/lib/windows/include/SDL2/SDL_messagebox.h new file mode 100644 index 0000000..725d412 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_messagebox.h @@ -0,0 +1,196 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_messagebox_h_ +#define SDL_messagebox_h_ + +#include "SDL_stdinc.h" +#include "SDL_video.h" /* For SDL_Window */ + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * SDL_MessageBox flags. + * + * If supported will display warning icon, etc. + */ +typedef enum SDL_MessageBoxFlags +{ + SDL_MESSAGEBOX_ERROR = 0x00000010, /**< error dialog */ + SDL_MESSAGEBOX_WARNING = 0x00000020, /**< warning dialog */ + SDL_MESSAGEBOX_INFORMATION = 0x00000040, /**< informational dialog */ + SDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT = 0x00000080, /**< buttons placed left to right */ + SDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT = 0x00000100 /**< buttons placed right to left */ +} SDL_MessageBoxFlags; + +/** + * Flags for SDL_MessageBoxButtonData. + */ +typedef enum SDL_MessageBoxButtonFlags +{ + SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = 0x00000001, /**< Marks the default button when return is hit */ + SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = 0x00000002 /**< Marks the default button when escape is hit */ +} SDL_MessageBoxButtonFlags; + +/** + * Individual button data. + */ +typedef struct SDL_MessageBoxButtonData +{ + Uint32 flags; /**< SDL_MessageBoxButtonFlags */ + int buttonid; /**< User defined button id (value returned via SDL_ShowMessageBox) */ + const char * text; /**< The UTF-8 button text */ +} SDL_MessageBoxButtonData; + +/** + * RGB value used in a message box color scheme + */ +typedef struct SDL_MessageBoxColor +{ + Uint8 r, g, b; +} SDL_MessageBoxColor; + +typedef enum SDL_MessageBoxColorType +{ + SDL_MESSAGEBOX_COLOR_BACKGROUND, + SDL_MESSAGEBOX_COLOR_TEXT, + SDL_MESSAGEBOX_COLOR_BUTTON_BORDER, + SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND, + SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED, + SDL_MESSAGEBOX_COLOR_MAX +} SDL_MessageBoxColorType; + +/** + * A set of colors to use for message box dialogs + */ +typedef struct SDL_MessageBoxColorScheme +{ + SDL_MessageBoxColor colors[SDL_MESSAGEBOX_COLOR_MAX]; +} SDL_MessageBoxColorScheme; + +/** + * MessageBox structure containing title, text, window, etc. + */ +typedef struct SDL_MessageBoxData +{ + Uint32 flags; /**< SDL_MessageBoxFlags */ + SDL_Window *window; /**< Parent window, can be NULL */ + const char *title; /**< UTF-8 title */ + const char *message; /**< UTF-8 message text */ + + int numbuttons; + const SDL_MessageBoxButtonData *buttons; + + const SDL_MessageBoxColorScheme *colorScheme; /**< SDL_MessageBoxColorScheme, can be NULL to use system settings */ +} SDL_MessageBoxData; + +/** + * Create a modal message box. + * + * If your needs aren't complex, it might be easier to use + * SDL_ShowSimpleMessageBox. + * + * This function should be called on the thread that created the parent + * window, or on the main thread if the messagebox has no parent. It will + * block execution of that thread until the user clicks a button or closes the + * messagebox. + * + * This function may be called at any time, even before SDL_Init(). This makes + * it useful for reporting errors like a failure to create a renderer or + * OpenGL context. + * + * On X11, SDL rolls its own dialog box with X11 primitives instead of a + * formal toolkit like GTK+ or Qt. + * + * Note that if SDL_Init() would fail because there isn't any available video + * target, this function is likely to fail for the same reasons. If this is a + * concern, check the return value from this function and fall back to writing + * to stderr if you can. + * + * \param messageboxdata the SDL_MessageBoxData structure with title, text and + * other options. + * \param buttonid the pointer to which user id of hit button should be + * copied. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_ShowSimpleMessageBox + */ +extern DECLSPEC int SDLCALL SDL_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid); + +/** + * Display a simple modal message box. + * + * If your needs aren't complex, this function is preferred over + * SDL_ShowMessageBox. + * + * `flags` may be any of the following: + * + * - `SDL_MESSAGEBOX_ERROR`: error dialog + * - `SDL_MESSAGEBOX_WARNING`: warning dialog + * - `SDL_MESSAGEBOX_INFORMATION`: informational dialog + * + * This function should be called on the thread that created the parent + * window, or on the main thread if the messagebox has no parent. It will + * block execution of that thread until the user clicks a button or closes the + * messagebox. + * + * This function may be called at any time, even before SDL_Init(). This makes + * it useful for reporting errors like a failure to create a renderer or + * OpenGL context. + * + * On X11, SDL rolls its own dialog box with X11 primitives instead of a + * formal toolkit like GTK+ or Qt. + * + * Note that if SDL_Init() would fail because there isn't any available video + * target, this function is likely to fail for the same reasons. If this is a + * concern, check the return value from this function and fall back to writing + * to stderr if you can. + * + * \param flags an SDL_MessageBoxFlags value. + * \param title UTF-8 title text. + * \param message UTF-8 message text. + * \param window the parent window, or NULL for no parent. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_ShowMessageBox + */ +extern DECLSPEC int SDLCALL SDL_ShowSimpleMessageBox(Uint32 flags, const char *title, const char *message, SDL_Window *window); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_messagebox_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_metal.h b/lib/windows/include/SDL2/SDL_metal.h new file mode 100644 index 0000000..d3f21d5 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_metal.h @@ -0,0 +1,114 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryMetal + * + * Header file for functions to creating Metal layers and views on SDL + * windows. + */ + +#ifndef SDL_metal_h_ +#define SDL_metal_h_ + +#include "SDL_video.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * A handle to a CAMetalLayer-backed NSView (macOS) or UIView (iOS/tvOS). + * + * This can be cast directly to an NSView or UIView. + */ +typedef void *SDL_MetalView; + +/** + * \name Metal support functions + */ +/* @{ */ + +/** + * Create a CAMetalLayer-backed NSView/UIView and attach it to the specified + * window. + * + * On macOS, this does *not* associate a MTLDevice with the CAMetalLayer on + * its own. It is up to user code to do that. + * + * The returned handle can be casted directly to a NSView or UIView. To access + * the backing CAMetalLayer, call SDL_Metal_GetLayer(). + * + * \since This function is available since SDL 2.0.12. + * + * \sa SDL_Metal_DestroyView + * \sa SDL_Metal_GetLayer + */ +extern DECLSPEC SDL_MetalView SDLCALL SDL_Metal_CreateView(SDL_Window * window); + +/** + * Destroy an existing SDL_MetalView object. + * + * This should be called before SDL_DestroyWindow, if SDL_Metal_CreateView was + * called after SDL_CreateWindow. + * + * \since This function is available since SDL 2.0.12. + * + * \sa SDL_Metal_CreateView + */ +extern DECLSPEC void SDLCALL SDL_Metal_DestroyView(SDL_MetalView view); + +/** + * Get a pointer to the backing CAMetalLayer for the given view. + * + * \since This function is available since SDL 2.0.14. + * + * \sa SDL_Metal_CreateView + */ +extern DECLSPEC void *SDLCALL SDL_Metal_GetLayer(SDL_MetalView view); + +/** + * Get the size of a window's underlying drawable in pixels (for use with + * setting viewport, scissor & etc). + * + * \param window SDL_Window from which the drawable size should be queried. + * \param w Pointer to variable for storing the width in pixels, may be NULL. + * \param h Pointer to variable for storing the height in pixels, may be NULL. + * + * \since This function is available since SDL 2.0.14. + * + * \sa SDL_GetWindowSize + * \sa SDL_CreateWindow + */ +extern DECLSPEC void SDLCALL SDL_Metal_GetDrawableSize(SDL_Window* window, int *w, + int *h); + +/* @} *//* Metal support functions */ + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_metal_h_ */ diff --git a/lib/windows/include/SDL2/SDL_misc.h b/lib/windows/include/SDL2/SDL_misc.h new file mode 100644 index 0000000..86a82bc --- /dev/null +++ b/lib/windows/include/SDL2/SDL_misc.h @@ -0,0 +1,79 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryMisc + * + * Include file for SDL API functions that don't fit elsewhere. + */ + +#ifndef SDL_misc_h_ +#define SDL_misc_h_ + +#include "SDL_stdinc.h" + +#include "begin_code.h" + +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Open a URL/URI in the browser or other appropriate external application. + * + * Open a URL in a separate, system-provided application. How this works will + * vary wildly depending on the platform. This will likely launch what makes + * sense to handle a specific URL's protocol (a web browser for `http://`, + * etc), but it might also be able to launch file managers for directories and + * other things. + * + * What happens when you open a URL varies wildly as well: your game window + * may lose focus (and may or may not lose focus if your game was fullscreen + * or grabbing input at the time). On mobile devices, your app will likely + * move to the background or your process might be paused. Any given platform + * may or may not handle a given URL. + * + * If this is unimplemented (or simply unavailable) for a platform, this will + * fail with an error. A successful result does not mean the URL loaded, just + * that we launched _something_ to handle it (or at least believe we did). + * + * All this to say: this function can be useful, but you should definitely + * test it on every platform you target. + * + * \param url A valid URL/URI to open. Use `file:///full/path/to/file` for + * local files, if supported. + * \returns 0 on success, or -1 on error; call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC int SDLCALL SDL_OpenURL(const char *url); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_misc_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_mouse.h b/lib/windows/include/SDL2/SDL_mouse.h new file mode 100644 index 0000000..628b7a2 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_mouse.h @@ -0,0 +1,464 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryMouse + * + * Include file for SDL mouse event handling. + */ + +#ifndef SDL_mouse_h_ +#define SDL_mouse_h_ + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_video.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct SDL_Cursor SDL_Cursor; /**< Implementation dependent */ + +/** + * Cursor types for SDL_CreateSystemCursor(). + */ +typedef enum SDL_SystemCursor +{ + SDL_SYSTEM_CURSOR_ARROW, /**< Arrow */ + SDL_SYSTEM_CURSOR_IBEAM, /**< I-beam */ + SDL_SYSTEM_CURSOR_WAIT, /**< Wait */ + SDL_SYSTEM_CURSOR_CROSSHAIR, /**< Crosshair */ + SDL_SYSTEM_CURSOR_WAITARROW, /**< Small wait cursor (or Wait if not available) */ + SDL_SYSTEM_CURSOR_SIZENWSE, /**< Double arrow pointing northwest and southeast */ + SDL_SYSTEM_CURSOR_SIZENESW, /**< Double arrow pointing northeast and southwest */ + SDL_SYSTEM_CURSOR_SIZEWE, /**< Double arrow pointing west and east */ + SDL_SYSTEM_CURSOR_SIZENS, /**< Double arrow pointing north and south */ + SDL_SYSTEM_CURSOR_SIZEALL, /**< Four pointed arrow pointing north, south, east, and west */ + SDL_SYSTEM_CURSOR_NO, /**< Slashed circle or crossbones */ + SDL_SYSTEM_CURSOR_HAND, /**< Hand */ + SDL_NUM_SYSTEM_CURSORS +} SDL_SystemCursor; + +/** + * Scroll direction types for the Scroll event + */ +typedef enum SDL_MouseWheelDirection +{ + SDL_MOUSEWHEEL_NORMAL, /**< The scroll direction is normal */ + SDL_MOUSEWHEEL_FLIPPED /**< The scroll direction is flipped / natural */ +} SDL_MouseWheelDirection; + +/* Function prototypes */ + +/** + * Get the window which currently has mouse focus. + * + * \returns the window with mouse focus. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC SDL_Window * SDLCALL SDL_GetMouseFocus(void); + +/** + * Retrieve the current state of the mouse. + * + * The current button state is returned as a button bitmask, which can be + * tested using the `SDL_BUTTON(X)` macros (where `X` is generally 1 for the + * left, 2 for middle, 3 for the right button), and `x` and `y` are set to the + * mouse cursor position relative to the focus window. You can pass NULL for + * either `x` or `y`. + * + * \param x the x coordinate of the mouse cursor position relative to the + * focus window. + * \param y the y coordinate of the mouse cursor position relative to the + * focus window. + * \returns a 32-bit button bitmask of the current button state. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetGlobalMouseState + * \sa SDL_GetRelativeMouseState + * \sa SDL_PumpEvents + */ +extern DECLSPEC Uint32 SDLCALL SDL_GetMouseState(int *x, int *y); + +/** + * Get the current state of the mouse in relation to the desktop. + * + * This works similarly to SDL_GetMouseState(), but the coordinates will be + * reported relative to the top-left of the desktop. This can be useful if you + * need to track the mouse outside of a specific window and SDL_CaptureMouse() + * doesn't fit your needs. For example, it could be useful if you need to + * track the mouse while dragging a window, where coordinates relative to a + * window might not be in sync at all times. + * + * Note: SDL_GetMouseState() returns the mouse position as SDL understands it + * from the last pump of the event queue. This function, however, queries the + * OS for the current mouse position, and as such, might be a slightly less + * efficient function. Unless you know what you're doing and have a good + * reason to use this function, you probably want SDL_GetMouseState() instead. + * + * \param x filled in with the current X coord relative to the desktop; can be + * NULL. + * \param y filled in with the current Y coord relative to the desktop; can be + * NULL. + * \returns the current button state as a bitmask which can be tested using + * the SDL_BUTTON(X) macros. + * + * \since This function is available since SDL 2.0.4. + * + * \sa SDL_CaptureMouse + */ +extern DECLSPEC Uint32 SDLCALL SDL_GetGlobalMouseState(int *x, int *y); + +/** + * Retrieve the relative state of the mouse. + * + * The current button state is returned as a button bitmask, which can be + * tested using the `SDL_BUTTON(X)` macros (where `X` is generally 1 for the + * left, 2 for middle, 3 for the right button), and `x` and `y` are set to the + * mouse deltas since the last call to SDL_GetRelativeMouseState() or since + * event initialization. You can pass NULL for either `x` or `y`. + * + * \param x a pointer filled with the last recorded x coordinate of the mouse. + * \param y a pointer filled with the last recorded y coordinate of the mouse. + * \returns a 32-bit button bitmask of the relative button state. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetMouseState + */ +extern DECLSPEC Uint32 SDLCALL SDL_GetRelativeMouseState(int *x, int *y); + +/** + * Move the mouse cursor to the given position within the window. + * + * This function generates a mouse motion event if relative mode is not + * enabled. If relative mode is enabled, you can force mouse events for the + * warp by setting the SDL_HINT_MOUSE_RELATIVE_WARP_MOTION hint. + * + * Note that this function will appear to succeed, but not actually move the + * mouse when used over Microsoft Remote Desktop. + * + * \param window the window to move the mouse into, or NULL for the current + * mouse focus. + * \param x the x coordinate within the window. + * \param y the y coordinate within the window. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_WarpMouseGlobal + */ +extern DECLSPEC void SDLCALL SDL_WarpMouseInWindow(SDL_Window * window, + int x, int y); + +/** + * Move the mouse to the given position in global screen space. + * + * This function generates a mouse motion event. + * + * A failure of this function usually means that it is unsupported by a + * platform. + * + * Note that this function will appear to succeed, but not actually move the + * mouse when used over Microsoft Remote Desktop. + * + * \param x the x coordinate. + * \param y the y coordinate. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.4. + * + * \sa SDL_WarpMouseInWindow + */ +extern DECLSPEC int SDLCALL SDL_WarpMouseGlobal(int x, int y); + +/** + * Set relative mouse mode. + * + * While the mouse is in relative mode, the cursor is hidden, the mouse + * position is constrained to the window, and SDL will report continuous + * relative mouse motion even if the mouse is at the edge of the window. + * + * This function will flush any pending mouse motion. + * + * \param enabled SDL_TRUE to enable relative mode, SDL_FALSE to disable. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * If relative mode is not supported, this returns -1. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetRelativeMouseMode + */ +extern DECLSPEC int SDLCALL SDL_SetRelativeMouseMode(SDL_bool enabled); + +/** + * Capture the mouse and to track input outside an SDL window. + * + * Capturing enables your app to obtain mouse events globally, instead of just + * within your window. Not all video targets support this function. When + * capturing is enabled, the current window will get all mouse events, but + * unlike relative mode, no change is made to the cursor and it is not + * restrained to your window. + * + * This function may also deny mouse input to other windows--both those in + * your application and others on the system--so you should use this function + * sparingly, and in small bursts. For example, you might want to track the + * mouse while the user is dragging something, until the user releases a mouse + * button. It is not recommended that you capture the mouse for long periods + * of time, such as the entire time your app is running. For that, you should + * probably use SDL_SetRelativeMouseMode() or SDL_SetWindowGrab(), depending + * on your goals. + * + * While captured, mouse events still report coordinates relative to the + * current (foreground) window, but those coordinates may be outside the + * bounds of the window (including negative values). Capturing is only allowed + * for the foreground window. If the window loses focus while capturing, the + * capture will be disabled automatically. + * + * While capturing is enabled, the current window will have the + * `SDL_WINDOW_MOUSE_CAPTURE` flag set. + * + * Please note that as of SDL 2.0.22, SDL will attempt to "auto capture" the + * mouse while the user is pressing a button; this is to try and make mouse + * behavior more consistent between platforms, and deal with the common case + * of a user dragging the mouse outside of the window. This means that if you + * are calling SDL_CaptureMouse() only to deal with this situation, you no + * longer have to (although it is safe to do so). If this causes problems for + * your app, you can disable auto capture by setting the + * `SDL_HINT_MOUSE_AUTO_CAPTURE` hint to zero. + * + * \param enabled SDL_TRUE to enable capturing, SDL_FALSE to disable. + * \returns 0 on success or -1 if not supported; call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.4. + * + * \sa SDL_GetGlobalMouseState + */ +extern DECLSPEC int SDLCALL SDL_CaptureMouse(SDL_bool enabled); + +/** + * Query whether relative mouse mode is enabled. + * + * \returns SDL_TRUE if relative mode is enabled or SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetRelativeMouseMode + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GetRelativeMouseMode(void); + +/** + * Create a cursor using the specified bitmap data and mask (in MSB format). + * + * `mask` has to be in MSB (Most Significant Bit) format. + * + * The cursor width (`w`) must be a multiple of 8 bits. + * + * The cursor is created in black and white according to the following: + * + * - data=0, mask=1: white + * - data=1, mask=1: black + * - data=0, mask=0: transparent + * - data=1, mask=0: inverted color if possible, black if not. + * + * Cursors created with this function must be freed with SDL_FreeCursor(). + * + * If you want to have a color cursor, or create your cursor from an + * SDL_Surface, you should use SDL_CreateColorCursor(). Alternately, you can + * hide the cursor and draw your own as part of your game's rendering, but it + * will be bound to the framerate. + * + * Also, since SDL 2.0.0, SDL_CreateSystemCursor() is available, which + * provides twelve readily available system cursors to pick from. + * + * \param data the color value for each pixel of the cursor. + * \param mask the mask value for each pixel of the cursor. + * \param w the width of the cursor. + * \param h the height of the cursor. + * \param hot_x the X-axis location of the upper left corner of the cursor + * relative to the actual mouse position. + * \param hot_y the Y-axis location of the upper left corner of the cursor + * relative to the actual mouse position. + * \returns a new cursor with the specified parameters on success or NULL on + * failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_FreeCursor + * \sa SDL_SetCursor + * \sa SDL_ShowCursor + */ +extern DECLSPEC SDL_Cursor *SDLCALL SDL_CreateCursor(const Uint8 * data, + const Uint8 * mask, + int w, int h, int hot_x, + int hot_y); + +/** + * Create a color cursor. + * + * \param surface an SDL_Surface structure representing the cursor image. + * \param hot_x the x position of the cursor hot spot. + * \param hot_y the y position of the cursor hot spot. + * \returns the new cursor on success or NULL on failure; call SDL_GetError() + * for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateCursor + * \sa SDL_FreeCursor + */ +extern DECLSPEC SDL_Cursor *SDLCALL SDL_CreateColorCursor(SDL_Surface *surface, + int hot_x, + int hot_y); + +/** + * Create a system cursor. + * + * \param id an SDL_SystemCursor enum value. + * \returns a cursor on success or NULL on failure; call SDL_GetError() for + * more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_FreeCursor + */ +extern DECLSPEC SDL_Cursor *SDLCALL SDL_CreateSystemCursor(SDL_SystemCursor id); + +/** + * Set the active cursor. + * + * This function sets the currently active cursor to the specified one. If the + * cursor is currently visible, the change will be immediately represented on + * the display. SDL_SetCursor(NULL) can be used to force cursor redraw, if + * this is desired for any reason. + * + * \param cursor a cursor to make active. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateCursor + * \sa SDL_GetCursor + * \sa SDL_ShowCursor + */ +extern DECLSPEC void SDLCALL SDL_SetCursor(SDL_Cursor * cursor); + +/** + * Get the active cursor. + * + * This function returns a pointer to the current cursor which is owned by the + * library. It is not necessary to free the cursor with SDL_FreeCursor(). + * + * \returns the active cursor or NULL if there is no mouse. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetCursor + */ +extern DECLSPEC SDL_Cursor *SDLCALL SDL_GetCursor(void); + +/** + * Get the default cursor. + * + * You do not have to call SDL_FreeCursor() on the return value, but it is + * safe to do so. + * + * \returns the default cursor on success or NULL on failure. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateSystemCursor + */ +extern DECLSPEC SDL_Cursor *SDLCALL SDL_GetDefaultCursor(void); + +/** + * Free a previously-created cursor. + * + * Use this function to free cursor resources created with SDL_CreateCursor(), + * SDL_CreateColorCursor() or SDL_CreateSystemCursor(). + * + * \param cursor the cursor to free. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateColorCursor + * \sa SDL_CreateCursor + * \sa SDL_CreateSystemCursor + */ +extern DECLSPEC void SDLCALL SDL_FreeCursor(SDL_Cursor * cursor); + +/** + * Toggle whether or not the cursor is shown. + * + * The cursor starts off displayed but can be turned off. Passing `SDL_ENABLE` + * displays the cursor and passing `SDL_DISABLE` hides it. + * + * The current state of the mouse cursor can be queried by passing + * `SDL_QUERY`; either `SDL_DISABLE` or `SDL_ENABLE` will be returned. + * + * \param toggle `SDL_ENABLE` to show the cursor, `SDL_DISABLE` to hide it, + * `SDL_QUERY` to query the current state without changing it. + * \returns `SDL_ENABLE` if the cursor is shown, or `SDL_DISABLE` if the + * cursor is hidden, or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateCursor + * \sa SDL_SetCursor + */ +extern DECLSPEC int SDLCALL SDL_ShowCursor(int toggle); + +/** + * Used as a mask when testing buttons in buttonstate. + * + * - Button 1: Left mouse button + * - Button 2: Middle mouse button + * - Button 3: Right mouse button + */ +#define SDL_BUTTON(X) (1 << ((X)-1)) +#define SDL_BUTTON_LEFT 1 +#define SDL_BUTTON_MIDDLE 2 +#define SDL_BUTTON_RIGHT 3 +#define SDL_BUTTON_X1 4 +#define SDL_BUTTON_X2 5 +#define SDL_BUTTON_LMASK SDL_BUTTON(SDL_BUTTON_LEFT) +#define SDL_BUTTON_MMASK SDL_BUTTON(SDL_BUTTON_MIDDLE) +#define SDL_BUTTON_RMASK SDL_BUTTON(SDL_BUTTON_RIGHT) +#define SDL_BUTTON_X1MASK SDL_BUTTON(SDL_BUTTON_X1) +#define SDL_BUTTON_X2MASK SDL_BUTTON(SDL_BUTTON_X2) + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_mouse_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_mutex.h b/lib/windows/include/SDL2/SDL_mutex.h new file mode 100644 index 0000000..0fe3eb5 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_mutex.h @@ -0,0 +1,545 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_mutex_h_ +#define SDL_mutex_h_ + +/** + * # CategoryMutex + * + * Functions to provide thread synchronization primitives. + */ + +#include "SDL_stdinc.h" +#include "SDL_error.h" + +/******************************************************************************/ +/* Enable thread safety attributes only with clang. + * The attributes can be safely erased when compiling with other compilers. + */ +#if defined(SDL_THREAD_SAFETY_ANALYSIS) && \ + defined(__clang__) && (!defined(SWIG)) +#define SDL_THREAD_ANNOTATION_ATTRIBUTE__(x) __attribute__((x)) +#else +#define SDL_THREAD_ANNOTATION_ATTRIBUTE__(x) /* no-op */ +#endif + +#define SDL_CAPABILITY(x) \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(capability(x)) + +#define SDL_SCOPED_CAPABILITY \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(scoped_lockable) + +#define SDL_GUARDED_BY(x) \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(guarded_by(x)) + +#define SDL_PT_GUARDED_BY(x) \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(pt_guarded_by(x)) + +#define SDL_ACQUIRED_BEFORE(x) \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquired_before(x)) + +#define SDL_ACQUIRED_AFTER(x) \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquired_after(x)) + +#define SDL_REQUIRES(x) \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(requires_capability(x)) + +#define SDL_REQUIRES_SHARED(x) \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(requires_shared_capability(x)) + +#define SDL_ACQUIRE(x) \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquire_capability(x)) + +#define SDL_ACQUIRE_SHARED(x) \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(acquire_shared_capability(x)) + +#define SDL_RELEASE(x) \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(release_capability(x)) + +#define SDL_RELEASE_SHARED(x) \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(release_shared_capability(x)) + +#define SDL_RELEASE_GENERIC(x) \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(release_generic_capability(x)) + +#define SDL_TRY_ACQUIRE(x, y) \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(try_acquire_capability(x, y)) + +#define SDL_TRY_ACQUIRE_SHARED(x, y) \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(try_acquire_shared_capability(x, y)) + +#define SDL_EXCLUDES(x) \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(locks_excluded(x)) + +#define SDL_ASSERT_CAPABILITY(x) \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(assert_capability(x)) + +#define SDL_ASSERT_SHARED_CAPABILITY(x) \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(assert_shared_capability(x)) + +#define SDL_RETURN_CAPABILITY(x) \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(lock_returned(x)) + +#define SDL_NO_THREAD_SAFETY_ANALYSIS \ + SDL_THREAD_ANNOTATION_ATTRIBUTE__(no_thread_safety_analysis) + +/******************************************************************************/ + + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Synchronization functions which can time out return this value if they time + * out. + */ +#define SDL_MUTEX_TIMEDOUT 1 + +/** + * This is the timeout value which corresponds to never time out. + */ +#define SDL_MUTEX_MAXWAIT (~(Uint32)0) + + +/** + * \name Mutex functions + */ +/* @{ */ + +/* The SDL mutex structure, defined in SDL_sysmutex.c */ +struct SDL_mutex; +typedef struct SDL_mutex SDL_mutex; + +/** + * Create a new mutex. + * + * All newly-created mutexes begin in the _unlocked_ state. + * + * Calls to SDL_LockMutex() will not return while the mutex is locked by + * another thread. See SDL_TryLockMutex() to attempt to lock without blocking. + * + * SDL mutexes are reentrant. + * + * \returns the initialized and unlocked mutex or NULL on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_DestroyMutex + * \sa SDL_LockMutex + * \sa SDL_TryLockMutex + * \sa SDL_UnlockMutex + */ +extern DECLSPEC SDL_mutex *SDLCALL SDL_CreateMutex(void); + +/** + * Lock the mutex. + * + * This will block until the mutex is available, which is to say it is in the + * unlocked state and the OS has chosen the caller as the next thread to lock + * it. Of all threads waiting to lock the mutex, only one may do so at a time. + * + * It is legal for the owning thread to lock an already-locked mutex. It must + * unlock it the same number of times before it is actually made available for + * other threads in the system (this is known as a "recursive mutex"). + * + * \param mutex the mutex to lock. + * \return 0, or -1 on error. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC int SDLCALL SDL_LockMutex(SDL_mutex * mutex) SDL_ACQUIRE(mutex); +#define SDL_mutexP(m) SDL_LockMutex(m) + +/** + * Try to lock a mutex without blocking. + * + * This works just like SDL_LockMutex(), but if the mutex is not available, + * this function returns `SDL_MUTEX_TIMEOUT` immediately. + * + * This technique is useful if you need exclusive access to a resource but + * don't want to wait for it, and will return to it to try again later. + * + * \param mutex the mutex to try to lock. + * \returns 0, `SDL_MUTEX_TIMEDOUT`, or -1 on error; call SDL_GetError() for + * more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateMutex + * \sa SDL_DestroyMutex + * \sa SDL_LockMutex + * \sa SDL_UnlockMutex + */ +extern DECLSPEC int SDLCALL SDL_TryLockMutex(SDL_mutex * mutex) SDL_TRY_ACQUIRE(0, mutex); + +/** + * Unlock the mutex. + * + * It is legal for the owning thread to lock an already-locked mutex. It must + * unlock it the same number of times before it is actually made available for + * other threads in the system (this is known as a "recursive mutex"). + * + * It is an error to unlock a mutex that has not been locked by the current + * thread, and doing so results in undefined behavior. + * + * It is also an error to unlock a mutex that isn't locked at all. + * + * \param mutex the mutex to unlock. + * \returns 0, or -1 on error. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC int SDLCALL SDL_UnlockMutex(SDL_mutex * mutex) SDL_RELEASE(mutex); +#define SDL_mutexV(m) SDL_UnlockMutex(m) + +/** + * Destroy a mutex created with SDL_CreateMutex(). + * + * This function must be called on any mutex that is no longer needed. Failure + * to destroy a mutex will result in a system memory or resource leak. While + * it is safe to destroy a mutex that is _unlocked_, it is not safe to attempt + * to destroy a locked mutex, and may result in undefined behavior depending + * on the platform. + * + * \param mutex the mutex to destroy. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateMutex + * \sa SDL_LockMutex + * \sa SDL_TryLockMutex + * \sa SDL_UnlockMutex + */ +extern DECLSPEC void SDLCALL SDL_DestroyMutex(SDL_mutex * mutex); + +/* @} *//* Mutex functions */ + + +/** + * \name Semaphore functions + */ +/* @{ */ + +/* The SDL semaphore structure, defined in SDL_syssem.c */ +struct SDL_semaphore; +typedef struct SDL_semaphore SDL_sem; + +/** + * Create a semaphore. + * + * This function creates a new semaphore and initializes it with the value + * `initial_value`. Each wait operation on the semaphore will atomically + * decrement the semaphore value and potentially block if the semaphore value + * is 0. Each post operation will atomically increment the semaphore value and + * wake waiting threads and allow them to retry the wait operation. + * + * \param initial_value the starting value of the semaphore. + * \returns a new semaphore or NULL on failure; call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_DestroySemaphore + * \sa SDL_SemPost + * \sa SDL_SemTryWait + * \sa SDL_SemValue + * \sa SDL_SemWait + * \sa SDL_SemWaitTimeout + */ +extern DECLSPEC SDL_sem *SDLCALL SDL_CreateSemaphore(Uint32 initial_value); + +/** + * Destroy a semaphore. + * + * It is not safe to destroy a semaphore if there are threads currently + * waiting on it. + * + * \param sem the semaphore to destroy. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateSemaphore + * \sa SDL_SemPost + * \sa SDL_SemTryWait + * \sa SDL_SemValue + * \sa SDL_SemWait + * \sa SDL_SemWaitTimeout + */ +extern DECLSPEC void SDLCALL SDL_DestroySemaphore(SDL_sem * sem); + +/** + * Wait until a semaphore has a positive value and then decrements it. + * + * This function suspends the calling thread until either the semaphore + * pointed to by `sem` has a positive value or the call is interrupted by a + * signal or error. If the call is successful it will atomically decrement the + * semaphore value. + * + * This function is the equivalent of calling SDL_SemWaitTimeout() with a time + * length of `SDL_MUTEX_MAXWAIT`. + * + * \param sem the semaphore wait on. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateSemaphore + * \sa SDL_DestroySemaphore + * \sa SDL_SemPost + * \sa SDL_SemTryWait + * \sa SDL_SemValue + * \sa SDL_SemWait + * \sa SDL_SemWaitTimeout + */ +extern DECLSPEC int SDLCALL SDL_SemWait(SDL_sem * sem); + +/** + * See if a semaphore has a positive value and decrement it if it does. + * + * This function checks to see if the semaphore pointed to by `sem` has a + * positive value and atomically decrements the semaphore value if it does. If + * the semaphore doesn't have a positive value, the function immediately + * returns SDL_MUTEX_TIMEDOUT. + * + * \param sem the semaphore to wait on. + * \returns 0 if the wait succeeds, `SDL_MUTEX_TIMEDOUT` if the wait would + * block, or a negative error code on failure; call SDL_GetError() + * for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateSemaphore + * \sa SDL_DestroySemaphore + * \sa SDL_SemPost + * \sa SDL_SemValue + * \sa SDL_SemWait + * \sa SDL_SemWaitTimeout + */ +extern DECLSPEC int SDLCALL SDL_SemTryWait(SDL_sem * sem); + +/** + * Wait until a semaphore has a positive value and then decrements it. + * + * This function suspends the calling thread until either the semaphore + * pointed to by `sem` has a positive value, the call is interrupted by a + * signal or error, or the specified time has elapsed. If the call is + * successful it will atomically decrement the semaphore value. + * + * \param sem the semaphore to wait on. + * \param timeout the length of the timeout, in milliseconds. + * \returns 0 if the wait succeeds, `SDL_MUTEX_TIMEDOUT` if the wait does not + * succeed in the allotted time, or a negative error code on failure; + * call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateSemaphore + * \sa SDL_DestroySemaphore + * \sa SDL_SemPost + * \sa SDL_SemTryWait + * \sa SDL_SemValue + * \sa SDL_SemWait + */ +extern DECLSPEC int SDLCALL SDL_SemWaitTimeout(SDL_sem *sem, Uint32 timeout); + +/** + * Atomically increment a semaphore's value and wake waiting threads. + * + * \param sem the semaphore to increment. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateSemaphore + * \sa SDL_DestroySemaphore + * \sa SDL_SemTryWait + * \sa SDL_SemValue + * \sa SDL_SemWait + * \sa SDL_SemWaitTimeout + */ +extern DECLSPEC int SDLCALL SDL_SemPost(SDL_sem * sem); + +/** + * Get the current value of a semaphore. + * + * \param sem the semaphore to query. + * \returns the current value of the semaphore. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateSemaphore + */ +extern DECLSPEC Uint32 SDLCALL SDL_SemValue(SDL_sem * sem); + +/* @} *//* Semaphore functions */ + + +/** + * \name Condition variable functions + */ +/* @{ */ + +/* The SDL condition variable structure, defined in SDL_syscond.c */ +struct SDL_cond; +typedef struct SDL_cond SDL_cond; + +/** + * Create a condition variable. + * + * \returns a new condition variable or NULL on failure; call SDL_GetError() + * for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CondBroadcast + * \sa SDL_CondSignal + * \sa SDL_CondWait + * \sa SDL_CondWaitTimeout + * \sa SDL_DestroyCond + */ +extern DECLSPEC SDL_cond *SDLCALL SDL_CreateCond(void); + +/** + * Destroy a condition variable. + * + * \param cond the condition variable to destroy. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CondBroadcast + * \sa SDL_CondSignal + * \sa SDL_CondWait + * \sa SDL_CondWaitTimeout + * \sa SDL_CreateCond + */ +extern DECLSPEC void SDLCALL SDL_DestroyCond(SDL_cond * cond); + +/** + * Restart one of the threads that are waiting on the condition variable. + * + * \param cond the condition variable to signal. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CondBroadcast + * \sa SDL_CondWait + * \sa SDL_CondWaitTimeout + * \sa SDL_CreateCond + * \sa SDL_DestroyCond + */ +extern DECLSPEC int SDLCALL SDL_CondSignal(SDL_cond * cond); + +/** + * Restart all threads that are waiting on the condition variable. + * + * \param cond the condition variable to signal. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CondSignal + * \sa SDL_CondWait + * \sa SDL_CondWaitTimeout + * \sa SDL_CreateCond + * \sa SDL_DestroyCond + */ +extern DECLSPEC int SDLCALL SDL_CondBroadcast(SDL_cond * cond); + +/** + * Wait until a condition variable is signaled. + * + * This function unlocks the specified `mutex` and waits for another thread to + * call SDL_CondSignal() or SDL_CondBroadcast() on the condition variable + * `cond`. Once the condition variable is signaled, the mutex is re-locked and + * the function returns. + * + * The mutex must be locked before calling this function. + * + * This function is the equivalent of calling SDL_CondWaitTimeout() with a + * time length of `SDL_MUTEX_MAXWAIT`. + * + * \param cond the condition variable to wait on. + * \param mutex the mutex used to coordinate thread access. + * \returns 0 when it is signaled or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CondBroadcast + * \sa SDL_CondSignal + * \sa SDL_CondWaitTimeout + * \sa SDL_CreateCond + * \sa SDL_DestroyCond + */ +extern DECLSPEC int SDLCALL SDL_CondWait(SDL_cond * cond, SDL_mutex * mutex); + +/** + * Wait until a condition variable is signaled or a certain time has passed. + * + * This function unlocks the specified `mutex` and waits for another thread to + * call SDL_CondSignal() or SDL_CondBroadcast() on the condition variable + * `cond`, or for the specified time to elapse. Once the condition variable is + * signaled or the time elapsed, the mutex is re-locked and the function + * returns. + * + * The mutex must be locked before calling this function. + * + * \param cond the condition variable to wait on. + * \param mutex the mutex used to coordinate thread access. + * \param ms the maximum time to wait, in milliseconds, or `SDL_MUTEX_MAXWAIT` + * to wait indefinitely. + * \returns 0 if the condition variable is signaled, `SDL_MUTEX_TIMEDOUT` if + * the condition is not signaled in the allotted time, or a negative + * error code on failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CondBroadcast + * \sa SDL_CondSignal + * \sa SDL_CondWait + * \sa SDL_CreateCond + * \sa SDL_DestroyCond + */ +extern DECLSPEC int SDLCALL SDL_CondWaitTimeout(SDL_cond * cond, + SDL_mutex * mutex, Uint32 ms); + +/* @} *//* Condition variable functions */ + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_mutex_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_name.h b/lib/windows/include/SDL2/SDL_name.h new file mode 100644 index 0000000..0c48bcf --- /dev/null +++ b/lib/windows/include/SDL2/SDL_name.h @@ -0,0 +1,33 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDLname_h_ +#define SDLname_h_ + +#if defined(__STDC__) || defined(__cplusplus) +#define NeedFunctionPrototypes 1 +#endif + +#define SDL_NAME(X) SDL_##X + +#endif /* SDLname_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_opengl.h b/lib/windows/include/SDL2/SDL_opengl.h new file mode 100644 index 0000000..c6250d1 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_opengl.h @@ -0,0 +1,2126 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* + * This is a simple file to encapsulate the OpenGL API headers. + * + * Define NO_SDL_GLEXT if you have your own version of glext.h and want + * to disable the version included in SDL_opengl.h. + */ + +#ifndef SDL_opengl_h_ +#define SDL_opengl_h_ + +#include "SDL_config.h" + +#ifndef __IPHONEOS__ /* No OpenGL on iOS. */ + +/* + * Mesa 3-D graphics library + * + * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. + * Copyright (C) 2009 VMware, Inc. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#ifndef __gl_h_ +#define __gl_h_ + +#if defined(USE_MGL_NAMESPACE) +#include "gl_mangle.h" +#endif + + +/********************************************************************** + * Begin system-specific stuff. + */ + +#if defined(_WIN32) && !defined(__WIN32__) && !defined(__CYGWIN__) +#define __WIN32__ +#endif + +#if defined(__WIN32__) && !defined(__CYGWIN__) +# if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ +# define GLAPI __declspec(dllexport) +# elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ +# define GLAPI __declspec(dllimport) +# else /* for use with static link lib build of Win32 edition only */ +# define GLAPI extern +# endif /* _STATIC_MESA support */ +# if defined(__MINGW32__) && defined(GL_NO_STDCALL) || defined(UNDER_CE) /* The generated DLLs by MingW with STDCALL are not compatible with the ones done by Microsoft's compilers */ +# define GLAPIENTRY +# else +# define GLAPIENTRY __stdcall +# endif +#elif defined(__CYGWIN__) && defined(USE_OPENGL32) /* use native windows opengl32 */ +# define GLAPI extern +# define GLAPIENTRY __stdcall +#elif defined(__OS2__) || defined(__EMX__) /* native os/2 opengl */ +# define GLAPI extern +# define GLAPIENTRY _System +# define APIENTRY _System +# if defined(__GNUC__) && !defined(_System) +# define _System +# endif +#elif (defined(__GNUC__) && __GNUC__ >= 4) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) +# define GLAPI __attribute__((visibility("default"))) +# define GLAPIENTRY +#endif /* WIN32 && !CYGWIN */ + +/* + * WINDOWS: Include windows.h here to define APIENTRY. + * It is also useful when applications include this file by + * including only glut.h, since glut.h depends on windows.h. + * Applications needing to include windows.h with parms other + * than "WIN32_LEAN_AND_MEAN" may include windows.h before + * glut.h or gl.h. + */ +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN 1 +#endif +#ifndef NOMINMAX /* don't define min() and max(). */ +#define NOMINMAX +#endif +#include +#endif + +#ifndef GLAPI +#define GLAPI extern +#endif + +#ifndef GLAPIENTRY +#define GLAPIENTRY +#endif + +#ifndef APIENTRY +#define APIENTRY GLAPIENTRY +#endif + +/* "P" suffix to be used for a pointer to a function */ +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif + +#ifndef GLAPIENTRYP +#define GLAPIENTRYP GLAPIENTRY * +#endif + +#if defined(PRAGMA_EXPORT_SUPPORTED) +#pragma export on +#endif + +/* + * End system-specific stuff. + **********************************************************************/ + + + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define GL_VERSION_1_1 1 +#define GL_VERSION_1_2 1 +#define GL_VERSION_1_3 1 +#define GL_ARB_imaging 1 + + +/* + * Datatypes + */ +typedef unsigned int GLenum; +typedef unsigned char GLboolean; +typedef unsigned int GLbitfield; +typedef void GLvoid; +typedef signed char GLbyte; /* 1-byte signed */ +typedef short GLshort; /* 2-byte signed */ +typedef int GLint; /* 4-byte signed */ +typedef unsigned char GLubyte; /* 1-byte unsigned */ +typedef unsigned short GLushort; /* 2-byte unsigned */ +typedef unsigned int GLuint; /* 4-byte unsigned */ +typedef int GLsizei; /* 4-byte signed */ +typedef float GLfloat; /* single precision float */ +typedef float GLclampf; /* single precision float in [0,1] */ +typedef double GLdouble; /* double precision float */ +typedef double GLclampd; /* double precision float in [0,1] */ + + + +/* + * Constants + */ + +/* Boolean values */ +#define GL_FALSE 0 +#define GL_TRUE 1 + +/* Data types */ +#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_2_BYTES 0x1407 +#define GL_3_BYTES 0x1408 +#define GL_4_BYTES 0x1409 +#define GL_DOUBLE 0x140A + +/* Primitives */ +#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_QUADS 0x0007 +#define GL_QUAD_STRIP 0x0008 +#define GL_POLYGON 0x0009 + +/* Vertex Arrays */ +#define GL_VERTEX_ARRAY 0x8074 +#define GL_NORMAL_ARRAY 0x8075 +#define GL_COLOR_ARRAY 0x8076 +#define GL_INDEX_ARRAY 0x8077 +#define GL_TEXTURE_COORD_ARRAY 0x8078 +#define GL_EDGE_FLAG_ARRAY 0x8079 +#define GL_VERTEX_ARRAY_SIZE 0x807A +#define GL_VERTEX_ARRAY_TYPE 0x807B +#define GL_VERTEX_ARRAY_STRIDE 0x807C +#define GL_NORMAL_ARRAY_TYPE 0x807E +#define GL_NORMAL_ARRAY_STRIDE 0x807F +#define GL_COLOR_ARRAY_SIZE 0x8081 +#define GL_COLOR_ARRAY_TYPE 0x8082 +#define GL_COLOR_ARRAY_STRIDE 0x8083 +#define GL_INDEX_ARRAY_TYPE 0x8085 +#define GL_INDEX_ARRAY_STRIDE 0x8086 +#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A +#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C +#define GL_VERTEX_ARRAY_POINTER 0x808E +#define GL_NORMAL_ARRAY_POINTER 0x808F +#define GL_COLOR_ARRAY_POINTER 0x8090 +#define GL_INDEX_ARRAY_POINTER 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 +#define GL_V2F 0x2A20 +#define GL_V3F 0x2A21 +#define GL_C4UB_V2F 0x2A22 +#define GL_C4UB_V3F 0x2A23 +#define GL_C3F_V3F 0x2A24 +#define GL_N3F_V3F 0x2A25 +#define GL_C4F_N3F_V3F 0x2A26 +#define GL_T2F_V3F 0x2A27 +#define GL_T4F_V4F 0x2A28 +#define GL_T2F_C4UB_V3F 0x2A29 +#define GL_T2F_C3F_V3F 0x2A2A +#define GL_T2F_N3F_V3F 0x2A2B +#define GL_T2F_C4F_N3F_V3F 0x2A2C +#define GL_T4F_C4F_N3F_V4F 0x2A2D + +/* Matrix Mode */ +#define GL_MATRIX_MODE 0x0BA0 +#define GL_MODELVIEW 0x1700 +#define GL_PROJECTION 0x1701 +#define GL_TEXTURE 0x1702 + +/* Points */ +#define GL_POINT_SMOOTH 0x0B10 +#define GL_POINT_SIZE 0x0B11 +#define GL_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_POINT_SIZE_RANGE 0x0B12 + +/* Lines */ +#define GL_LINE_SMOOTH 0x0B20 +#define GL_LINE_STIPPLE 0x0B24 +#define GL_LINE_STIPPLE_PATTERN 0x0B25 +#define GL_LINE_STIPPLE_REPEAT 0x0B26 +#define GL_LINE_WIDTH 0x0B21 +#define GL_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_LINE_WIDTH_RANGE 0x0B22 + +/* Polygons */ +#define GL_POINT 0x1B00 +#define GL_LINE 0x1B01 +#define GL_FILL 0x1B02 +#define GL_CW 0x0900 +#define GL_CCW 0x0901 +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_POLYGON_MODE 0x0B40 +#define GL_POLYGON_SMOOTH 0x0B41 +#define GL_POLYGON_STIPPLE 0x0B42 +#define GL_EDGE_FLAG 0x0B43 +#define GL_CULL_FACE 0x0B44 +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_POLYGON_OFFSET_FILL 0x8037 + +/* Display Lists */ +#define GL_COMPILE 0x1300 +#define GL_COMPILE_AND_EXECUTE 0x1301 +#define GL_LIST_BASE 0x0B32 +#define GL_LIST_INDEX 0x0B33 +#define GL_LIST_MODE 0x0B30 + +/* Depth buffer */ +#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_DEPTH_TEST 0x0B71 +#define GL_DEPTH_BITS 0x0D56 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DEPTH_COMPONENT 0x1902 + +/* Lighting */ +#define GL_LIGHTING 0x0B50 +#define GL_LIGHT0 0x4000 +#define GL_LIGHT1 0x4001 +#define GL_LIGHT2 0x4002 +#define GL_LIGHT3 0x4003 +#define GL_LIGHT4 0x4004 +#define GL_LIGHT5 0x4005 +#define GL_LIGHT6 0x4006 +#define GL_LIGHT7 0x4007 +#define GL_SPOT_EXPONENT 0x1205 +#define GL_SPOT_CUTOFF 0x1206 +#define GL_CONSTANT_ATTENUATION 0x1207 +#define GL_LINEAR_ATTENUATION 0x1208 +#define GL_QUADRATIC_ATTENUATION 0x1209 +#define GL_AMBIENT 0x1200 +#define GL_DIFFUSE 0x1201 +#define GL_SPECULAR 0x1202 +#define GL_SHININESS 0x1601 +#define GL_EMISSION 0x1600 +#define GL_POSITION 0x1203 +#define GL_SPOT_DIRECTION 0x1204 +#define GL_AMBIENT_AND_DIFFUSE 0x1602 +#define GL_COLOR_INDEXES 0x1603 +#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 +#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 +#define GL_LIGHT_MODEL_AMBIENT 0x0B53 +#define GL_FRONT_AND_BACK 0x0408 +#define GL_SHADE_MODEL 0x0B54 +#define GL_FLAT 0x1D00 +#define GL_SMOOTH 0x1D01 +#define GL_COLOR_MATERIAL 0x0B57 +#define GL_COLOR_MATERIAL_FACE 0x0B55 +#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 +#define GL_NORMALIZE 0x0BA1 + +/* User clipping planes */ +#define GL_CLIP_PLANE0 0x3000 +#define GL_CLIP_PLANE1 0x3001 +#define GL_CLIP_PLANE2 0x3002 +#define GL_CLIP_PLANE3 0x3003 +#define GL_CLIP_PLANE4 0x3004 +#define GL_CLIP_PLANE5 0x3005 + +/* Accumulation buffer */ +#define GL_ACCUM_RED_BITS 0x0D58 +#define GL_ACCUM_GREEN_BITS 0x0D59 +#define GL_ACCUM_BLUE_BITS 0x0D5A +#define GL_ACCUM_ALPHA_BITS 0x0D5B +#define GL_ACCUM_CLEAR_VALUE 0x0B80 +#define GL_ACCUM 0x0100 +#define GL_ADD 0x0104 +#define GL_LOAD 0x0101 +#define GL_MULT 0x0103 +#define GL_RETURN 0x0102 + +/* Alpha testing */ +#define GL_ALPHA_TEST 0x0BC0 +#define GL_ALPHA_TEST_REF 0x0BC2 +#define GL_ALPHA_TEST_FUNC 0x0BC1 + +/* Blending */ +#define GL_BLEND 0x0BE2 +#define GL_BLEND_SRC 0x0BE1 +#define GL_BLEND_DST 0x0BE0 +#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 + +/* Render Mode */ +#define GL_FEEDBACK 0x1C01 +#define GL_RENDER 0x1C00 +#define GL_SELECT 0x1C02 + +/* Feedback */ +#define GL_2D 0x0600 +#define GL_3D 0x0601 +#define GL_3D_COLOR 0x0602 +#define GL_3D_COLOR_TEXTURE 0x0603 +#define GL_4D_COLOR_TEXTURE 0x0604 +#define GL_POINT_TOKEN 0x0701 +#define GL_LINE_TOKEN 0x0702 +#define GL_LINE_RESET_TOKEN 0x0707 +#define GL_POLYGON_TOKEN 0x0703 +#define GL_BITMAP_TOKEN 0x0704 +#define GL_DRAW_PIXEL_TOKEN 0x0705 +#define GL_COPY_PIXEL_TOKEN 0x0706 +#define GL_PASS_THROUGH_TOKEN 0x0700 +#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 +#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 +#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 + +/* Selection */ +#define GL_SELECTION_BUFFER_POINTER 0x0DF3 +#define GL_SELECTION_BUFFER_SIZE 0x0DF4 + +/* Fog */ +#define GL_FOG 0x0B60 +#define GL_FOG_MODE 0x0B65 +#define GL_FOG_DENSITY 0x0B62 +#define GL_FOG_COLOR 0x0B66 +#define GL_FOG_INDEX 0x0B61 +#define GL_FOG_START 0x0B63 +#define GL_FOG_END 0x0B64 +#define GL_LINEAR 0x2601 +#define GL_EXP 0x0800 +#define GL_EXP2 0x0801 + +/* Logic Ops */ +#define GL_LOGIC_OP 0x0BF1 +#define GL_INDEX_LOGIC_OP 0x0BF1 +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_LOGIC_OP_MODE 0x0BF0 +#define GL_CLEAR 0x1500 +#define GL_SET 0x150F +#define GL_COPY 0x1503 +#define GL_COPY_INVERTED 0x150C +#define GL_NOOP 0x1505 +#define GL_INVERT 0x150A +#define GL_AND 0x1501 +#define GL_NAND 0x150E +#define GL_OR 0x1507 +#define GL_NOR 0x1508 +#define GL_XOR 0x1506 +#define GL_EQUIV 0x1509 +#define GL_AND_REVERSE 0x1502 +#define GL_AND_INVERTED 0x1504 +#define GL_OR_REVERSE 0x150B +#define GL_OR_INVERTED 0x150D + +/* Stencil */ +#define GL_STENCIL_BITS 0x0D57 +#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_STENCIL_INDEX 0x1901 +#define GL_KEEP 0x1E00 +#define GL_REPLACE 0x1E01 +#define GL_INCR 0x1E02 +#define GL_DECR 0x1E03 + +/* Buffers, Pixel Drawing/Reading */ +#define GL_NONE 0 +#define GL_LEFT 0x0406 +#define GL_RIGHT 0x0407 +/*GL_FRONT 0x0404 */ +/*GL_BACK 0x0405 */ +/*GL_FRONT_AND_BACK 0x0408 */ +#define GL_FRONT_LEFT 0x0400 +#define GL_FRONT_RIGHT 0x0401 +#define GL_BACK_LEFT 0x0402 +#define GL_BACK_RIGHT 0x0403 +#define GL_AUX0 0x0409 +#define GL_AUX1 0x040A +#define GL_AUX2 0x040B +#define GL_AUX3 0x040C +#define GL_COLOR_INDEX 0x1900 +#define GL_RED 0x1903 +#define GL_GREEN 0x1904 +#define GL_BLUE 0x1905 +#define GL_ALPHA 0x1906 +#define GL_LUMINANCE 0x1909 +#define GL_LUMINANCE_ALPHA 0x190A +#define GL_ALPHA_BITS 0x0D55 +#define GL_RED_BITS 0x0D52 +#define GL_GREEN_BITS 0x0D53 +#define GL_BLUE_BITS 0x0D54 +#define GL_INDEX_BITS 0x0D51 +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_AUX_BUFFERS 0x0C00 +#define GL_READ_BUFFER 0x0C02 +#define GL_DRAW_BUFFER 0x0C01 +#define GL_DOUBLEBUFFER 0x0C32 +#define GL_STEREO 0x0C33 +#define GL_BITMAP 0x1A00 +#define GL_COLOR 0x1800 +#define GL_DEPTH 0x1801 +#define GL_STENCIL 0x1802 +#define GL_DITHER 0x0BD0 +#define GL_RGB 0x1907 +#define GL_RGBA 0x1908 + +/* Implementation limits */ +#define GL_MAX_LIST_NESTING 0x0B31 +#define GL_MAX_EVAL_ORDER 0x0D30 +#define GL_MAX_LIGHTS 0x0D31 +#define GL_MAX_CLIP_PLANES 0x0D32 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 +#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 +#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 +#define GL_MAX_NAME_STACK_DEPTH 0x0D37 +#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 +#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B + +/* Gets */ +#define GL_ATTRIB_STACK_DEPTH 0x0BB0 +#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_CURRENT_INDEX 0x0B01 +#define GL_CURRENT_COLOR 0x0B00 +#define GL_CURRENT_NORMAL 0x0B02 +#define GL_CURRENT_RASTER_COLOR 0x0B04 +#define GL_CURRENT_RASTER_DISTANCE 0x0B09 +#define GL_CURRENT_RASTER_INDEX 0x0B05 +#define GL_CURRENT_RASTER_POSITION 0x0B07 +#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 +#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 +#define GL_CURRENT_TEXTURE_COORDS 0x0B03 +#define GL_INDEX_CLEAR_VALUE 0x0C20 +#define GL_INDEX_MODE 0x0C30 +#define GL_INDEX_WRITEMASK 0x0C21 +#define GL_MODELVIEW_MATRIX 0x0BA6 +#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 +#define GL_NAME_STACK_DEPTH 0x0D70 +#define GL_PROJECTION_MATRIX 0x0BA7 +#define GL_PROJECTION_STACK_DEPTH 0x0BA4 +#define GL_RENDER_MODE 0x0C40 +#define GL_RGBA_MODE 0x0C31 +#define GL_TEXTURE_MATRIX 0x0BA8 +#define GL_TEXTURE_STACK_DEPTH 0x0BA5 +#define GL_VIEWPORT 0x0BA2 + +/* Evaluators */ +#define GL_AUTO_NORMAL 0x0D80 +#define GL_MAP1_COLOR_4 0x0D90 +#define GL_MAP1_INDEX 0x0D91 +#define GL_MAP1_NORMAL 0x0D92 +#define GL_MAP1_TEXTURE_COORD_1 0x0D93 +#define GL_MAP1_TEXTURE_COORD_2 0x0D94 +#define GL_MAP1_TEXTURE_COORD_3 0x0D95 +#define GL_MAP1_TEXTURE_COORD_4 0x0D96 +#define GL_MAP1_VERTEX_3 0x0D97 +#define GL_MAP1_VERTEX_4 0x0D98 +#define GL_MAP2_COLOR_4 0x0DB0 +#define GL_MAP2_INDEX 0x0DB1 +#define GL_MAP2_NORMAL 0x0DB2 +#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 +#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 +#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 +#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 +#define GL_MAP2_VERTEX_3 0x0DB7 +#define GL_MAP2_VERTEX_4 0x0DB8 +#define GL_MAP1_GRID_DOMAIN 0x0DD0 +#define GL_MAP1_GRID_SEGMENTS 0x0DD1 +#define GL_MAP2_GRID_DOMAIN 0x0DD2 +#define GL_MAP2_GRID_SEGMENTS 0x0DD3 +#define GL_COEFF 0x0A00 +#define GL_ORDER 0x0A01 +#define GL_DOMAIN 0x0A02 + +/* Hints */ +#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 +#define GL_POINT_SMOOTH_HINT 0x0C51 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_POLYGON_SMOOTH_HINT 0x0C53 +#define GL_FOG_HINT 0x0C54 +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 + +/* Scissor box */ +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 + +/* Pixel Mode / Transfer */ +#define GL_MAP_COLOR 0x0D10 +#define GL_MAP_STENCIL 0x0D11 +#define GL_INDEX_SHIFT 0x0D12 +#define GL_INDEX_OFFSET 0x0D13 +#define GL_RED_SCALE 0x0D14 +#define GL_RED_BIAS 0x0D15 +#define GL_GREEN_SCALE 0x0D18 +#define GL_GREEN_BIAS 0x0D19 +#define GL_BLUE_SCALE 0x0D1A +#define GL_BLUE_BIAS 0x0D1B +#define GL_ALPHA_SCALE 0x0D1C +#define GL_ALPHA_BIAS 0x0D1D +#define GL_DEPTH_SCALE 0x0D1E +#define GL_DEPTH_BIAS 0x0D1F +#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 +#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 +#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 +#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 +#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 +#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 +#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 +#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 +#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 +#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 +#define GL_PIXEL_MAP_S_TO_S 0x0C71 +#define GL_PIXEL_MAP_I_TO_I 0x0C70 +#define GL_PIXEL_MAP_I_TO_R 0x0C72 +#define GL_PIXEL_MAP_I_TO_G 0x0C73 +#define GL_PIXEL_MAP_I_TO_B 0x0C74 +#define GL_PIXEL_MAP_I_TO_A 0x0C75 +#define GL_PIXEL_MAP_R_TO_R 0x0C76 +#define GL_PIXEL_MAP_G_TO_G 0x0C77 +#define GL_PIXEL_MAP_B_TO_B 0x0C78 +#define GL_PIXEL_MAP_A_TO_A 0x0C79 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_PACK_LSB_FIRST 0x0D01 +#define GL_PACK_ROW_LENGTH 0x0D02 +#define GL_PACK_SKIP_PIXELS 0x0D04 +#define GL_PACK_SKIP_ROWS 0x0D03 +#define GL_PACK_SWAP_BYTES 0x0D00 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_UNPACK_LSB_FIRST 0x0CF1 +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#define GL_UNPACK_SWAP_BYTES 0x0CF0 +#define GL_ZOOM_X 0x0D16 +#define GL_ZOOM_Y 0x0D17 + +/* Texture mapping */ +#define GL_TEXTURE_ENV 0x2300 +#define GL_TEXTURE_ENV_MODE 0x2200 +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_ENV_COLOR 0x2201 +#define GL_TEXTURE_GEN_S 0x0C60 +#define GL_TEXTURE_GEN_T 0x0C61 +#define GL_TEXTURE_GEN_R 0x0C62 +#define GL_TEXTURE_GEN_Q 0x0C63 +#define GL_TEXTURE_GEN_MODE 0x2500 +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_TEXTURE_WIDTH 0x1000 +#define GL_TEXTURE_HEIGHT 0x1001 +#define GL_TEXTURE_BORDER 0x1005 +#define GL_TEXTURE_COMPONENTS 0x1003 +#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_TEXTURE_LUMINANCE_SIZE 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE 0x8061 +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 +#define GL_OBJECT_LINEAR 0x2401 +#define GL_OBJECT_PLANE 0x2501 +#define GL_EYE_LINEAR 0x2400 +#define GL_EYE_PLANE 0x2502 +#define GL_SPHERE_MAP 0x2402 +#define GL_DECAL 0x2101 +#define GL_MODULATE 0x2100 +#define GL_NEAREST 0x2600 +#define GL_REPEAT 0x2901 +#define GL_CLAMP 0x2900 +#define GL_S 0x2000 +#define GL_T 0x2001 +#define GL_R 0x2002 +#define GL_Q 0x2003 + +/* Utility */ +#define GL_VENDOR 0x1F00 +#define GL_RENDERER 0x1F01 +#define GL_VERSION 0x1F02 +#define GL_EXTENSIONS 0x1F03 + +/* Errors */ +#define GL_NO_ERROR 0 +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVALID_OPERATION 0x0502 +#define GL_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#define GL_OUT_OF_MEMORY 0x0505 + +/* glPush/PopAttrib bits */ +#define GL_CURRENT_BIT 0x00000001 +#define GL_POINT_BIT 0x00000002 +#define GL_LINE_BIT 0x00000004 +#define GL_POLYGON_BIT 0x00000008 +#define GL_POLYGON_STIPPLE_BIT 0x00000010 +#define GL_PIXEL_MODE_BIT 0x00000020 +#define GL_LIGHTING_BIT 0x00000040 +#define GL_FOG_BIT 0x00000080 +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_ACCUM_BUFFER_BIT 0x00000200 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_VIEWPORT_BIT 0x00000800 +#define GL_TRANSFORM_BIT 0x00001000 +#define GL_ENABLE_BIT 0x00002000 +#define GL_COLOR_BUFFER_BIT 0x00004000 +#define GL_HINT_BIT 0x00008000 +#define GL_EVAL_BIT 0x00010000 +#define GL_LIST_BIT 0x00020000 +#define GL_TEXTURE_BIT 0x00040000 +#define GL_SCISSOR_BIT 0x00080000 +#define GL_ALL_ATTRIB_BITS 0x000FFFFF + + +/* OpenGL 1.1 */ +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 +#define GL_TEXTURE_PRIORITY 0x8066 +#define GL_TEXTURE_RESIDENT 0x8067 +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_ALPHA4 0x803B +#define GL_ALPHA8 0x803C +#define GL_ALPHA12 0x803D +#define GL_ALPHA16 0x803E +#define GL_LUMINANCE4 0x803F +#define GL_LUMINANCE8 0x8040 +#define GL_LUMINANCE12 0x8041 +#define GL_LUMINANCE16 0x8042 +#define GL_LUMINANCE4_ALPHA4 0x8043 +#define GL_LUMINANCE6_ALPHA2 0x8044 +#define GL_LUMINANCE8_ALPHA8 0x8045 +#define GL_LUMINANCE12_ALPHA4 0x8046 +#define GL_LUMINANCE12_ALPHA12 0x8047 +#define GL_LUMINANCE16_ALPHA16 0x8048 +#define GL_INTENSITY 0x8049 +#define GL_INTENSITY4 0x804A +#define GL_INTENSITY8 0x804B +#define GL_INTENSITY12 0x804C +#define GL_INTENSITY16 0x804D +#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_CLIENT_PIXEL_STORE_BIT 0x00000001 +#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 +#define GL_ALL_CLIENT_ATTRIB_BITS 0xFFFFFFFF +#define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF + + + +/* + * Miscellaneous + */ + +GLAPI void GLAPIENTRY glClearIndex( GLfloat c ); + +GLAPI void GLAPIENTRY glClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ); + +GLAPI void GLAPIENTRY glClear( GLbitfield mask ); + +GLAPI void GLAPIENTRY glIndexMask( GLuint mask ); + +GLAPI void GLAPIENTRY glColorMask( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ); + +GLAPI void GLAPIENTRY glAlphaFunc( GLenum func, GLclampf ref ); + +GLAPI void GLAPIENTRY glBlendFunc( GLenum sfactor, GLenum dfactor ); + +GLAPI void GLAPIENTRY glLogicOp( GLenum opcode ); + +GLAPI void GLAPIENTRY glCullFace( GLenum mode ); + +GLAPI void GLAPIENTRY glFrontFace( GLenum mode ); + +GLAPI void GLAPIENTRY glPointSize( GLfloat size ); + +GLAPI void GLAPIENTRY glLineWidth( GLfloat width ); + +GLAPI void GLAPIENTRY glLineStipple( GLint factor, GLushort pattern ); + +GLAPI void GLAPIENTRY glPolygonMode( GLenum face, GLenum mode ); + +GLAPI void GLAPIENTRY glPolygonOffset( GLfloat factor, GLfloat units ); + +GLAPI void GLAPIENTRY glPolygonStipple( const GLubyte *mask ); + +GLAPI void GLAPIENTRY glGetPolygonStipple( GLubyte *mask ); + +GLAPI void GLAPIENTRY glEdgeFlag( GLboolean flag ); + +GLAPI void GLAPIENTRY glEdgeFlagv( const GLboolean *flag ); + +GLAPI void GLAPIENTRY glScissor( GLint x, GLint y, GLsizei width, GLsizei height); + +GLAPI void GLAPIENTRY glClipPlane( GLenum plane, const GLdouble *equation ); + +GLAPI void GLAPIENTRY glGetClipPlane( GLenum plane, GLdouble *equation ); + +GLAPI void GLAPIENTRY glDrawBuffer( GLenum mode ); + +GLAPI void GLAPIENTRY glReadBuffer( GLenum mode ); + +GLAPI void GLAPIENTRY glEnable( GLenum cap ); + +GLAPI void GLAPIENTRY glDisable( GLenum cap ); + +GLAPI GLboolean GLAPIENTRY glIsEnabled( GLenum cap ); + + +GLAPI void GLAPIENTRY glEnableClientState( GLenum cap ); /* 1.1 */ + +GLAPI void GLAPIENTRY glDisableClientState( GLenum cap ); /* 1.1 */ + + +GLAPI void GLAPIENTRY glGetBooleanv( GLenum pname, GLboolean *params ); + +GLAPI void GLAPIENTRY glGetDoublev( GLenum pname, GLdouble *params ); + +GLAPI void GLAPIENTRY glGetFloatv( GLenum pname, GLfloat *params ); + +GLAPI void GLAPIENTRY glGetIntegerv( GLenum pname, GLint *params ); + + +GLAPI void GLAPIENTRY glPushAttrib( GLbitfield mask ); + +GLAPI void GLAPIENTRY glPopAttrib( void ); + + +GLAPI void GLAPIENTRY glPushClientAttrib( GLbitfield mask ); /* 1.1 */ + +GLAPI void GLAPIENTRY glPopClientAttrib( void ); /* 1.1 */ + + +GLAPI GLint GLAPIENTRY glRenderMode( GLenum mode ); + +GLAPI GLenum GLAPIENTRY glGetError( void ); + +GLAPI const GLubyte * GLAPIENTRY glGetString( GLenum name ); + +GLAPI void GLAPIENTRY glFinish( void ); + +GLAPI void GLAPIENTRY glFlush( void ); + +GLAPI void GLAPIENTRY glHint( GLenum target, GLenum mode ); + + +/* + * Depth Buffer + */ + +GLAPI void GLAPIENTRY glClearDepth( GLclampd depth ); + +GLAPI void GLAPIENTRY glDepthFunc( GLenum func ); + +GLAPI void GLAPIENTRY glDepthMask( GLboolean flag ); + +GLAPI void GLAPIENTRY glDepthRange( GLclampd near_val, GLclampd far_val ); + + +/* + * Accumulation Buffer + */ + +GLAPI void GLAPIENTRY glClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ); + +GLAPI void GLAPIENTRY glAccum( GLenum op, GLfloat value ); + + +/* + * Transformation + */ + +GLAPI void GLAPIENTRY glMatrixMode( GLenum mode ); + +GLAPI void GLAPIENTRY glOrtho( GLdouble left, GLdouble right, + GLdouble bottom, GLdouble top, + GLdouble near_val, GLdouble far_val ); + +GLAPI void GLAPIENTRY glFrustum( GLdouble left, GLdouble right, + GLdouble bottom, GLdouble top, + GLdouble near_val, GLdouble far_val ); + +GLAPI void GLAPIENTRY glViewport( GLint x, GLint y, + GLsizei width, GLsizei height ); + +GLAPI void GLAPIENTRY glPushMatrix( void ); + +GLAPI void GLAPIENTRY glPopMatrix( void ); + +GLAPI void GLAPIENTRY glLoadIdentity( void ); + +GLAPI void GLAPIENTRY glLoadMatrixd( const GLdouble *m ); +GLAPI void GLAPIENTRY glLoadMatrixf( const GLfloat *m ); + +GLAPI void GLAPIENTRY glMultMatrixd( const GLdouble *m ); +GLAPI void GLAPIENTRY glMultMatrixf( const GLfloat *m ); + +GLAPI void GLAPIENTRY glRotated( GLdouble angle, + GLdouble x, GLdouble y, GLdouble z ); +GLAPI void GLAPIENTRY glRotatef( GLfloat angle, + GLfloat x, GLfloat y, GLfloat z ); + +GLAPI void GLAPIENTRY glScaled( GLdouble x, GLdouble y, GLdouble z ); +GLAPI void GLAPIENTRY glScalef( GLfloat x, GLfloat y, GLfloat z ); + +GLAPI void GLAPIENTRY glTranslated( GLdouble x, GLdouble y, GLdouble z ); +GLAPI void GLAPIENTRY glTranslatef( GLfloat x, GLfloat y, GLfloat z ); + + +/* + * Display Lists + */ + +GLAPI GLboolean GLAPIENTRY glIsList( GLuint list ); + +GLAPI void GLAPIENTRY glDeleteLists( GLuint list, GLsizei range ); + +GLAPI GLuint GLAPIENTRY glGenLists( GLsizei range ); + +GLAPI void GLAPIENTRY glNewList( GLuint list, GLenum mode ); + +GLAPI void GLAPIENTRY glEndList( void ); + +GLAPI void GLAPIENTRY glCallList( GLuint list ); + +GLAPI void GLAPIENTRY glCallLists( GLsizei n, GLenum type, + const GLvoid *lists ); + +GLAPI void GLAPIENTRY glListBase( GLuint base ); + + +/* + * Drawing Functions + */ + +GLAPI void GLAPIENTRY glBegin( GLenum mode ); + +GLAPI void GLAPIENTRY glEnd( void ); + + +GLAPI void GLAPIENTRY glVertex2d( GLdouble x, GLdouble y ); +GLAPI void GLAPIENTRY glVertex2f( GLfloat x, GLfloat y ); +GLAPI void GLAPIENTRY glVertex2i( GLint x, GLint y ); +GLAPI void GLAPIENTRY glVertex2s( GLshort x, GLshort y ); + +GLAPI void GLAPIENTRY glVertex3d( GLdouble x, GLdouble y, GLdouble z ); +GLAPI void GLAPIENTRY glVertex3f( GLfloat x, GLfloat y, GLfloat z ); +GLAPI void GLAPIENTRY glVertex3i( GLint x, GLint y, GLint z ); +GLAPI void GLAPIENTRY glVertex3s( GLshort x, GLshort y, GLshort z ); + +GLAPI void GLAPIENTRY glVertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); +GLAPI void GLAPIENTRY glVertex4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); +GLAPI void GLAPIENTRY glVertex4i( GLint x, GLint y, GLint z, GLint w ); +GLAPI void GLAPIENTRY glVertex4s( GLshort x, GLshort y, GLshort z, GLshort w ); + +GLAPI void GLAPIENTRY glVertex2dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glVertex2fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glVertex2iv( const GLint *v ); +GLAPI void GLAPIENTRY glVertex2sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glVertex3dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glVertex3fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glVertex3iv( const GLint *v ); +GLAPI void GLAPIENTRY glVertex3sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glVertex4dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glVertex4fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glVertex4iv( const GLint *v ); +GLAPI void GLAPIENTRY glVertex4sv( const GLshort *v ); + + +GLAPI void GLAPIENTRY glNormal3b( GLbyte nx, GLbyte ny, GLbyte nz ); +GLAPI void GLAPIENTRY glNormal3d( GLdouble nx, GLdouble ny, GLdouble nz ); +GLAPI void GLAPIENTRY glNormal3f( GLfloat nx, GLfloat ny, GLfloat nz ); +GLAPI void GLAPIENTRY glNormal3i( GLint nx, GLint ny, GLint nz ); +GLAPI void GLAPIENTRY glNormal3s( GLshort nx, GLshort ny, GLshort nz ); + +GLAPI void GLAPIENTRY glNormal3bv( const GLbyte *v ); +GLAPI void GLAPIENTRY glNormal3dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glNormal3fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glNormal3iv( const GLint *v ); +GLAPI void GLAPIENTRY glNormal3sv( const GLshort *v ); + + +GLAPI void GLAPIENTRY glIndexd( GLdouble c ); +GLAPI void GLAPIENTRY glIndexf( GLfloat c ); +GLAPI void GLAPIENTRY glIndexi( GLint c ); +GLAPI void GLAPIENTRY glIndexs( GLshort c ); +GLAPI void GLAPIENTRY glIndexub( GLubyte c ); /* 1.1 */ + +GLAPI void GLAPIENTRY glIndexdv( const GLdouble *c ); +GLAPI void GLAPIENTRY glIndexfv( const GLfloat *c ); +GLAPI void GLAPIENTRY glIndexiv( const GLint *c ); +GLAPI void GLAPIENTRY glIndexsv( const GLshort *c ); +GLAPI void GLAPIENTRY glIndexubv( const GLubyte *c ); /* 1.1 */ + +GLAPI void GLAPIENTRY glColor3b( GLbyte red, GLbyte green, GLbyte blue ); +GLAPI void GLAPIENTRY glColor3d( GLdouble red, GLdouble green, GLdouble blue ); +GLAPI void GLAPIENTRY glColor3f( GLfloat red, GLfloat green, GLfloat blue ); +GLAPI void GLAPIENTRY glColor3i( GLint red, GLint green, GLint blue ); +GLAPI void GLAPIENTRY glColor3s( GLshort red, GLshort green, GLshort blue ); +GLAPI void GLAPIENTRY glColor3ub( GLubyte red, GLubyte green, GLubyte blue ); +GLAPI void GLAPIENTRY glColor3ui( GLuint red, GLuint green, GLuint blue ); +GLAPI void GLAPIENTRY glColor3us( GLushort red, GLushort green, GLushort blue ); + +GLAPI void GLAPIENTRY glColor4b( GLbyte red, GLbyte green, + GLbyte blue, GLbyte alpha ); +GLAPI void GLAPIENTRY glColor4d( GLdouble red, GLdouble green, + GLdouble blue, GLdouble alpha ); +GLAPI void GLAPIENTRY glColor4f( GLfloat red, GLfloat green, + GLfloat blue, GLfloat alpha ); +GLAPI void GLAPIENTRY glColor4i( GLint red, GLint green, + GLint blue, GLint alpha ); +GLAPI void GLAPIENTRY glColor4s( GLshort red, GLshort green, + GLshort blue, GLshort alpha ); +GLAPI void GLAPIENTRY glColor4ub( GLubyte red, GLubyte green, + GLubyte blue, GLubyte alpha ); +GLAPI void GLAPIENTRY glColor4ui( GLuint red, GLuint green, + GLuint blue, GLuint alpha ); +GLAPI void GLAPIENTRY glColor4us( GLushort red, GLushort green, + GLushort blue, GLushort alpha ); + + +GLAPI void GLAPIENTRY glColor3bv( const GLbyte *v ); +GLAPI void GLAPIENTRY glColor3dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glColor3fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glColor3iv( const GLint *v ); +GLAPI void GLAPIENTRY glColor3sv( const GLshort *v ); +GLAPI void GLAPIENTRY glColor3ubv( const GLubyte *v ); +GLAPI void GLAPIENTRY glColor3uiv( const GLuint *v ); +GLAPI void GLAPIENTRY glColor3usv( const GLushort *v ); + +GLAPI void GLAPIENTRY glColor4bv( const GLbyte *v ); +GLAPI void GLAPIENTRY glColor4dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glColor4fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glColor4iv( const GLint *v ); +GLAPI void GLAPIENTRY glColor4sv( const GLshort *v ); +GLAPI void GLAPIENTRY glColor4ubv( const GLubyte *v ); +GLAPI void GLAPIENTRY glColor4uiv( const GLuint *v ); +GLAPI void GLAPIENTRY glColor4usv( const GLushort *v ); + + +GLAPI void GLAPIENTRY glTexCoord1d( GLdouble s ); +GLAPI void GLAPIENTRY glTexCoord1f( GLfloat s ); +GLAPI void GLAPIENTRY glTexCoord1i( GLint s ); +GLAPI void GLAPIENTRY glTexCoord1s( GLshort s ); + +GLAPI void GLAPIENTRY glTexCoord2d( GLdouble s, GLdouble t ); +GLAPI void GLAPIENTRY glTexCoord2f( GLfloat s, GLfloat t ); +GLAPI void GLAPIENTRY glTexCoord2i( GLint s, GLint t ); +GLAPI void GLAPIENTRY glTexCoord2s( GLshort s, GLshort t ); + +GLAPI void GLAPIENTRY glTexCoord3d( GLdouble s, GLdouble t, GLdouble r ); +GLAPI void GLAPIENTRY glTexCoord3f( GLfloat s, GLfloat t, GLfloat r ); +GLAPI void GLAPIENTRY glTexCoord3i( GLint s, GLint t, GLint r ); +GLAPI void GLAPIENTRY glTexCoord3s( GLshort s, GLshort t, GLshort r ); + +GLAPI void GLAPIENTRY glTexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q ); +GLAPI void GLAPIENTRY glTexCoord4f( GLfloat s, GLfloat t, GLfloat r, GLfloat q ); +GLAPI void GLAPIENTRY glTexCoord4i( GLint s, GLint t, GLint r, GLint q ); +GLAPI void GLAPIENTRY glTexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q ); + +GLAPI void GLAPIENTRY glTexCoord1dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glTexCoord1fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glTexCoord1iv( const GLint *v ); +GLAPI void GLAPIENTRY glTexCoord1sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glTexCoord2dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glTexCoord2fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glTexCoord2iv( const GLint *v ); +GLAPI void GLAPIENTRY glTexCoord2sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glTexCoord3dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glTexCoord3fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glTexCoord3iv( const GLint *v ); +GLAPI void GLAPIENTRY glTexCoord3sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glTexCoord4dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glTexCoord4fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glTexCoord4iv( const GLint *v ); +GLAPI void GLAPIENTRY glTexCoord4sv( const GLshort *v ); + + +GLAPI void GLAPIENTRY glRasterPos2d( GLdouble x, GLdouble y ); +GLAPI void GLAPIENTRY glRasterPos2f( GLfloat x, GLfloat y ); +GLAPI void GLAPIENTRY glRasterPos2i( GLint x, GLint y ); +GLAPI void GLAPIENTRY glRasterPos2s( GLshort x, GLshort y ); + +GLAPI void GLAPIENTRY glRasterPos3d( GLdouble x, GLdouble y, GLdouble z ); +GLAPI void GLAPIENTRY glRasterPos3f( GLfloat x, GLfloat y, GLfloat z ); +GLAPI void GLAPIENTRY glRasterPos3i( GLint x, GLint y, GLint z ); +GLAPI void GLAPIENTRY glRasterPos3s( GLshort x, GLshort y, GLshort z ); + +GLAPI void GLAPIENTRY glRasterPos4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); +GLAPI void GLAPIENTRY glRasterPos4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); +GLAPI void GLAPIENTRY glRasterPos4i( GLint x, GLint y, GLint z, GLint w ); +GLAPI void GLAPIENTRY glRasterPos4s( GLshort x, GLshort y, GLshort z, GLshort w ); + +GLAPI void GLAPIENTRY glRasterPos2dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glRasterPos2fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glRasterPos2iv( const GLint *v ); +GLAPI void GLAPIENTRY glRasterPos2sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glRasterPos3dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glRasterPos3fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glRasterPos3iv( const GLint *v ); +GLAPI void GLAPIENTRY glRasterPos3sv( const GLshort *v ); + +GLAPI void GLAPIENTRY glRasterPos4dv( const GLdouble *v ); +GLAPI void GLAPIENTRY glRasterPos4fv( const GLfloat *v ); +GLAPI void GLAPIENTRY glRasterPos4iv( const GLint *v ); +GLAPI void GLAPIENTRY glRasterPos4sv( const GLshort *v ); + + +GLAPI void GLAPIENTRY glRectd( GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2 ); +GLAPI void GLAPIENTRY glRectf( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 ); +GLAPI void GLAPIENTRY glRecti( GLint x1, GLint y1, GLint x2, GLint y2 ); +GLAPI void GLAPIENTRY glRects( GLshort x1, GLshort y1, GLshort x2, GLshort y2 ); + + +GLAPI void GLAPIENTRY glRectdv( const GLdouble *v1, const GLdouble *v2 ); +GLAPI void GLAPIENTRY glRectfv( const GLfloat *v1, const GLfloat *v2 ); +GLAPI void GLAPIENTRY glRectiv( const GLint *v1, const GLint *v2 ); +GLAPI void GLAPIENTRY glRectsv( const GLshort *v1, const GLshort *v2 ); + + +/* + * Vertex Arrays (1.1) + */ + +GLAPI void GLAPIENTRY glVertexPointer( GLint size, GLenum type, + GLsizei stride, const GLvoid *ptr ); + +GLAPI void GLAPIENTRY glNormalPointer( GLenum type, GLsizei stride, + const GLvoid *ptr ); + +GLAPI void GLAPIENTRY glColorPointer( GLint size, GLenum type, + GLsizei stride, const GLvoid *ptr ); + +GLAPI void GLAPIENTRY glIndexPointer( GLenum type, GLsizei stride, + const GLvoid *ptr ); + +GLAPI void GLAPIENTRY glTexCoordPointer( GLint size, GLenum type, + GLsizei stride, const GLvoid *ptr ); + +GLAPI void GLAPIENTRY glEdgeFlagPointer( GLsizei stride, const GLvoid *ptr ); + +GLAPI void GLAPIENTRY glGetPointerv( GLenum pname, GLvoid **params ); + +GLAPI void GLAPIENTRY glArrayElement( GLint i ); + +GLAPI void GLAPIENTRY glDrawArrays( GLenum mode, GLint first, GLsizei count ); + +GLAPI void GLAPIENTRY glDrawElements( GLenum mode, GLsizei count, + GLenum type, const GLvoid *indices ); + +GLAPI void GLAPIENTRY glInterleavedArrays( GLenum format, GLsizei stride, + const GLvoid *pointer ); + +/* + * Lighting + */ + +GLAPI void GLAPIENTRY glShadeModel( GLenum mode ); + +GLAPI void GLAPIENTRY glLightf( GLenum light, GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glLighti( GLenum light, GLenum pname, GLint param ); +GLAPI void GLAPIENTRY glLightfv( GLenum light, GLenum pname, + const GLfloat *params ); +GLAPI void GLAPIENTRY glLightiv( GLenum light, GLenum pname, + const GLint *params ); + +GLAPI void GLAPIENTRY glGetLightfv( GLenum light, GLenum pname, + GLfloat *params ); +GLAPI void GLAPIENTRY glGetLightiv( GLenum light, GLenum pname, + GLint *params ); + +GLAPI void GLAPIENTRY glLightModelf( GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glLightModeli( GLenum pname, GLint param ); +GLAPI void GLAPIENTRY glLightModelfv( GLenum pname, const GLfloat *params ); +GLAPI void GLAPIENTRY glLightModeliv( GLenum pname, const GLint *params ); + +GLAPI void GLAPIENTRY glMaterialf( GLenum face, GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glMateriali( GLenum face, GLenum pname, GLint param ); +GLAPI void GLAPIENTRY glMaterialfv( GLenum face, GLenum pname, const GLfloat *params ); +GLAPI void GLAPIENTRY glMaterialiv( GLenum face, GLenum pname, const GLint *params ); + +GLAPI void GLAPIENTRY glGetMaterialfv( GLenum face, GLenum pname, GLfloat *params ); +GLAPI void GLAPIENTRY glGetMaterialiv( GLenum face, GLenum pname, GLint *params ); + +GLAPI void GLAPIENTRY glColorMaterial( GLenum face, GLenum mode ); + + +/* + * Raster functions + */ + +GLAPI void GLAPIENTRY glPixelZoom( GLfloat xfactor, GLfloat yfactor ); + +GLAPI void GLAPIENTRY glPixelStoref( GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glPixelStorei( GLenum pname, GLint param ); + +GLAPI void GLAPIENTRY glPixelTransferf( GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glPixelTransferi( GLenum pname, GLint param ); + +GLAPI void GLAPIENTRY glPixelMapfv( GLenum map, GLsizei mapsize, + const GLfloat *values ); +GLAPI void GLAPIENTRY glPixelMapuiv( GLenum map, GLsizei mapsize, + const GLuint *values ); +GLAPI void GLAPIENTRY glPixelMapusv( GLenum map, GLsizei mapsize, + const GLushort *values ); + +GLAPI void GLAPIENTRY glGetPixelMapfv( GLenum map, GLfloat *values ); +GLAPI void GLAPIENTRY glGetPixelMapuiv( GLenum map, GLuint *values ); +GLAPI void GLAPIENTRY glGetPixelMapusv( GLenum map, GLushort *values ); + +GLAPI void GLAPIENTRY glBitmap( GLsizei width, GLsizei height, + GLfloat xorig, GLfloat yorig, + GLfloat xmove, GLfloat ymove, + const GLubyte *bitmap ); + +GLAPI void GLAPIENTRY glReadPixels( GLint x, GLint y, + GLsizei width, GLsizei height, + GLenum format, GLenum type, + GLvoid *pixels ); + +GLAPI void GLAPIENTRY glDrawPixels( GLsizei width, GLsizei height, + GLenum format, GLenum type, + const GLvoid *pixels ); + +GLAPI void GLAPIENTRY glCopyPixels( GLint x, GLint y, + GLsizei width, GLsizei height, + GLenum type ); + +/* + * Stenciling + */ + +GLAPI void GLAPIENTRY glStencilFunc( GLenum func, GLint ref, GLuint mask ); + +GLAPI void GLAPIENTRY glStencilMask( GLuint mask ); + +GLAPI void GLAPIENTRY glStencilOp( GLenum fail, GLenum zfail, GLenum zpass ); + +GLAPI void GLAPIENTRY glClearStencil( GLint s ); + + + +/* + * Texture mapping + */ + +GLAPI void GLAPIENTRY glTexGend( GLenum coord, GLenum pname, GLdouble param ); +GLAPI void GLAPIENTRY glTexGenf( GLenum coord, GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glTexGeni( GLenum coord, GLenum pname, GLint param ); + +GLAPI void GLAPIENTRY glTexGendv( GLenum coord, GLenum pname, const GLdouble *params ); +GLAPI void GLAPIENTRY glTexGenfv( GLenum coord, GLenum pname, const GLfloat *params ); +GLAPI void GLAPIENTRY glTexGeniv( GLenum coord, GLenum pname, const GLint *params ); + +GLAPI void GLAPIENTRY glGetTexGendv( GLenum coord, GLenum pname, GLdouble *params ); +GLAPI void GLAPIENTRY glGetTexGenfv( GLenum coord, GLenum pname, GLfloat *params ); +GLAPI void GLAPIENTRY glGetTexGeniv( GLenum coord, GLenum pname, GLint *params ); + + +GLAPI void GLAPIENTRY glTexEnvf( GLenum target, GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glTexEnvi( GLenum target, GLenum pname, GLint param ); + +GLAPI void GLAPIENTRY glTexEnvfv( GLenum target, GLenum pname, const GLfloat *params ); +GLAPI void GLAPIENTRY glTexEnviv( GLenum target, GLenum pname, const GLint *params ); + +GLAPI void GLAPIENTRY glGetTexEnvfv( GLenum target, GLenum pname, GLfloat *params ); +GLAPI void GLAPIENTRY glGetTexEnviv( GLenum target, GLenum pname, GLint *params ); + + +GLAPI void GLAPIENTRY glTexParameterf( GLenum target, GLenum pname, GLfloat param ); +GLAPI void GLAPIENTRY glTexParameteri( GLenum target, GLenum pname, GLint param ); + +GLAPI void GLAPIENTRY glTexParameterfv( GLenum target, GLenum pname, + const GLfloat *params ); +GLAPI void GLAPIENTRY glTexParameteriv( GLenum target, GLenum pname, + const GLint *params ); + +GLAPI void GLAPIENTRY glGetTexParameterfv( GLenum target, + GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetTexParameteriv( GLenum target, + GLenum pname, GLint *params ); + +GLAPI void GLAPIENTRY glGetTexLevelParameterfv( GLenum target, GLint level, + GLenum pname, GLfloat *params ); +GLAPI void GLAPIENTRY glGetTexLevelParameteriv( GLenum target, GLint level, + GLenum pname, GLint *params ); + + +GLAPI void GLAPIENTRY glTexImage1D( GLenum target, GLint level, + GLint internalFormat, + GLsizei width, GLint border, + GLenum format, GLenum type, + const GLvoid *pixels ); + +GLAPI void GLAPIENTRY glTexImage2D( GLenum target, GLint level, + GLint internalFormat, + GLsizei width, GLsizei height, + GLint border, GLenum format, GLenum type, + const GLvoid *pixels ); + +GLAPI void GLAPIENTRY glGetTexImage( GLenum target, GLint level, + GLenum format, GLenum type, + GLvoid *pixels ); + + +/* 1.1 functions */ + +GLAPI void GLAPIENTRY glGenTextures( GLsizei n, GLuint *textures ); + +GLAPI void GLAPIENTRY glDeleteTextures( GLsizei n, const GLuint *textures); + +GLAPI void GLAPIENTRY glBindTexture( GLenum target, GLuint texture ); + +GLAPI void GLAPIENTRY glPrioritizeTextures( GLsizei n, + const GLuint *textures, + const GLclampf *priorities ); + +GLAPI GLboolean GLAPIENTRY glAreTexturesResident( GLsizei n, + const GLuint *textures, + GLboolean *residences ); + +GLAPI GLboolean GLAPIENTRY glIsTexture( GLuint texture ); + + +GLAPI void GLAPIENTRY glTexSubImage1D( GLenum target, GLint level, + GLint xoffset, + GLsizei width, GLenum format, + GLenum type, const GLvoid *pixels ); + + +GLAPI void GLAPIENTRY glTexSubImage2D( GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLsizei width, GLsizei height, + GLenum format, GLenum type, + const GLvoid *pixels ); + + +GLAPI void GLAPIENTRY glCopyTexImage1D( GLenum target, GLint level, + GLenum internalformat, + GLint x, GLint y, + GLsizei width, GLint border ); + + +GLAPI void GLAPIENTRY glCopyTexImage2D( GLenum target, GLint level, + GLenum internalformat, + GLint x, GLint y, + GLsizei width, GLsizei height, + GLint border ); + + +GLAPI void GLAPIENTRY glCopyTexSubImage1D( GLenum target, GLint level, + GLint xoffset, GLint x, GLint y, + GLsizei width ); + + +GLAPI void GLAPIENTRY glCopyTexSubImage2D( GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLint x, GLint y, + GLsizei width, GLsizei height ); + + +/* + * Evaluators + */ + +GLAPI void GLAPIENTRY glMap1d( GLenum target, GLdouble u1, GLdouble u2, + GLint stride, + GLint order, const GLdouble *points ); +GLAPI void GLAPIENTRY glMap1f( GLenum target, GLfloat u1, GLfloat u2, + GLint stride, + GLint order, const GLfloat *points ); + +GLAPI void GLAPIENTRY glMap2d( GLenum target, + GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, + GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, + const GLdouble *points ); +GLAPI void GLAPIENTRY glMap2f( GLenum target, + GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, + GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, + const GLfloat *points ); + +GLAPI void GLAPIENTRY glGetMapdv( GLenum target, GLenum query, GLdouble *v ); +GLAPI void GLAPIENTRY glGetMapfv( GLenum target, GLenum query, GLfloat *v ); +GLAPI void GLAPIENTRY glGetMapiv( GLenum target, GLenum query, GLint *v ); + +GLAPI void GLAPIENTRY glEvalCoord1d( GLdouble u ); +GLAPI void GLAPIENTRY glEvalCoord1f( GLfloat u ); + +GLAPI void GLAPIENTRY glEvalCoord1dv( const GLdouble *u ); +GLAPI void GLAPIENTRY glEvalCoord1fv( const GLfloat *u ); + +GLAPI void GLAPIENTRY glEvalCoord2d( GLdouble u, GLdouble v ); +GLAPI void GLAPIENTRY glEvalCoord2f( GLfloat u, GLfloat v ); + +GLAPI void GLAPIENTRY glEvalCoord2dv( const GLdouble *u ); +GLAPI void GLAPIENTRY glEvalCoord2fv( const GLfloat *u ); + +GLAPI void GLAPIENTRY glMapGrid1d( GLint un, GLdouble u1, GLdouble u2 ); +GLAPI void GLAPIENTRY glMapGrid1f( GLint un, GLfloat u1, GLfloat u2 ); + +GLAPI void GLAPIENTRY glMapGrid2d( GLint un, GLdouble u1, GLdouble u2, + GLint vn, GLdouble v1, GLdouble v2 ); +GLAPI void GLAPIENTRY glMapGrid2f( GLint un, GLfloat u1, GLfloat u2, + GLint vn, GLfloat v1, GLfloat v2 ); + +GLAPI void GLAPIENTRY glEvalPoint1( GLint i ); + +GLAPI void GLAPIENTRY glEvalPoint2( GLint i, GLint j ); + +GLAPI void GLAPIENTRY glEvalMesh1( GLenum mode, GLint i1, GLint i2 ); + +GLAPI void GLAPIENTRY glEvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 ); + + +/* + * Fog + */ + +GLAPI void GLAPIENTRY glFogf( GLenum pname, GLfloat param ); + +GLAPI void GLAPIENTRY glFogi( GLenum pname, GLint param ); + +GLAPI void GLAPIENTRY glFogfv( GLenum pname, const GLfloat *params ); + +GLAPI void GLAPIENTRY glFogiv( GLenum pname, const GLint *params ); + + +/* + * Selection and Feedback + */ + +GLAPI void GLAPIENTRY glFeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer ); + +GLAPI void GLAPIENTRY glPassThrough( GLfloat token ); + +GLAPI void GLAPIENTRY glSelectBuffer( GLsizei size, GLuint *buffer ); + +GLAPI void GLAPIENTRY glInitNames( void ); + +GLAPI void GLAPIENTRY glLoadName( GLuint name ); + +GLAPI void GLAPIENTRY glPushName( GLuint name ); + +GLAPI void GLAPIENTRY glPopName( void ); + + + +/* + * OpenGL 1.2 + */ + +#define GL_RESCALE_NORMAL 0x803A +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#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 0x8033 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#define GL_SINGLE_COLOR 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR 0x81FA +#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_POINT_SIZE_RANGE 0x846D +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#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_TEXTURE_BINDING_3D 0x806A + +GLAPI void GLAPIENTRY glDrawRangeElements( GLenum mode, GLuint start, + GLuint end, GLsizei count, GLenum type, const GLvoid *indices ); + +GLAPI void GLAPIENTRY glTexImage3D( GLenum target, GLint level, + GLint internalFormat, + GLsizei width, GLsizei height, + GLsizei depth, GLint border, + GLenum format, GLenum type, + const GLvoid *pixels ); + +GLAPI void GLAPIENTRY glTexSubImage3D( GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLint zoffset, GLsizei width, + GLsizei height, GLsizei depth, + GLenum format, + GLenum type, const GLvoid *pixels); + +GLAPI void GLAPIENTRY glCopyTexSubImage3D( GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLint zoffset, GLint x, + GLint y, GLsizei width, + GLsizei height ); + +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +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 GLvoid *pixels); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); + + +/* + * GL_ARB_imaging + */ + +#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_COLOR_TABLE 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 +#define GL_PROXY_COLOR_TABLE 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 +#define GL_COLOR_TABLE_SCALE 0x80D6 +#define GL_COLOR_TABLE_BIAS 0x80D7 +#define GL_COLOR_TABLE_FORMAT 0x80D8 +#define GL_COLOR_TABLE_WIDTH 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF +#define GL_CONVOLUTION_1D 0x8010 +#define GL_CONVOLUTION_2D 0x8011 +#define GL_SEPARABLE_2D 0x8012 +#define GL_CONVOLUTION_BORDER_MODE 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS 0x8015 +#define GL_REDUCE 0x8016 +#define GL_CONVOLUTION_FORMAT 0x8017 +#define GL_CONVOLUTION_WIDTH 0x8018 +#define GL_CONVOLUTION_HEIGHT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 +#define GL_CONSTANT_BORDER 0x8151 +#define GL_REPLICATE_BORDER 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR 0x8154 +#define GL_COLOR_MATRIX 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB +#define GL_HISTOGRAM 0x8024 +#define GL_PROXY_HISTOGRAM 0x8025 +#define GL_HISTOGRAM_WIDTH 0x8026 +#define GL_HISTOGRAM_FORMAT 0x8027 +#define GL_HISTOGRAM_RED_SIZE 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C +#define GL_HISTOGRAM_SINK 0x802D +#define GL_MINMAX 0x802E +#define GL_MINMAX_FORMAT 0x802F +#define GL_MINMAX_SINK 0x8030 +#define GL_TABLE_TOO_LARGE 0x8031 +#define GL_BLEND_EQUATION 0x8009 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_FUNC_ADD 0x8006 +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#define GL_BLEND_COLOR 0x8005 + + +GLAPI void GLAPIENTRY glColorTable( GLenum target, GLenum internalformat, + GLsizei width, GLenum format, + GLenum type, const GLvoid *table ); + +GLAPI void GLAPIENTRY glColorSubTable( GLenum target, + GLsizei start, GLsizei count, + GLenum format, GLenum type, + const GLvoid *data ); + +GLAPI void GLAPIENTRY glColorTableParameteriv(GLenum target, GLenum pname, + const GLint *params); + +GLAPI void GLAPIENTRY glColorTableParameterfv(GLenum target, GLenum pname, + const GLfloat *params); + +GLAPI void GLAPIENTRY glCopyColorSubTable( GLenum target, GLsizei start, + GLint x, GLint y, GLsizei width ); + +GLAPI void GLAPIENTRY glCopyColorTable( GLenum target, GLenum internalformat, + GLint x, GLint y, GLsizei width ); + +GLAPI void GLAPIENTRY glGetColorTable( GLenum target, GLenum format, + GLenum type, GLvoid *table ); + +GLAPI void GLAPIENTRY glGetColorTableParameterfv( GLenum target, GLenum pname, + GLfloat *params ); + +GLAPI void GLAPIENTRY glGetColorTableParameteriv( GLenum target, GLenum pname, + GLint *params ); + +GLAPI void GLAPIENTRY glBlendEquation( GLenum mode ); + +GLAPI void GLAPIENTRY glBlendColor( GLclampf red, GLclampf green, + GLclampf blue, GLclampf alpha ); + +GLAPI void GLAPIENTRY glHistogram( GLenum target, GLsizei width, + GLenum internalformat, GLboolean sink ); + +GLAPI void GLAPIENTRY glResetHistogram( GLenum target ); + +GLAPI void GLAPIENTRY glGetHistogram( GLenum target, GLboolean reset, + GLenum format, GLenum type, + GLvoid *values ); + +GLAPI void GLAPIENTRY glGetHistogramParameterfv( GLenum target, GLenum pname, + GLfloat *params ); + +GLAPI void GLAPIENTRY glGetHistogramParameteriv( GLenum target, GLenum pname, + GLint *params ); + +GLAPI void GLAPIENTRY glMinmax( GLenum target, GLenum internalformat, + GLboolean sink ); + +GLAPI void GLAPIENTRY glResetMinmax( GLenum target ); + +GLAPI void GLAPIENTRY glGetMinmax( GLenum target, GLboolean reset, + GLenum format, GLenum types, + GLvoid *values ); + +GLAPI void GLAPIENTRY glGetMinmaxParameterfv( GLenum target, GLenum pname, + GLfloat *params ); + +GLAPI void GLAPIENTRY glGetMinmaxParameteriv( GLenum target, GLenum pname, + GLint *params ); + +GLAPI void GLAPIENTRY glConvolutionFilter1D( GLenum target, + GLenum internalformat, GLsizei width, GLenum format, GLenum type, + const GLvoid *image ); + +GLAPI void GLAPIENTRY glConvolutionFilter2D( GLenum target, + GLenum internalformat, GLsizei width, GLsizei height, GLenum format, + GLenum type, const GLvoid *image ); + +GLAPI void GLAPIENTRY glConvolutionParameterf( GLenum target, GLenum pname, + GLfloat params ); + +GLAPI void GLAPIENTRY glConvolutionParameterfv( GLenum target, GLenum pname, + const GLfloat *params ); + +GLAPI void GLAPIENTRY glConvolutionParameteri( GLenum target, GLenum pname, + GLint params ); + +GLAPI void GLAPIENTRY glConvolutionParameteriv( GLenum target, GLenum pname, + const GLint *params ); + +GLAPI void GLAPIENTRY glCopyConvolutionFilter1D( GLenum target, + GLenum internalformat, GLint x, GLint y, GLsizei width ); + +GLAPI void GLAPIENTRY glCopyConvolutionFilter2D( GLenum target, + GLenum internalformat, GLint x, GLint y, GLsizei width, + GLsizei height); + +GLAPI void GLAPIENTRY glGetConvolutionFilter( GLenum target, GLenum format, + GLenum type, GLvoid *image ); + +GLAPI void GLAPIENTRY glGetConvolutionParameterfv( GLenum target, GLenum pname, + GLfloat *params ); + +GLAPI void GLAPIENTRY glGetConvolutionParameteriv( GLenum target, GLenum pname, + GLint *params ); + +GLAPI void GLAPIENTRY glSeparableFilter2D( GLenum target, + GLenum internalformat, GLsizei width, GLsizei height, GLenum format, + GLenum type, const GLvoid *row, const GLvoid *column ); + +GLAPI void GLAPIENTRY glGetSeparableFilter( GLenum target, GLenum format, + GLenum type, GLvoid *row, GLvoid *column, GLvoid *span ); + + + + +/* + * OpenGL 1.3 + */ + +/* multitexture */ +#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_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_MAX_TEXTURE_UNITS 0x84E2 +/* texture_cube_map */ +#define GL_NORMAL_MAP 0x8511 +#define GL_REFLECTION_MAP 0x8512 +#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 +/* texture_compression */ +#define GL_COMPRESSED_ALPHA 0x84E9 +#define GL_COMPRESSED_LUMINANCE 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB +#define GL_COMPRESSED_INTENSITY 0x84EC +#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 +/* multisample */ +#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_MULTISAMPLE_BIT 0x20000000 +/* transpose_matrix */ +#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 +/* texture_env_combine */ +#define GL_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_SOURCE0_RGB 0x8580 +#define GL_SOURCE1_RGB 0x8581 +#define GL_SOURCE2_RGB 0x8582 +#define GL_SOURCE0_ALPHA 0x8588 +#define GL_SOURCE1_ALPHA 0x8589 +#define GL_SOURCE2_ALPHA 0x858A +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_SUBTRACT 0x84E7 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +/* texture_env_dot3 */ +#define GL_DOT3_RGB 0x86AE +#define GL_DOT3_RGBA 0x86AF +/* texture_border_clamp */ +#define GL_CLAMP_TO_BORDER 0x812D + +GLAPI void GLAPIENTRY glActiveTexture( GLenum texture ); + +GLAPI void GLAPIENTRY glClientActiveTexture( GLenum texture ); + +GLAPI void GLAPIENTRY glCompressedTexImage1D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data ); + +GLAPI void GLAPIENTRY glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ); + +GLAPI void GLAPIENTRY glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data ); + +GLAPI void GLAPIENTRY glCompressedTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data ); + +GLAPI void GLAPIENTRY glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ); + +GLAPI void GLAPIENTRY glCompressedTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data ); + +GLAPI void GLAPIENTRY glGetCompressedTexImage( GLenum target, GLint lod, GLvoid *img ); + +GLAPI void GLAPIENTRY glMultiTexCoord1d( GLenum target, GLdouble s ); + +GLAPI void GLAPIENTRY glMultiTexCoord1dv( GLenum target, const GLdouble *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord1f( GLenum target, GLfloat s ); + +GLAPI void GLAPIENTRY glMultiTexCoord1fv( GLenum target, const GLfloat *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord1i( GLenum target, GLint s ); + +GLAPI void GLAPIENTRY glMultiTexCoord1iv( GLenum target, const GLint *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord1s( GLenum target, GLshort s ); + +GLAPI void GLAPIENTRY glMultiTexCoord1sv( GLenum target, const GLshort *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord2d( GLenum target, GLdouble s, GLdouble t ); + +GLAPI void GLAPIENTRY glMultiTexCoord2dv( GLenum target, const GLdouble *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord2f( GLenum target, GLfloat s, GLfloat t ); + +GLAPI void GLAPIENTRY glMultiTexCoord2fv( GLenum target, const GLfloat *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord2i( GLenum target, GLint s, GLint t ); + +GLAPI void GLAPIENTRY glMultiTexCoord2iv( GLenum target, const GLint *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord2s( GLenum target, GLshort s, GLshort t ); + +GLAPI void GLAPIENTRY glMultiTexCoord2sv( GLenum target, const GLshort *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord3d( GLenum target, GLdouble s, GLdouble t, GLdouble r ); + +GLAPI void GLAPIENTRY glMultiTexCoord3dv( GLenum target, const GLdouble *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord3f( GLenum target, GLfloat s, GLfloat t, GLfloat r ); + +GLAPI void GLAPIENTRY glMultiTexCoord3fv( GLenum target, const GLfloat *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord3i( GLenum target, GLint s, GLint t, GLint r ); + +GLAPI void GLAPIENTRY glMultiTexCoord3iv( GLenum target, const GLint *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord3s( GLenum target, GLshort s, GLshort t, GLshort r ); + +GLAPI void GLAPIENTRY glMultiTexCoord3sv( GLenum target, const GLshort *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord4d( GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q ); + +GLAPI void GLAPIENTRY glMultiTexCoord4dv( GLenum target, const GLdouble *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord4f( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ); + +GLAPI void GLAPIENTRY glMultiTexCoord4fv( GLenum target, const GLfloat *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord4i( GLenum target, GLint s, GLint t, GLint r, GLint q ); + +GLAPI void GLAPIENTRY glMultiTexCoord4iv( GLenum target, const GLint *v ); + +GLAPI void GLAPIENTRY glMultiTexCoord4s( GLenum target, GLshort s, GLshort t, GLshort r, GLshort q ); + +GLAPI void GLAPIENTRY glMultiTexCoord4sv( GLenum target, const GLshort *v ); + + +GLAPI void GLAPIENTRY glLoadTransposeMatrixd( const GLdouble m[16] ); + +GLAPI void GLAPIENTRY glLoadTransposeMatrixf( const GLfloat m[16] ); + +GLAPI void GLAPIENTRY glMultTransposeMatrixd( const GLdouble m[16] ); + +GLAPI void GLAPIENTRY glMultTransposeMatrixf( const GLfloat m[16] ); + +GLAPI void GLAPIENTRY glSampleCoverage( GLclampf value, GLboolean invert ); + + +typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +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 GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img); + + + +/* + * GL_ARB_multitexture (ARB extension 1 and OpenGL 1.2.1) + */ +#ifndef GL_ARB_multitexture +#define GL_ARB_multitexture 1 + +#define GL_TEXTURE0_ARB 0x84C0 +#define GL_TEXTURE1_ARB 0x84C1 +#define GL_TEXTURE2_ARB 0x84C2 +#define GL_TEXTURE3_ARB 0x84C3 +#define GL_TEXTURE4_ARB 0x84C4 +#define GL_TEXTURE5_ARB 0x84C5 +#define GL_TEXTURE6_ARB 0x84C6 +#define GL_TEXTURE7_ARB 0x84C7 +#define GL_TEXTURE8_ARB 0x84C8 +#define GL_TEXTURE9_ARB 0x84C9 +#define GL_TEXTURE10_ARB 0x84CA +#define GL_TEXTURE11_ARB 0x84CB +#define GL_TEXTURE12_ARB 0x84CC +#define GL_TEXTURE13_ARB 0x84CD +#define GL_TEXTURE14_ARB 0x84CE +#define GL_TEXTURE15_ARB 0x84CF +#define GL_TEXTURE16_ARB 0x84D0 +#define GL_TEXTURE17_ARB 0x84D1 +#define GL_TEXTURE18_ARB 0x84D2 +#define GL_TEXTURE19_ARB 0x84D3 +#define GL_TEXTURE20_ARB 0x84D4 +#define GL_TEXTURE21_ARB 0x84D5 +#define GL_TEXTURE22_ARB 0x84D6 +#define GL_TEXTURE23_ARB 0x84D7 +#define GL_TEXTURE24_ARB 0x84D8 +#define GL_TEXTURE25_ARB 0x84D9 +#define GL_TEXTURE26_ARB 0x84DA +#define GL_TEXTURE27_ARB 0x84DB +#define GL_TEXTURE28_ARB 0x84DC +#define GL_TEXTURE29_ARB 0x84DD +#define GL_TEXTURE30_ARB 0x84DE +#define GL_TEXTURE31_ARB 0x84DF +#define GL_ACTIVE_TEXTURE_ARB 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 +#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 + +GLAPI void GLAPIENTRY glActiveTextureARB(GLenum texture); +GLAPI void GLAPIENTRY glClientActiveTextureARB(GLenum texture); +GLAPI void GLAPIENTRY glMultiTexCoord1dARB(GLenum target, GLdouble s); +GLAPI void GLAPIENTRY glMultiTexCoord1dvARB(GLenum target, const GLdouble *v); +GLAPI void GLAPIENTRY glMultiTexCoord1fARB(GLenum target, GLfloat s); +GLAPI void GLAPIENTRY glMultiTexCoord1fvARB(GLenum target, const GLfloat *v); +GLAPI void GLAPIENTRY glMultiTexCoord1iARB(GLenum target, GLint s); +GLAPI void GLAPIENTRY glMultiTexCoord1ivARB(GLenum target, const GLint *v); +GLAPI void GLAPIENTRY glMultiTexCoord1sARB(GLenum target, GLshort s); +GLAPI void GLAPIENTRY glMultiTexCoord1svARB(GLenum target, const GLshort *v); +GLAPI void GLAPIENTRY glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t); +GLAPI void GLAPIENTRY glMultiTexCoord2dvARB(GLenum target, const GLdouble *v); +GLAPI void GLAPIENTRY glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t); +GLAPI void GLAPIENTRY glMultiTexCoord2fvARB(GLenum target, const GLfloat *v); +GLAPI void GLAPIENTRY glMultiTexCoord2iARB(GLenum target, GLint s, GLint t); +GLAPI void GLAPIENTRY glMultiTexCoord2ivARB(GLenum target, const GLint *v); +GLAPI void GLAPIENTRY glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t); +GLAPI void GLAPIENTRY glMultiTexCoord2svARB(GLenum target, const GLshort *v); +GLAPI void GLAPIENTRY glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r); +GLAPI void GLAPIENTRY glMultiTexCoord3dvARB(GLenum target, const GLdouble *v); +GLAPI void GLAPIENTRY glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r); +GLAPI void GLAPIENTRY glMultiTexCoord3fvARB(GLenum target, const GLfloat *v); +GLAPI void GLAPIENTRY glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r); +GLAPI void GLAPIENTRY glMultiTexCoord3ivARB(GLenum target, const GLint *v); +GLAPI void GLAPIENTRY glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r); +GLAPI void GLAPIENTRY glMultiTexCoord3svARB(GLenum target, const GLshort *v); +GLAPI void GLAPIENTRY glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +GLAPI void GLAPIENTRY glMultiTexCoord4dvARB(GLenum target, const GLdouble *v); +GLAPI void GLAPIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +GLAPI void GLAPIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat *v); +GLAPI void GLAPIENTRY glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q); +GLAPI void GLAPIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint *v); +GLAPI void GLAPIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +GLAPI void GLAPIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v); + +typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); + +#endif /* GL_ARB_multitexture */ + + + +/* + * Define this token if you want "old-style" header file behaviour (extensions + * defined in gl.h). Otherwise, extensions will be included from glext.h. + */ +#if !defined(NO_SDL_GLEXT) && !defined(GL_GLEXT_LEGACY) +#include "SDL_opengl_glext.h" +#endif /* GL_GLEXT_LEGACY */ + + + +/********************************************************************** + * Begin system-specific stuff + */ +#if defined(PRAGMA_EXPORT_SUPPORTED) +#pragma export off +#endif + +/* + * End system-specific stuff + **********************************************************************/ + + +#ifdef __cplusplus +} +#endif + +#endif /* __gl_h_ */ + +#endif /* !__IPHONEOS__ */ + +#endif /* SDL_opengl_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_opengl_glext.h b/lib/windows/include/SDL2/SDL_opengl_glext.h new file mode 100644 index 0000000..ff6ad12 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_opengl_glext.h @@ -0,0 +1,13213 @@ +/* SDL modified the include guard to be compatible with Mesa and Apple include guards: + * - Mesa uses: __gl_glext_h_ + * - Apple uses: __glext_h_ */ +#if !defined(__glext_h_) && !defined(__gl_glext_h_) +#define __glext_h_ 1 +#define __gl_glext_h_ 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright 2013-2020 The Khronos Group Inc. +** SPDX-License-Identifier: MIT +** +** This header is generated from the Khronos OpenGL / OpenGL ES XML +** API Registry. The current version of the Registry, generator scripts +** used to make the header, and the header can be found at +** https://github.com/KhronosGroup/OpenGL-Registry +*/ + +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN 1 +#endif +#include +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif +#ifndef GLAPI +#define GLAPI extern +#endif + +#define GL_GLEXT_VERSION 20220530 + +/*#include */ +#ifndef __khrplatform_h_ +#define __khrplatform_h_ + +/* +** Copyright (c) 2008-2018 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* Khronos platform-specific types and definitions. + * + * The master copy of khrplatform.h is maintained in the Khronos EGL + * Registry repository at https://github.com/KhronosGroup/EGL-Registry + * The last semantic modification to khrplatform.h was at commit ID: + * 67a3e0864c2d75ea5287b9f3d2eb74a745936692 + * + * Adopters may modify this file to suit their platform. Adopters are + * encouraged to submit platform specific modifications to the Khronos + * group so that they can be included in future versions of this file. + * Please submit changes by filing pull requests or issues on + * the EGL Registry repository linked above. + * + * + * See the Implementer's Guidelines for information about where this file + * should be located on your system and for more details of its use: + * http://www.khronos.org/registry/implementers_guide.pdf + * + * This file should be included as + * #include + * by Khronos client API header files that use its types and defines. + * + * The types in khrplatform.h should only be used to define API-specific types. + * + * Types defined in khrplatform.h: + * khronos_int8_t signed 8 bit + * khronos_uint8_t unsigned 8 bit + * khronos_int16_t signed 16 bit + * khronos_uint16_t unsigned 16 bit + * khronos_int32_t signed 32 bit + * khronos_uint32_t unsigned 32 bit + * khronos_int64_t signed 64 bit + * khronos_uint64_t unsigned 64 bit + * khronos_intptr_t signed same number of bits as a pointer + * khronos_uintptr_t unsigned same number of bits as a pointer + * khronos_ssize_t signed size + * khronos_usize_t unsigned size + * khronos_float_t signed 32 bit floating point + * khronos_time_ns_t unsigned 64 bit time in nanoseconds + * khronos_utime_nanoseconds_t unsigned time interval or absolute time in + * nanoseconds + * khronos_stime_nanoseconds_t signed time interval in nanoseconds + * khronos_boolean_enum_t enumerated boolean type. This should + * only be used as a base type when a client API's boolean type is + * an enum. Client APIs which use an integer or other type for + * booleans cannot use this as the base type for their boolean. + * + * Tokens defined in khrplatform.h: + * + * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. + * + * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. + * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. + * + * Calling convention macros defined in this file: + * KHRONOS_APICALL + * KHRONOS_APIENTRY + * KHRONOS_APIATTRIBUTES + * + * These may be used in function prototypes as: + * + * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( + * int arg1, + * int arg2) KHRONOS_APIATTRIBUTES; + */ + +#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC) +# define KHRONOS_STATIC 1 +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APICALL + *------------------------------------------------------------------------- + * This precedes the return type of the function in the function prototype. + */ +#if defined(KHRONOS_STATIC) + /* If the preprocessor constant KHRONOS_STATIC is defined, make the + * header compatible with static linking. */ +# define KHRONOS_APICALL +#elif defined(_WIN32) +# define KHRONOS_APICALL __declspec(dllimport) +#elif defined (__SYMBIAN32__) +# define KHRONOS_APICALL IMPORT_C +#elif defined(__ANDROID__) +# define KHRONOS_APICALL __attribute__((visibility("default"))) +#else +# define KHRONOS_APICALL +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIENTRY + *------------------------------------------------------------------------- + * This follows the return type of the function and precedes the function + * name in the function prototype. + */ +#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) + /* Win32 but not WinCE */ +# define KHRONOS_APIENTRY __stdcall +#else +# define KHRONOS_APIENTRY +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIATTRIBUTES + *------------------------------------------------------------------------- + * This follows the closing parenthesis of the function prototype arguments. + */ +#if defined (__ARMCC_2__) +#define KHRONOS_APIATTRIBUTES __softfp +#else +#define KHRONOS_APIATTRIBUTES +#endif + +/*------------------------------------------------------------------------- + * basic type definitions + *-----------------------------------------------------------------------*/ +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) + + +/* + * Using + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 +/* + * To support platform where unsigned long cannot be used interchangeably with + * inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t. + * Ideally, we could just use (u)intptr_t everywhere, but this could result in + * ABI breakage if khronos_uintptr_t is changed from unsigned long to + * unsigned long long or similar (this results in different C++ name mangling). + * To avoid changes for existing platforms, we restrict usage of intptr_t to + * platforms where the size of a pointer is larger than the size of long. + */ +#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__) +#if __SIZEOF_POINTER__ > __SIZEOF_LONG__ +#define KHRONOS_USE_INTPTR_T +#endif +#endif + +#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 KHRONOS_USE_INTPTR_T +typedef intptr_t khronos_intptr_t; +typedef uintptr_t khronos_uintptr_t; +#elif defined(_WIN64) +typedef signed long long int khronos_intptr_t; +typedef unsigned long long int khronos_uintptr_t; +#else +typedef signed long int khronos_intptr_t; +typedef unsigned long int khronos_uintptr_t; +#endif + +#if defined(_WIN64) +typedef signed long long int khronos_ssize_t; +typedef unsigned long long int khronos_usize_t; +#else +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_ */ + +/* Generated C header for: + * API: gl + * Profile: compatibility + * Versions considered: .* + * Versions emitted: 1\.[2-9]|[234]\.[0-9] + * Default extensions included: gl + * Additional extensions included: _nomatch_^ + * Extensions removed: _nomatch_^ + */ + +#ifndef GL_VERSION_1_2 +#define GL_VERSION_1_2 1 +#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_RESCALE_NORMAL 0x803A +#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#define GL_SINGLE_COLOR 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR 0x81FA +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); +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); +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); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); +GLAPI void APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif +#endif /* GL_VERSION_1_2 */ + +#ifndef GL_VERSION_1_3 +#define GL_VERSION_1_3 1 +#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_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_MAX_TEXTURE_UNITS 0x84E2 +#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 +#define GL_MULTISAMPLE_BIT 0x20000000 +#define GL_NORMAL_MAP 0x8511 +#define GL_REFLECTION_MAP 0x8512 +#define GL_COMPRESSED_ALPHA 0x84E9 +#define GL_COMPRESSED_LUMINANCE 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB +#define GL_COMPRESSED_INTENSITY 0x84EC +#define GL_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_SOURCE0_RGB 0x8580 +#define GL_SOURCE1_RGB 0x8581 +#define GL_SOURCE2_RGB 0x8582 +#define GL_SOURCE0_ALPHA 0x8588 +#define GL_SOURCE1_ALPHA 0x8589 +#define GL_SOURCE2_ALPHA 0x858A +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_SUBTRACT 0x84E7 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +#define GL_DOT3_RGB 0x86AE +#define GL_DOT3_RGBA 0x86AF +typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); +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); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, void *img); +typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glActiveTexture (GLenum texture); +GLAPI void APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); +GLAPI void APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glGetCompressedTexImage (GLenum target, GLint level, void *img); +GLAPI void APIENTRY glClientActiveTexture (GLenum texture); +GLAPI void APIENTRY glMultiTexCoord1d (GLenum target, GLdouble s); +GLAPI void APIENTRY glMultiTexCoord1dv (GLenum target, const GLdouble *v); +GLAPI void APIENTRY glMultiTexCoord1f (GLenum target, GLfloat s); +GLAPI void APIENTRY glMultiTexCoord1fv (GLenum target, const GLfloat *v); +GLAPI void APIENTRY glMultiTexCoord1i (GLenum target, GLint s); +GLAPI void APIENTRY glMultiTexCoord1iv (GLenum target, const GLint *v); +GLAPI void APIENTRY glMultiTexCoord1s (GLenum target, GLshort s); +GLAPI void APIENTRY glMultiTexCoord1sv (GLenum target, const GLshort *v); +GLAPI void APIENTRY glMultiTexCoord2d (GLenum target, GLdouble s, GLdouble t); +GLAPI void APIENTRY glMultiTexCoord2dv (GLenum target, const GLdouble *v); +GLAPI void APIENTRY glMultiTexCoord2f (GLenum target, GLfloat s, GLfloat t); +GLAPI void APIENTRY glMultiTexCoord2fv (GLenum target, const GLfloat *v); +GLAPI void APIENTRY glMultiTexCoord2i (GLenum target, GLint s, GLint t); +GLAPI void APIENTRY glMultiTexCoord2iv (GLenum target, const GLint *v); +GLAPI void APIENTRY glMultiTexCoord2s (GLenum target, GLshort s, GLshort t); +GLAPI void APIENTRY glMultiTexCoord2sv (GLenum target, const GLshort *v); +GLAPI void APIENTRY glMultiTexCoord3d (GLenum target, GLdouble s, GLdouble t, GLdouble r); +GLAPI void APIENTRY glMultiTexCoord3dv (GLenum target, const GLdouble *v); +GLAPI void APIENTRY glMultiTexCoord3f (GLenum target, GLfloat s, GLfloat t, GLfloat r); +GLAPI void APIENTRY glMultiTexCoord3fv (GLenum target, const GLfloat *v); +GLAPI void APIENTRY glMultiTexCoord3i (GLenum target, GLint s, GLint t, GLint r); +GLAPI void APIENTRY glMultiTexCoord3iv (GLenum target, const GLint *v); +GLAPI void APIENTRY glMultiTexCoord3s (GLenum target, GLshort s, GLshort t, GLshort r); +GLAPI void APIENTRY glMultiTexCoord3sv (GLenum target, const GLshort *v); +GLAPI void APIENTRY glMultiTexCoord4d (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +GLAPI void APIENTRY glMultiTexCoord4dv (GLenum target, const GLdouble *v); +GLAPI void APIENTRY glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +GLAPI void APIENTRY glMultiTexCoord4fv (GLenum target, const GLfloat *v); +GLAPI void APIENTRY glMultiTexCoord4i (GLenum target, GLint s, GLint t, GLint r, GLint q); +GLAPI void APIENTRY glMultiTexCoord4iv (GLenum target, const GLint *v); +GLAPI void APIENTRY glMultiTexCoord4s (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +GLAPI void APIENTRY glMultiTexCoord4sv (GLenum target, const GLshort *v); +GLAPI void APIENTRY glLoadTransposeMatrixf (const GLfloat *m); +GLAPI void APIENTRY glLoadTransposeMatrixd (const GLdouble *m); +GLAPI void APIENTRY glMultTransposeMatrixf (const GLfloat *m); +GLAPI void APIENTRY glMultTransposeMatrixd (const GLdouble *m); +#endif +#endif /* GL_VERSION_1_3 */ + +#ifndef GL_VERSION_1_4 +#define GL_VERSION_1_4 1 +#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_POINT_SIZE_MIN 0x8126 +#define GL_POINT_SIZE_MAX 0x8127 +#define GL_POINT_DISTANCE_ATTENUATION 0x8129 +#define GL_GENERATE_MIPMAP 0x8191 +#define GL_GENERATE_MIPMAP_HINT 0x8192 +#define GL_FOG_COORDINATE_SOURCE 0x8450 +#define GL_FOG_COORDINATE 0x8451 +#define GL_FRAGMENT_DEPTH 0x8452 +#define GL_CURRENT_FOG_COORDINATE 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 +#define GL_FOG_COORDINATE_ARRAY 0x8457 +#define GL_COLOR_SUM 0x8458 +#define GL_CURRENT_SECONDARY_COLOR 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D +#define GL_SECONDARY_COLOR_ARRAY 0x845E +#define GL_TEXTURE_FILTER_CONTROL 0x8500 +#define GL_DEPTH_TEXTURE_MODE 0x884B +#define GL_COMPARE_R_TO_TEXTURE 0x884E +#define GL_BLEND_COLOR 0x8005 +#define GL_BLEND_EQUATION 0x8009 +#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_FUNC_ADD 0x8006 +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#define GL_FUNC_SUBTRACT 0x800A +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLFOGCOORDFPROC) (GLfloat coord); +typedef void (APIENTRYP PFNGLFOGCOORDFVPROC) (const GLfloat *coord); +typedef void (APIENTRYP PFNGLFOGCOORDDPROC) (GLdouble coord); +typedef void (APIENTRYP PFNGLFOGCOORDDVPROC) (const GLdouble *coord); +typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); +typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +GLAPI void APIENTRY glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); +GLAPI void APIENTRY glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount); +GLAPI void APIENTRY glPointParameterf (GLenum pname, GLfloat param); +GLAPI void APIENTRY glPointParameterfv (GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glPointParameteri (GLenum pname, GLint param); +GLAPI void APIENTRY glPointParameteriv (GLenum pname, const GLint *params); +GLAPI void APIENTRY glFogCoordf (GLfloat coord); +GLAPI void APIENTRY glFogCoordfv (const GLfloat *coord); +GLAPI void APIENTRY glFogCoordd (GLdouble coord); +GLAPI void APIENTRY glFogCoorddv (const GLdouble *coord); +GLAPI void APIENTRY glFogCoordPointer (GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glSecondaryColor3b (GLbyte red, GLbyte green, GLbyte blue); +GLAPI void APIENTRY glSecondaryColor3bv (const GLbyte *v); +GLAPI void APIENTRY glSecondaryColor3d (GLdouble red, GLdouble green, GLdouble blue); +GLAPI void APIENTRY glSecondaryColor3dv (const GLdouble *v); +GLAPI void APIENTRY glSecondaryColor3f (GLfloat red, GLfloat green, GLfloat blue); +GLAPI void APIENTRY glSecondaryColor3fv (const GLfloat *v); +GLAPI void APIENTRY glSecondaryColor3i (GLint red, GLint green, GLint blue); +GLAPI void APIENTRY glSecondaryColor3iv (const GLint *v); +GLAPI void APIENTRY glSecondaryColor3s (GLshort red, GLshort green, GLshort blue); +GLAPI void APIENTRY glSecondaryColor3sv (const GLshort *v); +GLAPI void APIENTRY glSecondaryColor3ub (GLubyte red, GLubyte green, GLubyte blue); +GLAPI void APIENTRY glSecondaryColor3ubv (const GLubyte *v); +GLAPI void APIENTRY glSecondaryColor3ui (GLuint red, GLuint green, GLuint blue); +GLAPI void APIENTRY glSecondaryColor3uiv (const GLuint *v); +GLAPI void APIENTRY glSecondaryColor3us (GLushort red, GLushort green, GLushort blue); +GLAPI void APIENTRY glSecondaryColor3usv (const GLushort *v); +GLAPI void APIENTRY glSecondaryColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glWindowPos2d (GLdouble x, GLdouble y); +GLAPI void APIENTRY glWindowPos2dv (const GLdouble *v); +GLAPI void APIENTRY glWindowPos2f (GLfloat x, GLfloat y); +GLAPI void APIENTRY glWindowPos2fv (const GLfloat *v); +GLAPI void APIENTRY glWindowPos2i (GLint x, GLint y); +GLAPI void APIENTRY glWindowPos2iv (const GLint *v); +GLAPI void APIENTRY glWindowPos2s (GLshort x, GLshort y); +GLAPI void APIENTRY glWindowPos2sv (const GLshort *v); +GLAPI void APIENTRY glWindowPos3d (GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glWindowPos3dv (const GLdouble *v); +GLAPI void APIENTRY glWindowPos3f (GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glWindowPos3fv (const GLfloat *v); +GLAPI void APIENTRY glWindowPos3i (GLint x, GLint y, GLint z); +GLAPI void APIENTRY glWindowPos3iv (const GLint *v); +GLAPI void APIENTRY glWindowPos3s (GLshort x, GLshort y, GLshort z); +GLAPI void APIENTRY glWindowPos3sv (const GLshort *v); +GLAPI void APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI void APIENTRY glBlendEquation (GLenum mode); +#endif +#endif /* GL_VERSION_1_4 */ + +#ifndef GL_VERSION_1_5 +#define GL_VERSION_1_5 1 +typedef khronos_ssize_t GLsizeiptr; +typedef khronos_intptr_t GLintptr; +#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_VERTEX_ARRAY_BUFFER_BINDING 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E +#define GL_FOG_COORD_SRC 0x8450 +#define GL_FOG_COORD 0x8451 +#define GL_CURRENT_FOG_COORD 0x8453 +#define GL_FOG_COORD_ARRAY_TYPE 0x8454 +#define GL_FOG_COORD_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORD_ARRAY_POINTER 0x8456 +#define GL_FOG_COORD_ARRAY 0x8457 +#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D +#define GL_SRC0_RGB 0x8580 +#define GL_SRC1_RGB 0x8581 +#define GL_SRC2_RGB 0x8582 +#define GL_SRC0_ALPHA 0x8588 +#define GL_SRC2_ALPHA 0x858A +typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); +typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); +typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); +typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); +typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); +typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, void *data); +typedef void *(APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); +typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenQueries (GLsizei n, GLuint *ids); +GLAPI void APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); +GLAPI GLboolean APIENTRY glIsQuery (GLuint id); +GLAPI void APIENTRY glBeginQuery (GLenum target, GLuint id); +GLAPI void APIENTRY glEndQuery (GLenum target); +GLAPI void APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetQueryObjectiv (GLuint id, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); +GLAPI void APIENTRY glBindBuffer (GLenum target, GLuint buffer); +GLAPI void APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); +GLAPI void APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); +GLAPI GLboolean APIENTRY glIsBuffer (GLuint buffer); +GLAPI void APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); +GLAPI void APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); +GLAPI void APIENTRY glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, void *data); +GLAPI void *APIENTRY glMapBuffer (GLenum target, GLenum access); +GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum target); +GLAPI void APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); +#endif +#endif /* GL_VERSION_1_5 */ + +#ifndef GL_VERSION_2_0 +#define GL_VERSION_2_0 1 +typedef char GLchar; +#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 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_VERTEX_PROGRAM_TWO_SIDE 0x8643 +#define GL_POINT_SPRITE 0x8861 +#define GL_COORD_REPLACE 0x8862 +#define GL_MAX_TEXTURE_COORDS 0x8871 +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); +typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); +typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); +typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); +typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); +typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void); +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); +typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); +typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); +typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); +typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader); +typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); +typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); +typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); +GLAPI void APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); +GLAPI void APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +GLAPI void APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); +GLAPI void APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); +GLAPI void APIENTRY glAttachShader (GLuint program, GLuint shader); +GLAPI void APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); +GLAPI void APIENTRY glCompileShader (GLuint shader); +GLAPI GLuint APIENTRY glCreateProgram (void); +GLAPI GLuint APIENTRY glCreateShader (GLenum type); +GLAPI void APIENTRY glDeleteProgram (GLuint program); +GLAPI void APIENTRY glDeleteShader (GLuint shader); +GLAPI void APIENTRY glDetachShader (GLuint program, GLuint shader); +GLAPI void APIENTRY glDisableVertexAttribArray (GLuint index); +GLAPI void APIENTRY glEnableVertexAttribArray (GLuint index); +GLAPI void APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +GLAPI void APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +GLAPI void APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +GLAPI GLint APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); +GLAPI void APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GLAPI void APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GLAPI void APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +GLAPI GLint APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); +GLAPI void APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); +GLAPI void APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); +GLAPI void APIENTRY glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble *params); +GLAPI void APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); +GLAPI GLboolean APIENTRY glIsProgram (GLuint program); +GLAPI GLboolean APIENTRY glIsShader (GLuint shader); +GLAPI void APIENTRY glLinkProgram (GLuint program); +GLAPI void APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); +GLAPI void APIENTRY glUseProgram (GLuint program); +GLAPI void APIENTRY glUniform1f (GLint location, GLfloat v0); +GLAPI void APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); +GLAPI void APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GLAPI void APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GLAPI void APIENTRY glUniform1i (GLint location, GLint v0); +GLAPI void APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); +GLAPI void APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); +GLAPI void APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GLAPI void APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glValidateProgram (GLuint program); +GLAPI void APIENTRY glVertexAttrib1d (GLuint index, GLdouble x); +GLAPI void APIENTRY glVertexAttrib1dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); +GLAPI void APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib1s (GLuint index, GLshort x); +GLAPI void APIENTRY glVertexAttrib1sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y); +GLAPI void APIENTRY glVertexAttrib2dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); +GLAPI void APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib2s (GLuint index, GLshort x, GLshort y); +GLAPI void APIENTRY glVertexAttrib2sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glVertexAttrib3dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z); +GLAPI void APIENTRY glVertexAttrib3sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttrib4Niv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint index, const GLushort *v); +GLAPI void APIENTRY glVertexAttrib4bv (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glVertexAttrib4dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib4iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void APIENTRY glVertexAttrib4sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4ubv (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttrib4uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttrib4usv (GLuint index, const GLushort *v); +GLAPI void APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); +#endif +#endif /* GL_VERSION_2_0 */ + +#ifndef GL_VERSION_2_1 +#define GL_VERSION_2_1 1 +#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_CURRENT_RASTER_SECONDARY_COLOR 0x845F +#define GL_SLUMINANCE_ALPHA 0x8C44 +#define GL_SLUMINANCE8_ALPHA8 0x8C45 +#define GL_SLUMINANCE 0x8C46 +#define GL_SLUMINANCE8 0x8C47 +#define GL_COMPRESSED_SLUMINANCE 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#endif +#endif /* GL_VERSION_2_1 */ + +#ifndef GL_VERSION_3_0 +#define GL_VERSION_3_0 1 +typedef khronos_uint16_t GLhalf; +#define GL_COMPARE_REF_TO_TEXTURE 0x884E +#define GL_CLIP_DISTANCE0 0x3000 +#define GL_CLIP_DISTANCE1 0x3001 +#define GL_CLIP_DISTANCE2 0x3002 +#define GL_CLIP_DISTANCE3 0x3003 +#define GL_CLIP_DISTANCE4 0x3004 +#define GL_CLIP_DISTANCE5 0x3005 +#define GL_CLIP_DISTANCE6 0x3006 +#define GL_CLIP_DISTANCE7 0x3007 +#define GL_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_ATTACHMENT0 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_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_COLOR_ATTACHMENT16 0x8CF0 +#define GL_COLOR_ATTACHMENT17 0x8CF1 +#define GL_COLOR_ATTACHMENT18 0x8CF2 +#define GL_COLOR_ATTACHMENT19 0x8CF3 +#define GL_COLOR_ATTACHMENT20 0x8CF4 +#define GL_COLOR_ATTACHMENT21 0x8CF5 +#define GL_COLOR_ATTACHMENT22 0x8CF6 +#define GL_COLOR_ATTACHMENT23 0x8CF7 +#define GL_COLOR_ATTACHMENT24 0x8CF8 +#define GL_COLOR_ATTACHMENT25 0x8CF9 +#define GL_COLOR_ATTACHMENT26 0x8CFA +#define GL_COLOR_ATTACHMENT27 0x8CFB +#define GL_COLOR_ATTACHMENT28 0x8CFC +#define GL_COLOR_ATTACHMENT29 0x8CFD +#define GL_COLOR_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_TEXTURE_LUMINANCE_TYPE 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 +#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_CLAMP_VERTEX_COLOR 0x891A +#define GL_CLAMP_FRAGMENT_COLOR 0x891B +#define GL_ALPHA_INTEGER 0x8D97 +typedef void (APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); +typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); +typedef void (APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index); +typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); +typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); +typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp); +typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode); +typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC) (void); +typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +typedef const GLubyte *(APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); +typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); +typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); +typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); +typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); +typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); +typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); +typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void *(APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); +typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); +typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); +typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); +typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +GLAPI void APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); +GLAPI void APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); +GLAPI void APIENTRY glEnablei (GLenum target, GLuint index); +GLAPI void APIENTRY glDisablei (GLenum target, GLuint index); +GLAPI GLboolean APIENTRY glIsEnabledi (GLenum target, GLuint index); +GLAPI void APIENTRY glBeginTransformFeedback (GLenum primitiveMode); +GLAPI void APIENTRY glEndTransformFeedback (void); +GLAPI void APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI void APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); +GLAPI void APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); +GLAPI void APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +GLAPI void APIENTRY glClampColor (GLenum target, GLenum clamp); +GLAPI void APIENTRY glBeginConditionalRender (GLuint id, GLenum mode); +GLAPI void APIENTRY glEndConditionalRender (void); +GLAPI void APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); +GLAPI void APIENTRY glVertexAttribI1i (GLuint index, GLint x); +GLAPI void APIENTRY glVertexAttribI2i (GLuint index, GLint x, GLint y); +GLAPI void APIENTRY glVertexAttribI3i (GLuint index, GLint x, GLint y, GLint z); +GLAPI void APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); +GLAPI void APIENTRY glVertexAttribI1ui (GLuint index, GLuint x); +GLAPI void APIENTRY glVertexAttribI2ui (GLuint index, GLuint x, GLuint y); +GLAPI void APIENTRY glVertexAttribI3ui (GLuint index, GLuint x, GLuint y, GLuint z); +GLAPI void APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +GLAPI void APIENTRY glVertexAttribI1iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI2iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI3iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI1uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI2uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI3uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI4bv (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttribI4sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttribI4ubv (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttribI4usv (GLuint index, const GLushort *v); +GLAPI void APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); +GLAPI void APIENTRY glBindFragDataLocation (GLuint program, GLuint color, const GLchar *name); +GLAPI GLint APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); +GLAPI void APIENTRY glUniform1ui (GLint location, GLuint v0); +GLAPI void APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); +GLAPI void APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); +GLAPI void APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +GLAPI void APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glTexParameterIiv (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params); +GLAPI void APIENTRY glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params); +GLAPI void APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); +GLAPI void APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); +GLAPI void APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); +GLAPI void APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +GLAPI const GLubyte *APIENTRY glGetStringi (GLenum name, GLuint index); +GLAPI GLboolean APIENTRY glIsRenderbuffer (GLuint renderbuffer); +GLAPI void APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); +GLAPI void APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); +GLAPI void APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); +GLAPI void APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI GLboolean APIENTRY glIsFramebuffer (GLuint framebuffer); +GLAPI void APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); +GLAPI void APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); +GLAPI void APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); +GLAPI GLenum APIENTRY glCheckFramebufferStatus (GLenum target); +GLAPI void APIENTRY glFramebufferTexture1D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI void APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI void APIENTRY glFramebufferTexture3D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +GLAPI void APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +GLAPI void APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); +GLAPI void APIENTRY glGenerateMipmap (GLenum target); +GLAPI void APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +GLAPI void APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +GLAPI void *APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +GLAPI void APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); +GLAPI void APIENTRY glBindVertexArray (GLuint array); +GLAPI void APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); +GLAPI void APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); +GLAPI GLboolean APIENTRY glIsVertexArray (GLuint array); +#endif +#endif /* GL_VERSION_3_0 */ + +#ifndef GL_VERSION_3_1 +#define GL_VERSION_3_1 1 +#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 0xFFFFFFFFu +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); +typedef void (APIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer); +typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint index); +typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); +typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); +typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); +GLAPI void APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); +GLAPI void APIENTRY glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer); +GLAPI void APIENTRY glPrimitiveRestartIndex (GLuint index); +GLAPI void APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +GLAPI void APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); +GLAPI void APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetActiveUniformName (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); +GLAPI GLuint APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); +GLAPI void APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); +GLAPI void APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); +#endif +#endif /* GL_VERSION_3_1 */ + +#ifndef GL_VERSION_3_2 +#define GL_VERSION_3_2 1 +typedef struct __GLsync *GLsync; +typedef khronos_uint64_t GLuint64; +typedef khronos_int64_t GLint64; +#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 0xFFFFFFFFFFFFFFFFull +#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 +typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); +typedef void (APIENTRYP PFNGLPROVOKINGVERTEXPROC) (GLenum mode); +typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); +typedef GLboolean (APIENTRYP PFNGLISSYNCPROC) (GLsync sync); +typedef void (APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); +typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); +typedef void (APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); +typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); +typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); +GLAPI void APIENTRY glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); +GLAPI void APIENTRY glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); +GLAPI void APIENTRY glMultiDrawElementsBaseVertex (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); +GLAPI void APIENTRY glProvokingVertex (GLenum mode); +GLAPI GLsync APIENTRY glFenceSync (GLenum condition, GLbitfield flags); +GLAPI GLboolean APIENTRY glIsSync (GLsync sync); +GLAPI void APIENTRY glDeleteSync (GLsync sync); +GLAPI GLenum APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); +GLAPI void APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); +GLAPI void APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); +GLAPI void APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); +GLAPI void APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); +GLAPI void APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); +GLAPI void APIENTRY glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level); +GLAPI void APIENTRY glTexImage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glTexImage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); +GLAPI void APIENTRY glSampleMaski (GLuint maskNumber, GLbitfield mask); +#endif +#endif /* GL_VERSION_3_2 */ + +#ifndef GL_VERSION_3_3 +#define GL_VERSION_3_3 1 +#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 +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); +typedef void (APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); +typedef GLboolean (APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); +typedef void (APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64 *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64 *params); +typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint *value); +typedef void (APIENTRYP PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords); +typedef void (APIENTRYP PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint *coords); +typedef void (APIENTRYP PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords); +typedef void (APIENTRYP PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint *coords); +typedef void (APIENTRYP PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords); +typedef void (APIENTRYP PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint *coords); +typedef void (APIENTRYP PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords); +typedef void (APIENTRYP PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); +typedef void (APIENTRYP PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords); +typedef void (APIENTRYP PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint *coords); +typedef void (APIENTRYP PFNGLCOLORP3UIPROC) (GLenum type, GLuint color); +typedef void (APIENTRYP PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint *color); +typedef void (APIENTRYP PFNGLCOLORP4UIPROC) (GLenum type, GLuint color); +typedef void (APIENTRYP PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint *color); +typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color); +typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint *color); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindFragDataLocationIndexed (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); +GLAPI GLint APIENTRY glGetFragDataIndex (GLuint program, const GLchar *name); +GLAPI void APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); +GLAPI void APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); +GLAPI GLboolean APIENTRY glIsSampler (GLuint sampler); +GLAPI void APIENTRY glBindSampler (GLuint unit, GLuint sampler); +GLAPI void APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); +GLAPI void APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); +GLAPI void APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); +GLAPI void APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); +GLAPI void APIENTRY glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param); +GLAPI void APIENTRY glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param); +GLAPI void APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params); +GLAPI void APIENTRY glQueryCounter (GLuint id, GLenum target); +GLAPI void APIENTRY glGetQueryObjecti64v (GLuint id, GLenum pname, GLint64 *params); +GLAPI void APIENTRY glGetQueryObjectui64v (GLuint id, GLenum pname, GLuint64 *params); +GLAPI void APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); +GLAPI void APIENTRY glVertexAttribP1ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP1uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI void APIENTRY glVertexAttribP2ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP2uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI void APIENTRY glVertexAttribP3ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP3uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI void APIENTRY glVertexAttribP4ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP4uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI void APIENTRY glVertexP2ui (GLenum type, GLuint value); +GLAPI void APIENTRY glVertexP2uiv (GLenum type, const GLuint *value); +GLAPI void APIENTRY glVertexP3ui (GLenum type, GLuint value); +GLAPI void APIENTRY glVertexP3uiv (GLenum type, const GLuint *value); +GLAPI void APIENTRY glVertexP4ui (GLenum type, GLuint value); +GLAPI void APIENTRY glVertexP4uiv (GLenum type, const GLuint *value); +GLAPI void APIENTRY glTexCoordP1ui (GLenum type, GLuint coords); +GLAPI void APIENTRY glTexCoordP1uiv (GLenum type, const GLuint *coords); +GLAPI void APIENTRY glTexCoordP2ui (GLenum type, GLuint coords); +GLAPI void APIENTRY glTexCoordP2uiv (GLenum type, const GLuint *coords); +GLAPI void APIENTRY glTexCoordP3ui (GLenum type, GLuint coords); +GLAPI void APIENTRY glTexCoordP3uiv (GLenum type, const GLuint *coords); +GLAPI void APIENTRY glTexCoordP4ui (GLenum type, GLuint coords); +GLAPI void APIENTRY glTexCoordP4uiv (GLenum type, const GLuint *coords); +GLAPI void APIENTRY glMultiTexCoordP1ui (GLenum texture, GLenum type, GLuint coords); +GLAPI void APIENTRY glMultiTexCoordP1uiv (GLenum texture, GLenum type, const GLuint *coords); +GLAPI void APIENTRY glMultiTexCoordP2ui (GLenum texture, GLenum type, GLuint coords); +GLAPI void APIENTRY glMultiTexCoordP2uiv (GLenum texture, GLenum type, const GLuint *coords); +GLAPI void APIENTRY glMultiTexCoordP3ui (GLenum texture, GLenum type, GLuint coords); +GLAPI void APIENTRY glMultiTexCoordP3uiv (GLenum texture, GLenum type, const GLuint *coords); +GLAPI void APIENTRY glMultiTexCoordP4ui (GLenum texture, GLenum type, GLuint coords); +GLAPI void APIENTRY glMultiTexCoordP4uiv (GLenum texture, GLenum type, const GLuint *coords); +GLAPI void APIENTRY glNormalP3ui (GLenum type, GLuint coords); +GLAPI void APIENTRY glNormalP3uiv (GLenum type, const GLuint *coords); +GLAPI void APIENTRY glColorP3ui (GLenum type, GLuint color); +GLAPI void APIENTRY glColorP3uiv (GLenum type, const GLuint *color); +GLAPI void APIENTRY glColorP4ui (GLenum type, GLuint color); +GLAPI void APIENTRY glColorP4uiv (GLenum type, const GLuint *color); +GLAPI void APIENTRY glSecondaryColorP3ui (GLenum type, GLuint color); +GLAPI void APIENTRY glSecondaryColorP3uiv (GLenum type, const GLuint *color); +#endif +#endif /* GL_VERSION_3_3 */ + +#ifndef GL_VERSION_4_0 +#define GL_VERSION_4_0 1 +#define GL_SAMPLE_SHADING 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F +#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F +#define GL_DRAW_INDIRECT_BUFFER 0x8F3F +#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 +#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C +#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D +#define GL_MAX_VERTEX_STREAMS 0x8E71 +#define GL_DOUBLE_VEC2 0x8FFC +#define GL_DOUBLE_VEC3 0x8FFD +#define GL_DOUBLE_VEC4 0x8FFE +#define GL_DOUBLE_MAT2 0x8F46 +#define GL_DOUBLE_MAT3 0x8F47 +#define GL_DOUBLE_MAT4 0x8F48 +#define GL_DOUBLE_MAT2x3 0x8F49 +#define GL_DOUBLE_MAT2x4 0x8F4A +#define GL_DOUBLE_MAT3x2 0x8F4B +#define GL_DOUBLE_MAT3x4 0x8F4C +#define GL_DOUBLE_MAT4x2 0x8F4D +#define GL_DOUBLE_MAT4x3 0x8F4E +#define GL_ACTIVE_SUBROUTINES 0x8DE5 +#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 +#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 +#define GL_MAX_SUBROUTINES 0x8DE7 +#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 +#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A +#define GL_COMPATIBLE_SUBROUTINES 0x8E4B +#define GL_PATCHES 0x000E +#define GL_PATCH_VERTICES 0x8E72 +#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 +#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 +#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 +#define GL_TESS_GEN_MODE 0x8E76 +#define GL_TESS_GEN_SPACING 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 +#define GL_TESS_GEN_POINT_MODE 0x8E79 +#define GL_ISOLINES 0x8E7A +#define GL_FRACTIONAL_ODD 0x8E7B +#define GL_FRACTIONAL_EVEN 0x8E7C +#define GL_MAX_PATCH_VERTICES 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 +#define GL_TESS_EVALUATION_SHADER 0x8E87 +#define GL_TESS_CONTROL_SHADER 0x8E88 +#define GL_TRANSFORM_FEEDBACK 0x8E22 +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 +#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 +#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 +#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 +typedef void (APIENTRYP PFNGLMINSAMPLESHADINGPROC) (GLfloat value); +typedef void (APIENTRYP PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRYP PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect); +typedef void (APIENTRYP PFNGLUNIFORM1DPROC) (GLint location, GLdouble x); +typedef void (APIENTRYP PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble *params); +typedef GLint (APIENTRYP PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar *name); +typedef GLuint (APIENTRYP PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +typedef void (APIENTRYP PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint *indices); +typedef void (APIENTRYP PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint *values); +typedef void (APIENTRYP PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); +typedef void (APIENTRYP PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat *values); +typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); +typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); +typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); +typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id); +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream); +typedef void (APIENTRYP PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id); +typedef void (APIENTRYP PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMinSampleShading (GLfloat value); +GLAPI void APIENTRY glBlendEquationi (GLuint buf, GLenum mode); +GLAPI void APIENTRY glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +GLAPI void APIENTRY glBlendFunci (GLuint buf, GLenum src, GLenum dst); +GLAPI void APIENTRY glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +GLAPI void APIENTRY glDrawArraysIndirect (GLenum mode, const void *indirect); +GLAPI void APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect); +GLAPI void APIENTRY glUniform1d (GLint location, GLdouble x); +GLAPI void APIENTRY glUniform2d (GLint location, GLdouble x, GLdouble y); +GLAPI void APIENTRY glUniform3d (GLint location, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glUniform4d (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glUniform1dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniform2dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniform3dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniform4dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix2x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix2x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix3x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix3x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix4x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix4x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glGetUniformdv (GLuint program, GLint location, GLdouble *params); +GLAPI GLint APIENTRY glGetSubroutineUniformLocation (GLuint program, GLenum shadertype, const GLchar *name); +GLAPI GLuint APIENTRY glGetSubroutineIndex (GLuint program, GLenum shadertype, const GLchar *name); +GLAPI void APIENTRY glGetActiveSubroutineUniformiv (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); +GLAPI void APIENTRY glGetActiveSubroutineUniformName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +GLAPI void APIENTRY glGetActiveSubroutineName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +GLAPI void APIENTRY glUniformSubroutinesuiv (GLenum shadertype, GLsizei count, const GLuint *indices); +GLAPI void APIENTRY glGetUniformSubroutineuiv (GLenum shadertype, GLint location, GLuint *params); +GLAPI void APIENTRY glGetProgramStageiv (GLuint program, GLenum shadertype, GLenum pname, GLint *values); +GLAPI void APIENTRY glPatchParameteri (GLenum pname, GLint value); +GLAPI void APIENTRY glPatchParameterfv (GLenum pname, const GLfloat *values); +GLAPI void APIENTRY glBindTransformFeedback (GLenum target, GLuint id); +GLAPI void APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); +GLAPI void APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); +GLAPI GLboolean APIENTRY glIsTransformFeedback (GLuint id); +GLAPI void APIENTRY glPauseTransformFeedback (void); +GLAPI void APIENTRY glResumeTransformFeedback (void); +GLAPI void APIENTRY glDrawTransformFeedback (GLenum mode, GLuint id); +GLAPI void APIENTRY glDrawTransformFeedbackStream (GLenum mode, GLuint id, GLuint stream); +GLAPI void APIENTRY glBeginQueryIndexed (GLenum target, GLuint index, GLuint id); +GLAPI void APIENTRY glEndQueryIndexed (GLenum target, GLuint index); +GLAPI void APIENTRY glGetQueryIndexediv (GLenum target, GLuint index, GLenum pname, GLint *params); +#endif +#endif /* GL_VERSION_4_0 */ + +#ifndef GL_VERSION_4_1 +#define GL_VERSION_4_1 1 +#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_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 +#define GL_PROGRAM_BINARY_LENGTH 0x8741 +#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE +#define GL_PROGRAM_BINARY_FORMATS 0x87FF +#define GL_VERTEX_SHADER_BIT 0x00000001 +#define GL_FRAGMENT_SHADER_BIT 0x00000002 +#define GL_GEOMETRY_SHADER_BIT 0x00000004 +#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 +#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 +#define GL_ALL_SHADER_BITS 0xFFFFFFFF +#define GL_PROGRAM_SEPARABLE 0x8258 +#define GL_ACTIVE_PROGRAM 0x8259 +#define GL_PROGRAM_PIPELINE_BINDING 0x825A +#define GL_MAX_VIEWPORTS 0x825B +#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C +#define GL_VIEWPORT_BOUNDS_RANGE 0x825D +#define GL_LAYER_PROVOKING_VERTEX 0x825E +#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F +#define GL_UNDEFINED_VERTEX 0x8260 +typedef void (APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); +typedef void (APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); +typedef void (APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); +typedef void (APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); +typedef void (APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); +typedef void (APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); +typedef void (APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); +typedef void (APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); +typedef void (APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar *const*strings); +typedef void (APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef void (APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); +typedef void (APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint *v); +typedef void (APIENTRYP PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLdouble n, GLdouble f); +typedef void (APIENTRYP PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat *data); +typedef void (APIENTRYP PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble *data); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glReleaseShaderCompiler (void); +GLAPI void APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); +GLAPI void APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); +GLAPI void APIENTRY glDepthRangef (GLfloat n, GLfloat f); +GLAPI void APIENTRY glClearDepthf (GLfloat d); +GLAPI void APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); +GLAPI void APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); +GLAPI void APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); +GLAPI void APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); +GLAPI void APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); +GLAPI GLuint APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar *const*strings); +GLAPI void APIENTRY glBindProgramPipeline (GLuint pipeline); +GLAPI void APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); +GLAPI void APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); +GLAPI GLboolean APIENTRY glIsProgramPipeline (GLuint pipeline); +GLAPI void APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); +GLAPI void APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); +GLAPI void APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); +GLAPI void APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform1d (GLuint program, GLint location, GLdouble v0); +GLAPI void APIENTRY glProgramUniform1dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); +GLAPI void APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); +GLAPI void APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); +GLAPI void APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform2d (GLuint program, GLint location, GLdouble v0, GLdouble v1); +GLAPI void APIENTRY glProgramUniform2dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); +GLAPI void APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +GLAPI void APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GLAPI void APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform3d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); +GLAPI void APIENTRY glProgramUniform3dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +GLAPI void APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GLAPI void APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GLAPI void APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform4d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); +GLAPI void APIENTRY glProgramUniform4dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +GLAPI void APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glValidateProgramPipeline (GLuint pipeline); +GLAPI void APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GLAPI void APIENTRY glVertexAttribL1d (GLuint index, GLdouble x); +GLAPI void APIENTRY glVertexAttribL2d (GLuint index, GLdouble x, GLdouble y); +GLAPI void APIENTRY glVertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glVertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glVertexAttribL1dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL2dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL3dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL4dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glGetVertexAttribLdv (GLuint index, GLenum pname, GLdouble *params); +GLAPI void APIENTRY glViewportArrayv (GLuint first, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glViewportIndexedf (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +GLAPI void APIENTRY glViewportIndexedfv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glScissorArrayv (GLuint first, GLsizei count, const GLint *v); +GLAPI void APIENTRY glScissorIndexed (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +GLAPI void APIENTRY glScissorIndexedv (GLuint index, const GLint *v); +GLAPI void APIENTRY glDepthRangeArrayv (GLuint first, GLsizei count, const GLdouble *v); +GLAPI void APIENTRY glDepthRangeIndexed (GLuint index, GLdouble n, GLdouble f); +GLAPI void APIENTRY glGetFloati_v (GLenum target, GLuint index, GLfloat *data); +GLAPI void APIENTRY glGetDoublei_v (GLenum target, GLuint index, GLdouble *data); +#endif +#endif /* GL_VERSION_4_1 */ + +#ifndef GL_VERSION_4_2 +#define GL_VERSION_4_2 1 +#define GL_COPY_READ_BUFFER_BINDING 0x8F36 +#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 +#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 +#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 +#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_NUM_SAMPLE_COUNTS 0x9380 +#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC +#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 +#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 +#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 +#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 +#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4 +#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5 +#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6 +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7 +#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_GEOMETRY_SHADER 0x92CA +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB +#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF +#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 +#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 +#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 +#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 +#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 +#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 +#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC +#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 +#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA +#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB +#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 +#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 +#define GL_UNIFORM_BARRIER_BIT 0x00000004 +#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 +#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 +#define GL_COMMAND_BARRIER_BIT 0x00000040 +#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 +#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 +#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 +#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 +#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 +#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 +#define GL_ALL_BARRIER_BITS 0xFFFFFFFF +#define GL_MAX_IMAGE_UNITS 0x8F38 +#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39 +#define GL_IMAGE_BINDING_NAME 0x8F3A +#define GL_IMAGE_BINDING_LEVEL 0x8F3B +#define GL_IMAGE_BINDING_LAYERED 0x8F3C +#define GL_IMAGE_BINDING_LAYER 0x8F3D +#define GL_IMAGE_BINDING_ACCESS 0x8F3E +#define GL_IMAGE_1D 0x904C +#define GL_IMAGE_2D 0x904D +#define GL_IMAGE_3D 0x904E +#define GL_IMAGE_2D_RECT 0x904F +#define GL_IMAGE_CUBE 0x9050 +#define GL_IMAGE_BUFFER 0x9051 +#define GL_IMAGE_1D_ARRAY 0x9052 +#define GL_IMAGE_2D_ARRAY 0x9053 +#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 +#define GL_IMAGE_2D_MULTISAMPLE 0x9055 +#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056 +#define GL_INT_IMAGE_1D 0x9057 +#define GL_INT_IMAGE_2D 0x9058 +#define GL_INT_IMAGE_3D 0x9059 +#define GL_INT_IMAGE_2D_RECT 0x905A +#define GL_INT_IMAGE_CUBE 0x905B +#define GL_INT_IMAGE_BUFFER 0x905C +#define GL_INT_IMAGE_1D_ARRAY 0x905D +#define GL_INT_IMAGE_2D_ARRAY 0x905E +#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F +#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060 +#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061 +#define GL_UNSIGNED_INT_IMAGE_1D 0x9062 +#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 +#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 +#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065 +#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 +#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 +#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068 +#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C +#define GL_MAX_IMAGE_SAMPLES 0x906D +#define GL_IMAGE_BINDING_FORMAT 0x906E +#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 +#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 +#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 +#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD +#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE +#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF +#define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C +#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D +#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E +#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F +#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); +typedef void (APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params); +typedef void (APIENTRYP PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); +typedef void (APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); +typedef void (APIENTRYP PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) (GLenum mode, GLuint id, GLsizei instancecount); +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) (GLenum mode, GLuint id, GLuint stream, GLsizei instancecount); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawArraysInstancedBaseInstance (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); +GLAPI void APIENTRY glDrawElementsInstancedBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); +GLAPI void APIENTRY glDrawElementsInstancedBaseVertexBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); +GLAPI void APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params); +GLAPI void APIENTRY glGetActiveAtomicCounterBufferiv (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); +GLAPI void APIENTRY glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); +GLAPI void APIENTRY glMemoryBarrier (GLbitfield barriers); +GLAPI void APIENTRY glTexStorage1D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +GLAPI void APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +GLAPI void APIENTRY glDrawTransformFeedbackInstanced (GLenum mode, GLuint id, GLsizei instancecount); +GLAPI void APIENTRY glDrawTransformFeedbackStreamInstanced (GLenum mode, GLuint id, GLuint stream, GLsizei instancecount); +#endif +#endif /* GL_VERSION_4_2 */ + +#ifndef GL_VERSION_4_3 +#define GL_VERSION_4_3 1 +typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +#define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9 +#define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E +#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_COMPRESSED_R11_EAC 0x9270 +#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 +#define GL_COMPRESSED_RG11_EAC 0x9272 +#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_COMPUTE_SHADER 0x91B9 +#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB +#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC +#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD +#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 +#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 +#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 +#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 +#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 +#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB +#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE +#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF +#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED +#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE +#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF +#define GL_COMPUTE_SHADER_BIT 0x00000020 +#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 +#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 +#define GL_DEBUG_CALLBACK_FUNCTION 0x8244 +#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 +#define GL_DEBUG_SOURCE_API 0x8246 +#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 +#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 +#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 +#define GL_DEBUG_SOURCE_APPLICATION 0x824A +#define GL_DEBUG_SOURCE_OTHER 0x824B +#define GL_DEBUG_TYPE_ERROR 0x824C +#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D +#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E +#define GL_DEBUG_TYPE_PORTABILITY 0x824F +#define GL_DEBUG_TYPE_PERFORMANCE 0x8250 +#define GL_DEBUG_TYPE_OTHER 0x8251 +#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 +#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 +#define GL_DEBUG_LOGGED_MESSAGES 0x9145 +#define GL_DEBUG_SEVERITY_HIGH 0x9146 +#define GL_DEBUG_SEVERITY_MEDIUM 0x9147 +#define GL_DEBUG_SEVERITY_LOW 0x9148 +#define GL_DEBUG_TYPE_MARKER 0x8268 +#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 +#define GL_DEBUG_TYPE_POP_GROUP 0x826A +#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B +#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C +#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D +#define GL_BUFFER 0x82E0 +#define GL_SHADER 0x82E1 +#define GL_PROGRAM 0x82E2 +#define GL_QUERY 0x82E3 +#define GL_PROGRAM_PIPELINE 0x82E4 +#define GL_SAMPLER 0x82E6 +#define GL_MAX_LABEL_LENGTH 0x82E8 +#define GL_DEBUG_OUTPUT 0x92E0 +#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 +#define GL_MAX_UNIFORM_LOCATIONS 0x826E +#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 +#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312 +#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 +#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 +#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 +#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 +#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317 +#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 +#define GL_INTERNALFORMAT_SUPPORTED 0x826F +#define GL_INTERNALFORMAT_PREFERRED 0x8270 +#define GL_INTERNALFORMAT_RED_SIZE 0x8271 +#define GL_INTERNALFORMAT_GREEN_SIZE 0x8272 +#define GL_INTERNALFORMAT_BLUE_SIZE 0x8273 +#define GL_INTERNALFORMAT_ALPHA_SIZE 0x8274 +#define GL_INTERNALFORMAT_DEPTH_SIZE 0x8275 +#define GL_INTERNALFORMAT_STENCIL_SIZE 0x8276 +#define GL_INTERNALFORMAT_SHARED_SIZE 0x8277 +#define GL_INTERNALFORMAT_RED_TYPE 0x8278 +#define GL_INTERNALFORMAT_GREEN_TYPE 0x8279 +#define GL_INTERNALFORMAT_BLUE_TYPE 0x827A +#define GL_INTERNALFORMAT_ALPHA_TYPE 0x827B +#define GL_INTERNALFORMAT_DEPTH_TYPE 0x827C +#define GL_INTERNALFORMAT_STENCIL_TYPE 0x827D +#define GL_MAX_WIDTH 0x827E +#define GL_MAX_HEIGHT 0x827F +#define GL_MAX_DEPTH 0x8280 +#define GL_MAX_LAYERS 0x8281 +#define GL_MAX_COMBINED_DIMENSIONS 0x8282 +#define GL_COLOR_COMPONENTS 0x8283 +#define GL_DEPTH_COMPONENTS 0x8284 +#define GL_STENCIL_COMPONENTS 0x8285 +#define GL_COLOR_RENDERABLE 0x8286 +#define GL_DEPTH_RENDERABLE 0x8287 +#define GL_STENCIL_RENDERABLE 0x8288 +#define GL_FRAMEBUFFER_RENDERABLE 0x8289 +#define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A +#define GL_FRAMEBUFFER_BLEND 0x828B +#define GL_READ_PIXELS 0x828C +#define GL_READ_PIXELS_FORMAT 0x828D +#define GL_READ_PIXELS_TYPE 0x828E +#define GL_TEXTURE_IMAGE_FORMAT 0x828F +#define GL_TEXTURE_IMAGE_TYPE 0x8290 +#define GL_GET_TEXTURE_IMAGE_FORMAT 0x8291 +#define GL_GET_TEXTURE_IMAGE_TYPE 0x8292 +#define GL_MIPMAP 0x8293 +#define GL_MANUAL_GENERATE_MIPMAP 0x8294 +#define GL_AUTO_GENERATE_MIPMAP 0x8295 +#define GL_COLOR_ENCODING 0x8296 +#define GL_SRGB_READ 0x8297 +#define GL_SRGB_WRITE 0x8298 +#define GL_FILTER 0x829A +#define GL_VERTEX_TEXTURE 0x829B +#define GL_TESS_CONTROL_TEXTURE 0x829C +#define GL_TESS_EVALUATION_TEXTURE 0x829D +#define GL_GEOMETRY_TEXTURE 0x829E +#define GL_FRAGMENT_TEXTURE 0x829F +#define GL_COMPUTE_TEXTURE 0x82A0 +#define GL_TEXTURE_SHADOW 0x82A1 +#define GL_TEXTURE_GATHER 0x82A2 +#define GL_TEXTURE_GATHER_SHADOW 0x82A3 +#define GL_SHADER_IMAGE_LOAD 0x82A4 +#define GL_SHADER_IMAGE_STORE 0x82A5 +#define GL_SHADER_IMAGE_ATOMIC 0x82A6 +#define GL_IMAGE_TEXEL_SIZE 0x82A7 +#define GL_IMAGE_COMPATIBILITY_CLASS 0x82A8 +#define GL_IMAGE_PIXEL_FORMAT 0x82A9 +#define GL_IMAGE_PIXEL_TYPE 0x82AA +#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC +#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD +#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE +#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF +#define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1 +#define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2 +#define GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3 +#define GL_CLEAR_BUFFER 0x82B4 +#define GL_TEXTURE_VIEW 0x82B5 +#define GL_VIEW_COMPATIBILITY_CLASS 0x82B6 +#define GL_FULL_SUPPORT 0x82B7 +#define GL_CAVEAT_SUPPORT 0x82B8 +#define GL_IMAGE_CLASS_4_X_32 0x82B9 +#define GL_IMAGE_CLASS_2_X_32 0x82BA +#define GL_IMAGE_CLASS_1_X_32 0x82BB +#define GL_IMAGE_CLASS_4_X_16 0x82BC +#define GL_IMAGE_CLASS_2_X_16 0x82BD +#define GL_IMAGE_CLASS_1_X_16 0x82BE +#define GL_IMAGE_CLASS_4_X_8 0x82BF +#define GL_IMAGE_CLASS_2_X_8 0x82C0 +#define GL_IMAGE_CLASS_1_X_8 0x82C1 +#define GL_IMAGE_CLASS_11_11_10 0x82C2 +#define GL_IMAGE_CLASS_10_10_10_2 0x82C3 +#define GL_VIEW_CLASS_128_BITS 0x82C4 +#define GL_VIEW_CLASS_96_BITS 0x82C5 +#define GL_VIEW_CLASS_64_BITS 0x82C6 +#define GL_VIEW_CLASS_48_BITS 0x82C7 +#define GL_VIEW_CLASS_32_BITS 0x82C8 +#define GL_VIEW_CLASS_24_BITS 0x82C9 +#define GL_VIEW_CLASS_16_BITS 0x82CA +#define GL_VIEW_CLASS_8_BITS 0x82CB +#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_CLASS_RGTC1_RED 0x82D0 +#define GL_VIEW_CLASS_RGTC2_RG 0x82D1 +#define GL_VIEW_CLASS_BPTC_UNORM 0x82D2 +#define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3 +#define GL_UNIFORM 0x92E1 +#define GL_UNIFORM_BLOCK 0x92E2 +#define GL_PROGRAM_INPUT 0x92E3 +#define GL_PROGRAM_OUTPUT 0x92E4 +#define GL_BUFFER_VARIABLE 0x92E5 +#define GL_SHADER_STORAGE_BLOCK 0x92E6 +#define GL_VERTEX_SUBROUTINE 0x92E8 +#define GL_TESS_CONTROL_SUBROUTINE 0x92E9 +#define GL_TESS_EVALUATION_SUBROUTINE 0x92EA +#define GL_GEOMETRY_SUBROUTINE 0x92EB +#define GL_FRAGMENT_SUBROUTINE 0x92EC +#define GL_COMPUTE_SUBROUTINE 0x92ED +#define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE +#define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF +#define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0 +#define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1 +#define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2 +#define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3 +#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 +#define GL_ACTIVE_RESOURCES 0x92F5 +#define GL_MAX_NAME_LENGTH 0x92F6 +#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 +#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8 +#define GL_NAME_LENGTH 0x92F9 +#define GL_TYPE 0x92FA +#define GL_ARRAY_SIZE 0x92FB +#define GL_OFFSET 0x92FC +#define GL_BLOCK_INDEX 0x92FD +#define GL_ARRAY_STRIDE 0x92FE +#define GL_MATRIX_STRIDE 0x92FF +#define GL_IS_ROW_MAJOR 0x9300 +#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 +#define GL_BUFFER_BINDING 0x9302 +#define GL_BUFFER_DATA_SIZE 0x9303 +#define GL_NUM_ACTIVE_VARIABLES 0x9304 +#define GL_ACTIVE_VARIABLES 0x9305 +#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308 +#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309 +#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A +#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B +#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C +#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D +#define GL_LOCATION 0x930E +#define GL_LOCATION_INDEX 0x930F +#define GL_IS_PER_PATCH 0x92E7 +#define GL_SHADER_STORAGE_BUFFER 0x90D2 +#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 +#define GL_SHADER_STORAGE_BUFFER_START 0x90D4 +#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 +#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7 +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9 +#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA +#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB +#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC +#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD +#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE +#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF +#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 +#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 +#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA +#define GL_TEXTURE_BUFFER_OFFSET 0x919D +#define GL_TEXTURE_BUFFER_SIZE 0x919E +#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F +#define GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB +#define GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC +#define GL_TEXTURE_VIEW_MIN_LAYER 0x82DD +#define GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE +#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF +#define GL_VERTEX_ATTRIB_BINDING 0x82D4 +#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 +#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_VERTEX_BINDING_BUFFER 0x8F4F +#define GL_DISPLAY_LIST 0x82E7 +typedef void (APIENTRYP PFNGLCLEARBUFFERDATAPROC) (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data); +typedef void (APIENTRYP PFNGLCLEARBUFFERSUBDATAPROC) (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); +typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); +typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect); +typedef void (APIENTRYP 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 (APIENTRYP PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETINTERNALFORMATI64VPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint64 *params); +typedef void (APIENTRYP PFNGLINVALIDATETEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); +typedef void (APIENTRYP PFNGLINVALIDATETEXIMAGEPROC) (GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLINVALIDATEBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); +typedef void (APIENTRYP PFNGLINVALIDATEBUFFERDATAPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); +typedef void (APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); +typedef void (APIENTRYP PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint *params); +typedef GLuint (APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); +typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLint *params); +typedef GLint (APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); +typedef void (APIENTRYP PFNGLSHADERSTORAGEBLOCKBINDINGPROC) (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding); +typedef void (APIENTRYP PFNGLTEXBUFFERRANGEPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLTEXTUREVIEWPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); +typedef void (APIENTRYP PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +typedef void (APIENTRYP PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +typedef void (APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (APIENTRYP PFNGLVERTEXATTRIBLFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex); +typedef void (APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor); +typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam); +typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +typedef void (APIENTRYP PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message); +typedef void (APIENTRYP PFNGLPOPDEBUGGROUPPROC) (void); +typedef void (APIENTRYP PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); +typedef void (APIENTRYP PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); +typedef void (APIENTRYP PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar *label); +typedef void (APIENTRYP PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glClearBufferData (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data); +GLAPI void APIENTRY glClearBufferSubData (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); +GLAPI void APIENTRY glDispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); +GLAPI void APIENTRY glDispatchComputeIndirect (GLintptr indirect); +GLAPI void APIENTRY glCopyImageSubData (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +GLAPI void APIENTRY glFramebufferParameteri (GLenum target, GLenum pname, GLint param); +GLAPI void APIENTRY glGetFramebufferParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetInternalformati64v (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint64 *params); +GLAPI void APIENTRY glInvalidateTexSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); +GLAPI void APIENTRY glInvalidateTexImage (GLuint texture, GLint level); +GLAPI void APIENTRY glInvalidateBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr length); +GLAPI void APIENTRY glInvalidateBufferData (GLuint buffer); +GLAPI void APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); +GLAPI void APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glMultiDrawArraysIndirect (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); +GLAPI void APIENTRY glMultiDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); +GLAPI void APIENTRY glGetProgramInterfaceiv (GLuint program, GLenum programInterface, GLenum pname, GLint *params); +GLAPI GLuint APIENTRY glGetProgramResourceIndex (GLuint program, GLenum programInterface, const GLchar *name); +GLAPI void APIENTRY glGetProgramResourceName (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +GLAPI void APIENTRY glGetProgramResourceiv (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLint *params); +GLAPI GLint APIENTRY glGetProgramResourceLocation (GLuint program, GLenum programInterface, const GLchar *name); +GLAPI GLint APIENTRY glGetProgramResourceLocationIndex (GLuint program, GLenum programInterface, const GLchar *name); +GLAPI void APIENTRY glShaderStorageBlockBinding (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding); +GLAPI void APIENTRY glTexBufferRange (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI void APIENTRY glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glTexStorage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glTextureView (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); +GLAPI void APIENTRY glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +GLAPI void APIENTRY glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +GLAPI void APIENTRY glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +GLAPI void APIENTRY glVertexAttribLFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +GLAPI void APIENTRY glVertexAttribBinding (GLuint attribindex, GLuint bindingindex); +GLAPI void APIENTRY glVertexBindingDivisor (GLuint bindingindex, GLuint divisor); +GLAPI void APIENTRY glDebugMessageControl (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +GLAPI void APIENTRY glDebugMessageInsert (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +GLAPI void APIENTRY glDebugMessageCallback (GLDEBUGPROC callback, const void *userParam); +GLAPI GLuint APIENTRY glGetDebugMessageLog (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +GLAPI void APIENTRY glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message); +GLAPI void APIENTRY glPopDebugGroup (void); +GLAPI void APIENTRY glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); +GLAPI void APIENTRY glGetObjectLabel (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); +GLAPI void APIENTRY glObjectPtrLabel (const void *ptr, GLsizei length, const GLchar *label); +GLAPI void APIENTRY glGetObjectPtrLabel (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif +#endif /* GL_VERSION_4_3 */ + +#ifndef GL_VERSION_4_4 +#define GL_VERSION_4_4 1 +#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 +#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 +#define GL_TEXTURE_BUFFER_BINDING 0x8C2A +#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_CLEAR_TEXTURE 0x9365 +#define GL_LOCATION_COMPONENT 0x934A +#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B +#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C +#define GL_QUERY_BUFFER 0x9192 +#define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000 +#define GL_QUERY_BUFFER_BINDING 0x9193 +#define GL_QUERY_RESULT_NO_WAIT 0x9194 +#define GL_MIRROR_CLAMP_TO_EDGE 0x8743 +typedef void (APIENTRYP PFNGLBUFFERSTORAGEPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); +typedef void (APIENTRYP PFNGLCLEARTEXIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); +typedef void (APIENTRYP 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 (APIENTRYP PFNGLBINDBUFFERSBASEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint *buffers); +typedef void (APIENTRYP PFNGLBINDBUFFERSRANGEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes); +typedef void (APIENTRYP PFNGLBINDTEXTURESPROC) (GLuint first, GLsizei count, const GLuint *textures); +typedef void (APIENTRYP PFNGLBINDSAMPLERSPROC) (GLuint first, GLsizei count, const GLuint *samplers); +typedef void (APIENTRYP PFNGLBINDIMAGETEXTURESPROC) (GLuint first, GLsizei count, const GLuint *textures); +typedef void (APIENTRYP PFNGLBINDVERTEXBUFFERSPROC) (GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBufferStorage (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); +GLAPI void APIENTRY glClearTexImage (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); +GLAPI void APIENTRY glClearTexSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); +GLAPI void APIENTRY glBindBuffersBase (GLenum target, GLuint first, GLsizei count, const GLuint *buffers); +GLAPI void APIENTRY glBindBuffersRange (GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes); +GLAPI void APIENTRY glBindTextures (GLuint first, GLsizei count, const GLuint *textures); +GLAPI void APIENTRY glBindSamplers (GLuint first, GLsizei count, const GLuint *samplers); +GLAPI void APIENTRY glBindImageTextures (GLuint first, GLsizei count, const GLuint *textures); +GLAPI void APIENTRY glBindVertexBuffers (GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); +#endif +#endif /* GL_VERSION_4_4 */ + +#ifndef GL_VERSION_4_5 +#define GL_VERSION_4_5 1 +#define GL_CONTEXT_LOST 0x0507 +#define GL_NEGATIVE_ONE_TO_ONE 0x935E +#define GL_ZERO_TO_ONE 0x935F +#define GL_CLIP_ORIGIN 0x935C +#define GL_CLIP_DEPTH_MODE 0x935D +#define GL_QUERY_WAIT_INVERTED 0x8E17 +#define GL_QUERY_NO_WAIT_INVERTED 0x8E18 +#define GL_QUERY_BY_REGION_WAIT_INVERTED 0x8E19 +#define GL_QUERY_BY_REGION_NO_WAIT_INVERTED 0x8E1A +#define GL_MAX_CULL_DISTANCES 0x82F9 +#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES 0x82FA +#define GL_TEXTURE_TARGET 0x1006 +#define GL_QUERY_TARGET 0x82EA +#define GL_GUILTY_CONTEXT_RESET 0x8253 +#define GL_INNOCENT_CONTEXT_RESET 0x8254 +#define GL_UNKNOWN_CONTEXT_RESET 0x8255 +#define GL_RESET_NOTIFICATION_STRATEGY 0x8256 +#define GL_LOSE_CONTEXT_ON_RESET 0x8252 +#define GL_NO_RESET_NOTIFICATION 0x8261 +#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004 +#define GL_COLOR_TABLE 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 +#define GL_PROXY_COLOR_TABLE 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 +#define GL_CONVOLUTION_1D 0x8010 +#define GL_CONVOLUTION_2D 0x8011 +#define GL_SEPARABLE_2D 0x8012 +#define GL_HISTOGRAM 0x8024 +#define GL_PROXY_HISTOGRAM 0x8025 +#define GL_MINMAX 0x802E +#define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB +#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC +typedef void (APIENTRYP PFNGLCLIPCONTROLPROC) (GLenum origin, GLenum depth); +typedef void (APIENTRYP PFNGLCREATETRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC) (GLuint xfb, GLuint index, GLuint buffer); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC) (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKIVPROC) (GLuint xfb, GLenum pname, GLint *param); +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKI_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint *param); +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKI64_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint64 *param); +typedef void (APIENTRYP PFNGLCREATEBUFFERSPROC) (GLsizei n, GLuint *buffers); +typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); +typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); +typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +typedef void (APIENTRYP PFNGLCOPYNAMEDBUFFERSUBDATAPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERDATAPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); +typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); +typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFERPROC) (GLuint buffer, GLenum access); +typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFERPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVPROC) (GLuint buffer, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERI64VPROC) (GLuint buffer, GLenum pname, GLint64 *params); +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVPROC) (GLuint buffer, GLenum pname, void **params); +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); +typedef void (APIENTRYP PFNGLCREATEFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC) (GLuint framebuffer, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC) (GLuint framebuffer, GLenum buf); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC) (GLuint framebuffer, GLsizei n, const GLenum *bufs); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC) (GLuint framebuffer, GLenum src); +typedef void (APIENTRYP PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments); +typedef void (APIENTRYP PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value); +typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value); +typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value); +typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +typedef void (APIENTRYP 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 GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC) (GLuint framebuffer, GLenum target); +typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC) (GLuint framebuffer, GLenum pname, GLint *param); +typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLCREATERENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC) (GLuint renderbuffer, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLCREATETEXTURESPROC) (GLenum target, GLsizei n, GLuint *textures); +typedef void (APIENTRYP PFNGLTEXTUREBUFFERPROC) (GLuint texture, GLenum internalformat, GLuint buffer); +typedef void (APIENTRYP PFNGLTEXTUREBUFFERRANGEPROC) (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLTEXTURESTORAGE1DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP 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 (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +typedef void (APIENTRYP 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 (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFPROC) (GLuint texture, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, const GLfloat *param); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIPROC) (GLuint texture, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, const GLint *param); +typedef void (APIENTRYP PFNGLGENERATETEXTUREMIPMAPPROC) (GLuint texture); +typedef void (APIENTRYP PFNGLBINDTEXTUREUNITPROC) (GLuint unit, GLuint texture); +typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLsizei bufSize, void *pixels); +typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVPROC) (GLuint texture, GLint level, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVPROC) (GLuint texture, GLint level, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLCREATEVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); +typedef void (APIENTRYP PFNGLDISABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index); +typedef void (APIENTRYP PFNGLENABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index); +typedef void (APIENTRYP PFNGLVERTEXARRAYELEMENTBUFFERPROC) (GLuint vaobj, GLuint buffer); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBUFFERPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBUFFERSPROC) (GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); +typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBBINDINGPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex); +typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBIFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBLFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (APIENTRYP PFNGLVERTEXARRAYBINDINGDIVISORPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor); +typedef void (APIENTRYP PFNGLGETVERTEXARRAYIVPROC) (GLuint vaobj, GLenum pname, GLint *param); +typedef void (APIENTRYP PFNGLGETVERTEXARRAYINDEXEDIVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint *param); +typedef void (APIENTRYP PFNGLGETVERTEXARRAYINDEXED64IVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint64 *param); +typedef void (APIENTRYP PFNGLCREATESAMPLERSPROC) (GLsizei n, GLuint *samplers); +typedef void (APIENTRYP PFNGLCREATEPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); +typedef void (APIENTRYP PFNGLCREATEQUERIESPROC) (GLenum target, GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTUI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTUIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +typedef void (APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers); +typedef void (APIENTRYP 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 (APIENTRYP PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels); +typedef GLenum (APIENTRYP PFNGLGETGRAPHICSRESETSTATUSPROC) (void); +typedef void (APIENTRYP PFNGLGETNCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, GLsizei bufSize, void *pixels); +typedef void (APIENTRYP PFNGLGETNTEXIMAGEPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); +typedef void (APIENTRYP PFNGLGETNUNIFORMDVPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); +typedef void (APIENTRYP PFNGLGETNUNIFORMFVPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); +typedef void (APIENTRYP PFNGLGETNUNIFORMIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); +typedef void (APIENTRYP PFNGLGETNUNIFORMUIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); +typedef void (APIENTRYP PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +typedef void (APIENTRYP PFNGLGETNMAPDVPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); +typedef void (APIENTRYP PFNGLGETNMAPFVPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); +typedef void (APIENTRYP PFNGLGETNMAPIVPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint *v); +typedef void (APIENTRYP PFNGLGETNPIXELMAPFVPROC) (GLenum map, GLsizei bufSize, GLfloat *values); +typedef void (APIENTRYP PFNGLGETNPIXELMAPUIVPROC) (GLenum map, GLsizei bufSize, GLuint *values); +typedef void (APIENTRYP PFNGLGETNPIXELMAPUSVPROC) (GLenum map, GLsizei bufSize, GLushort *values); +typedef void (APIENTRYP PFNGLGETNPOLYGONSTIPPLEPROC) (GLsizei bufSize, GLubyte *pattern); +typedef void (APIENTRYP PFNGLGETNCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); +typedef void (APIENTRYP PFNGLGETNCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); +typedef void (APIENTRYP PFNGLGETNSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); +typedef void (APIENTRYP PFNGLGETNHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); +typedef void (APIENTRYP PFNGLGETNMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); +typedef void (APIENTRYP PFNGLTEXTUREBARRIERPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glClipControl (GLenum origin, GLenum depth); +GLAPI void APIENTRY glCreateTransformFeedbacks (GLsizei n, GLuint *ids); +GLAPI void APIENTRY glTransformFeedbackBufferBase (GLuint xfb, GLuint index, GLuint buffer); +GLAPI void APIENTRY glTransformFeedbackBufferRange (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI void APIENTRY glGetTransformFeedbackiv (GLuint xfb, GLenum pname, GLint *param); +GLAPI void APIENTRY glGetTransformFeedbacki_v (GLuint xfb, GLenum pname, GLuint index, GLint *param); +GLAPI void APIENTRY glGetTransformFeedbacki64_v (GLuint xfb, GLenum pname, GLuint index, GLint64 *param); +GLAPI void APIENTRY glCreateBuffers (GLsizei n, GLuint *buffers); +GLAPI void APIENTRY glNamedBufferStorage (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); +GLAPI void APIENTRY glNamedBufferData (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); +GLAPI void APIENTRY glNamedBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +GLAPI void APIENTRY glCopyNamedBufferSubData (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +GLAPI void APIENTRY glClearNamedBufferData (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); +GLAPI void APIENTRY glClearNamedBufferSubData (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); +GLAPI void *APIENTRY glMapNamedBuffer (GLuint buffer, GLenum access); +GLAPI void *APIENTRY glMapNamedBufferRange (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); +GLAPI GLboolean APIENTRY glUnmapNamedBuffer (GLuint buffer); +GLAPI void APIENTRY glFlushMappedNamedBufferRange (GLuint buffer, GLintptr offset, GLsizeiptr length); +GLAPI void APIENTRY glGetNamedBufferParameteriv (GLuint buffer, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetNamedBufferParameteri64v (GLuint buffer, GLenum pname, GLint64 *params); +GLAPI void APIENTRY glGetNamedBufferPointerv (GLuint buffer, GLenum pname, void **params); +GLAPI void APIENTRY glGetNamedBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); +GLAPI void APIENTRY glCreateFramebuffers (GLsizei n, GLuint *framebuffers); +GLAPI void APIENTRY glNamedFramebufferRenderbuffer (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +GLAPI void APIENTRY glNamedFramebufferParameteri (GLuint framebuffer, GLenum pname, GLint param); +GLAPI void APIENTRY glNamedFramebufferTexture (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); +GLAPI void APIENTRY glNamedFramebufferTextureLayer (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); +GLAPI void APIENTRY glNamedFramebufferDrawBuffer (GLuint framebuffer, GLenum buf); +GLAPI void APIENTRY glNamedFramebufferDrawBuffers (GLuint framebuffer, GLsizei n, const GLenum *bufs); +GLAPI void APIENTRY glNamedFramebufferReadBuffer (GLuint framebuffer, GLenum src); +GLAPI void APIENTRY glInvalidateNamedFramebufferData (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments); +GLAPI void APIENTRY glInvalidateNamedFramebufferSubData (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glClearNamedFramebufferiv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value); +GLAPI void APIENTRY glClearNamedFramebufferuiv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value); +GLAPI void APIENTRY glClearNamedFramebufferfv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value); +GLAPI void APIENTRY glClearNamedFramebufferfi (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +GLAPI void APIENTRY glBlitNamedFramebuffer (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +GLAPI GLenum APIENTRY glCheckNamedFramebufferStatus (GLuint framebuffer, GLenum target); +GLAPI void APIENTRY glGetNamedFramebufferParameteriv (GLuint framebuffer, GLenum pname, GLint *param); +GLAPI void APIENTRY glGetNamedFramebufferAttachmentParameteriv (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); +GLAPI void APIENTRY glCreateRenderbuffers (GLsizei n, GLuint *renderbuffers); +GLAPI void APIENTRY glNamedRenderbufferStorage (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glNamedRenderbufferStorageMultisample (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glGetNamedRenderbufferParameteriv (GLuint renderbuffer, GLenum pname, GLint *params); +GLAPI void APIENTRY glCreateTextures (GLenum target, GLsizei n, GLuint *textures); +GLAPI void APIENTRY glTextureBuffer (GLuint texture, GLenum internalformat, GLuint buffer); +GLAPI void APIENTRY glTextureBufferRange (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI void APIENTRY glTextureStorage1D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width); +GLAPI void APIENTRY glTextureStorage2D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glTextureStorage3D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +GLAPI void APIENTRY glTextureStorage2DMultisample (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glTextureStorage3DMultisample (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glCompressedTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCopyTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glCopyTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glCopyTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glTextureParameterf (GLuint texture, GLenum pname, GLfloat param); +GLAPI void APIENTRY glTextureParameterfv (GLuint texture, GLenum pname, const GLfloat *param); +GLAPI void APIENTRY glTextureParameteri (GLuint texture, GLenum pname, GLint param); +GLAPI void APIENTRY glTextureParameterIiv (GLuint texture, GLenum pname, const GLint *params); +GLAPI void APIENTRY glTextureParameterIuiv (GLuint texture, GLenum pname, const GLuint *params); +GLAPI void APIENTRY glTextureParameteriv (GLuint texture, GLenum pname, const GLint *param); +GLAPI void APIENTRY glGenerateTextureMipmap (GLuint texture); +GLAPI void APIENTRY glBindTextureUnit (GLuint unit, GLuint texture); +GLAPI void APIENTRY glGetTextureImage (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); +GLAPI void APIENTRY glGetCompressedTextureImage (GLuint texture, GLint level, GLsizei bufSize, void *pixels); +GLAPI void APIENTRY glGetTextureLevelParameterfv (GLuint texture, GLint level, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetTextureLevelParameteriv (GLuint texture, GLint level, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetTextureParameterfv (GLuint texture, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetTextureParameterIiv (GLuint texture, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetTextureParameterIuiv (GLuint texture, GLenum pname, GLuint *params); +GLAPI void APIENTRY glGetTextureParameteriv (GLuint texture, GLenum pname, GLint *params); +GLAPI void APIENTRY glCreateVertexArrays (GLsizei n, GLuint *arrays); +GLAPI void APIENTRY glDisableVertexArrayAttrib (GLuint vaobj, GLuint index); +GLAPI void APIENTRY glEnableVertexArrayAttrib (GLuint vaobj, GLuint index); +GLAPI void APIENTRY glVertexArrayElementBuffer (GLuint vaobj, GLuint buffer); +GLAPI void APIENTRY glVertexArrayVertexBuffer (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +GLAPI void APIENTRY glVertexArrayVertexBuffers (GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); +GLAPI void APIENTRY glVertexArrayAttribBinding (GLuint vaobj, GLuint attribindex, GLuint bindingindex); +GLAPI void APIENTRY glVertexArrayAttribFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +GLAPI void APIENTRY glVertexArrayAttribIFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +GLAPI void APIENTRY glVertexArrayAttribLFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +GLAPI void APIENTRY glVertexArrayBindingDivisor (GLuint vaobj, GLuint bindingindex, GLuint divisor); +GLAPI void APIENTRY glGetVertexArrayiv (GLuint vaobj, GLenum pname, GLint *param); +GLAPI void APIENTRY glGetVertexArrayIndexediv (GLuint vaobj, GLuint index, GLenum pname, GLint *param); +GLAPI void APIENTRY glGetVertexArrayIndexed64iv (GLuint vaobj, GLuint index, GLenum pname, GLint64 *param); +GLAPI void APIENTRY glCreateSamplers (GLsizei n, GLuint *samplers); +GLAPI void APIENTRY glCreateProgramPipelines (GLsizei n, GLuint *pipelines); +GLAPI void APIENTRY glCreateQueries (GLenum target, GLsizei n, GLuint *ids); +GLAPI void APIENTRY glGetQueryBufferObjecti64v (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +GLAPI void APIENTRY glGetQueryBufferObjectiv (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +GLAPI void APIENTRY glGetQueryBufferObjectui64v (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +GLAPI void APIENTRY glGetQueryBufferObjectuiv (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +GLAPI void APIENTRY glMemoryBarrierByRegion (GLbitfield barriers); +GLAPI void APIENTRY glGetTextureSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels); +GLAPI void APIENTRY glGetCompressedTextureSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels); +GLAPI GLenum APIENTRY glGetGraphicsResetStatus (void); +GLAPI void APIENTRY glGetnCompressedTexImage (GLenum target, GLint lod, GLsizei bufSize, void *pixels); +GLAPI void APIENTRY glGetnTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); +GLAPI void APIENTRY glGetnUniformdv (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); +GLAPI void APIENTRY glGetnUniformfv (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); +GLAPI void APIENTRY glGetnUniformiv (GLuint program, GLint location, GLsizei bufSize, GLint *params); +GLAPI void APIENTRY glGetnUniformuiv (GLuint program, GLint location, GLsizei bufSize, GLuint *params); +GLAPI void APIENTRY glReadnPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +GLAPI void APIENTRY glGetnMapdv (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); +GLAPI void APIENTRY glGetnMapfv (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); +GLAPI void APIENTRY glGetnMapiv (GLenum target, GLenum query, GLsizei bufSize, GLint *v); +GLAPI void APIENTRY glGetnPixelMapfv (GLenum map, GLsizei bufSize, GLfloat *values); +GLAPI void APIENTRY glGetnPixelMapuiv (GLenum map, GLsizei bufSize, GLuint *values); +GLAPI void APIENTRY glGetnPixelMapusv (GLenum map, GLsizei bufSize, GLushort *values); +GLAPI void APIENTRY glGetnPolygonStipple (GLsizei bufSize, GLubyte *pattern); +GLAPI void APIENTRY glGetnColorTable (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); +GLAPI void APIENTRY glGetnConvolutionFilter (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); +GLAPI void APIENTRY glGetnSeparableFilter (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); +GLAPI void APIENTRY glGetnHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); +GLAPI void APIENTRY glGetnMinmax (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); +GLAPI void APIENTRY glTextureBarrier (void); +#endif +#endif /* GL_VERSION_4_5 */ + +#ifndef GL_VERSION_4_6 +#define GL_VERSION_4_6 1 +#define GL_SHADER_BINARY_FORMAT_SPIR_V 0x9551 +#define GL_SPIR_V_BINARY 0x9552 +#define GL_PARAMETER_BUFFER 0x80EE +#define GL_PARAMETER_BUFFER_BINDING 0x80EF +#define GL_CONTEXT_FLAG_NO_ERROR_BIT 0x00000008 +#define GL_VERTICES_SUBMITTED 0x82EE +#define GL_PRIMITIVES_SUBMITTED 0x82EF +#define GL_VERTEX_SHADER_INVOCATIONS 0x82F0 +#define GL_TESS_CONTROL_SHADER_PATCHES 0x82F1 +#define GL_TESS_EVALUATION_SHADER_INVOCATIONS 0x82F2 +#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3 +#define GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4 +#define GL_COMPUTE_SHADER_INVOCATIONS 0x82F5 +#define GL_CLIPPING_INPUT_PRIMITIVES 0x82F6 +#define GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7 +#define GL_POLYGON_OFFSET_CLAMP 0x8E1B +#define GL_SPIR_V_EXTENSIONS 0x9553 +#define GL_NUM_SPIR_V_EXTENSIONS 0x9554 +#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF +#define GL_TRANSFORM_FEEDBACK_OVERFLOW 0x82EC +#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW 0x82ED +typedef void (APIENTRYP PFNGLSPECIALIZESHADERPROC) (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC) (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC) (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +typedef void (APIENTRYP PFNGLPOLYGONOFFSETCLAMPPROC) (GLfloat factor, GLfloat units, GLfloat clamp); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSpecializeShader (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); +GLAPI void APIENTRY glMultiDrawArraysIndirectCount (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +GLAPI void APIENTRY glMultiDrawElementsIndirectCount (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +GLAPI void APIENTRY glPolygonOffsetClamp (GLfloat factor, GLfloat units, GLfloat clamp); +#endif +#endif /* GL_VERSION_4_6 */ + +#ifndef GL_ARB_ES2_compatibility +#define GL_ARB_ES2_compatibility 1 +#endif /* GL_ARB_ES2_compatibility */ + +#ifndef GL_ARB_ES3_1_compatibility +#define GL_ARB_ES3_1_compatibility 1 +#endif /* GL_ARB_ES3_1_compatibility */ + +#ifndef GL_ARB_ES3_2_compatibility +#define GL_ARB_ES3_2_compatibility 1 +#define GL_PRIMITIVE_BOUNDING_BOX_ARB 0x92BE +#define GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB 0x9381 +#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB 0x9382 +typedef void (APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXARBPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPrimitiveBoundingBoxARB (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); +#endif +#endif /* GL_ARB_ES3_2_compatibility */ + +#ifndef GL_ARB_ES3_compatibility +#define GL_ARB_ES3_compatibility 1 +#endif /* GL_ARB_ES3_compatibility */ + +#ifndef GL_ARB_arrays_of_arrays +#define GL_ARB_arrays_of_arrays 1 +#endif /* GL_ARB_arrays_of_arrays */ + +#ifndef GL_ARB_base_instance +#define GL_ARB_base_instance 1 +#endif /* GL_ARB_base_instance */ + +#ifndef GL_ARB_bindless_texture +#define GL_ARB_bindless_texture 1 +typedef khronos_uint64_t GLuint64EXT; +#define GL_UNSIGNED_INT64_ARB 0x140F +typedef GLuint64 (APIENTRYP PFNGLGETTEXTUREHANDLEARBPROC) (GLuint texture); +typedef GLuint64 (APIENTRYP PFNGLGETTEXTURESAMPLERHANDLEARBPROC) (GLuint texture, GLuint sampler); +typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle); +typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC) (GLuint64 handle); +typedef GLuint64 (APIENTRYP PFNGLGETIMAGEHANDLEARBPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); +typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle, GLenum access); +typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC) (GLuint64 handle); +typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64ARBPROC) (GLint location, GLuint64 value); +typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64VARBPROC) (GLint location, GLsizei count, const GLuint64 *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC) (GLuint program, GLint location, GLuint64 value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); +typedef GLboolean (APIENTRYP PFNGLISTEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle); +typedef GLboolean (APIENTRYP PFNGLISIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64ARBPROC) (GLuint index, GLuint64EXT x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64VARBPROC) (GLuint index, const GLuint64EXT *v); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLUI64VARBPROC) (GLuint index, GLenum pname, GLuint64EXT *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLuint64 APIENTRY glGetTextureHandleARB (GLuint texture); +GLAPI GLuint64 APIENTRY glGetTextureSamplerHandleARB (GLuint texture, GLuint sampler); +GLAPI void APIENTRY glMakeTextureHandleResidentARB (GLuint64 handle); +GLAPI void APIENTRY glMakeTextureHandleNonResidentARB (GLuint64 handle); +GLAPI GLuint64 APIENTRY glGetImageHandleARB (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); +GLAPI void APIENTRY glMakeImageHandleResidentARB (GLuint64 handle, GLenum access); +GLAPI void APIENTRY glMakeImageHandleNonResidentARB (GLuint64 handle); +GLAPI void APIENTRY glUniformHandleui64ARB (GLint location, GLuint64 value); +GLAPI void APIENTRY glUniformHandleui64vARB (GLint location, GLsizei count, const GLuint64 *value); +GLAPI void APIENTRY glProgramUniformHandleui64ARB (GLuint program, GLint location, GLuint64 value); +GLAPI void APIENTRY glProgramUniformHandleui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64 *values); +GLAPI GLboolean APIENTRY glIsTextureHandleResidentARB (GLuint64 handle); +GLAPI GLboolean APIENTRY glIsImageHandleResidentARB (GLuint64 handle); +GLAPI void APIENTRY glVertexAttribL1ui64ARB (GLuint index, GLuint64EXT x); +GLAPI void APIENTRY glVertexAttribL1ui64vARB (GLuint index, const GLuint64EXT *v); +GLAPI void APIENTRY glGetVertexAttribLui64vARB (GLuint index, GLenum pname, GLuint64EXT *params); +#endif +#endif /* GL_ARB_bindless_texture */ + +#ifndef GL_ARB_blend_func_extended +#define GL_ARB_blend_func_extended 1 +#endif /* GL_ARB_blend_func_extended */ + +#ifndef GL_ARB_buffer_storage +#define GL_ARB_buffer_storage 1 +#endif /* GL_ARB_buffer_storage */ + +#ifndef GL_ARB_cl_event +#define GL_ARB_cl_event 1 +struct _cl_context; +struct _cl_event; +#define GL_SYNC_CL_EVENT_ARB 0x8240 +#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241 +typedef GLsync (APIENTRYP PFNGLCREATESYNCFROMCLEVENTARBPROC) (struct _cl_context *context, struct _cl_event *event, GLbitfield flags); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLsync APIENTRY glCreateSyncFromCLeventARB (struct _cl_context *context, struct _cl_event *event, GLbitfield flags); +#endif +#endif /* GL_ARB_cl_event */ + +#ifndef GL_ARB_clear_buffer_object +#define GL_ARB_clear_buffer_object 1 +#endif /* GL_ARB_clear_buffer_object */ + +#ifndef GL_ARB_clear_texture +#define GL_ARB_clear_texture 1 +#endif /* GL_ARB_clear_texture */ + +#ifndef GL_ARB_clip_control +#define GL_ARB_clip_control 1 +#endif /* GL_ARB_clip_control */ + +#ifndef GL_ARB_color_buffer_float +#define GL_ARB_color_buffer_float 1 +#define GL_RGBA_FLOAT_MODE_ARB 0x8820 +#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A +#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B +#define GL_CLAMP_READ_COLOR_ARB 0x891C +#define GL_FIXED_ONLY_ARB 0x891D +typedef void (APIENTRYP PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glClampColorARB (GLenum target, GLenum clamp); +#endif +#endif /* GL_ARB_color_buffer_float */ + +#ifndef GL_ARB_compatibility +#define GL_ARB_compatibility 1 +#endif /* GL_ARB_compatibility */ + +#ifndef GL_ARB_compressed_texture_pixel_storage +#define GL_ARB_compressed_texture_pixel_storage 1 +#endif /* GL_ARB_compressed_texture_pixel_storage */ + +#ifndef GL_ARB_compute_shader +#define GL_ARB_compute_shader 1 +#endif /* GL_ARB_compute_shader */ + +#ifndef GL_ARB_compute_variable_group_size +#define GL_ARB_compute_variable_group_size 1 +#define GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB 0x9344 +#define GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB 0x90EB +#define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345 +#define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF +typedef void (APIENTRYP 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); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDispatchComputeGroupSizeARB (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z); +#endif +#endif /* GL_ARB_compute_variable_group_size */ + +#ifndef GL_ARB_conditional_render_inverted +#define GL_ARB_conditional_render_inverted 1 +#endif /* GL_ARB_conditional_render_inverted */ + +#ifndef GL_ARB_conservative_depth +#define GL_ARB_conservative_depth 1 +#endif /* GL_ARB_conservative_depth */ + +#ifndef GL_ARB_copy_buffer +#define GL_ARB_copy_buffer 1 +#endif /* GL_ARB_copy_buffer */ + +#ifndef GL_ARB_copy_image +#define GL_ARB_copy_image 1 +#endif /* GL_ARB_copy_image */ + +#ifndef GL_ARB_cull_distance +#define GL_ARB_cull_distance 1 +#endif /* GL_ARB_cull_distance */ + +#ifndef GL_ARB_debug_output +#define GL_ARB_debug_output 1 +typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +#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 +typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, const void *userParam); +typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDebugMessageControlARB (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +GLAPI void APIENTRY glDebugMessageInsertARB (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +GLAPI void APIENTRY glDebugMessageCallbackARB (GLDEBUGPROCARB callback, const void *userParam); +GLAPI GLuint APIENTRY glGetDebugMessageLogARB (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +#endif +#endif /* GL_ARB_debug_output */ + +#ifndef GL_ARB_depth_buffer_float +#define GL_ARB_depth_buffer_float 1 +#endif /* GL_ARB_depth_buffer_float */ + +#ifndef GL_ARB_depth_clamp +#define GL_ARB_depth_clamp 1 +#endif /* GL_ARB_depth_clamp */ + +#ifndef GL_ARB_depth_texture +#define GL_ARB_depth_texture 1 +#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 +#endif /* GL_ARB_depth_texture */ + +#ifndef GL_ARB_derivative_control +#define GL_ARB_derivative_control 1 +#endif /* GL_ARB_derivative_control */ + +#ifndef GL_ARB_direct_state_access +#define GL_ARB_direct_state_access 1 +#endif /* GL_ARB_direct_state_access */ + +#ifndef GL_ARB_draw_buffers +#define GL_ARB_draw_buffers 1 +#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 +typedef void (APIENTRYP PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawBuffersARB (GLsizei n, const GLenum *bufs); +#endif +#endif /* GL_ARB_draw_buffers */ + +#ifndef GL_ARB_draw_buffers_blend +#define GL_ARB_draw_buffers_blend 1 +typedef void (APIENTRYP PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode); +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRYP PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendEquationiARB (GLuint buf, GLenum mode); +GLAPI void APIENTRY glBlendEquationSeparateiARB (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +GLAPI void APIENTRY glBlendFunciARB (GLuint buf, GLenum src, GLenum dst); +GLAPI void APIENTRY glBlendFuncSeparateiARB (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +#endif +#endif /* GL_ARB_draw_buffers_blend */ + +#ifndef GL_ARB_draw_elements_base_vertex +#define GL_ARB_draw_elements_base_vertex 1 +#endif /* GL_ARB_draw_elements_base_vertex */ + +#ifndef GL_ARB_draw_indirect +#define GL_ARB_draw_indirect 1 +#endif /* GL_ARB_draw_indirect */ + +#ifndef GL_ARB_draw_instanced +#define GL_ARB_draw_instanced 1 +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawArraysInstancedARB (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +GLAPI void APIENTRY glDrawElementsInstancedARB (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +#endif +#endif /* GL_ARB_draw_instanced */ + +#ifndef GL_ARB_enhanced_layouts +#define GL_ARB_enhanced_layouts 1 +#endif /* GL_ARB_enhanced_layouts */ + +#ifndef GL_ARB_explicit_attrib_location +#define GL_ARB_explicit_attrib_location 1 +#endif /* GL_ARB_explicit_attrib_location */ + +#ifndef GL_ARB_explicit_uniform_location +#define GL_ARB_explicit_uniform_location 1 +#endif /* GL_ARB_explicit_uniform_location */ + +#ifndef GL_ARB_fragment_coord_conventions +#define GL_ARB_fragment_coord_conventions 1 +#endif /* GL_ARB_fragment_coord_conventions */ + +#ifndef GL_ARB_fragment_layer_viewport +#define GL_ARB_fragment_layer_viewport 1 +#endif /* GL_ARB_fragment_layer_viewport */ + +#ifndef GL_ARB_fragment_program +#define GL_ARB_fragment_program 1 +#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_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_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 +#define GL_MATRIX13_ARB 0x88CD +#define GL_MATRIX14_ARB 0x88CE +#define GL_MATRIX15_ARB 0x88CF +#define GL_MATRIX16_ARB 0x88D0 +#define GL_MATRIX17_ARB 0x88D1 +#define GL_MATRIX18_ARB 0x88D2 +#define GL_MATRIX19_ARB 0x88D3 +#define GL_MATRIX20_ARB 0x88D4 +#define GL_MATRIX21_ARB 0x88D5 +#define GL_MATRIX22_ARB 0x88D6 +#define GL_MATRIX23_ARB 0x88D7 +#define GL_MATRIX24_ARB 0x88D8 +#define GL_MATRIX25_ARB 0x88D9 +#define GL_MATRIX26_ARB 0x88DA +#define GL_MATRIX27_ARB 0x88DB +#define GL_MATRIX28_ARB 0x88DC +#define GL_MATRIX29_ARB 0x88DD +#define GL_MATRIX30_ARB 0x88DE +#define GL_MATRIX31_ARB 0x88DF +typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const void *string); +typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); +typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs); +typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, void *string); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMARBPROC) (GLuint program); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramStringARB (GLenum target, GLenum format, GLsizei len, const void *string); +GLAPI void APIENTRY glBindProgramARB (GLenum target, GLuint program); +GLAPI void APIENTRY glDeleteProgramsARB (GLsizei n, const GLuint *programs); +GLAPI void APIENTRY glGenProgramsARB (GLsizei n, GLuint *programs); +GLAPI void APIENTRY glProgramEnvParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glProgramEnvParameter4dvARB (GLenum target, GLuint index, const GLdouble *params); +GLAPI void APIENTRY glProgramEnvParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glProgramEnvParameter4fvARB (GLenum target, GLuint index, const GLfloat *params); +GLAPI void APIENTRY glProgramLocalParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glProgramLocalParameter4dvARB (GLenum target, GLuint index, const GLdouble *params); +GLAPI void APIENTRY glProgramLocalParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glProgramLocalParameter4fvARB (GLenum target, GLuint index, const GLfloat *params); +GLAPI void APIENTRY glGetProgramEnvParameterdvARB (GLenum target, GLuint index, GLdouble *params); +GLAPI void APIENTRY glGetProgramEnvParameterfvARB (GLenum target, GLuint index, GLfloat *params); +GLAPI void APIENTRY glGetProgramLocalParameterdvARB (GLenum target, GLuint index, GLdouble *params); +GLAPI void APIENTRY glGetProgramLocalParameterfvARB (GLenum target, GLuint index, GLfloat *params); +GLAPI void APIENTRY glGetProgramivARB (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetProgramStringARB (GLenum target, GLenum pname, void *string); +GLAPI GLboolean APIENTRY glIsProgramARB (GLuint program); +#endif +#endif /* GL_ARB_fragment_program */ + +#ifndef GL_ARB_fragment_program_shadow +#define GL_ARB_fragment_program_shadow 1 +#endif /* GL_ARB_fragment_program_shadow */ + +#ifndef GL_ARB_fragment_shader +#define GL_ARB_fragment_shader 1 +#define GL_FRAGMENT_SHADER_ARB 0x8B30 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B +#endif /* GL_ARB_fragment_shader */ + +#ifndef GL_ARB_fragment_shader_interlock +#define GL_ARB_fragment_shader_interlock 1 +#endif /* GL_ARB_fragment_shader_interlock */ + +#ifndef GL_ARB_framebuffer_no_attachments +#define GL_ARB_framebuffer_no_attachments 1 +#endif /* GL_ARB_framebuffer_no_attachments */ + +#ifndef GL_ARB_framebuffer_object +#define GL_ARB_framebuffer_object 1 +#endif /* GL_ARB_framebuffer_object */ + +#ifndef GL_ARB_framebuffer_sRGB +#define GL_ARB_framebuffer_sRGB 1 +#endif /* GL_ARB_framebuffer_sRGB */ + +#ifndef GL_ARB_geometry_shader4 +#define GL_ARB_geometry_shader4 1 +#define GL_LINES_ADJACENCY_ARB 0x000A +#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B +#define GL_TRIANGLES_ADJACENCY_ARB 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000D +#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 +#define GL_GEOMETRY_SHADER_ARB 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramParameteriARB (GLuint program, GLenum pname, GLint value); +GLAPI void APIENTRY glFramebufferTextureARB (GLenum target, GLenum attachment, GLuint texture, GLint level); +GLAPI void APIENTRY glFramebufferTextureLayerARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +GLAPI void APIENTRY glFramebufferTextureFaceARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#endif +#endif /* GL_ARB_geometry_shader4 */ + +#ifndef GL_ARB_get_program_binary +#define GL_ARB_get_program_binary 1 +#endif /* GL_ARB_get_program_binary */ + +#ifndef GL_ARB_get_texture_sub_image +#define GL_ARB_get_texture_sub_image 1 +#endif /* GL_ARB_get_texture_sub_image */ + +#ifndef GL_ARB_gl_spirv +#define GL_ARB_gl_spirv 1 +#define GL_SHADER_BINARY_FORMAT_SPIR_V_ARB 0x9551 +#define GL_SPIR_V_BINARY_ARB 0x9552 +typedef void (APIENTRYP PFNGLSPECIALIZESHADERARBPROC) (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSpecializeShaderARB (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); +#endif +#endif /* GL_ARB_gl_spirv */ + +#ifndef GL_ARB_gpu_shader5 +#define GL_ARB_gpu_shader5 1 +#endif /* GL_ARB_gpu_shader5 */ + +#ifndef GL_ARB_gpu_shader_fp64 +#define GL_ARB_gpu_shader_fp64 1 +#endif /* GL_ARB_gpu_shader_fp64 */ + +#ifndef GL_ARB_gpu_shader_int64 +#define GL_ARB_gpu_shader_int64 1 +#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_UNSIGNED_INT64_VEC2_ARB 0x8FF5 +#define GL_UNSIGNED_INT64_VEC3_ARB 0x8FF6 +#define GL_UNSIGNED_INT64_VEC4_ARB 0x8FF7 +typedef void (APIENTRYP PFNGLUNIFORM1I64ARBPROC) (GLint location, GLint64 x); +typedef void (APIENTRYP PFNGLUNIFORM2I64ARBPROC) (GLint location, GLint64 x, GLint64 y); +typedef void (APIENTRYP PFNGLUNIFORM3I64ARBPROC) (GLint location, GLint64 x, GLint64 y, GLint64 z); +typedef void (APIENTRYP PFNGLUNIFORM4I64ARBPROC) (GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); +typedef void (APIENTRYP PFNGLUNIFORM1I64VARBPROC) (GLint location, GLsizei count, const GLint64 *value); +typedef void (APIENTRYP PFNGLUNIFORM2I64VARBPROC) (GLint location, GLsizei count, const GLint64 *value); +typedef void (APIENTRYP PFNGLUNIFORM3I64VARBPROC) (GLint location, GLsizei count, const GLint64 *value); +typedef void (APIENTRYP PFNGLUNIFORM4I64VARBPROC) (GLint location, GLsizei count, const GLint64 *value); +typedef void (APIENTRYP PFNGLUNIFORM1UI64ARBPROC) (GLint location, GLuint64 x); +typedef void (APIENTRYP PFNGLUNIFORM2UI64ARBPROC) (GLint location, GLuint64 x, GLuint64 y); +typedef void (APIENTRYP PFNGLUNIFORM3UI64ARBPROC) (GLint location, GLuint64 x, GLuint64 y, GLuint64 z); +typedef void (APIENTRYP PFNGLUNIFORM4UI64ARBPROC) (GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); +typedef void (APIENTRYP PFNGLUNIFORM1UI64VARBPROC) (GLint location, GLsizei count, const GLuint64 *value); +typedef void (APIENTRYP PFNGLUNIFORM2UI64VARBPROC) (GLint location, GLsizei count, const GLuint64 *value); +typedef void (APIENTRYP PFNGLUNIFORM3UI64VARBPROC) (GLint location, GLsizei count, const GLuint64 *value); +typedef void (APIENTRYP PFNGLUNIFORM4UI64VARBPROC) (GLint location, GLsizei count, const GLuint64 *value); +typedef void (APIENTRYP PFNGLGETUNIFORMI64VARBPROC) (GLuint program, GLint location, GLint64 *params); +typedef void (APIENTRYP PFNGLGETUNIFORMUI64VARBPROC) (GLuint program, GLint location, GLuint64 *params); +typedef void (APIENTRYP PFNGLGETNUNIFORMI64VARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint64 *params); +typedef void (APIENTRYP PFNGLGETNUNIFORMUI64VARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint64 *params); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64ARBPROC) (GLuint program, GLint location, GLint64 x); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64ARBPROC) (GLuint program, GLint location, GLint64 x, GLint64 y); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64ARBPROC) (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64ARBPROC) (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64 *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64 *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64 *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64 *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64ARBPROC) (GLuint program, GLint location, GLuint64 x); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64ARBPROC) (GLuint program, GLint location, GLuint64 x, GLuint64 y); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64ARBPROC) (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64ARBPROC) (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *value); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glUniform1i64ARB (GLint location, GLint64 x); +GLAPI void APIENTRY glUniform2i64ARB (GLint location, GLint64 x, GLint64 y); +GLAPI void APIENTRY glUniform3i64ARB (GLint location, GLint64 x, GLint64 y, GLint64 z); +GLAPI void APIENTRY glUniform4i64ARB (GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); +GLAPI void APIENTRY glUniform1i64vARB (GLint location, GLsizei count, const GLint64 *value); +GLAPI void APIENTRY glUniform2i64vARB (GLint location, GLsizei count, const GLint64 *value); +GLAPI void APIENTRY glUniform3i64vARB (GLint location, GLsizei count, const GLint64 *value); +GLAPI void APIENTRY glUniform4i64vARB (GLint location, GLsizei count, const GLint64 *value); +GLAPI void APIENTRY glUniform1ui64ARB (GLint location, GLuint64 x); +GLAPI void APIENTRY glUniform2ui64ARB (GLint location, GLuint64 x, GLuint64 y); +GLAPI void APIENTRY glUniform3ui64ARB (GLint location, GLuint64 x, GLuint64 y, GLuint64 z); +GLAPI void APIENTRY glUniform4ui64ARB (GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); +GLAPI void APIENTRY glUniform1ui64vARB (GLint location, GLsizei count, const GLuint64 *value); +GLAPI void APIENTRY glUniform2ui64vARB (GLint location, GLsizei count, const GLuint64 *value); +GLAPI void APIENTRY glUniform3ui64vARB (GLint location, GLsizei count, const GLuint64 *value); +GLAPI void APIENTRY glUniform4ui64vARB (GLint location, GLsizei count, const GLuint64 *value); +GLAPI void APIENTRY glGetUniformi64vARB (GLuint program, GLint location, GLint64 *params); +GLAPI void APIENTRY glGetUniformui64vARB (GLuint program, GLint location, GLuint64 *params); +GLAPI void APIENTRY glGetnUniformi64vARB (GLuint program, GLint location, GLsizei bufSize, GLint64 *params); +GLAPI void APIENTRY glGetnUniformui64vARB (GLuint program, GLint location, GLsizei bufSize, GLuint64 *params); +GLAPI void APIENTRY glProgramUniform1i64ARB (GLuint program, GLint location, GLint64 x); +GLAPI void APIENTRY glProgramUniform2i64ARB (GLuint program, GLint location, GLint64 x, GLint64 y); +GLAPI void APIENTRY glProgramUniform3i64ARB (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z); +GLAPI void APIENTRY glProgramUniform4i64ARB (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); +GLAPI void APIENTRY glProgramUniform1i64vARB (GLuint program, GLint location, GLsizei count, const GLint64 *value); +GLAPI void APIENTRY glProgramUniform2i64vARB (GLuint program, GLint location, GLsizei count, const GLint64 *value); +GLAPI void APIENTRY glProgramUniform3i64vARB (GLuint program, GLint location, GLsizei count, const GLint64 *value); +GLAPI void APIENTRY glProgramUniform4i64vARB (GLuint program, GLint location, GLsizei count, const GLint64 *value); +GLAPI void APIENTRY glProgramUniform1ui64ARB (GLuint program, GLint location, GLuint64 x); +GLAPI void APIENTRY glProgramUniform2ui64ARB (GLuint program, GLint location, GLuint64 x, GLuint64 y); +GLAPI void APIENTRY glProgramUniform3ui64ARB (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z); +GLAPI void APIENTRY glProgramUniform4ui64ARB (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); +GLAPI void APIENTRY glProgramUniform1ui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64 *value); +GLAPI void APIENTRY glProgramUniform2ui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64 *value); +GLAPI void APIENTRY glProgramUniform3ui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64 *value); +GLAPI void APIENTRY glProgramUniform4ui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64 *value); +#endif +#endif /* GL_ARB_gpu_shader_int64 */ + +#ifndef GL_ARB_half_float_pixel +#define GL_ARB_half_float_pixel 1 +typedef khronos_uint16_t GLhalfARB; +#define GL_HALF_FLOAT_ARB 0x140B +#endif /* GL_ARB_half_float_pixel */ + +#ifndef GL_ARB_half_float_vertex +#define GL_ARB_half_float_vertex 1 +#endif /* GL_ARB_half_float_vertex */ + +#ifndef GL_ARB_imaging +#define GL_ARB_imaging 1 +#define GL_CONVOLUTION_BORDER_MODE 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS 0x8015 +#define GL_REDUCE 0x8016 +#define GL_CONVOLUTION_FORMAT 0x8017 +#define GL_CONVOLUTION_WIDTH 0x8018 +#define GL_CONVOLUTION_HEIGHT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 +#define GL_HISTOGRAM_WIDTH 0x8026 +#define GL_HISTOGRAM_FORMAT 0x8027 +#define GL_HISTOGRAM_RED_SIZE 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C +#define GL_HISTOGRAM_SINK 0x802D +#define GL_MINMAX_FORMAT 0x802F +#define GL_MINMAX_SINK 0x8030 +#define GL_TABLE_TOO_LARGE 0x8031 +#define GL_COLOR_MATRIX 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB +#define GL_COLOR_TABLE_SCALE 0x80D6 +#define GL_COLOR_TABLE_BIAS 0x80D7 +#define GL_COLOR_TABLE_FORMAT 0x80D8 +#define GL_COLOR_TABLE_WIDTH 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF +#define GL_CONSTANT_BORDER 0x8151 +#define GL_REPLICATE_BORDER 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR 0x8154 +typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, void *table); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); +typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, void *image); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); +typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target); +typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorTable (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); +GLAPI void APIENTRY glColorTableParameterfv (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glColorTableParameteriv (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glCopyColorTable (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glGetColorTable (GLenum target, GLenum format, GLenum type, void *table); +GLAPI void APIENTRY glGetColorTableParameterfv (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetColorTableParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glColorSubTable (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); +GLAPI void APIENTRY glCopyColorSubTable (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glConvolutionFilter1D (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); +GLAPI void APIENTRY glConvolutionFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); +GLAPI void APIENTRY glConvolutionParameterf (GLenum target, GLenum pname, GLfloat params); +GLAPI void APIENTRY glConvolutionParameterfv (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glConvolutionParameteri (GLenum target, GLenum pname, GLint params); +GLAPI void APIENTRY glConvolutionParameteriv (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glCopyConvolutionFilter1D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glCopyConvolutionFilter2D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glGetConvolutionFilter (GLenum target, GLenum format, GLenum type, void *image); +GLAPI void APIENTRY glGetConvolutionParameterfv (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetConvolutionParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetSeparableFilter (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); +GLAPI void APIENTRY glSeparableFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); +GLAPI void APIENTRY glGetHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +GLAPI void APIENTRY glGetHistogramParameterfv (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetHistogramParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetMinmax (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +GLAPI void APIENTRY glGetMinmaxParameterfv (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetMinmaxParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glHistogram (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +GLAPI void APIENTRY glMinmax (GLenum target, GLenum internalformat, GLboolean sink); +GLAPI void APIENTRY glResetHistogram (GLenum target); +GLAPI void APIENTRY glResetMinmax (GLenum target); +#endif +#endif /* GL_ARB_imaging */ + +#ifndef GL_ARB_indirect_parameters +#define GL_ARB_indirect_parameters 1 +#define GL_PARAMETER_BUFFER_ARB 0x80EE +#define GL_PARAMETER_BUFFER_BINDING_ARB 0x80EF +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC) (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC) (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiDrawArraysIndirectCountARB (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +GLAPI void APIENTRY glMultiDrawElementsIndirectCountARB (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +#endif +#endif /* GL_ARB_indirect_parameters */ + +#ifndef GL_ARB_instanced_arrays +#define GL_ARB_instanced_arrays 1 +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE +typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribDivisorARB (GLuint index, GLuint divisor); +#endif +#endif /* GL_ARB_instanced_arrays */ + +#ifndef GL_ARB_internalformat_query +#define GL_ARB_internalformat_query 1 +#endif /* GL_ARB_internalformat_query */ + +#ifndef GL_ARB_internalformat_query2 +#define GL_ARB_internalformat_query2 1 +#define GL_SRGB_DECODE_ARB 0x8299 +#define GL_VIEW_CLASS_EAC_R11 0x9383 +#define GL_VIEW_CLASS_EAC_RG11 0x9384 +#define GL_VIEW_CLASS_ETC2_RGB 0x9385 +#define GL_VIEW_CLASS_ETC2_RGBA 0x9386 +#define GL_VIEW_CLASS_ETC2_EAC_RGBA 0x9387 +#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_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_10x10_RGBA 0x9393 +#define GL_VIEW_CLASS_ASTC_12x10_RGBA 0x9394 +#define GL_VIEW_CLASS_ASTC_12x12_RGBA 0x9395 +#endif /* GL_ARB_internalformat_query2 */ + +#ifndef GL_ARB_invalidate_subdata +#define GL_ARB_invalidate_subdata 1 +#endif /* GL_ARB_invalidate_subdata */ + +#ifndef GL_ARB_map_buffer_alignment +#define GL_ARB_map_buffer_alignment 1 +#endif /* GL_ARB_map_buffer_alignment */ + +#ifndef GL_ARB_map_buffer_range +#define GL_ARB_map_buffer_range 1 +#endif /* GL_ARB_map_buffer_range */ + +#ifndef GL_ARB_matrix_palette +#define GL_ARB_matrix_palette 1 +#define GL_MATRIX_PALETTE_ARB 0x8840 +#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 +#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 +#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 +#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 +#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 +#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 +#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 +#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 +#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 +typedef void (APIENTRYP PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); +typedef void (APIENTRYP PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices); +typedef void (APIENTRYP PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices); +typedef void (APIENTRYP PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices); +typedef void (APIENTRYP PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCurrentPaletteMatrixARB (GLint index); +GLAPI void APIENTRY glMatrixIndexubvARB (GLint size, const GLubyte *indices); +GLAPI void APIENTRY glMatrixIndexusvARB (GLint size, const GLushort *indices); +GLAPI void APIENTRY glMatrixIndexuivARB (GLint size, const GLuint *indices); +GLAPI void APIENTRY glMatrixIndexPointerARB (GLint size, GLenum type, GLsizei stride, const void *pointer); +#endif +#endif /* GL_ARB_matrix_palette */ + +#ifndef GL_ARB_multi_bind +#define GL_ARB_multi_bind 1 +#endif /* GL_ARB_multi_bind */ + +#ifndef GL_ARB_multi_draw_indirect +#define GL_ARB_multi_draw_indirect 1 +#endif /* GL_ARB_multi_draw_indirect */ + +#ifndef GL_ARB_multisample +#define GL_ARB_multisample 1 +#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 +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEARBPROC) (GLfloat value, GLboolean invert); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSampleCoverageARB (GLfloat value, GLboolean invert); +#endif +#endif /* GL_ARB_multisample */ + +#ifndef GL_ARB_multitexture +#define GL_ARB_multitexture 1 +#define GL_TEXTURE0_ARB 0x84C0 +#define GL_TEXTURE1_ARB 0x84C1 +#define GL_TEXTURE2_ARB 0x84C2 +#define GL_TEXTURE3_ARB 0x84C3 +#define GL_TEXTURE4_ARB 0x84C4 +#define GL_TEXTURE5_ARB 0x84C5 +#define GL_TEXTURE6_ARB 0x84C6 +#define GL_TEXTURE7_ARB 0x84C7 +#define GL_TEXTURE8_ARB 0x84C8 +#define GL_TEXTURE9_ARB 0x84C9 +#define GL_TEXTURE10_ARB 0x84CA +#define GL_TEXTURE11_ARB 0x84CB +#define GL_TEXTURE12_ARB 0x84CC +#define GL_TEXTURE13_ARB 0x84CD +#define GL_TEXTURE14_ARB 0x84CE +#define GL_TEXTURE15_ARB 0x84CF +#define GL_TEXTURE16_ARB 0x84D0 +#define GL_TEXTURE17_ARB 0x84D1 +#define GL_TEXTURE18_ARB 0x84D2 +#define GL_TEXTURE19_ARB 0x84D3 +#define GL_TEXTURE20_ARB 0x84D4 +#define GL_TEXTURE21_ARB 0x84D5 +#define GL_TEXTURE22_ARB 0x84D6 +#define GL_TEXTURE23_ARB 0x84D7 +#define GL_TEXTURE24_ARB 0x84D8 +#define GL_TEXTURE25_ARB 0x84D9 +#define GL_TEXTURE26_ARB 0x84DA +#define GL_TEXTURE27_ARB 0x84DB +#define GL_TEXTURE28_ARB 0x84DC +#define GL_TEXTURE29_ARB 0x84DD +#define GL_TEXTURE30_ARB 0x84DE +#define GL_TEXTURE31_ARB 0x84DF +#define GL_ACTIVE_TEXTURE_ARB 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 +#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 +typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glActiveTextureARB (GLenum texture); +GLAPI void APIENTRY glClientActiveTextureARB (GLenum texture); +GLAPI void APIENTRY glMultiTexCoord1dARB (GLenum target, GLdouble s); +GLAPI void APIENTRY glMultiTexCoord1dvARB (GLenum target, const GLdouble *v); +GLAPI void APIENTRY glMultiTexCoord1fARB (GLenum target, GLfloat s); +GLAPI void APIENTRY glMultiTexCoord1fvARB (GLenum target, const GLfloat *v); +GLAPI void APIENTRY glMultiTexCoord1iARB (GLenum target, GLint s); +GLAPI void APIENTRY glMultiTexCoord1ivARB (GLenum target, const GLint *v); +GLAPI void APIENTRY glMultiTexCoord1sARB (GLenum target, GLshort s); +GLAPI void APIENTRY glMultiTexCoord1svARB (GLenum target, const GLshort *v); +GLAPI void APIENTRY glMultiTexCoord2dARB (GLenum target, GLdouble s, GLdouble t); +GLAPI void APIENTRY glMultiTexCoord2dvARB (GLenum target, const GLdouble *v); +GLAPI void APIENTRY glMultiTexCoord2fARB (GLenum target, GLfloat s, GLfloat t); +GLAPI void APIENTRY glMultiTexCoord2fvARB (GLenum target, const GLfloat *v); +GLAPI void APIENTRY glMultiTexCoord2iARB (GLenum target, GLint s, GLint t); +GLAPI void APIENTRY glMultiTexCoord2ivARB (GLenum target, const GLint *v); +GLAPI void APIENTRY glMultiTexCoord2sARB (GLenum target, GLshort s, GLshort t); +GLAPI void APIENTRY glMultiTexCoord2svARB (GLenum target, const GLshort *v); +GLAPI void APIENTRY glMultiTexCoord3dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r); +GLAPI void APIENTRY glMultiTexCoord3dvARB (GLenum target, const GLdouble *v); +GLAPI void APIENTRY glMultiTexCoord3fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r); +GLAPI void APIENTRY glMultiTexCoord3fvARB (GLenum target, const GLfloat *v); +GLAPI void APIENTRY glMultiTexCoord3iARB (GLenum target, GLint s, GLint t, GLint r); +GLAPI void APIENTRY glMultiTexCoord3ivARB (GLenum target, const GLint *v); +GLAPI void APIENTRY glMultiTexCoord3sARB (GLenum target, GLshort s, GLshort t, GLshort r); +GLAPI void APIENTRY glMultiTexCoord3svARB (GLenum target, const GLshort *v); +GLAPI void APIENTRY glMultiTexCoord4dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +GLAPI void APIENTRY glMultiTexCoord4dvARB (GLenum target, const GLdouble *v); +GLAPI void APIENTRY glMultiTexCoord4fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +GLAPI void APIENTRY glMultiTexCoord4fvARB (GLenum target, const GLfloat *v); +GLAPI void APIENTRY glMultiTexCoord4iARB (GLenum target, GLint s, GLint t, GLint r, GLint q); +GLAPI void APIENTRY glMultiTexCoord4ivARB (GLenum target, const GLint *v); +GLAPI void APIENTRY glMultiTexCoord4sARB (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +GLAPI void APIENTRY glMultiTexCoord4svARB (GLenum target, const GLshort *v); +#endif +#endif /* GL_ARB_multitexture */ + +#ifndef GL_ARB_occlusion_query +#define GL_ARB_occlusion_query 1 +#define GL_QUERY_COUNTER_BITS_ARB 0x8864 +#define GL_CURRENT_QUERY_ARB 0x8865 +#define GL_QUERY_RESULT_ARB 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 +#define GL_SAMPLES_PASSED_ARB 0x8914 +typedef void (APIENTRYP PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISQUERYARBPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLENDQUERYARBPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenQueriesARB (GLsizei n, GLuint *ids); +GLAPI void APIENTRY glDeleteQueriesARB (GLsizei n, const GLuint *ids); +GLAPI GLboolean APIENTRY glIsQueryARB (GLuint id); +GLAPI void APIENTRY glBeginQueryARB (GLenum target, GLuint id); +GLAPI void APIENTRY glEndQueryARB (GLenum target); +GLAPI void APIENTRY glGetQueryivARB (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetQueryObjectivARB (GLuint id, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetQueryObjectuivARB (GLuint id, GLenum pname, GLuint *params); +#endif +#endif /* GL_ARB_occlusion_query */ + +#ifndef GL_ARB_occlusion_query2 +#define GL_ARB_occlusion_query2 1 +#endif /* GL_ARB_occlusion_query2 */ + +#ifndef GL_ARB_parallel_shader_compile +#define GL_ARB_parallel_shader_compile 1 +#define GL_MAX_SHADER_COMPILER_THREADS_ARB 0x91B0 +#define GL_COMPLETION_STATUS_ARB 0x91B1 +typedef void (APIENTRYP PFNGLMAXSHADERCOMPILERTHREADSARBPROC) (GLuint count); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMaxShaderCompilerThreadsARB (GLuint count); +#endif +#endif /* GL_ARB_parallel_shader_compile */ + +#ifndef GL_ARB_pipeline_statistics_query +#define GL_ARB_pipeline_statistics_query 1 +#define GL_VERTICES_SUBMITTED_ARB 0x82EE +#define GL_PRIMITIVES_SUBMITTED_ARB 0x82EF +#define GL_VERTEX_SHADER_INVOCATIONS_ARB 0x82F0 +#define GL_TESS_CONTROL_SHADER_PATCHES_ARB 0x82F1 +#define GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB 0x82F2 +#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB 0x82F3 +#define GL_FRAGMENT_SHADER_INVOCATIONS_ARB 0x82F4 +#define GL_COMPUTE_SHADER_INVOCATIONS_ARB 0x82F5 +#define GL_CLIPPING_INPUT_PRIMITIVES_ARB 0x82F6 +#define GL_CLIPPING_OUTPUT_PRIMITIVES_ARB 0x82F7 +#endif /* GL_ARB_pipeline_statistics_query */ + +#ifndef GL_ARB_pixel_buffer_object +#define GL_ARB_pixel_buffer_object 1 +#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF +#endif /* GL_ARB_pixel_buffer_object */ + +#ifndef GL_ARB_point_parameters +#define GL_ARB_point_parameters 1 +#define GL_POINT_SIZE_MIN_ARB 0x8126 +#define GL_POINT_SIZE_MAX_ARB 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 +typedef void (APIENTRYP PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameterfARB (GLenum pname, GLfloat param); +GLAPI void APIENTRY glPointParameterfvARB (GLenum pname, const GLfloat *params); +#endif +#endif /* GL_ARB_point_parameters */ + +#ifndef GL_ARB_point_sprite +#define GL_ARB_point_sprite 1 +#define GL_POINT_SPRITE_ARB 0x8861 +#define GL_COORD_REPLACE_ARB 0x8862 +#endif /* GL_ARB_point_sprite */ + +#ifndef GL_ARB_polygon_offset_clamp +#define GL_ARB_polygon_offset_clamp 1 +#endif /* GL_ARB_polygon_offset_clamp */ + +#ifndef GL_ARB_post_depth_coverage +#define GL_ARB_post_depth_coverage 1 +#endif /* GL_ARB_post_depth_coverage */ + +#ifndef GL_ARB_program_interface_query +#define GL_ARB_program_interface_query 1 +#endif /* GL_ARB_program_interface_query */ + +#ifndef GL_ARB_provoking_vertex +#define GL_ARB_provoking_vertex 1 +#endif /* GL_ARB_provoking_vertex */ + +#ifndef GL_ARB_query_buffer_object +#define GL_ARB_query_buffer_object 1 +#endif /* GL_ARB_query_buffer_object */ + +#ifndef GL_ARB_robust_buffer_access_behavior +#define GL_ARB_robust_buffer_access_behavior 1 +#endif /* GL_ARB_robust_buffer_access_behavior */ + +#ifndef GL_ARB_robustness +#define GL_ARB_robustness 1 +#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004 +#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 +#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253 +#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254 +#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255 +#define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 +#define GL_NO_RESET_NOTIFICATION_ARB 0x8261 +typedef GLenum (APIENTRYP PFNGLGETGRAPHICSRESETSTATUSARBPROC) (void); +typedef void (APIENTRYP PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *img); +typedef void (APIENTRYP PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +typedef void (APIENTRYP PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, void *img); +typedef void (APIENTRYP PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); +typedef void (APIENTRYP PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); +typedef void (APIENTRYP PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); +typedef void (APIENTRYP PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); +typedef void (APIENTRYP PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); +typedef void (APIENTRYP PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); +typedef void (APIENTRYP PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint *v); +typedef void (APIENTRYP PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat *values); +typedef void (APIENTRYP PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint *values); +typedef void (APIENTRYP PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort *values); +typedef void (APIENTRYP PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte *pattern); +typedef void (APIENTRYP PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); +typedef void (APIENTRYP PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); +typedef void (APIENTRYP PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); +typedef void (APIENTRYP PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); +typedef void (APIENTRYP PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLenum APIENTRY glGetGraphicsResetStatusARB (void); +GLAPI void APIENTRY glGetnTexImageARB (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *img); +GLAPI void APIENTRY glReadnPixelsARB (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +GLAPI void APIENTRY glGetnCompressedTexImageARB (GLenum target, GLint lod, GLsizei bufSize, void *img); +GLAPI void APIENTRY glGetnUniformfvARB (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); +GLAPI void APIENTRY glGetnUniformivARB (GLuint program, GLint location, GLsizei bufSize, GLint *params); +GLAPI void APIENTRY glGetnUniformuivARB (GLuint program, GLint location, GLsizei bufSize, GLuint *params); +GLAPI void APIENTRY glGetnUniformdvARB (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); +GLAPI void APIENTRY glGetnMapdvARB (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); +GLAPI void APIENTRY glGetnMapfvARB (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); +GLAPI void APIENTRY glGetnMapivARB (GLenum target, GLenum query, GLsizei bufSize, GLint *v); +GLAPI void APIENTRY glGetnPixelMapfvARB (GLenum map, GLsizei bufSize, GLfloat *values); +GLAPI void APIENTRY glGetnPixelMapuivARB (GLenum map, GLsizei bufSize, GLuint *values); +GLAPI void APIENTRY glGetnPixelMapusvARB (GLenum map, GLsizei bufSize, GLushort *values); +GLAPI void APIENTRY glGetnPolygonStippleARB (GLsizei bufSize, GLubyte *pattern); +GLAPI void APIENTRY glGetnColorTableARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); +GLAPI void APIENTRY glGetnConvolutionFilterARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); +GLAPI void APIENTRY glGetnSeparableFilterARB (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); +GLAPI void APIENTRY glGetnHistogramARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); +GLAPI void APIENTRY glGetnMinmaxARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); +#endif +#endif /* GL_ARB_robustness */ + +#ifndef GL_ARB_robustness_isolation +#define GL_ARB_robustness_isolation 1 +#endif /* GL_ARB_robustness_isolation */ + +#ifndef GL_ARB_sample_locations +#define GL_ARB_sample_locations 1 +#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 +typedef void (APIENTRYP PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLEVALUATEDEPTHVALUESARBPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFramebufferSampleLocationsfvARB (GLenum target, GLuint start, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glNamedFramebufferSampleLocationsfvARB (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glEvaluateDepthValuesARB (void); +#endif +#endif /* GL_ARB_sample_locations */ + +#ifndef GL_ARB_sample_shading +#define GL_ARB_sample_shading 1 +#define GL_SAMPLE_SHADING_ARB 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 +typedef void (APIENTRYP PFNGLMINSAMPLESHADINGARBPROC) (GLfloat value); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMinSampleShadingARB (GLfloat value); +#endif +#endif /* GL_ARB_sample_shading */ + +#ifndef GL_ARB_sampler_objects +#define GL_ARB_sampler_objects 1 +#endif /* GL_ARB_sampler_objects */ + +#ifndef GL_ARB_seamless_cube_map +#define GL_ARB_seamless_cube_map 1 +#endif /* GL_ARB_seamless_cube_map */ + +#ifndef GL_ARB_seamless_cubemap_per_texture +#define GL_ARB_seamless_cubemap_per_texture 1 +#endif /* GL_ARB_seamless_cubemap_per_texture */ + +#ifndef GL_ARB_separate_shader_objects +#define GL_ARB_separate_shader_objects 1 +#endif /* GL_ARB_separate_shader_objects */ + +#ifndef GL_ARB_shader_atomic_counter_ops +#define GL_ARB_shader_atomic_counter_ops 1 +#endif /* GL_ARB_shader_atomic_counter_ops */ + +#ifndef GL_ARB_shader_atomic_counters +#define GL_ARB_shader_atomic_counters 1 +#endif /* GL_ARB_shader_atomic_counters */ + +#ifndef GL_ARB_shader_ballot +#define GL_ARB_shader_ballot 1 +#endif /* GL_ARB_shader_ballot */ + +#ifndef GL_ARB_shader_bit_encoding +#define GL_ARB_shader_bit_encoding 1 +#endif /* GL_ARB_shader_bit_encoding */ + +#ifndef GL_ARB_shader_clock +#define GL_ARB_shader_clock 1 +#endif /* GL_ARB_shader_clock */ + +#ifndef GL_ARB_shader_draw_parameters +#define GL_ARB_shader_draw_parameters 1 +#endif /* GL_ARB_shader_draw_parameters */ + +#ifndef GL_ARB_shader_group_vote +#define GL_ARB_shader_group_vote 1 +#endif /* GL_ARB_shader_group_vote */ + +#ifndef GL_ARB_shader_image_load_store +#define GL_ARB_shader_image_load_store 1 +#endif /* GL_ARB_shader_image_load_store */ + +#ifndef GL_ARB_shader_image_size +#define GL_ARB_shader_image_size 1 +#endif /* GL_ARB_shader_image_size */ + +#ifndef GL_ARB_shader_objects +#define GL_ARB_shader_objects 1 +#ifdef __APPLE__ +typedef void *GLhandleARB; +#else +typedef unsigned int GLhandleARB; +#endif +typedef char GLcharARB; +#define GL_PROGRAM_OBJECT_ARB 0x8B40 +#define GL_SHADER_OBJECT_ARB 0x8B48 +#define GL_OBJECT_TYPE_ARB 0x8B4E +#define GL_OBJECT_SUBTYPE_ARB 0x8B4F +#define GL_FLOAT_VEC2_ARB 0x8B50 +#define GL_FLOAT_VEC3_ARB 0x8B51 +#define GL_FLOAT_VEC4_ARB 0x8B52 +#define GL_INT_VEC2_ARB 0x8B53 +#define GL_INT_VEC3_ARB 0x8B54 +#define GL_INT_VEC4_ARB 0x8B55 +#define GL_BOOL_ARB 0x8B56 +#define GL_BOOL_VEC2_ARB 0x8B57 +#define GL_BOOL_VEC3_ARB 0x8B58 +#define GL_BOOL_VEC4_ARB 0x8B59 +#define GL_FLOAT_MAT2_ARB 0x8B5A +#define GL_FLOAT_MAT3_ARB 0x8B5B +#define GL_FLOAT_MAT4_ARB 0x8B5C +#define GL_SAMPLER_1D_ARB 0x8B5D +#define GL_SAMPLER_2D_ARB 0x8B5E +#define GL_SAMPLER_3D_ARB 0x8B5F +#define GL_SAMPLER_CUBE_ARB 0x8B60 +#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 +#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 +#define GL_SAMPLER_2D_RECT_ARB 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 +#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 +#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 +#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 +#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 +#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 +#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 +#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 +#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 +#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 +typedef void (APIENTRYP PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); +typedef GLhandleARB (APIENTRYP PFNGLGETHANDLEARBPROC) (GLenum pname); +typedef void (APIENTRYP PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); +typedef GLhandleARB (APIENTRYP PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); +typedef void (APIENTRYP PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length); +typedef void (APIENTRYP PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); +typedef GLhandleARB (APIENTRYP PFNGLCREATEPROGRAMOBJECTARBPROC) (void); +typedef void (APIENTRYP PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); +typedef void (APIENTRYP PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); +typedef void (APIENTRYP PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); +typedef void (APIENTRYP PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); +typedef void (APIENTRYP PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); +typedef void (APIENTRYP PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); +typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +typedef void (APIENTRYP PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params); +typedef void (APIENTRYP PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params); +typedef void (APIENTRYP PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDeleteObjectARB (GLhandleARB obj); +GLAPI GLhandleARB APIENTRY glGetHandleARB (GLenum pname); +GLAPI void APIENTRY glDetachObjectARB (GLhandleARB containerObj, GLhandleARB attachedObj); +GLAPI GLhandleARB APIENTRY glCreateShaderObjectARB (GLenum shaderType); +GLAPI void APIENTRY glShaderSourceARB (GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length); +GLAPI void APIENTRY glCompileShaderARB (GLhandleARB shaderObj); +GLAPI GLhandleARB APIENTRY glCreateProgramObjectARB (void); +GLAPI void APIENTRY glAttachObjectARB (GLhandleARB containerObj, GLhandleARB obj); +GLAPI void APIENTRY glLinkProgramARB (GLhandleARB programObj); +GLAPI void APIENTRY glUseProgramObjectARB (GLhandleARB programObj); +GLAPI void APIENTRY glValidateProgramARB (GLhandleARB programObj); +GLAPI void APIENTRY glUniform1fARB (GLint location, GLfloat v0); +GLAPI void APIENTRY glUniform2fARB (GLint location, GLfloat v0, GLfloat v1); +GLAPI void APIENTRY glUniform3fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GLAPI void APIENTRY glUniform4fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GLAPI void APIENTRY glUniform1iARB (GLint location, GLint v0); +GLAPI void APIENTRY glUniform2iARB (GLint location, GLint v0, GLint v1); +GLAPI void APIENTRY glUniform3iARB (GLint location, GLint v0, GLint v1, GLint v2); +GLAPI void APIENTRY glUniform4iARB (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GLAPI void APIENTRY glUniform1fvARB (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform2fvARB (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform3fvARB (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform4fvARB (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform1ivARB (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform2ivARB (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform3ivARB (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform4ivARB (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniformMatrix2fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix3fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix4fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glGetObjectParameterfvARB (GLhandleARB obj, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetObjectParameterivARB (GLhandleARB obj, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetInfoLogARB (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); +GLAPI void APIENTRY glGetAttachedObjectsARB (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); +GLAPI GLint APIENTRY glGetUniformLocationARB (GLhandleARB programObj, const GLcharARB *name); +GLAPI void APIENTRY glGetActiveUniformARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +GLAPI void APIENTRY glGetUniformfvARB (GLhandleARB programObj, GLint location, GLfloat *params); +GLAPI void APIENTRY glGetUniformivARB (GLhandleARB programObj, GLint location, GLint *params); +GLAPI void APIENTRY glGetShaderSourceARB (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); +#endif +#endif /* GL_ARB_shader_objects */ + +#ifndef GL_ARB_shader_precision +#define GL_ARB_shader_precision 1 +#endif /* GL_ARB_shader_precision */ + +#ifndef GL_ARB_shader_stencil_export +#define GL_ARB_shader_stencil_export 1 +#endif /* GL_ARB_shader_stencil_export */ + +#ifndef GL_ARB_shader_storage_buffer_object +#define GL_ARB_shader_storage_buffer_object 1 +#endif /* GL_ARB_shader_storage_buffer_object */ + +#ifndef GL_ARB_shader_subroutine +#define GL_ARB_shader_subroutine 1 +#endif /* GL_ARB_shader_subroutine */ + +#ifndef GL_ARB_shader_texture_image_samples +#define GL_ARB_shader_texture_image_samples 1 +#endif /* GL_ARB_shader_texture_image_samples */ + +#ifndef GL_ARB_shader_texture_lod +#define GL_ARB_shader_texture_lod 1 +#endif /* GL_ARB_shader_texture_lod */ + +#ifndef GL_ARB_shader_viewport_layer_array +#define GL_ARB_shader_viewport_layer_array 1 +#endif /* GL_ARB_shader_viewport_layer_array */ + +#ifndef GL_ARB_shading_language_100 +#define GL_ARB_shading_language_100 1 +#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C +#endif /* GL_ARB_shading_language_100 */ + +#ifndef GL_ARB_shading_language_420pack +#define GL_ARB_shading_language_420pack 1 +#endif /* GL_ARB_shading_language_420pack */ + +#ifndef GL_ARB_shading_language_include +#define GL_ARB_shading_language_include 1 +#define GL_SHADER_INCLUDE_ARB 0x8DAE +#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 +#define GL_NAMED_STRING_TYPE_ARB 0x8DEA +typedef void (APIENTRYP PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); +typedef void (APIENTRYP PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); +typedef void (APIENTRYP PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar *const*path, const GLint *length); +typedef GLboolean (APIENTRYP PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); +typedef void (APIENTRYP PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); +typedef void (APIENTRYP PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const GLchar *name, GLenum pname, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glNamedStringARB (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); +GLAPI void APIENTRY glDeleteNamedStringARB (GLint namelen, const GLchar *name); +GLAPI void APIENTRY glCompileShaderIncludeARB (GLuint shader, GLsizei count, const GLchar *const*path, const GLint *length); +GLAPI GLboolean APIENTRY glIsNamedStringARB (GLint namelen, const GLchar *name); +GLAPI void APIENTRY glGetNamedStringARB (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); +GLAPI void APIENTRY glGetNamedStringivARB (GLint namelen, const GLchar *name, GLenum pname, GLint *params); +#endif +#endif /* GL_ARB_shading_language_include */ + +#ifndef GL_ARB_shading_language_packing +#define GL_ARB_shading_language_packing 1 +#endif /* GL_ARB_shading_language_packing */ + +#ifndef GL_ARB_shadow +#define GL_ARB_shadow 1 +#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C +#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D +#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E +#endif /* GL_ARB_shadow */ + +#ifndef GL_ARB_shadow_ambient +#define GL_ARB_shadow_ambient 1 +#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF +#endif /* GL_ARB_shadow_ambient */ + +#ifndef GL_ARB_sparse_buffer +#define GL_ARB_sparse_buffer 1 +#define GL_SPARSE_STORAGE_BIT_ARB 0x0400 +#define GL_SPARSE_BUFFER_PAGE_SIZE_ARB 0x82F8 +typedef void (APIENTRYP PFNGLBUFFERPAGECOMMITMENTARBPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit); +typedef void (APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit); +typedef void (APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBufferPageCommitmentARB (GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit); +GLAPI void APIENTRY glNamedBufferPageCommitmentEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit); +GLAPI void APIENTRY glNamedBufferPageCommitmentARB (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit); +#endif +#endif /* GL_ARB_sparse_buffer */ + +#ifndef GL_ARB_sparse_texture +#define GL_ARB_sparse_texture 1 +#define GL_TEXTURE_SPARSE_ARB 0x91A6 +#define GL_VIRTUAL_PAGE_SIZE_INDEX_ARB 0x91A7 +#define GL_NUM_SPARSE_LEVELS_ARB 0x91AA +#define GL_NUM_VIRTUAL_PAGE_SIZES_ARB 0x91A8 +#define GL_VIRTUAL_PAGE_SIZE_X_ARB 0x9195 +#define GL_VIRTUAL_PAGE_SIZE_Y_ARB 0x9196 +#define GL_VIRTUAL_PAGE_SIZE_Z_ARB 0x9197 +#define GL_MAX_SPARSE_TEXTURE_SIZE_ARB 0x9198 +#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB 0x9199 +#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB 0x919A +#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91A9 +typedef void (APIENTRYP PFNGLTEXPAGECOMMITMENTARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexPageCommitmentARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); +#endif +#endif /* GL_ARB_sparse_texture */ + +#ifndef GL_ARB_sparse_texture2 +#define GL_ARB_sparse_texture2 1 +#endif /* GL_ARB_sparse_texture2 */ + +#ifndef GL_ARB_sparse_texture_clamp +#define GL_ARB_sparse_texture_clamp 1 +#endif /* GL_ARB_sparse_texture_clamp */ + +#ifndef GL_ARB_spirv_extensions +#define GL_ARB_spirv_extensions 1 +#endif /* GL_ARB_spirv_extensions */ + +#ifndef GL_ARB_stencil_texturing +#define GL_ARB_stencil_texturing 1 +#endif /* GL_ARB_stencil_texturing */ + +#ifndef GL_ARB_sync +#define GL_ARB_sync 1 +#endif /* GL_ARB_sync */ + +#ifndef GL_ARB_tessellation_shader +#define GL_ARB_tessellation_shader 1 +#endif /* GL_ARB_tessellation_shader */ + +#ifndef GL_ARB_texture_barrier +#define GL_ARB_texture_barrier 1 +#endif /* GL_ARB_texture_barrier */ + +#ifndef GL_ARB_texture_border_clamp +#define GL_ARB_texture_border_clamp 1 +#define GL_CLAMP_TO_BORDER_ARB 0x812D +#endif /* GL_ARB_texture_border_clamp */ + +#ifndef GL_ARB_texture_buffer_object +#define GL_ARB_texture_buffer_object 1 +#define GL_TEXTURE_BUFFER_ARB 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D +#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E +typedef void (APIENTRYP PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexBufferARB (GLenum target, GLenum internalformat, GLuint buffer); +#endif +#endif /* GL_ARB_texture_buffer_object */ + +#ifndef GL_ARB_texture_buffer_object_rgb32 +#define GL_ARB_texture_buffer_object_rgb32 1 +#endif /* GL_ARB_texture_buffer_object_rgb32 */ + +#ifndef GL_ARB_texture_buffer_range +#define GL_ARB_texture_buffer_range 1 +#endif /* GL_ARB_texture_buffer_range */ + +#ifndef GL_ARB_texture_compression +#define GL_ARB_texture_compression 1 +#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_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); +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); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, void *img); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCompressedTexImage3DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexImage2DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexImage1DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexSubImage3DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexSubImage2DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glCompressedTexSubImage1DARB (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum target, GLint level, void *img); +#endif +#endif /* GL_ARB_texture_compression */ + +#ifndef GL_ARB_texture_compression_bptc +#define GL_ARB_texture_compression_bptc 1 +#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C +#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D +#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E +#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F +#endif /* GL_ARB_texture_compression_bptc */ + +#ifndef GL_ARB_texture_compression_rgtc +#define GL_ARB_texture_compression_rgtc 1 +#endif /* GL_ARB_texture_compression_rgtc */ + +#ifndef GL_ARB_texture_cube_map +#define GL_ARB_texture_cube_map 1 +#define GL_NORMAL_MAP_ARB 0x8511 +#define GL_REFLECTION_MAP_ARB 0x8512 +#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C +#endif /* GL_ARB_texture_cube_map */ + +#ifndef GL_ARB_texture_cube_map_array +#define GL_ARB_texture_cube_map_array 1 +#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F +#endif /* GL_ARB_texture_cube_map_array */ + +#ifndef GL_ARB_texture_env_add +#define GL_ARB_texture_env_add 1 +#endif /* GL_ARB_texture_env_add */ + +#ifndef GL_ARB_texture_env_combine +#define GL_ARB_texture_env_combine 1 +#define GL_COMBINE_ARB 0x8570 +#define GL_COMBINE_RGB_ARB 0x8571 +#define GL_COMBINE_ALPHA_ARB 0x8572 +#define GL_SOURCE0_RGB_ARB 0x8580 +#define GL_SOURCE1_RGB_ARB 0x8581 +#define GL_SOURCE2_RGB_ARB 0x8582 +#define GL_SOURCE0_ALPHA_ARB 0x8588 +#define GL_SOURCE1_ALPHA_ARB 0x8589 +#define GL_SOURCE2_ALPHA_ARB 0x858A +#define GL_OPERAND0_RGB_ARB 0x8590 +#define GL_OPERAND1_RGB_ARB 0x8591 +#define GL_OPERAND2_RGB_ARB 0x8592 +#define GL_OPERAND0_ALPHA_ARB 0x8598 +#define GL_OPERAND1_ALPHA_ARB 0x8599 +#define GL_OPERAND2_ALPHA_ARB 0x859A +#define GL_RGB_SCALE_ARB 0x8573 +#define GL_ADD_SIGNED_ARB 0x8574 +#define GL_INTERPOLATE_ARB 0x8575 +#define GL_SUBTRACT_ARB 0x84E7 +#define GL_CONSTANT_ARB 0x8576 +#define GL_PRIMARY_COLOR_ARB 0x8577 +#define GL_PREVIOUS_ARB 0x8578 +#endif /* GL_ARB_texture_env_combine */ + +#ifndef GL_ARB_texture_env_crossbar +#define GL_ARB_texture_env_crossbar 1 +#endif /* GL_ARB_texture_env_crossbar */ + +#ifndef GL_ARB_texture_env_dot3 +#define GL_ARB_texture_env_dot3 1 +#define GL_DOT3_RGB_ARB 0x86AE +#define GL_DOT3_RGBA_ARB 0x86AF +#endif /* GL_ARB_texture_env_dot3 */ + +#ifndef GL_ARB_texture_filter_anisotropic +#define GL_ARB_texture_filter_anisotropic 1 +#endif /* GL_ARB_texture_filter_anisotropic */ + +#ifndef GL_ARB_texture_filter_minmax +#define GL_ARB_texture_filter_minmax 1 +#define GL_TEXTURE_REDUCTION_MODE_ARB 0x9366 +#define GL_WEIGHTED_AVERAGE_ARB 0x9367 +#endif /* GL_ARB_texture_filter_minmax */ + +#ifndef GL_ARB_texture_float +#define GL_ARB_texture_float 1 +#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_RGB16F_ARB 0x881B +#define GL_ALPHA16F_ARB 0x881C +#define GL_INTENSITY16F_ARB 0x881D +#define GL_LUMINANCE16F_ARB 0x881E +#define GL_LUMINANCE_ALPHA16F_ARB 0x881F +#endif /* GL_ARB_texture_float */ + +#ifndef GL_ARB_texture_gather +#define GL_ARB_texture_gather 1 +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F +#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F +#endif /* GL_ARB_texture_gather */ + +#ifndef GL_ARB_texture_mirror_clamp_to_edge +#define GL_ARB_texture_mirror_clamp_to_edge 1 +#endif /* GL_ARB_texture_mirror_clamp_to_edge */ + +#ifndef GL_ARB_texture_mirrored_repeat +#define GL_ARB_texture_mirrored_repeat 1 +#define GL_MIRRORED_REPEAT_ARB 0x8370 +#endif /* GL_ARB_texture_mirrored_repeat */ + +#ifndef GL_ARB_texture_multisample +#define GL_ARB_texture_multisample 1 +#endif /* GL_ARB_texture_multisample */ + +#ifndef GL_ARB_texture_non_power_of_two +#define GL_ARB_texture_non_power_of_two 1 +#endif /* GL_ARB_texture_non_power_of_two */ + +#ifndef GL_ARB_texture_query_levels +#define GL_ARB_texture_query_levels 1 +#endif /* GL_ARB_texture_query_levels */ + +#ifndef GL_ARB_texture_query_lod +#define GL_ARB_texture_query_lod 1 +#endif /* GL_ARB_texture_query_lod */ + +#ifndef GL_ARB_texture_rectangle +#define GL_ARB_texture_rectangle 1 +#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 +#endif /* GL_ARB_texture_rectangle */ + +#ifndef GL_ARB_texture_rg +#define GL_ARB_texture_rg 1 +#endif /* GL_ARB_texture_rg */ + +#ifndef GL_ARB_texture_rgb10_a2ui +#define GL_ARB_texture_rgb10_a2ui 1 +#endif /* GL_ARB_texture_rgb10_a2ui */ + +#ifndef GL_ARB_texture_stencil8 +#define GL_ARB_texture_stencil8 1 +#endif /* GL_ARB_texture_stencil8 */ + +#ifndef GL_ARB_texture_storage +#define GL_ARB_texture_storage 1 +#endif /* GL_ARB_texture_storage */ + +#ifndef GL_ARB_texture_storage_multisample +#define GL_ARB_texture_storage_multisample 1 +#endif /* GL_ARB_texture_storage_multisample */ + +#ifndef GL_ARB_texture_swizzle +#define GL_ARB_texture_swizzle 1 +#endif /* GL_ARB_texture_swizzle */ + +#ifndef GL_ARB_texture_view +#define GL_ARB_texture_view 1 +#endif /* GL_ARB_texture_view */ + +#ifndef GL_ARB_timer_query +#define GL_ARB_timer_query 1 +#endif /* GL_ARB_timer_query */ + +#ifndef GL_ARB_transform_feedback2 +#define GL_ARB_transform_feedback2 1 +#endif /* GL_ARB_transform_feedback2 */ + +#ifndef GL_ARB_transform_feedback3 +#define GL_ARB_transform_feedback3 1 +#endif /* GL_ARB_transform_feedback3 */ + +#ifndef GL_ARB_transform_feedback_instanced +#define GL_ARB_transform_feedback_instanced 1 +#endif /* GL_ARB_transform_feedback_instanced */ + +#ifndef GL_ARB_transform_feedback_overflow_query +#define GL_ARB_transform_feedback_overflow_query 1 +#define GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB 0x82EC +#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB 0x82ED +#endif /* GL_ARB_transform_feedback_overflow_query */ + +#ifndef GL_ARB_transpose_matrix +#define GL_ARB_transpose_matrix 1 +#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glLoadTransposeMatrixfARB (const GLfloat *m); +GLAPI void APIENTRY glLoadTransposeMatrixdARB (const GLdouble *m); +GLAPI void APIENTRY glMultTransposeMatrixfARB (const GLfloat *m); +GLAPI void APIENTRY glMultTransposeMatrixdARB (const GLdouble *m); +#endif +#endif /* GL_ARB_transpose_matrix */ + +#ifndef GL_ARB_uniform_buffer_object +#define GL_ARB_uniform_buffer_object 1 +#endif /* GL_ARB_uniform_buffer_object */ + +#ifndef GL_ARB_vertex_array_bgra +#define GL_ARB_vertex_array_bgra 1 +#endif /* GL_ARB_vertex_array_bgra */ + +#ifndef GL_ARB_vertex_array_object +#define GL_ARB_vertex_array_object 1 +#endif /* GL_ARB_vertex_array_object */ + +#ifndef GL_ARB_vertex_attrib_64bit +#define GL_ARB_vertex_attrib_64bit 1 +#endif /* GL_ARB_vertex_attrib_64bit */ + +#ifndef GL_ARB_vertex_attrib_binding +#define GL_ARB_vertex_attrib_binding 1 +#endif /* GL_ARB_vertex_attrib_binding */ + +#ifndef GL_ARB_vertex_blend +#define GL_ARB_vertex_blend 1 +#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 +#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 +#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 +#define GL_VERTEX_BLEND_ARB 0x86A7 +#define GL_CURRENT_WEIGHT_ARB 0x86A8 +#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 +#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA +#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB +#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC +#define GL_WEIGHT_ARRAY_ARB 0x86AD +#define GL_MODELVIEW0_ARB 0x1700 +#define GL_MODELVIEW1_ARB 0x850A +#define GL_MODELVIEW2_ARB 0x8722 +#define GL_MODELVIEW3_ARB 0x8723 +#define GL_MODELVIEW4_ARB 0x8724 +#define GL_MODELVIEW5_ARB 0x8725 +#define GL_MODELVIEW6_ARB 0x8726 +#define GL_MODELVIEW7_ARB 0x8727 +#define GL_MODELVIEW8_ARB 0x8728 +#define GL_MODELVIEW9_ARB 0x8729 +#define GL_MODELVIEW10_ARB 0x872A +#define GL_MODELVIEW11_ARB 0x872B +#define GL_MODELVIEW12_ARB 0x872C +#define GL_MODELVIEW13_ARB 0x872D +#define GL_MODELVIEW14_ARB 0x872E +#define GL_MODELVIEW15_ARB 0x872F +#define GL_MODELVIEW16_ARB 0x8730 +#define GL_MODELVIEW17_ARB 0x8731 +#define GL_MODELVIEW18_ARB 0x8732 +#define GL_MODELVIEW19_ARB 0x8733 +#define GL_MODELVIEW20_ARB 0x8734 +#define GL_MODELVIEW21_ARB 0x8735 +#define GL_MODELVIEW22_ARB 0x8736 +#define GL_MODELVIEW23_ARB 0x8737 +#define GL_MODELVIEW24_ARB 0x8738 +#define GL_MODELVIEW25_ARB 0x8739 +#define GL_MODELVIEW26_ARB 0x873A +#define GL_MODELVIEW27_ARB 0x873B +#define GL_MODELVIEW28_ARB 0x873C +#define GL_MODELVIEW29_ARB 0x873D +#define GL_MODELVIEW30_ARB 0x873E +#define GL_MODELVIEW31_ARB 0x873F +typedef void (APIENTRYP PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights); +typedef void (APIENTRYP PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights); +typedef void (APIENTRYP PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights); +typedef void (APIENTRYP PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights); +typedef void (APIENTRYP PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights); +typedef void (APIENTRYP PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights); +typedef void (APIENTRYP PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights); +typedef void (APIENTRYP PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights); +typedef void (APIENTRYP PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLVERTEXBLENDARBPROC) (GLint count); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glWeightbvARB (GLint size, const GLbyte *weights); +GLAPI void APIENTRY glWeightsvARB (GLint size, const GLshort *weights); +GLAPI void APIENTRY glWeightivARB (GLint size, const GLint *weights); +GLAPI void APIENTRY glWeightfvARB (GLint size, const GLfloat *weights); +GLAPI void APIENTRY glWeightdvARB (GLint size, const GLdouble *weights); +GLAPI void APIENTRY glWeightubvARB (GLint size, const GLubyte *weights); +GLAPI void APIENTRY glWeightusvARB (GLint size, const GLushort *weights); +GLAPI void APIENTRY glWeightuivARB (GLint size, const GLuint *weights); +GLAPI void APIENTRY glWeightPointerARB (GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glVertexBlendARB (GLint count); +#endif +#endif /* GL_ARB_vertex_blend */ + +#ifndef GL_ARB_vertex_buffer_object +#define GL_ARB_vertex_buffer_object 1 +typedef khronos_ssize_t GLsizeiptrARB; +typedef khronos_intptr_t GLintptrARB; +#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 +typedef void (APIENTRYP PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); +typedef void (APIENTRYP PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers); +typedef void (APIENTRYP PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers); +typedef GLboolean (APIENTRYP PFNGLISBUFFERARBPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage); +typedef void (APIENTRYP PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data); +typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data); +typedef void *(APIENTRYP PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); +typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERARBPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, void **params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindBufferARB (GLenum target, GLuint buffer); +GLAPI void APIENTRY glDeleteBuffersARB (GLsizei n, const GLuint *buffers); +GLAPI void APIENTRY glGenBuffersARB (GLsizei n, GLuint *buffers); +GLAPI GLboolean APIENTRY glIsBufferARB (GLuint buffer); +GLAPI void APIENTRY glBufferDataARB (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage); +GLAPI void APIENTRY glBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data); +GLAPI void APIENTRY glGetBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data); +GLAPI void *APIENTRY glMapBufferARB (GLenum target, GLenum access); +GLAPI GLboolean APIENTRY glUnmapBufferARB (GLenum target); +GLAPI void APIENTRY glGetBufferParameterivARB (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetBufferPointervARB (GLenum target, GLenum pname, void **params); +#endif +#endif /* GL_ARB_vertex_buffer_object */ + +#ifndef GL_ARB_vertex_program +#define GL_ARB_vertex_program 1 +#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_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 +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); +typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, void **pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttrib1dARB (GLuint index, GLdouble x); +GLAPI void APIENTRY glVertexAttrib1dvARB (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib1fARB (GLuint index, GLfloat x); +GLAPI void APIENTRY glVertexAttrib1fvARB (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib1sARB (GLuint index, GLshort x); +GLAPI void APIENTRY glVertexAttrib1svARB (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib2dARB (GLuint index, GLdouble x, GLdouble y); +GLAPI void APIENTRY glVertexAttrib2dvARB (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib2fARB (GLuint index, GLfloat x, GLfloat y); +GLAPI void APIENTRY glVertexAttrib2fvARB (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib2sARB (GLuint index, GLshort x, GLshort y); +GLAPI void APIENTRY glVertexAttrib2svARB (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib3dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glVertexAttrib3dvARB (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib3fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glVertexAttrib3fvARB (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib3sARB (GLuint index, GLshort x, GLshort y, GLshort z); +GLAPI void APIENTRY glVertexAttrib3svARB (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4NbvARB (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttrib4NivARB (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttrib4NsvARB (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4NubARB (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +GLAPI void APIENTRY glVertexAttrib4NubvARB (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttrib4NuivARB (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttrib4NusvARB (GLuint index, const GLushort *v); +GLAPI void APIENTRY glVertexAttrib4bvARB (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttrib4dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glVertexAttrib4dvARB (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib4fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glVertexAttrib4fvARB (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib4ivARB (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttrib4sARB (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void APIENTRY glVertexAttrib4svARB (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4ubvARB (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttrib4uivARB (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttrib4usvARB (GLuint index, const GLushort *v); +GLAPI void APIENTRY glVertexAttribPointerARB (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glEnableVertexAttribArrayARB (GLuint index); +GLAPI void APIENTRY glDisableVertexAttribArrayARB (GLuint index); +GLAPI void APIENTRY glGetVertexAttribdvARB (GLuint index, GLenum pname, GLdouble *params); +GLAPI void APIENTRY glGetVertexAttribfvARB (GLuint index, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetVertexAttribivARB (GLuint index, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVertexAttribPointervARB (GLuint index, GLenum pname, void **pointer); +#endif +#endif /* GL_ARB_vertex_program */ + +#ifndef GL_ARB_vertex_shader +#define GL_ARB_vertex_shader 1 +#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 +typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name); +typedef void (APIENTRYP PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindAttribLocationARB (GLhandleARB programObj, GLuint index, const GLcharARB *name); +GLAPI void APIENTRY glGetActiveAttribARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +GLAPI GLint APIENTRY glGetAttribLocationARB (GLhandleARB programObj, const GLcharARB *name); +#endif +#endif /* GL_ARB_vertex_shader */ + +#ifndef GL_ARB_vertex_type_10f_11f_11f_rev +#define GL_ARB_vertex_type_10f_11f_11f_rev 1 +#endif /* GL_ARB_vertex_type_10f_11f_11f_rev */ + +#ifndef GL_ARB_vertex_type_2_10_10_10_rev +#define GL_ARB_vertex_type_2_10_10_10_rev 1 +#endif /* GL_ARB_vertex_type_2_10_10_10_rev */ + +#ifndef GL_ARB_viewport_array +#define GL_ARB_viewport_array 1 +typedef void (APIENTRYP PFNGLDEPTHRANGEARRAYDVNVPROC) (GLuint first, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLDEPTHRANGEINDEXEDDNVPROC) (GLuint index, GLdouble n, GLdouble f); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDepthRangeArraydvNV (GLuint first, GLsizei count, const GLdouble *v); +GLAPI void APIENTRY glDepthRangeIndexeddNV (GLuint index, GLdouble n, GLdouble f); +#endif +#endif /* GL_ARB_viewport_array */ + +#ifndef GL_ARB_window_pos +#define GL_ARB_window_pos 1 +typedef void (APIENTRYP PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); +typedef void (APIENTRYP PFNGLWINDOWPOS2IVARBPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLWINDOWPOS3IVARBPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLWINDOWPOS3SVARBPROC) (const GLshort *v); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glWindowPos2dARB (GLdouble x, GLdouble y); +GLAPI void APIENTRY glWindowPos2dvARB (const GLdouble *v); +GLAPI void APIENTRY glWindowPos2fARB (GLfloat x, GLfloat y); +GLAPI void APIENTRY glWindowPos2fvARB (const GLfloat *v); +GLAPI void APIENTRY glWindowPos2iARB (GLint x, GLint y); +GLAPI void APIENTRY glWindowPos2ivARB (const GLint *v); +GLAPI void APIENTRY glWindowPos2sARB (GLshort x, GLshort y); +GLAPI void APIENTRY glWindowPos2svARB (const GLshort *v); +GLAPI void APIENTRY glWindowPos3dARB (GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glWindowPos3dvARB (const GLdouble *v); +GLAPI void APIENTRY glWindowPos3fARB (GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glWindowPos3fvARB (const GLfloat *v); +GLAPI void APIENTRY glWindowPos3iARB (GLint x, GLint y, GLint z); +GLAPI void APIENTRY glWindowPos3ivARB (const GLint *v); +GLAPI void APIENTRY glWindowPos3sARB (GLshort x, GLshort y, GLshort z); +GLAPI void APIENTRY glWindowPos3svARB (const GLshort *v); +#endif +#endif /* GL_ARB_window_pos */ + +#ifndef GL_KHR_blend_equation_advanced +#define GL_KHR_blend_equation_advanced 1 +#define GL_MULTIPLY_KHR 0x9294 +#define GL_SCREEN_KHR 0x9295 +#define GL_OVERLAY_KHR 0x9296 +#define GL_DARKEN_KHR 0x9297 +#define GL_LIGHTEN_KHR 0x9298 +#define GL_COLORDODGE_KHR 0x9299 +#define GL_COLORBURN_KHR 0x929A +#define GL_HARDLIGHT_KHR 0x929B +#define GL_SOFTLIGHT_KHR 0x929C +#define GL_DIFFERENCE_KHR 0x929E +#define GL_EXCLUSION_KHR 0x92A0 +#define GL_HSL_HUE_KHR 0x92AD +#define GL_HSL_SATURATION_KHR 0x92AE +#define GL_HSL_COLOR_KHR 0x92AF +#define GL_HSL_LUMINOSITY_KHR 0x92B0 +typedef void (APIENTRYP PFNGLBLENDBARRIERKHRPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendBarrierKHR (void); +#endif +#endif /* GL_KHR_blend_equation_advanced */ + +#ifndef GL_KHR_blend_equation_advanced_coherent +#define GL_KHR_blend_equation_advanced_coherent 1 +#define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285 +#endif /* GL_KHR_blend_equation_advanced_coherent */ + +#ifndef GL_KHR_context_flush_control +#define GL_KHR_context_flush_control 1 +#endif /* GL_KHR_context_flush_control */ + +#ifndef GL_KHR_debug +#define GL_KHR_debug 1 +#endif /* GL_KHR_debug */ + +#ifndef GL_KHR_no_error +#define GL_KHR_no_error 1 +#define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR 0x00000008 +#endif /* GL_KHR_no_error */ + +#ifndef GL_KHR_parallel_shader_compile +#define GL_KHR_parallel_shader_compile 1 +#define GL_MAX_SHADER_COMPILER_THREADS_KHR 0x91B0 +#define GL_COMPLETION_STATUS_KHR 0x91B1 +typedef void (APIENTRYP PFNGLMAXSHADERCOMPILERTHREADSKHRPROC) (GLuint count); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMaxShaderCompilerThreadsKHR (GLuint count); +#endif +#endif /* GL_KHR_parallel_shader_compile */ + +#ifndef GL_KHR_robust_buffer_access_behavior +#define GL_KHR_robust_buffer_access_behavior 1 +#endif /* GL_KHR_robust_buffer_access_behavior */ + +#ifndef GL_KHR_robustness +#define GL_KHR_robustness 1 +#define GL_CONTEXT_ROBUST_ACCESS 0x90F3 +#endif /* GL_KHR_robustness */ + +#ifndef GL_KHR_shader_subgroup +#define GL_KHR_shader_subgroup 1 +#define GL_SUBGROUP_SIZE_KHR 0x9532 +#define GL_SUBGROUP_SUPPORTED_STAGES_KHR 0x9533 +#define GL_SUBGROUP_SUPPORTED_FEATURES_KHR 0x9534 +#define GL_SUBGROUP_QUAD_ALL_STAGES_KHR 0x9535 +#define GL_SUBGROUP_FEATURE_BASIC_BIT_KHR 0x00000001 +#define GL_SUBGROUP_FEATURE_VOTE_BIT_KHR 0x00000002 +#define GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR 0x00000004 +#define GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR 0x00000008 +#define GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR 0x00000010 +#define GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR 0x00000020 +#define GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR 0x00000040 +#define GL_SUBGROUP_FEATURE_QUAD_BIT_KHR 0x00000080 +#endif /* GL_KHR_shader_subgroup */ + +#ifndef GL_KHR_texture_compression_astc_hdr +#define GL_KHR_texture_compression_astc_hdr 1 +#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 +#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 +#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 +#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 +#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 +#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 +#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 +#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 +#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 +#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 +#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA +#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB +#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC +#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD +#endif /* GL_KHR_texture_compression_astc_hdr */ + +#ifndef GL_KHR_texture_compression_astc_ldr +#define GL_KHR_texture_compression_astc_ldr 1 +#endif /* GL_KHR_texture_compression_astc_ldr */ + +#ifndef GL_KHR_texture_compression_astc_sliced_3d +#define GL_KHR_texture_compression_astc_sliced_3d 1 +#endif /* GL_KHR_texture_compression_astc_sliced_3d */ + +#ifndef GL_OES_byte_coordinates +#define GL_OES_byte_coordinates 1 +typedef void (APIENTRYP PFNGLMULTITEXCOORD1BOESPROC) (GLenum texture, GLbyte s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1BVOESPROC) (GLenum texture, const GLbyte *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2BOESPROC) (GLenum texture, GLbyte s, GLbyte t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2BVOESPROC) (GLenum texture, const GLbyte *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3BOESPROC) (GLenum texture, GLbyte s, GLbyte t, GLbyte r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3BVOESPROC) (GLenum texture, const GLbyte *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4BOESPROC) (GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4BVOESPROC) (GLenum texture, const GLbyte *coords); +typedef void (APIENTRYP PFNGLTEXCOORD1BOESPROC) (GLbyte s); +typedef void (APIENTRYP PFNGLTEXCOORD1BVOESPROC) (const GLbyte *coords); +typedef void (APIENTRYP PFNGLTEXCOORD2BOESPROC) (GLbyte s, GLbyte t); +typedef void (APIENTRYP PFNGLTEXCOORD2BVOESPROC) (const GLbyte *coords); +typedef void (APIENTRYP PFNGLTEXCOORD3BOESPROC) (GLbyte s, GLbyte t, GLbyte r); +typedef void (APIENTRYP PFNGLTEXCOORD3BVOESPROC) (const GLbyte *coords); +typedef void (APIENTRYP PFNGLTEXCOORD4BOESPROC) (GLbyte s, GLbyte t, GLbyte r, GLbyte q); +typedef void (APIENTRYP PFNGLTEXCOORD4BVOESPROC) (const GLbyte *coords); +typedef void (APIENTRYP PFNGLVERTEX2BOESPROC) (GLbyte x, GLbyte y); +typedef void (APIENTRYP PFNGLVERTEX2BVOESPROC) (const GLbyte *coords); +typedef void (APIENTRYP PFNGLVERTEX3BOESPROC) (GLbyte x, GLbyte y, GLbyte z); +typedef void (APIENTRYP PFNGLVERTEX3BVOESPROC) (const GLbyte *coords); +typedef void (APIENTRYP PFNGLVERTEX4BOESPROC) (GLbyte x, GLbyte y, GLbyte z, GLbyte w); +typedef void (APIENTRYP PFNGLVERTEX4BVOESPROC) (const GLbyte *coords); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiTexCoord1bOES (GLenum texture, GLbyte s); +GLAPI void APIENTRY glMultiTexCoord1bvOES (GLenum texture, const GLbyte *coords); +GLAPI void APIENTRY glMultiTexCoord2bOES (GLenum texture, GLbyte s, GLbyte t); +GLAPI void APIENTRY glMultiTexCoord2bvOES (GLenum texture, const GLbyte *coords); +GLAPI void APIENTRY glMultiTexCoord3bOES (GLenum texture, GLbyte s, GLbyte t, GLbyte r); +GLAPI void APIENTRY glMultiTexCoord3bvOES (GLenum texture, const GLbyte *coords); +GLAPI void APIENTRY glMultiTexCoord4bOES (GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q); +GLAPI void APIENTRY glMultiTexCoord4bvOES (GLenum texture, const GLbyte *coords); +GLAPI void APIENTRY glTexCoord1bOES (GLbyte s); +GLAPI void APIENTRY glTexCoord1bvOES (const GLbyte *coords); +GLAPI void APIENTRY glTexCoord2bOES (GLbyte s, GLbyte t); +GLAPI void APIENTRY glTexCoord2bvOES (const GLbyte *coords); +GLAPI void APIENTRY glTexCoord3bOES (GLbyte s, GLbyte t, GLbyte r); +GLAPI void APIENTRY glTexCoord3bvOES (const GLbyte *coords); +GLAPI void APIENTRY glTexCoord4bOES (GLbyte s, GLbyte t, GLbyte r, GLbyte q); +GLAPI void APIENTRY glTexCoord4bvOES (const GLbyte *coords); +GLAPI void APIENTRY glVertex2bOES (GLbyte x, GLbyte y); +GLAPI void APIENTRY glVertex2bvOES (const GLbyte *coords); +GLAPI void APIENTRY glVertex3bOES (GLbyte x, GLbyte y, GLbyte z); +GLAPI void APIENTRY glVertex3bvOES (const GLbyte *coords); +GLAPI void APIENTRY glVertex4bOES (GLbyte x, GLbyte y, GLbyte z, GLbyte w); +GLAPI void APIENTRY glVertex4bvOES (const GLbyte *coords); +#endif +#endif /* GL_OES_byte_coordinates */ + +#ifndef GL_OES_compressed_paletted_texture +#define GL_OES_compressed_paletted_texture 1 +#define GL_PALETTE4_RGB8_OES 0x8B90 +#define GL_PALETTE4_RGBA8_OES 0x8B91 +#define GL_PALETTE4_R5_G6_B5_OES 0x8B92 +#define GL_PALETTE4_RGBA4_OES 0x8B93 +#define GL_PALETTE4_RGB5_A1_OES 0x8B94 +#define GL_PALETTE8_RGB8_OES 0x8B95 +#define GL_PALETTE8_RGBA8_OES 0x8B96 +#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 +#define GL_PALETTE8_RGBA4_OES 0x8B98 +#define GL_PALETTE8_RGB5_A1_OES 0x8B99 +#endif /* GL_OES_compressed_paletted_texture */ + +#ifndef GL_OES_fixed_point +#define GL_OES_fixed_point 1 +typedef khronos_int32_t GLfixed; +#define GL_FIXED_OES 0x140C +typedef void (APIENTRYP PFNGLALPHAFUNCXOESPROC) (GLenum func, GLfixed ref); +typedef void (APIENTRYP PFNGLCLEARCOLORXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +typedef void (APIENTRYP PFNGLCLEARDEPTHXOESPROC) (GLfixed depth); +typedef void (APIENTRYP PFNGLCLIPPLANEXOESPROC) (GLenum plane, const GLfixed *equation); +typedef void (APIENTRYP PFNGLCOLOR4XOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +typedef void (APIENTRYP PFNGLDEPTHRANGEXOESPROC) (GLfixed n, GLfixed f); +typedef void (APIENTRYP PFNGLFOGXOESPROC) (GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLFOGXVOESPROC) (GLenum pname, const GLfixed *param); +typedef void (APIENTRYP PFNGLFRUSTUMXOESPROC) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); +typedef void (APIENTRYP PFNGLGETCLIPPLANEXOESPROC) (GLenum plane, GLfixed *equation); +typedef void (APIENTRYP PFNGLGETFIXEDVOESPROC) (GLenum pname, GLfixed *params); +typedef void (APIENTRYP PFNGLGETTEXENVXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); +typedef void (APIENTRYP PFNGLLIGHTMODELXOESPROC) (GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLLIGHTMODELXVOESPROC) (GLenum pname, const GLfixed *param); +typedef void (APIENTRYP PFNGLLIGHTXOESPROC) (GLenum light, GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLLIGHTXVOESPROC) (GLenum light, GLenum pname, const GLfixed *params); +typedef void (APIENTRYP PFNGLLINEWIDTHXOESPROC) (GLfixed width); +typedef void (APIENTRYP PFNGLLOADMATRIXXOESPROC) (const GLfixed *m); +typedef void (APIENTRYP PFNGLMATERIALXOESPROC) (GLenum face, GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLMATERIALXVOESPROC) (GLenum face, GLenum pname, const GLfixed *param); +typedef void (APIENTRYP PFNGLMULTMATRIXXOESPROC) (const GLfixed *m); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4XOESPROC) (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); +typedef void (APIENTRYP PFNGLNORMAL3XOESPROC) (GLfixed nx, GLfixed ny, GLfixed nz); +typedef void (APIENTRYP PFNGLORTHOXOESPROC) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); +typedef void (APIENTRYP PFNGLPOINTPARAMETERXVOESPROC) (GLenum pname, const GLfixed *params); +typedef void (APIENTRYP PFNGLPOINTSIZEXOESPROC) (GLfixed size); +typedef void (APIENTRYP PFNGLPOLYGONOFFSETXOESPROC) (GLfixed factor, GLfixed units); +typedef void (APIENTRYP PFNGLROTATEXOESPROC) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); +typedef void (APIENTRYP PFNGLSCALEXOESPROC) (GLfixed x, GLfixed y, GLfixed z); +typedef void (APIENTRYP PFNGLTEXENVXOESPROC) (GLenum target, GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLTEXENVXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); +typedef void (APIENTRYP PFNGLTEXPARAMETERXOESPROC) (GLenum target, GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); +typedef void (APIENTRYP PFNGLTRANSLATEXOESPROC) (GLfixed x, GLfixed y, GLfixed z); +typedef void (APIENTRYP PFNGLACCUMXOESPROC) (GLenum op, GLfixed value); +typedef void (APIENTRYP PFNGLBITMAPXOESPROC) (GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte *bitmap); +typedef void (APIENTRYP PFNGLBLENDCOLORXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +typedef void (APIENTRYP PFNGLCLEARACCUMXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +typedef void (APIENTRYP PFNGLCOLOR3XOESPROC) (GLfixed red, GLfixed green, GLfixed blue); +typedef void (APIENTRYP PFNGLCOLOR3XVOESPROC) (const GLfixed *components); +typedef void (APIENTRYP PFNGLCOLOR4XVOESPROC) (const GLfixed *components); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERXOESPROC) (GLenum target, GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); +typedef void (APIENTRYP PFNGLEVALCOORD1XOESPROC) (GLfixed u); +typedef void (APIENTRYP PFNGLEVALCOORD1XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLEVALCOORD2XOESPROC) (GLfixed u, GLfixed v); +typedef void (APIENTRYP PFNGLEVALCOORD2XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLFEEDBACKBUFFERXOESPROC) (GLsizei n, GLenum type, const GLfixed *buffer); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); +typedef void (APIENTRYP PFNGLGETLIGHTXOESPROC) (GLenum light, GLenum pname, GLfixed *params); +typedef void (APIENTRYP PFNGLGETMAPXVOESPROC) (GLenum target, GLenum query, GLfixed *v); +typedef void (APIENTRYP PFNGLGETMATERIALXOESPROC) (GLenum face, GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLGETPIXELMAPXVPROC) (GLenum map, GLint size, GLfixed *values); +typedef void (APIENTRYP PFNGLGETTEXGENXVOESPROC) (GLenum coord, GLenum pname, GLfixed *params); +typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERXVOESPROC) (GLenum target, GLint level, GLenum pname, GLfixed *params); +typedef void (APIENTRYP PFNGLINDEXXOESPROC) (GLfixed component); +typedef void (APIENTRYP PFNGLINDEXXVOESPROC) (const GLfixed *component); +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXXOESPROC) (const GLfixed *m); +typedef void (APIENTRYP PFNGLMAP1XOESPROC) (GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points); +typedef void (APIENTRYP PFNGLMAP2XOESPROC) (GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points); +typedef void (APIENTRYP PFNGLMAPGRID1XOESPROC) (GLint n, GLfixed u1, GLfixed u2); +typedef void (APIENTRYP PFNGLMAPGRID2XOESPROC) (GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2); +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXXOESPROC) (const GLfixed *m); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1XOESPROC) (GLenum texture, GLfixed s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1XVOESPROC) (GLenum texture, const GLfixed *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2XOESPROC) (GLenum texture, GLfixed s, GLfixed t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2XVOESPROC) (GLenum texture, const GLfixed *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3XOESPROC) (GLenum texture, GLfixed s, GLfixed t, GLfixed r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3XVOESPROC) (GLenum texture, const GLfixed *coords); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4XVOESPROC) (GLenum texture, const GLfixed *coords); +typedef void (APIENTRYP PFNGLNORMAL3XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLPASSTHROUGHXOESPROC) (GLfixed token); +typedef void (APIENTRYP PFNGLPIXELMAPXPROC) (GLenum map, GLint size, const GLfixed *values); +typedef void (APIENTRYP PFNGLPIXELSTOREXPROC) (GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLPIXELTRANSFERXOESPROC) (GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLPIXELZOOMXOESPROC) (GLfixed xfactor, GLfixed yfactor); +typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESXOESPROC) (GLsizei n, const GLuint *textures, const GLfixed *priorities); +typedef void (APIENTRYP PFNGLRASTERPOS2XOESPROC) (GLfixed x, GLfixed y); +typedef void (APIENTRYP PFNGLRASTERPOS2XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLRASTERPOS3XOESPROC) (GLfixed x, GLfixed y, GLfixed z); +typedef void (APIENTRYP PFNGLRASTERPOS3XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLRASTERPOS4XOESPROC) (GLfixed x, GLfixed y, GLfixed z, GLfixed w); +typedef void (APIENTRYP PFNGLRASTERPOS4XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLRECTXOESPROC) (GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2); +typedef void (APIENTRYP PFNGLRECTXVOESPROC) (const GLfixed *v1, const GLfixed *v2); +typedef void (APIENTRYP PFNGLTEXCOORD1XOESPROC) (GLfixed s); +typedef void (APIENTRYP PFNGLTEXCOORD1XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLTEXCOORD2XOESPROC) (GLfixed s, GLfixed t); +typedef void (APIENTRYP PFNGLTEXCOORD2XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLTEXCOORD3XOESPROC) (GLfixed s, GLfixed t, GLfixed r); +typedef void (APIENTRYP PFNGLTEXCOORD3XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLTEXCOORD4XOESPROC) (GLfixed s, GLfixed t, GLfixed r, GLfixed q); +typedef void (APIENTRYP PFNGLTEXCOORD4XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLTEXGENXOESPROC) (GLenum coord, GLenum pname, GLfixed param); +typedef void (APIENTRYP PFNGLTEXGENXVOESPROC) (GLenum coord, GLenum pname, const GLfixed *params); +typedef void (APIENTRYP PFNGLVERTEX2XOESPROC) (GLfixed x); +typedef void (APIENTRYP PFNGLVERTEX2XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLVERTEX3XOESPROC) (GLfixed x, GLfixed y); +typedef void (APIENTRYP PFNGLVERTEX3XVOESPROC) (const GLfixed *coords); +typedef void (APIENTRYP PFNGLVERTEX4XOESPROC) (GLfixed x, GLfixed y, GLfixed z); +typedef void (APIENTRYP PFNGLVERTEX4XVOESPROC) (const GLfixed *coords); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glAlphaFuncxOES (GLenum func, GLfixed ref); +GLAPI void APIENTRY glClearColorxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +GLAPI void APIENTRY glClearDepthxOES (GLfixed depth); +GLAPI void APIENTRY glClipPlanexOES (GLenum plane, const GLfixed *equation); +GLAPI void APIENTRY glColor4xOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +GLAPI void APIENTRY glDepthRangexOES (GLfixed n, GLfixed f); +GLAPI void APIENTRY glFogxOES (GLenum pname, GLfixed param); +GLAPI void APIENTRY glFogxvOES (GLenum pname, const GLfixed *param); +GLAPI void APIENTRY glFrustumxOES (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); +GLAPI void APIENTRY glGetClipPlanexOES (GLenum plane, GLfixed *equation); +GLAPI void APIENTRY glGetFixedvOES (GLenum pname, GLfixed *params); +GLAPI void APIENTRY glGetTexEnvxvOES (GLenum target, GLenum pname, GLfixed *params); +GLAPI void APIENTRY glGetTexParameterxvOES (GLenum target, GLenum pname, GLfixed *params); +GLAPI void APIENTRY glLightModelxOES (GLenum pname, GLfixed param); +GLAPI void APIENTRY glLightModelxvOES (GLenum pname, const GLfixed *param); +GLAPI void APIENTRY glLightxOES (GLenum light, GLenum pname, GLfixed param); +GLAPI void APIENTRY glLightxvOES (GLenum light, GLenum pname, const GLfixed *params); +GLAPI void APIENTRY glLineWidthxOES (GLfixed width); +GLAPI void APIENTRY glLoadMatrixxOES (const GLfixed *m); +GLAPI void APIENTRY glMaterialxOES (GLenum face, GLenum pname, GLfixed param); +GLAPI void APIENTRY glMaterialxvOES (GLenum face, GLenum pname, const GLfixed *param); +GLAPI void APIENTRY glMultMatrixxOES (const GLfixed *m); +GLAPI void APIENTRY glMultiTexCoord4xOES (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); +GLAPI void APIENTRY glNormal3xOES (GLfixed nx, GLfixed ny, GLfixed nz); +GLAPI void APIENTRY glOrthoxOES (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); +GLAPI void APIENTRY glPointParameterxvOES (GLenum pname, const GLfixed *params); +GLAPI void APIENTRY glPointSizexOES (GLfixed size); +GLAPI void APIENTRY glPolygonOffsetxOES (GLfixed factor, GLfixed units); +GLAPI void APIENTRY glRotatexOES (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); +GLAPI void APIENTRY glScalexOES (GLfixed x, GLfixed y, GLfixed z); +GLAPI void APIENTRY glTexEnvxOES (GLenum target, GLenum pname, GLfixed param); +GLAPI void APIENTRY glTexEnvxvOES (GLenum target, GLenum pname, const GLfixed *params); +GLAPI void APIENTRY glTexParameterxOES (GLenum target, GLenum pname, GLfixed param); +GLAPI void APIENTRY glTexParameterxvOES (GLenum target, GLenum pname, const GLfixed *params); +GLAPI void APIENTRY glTranslatexOES (GLfixed x, GLfixed y, GLfixed z); +GLAPI void APIENTRY glAccumxOES (GLenum op, GLfixed value); +GLAPI void APIENTRY glBitmapxOES (GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte *bitmap); +GLAPI void APIENTRY glBlendColorxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +GLAPI void APIENTRY glClearAccumxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +GLAPI void APIENTRY glColor3xOES (GLfixed red, GLfixed green, GLfixed blue); +GLAPI void APIENTRY glColor3xvOES (const GLfixed *components); +GLAPI void APIENTRY glColor4xvOES (const GLfixed *components); +GLAPI void APIENTRY glConvolutionParameterxOES (GLenum target, GLenum pname, GLfixed param); +GLAPI void APIENTRY glConvolutionParameterxvOES (GLenum target, GLenum pname, const GLfixed *params); +GLAPI void APIENTRY glEvalCoord1xOES (GLfixed u); +GLAPI void APIENTRY glEvalCoord1xvOES (const GLfixed *coords); +GLAPI void APIENTRY glEvalCoord2xOES (GLfixed u, GLfixed v); +GLAPI void APIENTRY glEvalCoord2xvOES (const GLfixed *coords); +GLAPI void APIENTRY glFeedbackBufferxOES (GLsizei n, GLenum type, const GLfixed *buffer); +GLAPI void APIENTRY glGetConvolutionParameterxvOES (GLenum target, GLenum pname, GLfixed *params); +GLAPI void APIENTRY glGetHistogramParameterxvOES (GLenum target, GLenum pname, GLfixed *params); +GLAPI void APIENTRY glGetLightxOES (GLenum light, GLenum pname, GLfixed *params); +GLAPI void APIENTRY glGetMapxvOES (GLenum target, GLenum query, GLfixed *v); +GLAPI void APIENTRY glGetMaterialxOES (GLenum face, GLenum pname, GLfixed param); +GLAPI void APIENTRY glGetPixelMapxv (GLenum map, GLint size, GLfixed *values); +GLAPI void APIENTRY glGetTexGenxvOES (GLenum coord, GLenum pname, GLfixed *params); +GLAPI void APIENTRY glGetTexLevelParameterxvOES (GLenum target, GLint level, GLenum pname, GLfixed *params); +GLAPI void APIENTRY glIndexxOES (GLfixed component); +GLAPI void APIENTRY glIndexxvOES (const GLfixed *component); +GLAPI void APIENTRY glLoadTransposeMatrixxOES (const GLfixed *m); +GLAPI void APIENTRY glMap1xOES (GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points); +GLAPI void APIENTRY glMap2xOES (GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points); +GLAPI void APIENTRY glMapGrid1xOES (GLint n, GLfixed u1, GLfixed u2); +GLAPI void APIENTRY glMapGrid2xOES (GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2); +GLAPI void APIENTRY glMultTransposeMatrixxOES (const GLfixed *m); +GLAPI void APIENTRY glMultiTexCoord1xOES (GLenum texture, GLfixed s); +GLAPI void APIENTRY glMultiTexCoord1xvOES (GLenum texture, const GLfixed *coords); +GLAPI void APIENTRY glMultiTexCoord2xOES (GLenum texture, GLfixed s, GLfixed t); +GLAPI void APIENTRY glMultiTexCoord2xvOES (GLenum texture, const GLfixed *coords); +GLAPI void APIENTRY glMultiTexCoord3xOES (GLenum texture, GLfixed s, GLfixed t, GLfixed r); +GLAPI void APIENTRY glMultiTexCoord3xvOES (GLenum texture, const GLfixed *coords); +GLAPI void APIENTRY glMultiTexCoord4xvOES (GLenum texture, const GLfixed *coords); +GLAPI void APIENTRY glNormal3xvOES (const GLfixed *coords); +GLAPI void APIENTRY glPassThroughxOES (GLfixed token); +GLAPI void APIENTRY glPixelMapx (GLenum map, GLint size, const GLfixed *values); +GLAPI void APIENTRY glPixelStorex (GLenum pname, GLfixed param); +GLAPI void APIENTRY glPixelTransferxOES (GLenum pname, GLfixed param); +GLAPI void APIENTRY glPixelZoomxOES (GLfixed xfactor, GLfixed yfactor); +GLAPI void APIENTRY glPrioritizeTexturesxOES (GLsizei n, const GLuint *textures, const GLfixed *priorities); +GLAPI void APIENTRY glRasterPos2xOES (GLfixed x, GLfixed y); +GLAPI void APIENTRY glRasterPos2xvOES (const GLfixed *coords); +GLAPI void APIENTRY glRasterPos3xOES (GLfixed x, GLfixed y, GLfixed z); +GLAPI void APIENTRY glRasterPos3xvOES (const GLfixed *coords); +GLAPI void APIENTRY glRasterPos4xOES (GLfixed x, GLfixed y, GLfixed z, GLfixed w); +GLAPI void APIENTRY glRasterPos4xvOES (const GLfixed *coords); +GLAPI void APIENTRY glRectxOES (GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2); +GLAPI void APIENTRY glRectxvOES (const GLfixed *v1, const GLfixed *v2); +GLAPI void APIENTRY glTexCoord1xOES (GLfixed s); +GLAPI void APIENTRY glTexCoord1xvOES (const GLfixed *coords); +GLAPI void APIENTRY glTexCoord2xOES (GLfixed s, GLfixed t); +GLAPI void APIENTRY glTexCoord2xvOES (const GLfixed *coords); +GLAPI void APIENTRY glTexCoord3xOES (GLfixed s, GLfixed t, GLfixed r); +GLAPI void APIENTRY glTexCoord3xvOES (const GLfixed *coords); +GLAPI void APIENTRY glTexCoord4xOES (GLfixed s, GLfixed t, GLfixed r, GLfixed q); +GLAPI void APIENTRY glTexCoord4xvOES (const GLfixed *coords); +GLAPI void APIENTRY glTexGenxOES (GLenum coord, GLenum pname, GLfixed param); +GLAPI void APIENTRY glTexGenxvOES (GLenum coord, GLenum pname, const GLfixed *params); +GLAPI void APIENTRY glVertex2xOES (GLfixed x); +GLAPI void APIENTRY glVertex2xvOES (const GLfixed *coords); +GLAPI void APIENTRY glVertex3xOES (GLfixed x, GLfixed y); +GLAPI void APIENTRY glVertex3xvOES (const GLfixed *coords); +GLAPI void APIENTRY glVertex4xOES (GLfixed x, GLfixed y, GLfixed z); +GLAPI void APIENTRY glVertex4xvOES (const GLfixed *coords); +#endif +#endif /* GL_OES_fixed_point */ + +#ifndef GL_OES_query_matrix +#define GL_OES_query_matrix 1 +typedef GLbitfield (APIENTRYP PFNGLQUERYMATRIXXOESPROC) (GLfixed *mantissa, GLint *exponent); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLbitfield APIENTRY glQueryMatrixxOES (GLfixed *mantissa, GLint *exponent); +#endif +#endif /* GL_OES_query_matrix */ + +#ifndef GL_OES_read_format +#define GL_OES_read_format 1 +#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B +#endif /* GL_OES_read_format */ + +#ifndef GL_OES_single_precision +#define GL_OES_single_precision 1 +typedef void (APIENTRYP PFNGLCLEARDEPTHFOESPROC) (GLclampf depth); +typedef void (APIENTRYP PFNGLCLIPPLANEFOESPROC) (GLenum plane, const GLfloat *equation); +typedef void (APIENTRYP PFNGLDEPTHRANGEFOESPROC) (GLclampf n, GLclampf f); +typedef void (APIENTRYP PFNGLFRUSTUMFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); +typedef void (APIENTRYP PFNGLGETCLIPPLANEFOESPROC) (GLenum plane, GLfloat *equation); +typedef void (APIENTRYP PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glClearDepthfOES (GLclampf depth); +GLAPI void APIENTRY glClipPlanefOES (GLenum plane, const GLfloat *equation); +GLAPI void APIENTRY glDepthRangefOES (GLclampf n, GLclampf f); +GLAPI void APIENTRY glFrustumfOES (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); +GLAPI void APIENTRY glGetClipPlanefOES (GLenum plane, GLfloat *equation); +GLAPI void APIENTRY glOrthofOES (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); +#endif +#endif /* GL_OES_single_precision */ + +#ifndef GL_3DFX_multisample +#define GL_3DFX_multisample 1 +#define GL_MULTISAMPLE_3DFX 0x86B2 +#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 +#define GL_SAMPLES_3DFX 0x86B4 +#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 +#endif /* GL_3DFX_multisample */ + +#ifndef GL_3DFX_tbuffer +#define GL_3DFX_tbuffer 1 +typedef void (APIENTRYP PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTbufferMask3DFX (GLuint mask); +#endif +#endif /* GL_3DFX_tbuffer */ + +#ifndef GL_3DFX_texture_compression_FXT1 +#define GL_3DFX_texture_compression_FXT1 1 +#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 +#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 +#endif /* GL_3DFX_texture_compression_FXT1 */ + +#ifndef GL_AMD_blend_minmax_factor +#define GL_AMD_blend_minmax_factor 1 +#define GL_FACTOR_MIN_AMD 0x901C +#define GL_FACTOR_MAX_AMD 0x901D +#endif /* GL_AMD_blend_minmax_factor */ + +#ifndef GL_AMD_conservative_depth +#define GL_AMD_conservative_depth 1 +#endif /* GL_AMD_conservative_depth */ + +#ifndef GL_AMD_debug_output +#define GL_AMD_debug_output 1 +typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam); +#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 +typedef void (APIENTRYP PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf); +typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, void *userParam); +typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufSize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDebugMessageEnableAMD (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +GLAPI void APIENTRY glDebugMessageInsertAMD (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf); +GLAPI void APIENTRY glDebugMessageCallbackAMD (GLDEBUGPROCAMD callback, void *userParam); +GLAPI GLuint APIENTRY glGetDebugMessageLogAMD (GLuint count, GLsizei bufSize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message); +#endif +#endif /* GL_AMD_debug_output */ + +#ifndef GL_AMD_depth_clamp_separate +#define GL_AMD_depth_clamp_separate 1 +#define GL_DEPTH_CLAMP_NEAR_AMD 0x901E +#define GL_DEPTH_CLAMP_FAR_AMD 0x901F +#endif /* GL_AMD_depth_clamp_separate */ + +#ifndef GL_AMD_draw_buffers_blend +#define GL_AMD_draw_buffers_blend 1 +typedef void (APIENTRYP PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (APIENTRYP PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode); +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncIndexedAMD (GLuint buf, GLenum src, GLenum dst); +GLAPI void APIENTRY glBlendFuncSeparateIndexedAMD (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +GLAPI void APIENTRY glBlendEquationIndexedAMD (GLuint buf, GLenum mode); +GLAPI void APIENTRY glBlendEquationSeparateIndexedAMD (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +#endif +#endif /* GL_AMD_draw_buffers_blend */ + +#ifndef GL_AMD_framebuffer_multisample_advanced +#define GL_AMD_framebuffer_multisample_advanced 1 +#define GL_RENDERBUFFER_STORAGE_SAMPLES_AMD 0x91B2 +#define GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD 0x91B3 +#define GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD 0x91B4 +#define GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD 0x91B5 +#define GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B6 +#define GL_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B7 +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glRenderbufferStorageMultisampleAdvancedAMD (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleAdvancedAMD (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); +#endif +#endif /* GL_AMD_framebuffer_multisample_advanced */ + +#ifndef GL_AMD_framebuffer_sample_positions +#define GL_AMD_framebuffer_sample_positions 1 +#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F +#define GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD 0x91AE +#define GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD 0x91AF +#define GL_ALL_PIXELS_AMD 0xFFFFFFFF +typedef void (APIENTRYP PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC) (GLenum target, GLuint numsamples, GLuint pixelindex, const GLfloat *values); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC) (GLuint framebuffer, GLuint numsamples, GLuint pixelindex, const GLfloat *values); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC) (GLenum target, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values); +typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC) (GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFramebufferSamplePositionsfvAMD (GLenum target, GLuint numsamples, GLuint pixelindex, const GLfloat *values); +GLAPI void APIENTRY glNamedFramebufferSamplePositionsfvAMD (GLuint framebuffer, GLuint numsamples, GLuint pixelindex, const GLfloat *values); +GLAPI void APIENTRY glGetFramebufferParameterfvAMD (GLenum target, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values); +GLAPI void APIENTRY glGetNamedFramebufferParameterfvAMD (GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values); +#endif +#endif /* GL_AMD_framebuffer_sample_positions */ + +#ifndef GL_AMD_gcn_shader +#define GL_AMD_gcn_shader 1 +#endif /* GL_AMD_gcn_shader */ + +#ifndef GL_AMD_gpu_shader_half_float +#define GL_AMD_gpu_shader_half_float 1 +#define GL_FLOAT16_NV 0x8FF8 +#define GL_FLOAT16_VEC2_NV 0x8FF9 +#define GL_FLOAT16_VEC3_NV 0x8FFA +#define GL_FLOAT16_VEC4_NV 0x8FFB +#define GL_FLOAT16_MAT2_AMD 0x91C5 +#define GL_FLOAT16_MAT3_AMD 0x91C6 +#define GL_FLOAT16_MAT4_AMD 0x91C7 +#define GL_FLOAT16_MAT2x3_AMD 0x91C8 +#define GL_FLOAT16_MAT2x4_AMD 0x91C9 +#define GL_FLOAT16_MAT3x2_AMD 0x91CA +#define GL_FLOAT16_MAT3x4_AMD 0x91CB +#define GL_FLOAT16_MAT4x2_AMD 0x91CC +#define GL_FLOAT16_MAT4x3_AMD 0x91CD +#endif /* GL_AMD_gpu_shader_half_float */ + +#ifndef GL_AMD_gpu_shader_int16 +#define GL_AMD_gpu_shader_int16 1 +#endif /* GL_AMD_gpu_shader_int16 */ + +#ifndef GL_AMD_gpu_shader_int64 +#define GL_AMD_gpu_shader_int64 1 +typedef khronos_int64_t GLint64EXT; +#define GL_INT64_NV 0x140E +#define GL_UNSIGNED_INT64_NV 0x140F +#define GL_INT8_NV 0x8FE0 +#define GL_INT8_VEC2_NV 0x8FE1 +#define GL_INT8_VEC3_NV 0x8FE2 +#define GL_INT8_VEC4_NV 0x8FE3 +#define GL_INT16_NV 0x8FE4 +#define GL_INT16_VEC2_NV 0x8FE5 +#define GL_INT16_VEC3_NV 0x8FE6 +#define GL_INT16_VEC4_NV 0x8FE7 +#define GL_INT64_VEC2_NV 0x8FE9 +#define GL_INT64_VEC3_NV 0x8FEA +#define GL_INT64_VEC4_NV 0x8FEB +#define GL_UNSIGNED_INT8_NV 0x8FEC +#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED +#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE +#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF +#define GL_UNSIGNED_INT16_NV 0x8FF0 +#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 +#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 +#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 +#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5 +#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6 +#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7 +typedef void (APIENTRYP PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x); +typedef void (APIENTRYP PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y); +typedef void (APIENTRYP PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void (APIENTRYP PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void (APIENTRYP PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); +typedef void (APIENTRYP PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); +typedef void (APIENTRYP PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); +typedef void (APIENTRYP PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); +typedef void (APIENTRYP PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x); +typedef void (APIENTRYP PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y); +typedef void (APIENTRYP PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void (APIENTRYP PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void (APIENTRYP PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (APIENTRYP PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (APIENTRYP PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (APIENTRYP PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (APIENTRYP PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT *params); +typedef void (APIENTRYP PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT *params); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glUniform1i64NV (GLint location, GLint64EXT x); +GLAPI void APIENTRY glUniform2i64NV (GLint location, GLint64EXT x, GLint64EXT y); +GLAPI void APIENTRY glUniform3i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +GLAPI void APIENTRY glUniform4i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +GLAPI void APIENTRY glUniform1i64vNV (GLint location, GLsizei count, const GLint64EXT *value); +GLAPI void APIENTRY glUniform2i64vNV (GLint location, GLsizei count, const GLint64EXT *value); +GLAPI void APIENTRY glUniform3i64vNV (GLint location, GLsizei count, const GLint64EXT *value); +GLAPI void APIENTRY glUniform4i64vNV (GLint location, GLsizei count, const GLint64EXT *value); +GLAPI void APIENTRY glUniform1ui64NV (GLint location, GLuint64EXT x); +GLAPI void APIENTRY glUniform2ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y); +GLAPI void APIENTRY glUniform3ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +GLAPI void APIENTRY glUniform4ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +GLAPI void APIENTRY glUniform1ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); +GLAPI void APIENTRY glUniform2ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); +GLAPI void APIENTRY glUniform3ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); +GLAPI void APIENTRY glUniform4ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); +GLAPI void APIENTRY glGetUniformi64vNV (GLuint program, GLint location, GLint64EXT *params); +GLAPI void APIENTRY glGetUniformui64vNV (GLuint program, GLint location, GLuint64EXT *params); +GLAPI void APIENTRY glProgramUniform1i64NV (GLuint program, GLint location, GLint64EXT x); +GLAPI void APIENTRY glProgramUniform2i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); +GLAPI void APIENTRY glProgramUniform3i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +GLAPI void APIENTRY glProgramUniform4i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +GLAPI void APIENTRY glProgramUniform1i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +GLAPI void APIENTRY glProgramUniform2i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +GLAPI void APIENTRY glProgramUniform3i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +GLAPI void APIENTRY glProgramUniform4i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +GLAPI void APIENTRY glProgramUniform1ui64NV (GLuint program, GLint location, GLuint64EXT x); +GLAPI void APIENTRY glProgramUniform2ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); +GLAPI void APIENTRY glProgramUniform3ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +GLAPI void APIENTRY glProgramUniform4ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +GLAPI void APIENTRY glProgramUniform1ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +GLAPI void APIENTRY glProgramUniform2ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +GLAPI void APIENTRY glProgramUniform3ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +GLAPI void APIENTRY glProgramUniform4ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +#endif +#endif /* GL_AMD_gpu_shader_int64 */ + +#ifndef GL_AMD_interleaved_elements +#define GL_AMD_interleaved_elements 1 +#define GL_VERTEX_ELEMENT_SWIZZLE_AMD 0x91A4 +#define GL_VERTEX_ID_SWIZZLE_AMD 0x91A5 +typedef void (APIENTRYP PFNGLVERTEXATTRIBPARAMETERIAMDPROC) (GLuint index, GLenum pname, GLint param); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribParameteriAMD (GLuint index, GLenum pname, GLint param); +#endif +#endif /* GL_AMD_interleaved_elements */ + +#ifndef GL_AMD_multi_draw_indirect +#define GL_AMD_multi_draw_indirect 1 +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC) (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiDrawArraysIndirectAMD (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride); +GLAPI void APIENTRY glMultiDrawElementsIndirectAMD (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride); +#endif +#endif /* GL_AMD_multi_draw_indirect */ + +#ifndef GL_AMD_name_gen_delete +#define GL_AMD_name_gen_delete 1 +#define GL_DATA_BUFFER_AMD 0x9151 +#define GL_PERFORMANCE_MONITOR_AMD 0x9152 +#define GL_QUERY_OBJECT_AMD 0x9153 +#define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154 +#define GL_SAMPLER_OBJECT_AMD 0x9155 +typedef void (APIENTRYP PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint *names); +typedef void (APIENTRYP PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint *names); +typedef GLboolean (APIENTRYP PFNGLISNAMEAMDPROC) (GLenum identifier, GLuint name); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenNamesAMD (GLenum identifier, GLuint num, GLuint *names); +GLAPI void APIENTRY glDeleteNamesAMD (GLenum identifier, GLuint num, const GLuint *names); +GLAPI GLboolean APIENTRY glIsNameAMD (GLenum identifier, GLuint name); +#endif +#endif /* GL_AMD_name_gen_delete */ + +#ifndef GL_AMD_occlusion_query_event +#define GL_AMD_occlusion_query_event 1 +#define GL_OCCLUSION_QUERY_EVENT_MASK_AMD 0x874F +#define GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD 0x00000001 +#define GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD 0x00000002 +#define GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD 0x00000004 +#define GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD 0x00000008 +#define GL_QUERY_ALL_EVENT_BITS_AMD 0xFFFFFFFF +typedef void (APIENTRYP PFNGLQUERYOBJECTPARAMETERUIAMDPROC) (GLenum target, GLuint id, GLenum pname, GLuint param); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glQueryObjectParameteruiAMD (GLenum target, GLuint id, GLenum pname, GLuint param); +#endif +#endif /* GL_AMD_occlusion_query_event */ + +#ifndef GL_AMD_performance_monitor +#define GL_AMD_performance_monitor 1 +#define GL_COUNTER_TYPE_AMD 0x8BC0 +#define GL_COUNTER_RANGE_AMD 0x8BC1 +#define GL_UNSIGNED_INT64_AMD 0x8BC2 +#define GL_PERCENTAGE_AMD 0x8BC3 +#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 +#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 +#define GL_PERFMON_RESULT_AMD 0x8BC6 +typedef void (APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); +typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); +typedef void (APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); +typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); +typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void *data); +typedef void (APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); +typedef void (APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); +typedef void (APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); +typedef void (APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); +typedef void (APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); +typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups); +GLAPI void APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); +GLAPI void APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); +GLAPI void APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); +GLAPI void APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, void *data); +GLAPI void APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors); +GLAPI void APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors); +GLAPI void APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); +GLAPI void APIENTRY glBeginPerfMonitorAMD (GLuint monitor); +GLAPI void APIENTRY glEndPerfMonitorAMD (GLuint monitor); +GLAPI void APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); +#endif +#endif /* GL_AMD_performance_monitor */ + +#ifndef GL_AMD_pinned_memory +#define GL_AMD_pinned_memory 1 +#define GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD 0x9160 +#endif /* GL_AMD_pinned_memory */ + +#ifndef GL_AMD_query_buffer_object +#define GL_AMD_query_buffer_object 1 +#define GL_QUERY_BUFFER_AMD 0x9192 +#define GL_QUERY_BUFFER_BINDING_AMD 0x9193 +#define GL_QUERY_RESULT_NO_WAIT_AMD 0x9194 +#endif /* GL_AMD_query_buffer_object */ + +#ifndef GL_AMD_sample_positions +#define GL_AMD_sample_positions 1 +typedef void (APIENTRYP PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat *val); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSetMultisamplefvAMD (GLenum pname, GLuint index, const GLfloat *val); +#endif +#endif /* GL_AMD_sample_positions */ + +#ifndef GL_AMD_seamless_cubemap_per_texture +#define GL_AMD_seamless_cubemap_per_texture 1 +#endif /* GL_AMD_seamless_cubemap_per_texture */ + +#ifndef GL_AMD_shader_atomic_counter_ops +#define GL_AMD_shader_atomic_counter_ops 1 +#endif /* GL_AMD_shader_atomic_counter_ops */ + +#ifndef GL_AMD_shader_ballot +#define GL_AMD_shader_ballot 1 +#endif /* GL_AMD_shader_ballot */ + +#ifndef GL_AMD_shader_explicit_vertex_parameter +#define GL_AMD_shader_explicit_vertex_parameter 1 +#endif /* GL_AMD_shader_explicit_vertex_parameter */ + +#ifndef GL_AMD_shader_gpu_shader_half_float_fetch +#define GL_AMD_shader_gpu_shader_half_float_fetch 1 +#endif /* GL_AMD_shader_gpu_shader_half_float_fetch */ + +#ifndef GL_AMD_shader_image_load_store_lod +#define GL_AMD_shader_image_load_store_lod 1 +#endif /* GL_AMD_shader_image_load_store_lod */ + +#ifndef GL_AMD_shader_stencil_export +#define GL_AMD_shader_stencil_export 1 +#endif /* GL_AMD_shader_stencil_export */ + +#ifndef GL_AMD_shader_trinary_minmax +#define GL_AMD_shader_trinary_minmax 1 +#endif /* GL_AMD_shader_trinary_minmax */ + +#ifndef GL_AMD_sparse_texture +#define GL_AMD_sparse_texture 1 +#define GL_VIRTUAL_PAGE_SIZE_X_AMD 0x9195 +#define GL_VIRTUAL_PAGE_SIZE_Y_AMD 0x9196 +#define GL_VIRTUAL_PAGE_SIZE_Z_AMD 0x9197 +#define GL_MAX_SPARSE_TEXTURE_SIZE_AMD 0x9198 +#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD 0x9199 +#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS 0x919A +#define GL_MIN_SPARSE_LEVEL_AMD 0x919B +#define GL_MIN_LOD_WARNING_AMD 0x919C +#define GL_TEXTURE_STORAGE_SPARSE_BIT_AMD 0x00000001 +typedef void (APIENTRYP PFNGLTEXSTORAGESPARSEAMDPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); +typedef void (APIENTRYP PFNGLTEXTURESTORAGESPARSEAMDPROC) (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexStorageSparseAMD (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); +GLAPI void APIENTRY glTextureStorageSparseAMD (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); +#endif +#endif /* GL_AMD_sparse_texture */ + +#ifndef GL_AMD_stencil_operation_extended +#define GL_AMD_stencil_operation_extended 1 +#define GL_SET_AMD 0x874A +#define GL_REPLACE_VALUE_AMD 0x874B +#define GL_STENCIL_OP_VALUE_AMD 0x874C +#define GL_STENCIL_BACK_OP_VALUE_AMD 0x874D +typedef void (APIENTRYP PFNGLSTENCILOPVALUEAMDPROC) (GLenum face, GLuint value); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glStencilOpValueAMD (GLenum face, GLuint value); +#endif +#endif /* GL_AMD_stencil_operation_extended */ + +#ifndef GL_AMD_texture_gather_bias_lod +#define GL_AMD_texture_gather_bias_lod 1 +#endif /* GL_AMD_texture_gather_bias_lod */ + +#ifndef GL_AMD_texture_texture4 +#define GL_AMD_texture_texture4 1 +#endif /* GL_AMD_texture_texture4 */ + +#ifndef GL_AMD_transform_feedback3_lines_triangles +#define GL_AMD_transform_feedback3_lines_triangles 1 +#endif /* GL_AMD_transform_feedback3_lines_triangles */ + +#ifndef GL_AMD_transform_feedback4 +#define GL_AMD_transform_feedback4 1 +#define GL_STREAM_RASTERIZATION_AMD 0x91A0 +#endif /* GL_AMD_transform_feedback4 */ + +#ifndef GL_AMD_vertex_shader_layer +#define GL_AMD_vertex_shader_layer 1 +#endif /* GL_AMD_vertex_shader_layer */ + +#ifndef GL_AMD_vertex_shader_tessellator +#define GL_AMD_vertex_shader_tessellator 1 +#define GL_SAMPLER_BUFFER_AMD 0x9001 +#define GL_INT_SAMPLER_BUFFER_AMD 0x9002 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003 +#define GL_TESSELLATION_MODE_AMD 0x9004 +#define GL_TESSELLATION_FACTOR_AMD 0x9005 +#define GL_DISCRETE_AMD 0x9006 +#define GL_CONTINUOUS_AMD 0x9007 +typedef void (APIENTRYP PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor); +typedef void (APIENTRYP PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTessellationFactorAMD (GLfloat factor); +GLAPI void APIENTRY glTessellationModeAMD (GLenum mode); +#endif +#endif /* GL_AMD_vertex_shader_tessellator */ + +#ifndef GL_AMD_vertex_shader_viewport_index +#define GL_AMD_vertex_shader_viewport_index 1 +#endif /* GL_AMD_vertex_shader_viewport_index */ + +#ifndef GL_APPLE_aux_depth_stencil +#define GL_APPLE_aux_depth_stencil 1 +#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 +#endif /* GL_APPLE_aux_depth_stencil */ + +#ifndef GL_APPLE_client_storage +#define GL_APPLE_client_storage 1 +#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 +#endif /* GL_APPLE_client_storage */ + +#ifndef GL_APPLE_element_array +#define GL_APPLE_element_array 1 +#define GL_ELEMENT_ARRAY_APPLE 0x8A0C +#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D +#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E +typedef void (APIENTRYP PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const void *pointer); +typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +typedef void (APIENTRYP PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glElementPointerAPPLE (GLenum type, const void *pointer); +GLAPI void APIENTRY glDrawElementArrayAPPLE (GLenum mode, GLint first, GLsizei count); +GLAPI void APIENTRY glDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); +GLAPI void APIENTRY glMultiDrawElementArrayAPPLE (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +GLAPI void APIENTRY glMultiDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); +#endif +#endif /* GL_APPLE_element_array */ + +#ifndef GL_APPLE_fence +#define GL_APPLE_fence 1 +#define GL_DRAW_PIXELS_APPLE 0x8A0A +#define GL_FENCE_APPLE 0x8A0B +typedef void (APIENTRYP PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint *fences); +typedef void (APIENTRYP PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint *fences); +typedef void (APIENTRYP PFNGLSETFENCEAPPLEPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLISFENCEAPPLEPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLTESTFENCEAPPLEPROC) (GLuint fence); +typedef void (APIENTRYP PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); +typedef void (APIENTRYP PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenFencesAPPLE (GLsizei n, GLuint *fences); +GLAPI void APIENTRY glDeleteFencesAPPLE (GLsizei n, const GLuint *fences); +GLAPI void APIENTRY glSetFenceAPPLE (GLuint fence); +GLAPI GLboolean APIENTRY glIsFenceAPPLE (GLuint fence); +GLAPI GLboolean APIENTRY glTestFenceAPPLE (GLuint fence); +GLAPI void APIENTRY glFinishFenceAPPLE (GLuint fence); +GLAPI GLboolean APIENTRY glTestObjectAPPLE (GLenum object, GLuint name); +GLAPI void APIENTRY glFinishObjectAPPLE (GLenum object, GLint name); +#endif +#endif /* GL_APPLE_fence */ + +#ifndef GL_APPLE_float_pixels +#define GL_APPLE_float_pixels 1 +#define GL_HALF_APPLE 0x140B +#define GL_RGBA_FLOAT32_APPLE 0x8814 +#define GL_RGB_FLOAT32_APPLE 0x8815 +#define GL_ALPHA_FLOAT32_APPLE 0x8816 +#define GL_INTENSITY_FLOAT32_APPLE 0x8817 +#define GL_LUMINANCE_FLOAT32_APPLE 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 +#define GL_RGBA_FLOAT16_APPLE 0x881A +#define GL_RGB_FLOAT16_APPLE 0x881B +#define GL_ALPHA_FLOAT16_APPLE 0x881C +#define GL_INTENSITY_FLOAT16_APPLE 0x881D +#define GL_LUMINANCE_FLOAT16_APPLE 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F +#define GL_COLOR_FLOAT_APPLE 0x8A0F +#endif /* GL_APPLE_float_pixels */ + +#ifndef GL_APPLE_flush_buffer_range +#define GL_APPLE_flush_buffer_range 1 +#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 +#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 +typedef void (APIENTRYP PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBufferParameteriAPPLE (GLenum target, GLenum pname, GLint param); +GLAPI void APIENTRY glFlushMappedBufferRangeAPPLE (GLenum target, GLintptr offset, GLsizeiptr size); +#endif +#endif /* GL_APPLE_flush_buffer_range */ + +#ifndef GL_APPLE_object_purgeable +#define GL_APPLE_object_purgeable 1 +#define GL_BUFFER_OBJECT_APPLE 0x85B3 +#define GL_RELEASED_APPLE 0x8A19 +#define GL_VOLATILE_APPLE 0x8A1A +#define GL_RETAINED_APPLE 0x8A1B +#define GL_UNDEFINED_APPLE 0x8A1C +#define GL_PURGEABLE_APPLE 0x8A1D +typedef GLenum (APIENTRYP PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); +typedef GLenum (APIENTRYP PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); +typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLenum APIENTRY glObjectPurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); +GLAPI GLenum APIENTRY glObjectUnpurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); +GLAPI void APIENTRY glGetObjectParameterivAPPLE (GLenum objectType, GLuint name, GLenum pname, GLint *params); +#endif +#endif /* GL_APPLE_object_purgeable */ + +#ifndef GL_APPLE_rgb_422 +#define GL_APPLE_rgb_422 1 +#define GL_RGB_422_APPLE 0x8A1F +#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB +#define GL_RGB_RAW_422_APPLE 0x8A51 +#endif /* GL_APPLE_rgb_422 */ + +#ifndef GL_APPLE_row_bytes +#define GL_APPLE_row_bytes 1 +#define GL_PACK_ROW_BYTES_APPLE 0x8A15 +#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 +#endif /* GL_APPLE_row_bytes */ + +#ifndef GL_APPLE_specular_vector +#define GL_APPLE_specular_vector 1 +#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 +#endif /* GL_APPLE_specular_vector */ + +#ifndef GL_APPLE_texture_range +#define GL_APPLE_texture_range 1 +#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 +#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 +#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC +#define GL_STORAGE_PRIVATE_APPLE 0x85BD +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF +typedef void (APIENTRYP PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, const void *pointer); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, void **params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTextureRangeAPPLE (GLenum target, GLsizei length, const void *pointer); +GLAPI void APIENTRY glGetTexParameterPointervAPPLE (GLenum target, GLenum pname, void **params); +#endif +#endif /* GL_APPLE_texture_range */ + +#ifndef GL_APPLE_transform_hint +#define GL_APPLE_transform_hint 1 +#define GL_TRANSFORM_HINT_APPLE 0x85B1 +#endif /* GL_APPLE_transform_hint */ + +#ifndef GL_APPLE_vertex_array_object +#define GL_APPLE_vertex_array_object 1 +#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 +typedef void (APIENTRYP PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); +typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays); +typedef void (APIENTRYP PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, GLuint *arrays); +typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindVertexArrayAPPLE (GLuint array); +GLAPI void APIENTRY glDeleteVertexArraysAPPLE (GLsizei n, const GLuint *arrays); +GLAPI void APIENTRY glGenVertexArraysAPPLE (GLsizei n, GLuint *arrays); +GLAPI GLboolean APIENTRY glIsVertexArrayAPPLE (GLuint array); +#endif +#endif /* GL_APPLE_vertex_array_object */ + +#ifndef GL_APPLE_vertex_array_range +#define GL_APPLE_vertex_array_range 1 +#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E +#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F +#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 +#define GL_STORAGE_CLIENT_APPLE 0x85B4 +typedef void (APIENTRYP PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer); +typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer); +typedef void (APIENTRYP PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexArrayRangeAPPLE (GLsizei length, void *pointer); +GLAPI void APIENTRY glFlushVertexArrayRangeAPPLE (GLsizei length, void *pointer); +GLAPI void APIENTRY glVertexArrayParameteriAPPLE (GLenum pname, GLint param); +#endif +#endif /* GL_APPLE_vertex_array_range */ + +#ifndef GL_APPLE_vertex_program_evaluators +#define GL_APPLE_vertex_program_evaluators 1 +#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 +#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 +#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 +#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 +#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 +#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 +#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 +#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 +#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 +#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 +typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); +typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); +typedef GLboolean (APIENTRYP PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname); +typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glEnableVertexAttribAPPLE (GLuint index, GLenum pname); +GLAPI void APIENTRY glDisableVertexAttribAPPLE (GLuint index, GLenum pname); +GLAPI GLboolean APIENTRY glIsVertexAttribEnabledAPPLE (GLuint index, GLenum pname); +GLAPI void APIENTRY glMapVertexAttrib1dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +GLAPI void APIENTRY glMapVertexAttrib1fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +GLAPI void APIENTRY glMapVertexAttrib2dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +GLAPI void APIENTRY glMapVertexAttrib2fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +#endif +#endif /* GL_APPLE_vertex_program_evaluators */ + +#ifndef GL_APPLE_ycbcr_422 +#define GL_APPLE_ycbcr_422 1 +#define GL_YCBCR_422_APPLE 0x85B9 +#endif /* GL_APPLE_ycbcr_422 */ + +#ifndef GL_ATI_draw_buffers +#define GL_ATI_draw_buffers 1 +#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 +#define GL_DRAW_BUFFER0_ATI 0x8825 +#define GL_DRAW_BUFFER1_ATI 0x8826 +#define GL_DRAW_BUFFER2_ATI 0x8827 +#define GL_DRAW_BUFFER3_ATI 0x8828 +#define GL_DRAW_BUFFER4_ATI 0x8829 +#define GL_DRAW_BUFFER5_ATI 0x882A +#define GL_DRAW_BUFFER6_ATI 0x882B +#define GL_DRAW_BUFFER7_ATI 0x882C +#define GL_DRAW_BUFFER8_ATI 0x882D +#define GL_DRAW_BUFFER9_ATI 0x882E +#define GL_DRAW_BUFFER10_ATI 0x882F +#define GL_DRAW_BUFFER11_ATI 0x8830 +#define GL_DRAW_BUFFER12_ATI 0x8831 +#define GL_DRAW_BUFFER13_ATI 0x8832 +#define GL_DRAW_BUFFER14_ATI 0x8833 +#define GL_DRAW_BUFFER15_ATI 0x8834 +typedef void (APIENTRYP PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawBuffersATI (GLsizei n, const GLenum *bufs); +#endif +#endif /* GL_ATI_draw_buffers */ + +#ifndef GL_ATI_element_array +#define GL_ATI_element_array 1 +#define GL_ELEMENT_ARRAY_ATI 0x8768 +#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 +#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A +typedef void (APIENTRYP PFNGLELEMENTPOINTERATIPROC) (GLenum type, const void *pointer); +typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glElementPointerATI (GLenum type, const void *pointer); +GLAPI void APIENTRY glDrawElementArrayATI (GLenum mode, GLsizei count); +GLAPI void APIENTRY glDrawRangeElementArrayATI (GLenum mode, GLuint start, GLuint end, GLsizei count); +#endif +#endif /* GL_ATI_element_array */ + +#ifndef GL_ATI_envmap_bumpmap +#define GL_ATI_envmap_bumpmap 1 +#define GL_BUMP_ROT_MATRIX_ATI 0x8775 +#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 +#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 +#define GL_BUMP_TEX_UNITS_ATI 0x8778 +#define GL_DUDV_ATI 0x8779 +#define GL_DU8DV8_ATI 0x877A +#define GL_BUMP_ENVMAP_ATI 0x877B +#define GL_BUMP_TARGET_ATI 0x877C +typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param); +typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param); +typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); +typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexBumpParameterivATI (GLenum pname, const GLint *param); +GLAPI void APIENTRY glTexBumpParameterfvATI (GLenum pname, const GLfloat *param); +GLAPI void APIENTRY glGetTexBumpParameterivATI (GLenum pname, GLint *param); +GLAPI void APIENTRY glGetTexBumpParameterfvATI (GLenum pname, GLfloat *param); +#endif +#endif /* GL_ATI_envmap_bumpmap */ + +#ifndef GL_ATI_fragment_shader +#define GL_ATI_fragment_shader 1 +#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 +typedef GLuint (APIENTRYP PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); +typedef void (APIENTRYP PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); +typedef void (APIENTRYP PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINFRAGMENTSHADERATIPROC) (void); +typedef void (APIENTRYP PFNGLENDFRAGMENTSHADERATIPROC) (void); +typedef void (APIENTRYP PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); +typedef void (APIENTRYP PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); +typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +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); +typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +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); +typedef void (APIENTRYP PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat *value); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLuint APIENTRY glGenFragmentShadersATI (GLuint range); +GLAPI void APIENTRY glBindFragmentShaderATI (GLuint id); +GLAPI void APIENTRY glDeleteFragmentShaderATI (GLuint id); +GLAPI void APIENTRY glBeginFragmentShaderATI (void); +GLAPI void APIENTRY glEndFragmentShaderATI (void); +GLAPI void APIENTRY glPassTexCoordATI (GLuint dst, GLuint coord, GLenum swizzle); +GLAPI void APIENTRY glSampleMapATI (GLuint dst, GLuint interp, GLenum swizzle); +GLAPI void APIENTRY glColorFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +GLAPI void APIENTRY glColorFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +GLAPI void APIENTRY glColorFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +GLAPI void APIENTRY glAlphaFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +GLAPI void APIENTRY glAlphaFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +GLAPI void APIENTRY glAlphaFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +GLAPI void APIENTRY glSetFragmentShaderConstantATI (GLuint dst, const GLfloat *value); +#endif +#endif /* GL_ATI_fragment_shader */ + +#ifndef GL_ATI_map_object_buffer +#define GL_ATI_map_object_buffer 1 +typedef void *(APIENTRYP PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void *APIENTRY glMapObjectBufferATI (GLuint buffer); +GLAPI void APIENTRY glUnmapObjectBufferATI (GLuint buffer); +#endif +#endif /* GL_ATI_map_object_buffer */ + +#ifndef GL_ATI_meminfo +#define GL_ATI_meminfo 1 +#define GL_VBO_FREE_MEMORY_ATI 0x87FB +#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC +#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD +#endif /* GL_ATI_meminfo */ + +#ifndef GL_ATI_pixel_format_float +#define GL_ATI_pixel_format_float 1 +#define GL_RGBA_FLOAT_MODE_ATI 0x8820 +#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 +#endif /* GL_ATI_pixel_format_float */ + +#ifndef GL_ATI_pn_triangles +#define GL_ATI_pn_triangles 1 +#define GL_PN_TRIANGLES_ATI 0x87F0 +#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 +#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 +#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 +#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 +#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 +#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 +#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 +#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 +typedef void (APIENTRYP PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPNTrianglesiATI (GLenum pname, GLint param); +GLAPI void APIENTRY glPNTrianglesfATI (GLenum pname, GLfloat param); +#endif +#endif /* GL_ATI_pn_triangles */ + +#ifndef GL_ATI_separate_stencil +#define GL_ATI_separate_stencil 1 +#define GL_STENCIL_BACK_FUNC_ATI 0x8800 +#define GL_STENCIL_BACK_FAIL_ATI 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 +typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glStencilOpSeparateATI (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +GLAPI void APIENTRY glStencilFuncSeparateATI (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +#endif +#endif /* GL_ATI_separate_stencil */ + +#ifndef GL_ATI_text_fragment_shader +#define GL_ATI_text_fragment_shader 1 +#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 +#endif /* GL_ATI_text_fragment_shader */ + +#ifndef GL_ATI_texture_env_combine3 +#define GL_ATI_texture_env_combine3 1 +#define GL_MODULATE_ADD_ATI 0x8744 +#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 +#define GL_MODULATE_SUBTRACT_ATI 0x8746 +#endif /* GL_ATI_texture_env_combine3 */ + +#ifndef GL_ATI_texture_float +#define GL_ATI_texture_float 1 +#define GL_RGBA_FLOAT32_ATI 0x8814 +#define GL_RGB_FLOAT32_ATI 0x8815 +#define GL_ALPHA_FLOAT32_ATI 0x8816 +#define GL_INTENSITY_FLOAT32_ATI 0x8817 +#define GL_LUMINANCE_FLOAT32_ATI 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 +#define GL_RGBA_FLOAT16_ATI 0x881A +#define GL_RGB_FLOAT16_ATI 0x881B +#define GL_ALPHA_FLOAT16_ATI 0x881C +#define GL_INTENSITY_FLOAT16_ATI 0x881D +#define GL_LUMINANCE_FLOAT16_ATI 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F +#endif /* GL_ATI_texture_float */ + +#ifndef GL_ATI_texture_mirror_once +#define GL_ATI_texture_mirror_once 1 +#define GL_MIRROR_CLAMP_ATI 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 +#endif /* GL_ATI_texture_mirror_once */ + +#ifndef GL_ATI_vertex_array_object +#define GL_ATI_vertex_array_object 1 +#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 +typedef GLuint (APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const void *pointer, GLenum usage); +typedef GLboolean (APIENTRYP PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve); +typedef void (APIENTRYP PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +typedef void (APIENTRYP PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLuint APIENTRY glNewObjectBufferATI (GLsizei size, const void *pointer, GLenum usage); +GLAPI GLboolean APIENTRY glIsObjectBufferATI (GLuint buffer); +GLAPI void APIENTRY glUpdateObjectBufferATI (GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve); +GLAPI void APIENTRY glGetObjectBufferfvATI (GLuint buffer, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetObjectBufferivATI (GLuint buffer, GLenum pname, GLint *params); +GLAPI void APIENTRY glFreeObjectBufferATI (GLuint buffer); +GLAPI void APIENTRY glArrayObjectATI (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +GLAPI void APIENTRY glGetArrayObjectfvATI (GLenum array, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetArrayObjectivATI (GLenum array, GLenum pname, GLint *params); +GLAPI void APIENTRY glVariantArrayObjectATI (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +GLAPI void APIENTRY glGetVariantArrayObjectfvATI (GLuint id, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetVariantArrayObjectivATI (GLuint id, GLenum pname, GLint *params); +#endif +#endif /* GL_ATI_vertex_array_object */ + +#ifndef GL_ATI_vertex_attrib_array_object +#define GL_ATI_vertex_attrib_array_object 1 +typedef void (APIENTRYP PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribArrayObjectATI (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); +GLAPI void APIENTRY glGetVertexAttribArrayObjectfvATI (GLuint index, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetVertexAttribArrayObjectivATI (GLuint index, GLenum pname, GLint *params); +#endif +#endif /* GL_ATI_vertex_attrib_array_object */ + +#ifndef GL_ATI_vertex_streams +#define GL_ATI_vertex_streams 1 +#define GL_MAX_VERTEX_STREAMS_ATI 0x876B +#define GL_VERTEX_STREAM0_ATI 0x876C +#define GL_VERTEX_STREAM1_ATI 0x876D +#define GL_VERTEX_STREAM2_ATI 0x876E +#define GL_VERTEX_STREAM3_ATI 0x876F +#define GL_VERTEX_STREAM4_ATI 0x8770 +#define GL_VERTEX_STREAM5_ATI 0x8771 +#define GL_VERTEX_STREAM6_ATI 0x8772 +#define GL_VERTEX_STREAM7_ATI 0x8773 +#define GL_VERTEX_SOURCE_ATI 0x8774 +typedef void (APIENTRYP PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); +typedef void (APIENTRYP PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); +typedef void (APIENTRYP PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); +typedef void (APIENTRYP PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); +typedef void (APIENTRYP PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexStream1sATI (GLenum stream, GLshort x); +GLAPI void APIENTRY glVertexStream1svATI (GLenum stream, const GLshort *coords); +GLAPI void APIENTRY glVertexStream1iATI (GLenum stream, GLint x); +GLAPI void APIENTRY glVertexStream1ivATI (GLenum stream, const GLint *coords); +GLAPI void APIENTRY glVertexStream1fATI (GLenum stream, GLfloat x); +GLAPI void APIENTRY glVertexStream1fvATI (GLenum stream, const GLfloat *coords); +GLAPI void APIENTRY glVertexStream1dATI (GLenum stream, GLdouble x); +GLAPI void APIENTRY glVertexStream1dvATI (GLenum stream, const GLdouble *coords); +GLAPI void APIENTRY glVertexStream2sATI (GLenum stream, GLshort x, GLshort y); +GLAPI void APIENTRY glVertexStream2svATI (GLenum stream, const GLshort *coords); +GLAPI void APIENTRY glVertexStream2iATI (GLenum stream, GLint x, GLint y); +GLAPI void APIENTRY glVertexStream2ivATI (GLenum stream, const GLint *coords); +GLAPI void APIENTRY glVertexStream2fATI (GLenum stream, GLfloat x, GLfloat y); +GLAPI void APIENTRY glVertexStream2fvATI (GLenum stream, const GLfloat *coords); +GLAPI void APIENTRY glVertexStream2dATI (GLenum stream, GLdouble x, GLdouble y); +GLAPI void APIENTRY glVertexStream2dvATI (GLenum stream, const GLdouble *coords); +GLAPI void APIENTRY glVertexStream3sATI (GLenum stream, GLshort x, GLshort y, GLshort z); +GLAPI void APIENTRY glVertexStream3svATI (GLenum stream, const GLshort *coords); +GLAPI void APIENTRY glVertexStream3iATI (GLenum stream, GLint x, GLint y, GLint z); +GLAPI void APIENTRY glVertexStream3ivATI (GLenum stream, const GLint *coords); +GLAPI void APIENTRY glVertexStream3fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glVertexStream3fvATI (GLenum stream, const GLfloat *coords); +GLAPI void APIENTRY glVertexStream3dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glVertexStream3dvATI (GLenum stream, const GLdouble *coords); +GLAPI void APIENTRY glVertexStream4sATI (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void APIENTRY glVertexStream4svATI (GLenum stream, const GLshort *coords); +GLAPI void APIENTRY glVertexStream4iATI (GLenum stream, GLint x, GLint y, GLint z, GLint w); +GLAPI void APIENTRY glVertexStream4ivATI (GLenum stream, const GLint *coords); +GLAPI void APIENTRY glVertexStream4fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glVertexStream4fvATI (GLenum stream, const GLfloat *coords); +GLAPI void APIENTRY glVertexStream4dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glVertexStream4dvATI (GLenum stream, const GLdouble *coords); +GLAPI void APIENTRY glNormalStream3bATI (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); +GLAPI void APIENTRY glNormalStream3bvATI (GLenum stream, const GLbyte *coords); +GLAPI void APIENTRY glNormalStream3sATI (GLenum stream, GLshort nx, GLshort ny, GLshort nz); +GLAPI void APIENTRY glNormalStream3svATI (GLenum stream, const GLshort *coords); +GLAPI void APIENTRY glNormalStream3iATI (GLenum stream, GLint nx, GLint ny, GLint nz); +GLAPI void APIENTRY glNormalStream3ivATI (GLenum stream, const GLint *coords); +GLAPI void APIENTRY glNormalStream3fATI (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); +GLAPI void APIENTRY glNormalStream3fvATI (GLenum stream, const GLfloat *coords); +GLAPI void APIENTRY glNormalStream3dATI (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); +GLAPI void APIENTRY glNormalStream3dvATI (GLenum stream, const GLdouble *coords); +GLAPI void APIENTRY glClientActiveVertexStreamATI (GLenum stream); +GLAPI void APIENTRY glVertexBlendEnviATI (GLenum pname, GLint param); +GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum pname, GLfloat param); +#endif +#endif /* GL_ATI_vertex_streams */ + +#ifndef GL_EXT_422_pixels +#define GL_EXT_422_pixels 1 +#define GL_422_EXT 0x80CC +#define GL_422_REV_EXT 0x80CD +#define GL_422_AVERAGE_EXT 0x80CE +#define GL_422_REV_AVERAGE_EXT 0x80CF +#endif /* GL_EXT_422_pixels */ + +#ifndef GL_EXT_EGL_image_storage +#define GL_EXT_EGL_image_storage 1 +typedef void *GLeglImageOES; +typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC) (GLenum target, GLeglImageOES image, const GLint* attrib_list); +typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC) (GLuint texture, GLeglImageOES image, const GLint* attrib_list); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glEGLImageTargetTexStorageEXT (GLenum target, GLeglImageOES image, const GLint* attrib_list); +GLAPI void APIENTRY glEGLImageTargetTextureStorageEXT (GLuint texture, GLeglImageOES image, const GLint* attrib_list); +#endif +#endif /* GL_EXT_EGL_image_storage */ + +#ifndef GL_EXT_EGL_sync +#define GL_EXT_EGL_sync 1 +#endif /* GL_EXT_EGL_sync */ + +#ifndef GL_EXT_abgr +#define GL_EXT_abgr 1 +#define GL_ABGR_EXT 0x8000 +#endif /* GL_EXT_abgr */ + +#ifndef GL_EXT_bgra +#define GL_EXT_bgra 1 +#define GL_BGR_EXT 0x80E0 +#define GL_BGRA_EXT 0x80E1 +#endif /* GL_EXT_bgra */ + +#ifndef GL_EXT_bindable_uniform +#define GL_EXT_bindable_uniform 1 +#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 +#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 +#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 +#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED +#define GL_UNIFORM_BUFFER_EXT 0x8DEE +#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF +typedef void (APIENTRYP PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer); +typedef GLint (APIENTRYP PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location); +typedef GLintptr (APIENTRYP PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glUniformBufferEXT (GLuint program, GLint location, GLuint buffer); +GLAPI GLint APIENTRY glGetUniformBufferSizeEXT (GLuint program, GLint location); +GLAPI GLintptr APIENTRY glGetUniformOffsetEXT (GLuint program, GLint location); +#endif +#endif /* GL_EXT_bindable_uniform */ + +#ifndef GL_EXT_blend_color +#define GL_EXT_blend_color 1 +#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 +typedef void (APIENTRYP PFNGLBLENDCOLOREXTPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendColorEXT (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +#endif +#endif /* GL_EXT_blend_color */ + +#ifndef GL_EXT_blend_equation_separate +#define GL_EXT_blend_equation_separate 1 +#define GL_BLEND_EQUATION_RGB_EXT 0x8009 +#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendEquationSeparateEXT (GLenum modeRGB, GLenum modeAlpha); +#endif +#endif /* GL_EXT_blend_equation_separate */ + +#ifndef GL_EXT_blend_func_separate +#define GL_EXT_blend_func_separate 1 +#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 +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncSeparateEXT (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#endif +#endif /* GL_EXT_blend_func_separate */ + +#ifndef GL_EXT_blend_logic_op +#define GL_EXT_blend_logic_op 1 +#endif /* GL_EXT_blend_logic_op */ + +#ifndef GL_EXT_blend_minmax +#define GL_EXT_blend_minmax 1 +#define GL_MIN_EXT 0x8007 +#define GL_MAX_EXT 0x8008 +#define GL_FUNC_ADD_EXT 0x8006 +#define GL_BLEND_EQUATION_EXT 0x8009 +typedef void (APIENTRYP PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendEquationEXT (GLenum mode); +#endif +#endif /* GL_EXT_blend_minmax */ + +#ifndef GL_EXT_blend_subtract +#define GL_EXT_blend_subtract 1 +#define GL_FUNC_SUBTRACT_EXT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B +#endif /* GL_EXT_blend_subtract */ + +#ifndef GL_EXT_clip_volume_hint +#define GL_EXT_clip_volume_hint 1 +#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 +#endif /* GL_EXT_clip_volume_hint */ + +#ifndef GL_EXT_cmyka +#define GL_EXT_cmyka 1 +#define GL_CMYK_EXT 0x800C +#define GL_CMYKA_EXT 0x800D +#define GL_PACK_CMYK_HINT_EXT 0x800E +#define GL_UNPACK_CMYK_HINT_EXT 0x800F +#endif /* GL_EXT_cmyka */ + +#ifndef GL_EXT_color_subtable +#define GL_EXT_color_subtable 1 +typedef void (APIENTRYP PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); +typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorSubTableEXT (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); +GLAPI void APIENTRY glCopyColorSubTableEXT (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +#endif +#endif /* GL_EXT_color_subtable */ + +#ifndef GL_EXT_compiled_vertex_array +#define GL_EXT_compiled_vertex_array 1 +#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 +#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 +typedef void (APIENTRYP PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLUNLOCKARRAYSEXTPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glLockArraysEXT (GLint first, GLsizei count); +GLAPI void APIENTRY glUnlockArraysEXT (void); +#endif +#endif /* GL_EXT_compiled_vertex_array */ + +#ifndef GL_EXT_convolution +#define GL_EXT_convolution 1 +#define GL_CONVOLUTION_1D_EXT 0x8010 +#define GL_CONVOLUTION_2D_EXT 0x8011 +#define GL_SEPARABLE_2D_EXT 0x8012 +#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 +#define GL_REDUCE_EXT 0x8016 +#define GL_CONVOLUTION_FORMAT_EXT 0x8017 +#define GL_CONVOLUTION_WIDTH_EXT 0x8018 +#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params); +typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *image); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); +typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); +GLAPI void APIENTRY glConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); +GLAPI void APIENTRY glConvolutionParameterfEXT (GLenum target, GLenum pname, GLfloat params); +GLAPI void APIENTRY glConvolutionParameterfvEXT (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glConvolutionParameteriEXT (GLenum target, GLenum pname, GLint params); +GLAPI void APIENTRY glConvolutionParameterivEXT (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glCopyConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glCopyConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glGetConvolutionFilterEXT (GLenum target, GLenum format, GLenum type, void *image); +GLAPI void APIENTRY glGetConvolutionParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetConvolutionParameterivEXT (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetSeparableFilterEXT (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); +GLAPI void APIENTRY glSeparableFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); +#endif +#endif /* GL_EXT_convolution */ + +#ifndef GL_EXT_coordinate_frame +#define GL_EXT_coordinate_frame 1 +#define GL_TANGENT_ARRAY_EXT 0x8439 +#define GL_BINORMAL_ARRAY_EXT 0x843A +#define GL_CURRENT_TANGENT_EXT 0x843B +#define GL_CURRENT_BINORMAL_EXT 0x843C +#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E +#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F +#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 +#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 +#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 +#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 +#define GL_MAP1_TANGENT_EXT 0x8444 +#define GL_MAP2_TANGENT_EXT 0x8445 +#define GL_MAP1_BINORMAL_EXT 0x8446 +#define GL_MAP2_BINORMAL_EXT 0x8447 +typedef void (APIENTRYP PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz); +typedef void (APIENTRYP PFNGLTANGENT3BVEXTPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz); +typedef void (APIENTRYP PFNGLTANGENT3DVEXTPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz); +typedef void (APIENTRYP PFNGLTANGENT3FVEXTPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz); +typedef void (APIENTRYP PFNGLTANGENT3IVEXTPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz); +typedef void (APIENTRYP PFNGLTANGENT3SVEXTPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz); +typedef void (APIENTRYP PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz); +typedef void (APIENTRYP PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz); +typedef void (APIENTRYP PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz); +typedef void (APIENTRYP PFNGLBINORMAL3IVEXTPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz); +typedef void (APIENTRYP PFNGLBINORMAL3SVEXTPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTangent3bEXT (GLbyte tx, GLbyte ty, GLbyte tz); +GLAPI void APIENTRY glTangent3bvEXT (const GLbyte *v); +GLAPI void APIENTRY glTangent3dEXT (GLdouble tx, GLdouble ty, GLdouble tz); +GLAPI void APIENTRY glTangent3dvEXT (const GLdouble *v); +GLAPI void APIENTRY glTangent3fEXT (GLfloat tx, GLfloat ty, GLfloat tz); +GLAPI void APIENTRY glTangent3fvEXT (const GLfloat *v); +GLAPI void APIENTRY glTangent3iEXT (GLint tx, GLint ty, GLint tz); +GLAPI void APIENTRY glTangent3ivEXT (const GLint *v); +GLAPI void APIENTRY glTangent3sEXT (GLshort tx, GLshort ty, GLshort tz); +GLAPI void APIENTRY glTangent3svEXT (const GLshort *v); +GLAPI void APIENTRY glBinormal3bEXT (GLbyte bx, GLbyte by, GLbyte bz); +GLAPI void APIENTRY glBinormal3bvEXT (const GLbyte *v); +GLAPI void APIENTRY glBinormal3dEXT (GLdouble bx, GLdouble by, GLdouble bz); +GLAPI void APIENTRY glBinormal3dvEXT (const GLdouble *v); +GLAPI void APIENTRY glBinormal3fEXT (GLfloat bx, GLfloat by, GLfloat bz); +GLAPI void APIENTRY glBinormal3fvEXT (const GLfloat *v); +GLAPI void APIENTRY glBinormal3iEXT (GLint bx, GLint by, GLint bz); +GLAPI void APIENTRY glBinormal3ivEXT (const GLint *v); +GLAPI void APIENTRY glBinormal3sEXT (GLshort bx, GLshort by, GLshort bz); +GLAPI void APIENTRY glBinormal3svEXT (const GLshort *v); +GLAPI void APIENTRY glTangentPointerEXT (GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glBinormalPointerEXT (GLenum type, GLsizei stride, const void *pointer); +#endif +#endif /* GL_EXT_coordinate_frame */ + +#ifndef GL_EXT_copy_texture +#define GL_EXT_copy_texture 1 +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCopyTexImage1DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +GLAPI void APIENTRY glCopyTexImage2DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +GLAPI void APIENTRY glCopyTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glCopyTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glCopyTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif +#endif /* GL_EXT_copy_texture */ + +#ifndef GL_EXT_cull_vertex +#define GL_EXT_cull_vertex 1 +#define GL_CULL_VERTEX_EXT 0x81AA +#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB +#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC +typedef void (APIENTRYP PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCullParameterdvEXT (GLenum pname, GLdouble *params); +GLAPI void APIENTRY glCullParameterfvEXT (GLenum pname, GLfloat *params); +#endif +#endif /* GL_EXT_cull_vertex */ + +#ifndef GL_EXT_debug_label +#define GL_EXT_debug_label 1 +#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F +#define GL_PROGRAM_OBJECT_EXT 0x8B40 +#define GL_SHADER_OBJECT_EXT 0x8B48 +#define GL_BUFFER_OBJECT_EXT 0x9151 +#define GL_QUERY_OBJECT_EXT 0x9153 +#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 +typedef void (APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label); +typedef void (APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label); +GLAPI void APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif +#endif /* GL_EXT_debug_label */ + +#ifndef GL_EXT_debug_marker +#define GL_EXT_debug_marker 1 +typedef void (APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker); +typedef void (APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker); +typedef void (APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker); +GLAPI void APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker); +GLAPI void APIENTRY glPopGroupMarkerEXT (void); +#endif +#endif /* GL_EXT_debug_marker */ + +#ifndef GL_EXT_depth_bounds_test +#define GL_EXT_depth_bounds_test 1 +#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 +#define GL_DEPTH_BOUNDS_EXT 0x8891 +typedef void (APIENTRYP PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDepthBoundsEXT (GLclampd zmin, GLclampd zmax); +#endif +#endif /* GL_EXT_depth_bounds_test */ + +#ifndef GL_EXT_direct_state_access +#define GL_EXT_direct_state_access 1 +#define GL_PROGRAM_MATRIX_EXT 0x8E2D +#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E +#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F +typedef void (APIENTRYP PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXLOADDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (APIENTRYP PFNGLMATRIXMULTFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXMULTDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLMATRIXROTATEFEXTPROC) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLMATRIXROTATEDEXTPROC) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLMATRIXSCALEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLMATRIXSCALEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLMATRIXFRUSTUMEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +typedef void (APIENTRYP PFNGLMATRIXORTHOEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +typedef void (APIENTRYP PFNGLMATRIXPOPEXTPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLMATRIXPUSHEXTPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); +typedef void (APIENTRYP PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture); +typedef void (APIENTRYP PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); +typedef void (APIENTRYP PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); +typedef void (APIENTRYP PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); +typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); +typedef void (APIENTRYP PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat *data); +typedef void (APIENTRYP PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble *data); +typedef void (APIENTRYP PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, void **data); +typedef void (APIENTRYP PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); +typedef GLboolean (APIENTRYP PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLint *data); +typedef void (APIENTRYP PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum target, GLuint index, GLboolean *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint lod, void *img); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint lod, void *img); +typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); +typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access); +typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, void **params); +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); +typedef void (APIENTRYP PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint *params); +typedef void (APIENTRYP PFNGLENABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); +typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); +typedef void (APIENTRYP PFNGLGETFLOATI_VEXTPROC) (GLenum pname, GLuint index, GLfloat *params); +typedef void (APIENTRYP PFNGLGETDOUBLEI_VEXTPROC) (GLenum pname, GLuint index, GLdouble *params); +typedef void (APIENTRYP PFNGLGETPOINTERI_VEXTPROC) (GLenum pname, GLuint index, void **params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const void *string); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble *params); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, void *string); +typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target); +typedef void (APIENTRYP PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target); +typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); +typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum *bufs); +typedef void (APIENTRYP PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); +typedef void (APIENTRYP PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYINDEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYNORMALOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLENABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); +typedef void (APIENTRYP PFNGLDISABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); +typedef void (APIENTRYP PFNGLENABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); +typedef void (APIENTRYP PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); +typedef void (APIENTRYP PFNGLGETVERTEXARRAYINTEGERVEXTPROC) (GLuint vaobj, GLenum pname, GLint *param); +typedef void (APIENTRYP PFNGLGETVERTEXARRAYPOINTERVEXTPROC) (GLuint vaobj, GLenum pname, void **param); +typedef void (APIENTRYP PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint *param); +typedef void (APIENTRYP PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, void **param); +typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void (APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); +typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); +typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); +typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC) (GLuint framebuffer, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DEXTPROC) (GLuint program, GLint location, GLdouble x); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLTEXTUREBUFFERRANGEEXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (APIENTRYP PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC) (GLuint vaobj, GLuint index, GLuint divisor); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMatrixLoadfEXT (GLenum mode, const GLfloat *m); +GLAPI void APIENTRY glMatrixLoaddEXT (GLenum mode, const GLdouble *m); +GLAPI void APIENTRY glMatrixMultfEXT (GLenum mode, const GLfloat *m); +GLAPI void APIENTRY glMatrixMultdEXT (GLenum mode, const GLdouble *m); +GLAPI void APIENTRY glMatrixLoadIdentityEXT (GLenum mode); +GLAPI void APIENTRY glMatrixRotatefEXT (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glMatrixRotatedEXT (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glMatrixScalefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glMatrixScaledEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glMatrixTranslatefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glMatrixTranslatedEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glMatrixFrustumEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +GLAPI void APIENTRY glMatrixOrthoEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +GLAPI void APIENTRY glMatrixPopEXT (GLenum mode); +GLAPI void APIENTRY glMatrixPushEXT (GLenum mode); +GLAPI void APIENTRY glClientAttribDefaultEXT (GLbitfield mask); +GLAPI void APIENTRY glPushClientAttribDefaultEXT (GLbitfield mask); +GLAPI void APIENTRY glTextureParameterfEXT (GLuint texture, GLenum target, GLenum pname, GLfloat param); +GLAPI void APIENTRY glTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glTextureParameteriEXT (GLuint texture, GLenum target, GLenum pname, GLint param); +GLAPI void APIENTRY glTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glCopyTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +GLAPI void APIENTRY glCopyTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +GLAPI void APIENTRY glCopyTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glCopyTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glGetTextureImageEXT (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +GLAPI void APIENTRY glGetTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetTextureLevelParameterfvEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetTextureLevelParameterivEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); +GLAPI void APIENTRY glTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glCopyTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glBindMultiTextureEXT (GLenum texunit, GLenum target, GLuint texture); +GLAPI void APIENTRY glMultiTexCoordPointerEXT (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glMultiTexEnvfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +GLAPI void APIENTRY glMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glMultiTexEnviEXT (GLenum texunit, GLenum target, GLenum pname, GLint param); +GLAPI void APIENTRY glMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glMultiTexGendEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); +GLAPI void APIENTRY glMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); +GLAPI void APIENTRY glMultiTexGenfEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); +GLAPI void APIENTRY glMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glMultiTexGeniEXT (GLenum texunit, GLenum coord, GLenum pname, GLint param); +GLAPI void APIENTRY glMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, const GLint *params); +GLAPI void APIENTRY glGetMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); +GLAPI void APIENTRY glGetMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, GLint *params); +GLAPI void APIENTRY glMultiTexParameteriEXT (GLenum texunit, GLenum target, GLenum pname, GLint param); +GLAPI void APIENTRY glMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glMultiTexParameterfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +GLAPI void APIENTRY glMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glCopyMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +GLAPI void APIENTRY glCopyMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +GLAPI void APIENTRY glCopyMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glCopyMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glGetMultiTexImageEXT (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +GLAPI void APIENTRY glGetMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetMultiTexLevelParameterfvEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetMultiTexLevelParameterivEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); +GLAPI void APIENTRY glMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glCopyMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glEnableClientStateIndexedEXT (GLenum array, GLuint index); +GLAPI void APIENTRY glDisableClientStateIndexedEXT (GLenum array, GLuint index); +GLAPI void APIENTRY glGetFloatIndexedvEXT (GLenum target, GLuint index, GLfloat *data); +GLAPI void APIENTRY glGetDoubleIndexedvEXT (GLenum target, GLuint index, GLdouble *data); +GLAPI void APIENTRY glGetPointerIndexedvEXT (GLenum target, GLuint index, void **data); +GLAPI void APIENTRY glEnableIndexedEXT (GLenum target, GLuint index); +GLAPI void APIENTRY glDisableIndexedEXT (GLenum target, GLuint index); +GLAPI GLboolean APIENTRY glIsEnabledIndexedEXT (GLenum target, GLuint index); +GLAPI void APIENTRY glGetIntegerIndexedvEXT (GLenum target, GLuint index, GLint *data); +GLAPI void APIENTRY glGetBooleanIndexedvEXT (GLenum target, GLuint index, GLboolean *data); +GLAPI void APIENTRY glCompressedTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glGetCompressedTextureImageEXT (GLuint texture, GLenum target, GLint lod, void *img); +GLAPI void APIENTRY glCompressedMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glCompressedMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); +GLAPI void APIENTRY glGetCompressedMultiTexImageEXT (GLenum texunit, GLenum target, GLint lod, void *img); +GLAPI void APIENTRY glMatrixLoadTransposefEXT (GLenum mode, const GLfloat *m); +GLAPI void APIENTRY glMatrixLoadTransposedEXT (GLenum mode, const GLdouble *m); +GLAPI void APIENTRY glMatrixMultTransposefEXT (GLenum mode, const GLfloat *m); +GLAPI void APIENTRY glMatrixMultTransposedEXT (GLenum mode, const GLdouble *m); +GLAPI void APIENTRY glNamedBufferDataEXT (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); +GLAPI void APIENTRY glNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +GLAPI void *APIENTRY glMapNamedBufferEXT (GLuint buffer, GLenum access); +GLAPI GLboolean APIENTRY glUnmapNamedBufferEXT (GLuint buffer); +GLAPI void APIENTRY glGetNamedBufferParameterivEXT (GLuint buffer, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetNamedBufferPointervEXT (GLuint buffer, GLenum pname, void **params); +GLAPI void APIENTRY glGetNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); +GLAPI void APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat v0); +GLAPI void APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1); +GLAPI void APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GLAPI void APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GLAPI void APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint v0); +GLAPI void APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint v0, GLint v1); +GLAPI void APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +GLAPI void APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GLAPI void APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix2x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix2x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glTextureBufferEXT (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); +GLAPI void APIENTRY glMultiTexBufferEXT (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); +GLAPI void APIENTRY glTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, const GLuint *params); +GLAPI void APIENTRY glGetTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, GLuint *params); +GLAPI void APIENTRY glMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, const GLuint *params); +GLAPI void APIENTRY glGetMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, GLuint *params); +GLAPI void APIENTRY glProgramUniform1uiEXT (GLuint program, GLint location, GLuint v0); +GLAPI void APIENTRY glProgramUniform2uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1); +GLAPI void APIENTRY glProgramUniform3uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +GLAPI void APIENTRY glProgramUniform4uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +GLAPI void APIENTRY glProgramUniform1uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform2uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform3uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform4uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glNamedProgramLocalParameters4fvEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); +GLAPI void APIENTRY glNamedProgramLocalParameterI4iEXT (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +GLAPI void APIENTRY glNamedProgramLocalParameterI4ivEXT (GLuint program, GLenum target, GLuint index, const GLint *params); +GLAPI void APIENTRY glNamedProgramLocalParametersI4ivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); +GLAPI void APIENTRY glNamedProgramLocalParameterI4uiEXT (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +GLAPI void APIENTRY glNamedProgramLocalParameterI4uivEXT (GLuint program, GLenum target, GLuint index, const GLuint *params); +GLAPI void APIENTRY glNamedProgramLocalParametersI4uivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); +GLAPI void APIENTRY glGetNamedProgramLocalParameterIivEXT (GLuint program, GLenum target, GLuint index, GLint *params); +GLAPI void APIENTRY glGetNamedProgramLocalParameterIuivEXT (GLuint program, GLenum target, GLuint index, GLuint *params); +GLAPI void APIENTRY glEnableClientStateiEXT (GLenum array, GLuint index); +GLAPI void APIENTRY glDisableClientStateiEXT (GLenum array, GLuint index); +GLAPI void APIENTRY glGetFloati_vEXT (GLenum pname, GLuint index, GLfloat *params); +GLAPI void APIENTRY glGetDoublei_vEXT (GLenum pname, GLuint index, GLdouble *params); +GLAPI void APIENTRY glGetPointeri_vEXT (GLenum pname, GLuint index, void **params); +GLAPI void APIENTRY glNamedProgramStringEXT (GLuint program, GLenum target, GLenum format, GLsizei len, const void *string); +GLAPI void APIENTRY glNamedProgramLocalParameter4dEXT (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glNamedProgramLocalParameter4dvEXT (GLuint program, GLenum target, GLuint index, const GLdouble *params); +GLAPI void APIENTRY glNamedProgramLocalParameter4fEXT (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glNamedProgramLocalParameter4fvEXT (GLuint program, GLenum target, GLuint index, const GLfloat *params); +GLAPI void APIENTRY glGetNamedProgramLocalParameterdvEXT (GLuint program, GLenum target, GLuint index, GLdouble *params); +GLAPI void APIENTRY glGetNamedProgramLocalParameterfvEXT (GLuint program, GLenum target, GLuint index, GLfloat *params); +GLAPI void APIENTRY glGetNamedProgramivEXT (GLuint program, GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetNamedProgramStringEXT (GLuint program, GLenum target, GLenum pname, void *string); +GLAPI void APIENTRY glNamedRenderbufferStorageEXT (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glGetNamedRenderbufferParameterivEXT (GLuint renderbuffer, GLenum pname, GLint *params); +GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleEXT (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleCoverageEXT (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI GLenum APIENTRY glCheckNamedFramebufferStatusEXT (GLuint framebuffer, GLenum target); +GLAPI void APIENTRY glNamedFramebufferTexture1DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI void APIENTRY glNamedFramebufferTexture2DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI void APIENTRY glNamedFramebufferTexture3DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +GLAPI void APIENTRY glNamedFramebufferRenderbufferEXT (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +GLAPI void APIENTRY glGetNamedFramebufferAttachmentParameterivEXT (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); +GLAPI void APIENTRY glGenerateTextureMipmapEXT (GLuint texture, GLenum target); +GLAPI void APIENTRY glGenerateMultiTexMipmapEXT (GLenum texunit, GLenum target); +GLAPI void APIENTRY glFramebufferDrawBufferEXT (GLuint framebuffer, GLenum mode); +GLAPI void APIENTRY glFramebufferDrawBuffersEXT (GLuint framebuffer, GLsizei n, const GLenum *bufs); +GLAPI void APIENTRY glFramebufferReadBufferEXT (GLuint framebuffer, GLenum mode); +GLAPI void APIENTRY glGetFramebufferParameterivEXT (GLuint framebuffer, GLenum pname, GLint *params); +GLAPI void APIENTRY glNamedCopyBufferSubDataEXT (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +GLAPI void APIENTRY glNamedFramebufferTextureEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); +GLAPI void APIENTRY glNamedFramebufferTextureLayerEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); +GLAPI void APIENTRY glNamedFramebufferTextureFaceEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); +GLAPI void APIENTRY glTextureRenderbufferEXT (GLuint texture, GLenum target, GLuint renderbuffer); +GLAPI void APIENTRY glMultiTexRenderbufferEXT (GLenum texunit, GLenum target, GLuint renderbuffer); +GLAPI void APIENTRY glVertexArrayVertexOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArrayColorOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArrayEdgeFlagOffsetEXT (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArrayIndexOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArrayNormalOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArrayTexCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArrayMultiTexCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArrayFogCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArraySecondaryColorOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArrayVertexAttribOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glVertexArrayVertexAttribIOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glEnableVertexArrayEXT (GLuint vaobj, GLenum array); +GLAPI void APIENTRY glDisableVertexArrayEXT (GLuint vaobj, GLenum array); +GLAPI void APIENTRY glEnableVertexArrayAttribEXT (GLuint vaobj, GLuint index); +GLAPI void APIENTRY glDisableVertexArrayAttribEXT (GLuint vaobj, GLuint index); +GLAPI void APIENTRY glGetVertexArrayIntegervEXT (GLuint vaobj, GLenum pname, GLint *param); +GLAPI void APIENTRY glGetVertexArrayPointervEXT (GLuint vaobj, GLenum pname, void **param); +GLAPI void APIENTRY glGetVertexArrayIntegeri_vEXT (GLuint vaobj, GLuint index, GLenum pname, GLint *param); +GLAPI void APIENTRY glGetVertexArrayPointeri_vEXT (GLuint vaobj, GLuint index, GLenum pname, void **param); +GLAPI void *APIENTRY glMapNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); +GLAPI void APIENTRY glFlushMappedNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length); +GLAPI void APIENTRY glNamedBufferStorageEXT (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); +GLAPI void APIENTRY glClearNamedBufferDataEXT (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); +GLAPI void APIENTRY glClearNamedBufferSubDataEXT (GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); +GLAPI void APIENTRY glNamedFramebufferParameteriEXT (GLuint framebuffer, GLenum pname, GLint param); +GLAPI void APIENTRY glGetNamedFramebufferParameterivEXT (GLuint framebuffer, GLenum pname, GLint *params); +GLAPI void APIENTRY glProgramUniform1dEXT (GLuint program, GLint location, GLdouble x); +GLAPI void APIENTRY glProgramUniform2dEXT (GLuint program, GLint location, GLdouble x, GLdouble y); +GLAPI void APIENTRY glProgramUniform3dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glProgramUniform4dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glProgramUniform1dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform2dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform3dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform4dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix2x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix2x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glTextureBufferRangeEXT (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI void APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +GLAPI void APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +GLAPI void APIENTRY glTextureStorage2DMultisampleEXT (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glTextureStorage3DMultisampleEXT (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glVertexArrayBindVertexBufferEXT (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +GLAPI void APIENTRY glVertexArrayVertexAttribFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +GLAPI void APIENTRY glVertexArrayVertexAttribIFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +GLAPI void APIENTRY glVertexArrayVertexAttribLFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +GLAPI void APIENTRY glVertexArrayVertexAttribBindingEXT (GLuint vaobj, GLuint attribindex, GLuint bindingindex); +GLAPI void APIENTRY glVertexArrayVertexBindingDivisorEXT (GLuint vaobj, GLuint bindingindex, GLuint divisor); +GLAPI void APIENTRY glVertexArrayVertexAttribLOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); +GLAPI void APIENTRY glTexturePageCommitmentEXT (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); +GLAPI void APIENTRY glVertexArrayVertexAttribDivisorEXT (GLuint vaobj, GLuint index, GLuint divisor); +#endif +#endif /* GL_EXT_direct_state_access */ + +#ifndef GL_EXT_draw_buffers2 +#define GL_EXT_draw_buffers2 1 +typedef void (APIENTRYP PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorMaskIndexedEXT (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +#endif +#endif /* GL_EXT_draw_buffers2 */ + +#ifndef GL_EXT_draw_instanced +#define GL_EXT_draw_instanced 1 +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount); +GLAPI void APIENTRY glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +#endif +#endif /* GL_EXT_draw_instanced */ + +#ifndef GL_EXT_draw_range_elements +#define GL_EXT_draw_range_elements 1 +#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 +#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawRangeElementsEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); +#endif +#endif /* GL_EXT_draw_range_elements */ + +#ifndef GL_EXT_external_buffer +#define GL_EXT_external_buffer 1 +typedef void *GLeglClientBufferEXT; +typedef void (APIENTRYP PFNGLBUFFERSTORAGEEXTERNALEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); +typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBufferStorageExternalEXT (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); +GLAPI void APIENTRY glNamedBufferStorageExternalEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); +#endif +#endif /* GL_EXT_external_buffer */ + +#ifndef GL_EXT_fog_coord +#define GL_EXT_fog_coord 1 +#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 +#define GL_FOG_COORDINATE_EXT 0x8451 +#define GL_FRAGMENT_DEPTH_EXT 0x8452 +#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 +#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 +typedef void (APIENTRYP PFNGLFOGCOORDFEXTPROC) (GLfloat coord); +typedef void (APIENTRYP PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); +typedef void (APIENTRYP PFNGLFOGCOORDDEXTPROC) (GLdouble coord); +typedef void (APIENTRYP PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); +typedef void (APIENTRYP PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFogCoordfEXT (GLfloat coord); +GLAPI void APIENTRY glFogCoordfvEXT (const GLfloat *coord); +GLAPI void APIENTRY glFogCoorddEXT (GLdouble coord); +GLAPI void APIENTRY glFogCoorddvEXT (const GLdouble *coord); +GLAPI void APIENTRY glFogCoordPointerEXT (GLenum type, GLsizei stride, const void *pointer); +#endif +#endif /* GL_EXT_fog_coord */ + +#ifndef GL_EXT_framebuffer_blit +#define GL_EXT_framebuffer_blit 1 +#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 +typedef void (APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlitFramebufferEXT (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif +#endif /* GL_EXT_framebuffer_blit */ + +#ifndef GL_EXT_framebuffer_multisample +#define GL_EXT_framebuffer_multisample 1 +#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 +#define GL_MAX_SAMPLES_EXT 0x8D57 +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#endif +#endif /* GL_EXT_framebuffer_multisample */ + +#ifndef GL_EXT_framebuffer_multisample_blit_scaled +#define GL_EXT_framebuffer_multisample_blit_scaled 1 +#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA +#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB +#endif /* GL_EXT_framebuffer_multisample_blit_scaled */ + +#ifndef GL_EXT_framebuffer_object +#define GL_EXT_framebuffer_object 1 +#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 +typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); +typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); +typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); +typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers); +typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers); +typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glIsRenderbufferEXT (GLuint renderbuffer); +GLAPI void APIENTRY glBindRenderbufferEXT (GLenum target, GLuint renderbuffer); +GLAPI void APIENTRY glDeleteRenderbuffersEXT (GLsizei n, const GLuint *renderbuffers); +GLAPI void APIENTRY glGenRenderbuffersEXT (GLsizei n, GLuint *renderbuffers); +GLAPI void APIENTRY glRenderbufferStorageEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glGetRenderbufferParameterivEXT (GLenum target, GLenum pname, GLint *params); +GLAPI GLboolean APIENTRY glIsFramebufferEXT (GLuint framebuffer); +GLAPI void APIENTRY glBindFramebufferEXT (GLenum target, GLuint framebuffer); +GLAPI void APIENTRY glDeleteFramebuffersEXT (GLsizei n, const GLuint *framebuffers); +GLAPI void APIENTRY glGenFramebuffersEXT (GLsizei n, GLuint *framebuffers); +GLAPI GLenum APIENTRY glCheckFramebufferStatusEXT (GLenum target); +GLAPI void APIENTRY glFramebufferTexture1DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI void APIENTRY glFramebufferTexture2DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI void APIENTRY glFramebufferTexture3DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +GLAPI void APIENTRY glFramebufferRenderbufferEXT (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +GLAPI void APIENTRY glGetFramebufferAttachmentParameterivEXT (GLenum target, GLenum attachment, GLenum pname, GLint *params); +GLAPI void APIENTRY glGenerateMipmapEXT (GLenum target); +#endif +#endif /* GL_EXT_framebuffer_object */ + +#ifndef GL_EXT_framebuffer_sRGB +#define GL_EXT_framebuffer_sRGB 1 +#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 +#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA +#endif /* GL_EXT_framebuffer_sRGB */ + +#ifndef GL_EXT_geometry_shader4 +#define GL_EXT_geometry_shader4 1 +#define GL_GEOMETRY_SHADER_EXT 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE +#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 +#define GL_LINES_ADJACENCY_EXT 0x000A +#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B +#define GL_TRIANGLES_ADJACENCY_EXT 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 +#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value); +#endif +#endif /* GL_EXT_geometry_shader4 */ + +#ifndef GL_EXT_gpu_program_parameters +#define GL_EXT_gpu_program_parameters 1 +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramEnvParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +GLAPI void APIENTRY glProgramLocalParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +#endif +#endif /* GL_EXT_gpu_program_parameters */ + +#ifndef GL_EXT_gpu_shader4 +#define GL_EXT_gpu_shader4 1 +#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 +#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 +#define GL_SAMPLER_BUFFER_EXT 0x8DC2 +#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 +#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 +#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 +#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 +#define GL_INT_SAMPLER_1D_EXT 0x8DC9 +#define GL_INT_SAMPLER_2D_EXT 0x8DCA +#define GL_INT_SAMPLER_3D_EXT 0x8DCB +#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC +#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD +#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF +#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 +#define GL_MIN_PROGRAM_TEXEL_OFFSET_EXT 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET_EXT 0x8905 +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD +typedef void (APIENTRYP PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params); +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetUniformuivEXT (GLuint program, GLint location, GLuint *params); +GLAPI void APIENTRY glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name); +GLAPI GLint APIENTRY glGetFragDataLocationEXT (GLuint program, const GLchar *name); +GLAPI void APIENTRY glUniform1uiEXT (GLint location, GLuint v0); +GLAPI void APIENTRY glUniform2uiEXT (GLint location, GLuint v0, GLuint v1); +GLAPI void APIENTRY glUniform3uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2); +GLAPI void APIENTRY glUniform4uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +GLAPI void APIENTRY glUniform1uivEXT (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform2uivEXT (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform3uivEXT (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform4uivEXT (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glVertexAttribI1iEXT (GLuint index, GLint x); +GLAPI void APIENTRY glVertexAttribI2iEXT (GLuint index, GLint x, GLint y); +GLAPI void APIENTRY glVertexAttribI3iEXT (GLuint index, GLint x, GLint y, GLint z); +GLAPI void APIENTRY glVertexAttribI4iEXT (GLuint index, GLint x, GLint y, GLint z, GLint w); +GLAPI void APIENTRY glVertexAttribI1uiEXT (GLuint index, GLuint x); +GLAPI void APIENTRY glVertexAttribI2uiEXT (GLuint index, GLuint x, GLuint y); +GLAPI void APIENTRY glVertexAttribI3uiEXT (GLuint index, GLuint x, GLuint y, GLuint z); +GLAPI void APIENTRY glVertexAttribI4uiEXT (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +GLAPI void APIENTRY glVertexAttribI1ivEXT (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI2ivEXT (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI3ivEXT (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI4ivEXT (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI1uivEXT (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI2uivEXT (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI3uivEXT (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI4uivEXT (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI4bvEXT (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttribI4svEXT (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttribI4ubvEXT (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttribI4usvEXT (GLuint index, const GLushort *v); +GLAPI void APIENTRY glVertexAttribIPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glGetVertexAttribIivEXT (GLuint index, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVertexAttribIuivEXT (GLuint index, GLenum pname, GLuint *params); +#endif +#endif /* GL_EXT_gpu_shader4 */ + +#ifndef GL_EXT_histogram +#define GL_EXT_histogram 1 +#define GL_HISTOGRAM_EXT 0x8024 +#define GL_PROXY_HISTOGRAM_EXT 0x8025 +#define GL_HISTOGRAM_WIDTH_EXT 0x8026 +#define GL_HISTOGRAM_FORMAT_EXT 0x8027 +#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C +#define GL_HISTOGRAM_SINK_EXT 0x802D +#define GL_MINMAX_EXT 0x802E +#define GL_MINMAX_FORMAT_EXT 0x802F +#define GL_MINMAX_SINK_EXT 0x8030 +#define GL_TABLE_TOO_LARGE_EXT 0x8031 +typedef void (APIENTRYP PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (APIENTRYP PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); +typedef void (APIENTRYP PFNGLRESETMINMAXEXTPROC) (GLenum target); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetHistogramEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +GLAPI void APIENTRY glGetHistogramParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetHistogramParameterivEXT (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetMinmaxEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); +GLAPI void APIENTRY glGetMinmaxParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetMinmaxParameterivEXT (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glHistogramEXT (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +GLAPI void APIENTRY glMinmaxEXT (GLenum target, GLenum internalformat, GLboolean sink); +GLAPI void APIENTRY glResetHistogramEXT (GLenum target); +GLAPI void APIENTRY glResetMinmaxEXT (GLenum target); +#endif +#endif /* GL_EXT_histogram */ + +#ifndef GL_EXT_index_array_formats +#define GL_EXT_index_array_formats 1 +#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 +#endif /* GL_EXT_index_array_formats */ + +#ifndef GL_EXT_index_func +#define GL_EXT_index_func 1 +#define GL_INDEX_TEST_EXT 0x81B5 +#define GL_INDEX_TEST_FUNC_EXT 0x81B6 +#define GL_INDEX_TEST_REF_EXT 0x81B7 +typedef void (APIENTRYP PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glIndexFuncEXT (GLenum func, GLclampf ref); +#endif +#endif /* GL_EXT_index_func */ + +#ifndef GL_EXT_index_material +#define GL_EXT_index_material 1 +#define GL_INDEX_MATERIAL_EXT 0x81B8 +#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9 +#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA +typedef void (APIENTRYP PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glIndexMaterialEXT (GLenum face, GLenum mode); +#endif +#endif /* GL_EXT_index_material */ + +#ifndef GL_EXT_index_texture +#define GL_EXT_index_texture 1 +#endif /* GL_EXT_index_texture */ + +#ifndef GL_EXT_light_texture +#define GL_EXT_light_texture 1 +#define GL_FRAGMENT_MATERIAL_EXT 0x8349 +#define GL_FRAGMENT_NORMAL_EXT 0x834A +#define GL_FRAGMENT_COLOR_EXT 0x834C +#define GL_ATTENUATION_EXT 0x834D +#define GL_SHADOW_ATTENUATION_EXT 0x834E +#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F +#define GL_TEXTURE_LIGHT_EXT 0x8350 +#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 +#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 +typedef void (APIENTRYP PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); +typedef void (APIENTRYP PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glApplyTextureEXT (GLenum mode); +GLAPI void APIENTRY glTextureLightEXT (GLenum pname); +GLAPI void APIENTRY glTextureMaterialEXT (GLenum face, GLenum mode); +#endif +#endif /* GL_EXT_light_texture */ + +#ifndef GL_EXT_memory_object +#define GL_EXT_memory_object 1 +#define GL_TEXTURE_TILING_EXT 0x9580 +#define GL_DEDICATED_MEMORY_OBJECT_EXT 0x9581 +#define GL_PROTECTED_MEMORY_OBJECT_EXT 0x959B +#define GL_NUM_TILING_TYPES_EXT 0x9582 +#define GL_TILING_TYPES_EXT 0x9583 +#define GL_OPTIMAL_TILING_EXT 0x9584 +#define GL_LINEAR_TILING_EXT 0x9585 +#define GL_NUM_DEVICE_UUIDS_EXT 0x9596 +#define GL_DEVICE_UUID_EXT 0x9597 +#define GL_DRIVER_UUID_EXT 0x9598 +#define GL_UUID_SIZE_EXT 16 +typedef void (APIENTRYP PFNGLGETUNSIGNEDBYTEVEXTPROC) (GLenum pname, GLubyte *data); +typedef void (APIENTRYP PFNGLGETUNSIGNEDBYTEI_VEXTPROC) (GLenum target, GLuint index, GLubyte *data); +typedef void (APIENTRYP PFNGLDELETEMEMORYOBJECTSEXTPROC) (GLsizei n, const GLuint *memoryObjects); +typedef GLboolean (APIENTRYP PFNGLISMEMORYOBJECTEXTPROC) (GLuint memoryObject); +typedef void (APIENTRYP PFNGLCREATEMEMORYOBJECTSEXTPROC) (GLsizei n, GLuint *memoryObjects); +typedef void (APIENTRYP PFNGLMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLTEXSTORAGEMEM2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); +typedef void (APIENTRYP PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +typedef void (APIENTRYP PFNGLTEXSTORAGEMEM3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); +typedef void (APIENTRYP PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +typedef void (APIENTRYP PFNGLBUFFERSTORAGEMEMEXTPROC) (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); +typedef void (APIENTRYP PFNGLTEXTURESTORAGEMEM2DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); +typedef void (APIENTRYP PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +typedef void (APIENTRYP PFNGLTEXTURESTORAGEMEM3DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); +typedef void (APIENTRYP PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC) (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); +typedef void (APIENTRYP PFNGLTEXSTORAGEMEM1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); +typedef void (APIENTRYP PFNGLTEXTURESTORAGEMEM1DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetUnsignedBytevEXT (GLenum pname, GLubyte *data); +GLAPI void APIENTRY glGetUnsignedBytei_vEXT (GLenum target, GLuint index, GLubyte *data); +GLAPI void APIENTRY glDeleteMemoryObjectsEXT (GLsizei n, const GLuint *memoryObjects); +GLAPI GLboolean APIENTRY glIsMemoryObjectEXT (GLuint memoryObject); +GLAPI void APIENTRY glCreateMemoryObjectsEXT (GLsizei n, GLuint *memoryObjects); +GLAPI void APIENTRY glMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, const GLint *params); +GLAPI void APIENTRY glGetMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, GLint *params); +GLAPI void APIENTRY glTexStorageMem2DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); +GLAPI void APIENTRY glTexStorageMem2DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +GLAPI void APIENTRY glTexStorageMem3DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); +GLAPI void APIENTRY glTexStorageMem3DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +GLAPI void APIENTRY glBufferStorageMemEXT (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); +GLAPI void APIENTRY glTextureStorageMem2DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); +GLAPI void APIENTRY glTextureStorageMem2DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +GLAPI void APIENTRY glTextureStorageMem3DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); +GLAPI void APIENTRY glTextureStorageMem3DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +GLAPI void APIENTRY glNamedBufferStorageMemEXT (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); +GLAPI void APIENTRY glTexStorageMem1DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); +GLAPI void APIENTRY glTextureStorageMem1DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); +#endif +#endif /* GL_EXT_memory_object */ + +#ifndef GL_EXT_memory_object_fd +#define GL_EXT_memory_object_fd 1 +#define GL_HANDLE_TYPE_OPAQUE_FD_EXT 0x9586 +typedef void (APIENTRYP PFNGLIMPORTMEMORYFDEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, GLint fd); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glImportMemoryFdEXT (GLuint memory, GLuint64 size, GLenum handleType, GLint fd); +#endif +#endif /* GL_EXT_memory_object_fd */ + +#ifndef GL_EXT_memory_object_win32 +#define GL_EXT_memory_object_win32 1 +#define GL_HANDLE_TYPE_OPAQUE_WIN32_EXT 0x9587 +#define GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT 0x9588 +#define GL_DEVICE_LUID_EXT 0x9599 +#define GL_DEVICE_NODE_MASK_EXT 0x959A +#define GL_LUID_SIZE_EXT 8 +#define GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT 0x9589 +#define GL_HANDLE_TYPE_D3D12_RESOURCE_EXT 0x958A +#define GL_HANDLE_TYPE_D3D11_IMAGE_EXT 0x958B +#define GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT 0x958C +typedef void (APIENTRYP PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, void *handle); +typedef void (APIENTRYP PFNGLIMPORTMEMORYWIN32NAMEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, const void *name); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glImportMemoryWin32HandleEXT (GLuint memory, GLuint64 size, GLenum handleType, void *handle); +GLAPI void APIENTRY glImportMemoryWin32NameEXT (GLuint memory, GLuint64 size, GLenum handleType, const void *name); +#endif +#endif /* GL_EXT_memory_object_win32 */ + +#ifndef GL_EXT_misc_attribute +#define GL_EXT_misc_attribute 1 +#endif /* GL_EXT_misc_attribute */ + +#ifndef GL_EXT_multi_draw_arrays +#define GL_EXT_multi_draw_arrays 1 +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiDrawArraysEXT (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +GLAPI void APIENTRY glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); +#endif +#endif /* GL_EXT_multi_draw_arrays */ + +#ifndef GL_EXT_multisample +#define GL_EXT_multisample 1 +#define GL_MULTISAMPLE_EXT 0x809D +#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F +#define GL_SAMPLE_MASK_EXT 0x80A0 +#define GL_1PASS_EXT 0x80A1 +#define GL_2PASS_0_EXT 0x80A2 +#define GL_2PASS_1_EXT 0x80A3 +#define GL_4PASS_0_EXT 0x80A4 +#define GL_4PASS_1_EXT 0x80A5 +#define GL_4PASS_2_EXT 0x80A6 +#define GL_4PASS_3_EXT 0x80A7 +#define GL_SAMPLE_BUFFERS_EXT 0x80A8 +#define GL_SAMPLES_EXT 0x80A9 +#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA +#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB +#define GL_SAMPLE_PATTERN_EXT 0x80AC +#define GL_MULTISAMPLE_BIT_EXT 0x20000000 +typedef void (APIENTRYP PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRYP PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSampleMaskEXT (GLclampf value, GLboolean invert); +GLAPI void APIENTRY glSamplePatternEXT (GLenum pattern); +#endif +#endif /* GL_EXT_multisample */ + +#ifndef GL_EXT_multiview_tessellation_geometry_shader +#define GL_EXT_multiview_tessellation_geometry_shader 1 +#endif /* GL_EXT_multiview_tessellation_geometry_shader */ + +#ifndef GL_EXT_multiview_texture_multisample +#define GL_EXT_multiview_texture_multisample 1 +#endif /* GL_EXT_multiview_texture_multisample */ + +#ifndef GL_EXT_multiview_timer_query +#define GL_EXT_multiview_timer_query 1 +#endif /* GL_EXT_multiview_timer_query */ + +#ifndef GL_EXT_packed_depth_stencil +#define GL_EXT_packed_depth_stencil 1 +#define GL_DEPTH_STENCIL_EXT 0x84F9 +#define GL_UNSIGNED_INT_24_8_EXT 0x84FA +#define GL_DEPTH24_STENCIL8_EXT 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 +#endif /* GL_EXT_packed_depth_stencil */ + +#ifndef GL_EXT_packed_float +#define GL_EXT_packed_float 1 +#define GL_R11F_G11F_B10F_EXT 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B +#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C +#endif /* GL_EXT_packed_float */ + +#ifndef GL_EXT_packed_pixels +#define GL_EXT_packed_pixels 1 +#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 +#endif /* GL_EXT_packed_pixels */ + +#ifndef GL_EXT_paletted_texture +#define GL_EXT_paletted_texture 1 +#define GL_COLOR_INDEX1_EXT 0x80E2 +#define GL_COLOR_INDEX2_EXT 0x80E3 +#define GL_COLOR_INDEX4_EXT 0x80E4 +#define GL_COLOR_INDEX8_EXT 0x80E5 +#define GL_COLOR_INDEX12_EXT 0x80E6 +#define GL_COLOR_INDEX16_EXT 0x80E7 +#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED +typedef void (APIENTRYP PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *table); +typedef void (APIENTRYP PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, void *data); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorTableEXT (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *table); +GLAPI void APIENTRY glGetColorTableEXT (GLenum target, GLenum format, GLenum type, void *data); +GLAPI void APIENTRY glGetColorTableParameterivEXT (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetColorTableParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); +#endif +#endif /* GL_EXT_paletted_texture */ + +#ifndef GL_EXT_pixel_buffer_object +#define GL_EXT_pixel_buffer_object 1 +#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF +#endif /* GL_EXT_pixel_buffer_object */ + +#ifndef GL_EXT_pixel_transform +#define GL_EXT_pixel_transform 1 +#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 +#define GL_PIXEL_MAG_FILTER_EXT 0x8331 +#define GL_PIXEL_MIN_FILTER_EXT 0x8332 +#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 +#define GL_CUBIC_EXT 0x8334 +#define GL_AVERAGE_EXT 0x8335 +#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 +#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 +#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelTransformParameteriEXT (GLenum target, GLenum pname, GLint param); +GLAPI void APIENTRY glPixelTransformParameterfEXT (GLenum target, GLenum pname, GLfloat param); +GLAPI void APIENTRY glPixelTransformParameterivEXT (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glPixelTransformParameterfvEXT (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glGetPixelTransformParameterivEXT (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetPixelTransformParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); +#endif +#endif /* GL_EXT_pixel_transform */ + +#ifndef GL_EXT_pixel_transform_color_table +#define GL_EXT_pixel_transform_color_table 1 +#endif /* GL_EXT_pixel_transform_color_table */ + +#ifndef GL_EXT_point_parameters +#define GL_EXT_point_parameters 1 +#define GL_POINT_SIZE_MIN_EXT 0x8126 +#define GL_POINT_SIZE_MAX_EXT 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 +#define GL_DISTANCE_ATTENUATION_EXT 0x8129 +typedef void (APIENTRYP PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameterfEXT (GLenum pname, GLfloat param); +GLAPI void APIENTRY glPointParameterfvEXT (GLenum pname, const GLfloat *params); +#endif +#endif /* GL_EXT_point_parameters */ + +#ifndef GL_EXT_polygon_offset +#define GL_EXT_polygon_offset 1 +#define GL_POLYGON_OFFSET_EXT 0x8037 +#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 +#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 +typedef void (APIENTRYP PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPolygonOffsetEXT (GLfloat factor, GLfloat bias); +#endif +#endif /* GL_EXT_polygon_offset */ + +#ifndef GL_EXT_polygon_offset_clamp +#define GL_EXT_polygon_offset_clamp 1 +#define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B +typedef void (APIENTRYP PFNGLPOLYGONOFFSETCLAMPEXTPROC) (GLfloat factor, GLfloat units, GLfloat clamp); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPolygonOffsetClampEXT (GLfloat factor, GLfloat units, GLfloat clamp); +#endif +#endif /* GL_EXT_polygon_offset_clamp */ + +#ifndef GL_EXT_post_depth_coverage +#define GL_EXT_post_depth_coverage 1 +#endif /* GL_EXT_post_depth_coverage */ + +#ifndef GL_EXT_provoking_vertex +#define GL_EXT_provoking_vertex 1 +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C +#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E +#define GL_PROVOKING_VERTEX_EXT 0x8E4F +typedef void (APIENTRYP PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProvokingVertexEXT (GLenum mode); +#endif +#endif /* GL_EXT_provoking_vertex */ + +#ifndef GL_EXT_raster_multisample +#define GL_EXT_raster_multisample 1 +#define GL_RASTER_MULTISAMPLE_EXT 0x9327 +#define GL_RASTER_SAMPLES_EXT 0x9328 +#define GL_MAX_RASTER_SAMPLES_EXT 0x9329 +#define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A +#define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B +#define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C +typedef void (APIENTRYP PFNGLRASTERSAMPLESEXTPROC) (GLuint samples, GLboolean fixedsamplelocations); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glRasterSamplesEXT (GLuint samples, GLboolean fixedsamplelocations); +#endif +#endif /* GL_EXT_raster_multisample */ + +#ifndef GL_EXT_rescale_normal +#define GL_EXT_rescale_normal 1 +#define GL_RESCALE_NORMAL_EXT 0x803A +#endif /* GL_EXT_rescale_normal */ + +#ifndef GL_EXT_secondary_color +#define GL_EXT_secondary_color 1 +#define GL_COLOR_SUM_EXT 0x8458 +#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D +#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); +typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSecondaryColor3bEXT (GLbyte red, GLbyte green, GLbyte blue); +GLAPI void APIENTRY glSecondaryColor3bvEXT (const GLbyte *v); +GLAPI void APIENTRY glSecondaryColor3dEXT (GLdouble red, GLdouble green, GLdouble blue); +GLAPI void APIENTRY glSecondaryColor3dvEXT (const GLdouble *v); +GLAPI void APIENTRY glSecondaryColor3fEXT (GLfloat red, GLfloat green, GLfloat blue); +GLAPI void APIENTRY glSecondaryColor3fvEXT (const GLfloat *v); +GLAPI void APIENTRY glSecondaryColor3iEXT (GLint red, GLint green, GLint blue); +GLAPI void APIENTRY glSecondaryColor3ivEXT (const GLint *v); +GLAPI void APIENTRY glSecondaryColor3sEXT (GLshort red, GLshort green, GLshort blue); +GLAPI void APIENTRY glSecondaryColor3svEXT (const GLshort *v); +GLAPI void APIENTRY glSecondaryColor3ubEXT (GLubyte red, GLubyte green, GLubyte blue); +GLAPI void APIENTRY glSecondaryColor3ubvEXT (const GLubyte *v); +GLAPI void APIENTRY glSecondaryColor3uiEXT (GLuint red, GLuint green, GLuint blue); +GLAPI void APIENTRY glSecondaryColor3uivEXT (const GLuint *v); +GLAPI void APIENTRY glSecondaryColor3usEXT (GLushort red, GLushort green, GLushort blue); +GLAPI void APIENTRY glSecondaryColor3usvEXT (const GLushort *v); +GLAPI void APIENTRY glSecondaryColorPointerEXT (GLint size, GLenum type, GLsizei stride, const void *pointer); +#endif +#endif /* GL_EXT_secondary_color */ + +#ifndef GL_EXT_semaphore +#define GL_EXT_semaphore 1 +#define GL_LAYOUT_GENERAL_EXT 0x958D +#define GL_LAYOUT_COLOR_ATTACHMENT_EXT 0x958E +#define GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT 0x958F +#define GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT 0x9590 +#define GL_LAYOUT_SHADER_READ_ONLY_EXT 0x9591 +#define GL_LAYOUT_TRANSFER_SRC_EXT 0x9592 +#define GL_LAYOUT_TRANSFER_DST_EXT 0x9593 +#define GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT 0x9530 +#define GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT 0x9531 +typedef void (APIENTRYP PFNGLGENSEMAPHORESEXTPROC) (GLsizei n, GLuint *semaphores); +typedef void (APIENTRYP PFNGLDELETESEMAPHORESEXTPROC) (GLsizei n, const GLuint *semaphores); +typedef GLboolean (APIENTRYP PFNGLISSEMAPHOREEXTPROC) (GLuint semaphore); +typedef void (APIENTRYP PFNGLSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, const GLuint64 *params); +typedef void (APIENTRYP PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, GLuint64 *params); +typedef void (APIENTRYP PFNGLWAITSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); +typedef void (APIENTRYP PFNGLSIGNALSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenSemaphoresEXT (GLsizei n, GLuint *semaphores); +GLAPI void APIENTRY glDeleteSemaphoresEXT (GLsizei n, const GLuint *semaphores); +GLAPI GLboolean APIENTRY glIsSemaphoreEXT (GLuint semaphore); +GLAPI void APIENTRY glSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, const GLuint64 *params); +GLAPI void APIENTRY glGetSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, GLuint64 *params); +GLAPI void APIENTRY glWaitSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); +GLAPI void APIENTRY glSignalSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); +#endif +#endif /* GL_EXT_semaphore */ + +#ifndef GL_EXT_semaphore_fd +#define GL_EXT_semaphore_fd 1 +typedef void (APIENTRYP PFNGLIMPORTSEMAPHOREFDEXTPROC) (GLuint semaphore, GLenum handleType, GLint fd); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glImportSemaphoreFdEXT (GLuint semaphore, GLenum handleType, GLint fd); +#endif +#endif /* GL_EXT_semaphore_fd */ + +#ifndef GL_EXT_semaphore_win32 +#define GL_EXT_semaphore_win32 1 +#define GL_HANDLE_TYPE_D3D12_FENCE_EXT 0x9594 +#define GL_D3D12_FENCE_VALUE_EXT 0x9595 +typedef void (APIENTRYP PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC) (GLuint semaphore, GLenum handleType, void *handle); +typedef void (APIENTRYP PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC) (GLuint semaphore, GLenum handleType, const void *name); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glImportSemaphoreWin32HandleEXT (GLuint semaphore, GLenum handleType, void *handle); +GLAPI void APIENTRY glImportSemaphoreWin32NameEXT (GLuint semaphore, GLenum handleType, const void *name); +#endif +#endif /* GL_EXT_semaphore_win32 */ + +#ifndef GL_EXT_separate_shader_objects +#define GL_EXT_separate_shader_objects 1 +#define GL_ACTIVE_PROGRAM_EXT 0x8B8D +typedef void (APIENTRYP PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program); +typedef void (APIENTRYP PFNGLACTIVEPROGRAMEXTPROC) (GLuint program); +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMEXTPROC) (GLenum type, const GLchar *string); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glUseShaderProgramEXT (GLenum type, GLuint program); +GLAPI void APIENTRY glActiveProgramEXT (GLuint program); +GLAPI GLuint APIENTRY glCreateShaderProgramEXT (GLenum type, const GLchar *string); +#endif +#endif /* GL_EXT_separate_shader_objects */ + +#ifndef GL_EXT_separate_specular_color +#define GL_EXT_separate_specular_color 1 +#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 +#define GL_SINGLE_COLOR_EXT 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA +#endif /* GL_EXT_separate_specular_color */ + +#ifndef GL_EXT_shader_framebuffer_fetch +#define GL_EXT_shader_framebuffer_fetch 1 +#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52 +#endif /* GL_EXT_shader_framebuffer_fetch */ + +#ifndef GL_EXT_shader_framebuffer_fetch_non_coherent +#define GL_EXT_shader_framebuffer_fetch_non_coherent 1 +typedef void (APIENTRYP PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFramebufferFetchBarrierEXT (void); +#endif +#endif /* GL_EXT_shader_framebuffer_fetch_non_coherent */ + +#ifndef GL_EXT_shader_image_load_formatted +#define GL_EXT_shader_image_load_formatted 1 +#endif /* GL_EXT_shader_image_load_formatted */ + +#ifndef GL_EXT_shader_image_load_store +#define GL_EXT_shader_image_load_store 1 +#define GL_MAX_IMAGE_UNITS_EXT 0x8F38 +#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39 +#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A +#define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B +#define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C +#define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D +#define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E +#define GL_IMAGE_1D_EXT 0x904C +#define GL_IMAGE_2D_EXT 0x904D +#define GL_IMAGE_3D_EXT 0x904E +#define GL_IMAGE_2D_RECT_EXT 0x904F +#define GL_IMAGE_CUBE_EXT 0x9050 +#define GL_IMAGE_BUFFER_EXT 0x9051 +#define GL_IMAGE_1D_ARRAY_EXT 0x9052 +#define GL_IMAGE_2D_ARRAY_EXT 0x9053 +#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 +#define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055 +#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056 +#define GL_INT_IMAGE_1D_EXT 0x9057 +#define GL_INT_IMAGE_2D_EXT 0x9058 +#define GL_INT_IMAGE_3D_EXT 0x9059 +#define GL_INT_IMAGE_2D_RECT_EXT 0x905A +#define GL_INT_IMAGE_CUBE_EXT 0x905B +#define GL_INT_IMAGE_BUFFER_EXT 0x905C +#define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D +#define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E +#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F +#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060 +#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061 +#define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062 +#define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063 +#define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064 +#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065 +#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066 +#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 +#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068 +#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069 +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C +#define GL_MAX_IMAGE_SAMPLES_EXT 0x906D +#define GL_IMAGE_BINDING_FORMAT_EXT 0x906E +#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001 +#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002 +#define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004 +#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008 +#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020 +#define GL_COMMAND_BARRIER_BIT_EXT 0x00000040 +#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080 +#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100 +#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200 +#define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400 +#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800 +#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000 +#define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF +typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); +typedef void (APIENTRYP PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindImageTextureEXT (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); +GLAPI void APIENTRY glMemoryBarrierEXT (GLbitfield barriers); +#endif +#endif /* GL_EXT_shader_image_load_store */ + +#ifndef GL_EXT_shader_integer_mix +#define GL_EXT_shader_integer_mix 1 +#endif /* GL_EXT_shader_integer_mix */ + +#ifndef GL_EXT_shader_samples_identical +#define GL_EXT_shader_samples_identical 1 +#endif /* GL_EXT_shader_samples_identical */ + +#ifndef GL_EXT_shadow_funcs +#define GL_EXT_shadow_funcs 1 +#endif /* GL_EXT_shadow_funcs */ + +#ifndef GL_EXT_shared_texture_palette +#define GL_EXT_shared_texture_palette 1 +#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB +#endif /* GL_EXT_shared_texture_palette */ + +#ifndef GL_EXT_sparse_texture2 +#define GL_EXT_sparse_texture2 1 +#endif /* GL_EXT_sparse_texture2 */ + +#ifndef GL_EXT_stencil_clear_tag +#define GL_EXT_stencil_clear_tag 1 +#define GL_STENCIL_TAG_BITS_EXT 0x88F2 +#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 +typedef void (APIENTRYP PFNGLSTENCILCLEARTAGEXTPROC) (GLsizei stencilTagBits, GLuint stencilClearTag); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glStencilClearTagEXT (GLsizei stencilTagBits, GLuint stencilClearTag); +#endif +#endif /* GL_EXT_stencil_clear_tag */ + +#ifndef GL_EXT_stencil_two_side +#define GL_EXT_stencil_two_side 1 +#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 +#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 +typedef void (APIENTRYP PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glActiveStencilFaceEXT (GLenum face); +#endif +#endif /* GL_EXT_stencil_two_side */ + +#ifndef GL_EXT_stencil_wrap +#define GL_EXT_stencil_wrap 1 +#define GL_INCR_WRAP_EXT 0x8507 +#define GL_DECR_WRAP_EXT 0x8508 +#endif /* GL_EXT_stencil_wrap */ + +#ifndef GL_EXT_subtexture +#define GL_EXT_subtexture 1 +typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +#endif +#endif /* GL_EXT_subtexture */ + +#ifndef GL_EXT_texture +#define GL_EXT_texture 1 +#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 +#endif /* GL_EXT_texture */ + +#ifndef GL_EXT_texture3D +#define GL_EXT_texture3D 1 +#define GL_PACK_SKIP_IMAGES_EXT 0x806B +#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C +#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D +#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E +#define GL_TEXTURE_3D_EXT 0x806F +#define GL_PROXY_TEXTURE_3D_EXT 0x8070 +#define GL_TEXTURE_DEPTH_EXT 0x8071 +#define GL_TEXTURE_WRAP_R_EXT 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 +typedef void (APIENTRYP PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexImage3DEXT (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +#endif +#endif /* GL_EXT_texture3D */ + +#ifndef GL_EXT_texture_array +#define GL_EXT_texture_array 1 +#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 +#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D +#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF +#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFramebufferTextureLayerEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#endif +#endif /* GL_EXT_texture_array */ + +#ifndef GL_EXT_texture_buffer_object +#define GL_EXT_texture_buffer_object 1 +#define GL_TEXTURE_BUFFER_EXT 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D +#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E +typedef void (APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexBufferEXT (GLenum target, GLenum internalformat, GLuint buffer); +#endif +#endif /* GL_EXT_texture_buffer_object */ + +#ifndef GL_EXT_texture_compression_latc +#define GL_EXT_texture_compression_latc 1 +#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 +#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 +#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 +#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 +#endif /* GL_EXT_texture_compression_latc */ + +#ifndef GL_EXT_texture_compression_rgtc +#define GL_EXT_texture_compression_rgtc 1 +#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC +#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD +#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE +#endif /* GL_EXT_texture_compression_rgtc */ + +#ifndef GL_EXT_texture_compression_s3tc +#define GL_EXT_texture_compression_s3tc 1 +#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 +#endif /* GL_EXT_texture_compression_s3tc */ + +#ifndef GL_EXT_texture_cube_map +#define GL_EXT_texture_cube_map 1 +#define GL_NORMAL_MAP_EXT 0x8511 +#define GL_REFLECTION_MAP_EXT 0x8512 +#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C +#endif /* GL_EXT_texture_cube_map */ + +#ifndef GL_EXT_texture_env_add +#define GL_EXT_texture_env_add 1 +#endif /* GL_EXT_texture_env_add */ + +#ifndef GL_EXT_texture_env_combine +#define GL_EXT_texture_env_combine 1 +#define GL_COMBINE_EXT 0x8570 +#define GL_COMBINE_RGB_EXT 0x8571 +#define GL_COMBINE_ALPHA_EXT 0x8572 +#define GL_RGB_SCALE_EXT 0x8573 +#define GL_ADD_SIGNED_EXT 0x8574 +#define GL_INTERPOLATE_EXT 0x8575 +#define GL_CONSTANT_EXT 0x8576 +#define GL_PRIMARY_COLOR_EXT 0x8577 +#define GL_PREVIOUS_EXT 0x8578 +#define GL_SOURCE0_RGB_EXT 0x8580 +#define GL_SOURCE1_RGB_EXT 0x8581 +#define GL_SOURCE2_RGB_EXT 0x8582 +#define GL_SOURCE0_ALPHA_EXT 0x8588 +#define GL_SOURCE1_ALPHA_EXT 0x8589 +#define GL_SOURCE2_ALPHA_EXT 0x858A +#define GL_OPERAND0_RGB_EXT 0x8590 +#define GL_OPERAND1_RGB_EXT 0x8591 +#define GL_OPERAND2_RGB_EXT 0x8592 +#define GL_OPERAND0_ALPHA_EXT 0x8598 +#define GL_OPERAND1_ALPHA_EXT 0x8599 +#define GL_OPERAND2_ALPHA_EXT 0x859A +#endif /* GL_EXT_texture_env_combine */ + +#ifndef GL_EXT_texture_env_dot3 +#define GL_EXT_texture_env_dot3 1 +#define GL_DOT3_RGB_EXT 0x8740 +#define GL_DOT3_RGBA_EXT 0x8741 +#endif /* GL_EXT_texture_env_dot3 */ + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_EXT_texture_filter_anisotropic 1 +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +#endif /* GL_EXT_texture_filter_anisotropic */ + +#ifndef GL_EXT_texture_filter_minmax +#define GL_EXT_texture_filter_minmax 1 +#define GL_TEXTURE_REDUCTION_MODE_EXT 0x9366 +#define GL_WEIGHTED_AVERAGE_EXT 0x9367 +#endif /* GL_EXT_texture_filter_minmax */ + +#ifndef GL_EXT_texture_integer +#define GL_EXT_texture_integer 1 +#define GL_RGBA32UI_EXT 0x8D70 +#define GL_RGB32UI_EXT 0x8D71 +#define GL_ALPHA32UI_EXT 0x8D72 +#define GL_INTENSITY32UI_EXT 0x8D73 +#define GL_LUMINANCE32UI_EXT 0x8D74 +#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 +#define GL_RGBA16UI_EXT 0x8D76 +#define GL_RGB16UI_EXT 0x8D77 +#define GL_ALPHA16UI_EXT 0x8D78 +#define GL_INTENSITY16UI_EXT 0x8D79 +#define GL_LUMINANCE16UI_EXT 0x8D7A +#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B +#define GL_RGBA8UI_EXT 0x8D7C +#define GL_RGB8UI_EXT 0x8D7D +#define GL_ALPHA8UI_EXT 0x8D7E +#define GL_INTENSITY8UI_EXT 0x8D7F +#define GL_LUMINANCE8UI_EXT 0x8D80 +#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 +#define GL_RGBA32I_EXT 0x8D82 +#define GL_RGB32I_EXT 0x8D83 +#define GL_ALPHA32I_EXT 0x8D84 +#define GL_INTENSITY32I_EXT 0x8D85 +#define GL_LUMINANCE32I_EXT 0x8D86 +#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 +#define GL_RGBA16I_EXT 0x8D88 +#define GL_RGB16I_EXT 0x8D89 +#define GL_ALPHA16I_EXT 0x8D8A +#define GL_INTENSITY16I_EXT 0x8D8B +#define GL_LUMINANCE16I_EXT 0x8D8C +#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D +#define GL_RGBA8I_EXT 0x8D8E +#define GL_RGB8I_EXT 0x8D8F +#define GL_ALPHA8I_EXT 0x8D90 +#define GL_INTENSITY8I_EXT 0x8D91 +#define GL_LUMINANCE8I_EXT 0x8D92 +#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 +#define GL_RED_INTEGER_EXT 0x8D94 +#define GL_GREEN_INTEGER_EXT 0x8D95 +#define GL_BLUE_INTEGER_EXT 0x8D96 +#define GL_ALPHA_INTEGER_EXT 0x8D97 +#define GL_RGB_INTEGER_EXT 0x8D98 +#define GL_RGBA_INTEGER_EXT 0x8D99 +#define GL_BGR_INTEGER_EXT 0x8D9A +#define GL_BGRA_INTEGER_EXT 0x8D9B +#define GL_LUMINANCE_INTEGER_EXT 0x8D9C +#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D +#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E +typedef void (APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); +typedef void (APIENTRYP PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexParameterIivEXT (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glTexParameterIuivEXT (GLenum target, GLenum pname, const GLuint *params); +GLAPI void APIENTRY glGetTexParameterIivEXT (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetTexParameterIuivEXT (GLenum target, GLenum pname, GLuint *params); +GLAPI void APIENTRY glClearColorIiEXT (GLint red, GLint green, GLint blue, GLint alpha); +GLAPI void APIENTRY glClearColorIuiEXT (GLuint red, GLuint green, GLuint blue, GLuint alpha); +#endif +#endif /* GL_EXT_texture_integer */ + +#ifndef GL_EXT_texture_lod_bias +#define GL_EXT_texture_lod_bias 1 +#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD +#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 +#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 +#endif /* GL_EXT_texture_lod_bias */ + +#ifndef GL_EXT_texture_mirror_clamp +#define GL_EXT_texture_mirror_clamp 1 +#define GL_MIRROR_CLAMP_EXT 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 +#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 +#endif /* GL_EXT_texture_mirror_clamp */ + +#ifndef GL_EXT_texture_object +#define GL_EXT_texture_object 1 +#define GL_TEXTURE_PRIORITY_EXT 0x8066 +#define GL_TEXTURE_RESIDENT_EXT 0x8067 +#define GL_TEXTURE_1D_BINDING_EXT 0x8068 +#define GL_TEXTURE_2D_BINDING_EXT 0x8069 +#define GL_TEXTURE_3D_BINDING_EXT 0x806A +typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences); +typedef void (APIENTRYP PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); +typedef void (APIENTRYP PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures); +typedef void (APIENTRYP PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures); +typedef GLboolean (APIENTRYP PFNGLISTEXTUREEXTPROC) (GLuint texture); +typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glAreTexturesResidentEXT (GLsizei n, const GLuint *textures, GLboolean *residences); +GLAPI void APIENTRY glBindTextureEXT (GLenum target, GLuint texture); +GLAPI void APIENTRY glDeleteTexturesEXT (GLsizei n, const GLuint *textures); +GLAPI void APIENTRY glGenTexturesEXT (GLsizei n, GLuint *textures); +GLAPI GLboolean APIENTRY glIsTextureEXT (GLuint texture); +GLAPI void APIENTRY glPrioritizeTexturesEXT (GLsizei n, const GLuint *textures, const GLclampf *priorities); +#endif +#endif /* GL_EXT_texture_object */ + +#ifndef GL_EXT_texture_perturb_normal +#define GL_EXT_texture_perturb_normal 1 +#define GL_PERTURB_EXT 0x85AE +#define GL_TEXTURE_NORMAL_EXT 0x85AF +typedef void (APIENTRYP PFNGLTEXTURENORMALEXTPROC) (GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTextureNormalEXT (GLenum mode); +#endif +#endif /* GL_EXT_texture_perturb_normal */ + +#ifndef GL_EXT_texture_sRGB +#define GL_EXT_texture_sRGB 1 +#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 +#endif /* GL_EXT_texture_sRGB */ + +#ifndef GL_EXT_texture_sRGB_R8 +#define GL_EXT_texture_sRGB_R8 1 +#define GL_SR8_EXT 0x8FBD +#endif /* GL_EXT_texture_sRGB_R8 */ + +#ifndef GL_EXT_texture_sRGB_RG8 +#define GL_EXT_texture_sRGB_RG8 1 +#define GL_SRG8_EXT 0x8FBE +#endif /* GL_EXT_texture_sRGB_RG8 */ + +#ifndef GL_EXT_texture_sRGB_decode +#define GL_EXT_texture_sRGB_decode 1 +#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 +#define GL_DECODE_EXT 0x8A49 +#define GL_SKIP_DECODE_EXT 0x8A4A +#endif /* GL_EXT_texture_sRGB_decode */ + +#ifndef GL_EXT_texture_shadow_lod +#define GL_EXT_texture_shadow_lod 1 +#endif /* GL_EXT_texture_shadow_lod */ + +#ifndef GL_EXT_texture_shared_exponent +#define GL_EXT_texture_shared_exponent 1 +#define GL_RGB9_E5_EXT 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E +#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F +#endif /* GL_EXT_texture_shared_exponent */ + +#ifndef GL_EXT_texture_snorm +#define GL_EXT_texture_snorm 1 +#define GL_ALPHA_SNORM 0x9010 +#define GL_LUMINANCE_SNORM 0x9011 +#define GL_LUMINANCE_ALPHA_SNORM 0x9012 +#define GL_INTENSITY_SNORM 0x9013 +#define GL_ALPHA8_SNORM 0x9014 +#define GL_LUMINANCE8_SNORM 0x9015 +#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016 +#define GL_INTENSITY8_SNORM 0x9017 +#define GL_ALPHA16_SNORM 0x9018 +#define GL_LUMINANCE16_SNORM 0x9019 +#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A +#define GL_INTENSITY16_SNORM 0x901B +#define GL_RED_SNORM 0x8F90 +#define GL_RG_SNORM 0x8F91 +#define GL_RGB_SNORM 0x8F92 +#define GL_RGBA_SNORM 0x8F93 +#endif /* GL_EXT_texture_snorm */ + +#ifndef GL_EXT_texture_storage +#define GL_EXT_texture_storage 1 +#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F +#define GL_RGBA32F_EXT 0x8814 +#define GL_RGB32F_EXT 0x8815 +#define GL_ALPHA32F_EXT 0x8816 +#define GL_LUMINANCE32F_EXT 0x8818 +#define GL_LUMINANCE_ALPHA32F_EXT 0x8819 +#define GL_RGBA16F_EXT 0x881A +#define GL_RGB16F_EXT 0x881B +#define GL_ALPHA16F_EXT 0x881C +#define GL_LUMINANCE16F_EXT 0x881E +#define GL_LUMINANCE_ALPHA16F_EXT 0x881F +#define GL_BGRA8_EXT 0x93A1 +#define GL_R8_EXT 0x8229 +#define GL_RG8_EXT 0x822B +#define GL_R32F_EXT 0x822E +#define GL_RG32F_EXT 0x8230 +#define GL_R16F_EXT 0x822D +#define GL_RG16F_EXT 0x822F +typedef void (APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +GLAPI void APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +#endif +#endif /* GL_EXT_texture_storage */ + +#ifndef GL_EXT_texture_swizzle +#define GL_EXT_texture_swizzle 1 +#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 +#endif /* GL_EXT_texture_swizzle */ + +#ifndef GL_EXT_timer_query +#define GL_EXT_timer_query 1 +#define GL_TIME_ELAPSED_EXT 0x88BF +typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64 *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64 *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64 *params); +GLAPI void APIENTRY glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64 *params); +#endif +#endif /* GL_EXT_timer_query */ + +#ifndef GL_EXT_transform_feedback +#define GL_EXT_transform_feedback 1 +#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F +#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C +#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D +#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 +#define GL_RASTERIZER_DISCARD_EXT 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 +typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode); +typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void); +typedef void (APIENTRYP PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +typedef void (APIENTRYP PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginTransformFeedbackEXT (GLenum primitiveMode); +GLAPI void APIENTRY glEndTransformFeedbackEXT (void); +GLAPI void APIENTRY glBindBufferRangeEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI void APIENTRY glBindBufferOffsetEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +GLAPI void APIENTRY glBindBufferBaseEXT (GLenum target, GLuint index, GLuint buffer); +GLAPI void APIENTRY glTransformFeedbackVaryingsEXT (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); +GLAPI void APIENTRY glGetTransformFeedbackVaryingEXT (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +#endif +#endif /* GL_EXT_transform_feedback */ + +#ifndef GL_EXT_vertex_array +#define GL_EXT_vertex_array 1 +#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 +typedef void (APIENTRYP PFNGLARRAYELEMENTEXTPROC) (GLint i); +typedef void (APIENTRYP PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); +typedef void (APIENTRYP PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer); +typedef void (APIENTRYP PFNGLGETPOINTERVEXTPROC) (GLenum pname, void **params); +typedef void (APIENTRYP PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer); +typedef void (APIENTRYP PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer); +typedef void (APIENTRYP PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); +typedef void (APIENTRYP PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glArrayElementEXT (GLint i); +GLAPI void APIENTRY glColorPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); +GLAPI void APIENTRY glDrawArraysEXT (GLenum mode, GLint first, GLsizei count); +GLAPI void APIENTRY glEdgeFlagPointerEXT (GLsizei stride, GLsizei count, const GLboolean *pointer); +GLAPI void APIENTRY glGetPointervEXT (GLenum pname, void **params); +GLAPI void APIENTRY glIndexPointerEXT (GLenum type, GLsizei stride, GLsizei count, const void *pointer); +GLAPI void APIENTRY glNormalPointerEXT (GLenum type, GLsizei stride, GLsizei count, const void *pointer); +GLAPI void APIENTRY glTexCoordPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); +GLAPI void APIENTRY glVertexPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); +#endif +#endif /* GL_EXT_vertex_array */ + +#ifndef GL_EXT_vertex_array_bgra +#define GL_EXT_vertex_array_bgra 1 +#endif /* GL_EXT_vertex_array_bgra */ + +#ifndef GL_EXT_vertex_attrib_64bit +#define GL_EXT_vertex_attrib_64bit 1 +#define GL_DOUBLE_VEC2_EXT 0x8FFC +#define GL_DOUBLE_VEC3_EXT 0x8FFD +#define GL_DOUBLE_VEC4_EXT 0x8FFE +#define GL_DOUBLE_MAT2_EXT 0x8F46 +#define GL_DOUBLE_MAT3_EXT 0x8F47 +#define GL_DOUBLE_MAT4_EXT 0x8F48 +#define GL_DOUBLE_MAT2x3_EXT 0x8F49 +#define GL_DOUBLE_MAT2x4_EXT 0x8F4A +#define GL_DOUBLE_MAT3x2_EXT 0x8F4B +#define GL_DOUBLE_MAT3x4_EXT 0x8F4C +#define GL_DOUBLE_MAT4x2_EXT 0x8F4D +#define GL_DOUBLE_MAT4x3_EXT 0x8F4E +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribL1dEXT (GLuint index, GLdouble x); +GLAPI void APIENTRY glVertexAttribL2dEXT (GLuint index, GLdouble x, GLdouble y); +GLAPI void APIENTRY glVertexAttribL3dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glVertexAttribL4dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glVertexAttribL1dvEXT (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL2dvEXT (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL3dvEXT (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL4dvEXT (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribLPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glGetVertexAttribLdvEXT (GLuint index, GLenum pname, GLdouble *params); +#endif +#endif /* GL_EXT_vertex_attrib_64bit */ + +#ifndef GL_EXT_vertex_shader +#define GL_EXT_vertex_shader 1 +#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 +typedef void (APIENTRYP PFNGLBEGINVERTEXSHADEREXTPROC) (void); +typedef void (APIENTRYP PFNGLENDVERTEXSHADEREXTPROC) (void); +typedef void (APIENTRYP PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); +typedef GLuint (APIENTRYP PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); +typedef void (APIENTRYP PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); +typedef void (APIENTRYP PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); +typedef void (APIENTRYP PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); +typedef void (APIENTRYP PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); +typedef void (APIENTRYP PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +typedef void (APIENTRYP PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +typedef void (APIENTRYP PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); +typedef void (APIENTRYP PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); +typedef GLuint (APIENTRYP PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); +typedef void (APIENTRYP PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const void *addr); +typedef void (APIENTRYP PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const void *addr); +typedef void (APIENTRYP PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr); +typedef void (APIENTRYP PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr); +typedef void (APIENTRYP PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr); +typedef void (APIENTRYP PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr); +typedef void (APIENTRYP PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr); +typedef void (APIENTRYP PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr); +typedef void (APIENTRYP PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr); +typedef void (APIENTRYP PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr); +typedef void (APIENTRYP PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const void *addr); +typedef void (APIENTRYP PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); +typedef void (APIENTRYP PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); +typedef GLuint (APIENTRYP PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); +typedef GLuint (APIENTRYP PFNGLBINDPARAMETEREXTPROC) (GLenum value); +typedef GLboolean (APIENTRYP PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); +typedef void (APIENTRYP PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (APIENTRYP PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (APIENTRYP PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +typedef void (APIENTRYP PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, void **data); +typedef void (APIENTRYP PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (APIENTRYP PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (APIENTRYP PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +typedef void (APIENTRYP PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (APIENTRYP PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (APIENTRYP PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginVertexShaderEXT (void); +GLAPI void APIENTRY glEndVertexShaderEXT (void); +GLAPI void APIENTRY glBindVertexShaderEXT (GLuint id); +GLAPI GLuint APIENTRY glGenVertexShadersEXT (GLuint range); +GLAPI void APIENTRY glDeleteVertexShaderEXT (GLuint id); +GLAPI void APIENTRY glShaderOp1EXT (GLenum op, GLuint res, GLuint arg1); +GLAPI void APIENTRY glShaderOp2EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2); +GLAPI void APIENTRY glShaderOp3EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); +GLAPI void APIENTRY glSwizzleEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +GLAPI void APIENTRY glWriteMaskEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +GLAPI void APIENTRY glInsertComponentEXT (GLuint res, GLuint src, GLuint num); +GLAPI void APIENTRY glExtractComponentEXT (GLuint res, GLuint src, GLuint num); +GLAPI GLuint APIENTRY glGenSymbolsEXT (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); +GLAPI void APIENTRY glSetInvariantEXT (GLuint id, GLenum type, const void *addr); +GLAPI void APIENTRY glSetLocalConstantEXT (GLuint id, GLenum type, const void *addr); +GLAPI void APIENTRY glVariantbvEXT (GLuint id, const GLbyte *addr); +GLAPI void APIENTRY glVariantsvEXT (GLuint id, const GLshort *addr); +GLAPI void APIENTRY glVariantivEXT (GLuint id, const GLint *addr); +GLAPI void APIENTRY glVariantfvEXT (GLuint id, const GLfloat *addr); +GLAPI void APIENTRY glVariantdvEXT (GLuint id, const GLdouble *addr); +GLAPI void APIENTRY glVariantubvEXT (GLuint id, const GLubyte *addr); +GLAPI void APIENTRY glVariantusvEXT (GLuint id, const GLushort *addr); +GLAPI void APIENTRY glVariantuivEXT (GLuint id, const GLuint *addr); +GLAPI void APIENTRY glVariantPointerEXT (GLuint id, GLenum type, GLuint stride, const void *addr); +GLAPI void APIENTRY glEnableVariantClientStateEXT (GLuint id); +GLAPI void APIENTRY glDisableVariantClientStateEXT (GLuint id); +GLAPI GLuint APIENTRY glBindLightParameterEXT (GLenum light, GLenum value); +GLAPI GLuint APIENTRY glBindMaterialParameterEXT (GLenum face, GLenum value); +GLAPI GLuint APIENTRY glBindTexGenParameterEXT (GLenum unit, GLenum coord, GLenum value); +GLAPI GLuint APIENTRY glBindTextureUnitParameterEXT (GLenum unit, GLenum value); +GLAPI GLuint APIENTRY glBindParameterEXT (GLenum value); +GLAPI GLboolean APIENTRY glIsVariantEnabledEXT (GLuint id, GLenum cap); +GLAPI void APIENTRY glGetVariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); +GLAPI void APIENTRY glGetVariantIntegervEXT (GLuint id, GLenum value, GLint *data); +GLAPI void APIENTRY glGetVariantFloatvEXT (GLuint id, GLenum value, GLfloat *data); +GLAPI void APIENTRY glGetVariantPointervEXT (GLuint id, GLenum value, void **data); +GLAPI void APIENTRY glGetInvariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); +GLAPI void APIENTRY glGetInvariantIntegervEXT (GLuint id, GLenum value, GLint *data); +GLAPI void APIENTRY glGetInvariantFloatvEXT (GLuint id, GLenum value, GLfloat *data); +GLAPI void APIENTRY glGetLocalConstantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); +GLAPI void APIENTRY glGetLocalConstantIntegervEXT (GLuint id, GLenum value, GLint *data); +GLAPI void APIENTRY glGetLocalConstantFloatvEXT (GLuint id, GLenum value, GLfloat *data); +#endif +#endif /* GL_EXT_vertex_shader */ + +#ifndef GL_EXT_vertex_weighting +#define GL_EXT_vertex_weighting 1 +#define GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3 +#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 +#define GL_MODELVIEW0_MATRIX_EXT 0x0BA6 +#define GL_MODELVIEW1_MATRIX_EXT 0x8506 +#define GL_VERTEX_WEIGHTING_EXT 0x8509 +#define GL_MODELVIEW0_EXT 0x1700 +#define GL_MODELVIEW1_EXT 0x850A +#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B +#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C +#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D +#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E +#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F +#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 +typedef void (APIENTRYP PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexWeightfEXT (GLfloat weight); +GLAPI void APIENTRY glVertexWeightfvEXT (const GLfloat *weight); +GLAPI void APIENTRY glVertexWeightPointerEXT (GLint size, GLenum type, GLsizei stride, const void *pointer); +#endif +#endif /* GL_EXT_vertex_weighting */ + +#ifndef GL_EXT_win32_keyed_mutex +#define GL_EXT_win32_keyed_mutex 1 +typedef GLboolean (APIENTRYP PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key, GLuint timeout); +typedef GLboolean (APIENTRYP PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glAcquireKeyedMutexWin32EXT (GLuint memory, GLuint64 key, GLuint timeout); +GLAPI GLboolean APIENTRY glReleaseKeyedMutexWin32EXT (GLuint memory, GLuint64 key); +#endif +#endif /* GL_EXT_win32_keyed_mutex */ + +#ifndef GL_EXT_window_rectangles +#define GL_EXT_window_rectangles 1 +#define GL_INCLUSIVE_EXT 0x8F10 +#define GL_EXCLUSIVE_EXT 0x8F11 +#define GL_WINDOW_RECTANGLE_EXT 0x8F12 +#define GL_WINDOW_RECTANGLE_MODE_EXT 0x8F13 +#define GL_MAX_WINDOW_RECTANGLES_EXT 0x8F14 +#define GL_NUM_WINDOW_RECTANGLES_EXT 0x8F15 +typedef void (APIENTRYP PFNGLWINDOWRECTANGLESEXTPROC) (GLenum mode, GLsizei count, const GLint *box); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glWindowRectanglesEXT (GLenum mode, GLsizei count, const GLint *box); +#endif +#endif /* GL_EXT_window_rectangles */ + +#ifndef GL_EXT_x11_sync_object +#define GL_EXT_x11_sync_object 1 +#define GL_SYNC_X11_FENCE_EXT 0x90E1 +typedef GLsync (APIENTRYP PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLsync APIENTRY glImportSyncEXT (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); +#endif +#endif /* GL_EXT_x11_sync_object */ + +#ifndef GL_GREMEDY_frame_terminator +#define GL_GREMEDY_frame_terminator 1 +typedef void (APIENTRYP PFNGLFRAMETERMINATORGREMEDYPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFrameTerminatorGREMEDY (void); +#endif +#endif /* GL_GREMEDY_frame_terminator */ + +#ifndef GL_GREMEDY_string_marker +#define GL_GREMEDY_string_marker 1 +typedef void (APIENTRYP PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const void *string); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glStringMarkerGREMEDY (GLsizei len, const void *string); +#endif +#endif /* GL_GREMEDY_string_marker */ + +#ifndef GL_HP_convolution_border_modes +#define GL_HP_convolution_border_modes 1 +#define GL_IGNORE_BORDER_HP 0x8150 +#define GL_CONSTANT_BORDER_HP 0x8151 +#define GL_REPLICATE_BORDER_HP 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 +#endif /* GL_HP_convolution_border_modes */ + +#ifndef GL_HP_image_transform +#define GL_HP_image_transform 1 +#define GL_IMAGE_SCALE_X_HP 0x8155 +#define GL_IMAGE_SCALE_Y_HP 0x8156 +#define GL_IMAGE_TRANSLATE_X_HP 0x8157 +#define GL_IMAGE_TRANSLATE_Y_HP 0x8158 +#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159 +#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A +#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B +#define GL_IMAGE_MAG_FILTER_HP 0x815C +#define GL_IMAGE_MIN_FILTER_HP 0x815D +#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E +#define GL_CUBIC_HP 0x815F +#define GL_AVERAGE_HP 0x8160 +#define GL_IMAGE_TRANSFORM_2D_HP 0x8161 +#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162 +#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163 +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glImageTransformParameteriHP (GLenum target, GLenum pname, GLint param); +GLAPI void APIENTRY glImageTransformParameterfHP (GLenum target, GLenum pname, GLfloat param); +GLAPI void APIENTRY glImageTransformParameterivHP (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glImageTransformParameterfvHP (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glGetImageTransformParameterivHP (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetImageTransformParameterfvHP (GLenum target, GLenum pname, GLfloat *params); +#endif +#endif /* GL_HP_image_transform */ + +#ifndef GL_HP_occlusion_test +#define GL_HP_occlusion_test 1 +#define GL_OCCLUSION_TEST_HP 0x8165 +#define GL_OCCLUSION_TEST_RESULT_HP 0x8166 +#endif /* GL_HP_occlusion_test */ + +#ifndef GL_HP_texture_lighting +#define GL_HP_texture_lighting 1 +#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167 +#define GL_TEXTURE_POST_SPECULAR_HP 0x8168 +#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169 +#endif /* GL_HP_texture_lighting */ + +#ifndef GL_IBM_cull_vertex +#define GL_IBM_cull_vertex 1 +#define GL_CULL_VERTEX_IBM 103050 +#endif /* GL_IBM_cull_vertex */ + +#ifndef GL_IBM_multimode_draw_arrays +#define GL_IBM_multimode_draw_arrays 1 +typedef void (APIENTRYP PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); +typedef void (APIENTRYP PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, GLint modestride); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiModeDrawArraysIBM (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); +GLAPI void APIENTRY glMultiModeDrawElementsIBM (const GLenum *mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, GLint modestride); +#endif +#endif /* GL_IBM_multimode_draw_arrays */ + +#ifndef GL_IBM_rasterpos_clip +#define GL_IBM_rasterpos_clip 1 +#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 +#endif /* GL_IBM_rasterpos_clip */ + +#ifndef GL_IBM_static_data +#define GL_IBM_static_data 1 +#define GL_ALL_STATIC_DATA_IBM 103060 +#define GL_STATIC_VERTEX_ARRAY_IBM 103061 +typedef void (APIENTRYP PFNGLFLUSHSTATICDATAIBMPROC) (GLenum target); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFlushStaticDataIBM (GLenum target); +#endif +#endif /* GL_IBM_static_data */ + +#ifndef GL_IBM_texture_mirrored_repeat +#define GL_IBM_texture_mirrored_repeat 1 +#define GL_MIRRORED_REPEAT_IBM 0x8370 +#endif /* GL_IBM_texture_mirrored_repeat */ + +#ifndef GL_IBM_vertex_array_lists +#define GL_IBM_vertex_array_lists 1 +#define GL_VERTEX_ARRAY_LIST_IBM 103070 +#define GL_NORMAL_ARRAY_LIST_IBM 103071 +#define GL_COLOR_ARRAY_LIST_IBM 103072 +#define GL_INDEX_ARRAY_LIST_IBM 103073 +#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 +#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 +#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 +#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 +#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 +#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 +#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 +#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 +#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 +#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 +#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 +#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 +typedef void (APIENTRYP PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean **pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void **pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void **pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void **pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +typedef void (APIENTRYP PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +GLAPI void APIENTRY glSecondaryColorPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +GLAPI void APIENTRY glEdgeFlagPointerListIBM (GLint stride, const GLboolean **pointer, GLint ptrstride); +GLAPI void APIENTRY glFogCoordPointerListIBM (GLenum type, GLint stride, const void **pointer, GLint ptrstride); +GLAPI void APIENTRY glIndexPointerListIBM (GLenum type, GLint stride, const void **pointer, GLint ptrstride); +GLAPI void APIENTRY glNormalPointerListIBM (GLenum type, GLint stride, const void **pointer, GLint ptrstride); +GLAPI void APIENTRY glTexCoordPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +GLAPI void APIENTRY glVertexPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); +#endif +#endif /* GL_IBM_vertex_array_lists */ + +#ifndef GL_INGR_blend_func_separate +#define GL_INGR_blend_func_separate 1 +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#endif +#endif /* GL_INGR_blend_func_separate */ + +#ifndef GL_INGR_color_clamp +#define GL_INGR_color_clamp 1 +#define GL_RED_MIN_CLAMP_INGR 0x8560 +#define GL_GREEN_MIN_CLAMP_INGR 0x8561 +#define GL_BLUE_MIN_CLAMP_INGR 0x8562 +#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 +#define GL_RED_MAX_CLAMP_INGR 0x8564 +#define GL_GREEN_MAX_CLAMP_INGR 0x8565 +#define GL_BLUE_MAX_CLAMP_INGR 0x8566 +#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 +#endif /* GL_INGR_color_clamp */ + +#ifndef GL_INGR_interlace_read +#define GL_INGR_interlace_read 1 +#define GL_INTERLACE_READ_INGR 0x8568 +#endif /* GL_INGR_interlace_read */ + +#ifndef GL_INTEL_blackhole_render +#define GL_INTEL_blackhole_render 1 +#define GL_BLACKHOLE_RENDER_INTEL 0x83FC +#endif /* GL_INTEL_blackhole_render */ + +#ifndef GL_INTEL_conservative_rasterization +#define GL_INTEL_conservative_rasterization 1 +#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE +#endif /* GL_INTEL_conservative_rasterization */ + +#ifndef GL_INTEL_fragment_shader_ordering +#define GL_INTEL_fragment_shader_ordering 1 +#endif /* GL_INTEL_fragment_shader_ordering */ + +#ifndef GL_INTEL_framebuffer_CMAA +#define GL_INTEL_framebuffer_CMAA 1 +typedef void (APIENTRYP PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glApplyFramebufferAttachmentCMAAINTEL (void); +#endif +#endif /* GL_INTEL_framebuffer_CMAA */ + +#ifndef GL_INTEL_map_texture +#define GL_INTEL_map_texture 1 +#define GL_TEXTURE_MEMORY_LAYOUT_INTEL 0x83FF +#define GL_LAYOUT_DEFAULT_INTEL 0 +#define GL_LAYOUT_LINEAR_INTEL 1 +#define GL_LAYOUT_LINEAR_CPU_CACHED_INTEL 2 +typedef void (APIENTRYP PFNGLSYNCTEXTUREINTELPROC) (GLuint texture); +typedef void (APIENTRYP PFNGLUNMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level); +typedef void *(APIENTRYP PFNGLMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level, GLbitfield access, GLint *stride, GLenum *layout); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSyncTextureINTEL (GLuint texture); +GLAPI void APIENTRY glUnmapTexture2DINTEL (GLuint texture, GLint level); +GLAPI void *APIENTRY glMapTexture2DINTEL (GLuint texture, GLint level, GLbitfield access, GLint *stride, GLenum *layout); +#endif +#endif /* GL_INTEL_map_texture */ + +#ifndef GL_INTEL_parallel_arrays +#define GL_INTEL_parallel_arrays 1 +#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 +#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 +#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 +#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 +#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 +typedef void (APIENTRYP PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const void **pointer); +typedef void (APIENTRYP PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const void **pointer); +typedef void (APIENTRYP PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const void **pointer); +typedef void (APIENTRYP PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const void **pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexPointervINTEL (GLint size, GLenum type, const void **pointer); +GLAPI void APIENTRY glNormalPointervINTEL (GLenum type, const void **pointer); +GLAPI void APIENTRY glColorPointervINTEL (GLint size, GLenum type, const void **pointer); +GLAPI void APIENTRY glTexCoordPointervINTEL (GLint size, GLenum type, const void **pointer); +#endif +#endif /* GL_INTEL_parallel_arrays */ + +#ifndef GL_INTEL_performance_query +#define GL_INTEL_performance_query 1 +#define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x00000000 +#define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x00000001 +#define GL_PERFQUERY_WAIT_INTEL 0x83FB +#define GL_PERFQUERY_FLUSH_INTEL 0x83FA +#define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9 +#define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0 +#define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1 +#define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2 +#define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3 +#define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4 +#define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5 +#define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8 +#define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9 +#define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA +#define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB +#define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC +#define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD +#define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE +#define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF +#define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500 +typedef void (APIENTRYP PFNGLBEGINPERFQUERYINTELPROC) (GLuint queryHandle); +typedef void (APIENTRYP PFNGLCREATEPERFQUERYINTELPROC) (GLuint queryId, GLuint *queryHandle); +typedef void (APIENTRYP PFNGLDELETEPERFQUERYINTELPROC) (GLuint queryHandle); +typedef void (APIENTRYP PFNGLENDPERFQUERYINTELPROC) (GLuint queryHandle); +typedef void (APIENTRYP PFNGLGETFIRSTPERFQUERYIDINTELPROC) (GLuint *queryId); +typedef void (APIENTRYP PFNGLGETNEXTPERFQUERYIDINTELPROC) (GLuint queryId, GLuint *nextQueryId); +typedef void (APIENTRYP PFNGLGETPERFCOUNTERINFOINTELPROC) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); +typedef void (APIENTRYP PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten); +typedef void (APIENTRYP PFNGLGETPERFQUERYIDBYNAMEINTELPROC) (GLchar *queryName, GLuint *queryId); +typedef void (APIENTRYP PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginPerfQueryINTEL (GLuint queryHandle); +GLAPI void APIENTRY glCreatePerfQueryINTEL (GLuint queryId, GLuint *queryHandle); +GLAPI void APIENTRY glDeletePerfQueryINTEL (GLuint queryHandle); +GLAPI void APIENTRY glEndPerfQueryINTEL (GLuint queryHandle); +GLAPI void APIENTRY glGetFirstPerfQueryIdINTEL (GLuint *queryId); +GLAPI void APIENTRY glGetNextPerfQueryIdINTEL (GLuint queryId, GLuint *nextQueryId); +GLAPI void APIENTRY glGetPerfCounterInfoINTEL (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); +GLAPI void APIENTRY glGetPerfQueryDataINTEL (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten); +GLAPI void APIENTRY glGetPerfQueryIdByNameINTEL (GLchar *queryName, GLuint *queryId); +GLAPI void APIENTRY glGetPerfQueryInfoINTEL (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); +#endif +#endif /* GL_INTEL_performance_query */ + +#ifndef GL_MESAX_texture_stack +#define GL_MESAX_texture_stack 1 +#define GL_TEXTURE_1D_STACK_MESAX 0x8759 +#define GL_TEXTURE_2D_STACK_MESAX 0x875A +#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B +#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C +#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D +#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E +#endif /* GL_MESAX_texture_stack */ + +#ifndef GL_MESA_framebuffer_flip_x +#define GL_MESA_framebuffer_flip_x 1 +#define GL_FRAMEBUFFER_FLIP_X_MESA 0x8BBC +#endif /* GL_MESA_framebuffer_flip_x */ + +#ifndef GL_MESA_framebuffer_flip_y +#define GL_MESA_framebuffer_flip_y 1 +#define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB +typedef void (APIENTRYP PFNGLFRAMEBUFFERPARAMETERIMESAPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC) (GLenum target, GLenum pname, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFramebufferParameteriMESA (GLenum target, GLenum pname, GLint param); +GLAPI void APIENTRY glGetFramebufferParameterivMESA (GLenum target, GLenum pname, GLint *params); +#endif +#endif /* GL_MESA_framebuffer_flip_y */ + +#ifndef GL_MESA_framebuffer_swap_xy +#define GL_MESA_framebuffer_swap_xy 1 +#define GL_FRAMEBUFFER_SWAP_XY_MESA 0x8BBD +#endif /* GL_MESA_framebuffer_swap_xy */ + +#ifndef GL_MESA_pack_invert +#define GL_MESA_pack_invert 1 +#define GL_PACK_INVERT_MESA 0x8758 +#endif /* GL_MESA_pack_invert */ + +#ifndef GL_MESA_program_binary_formats +#define GL_MESA_program_binary_formats 1 +#define GL_PROGRAM_BINARY_FORMAT_MESA 0x875F +#endif /* GL_MESA_program_binary_formats */ + +#ifndef GL_MESA_resize_buffers +#define GL_MESA_resize_buffers 1 +typedef void (APIENTRYP PFNGLRESIZEBUFFERSMESAPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glResizeBuffersMESA (void); +#endif +#endif /* GL_MESA_resize_buffers */ + +#ifndef GL_MESA_shader_integer_functions +#define GL_MESA_shader_integer_functions 1 +#endif /* GL_MESA_shader_integer_functions */ + +#ifndef GL_MESA_tile_raster_order +#define GL_MESA_tile_raster_order 1 +#define GL_TILE_RASTER_ORDER_FIXED_MESA 0x8BB8 +#define GL_TILE_RASTER_ORDER_INCREASING_X_MESA 0x8BB9 +#define GL_TILE_RASTER_ORDER_INCREASING_Y_MESA 0x8BBA +#endif /* GL_MESA_tile_raster_order */ + +#ifndef GL_MESA_window_pos +#define GL_MESA_window_pos 1 +typedef void (APIENTRYP PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); +typedef void (APIENTRYP PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v); +typedef void (APIENTRYP PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glWindowPos2dMESA (GLdouble x, GLdouble y); +GLAPI void APIENTRY glWindowPos2dvMESA (const GLdouble *v); +GLAPI void APIENTRY glWindowPos2fMESA (GLfloat x, GLfloat y); +GLAPI void APIENTRY glWindowPos2fvMESA (const GLfloat *v); +GLAPI void APIENTRY glWindowPos2iMESA (GLint x, GLint y); +GLAPI void APIENTRY glWindowPos2ivMESA (const GLint *v); +GLAPI void APIENTRY glWindowPos2sMESA (GLshort x, GLshort y); +GLAPI void APIENTRY glWindowPos2svMESA (const GLshort *v); +GLAPI void APIENTRY glWindowPos3dMESA (GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glWindowPos3dvMESA (const GLdouble *v); +GLAPI void APIENTRY glWindowPos3fMESA (GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glWindowPos3fvMESA (const GLfloat *v); +GLAPI void APIENTRY glWindowPos3iMESA (GLint x, GLint y, GLint z); +GLAPI void APIENTRY glWindowPos3ivMESA (const GLint *v); +GLAPI void APIENTRY glWindowPos3sMESA (GLshort x, GLshort y, GLshort z); +GLAPI void APIENTRY glWindowPos3svMESA (const GLshort *v); +GLAPI void APIENTRY glWindowPos4dMESA (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glWindowPos4dvMESA (const GLdouble *v); +GLAPI void APIENTRY glWindowPos4fMESA (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glWindowPos4fvMESA (const GLfloat *v); +GLAPI void APIENTRY glWindowPos4iMESA (GLint x, GLint y, GLint z, GLint w); +GLAPI void APIENTRY glWindowPos4ivMESA (const GLint *v); +GLAPI void APIENTRY glWindowPos4sMESA (GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void APIENTRY glWindowPos4svMESA (const GLshort *v); +#endif +#endif /* GL_MESA_window_pos */ + +#ifndef GL_MESA_ycbcr_texture +#define GL_MESA_ycbcr_texture 1 +#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB +#define GL_YCBCR_MESA 0x8757 +#endif /* GL_MESA_ycbcr_texture */ + +#ifndef GL_NVX_blend_equation_advanced_multi_draw_buffers +#define GL_NVX_blend_equation_advanced_multi_draw_buffers 1 +#endif /* GL_NVX_blend_equation_advanced_multi_draw_buffers */ + +#ifndef GL_NVX_conditional_render +#define GL_NVX_conditional_render 1 +typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERNVXPROC) (GLuint id); +typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERNVXPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginConditionalRenderNVX (GLuint id); +GLAPI void APIENTRY glEndConditionalRenderNVX (void); +#endif +#endif /* GL_NVX_conditional_render */ + +#ifndef GL_NVX_gpu_memory_info +#define GL_NVX_gpu_memory_info 1 +#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047 +#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048 +#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049 +#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A +#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B +#endif /* GL_NVX_gpu_memory_info */ + +#ifndef GL_NVX_gpu_multicast2 +#define GL_NVX_gpu_multicast2 1 +#define GL_UPLOAD_GPU_MASK_NVX 0x954A +typedef void (APIENTRYP PFNGLUPLOADGPUMASKNVXPROC) (GLbitfield mask); +typedef void (APIENTRYP PFNGLMULTICASTVIEWPORTARRAYVNVXPROC) (GLuint gpu, GLuint first, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC) (GLuint gpu, GLuint index, GLfloat xcoeff, GLfloat ycoeff); +typedef void (APIENTRYP PFNGLMULTICASTSCISSORARRAYVNVXPROC) (GLuint gpu, GLuint first, GLsizei count, const GLint *v); +typedef GLuint (APIENTRYP PFNGLASYNCCOPYBUFFERSUBDATANVXPROC) (GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *fenceValueArray, GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); +typedef GLuint (APIENTRYP PFNGLASYNCCOPYIMAGESUBDATANVXPROC) (GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *waitValueArray, GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glUploadGpuMaskNVX (GLbitfield mask); +GLAPI void APIENTRY glMulticastViewportArrayvNVX (GLuint gpu, GLuint first, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glMulticastViewportPositionWScaleNVX (GLuint gpu, GLuint index, GLfloat xcoeff, GLfloat ycoeff); +GLAPI void APIENTRY glMulticastScissorArrayvNVX (GLuint gpu, GLuint first, GLsizei count, const GLint *v); +GLAPI GLuint APIENTRY glAsyncCopyBufferSubDataNVX (GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *fenceValueArray, GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); +GLAPI GLuint APIENTRY glAsyncCopyImageSubDataNVX (GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *waitValueArray, GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); +#endif +#endif /* GL_NVX_gpu_multicast2 */ + +#ifndef GL_NVX_linked_gpu_multicast +#define GL_NVX_linked_gpu_multicast 1 +#define GL_LGPU_SEPARATE_STORAGE_BIT_NVX 0x0800 +#define GL_MAX_LGPU_GPUS_NVX 0x92BA +typedef void (APIENTRYP PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +typedef void (APIENTRYP PFNGLLGPUCOPYIMAGESUBDATANVXPROC) (GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); +typedef void (APIENTRYP PFNGLLGPUINTERLOCKNVXPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glLGPUNamedBufferSubDataNVX (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +GLAPI void APIENTRY glLGPUCopyImageSubDataNVX (GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); +GLAPI void APIENTRY glLGPUInterlockNVX (void); +#endif +#endif /* GL_NVX_linked_gpu_multicast */ + +#ifndef GL_NVX_progress_fence +#define GL_NVX_progress_fence 1 +typedef GLuint (APIENTRYP PFNGLCREATEPROGRESSFENCENVXPROC) (void); +typedef void (APIENTRYP PFNGLSIGNALSEMAPHOREUI64NVXPROC) (GLuint signalGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); +typedef void (APIENTRYP PFNGLWAITSEMAPHOREUI64NVXPROC) (GLuint waitGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); +typedef void (APIENTRYP PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC) (GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLuint APIENTRY glCreateProgressFenceNVX (void); +GLAPI void APIENTRY glSignalSemaphoreui64NVX (GLuint signalGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); +GLAPI void APIENTRY glWaitSemaphoreui64NVX (GLuint waitGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); +GLAPI void APIENTRY glClientWaitSemaphoreui64NVX (GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); +#endif +#endif /* GL_NVX_progress_fence */ + +#ifndef GL_NV_alpha_to_coverage_dither_control +#define GL_NV_alpha_to_coverage_dither_control 1 +#define GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV 0x934D +#define GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV 0x934E +#define GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV 0x934F +#define GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV 0x92BF +typedef void (APIENTRYP PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC) (GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glAlphaToCoverageDitherControlNV (GLenum mode); +#endif +#endif /* GL_NV_alpha_to_coverage_dither_control */ + +#ifndef GL_NV_bindless_multi_draw_indirect +#define GL_NV_bindless_multi_draw_indirect 1 +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC) (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiDrawArraysIndirectBindlessNV (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); +GLAPI void APIENTRY glMultiDrawElementsIndirectBindlessNV (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); +#endif +#endif /* GL_NV_bindless_multi_draw_indirect */ + +#ifndef GL_NV_bindless_multi_draw_indirect_count +#define GL_NV_bindless_multi_draw_indirect_count 1 +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC) (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMultiDrawArraysIndirectBindlessCountNV (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount); +GLAPI void APIENTRY glMultiDrawElementsIndirectBindlessCountNV (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount); +#endif +#endif /* GL_NV_bindless_multi_draw_indirect_count */ + +#ifndef GL_NV_bindless_texture +#define GL_NV_bindless_texture 1 +typedef GLuint64 (APIENTRYP PFNGLGETTEXTUREHANDLENVPROC) (GLuint texture); +typedef GLuint64 (APIENTRYP PFNGLGETTEXTURESAMPLERHANDLENVPROC) (GLuint texture, GLuint sampler); +typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); +typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC) (GLuint64 handle); +typedef GLuint64 (APIENTRYP PFNGLGETIMAGEHANDLENVPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); +typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle, GLenum access); +typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC) (GLuint64 handle); +typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64NVPROC) (GLint location, GLuint64 value); +typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64VNVPROC) (GLint location, GLsizei count, const GLuint64 *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC) (GLuint program, GLint location, GLuint64 value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); +typedef GLboolean (APIENTRYP PFNGLISTEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); +typedef GLboolean (APIENTRYP PFNGLISIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLuint64 APIENTRY glGetTextureHandleNV (GLuint texture); +GLAPI GLuint64 APIENTRY glGetTextureSamplerHandleNV (GLuint texture, GLuint sampler); +GLAPI void APIENTRY glMakeTextureHandleResidentNV (GLuint64 handle); +GLAPI void APIENTRY glMakeTextureHandleNonResidentNV (GLuint64 handle); +GLAPI GLuint64 APIENTRY glGetImageHandleNV (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); +GLAPI void APIENTRY glMakeImageHandleResidentNV (GLuint64 handle, GLenum access); +GLAPI void APIENTRY glMakeImageHandleNonResidentNV (GLuint64 handle); +GLAPI void APIENTRY glUniformHandleui64NV (GLint location, GLuint64 value); +GLAPI void APIENTRY glUniformHandleui64vNV (GLint location, GLsizei count, const GLuint64 *value); +GLAPI void APIENTRY glProgramUniformHandleui64NV (GLuint program, GLint location, GLuint64 value); +GLAPI void APIENTRY glProgramUniformHandleui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64 *values); +GLAPI GLboolean APIENTRY glIsTextureHandleResidentNV (GLuint64 handle); +GLAPI GLboolean APIENTRY glIsImageHandleResidentNV (GLuint64 handle); +#endif +#endif /* GL_NV_bindless_texture */ + +#ifndef GL_NV_blend_equation_advanced +#define GL_NV_blend_equation_advanced 1 +#define GL_BLEND_OVERLAP_NV 0x9281 +#define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280 +#define GL_BLUE_NV 0x1905 +#define GL_COLORBURN_NV 0x929A +#define GL_COLORDODGE_NV 0x9299 +#define GL_CONJOINT_NV 0x9284 +#define GL_CONTRAST_NV 0x92A1 +#define GL_DARKEN_NV 0x9297 +#define GL_DIFFERENCE_NV 0x929E +#define GL_DISJOINT_NV 0x9283 +#define GL_DST_ATOP_NV 0x928F +#define GL_DST_IN_NV 0x928B +#define GL_DST_NV 0x9287 +#define GL_DST_OUT_NV 0x928D +#define GL_DST_OVER_NV 0x9289 +#define GL_EXCLUSION_NV 0x92A0 +#define GL_GREEN_NV 0x1904 +#define GL_HARDLIGHT_NV 0x929B +#define GL_HARDMIX_NV 0x92A9 +#define GL_HSL_COLOR_NV 0x92AF +#define GL_HSL_HUE_NV 0x92AD +#define GL_HSL_LUMINOSITY_NV 0x92B0 +#define GL_HSL_SATURATION_NV 0x92AE +#define GL_INVERT_OVG_NV 0x92B4 +#define GL_INVERT_RGB_NV 0x92A3 +#define GL_LIGHTEN_NV 0x9298 +#define GL_LINEARBURN_NV 0x92A5 +#define GL_LINEARDODGE_NV 0x92A4 +#define GL_LINEARLIGHT_NV 0x92A7 +#define GL_MINUS_CLAMPED_NV 0x92B3 +#define GL_MINUS_NV 0x929F +#define GL_MULTIPLY_NV 0x9294 +#define GL_OVERLAY_NV 0x9296 +#define GL_PINLIGHT_NV 0x92A8 +#define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2 +#define GL_PLUS_CLAMPED_NV 0x92B1 +#define GL_PLUS_DARKER_NV 0x9292 +#define GL_PLUS_NV 0x9291 +#define GL_RED_NV 0x1903 +#define GL_SCREEN_NV 0x9295 +#define GL_SOFTLIGHT_NV 0x929C +#define GL_SRC_ATOP_NV 0x928E +#define GL_SRC_IN_NV 0x928A +#define GL_SRC_NV 0x9286 +#define GL_SRC_OUT_NV 0x928C +#define GL_SRC_OVER_NV 0x9288 +#define GL_UNCORRELATED_NV 0x9282 +#define GL_VIVIDLIGHT_NV 0x92A6 +#define GL_XOR_NV 0x1506 +typedef void (APIENTRYP PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint value); +typedef void (APIENTRYP PFNGLBLENDBARRIERNVPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendParameteriNV (GLenum pname, GLint value); +GLAPI void APIENTRY glBlendBarrierNV (void); +#endif +#endif /* GL_NV_blend_equation_advanced */ + +#ifndef GL_NV_blend_equation_advanced_coherent +#define GL_NV_blend_equation_advanced_coherent 1 +#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285 +#endif /* GL_NV_blend_equation_advanced_coherent */ + +#ifndef GL_NV_blend_minmax_factor +#define GL_NV_blend_minmax_factor 1 +#endif /* GL_NV_blend_minmax_factor */ + +#ifndef GL_NV_blend_square +#define GL_NV_blend_square 1 +#endif /* GL_NV_blend_square */ + +#ifndef GL_NV_clip_space_w_scaling +#define GL_NV_clip_space_w_scaling 1 +#define GL_VIEWPORT_POSITION_W_SCALE_NV 0x937C +#define GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV 0x937D +#define GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV 0x937E +typedef void (APIENTRYP PFNGLVIEWPORTPOSITIONWSCALENVPROC) (GLuint index, GLfloat xcoeff, GLfloat ycoeff); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glViewportPositionWScaleNV (GLuint index, GLfloat xcoeff, GLfloat ycoeff); +#endif +#endif /* GL_NV_clip_space_w_scaling */ + +#ifndef GL_NV_command_list +#define GL_NV_command_list 1 +#define GL_TERMINATE_SEQUENCE_COMMAND_NV 0x0000 +#define GL_NOP_COMMAND_NV 0x0001 +#define GL_DRAW_ELEMENTS_COMMAND_NV 0x0002 +#define GL_DRAW_ARRAYS_COMMAND_NV 0x0003 +#define GL_DRAW_ELEMENTS_STRIP_COMMAND_NV 0x0004 +#define GL_DRAW_ARRAYS_STRIP_COMMAND_NV 0x0005 +#define GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV 0x0006 +#define GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV 0x0007 +#define GL_ELEMENT_ADDRESS_COMMAND_NV 0x0008 +#define GL_ATTRIBUTE_ADDRESS_COMMAND_NV 0x0009 +#define GL_UNIFORM_ADDRESS_COMMAND_NV 0x000A +#define GL_BLEND_COLOR_COMMAND_NV 0x000B +#define GL_STENCIL_REF_COMMAND_NV 0x000C +#define GL_LINE_WIDTH_COMMAND_NV 0x000D +#define GL_POLYGON_OFFSET_COMMAND_NV 0x000E +#define GL_ALPHA_REF_COMMAND_NV 0x000F +#define GL_VIEWPORT_COMMAND_NV 0x0010 +#define GL_SCISSOR_COMMAND_NV 0x0011 +#define GL_FRONT_FACE_COMMAND_NV 0x0012 +typedef void (APIENTRYP PFNGLCREATESTATESNVPROC) (GLsizei n, GLuint *states); +typedef void (APIENTRYP PFNGLDELETESTATESNVPROC) (GLsizei n, const GLuint *states); +typedef GLboolean (APIENTRYP PFNGLISSTATENVPROC) (GLuint state); +typedef void (APIENTRYP PFNGLSTATECAPTURENVPROC) (GLuint state, GLenum mode); +typedef GLuint (APIENTRYP PFNGLGETCOMMANDHEADERNVPROC) (GLenum tokenID, GLuint size); +typedef GLushort (APIENTRYP PFNGLGETSTAGEINDEXNVPROC) (GLenum shadertype); +typedef void (APIENTRYP PFNGLDRAWCOMMANDSNVPROC) (GLenum primitiveMode, GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, GLuint count); +typedef void (APIENTRYP PFNGLDRAWCOMMANDSADDRESSNVPROC) (GLenum primitiveMode, const GLuint64 *indirects, const GLsizei *sizes, GLuint count); +typedef void (APIENTRYP PFNGLDRAWCOMMANDSSTATESNVPROC) (GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); +typedef void (APIENTRYP PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC) (const GLuint64 *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); +typedef void (APIENTRYP PFNGLCREATECOMMANDLISTSNVPROC) (GLsizei n, GLuint *lists); +typedef void (APIENTRYP PFNGLDELETECOMMANDLISTSNVPROC) (GLsizei n, const GLuint *lists); +typedef GLboolean (APIENTRYP PFNGLISCOMMANDLISTNVPROC) (GLuint list); +typedef void (APIENTRYP PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC) (GLuint list, GLuint segment, const void **indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); +typedef void (APIENTRYP PFNGLCOMMANDLISTSEGMENTSNVPROC) (GLuint list, GLuint segments); +typedef void (APIENTRYP PFNGLCOMPILECOMMANDLISTNVPROC) (GLuint list); +typedef void (APIENTRYP PFNGLCALLCOMMANDLISTNVPROC) (GLuint list); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCreateStatesNV (GLsizei n, GLuint *states); +GLAPI void APIENTRY glDeleteStatesNV (GLsizei n, const GLuint *states); +GLAPI GLboolean APIENTRY glIsStateNV (GLuint state); +GLAPI void APIENTRY glStateCaptureNV (GLuint state, GLenum mode); +GLAPI GLuint APIENTRY glGetCommandHeaderNV (GLenum tokenID, GLuint size); +GLAPI GLushort APIENTRY glGetStageIndexNV (GLenum shadertype); +GLAPI void APIENTRY glDrawCommandsNV (GLenum primitiveMode, GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, GLuint count); +GLAPI void APIENTRY glDrawCommandsAddressNV (GLenum primitiveMode, const GLuint64 *indirects, const GLsizei *sizes, GLuint count); +GLAPI void APIENTRY glDrawCommandsStatesNV (GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); +GLAPI void APIENTRY glDrawCommandsStatesAddressNV (const GLuint64 *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); +GLAPI void APIENTRY glCreateCommandListsNV (GLsizei n, GLuint *lists); +GLAPI void APIENTRY glDeleteCommandListsNV (GLsizei n, const GLuint *lists); +GLAPI GLboolean APIENTRY glIsCommandListNV (GLuint list); +GLAPI void APIENTRY glListDrawCommandsStatesClientNV (GLuint list, GLuint segment, const void **indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); +GLAPI void APIENTRY glCommandListSegmentsNV (GLuint list, GLuint segments); +GLAPI void APIENTRY glCompileCommandListNV (GLuint list); +GLAPI void APIENTRY glCallCommandListNV (GLuint list); +#endif +#endif /* GL_NV_command_list */ + +#ifndef GL_NV_compute_program5 +#define GL_NV_compute_program5 1 +#define GL_COMPUTE_PROGRAM_NV 0x90FB +#define GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV 0x90FC +#endif /* GL_NV_compute_program5 */ + +#ifndef GL_NV_compute_shader_derivatives +#define GL_NV_compute_shader_derivatives 1 +#endif /* GL_NV_compute_shader_derivatives */ + +#ifndef GL_NV_conditional_render +#define GL_NV_conditional_render 1 +#define GL_QUERY_WAIT_NV 0x8E13 +#define GL_QUERY_NO_WAIT_NV 0x8E14 +#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 +typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); +typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERNVPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginConditionalRenderNV (GLuint id, GLenum mode); +GLAPI void APIENTRY glEndConditionalRenderNV (void); +#endif +#endif /* GL_NV_conditional_render */ + +#ifndef GL_NV_conservative_raster +#define GL_NV_conservative_raster 1 +#define GL_CONSERVATIVE_RASTERIZATION_NV 0x9346 +#define GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV 0x9347 +#define GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV 0x9348 +#define GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV 0x9349 +typedef void (APIENTRYP PFNGLSUBPIXELPRECISIONBIASNVPROC) (GLuint xbits, GLuint ybits); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSubpixelPrecisionBiasNV (GLuint xbits, GLuint ybits); +#endif +#endif /* GL_NV_conservative_raster */ + +#ifndef GL_NV_conservative_raster_dilate +#define GL_NV_conservative_raster_dilate 1 +#define GL_CONSERVATIVE_RASTER_DILATE_NV 0x9379 +#define GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV 0x937A +#define GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV 0x937B +typedef void (APIENTRYP PFNGLCONSERVATIVERASTERPARAMETERFNVPROC) (GLenum pname, GLfloat value); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glConservativeRasterParameterfNV (GLenum pname, GLfloat value); +#endif +#endif /* GL_NV_conservative_raster_dilate */ + +#ifndef GL_NV_conservative_raster_pre_snap +#define GL_NV_conservative_raster_pre_snap 1 +#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV 0x9550 +#endif /* GL_NV_conservative_raster_pre_snap */ + +#ifndef GL_NV_conservative_raster_pre_snap_triangles +#define GL_NV_conservative_raster_pre_snap_triangles 1 +#define GL_CONSERVATIVE_RASTER_MODE_NV 0x954D +#define GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV 0x954E +#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV 0x954F +typedef void (APIENTRYP PFNGLCONSERVATIVERASTERPARAMETERINVPROC) (GLenum pname, GLint param); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glConservativeRasterParameteriNV (GLenum pname, GLint param); +#endif +#endif /* GL_NV_conservative_raster_pre_snap_triangles */ + +#ifndef GL_NV_conservative_raster_underestimation +#define GL_NV_conservative_raster_underestimation 1 +#endif /* GL_NV_conservative_raster_underestimation */ + +#ifndef GL_NV_copy_depth_to_color +#define GL_NV_copy_depth_to_color 1 +#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E +#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F +#endif /* GL_NV_copy_depth_to_color */ + +#ifndef GL_NV_copy_image +#define GL_NV_copy_image 1 +typedef void (APIENTRYP PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCopyImageSubDataNV (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); +#endif +#endif /* GL_NV_copy_image */ + +#ifndef GL_NV_deep_texture3D +#define GL_NV_deep_texture3D 1 +#define GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV 0x90D0 +#define GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV 0x90D1 +#endif /* GL_NV_deep_texture3D */ + +#ifndef GL_NV_depth_buffer_float +#define GL_NV_depth_buffer_float 1 +#define GL_DEPTH_COMPONENT32F_NV 0x8DAB +#define GL_DEPTH32F_STENCIL8_NV 0x8DAC +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD +#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF +typedef void (APIENTRYP PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar); +typedef void (APIENTRYP PFNGLCLEARDEPTHDNVPROC) (GLdouble depth); +typedef void (APIENTRYP PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDepthRangedNV (GLdouble zNear, GLdouble zFar); +GLAPI void APIENTRY glClearDepthdNV (GLdouble depth); +GLAPI void APIENTRY glDepthBoundsdNV (GLdouble zmin, GLdouble zmax); +#endif +#endif /* GL_NV_depth_buffer_float */ + +#ifndef GL_NV_depth_clamp +#define GL_NV_depth_clamp 1 +#define GL_DEPTH_CLAMP_NV 0x864F +#endif /* GL_NV_depth_clamp */ + +#ifndef GL_NV_draw_texture +#define GL_NV_draw_texture 1 +typedef void (APIENTRYP PFNGLDRAWTEXTURENVPROC) (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawTextureNV (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); +#endif +#endif /* GL_NV_draw_texture */ + +#ifndef GL_NV_draw_vulkan_image +#define GL_NV_draw_vulkan_image 1 +typedef void (APIENTRY *GLVULKANPROCNV)(void); +typedef void (APIENTRYP PFNGLDRAWVKIMAGENVPROC) (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); +typedef GLVULKANPROCNV (APIENTRYP PFNGLGETVKPROCADDRNVPROC) (const GLchar *name); +typedef void (APIENTRYP PFNGLWAITVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); +typedef void (APIENTRYP PFNGLSIGNALVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); +typedef void (APIENTRYP PFNGLSIGNALVKFENCENVPROC) (GLuint64 vkFence); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawVkImageNV (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); +GLAPI GLVULKANPROCNV APIENTRY glGetVkProcAddrNV (const GLchar *name); +GLAPI void APIENTRY glWaitVkSemaphoreNV (GLuint64 vkSemaphore); +GLAPI void APIENTRY glSignalVkSemaphoreNV (GLuint64 vkSemaphore); +GLAPI void APIENTRY glSignalVkFenceNV (GLuint64 vkFence); +#endif +#endif /* GL_NV_draw_vulkan_image */ + +#ifndef GL_NV_evaluators +#define GL_NV_evaluators 1 +#define GL_EVAL_2D_NV 0x86C0 +#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 +#define GL_MAP_TESSELLATION_NV 0x86C2 +#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 +#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 +#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 +#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 +#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 +#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 +#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 +#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA +#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB +#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC +#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD +#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE +#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF +#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 +#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 +#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 +#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 +#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 +#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 +#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 +#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 +typedef void (APIENTRYP PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points); +typedef void (APIENTRYP PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points); +typedef void (APIENTRYP PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points); +GLAPI void APIENTRY glMapParameterivNV (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glMapParameterfvNV (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glGetMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points); +GLAPI void APIENTRY glGetMapParameterivNV (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetMapParameterfvNV (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetMapAttribParameterivNV (GLenum target, GLuint index, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetMapAttribParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glEvalMapsNV (GLenum target, GLenum mode); +#endif +#endif /* GL_NV_evaluators */ + +#ifndef GL_NV_explicit_multisample +#define GL_NV_explicit_multisample 1 +#define GL_SAMPLE_POSITION_NV 0x8E50 +#define GL_SAMPLE_MASK_NV 0x8E51 +#define GL_SAMPLE_MASK_VALUE_NV 0x8E52 +#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53 +#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54 +#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55 +#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56 +#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57 +#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58 +#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 +typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat *val); +typedef void (APIENTRYP PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask); +typedef void (APIENTRYP PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetMultisamplefvNV (GLenum pname, GLuint index, GLfloat *val); +GLAPI void APIENTRY glSampleMaskIndexedNV (GLuint index, GLbitfield mask); +GLAPI void APIENTRY glTexRenderbufferNV (GLenum target, GLuint renderbuffer); +#endif +#endif /* GL_NV_explicit_multisample */ + +#ifndef GL_NV_fence +#define GL_NV_fence 1 +#define GL_ALL_COMPLETED_NV 0x84F2 +#define GL_FENCE_STATUS_NV 0x84F3 +#define GL_FENCE_CONDITION_NV 0x84F4 +typedef void (APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); +typedef void (APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); +typedef GLboolean (APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); +typedef GLboolean (APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); +typedef void (APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); +typedef void (APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDeleteFencesNV (GLsizei n, const GLuint *fences); +GLAPI void APIENTRY glGenFencesNV (GLsizei n, GLuint *fences); +GLAPI GLboolean APIENTRY glIsFenceNV (GLuint fence); +GLAPI GLboolean APIENTRY glTestFenceNV (GLuint fence); +GLAPI void APIENTRY glGetFenceivNV (GLuint fence, GLenum pname, GLint *params); +GLAPI void APIENTRY glFinishFenceNV (GLuint fence); +GLAPI void APIENTRY glSetFenceNV (GLuint fence, GLenum condition); +#endif +#endif /* GL_NV_fence */ + +#ifndef GL_NV_fill_rectangle +#define GL_NV_fill_rectangle 1 +#define GL_FILL_RECTANGLE_NV 0x933C +#endif /* GL_NV_fill_rectangle */ + +#ifndef GL_NV_float_buffer +#define GL_NV_float_buffer 1 +#define GL_FLOAT_R_NV 0x8880 +#define GL_FLOAT_RG_NV 0x8881 +#define GL_FLOAT_RGB_NV 0x8882 +#define GL_FLOAT_RGBA_NV 0x8883 +#define GL_FLOAT_R16_NV 0x8884 +#define GL_FLOAT_R32_NV 0x8885 +#define GL_FLOAT_RG16_NV 0x8886 +#define GL_FLOAT_RG32_NV 0x8887 +#define GL_FLOAT_RGB16_NV 0x8888 +#define GL_FLOAT_RGB32_NV 0x8889 +#define GL_FLOAT_RGBA16_NV 0x888A +#define GL_FLOAT_RGBA32_NV 0x888B +#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C +#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D +#define GL_FLOAT_RGBA_MODE_NV 0x888E +#endif /* GL_NV_float_buffer */ + +#ifndef GL_NV_fog_distance +#define GL_NV_fog_distance 1 +#define GL_FOG_DISTANCE_MODE_NV 0x855A +#define GL_EYE_RADIAL_NV 0x855B +#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C +#endif /* GL_NV_fog_distance */ + +#ifndef GL_NV_fragment_coverage_to_color +#define GL_NV_fragment_coverage_to_color 1 +#define GL_FRAGMENT_COVERAGE_TO_COLOR_NV 0x92DD +#define GL_FRAGMENT_COVERAGE_COLOR_NV 0x92DE +typedef void (APIENTRYP PFNGLFRAGMENTCOVERAGECOLORNVPROC) (GLuint color); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFragmentCoverageColorNV (GLuint color); +#endif +#endif /* GL_NV_fragment_coverage_to_color */ + +#ifndef GL_NV_fragment_program +#define GL_NV_fragment_program 1 +#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 +#define GL_FRAGMENT_PROGRAM_NV 0x8870 +#define GL_MAX_TEXTURE_COORDS_NV 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 +#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 +#define GL_PROGRAM_ERROR_STRING_NV 0x8874 +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); +typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramNamedParameter4fNV (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glProgramNamedParameter4fvNV (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); +GLAPI void APIENTRY glProgramNamedParameter4dNV (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glProgramNamedParameter4dvNV (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); +GLAPI void APIENTRY glGetProgramNamedParameterfvNV (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); +GLAPI void APIENTRY glGetProgramNamedParameterdvNV (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); +#endif +#endif /* GL_NV_fragment_program */ + +#ifndef GL_NV_fragment_program2 +#define GL_NV_fragment_program2 1 +#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 +#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 +#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 +#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 +#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 +#endif /* GL_NV_fragment_program2 */ + +#ifndef GL_NV_fragment_program4 +#define GL_NV_fragment_program4 1 +#endif /* GL_NV_fragment_program4 */ + +#ifndef GL_NV_fragment_program_option +#define GL_NV_fragment_program_option 1 +#endif /* GL_NV_fragment_program_option */ + +#ifndef GL_NV_fragment_shader_barycentric +#define GL_NV_fragment_shader_barycentric 1 +#endif /* GL_NV_fragment_shader_barycentric */ + +#ifndef GL_NV_fragment_shader_interlock +#define GL_NV_fragment_shader_interlock 1 +#endif /* GL_NV_fragment_shader_interlock */ + +#ifndef GL_NV_framebuffer_mixed_samples +#define GL_NV_framebuffer_mixed_samples 1 +#define GL_COVERAGE_MODULATION_TABLE_NV 0x9331 +#define GL_COLOR_SAMPLES_NV 0x8E20 +#define GL_DEPTH_SAMPLES_NV 0x932D +#define GL_STENCIL_SAMPLES_NV 0x932E +#define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F +#define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330 +#define GL_COVERAGE_MODULATION_NV 0x9332 +#define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333 +typedef void (APIENTRYP PFNGLCOVERAGEMODULATIONTABLENVPROC) (GLsizei n, const GLfloat *v); +typedef void (APIENTRYP PFNGLGETCOVERAGEMODULATIONTABLENVPROC) (GLsizei bufSize, GLfloat *v); +typedef void (APIENTRYP PFNGLCOVERAGEMODULATIONNVPROC) (GLenum components); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCoverageModulationTableNV (GLsizei n, const GLfloat *v); +GLAPI void APIENTRY glGetCoverageModulationTableNV (GLsizei bufSize, GLfloat *v); +GLAPI void APIENTRY glCoverageModulationNV (GLenum components); +#endif +#endif /* GL_NV_framebuffer_mixed_samples */ + +#ifndef GL_NV_framebuffer_multisample_coverage +#define GL_NV_framebuffer_multisample_coverage 1 +#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB +#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 +#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 +#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glRenderbufferStorageMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +#endif +#endif /* GL_NV_framebuffer_multisample_coverage */ + +#ifndef GL_NV_geometry_program4 +#define GL_NV_geometry_program4 1 +#define GL_GEOMETRY_PROGRAM_NV 0x8C26 +#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 +#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 +typedef void (APIENTRYP PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramVertexLimitNV (GLenum target, GLint limit); +GLAPI void APIENTRY glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level); +GLAPI void APIENTRY glFramebufferTextureFaceEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#endif +#endif /* GL_NV_geometry_program4 */ + +#ifndef GL_NV_geometry_shader4 +#define GL_NV_geometry_shader4 1 +#endif /* GL_NV_geometry_shader4 */ + +#ifndef GL_NV_geometry_shader_passthrough +#define GL_NV_geometry_shader_passthrough 1 +#endif /* GL_NV_geometry_shader_passthrough */ + +#ifndef GL_NV_gpu_multicast +#define GL_NV_gpu_multicast 1 +#define GL_PER_GPU_STORAGE_BIT_NV 0x0800 +#define GL_MULTICAST_GPUS_NV 0x92BA +#define GL_RENDER_GPU_MASK_NV 0x9558 +#define GL_PER_GPU_STORAGE_NV 0x9548 +#define GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9549 +typedef void (APIENTRYP PFNGLRENDERGPUMASKNVPROC) (GLbitfield mask); +typedef void (APIENTRYP PFNGLMULTICASTBUFFERSUBDATANVPROC) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +typedef void (APIENTRYP PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC) (GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLMULTICASTCOPYIMAGESUBDATANVPROC) (GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +typedef void (APIENTRYP PFNGLMULTICASTBLITFRAMEBUFFERNVPROC) (GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef void (APIENTRYP PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLMULTICASTBARRIERNVPROC) (void); +typedef void (APIENTRYP PFNGLMULTICASTWAITSYNCNVPROC) (GLuint signalGpu, GLbitfield waitGpuMask); +typedef void (APIENTRYP PFNGLMULTICASTGETQUERYOBJECTIVNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLint64 *params); +typedef void (APIENTRYP PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLuint64 *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glRenderGpuMaskNV (GLbitfield mask); +GLAPI void APIENTRY glMulticastBufferSubDataNV (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +GLAPI void APIENTRY glMulticastCopyBufferSubDataNV (GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +GLAPI void APIENTRY glMulticastCopyImageSubDataNV (GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +GLAPI void APIENTRY glMulticastBlitFramebufferNV (GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +GLAPI void APIENTRY glMulticastFramebufferSampleLocationsfvNV (GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glMulticastBarrierNV (void); +GLAPI void APIENTRY glMulticastWaitSyncNV (GLuint signalGpu, GLbitfield waitGpuMask); +GLAPI void APIENTRY glMulticastGetQueryObjectivNV (GLuint gpu, GLuint id, GLenum pname, GLint *params); +GLAPI void APIENTRY glMulticastGetQueryObjectuivNV (GLuint gpu, GLuint id, GLenum pname, GLuint *params); +GLAPI void APIENTRY glMulticastGetQueryObjecti64vNV (GLuint gpu, GLuint id, GLenum pname, GLint64 *params); +GLAPI void APIENTRY glMulticastGetQueryObjectui64vNV (GLuint gpu, GLuint id, GLenum pname, GLuint64 *params); +#endif +#endif /* GL_NV_gpu_multicast */ + +#ifndef GL_NV_gpu_program4 +#define GL_NV_gpu_program4 1 +#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 +#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 +#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 +#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 +#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 +#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 +#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); +typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); +typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramLocalParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +GLAPI void APIENTRY glProgramLocalParameterI4ivNV (GLenum target, GLuint index, const GLint *params); +GLAPI void APIENTRY glProgramLocalParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params); +GLAPI void APIENTRY glProgramLocalParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +GLAPI void APIENTRY glProgramLocalParameterI4uivNV (GLenum target, GLuint index, const GLuint *params); +GLAPI void APIENTRY glProgramLocalParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params); +GLAPI void APIENTRY glProgramEnvParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +GLAPI void APIENTRY glProgramEnvParameterI4ivNV (GLenum target, GLuint index, const GLint *params); +GLAPI void APIENTRY glProgramEnvParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params); +GLAPI void APIENTRY glProgramEnvParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +GLAPI void APIENTRY glProgramEnvParameterI4uivNV (GLenum target, GLuint index, const GLuint *params); +GLAPI void APIENTRY glProgramEnvParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params); +GLAPI void APIENTRY glGetProgramLocalParameterIivNV (GLenum target, GLuint index, GLint *params); +GLAPI void APIENTRY glGetProgramLocalParameterIuivNV (GLenum target, GLuint index, GLuint *params); +GLAPI void APIENTRY glGetProgramEnvParameterIivNV (GLenum target, GLuint index, GLint *params); +GLAPI void APIENTRY glGetProgramEnvParameterIuivNV (GLenum target, GLuint index, GLuint *params); +#endif +#endif /* GL_NV_gpu_program4 */ + +#ifndef GL_NV_gpu_program5 +#define GL_NV_gpu_program5 1 +#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C +#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F +#define GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV 0x8F44 +#define GL_MAX_PROGRAM_SUBROUTINE_NUM_NV 0x8F45 +typedef void (APIENTRYP PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC) (GLenum target, GLsizei count, const GLuint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC) (GLenum target, GLuint index, GLuint *param); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramSubroutineParametersuivNV (GLenum target, GLsizei count, const GLuint *params); +GLAPI void APIENTRY glGetProgramSubroutineParameteruivNV (GLenum target, GLuint index, GLuint *param); +#endif +#endif /* GL_NV_gpu_program5 */ + +#ifndef GL_NV_gpu_program5_mem_extended +#define GL_NV_gpu_program5_mem_extended 1 +#endif /* GL_NV_gpu_program5_mem_extended */ + +#ifndef GL_NV_gpu_shader5 +#define GL_NV_gpu_shader5 1 +#endif /* GL_NV_gpu_shader5 */ + +#ifndef GL_NV_half_float +#define GL_NV_half_float 1 +typedef unsigned short GLhalfNV; +#define GL_HALF_FLOAT_NV 0x140B +typedef void (APIENTRYP PFNGLVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y); +typedef void (APIENTRYP PFNGLVERTEX2HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z); +typedef void (APIENTRYP PFNGLVERTEX3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); +typedef void (APIENTRYP PFNGLVERTEX4HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); +typedef void (APIENTRYP PFNGLNORMAL3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); +typedef void (APIENTRYP PFNGLCOLOR3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); +typedef void (APIENTRYP PFNGLCOLOR4HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD1HNVPROC) (GLhalfNV s); +typedef void (APIENTRYP PFNGLTEXCOORD1HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t); +typedef void (APIENTRYP PFNGLTEXCOORD2HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r); +typedef void (APIENTRYP PFNGLTEXCOORD3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); +typedef void (APIENTRYP PFNGLTEXCOORD4HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s); +typedef void (APIENTRYP PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t); +typedef void (APIENTRYP PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); +typedef void (APIENTRYP PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); +typedef void (APIENTRYP PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLFOGCOORDHNVPROC) (GLhalfNV fog); +typedef void (APIENTRYP PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight); +typedef void (APIENTRYP PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertex2hNV (GLhalfNV x, GLhalfNV y); +GLAPI void APIENTRY glVertex2hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glVertex3hNV (GLhalfNV x, GLhalfNV y, GLhalfNV z); +GLAPI void APIENTRY glVertex3hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glVertex4hNV (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); +GLAPI void APIENTRY glVertex4hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glNormal3hNV (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); +GLAPI void APIENTRY glNormal3hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue); +GLAPI void APIENTRY glColor3hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glColor4hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); +GLAPI void APIENTRY glColor4hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glTexCoord1hNV (GLhalfNV s); +GLAPI void APIENTRY glTexCoord1hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glTexCoord2hNV (GLhalfNV s, GLhalfNV t); +GLAPI void APIENTRY glTexCoord2hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glTexCoord3hNV (GLhalfNV s, GLhalfNV t, GLhalfNV r); +GLAPI void APIENTRY glTexCoord3hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glTexCoord4hNV (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); +GLAPI void APIENTRY glTexCoord4hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glMultiTexCoord1hNV (GLenum target, GLhalfNV s); +GLAPI void APIENTRY glMultiTexCoord1hvNV (GLenum target, const GLhalfNV *v); +GLAPI void APIENTRY glMultiTexCoord2hNV (GLenum target, GLhalfNV s, GLhalfNV t); +GLAPI void APIENTRY glMultiTexCoord2hvNV (GLenum target, const GLhalfNV *v); +GLAPI void APIENTRY glMultiTexCoord3hNV (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); +GLAPI void APIENTRY glMultiTexCoord3hvNV (GLenum target, const GLhalfNV *v); +GLAPI void APIENTRY glMultiTexCoord4hNV (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); +GLAPI void APIENTRY glMultiTexCoord4hvNV (GLenum target, const GLhalfNV *v); +GLAPI void APIENTRY glFogCoordhNV (GLhalfNV fog); +GLAPI void APIENTRY glFogCoordhvNV (const GLhalfNV *fog); +GLAPI void APIENTRY glSecondaryColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue); +GLAPI void APIENTRY glSecondaryColor3hvNV (const GLhalfNV *v); +GLAPI void APIENTRY glVertexWeighthNV (GLhalfNV weight); +GLAPI void APIENTRY glVertexWeighthvNV (const GLhalfNV *weight); +GLAPI void APIENTRY glVertexAttrib1hNV (GLuint index, GLhalfNV x); +GLAPI void APIENTRY glVertexAttrib1hvNV (GLuint index, const GLhalfNV *v); +GLAPI void APIENTRY glVertexAttrib2hNV (GLuint index, GLhalfNV x, GLhalfNV y); +GLAPI void APIENTRY glVertexAttrib2hvNV (GLuint index, const GLhalfNV *v); +GLAPI void APIENTRY glVertexAttrib3hNV (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); +GLAPI void APIENTRY glVertexAttrib3hvNV (GLuint index, const GLhalfNV *v); +GLAPI void APIENTRY glVertexAttrib4hNV (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); +GLAPI void APIENTRY glVertexAttrib4hvNV (GLuint index, const GLhalfNV *v); +GLAPI void APIENTRY glVertexAttribs1hvNV (GLuint index, GLsizei n, const GLhalfNV *v); +GLAPI void APIENTRY glVertexAttribs2hvNV (GLuint index, GLsizei n, const GLhalfNV *v); +GLAPI void APIENTRY glVertexAttribs3hvNV (GLuint index, GLsizei n, const GLhalfNV *v); +GLAPI void APIENTRY glVertexAttribs4hvNV (GLuint index, GLsizei n, const GLhalfNV *v); +#endif +#endif /* GL_NV_half_float */ + +#ifndef GL_NV_internalformat_sample_query +#define GL_NV_internalformat_sample_query 1 +#define GL_MULTISAMPLES_NV 0x9371 +#define GL_SUPERSAMPLE_SCALE_X_NV 0x9372 +#define GL_SUPERSAMPLE_SCALE_Y_NV 0x9373 +#define GL_CONFORMANT_NV 0x9374 +typedef void (APIENTRYP PFNGLGETINTERNALFORMATSAMPLEIVNVPROC) (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetInternalformatSampleivNV (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params); +#endif +#endif /* GL_NV_internalformat_sample_query */ + +#ifndef GL_NV_light_max_exponent +#define GL_NV_light_max_exponent 1 +#define GL_MAX_SHININESS_NV 0x8504 +#define GL_MAX_SPOT_EXPONENT_NV 0x8505 +#endif /* GL_NV_light_max_exponent */ + +#ifndef GL_NV_memory_attachment +#define GL_NV_memory_attachment 1 +#define GL_ATTACHED_MEMORY_OBJECT_NV 0x95A4 +#define GL_ATTACHED_MEMORY_OFFSET_NV 0x95A5 +#define GL_MEMORY_ATTACHABLE_ALIGNMENT_NV 0x95A6 +#define GL_MEMORY_ATTACHABLE_SIZE_NV 0x95A7 +#define GL_MEMORY_ATTACHABLE_NV 0x95A8 +#define GL_DETACHED_MEMORY_INCARNATION_NV 0x95A9 +#define GL_DETACHED_TEXTURES_NV 0x95AA +#define GL_DETACHED_BUFFERS_NV 0x95AB +#define GL_MAX_DETACHED_TEXTURES_NV 0x95AC +#define GL_MAX_DETACHED_BUFFERS_NV 0x95AD +typedef void (APIENTRYP PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC) (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params); +typedef void (APIENTRYP PFNGLRESETMEMORYOBJECTPARAMETERNVPROC) (GLuint memory, GLenum pname); +typedef void (APIENTRYP PFNGLTEXATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); +typedef void (APIENTRYP PFNGLBUFFERATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); +typedef void (APIENTRYP PFNGLTEXTUREATTACHMEMORYNVPROC) (GLuint texture, GLuint memory, GLuint64 offset); +typedef void (APIENTRYP PFNGLNAMEDBUFFERATTACHMEMORYNVPROC) (GLuint buffer, GLuint memory, GLuint64 offset); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetMemoryObjectDetachedResourcesuivNV (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params); +GLAPI void APIENTRY glResetMemoryObjectParameterNV (GLuint memory, GLenum pname); +GLAPI void APIENTRY glTexAttachMemoryNV (GLenum target, GLuint memory, GLuint64 offset); +GLAPI void APIENTRY glBufferAttachMemoryNV (GLenum target, GLuint memory, GLuint64 offset); +GLAPI void APIENTRY glTextureAttachMemoryNV (GLuint texture, GLuint memory, GLuint64 offset); +GLAPI void APIENTRY glNamedBufferAttachMemoryNV (GLuint buffer, GLuint memory, GLuint64 offset); +#endif +#endif /* GL_NV_memory_attachment */ + +#ifndef GL_NV_memory_object_sparse +#define GL_NV_memory_object_sparse 1 +typedef void (APIENTRYP PFNGLBUFFERPAGECOMMITMENTMEMNVPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); +typedef void (APIENTRYP PFNGLTEXPAGECOMMITMENTMEMNVPROC) (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); +typedef void (APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTMEMNVPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); +typedef void (APIENTRYP PFNGLTEXTUREPAGECOMMITMENTMEMNVPROC) (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBufferPageCommitmentMemNV (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); +GLAPI void APIENTRY glTexPageCommitmentMemNV (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); +GLAPI void APIENTRY glNamedBufferPageCommitmentMemNV (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); +GLAPI void APIENTRY glTexturePageCommitmentMemNV (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); +#endif +#endif /* GL_NV_memory_object_sparse */ + +#ifndef GL_NV_mesh_shader +#define GL_NV_mesh_shader 1 +#define GL_MESH_SHADER_NV 0x9559 +#define GL_TASK_SHADER_NV 0x955A +#define GL_MAX_MESH_UNIFORM_BLOCKS_NV 0x8E60 +#define GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV 0x8E61 +#define GL_MAX_MESH_IMAGE_UNIFORMS_NV 0x8E62 +#define GL_MAX_MESH_UNIFORM_COMPONENTS_NV 0x8E63 +#define GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV 0x8E64 +#define GL_MAX_MESH_ATOMIC_COUNTERS_NV 0x8E65 +#define GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV 0x8E66 +#define GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV 0x8E67 +#define GL_MAX_TASK_UNIFORM_BLOCKS_NV 0x8E68 +#define GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV 0x8E69 +#define GL_MAX_TASK_IMAGE_UNIFORMS_NV 0x8E6A +#define GL_MAX_TASK_UNIFORM_COMPONENTS_NV 0x8E6B +#define GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV 0x8E6C +#define GL_MAX_TASK_ATOMIC_COUNTERS_NV 0x8E6D +#define GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV 0x8E6E +#define GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV 0x8E6F +#define GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV 0x95A2 +#define GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV 0x95A3 +#define GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV 0x9536 +#define GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV 0x9537 +#define GL_MAX_MESH_OUTPUT_VERTICES_NV 0x9538 +#define GL_MAX_MESH_OUTPUT_PRIMITIVES_NV 0x9539 +#define GL_MAX_TASK_OUTPUT_COUNT_NV 0x953A +#define GL_MAX_DRAW_MESH_TASKS_COUNT_NV 0x953D +#define GL_MAX_MESH_VIEWS_NV 0x9557 +#define GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV 0x92DF +#define GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV 0x9543 +#define GL_MAX_MESH_WORK_GROUP_SIZE_NV 0x953B +#define GL_MAX_TASK_WORK_GROUP_SIZE_NV 0x953C +#define GL_MESH_WORK_GROUP_SIZE_NV 0x953E +#define GL_TASK_WORK_GROUP_SIZE_NV 0x953F +#define GL_MESH_VERTICES_OUT_NV 0x9579 +#define GL_MESH_PRIMITIVES_OUT_NV 0x957A +#define GL_MESH_OUTPUT_TYPE_NV 0x957B +#define GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV 0x959C +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV 0x959D +#define GL_REFERENCED_BY_MESH_SHADER_NV 0x95A0 +#define GL_REFERENCED_BY_TASK_SHADER_NV 0x95A1 +#define GL_MESH_SHADER_BIT_NV 0x00000040 +#define GL_TASK_SHADER_BIT_NV 0x00000080 +#define GL_MESH_SUBROUTINE_NV 0x957C +#define GL_TASK_SUBROUTINE_NV 0x957D +#define GL_MESH_SUBROUTINE_UNIFORM_NV 0x957E +#define GL_TASK_SUBROUTINE_UNIFORM_NV 0x957F +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV 0x959E +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV 0x959F +typedef void (APIENTRYP PFNGLDRAWMESHTASKSNVPROC) (GLuint first, GLuint count); +typedef void (APIENTRYP PFNGLDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect); +typedef void (APIENTRYP PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect, GLsizei drawcount, GLsizei stride); +typedef void (APIENTRYP PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC) (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawMeshTasksNV (GLuint first, GLuint count); +GLAPI void APIENTRY glDrawMeshTasksIndirectNV (GLintptr indirect); +GLAPI void APIENTRY glMultiDrawMeshTasksIndirectNV (GLintptr indirect, GLsizei drawcount, GLsizei stride); +GLAPI void APIENTRY glMultiDrawMeshTasksIndirectCountNV (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +#endif +#endif /* GL_NV_mesh_shader */ + +#ifndef GL_NV_multisample_coverage +#define GL_NV_multisample_coverage 1 +#endif /* GL_NV_multisample_coverage */ + +#ifndef GL_NV_multisample_filter_hint +#define GL_NV_multisample_filter_hint 1 +#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 +#endif /* GL_NV_multisample_filter_hint */ + +#ifndef GL_NV_occlusion_query +#define GL_NV_occlusion_query 1 +#define GL_PIXEL_COUNTER_BITS_NV 0x8864 +#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 +#define GL_PIXEL_COUNT_NV 0x8866 +#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 +typedef void (APIENTRYP PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); +typedef void (APIENTRYP PFNGLENDOCCLUSIONQUERYNVPROC) (void); +typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenOcclusionQueriesNV (GLsizei n, GLuint *ids); +GLAPI void APIENTRY glDeleteOcclusionQueriesNV (GLsizei n, const GLuint *ids); +GLAPI GLboolean APIENTRY glIsOcclusionQueryNV (GLuint id); +GLAPI void APIENTRY glBeginOcclusionQueryNV (GLuint id); +GLAPI void APIENTRY glEndOcclusionQueryNV (void); +GLAPI void APIENTRY glGetOcclusionQueryivNV (GLuint id, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetOcclusionQueryuivNV (GLuint id, GLenum pname, GLuint *params); +#endif +#endif /* GL_NV_occlusion_query */ + +#ifndef GL_NV_packed_depth_stencil +#define GL_NV_packed_depth_stencil 1 +#define GL_DEPTH_STENCIL_NV 0x84F9 +#define GL_UNSIGNED_INT_24_8_NV 0x84FA +#endif /* GL_NV_packed_depth_stencil */ + +#ifndef GL_NV_parameter_buffer_object +#define GL_NV_parameter_buffer_object 1 +#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 +#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 +#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 +#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 +#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 +typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat *params); +typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProgramBufferParametersfvNV (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat *params); +GLAPI void APIENTRY glProgramBufferParametersIivNV (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint *params); +GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint *params); +#endif +#endif /* GL_NV_parameter_buffer_object */ + +#ifndef GL_NV_parameter_buffer_object2 +#define GL_NV_parameter_buffer_object2 1 +#endif /* GL_NV_parameter_buffer_object2 */ + +#ifndef GL_NV_path_rendering +#define GL_NV_path_rendering 1 +#define GL_PATH_FORMAT_SVG_NV 0x9070 +#define GL_PATH_FORMAT_PS_NV 0x9071 +#define GL_STANDARD_FONT_NAME_NV 0x9072 +#define GL_SYSTEM_FONT_NAME_NV 0x9073 +#define GL_FILE_NAME_NV 0x9074 +#define GL_PATH_STROKE_WIDTH_NV 0x9075 +#define GL_PATH_END_CAPS_NV 0x9076 +#define GL_PATH_INITIAL_END_CAP_NV 0x9077 +#define GL_PATH_TERMINAL_END_CAP_NV 0x9078 +#define GL_PATH_JOIN_STYLE_NV 0x9079 +#define GL_PATH_MITER_LIMIT_NV 0x907A +#define GL_PATH_DASH_CAPS_NV 0x907B +#define GL_PATH_INITIAL_DASH_CAP_NV 0x907C +#define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D +#define GL_PATH_DASH_OFFSET_NV 0x907E +#define GL_PATH_CLIENT_LENGTH_NV 0x907F +#define GL_PATH_FILL_MODE_NV 0x9080 +#define GL_PATH_FILL_MASK_NV 0x9081 +#define GL_PATH_FILL_COVER_MODE_NV 0x9082 +#define GL_PATH_STROKE_COVER_MODE_NV 0x9083 +#define GL_PATH_STROKE_MASK_NV 0x9084 +#define GL_COUNT_UP_NV 0x9088 +#define GL_COUNT_DOWN_NV 0x9089 +#define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A +#define GL_CONVEX_HULL_NV 0x908B +#define GL_BOUNDING_BOX_NV 0x908D +#define GL_TRANSLATE_X_NV 0x908E +#define GL_TRANSLATE_Y_NV 0x908F +#define GL_TRANSLATE_2D_NV 0x9090 +#define GL_TRANSLATE_3D_NV 0x9091 +#define GL_AFFINE_2D_NV 0x9092 +#define GL_AFFINE_3D_NV 0x9094 +#define GL_TRANSPOSE_AFFINE_2D_NV 0x9096 +#define GL_TRANSPOSE_AFFINE_3D_NV 0x9098 +#define GL_UTF8_NV 0x909A +#define GL_UTF16_NV 0x909B +#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C +#define GL_PATH_COMMAND_COUNT_NV 0x909D +#define GL_PATH_COORD_COUNT_NV 0x909E +#define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F +#define GL_PATH_COMPUTED_LENGTH_NV 0x90A0 +#define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1 +#define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2 +#define GL_SQUARE_NV 0x90A3 +#define GL_ROUND_NV 0x90A4 +#define GL_TRIANGULAR_NV 0x90A5 +#define GL_BEVEL_NV 0x90A6 +#define GL_MITER_REVERT_NV 0x90A7 +#define GL_MITER_TRUNCATE_NV 0x90A8 +#define GL_SKIP_MISSING_GLYPH_NV 0x90A9 +#define GL_USE_MISSING_GLYPH_NV 0x90AA +#define GL_PATH_ERROR_POSITION_NV 0x90AB +#define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD +#define GL_ADJACENT_PAIRS_NV 0x90AE +#define GL_FIRST_TO_REST_NV 0x90AF +#define GL_PATH_GEN_MODE_NV 0x90B0 +#define GL_PATH_GEN_COEFF_NV 0x90B1 +#define GL_PATH_GEN_COMPONENTS_NV 0x90B3 +#define GL_PATH_STENCIL_FUNC_NV 0x90B7 +#define GL_PATH_STENCIL_REF_NV 0x90B8 +#define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9 +#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD +#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE +#define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF +#define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4 +#define GL_MOVE_TO_RESETS_NV 0x90B5 +#define GL_MOVE_TO_CONTINUES_NV 0x90B6 +#define GL_CLOSE_PATH_NV 0x00 +#define GL_MOVE_TO_NV 0x02 +#define GL_RELATIVE_MOVE_TO_NV 0x03 +#define GL_LINE_TO_NV 0x04 +#define GL_RELATIVE_LINE_TO_NV 0x05 +#define GL_HORIZONTAL_LINE_TO_NV 0x06 +#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07 +#define GL_VERTICAL_LINE_TO_NV 0x08 +#define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09 +#define GL_QUADRATIC_CURVE_TO_NV 0x0A +#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B +#define GL_CUBIC_CURVE_TO_NV 0x0C +#define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D +#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E +#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F +#define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10 +#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11 +#define GL_SMALL_CCW_ARC_TO_NV 0x12 +#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13 +#define GL_SMALL_CW_ARC_TO_NV 0x14 +#define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15 +#define GL_LARGE_CCW_ARC_TO_NV 0x16 +#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17 +#define GL_LARGE_CW_ARC_TO_NV 0x18 +#define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19 +#define GL_RESTART_PATH_NV 0xF0 +#define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2 +#define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4 +#define GL_RECT_NV 0xF6 +#define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8 +#define GL_CIRCULAR_CW_ARC_TO_NV 0xFA +#define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC +#define GL_ARC_TO_NV 0xFE +#define GL_RELATIVE_ARC_TO_NV 0xFF +#define GL_BOLD_BIT_NV 0x01 +#define GL_ITALIC_BIT_NV 0x02 +#define GL_GLYPH_WIDTH_BIT_NV 0x01 +#define GL_GLYPH_HEIGHT_BIT_NV 0x02 +#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04 +#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08 +#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10 +#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20 +#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40 +#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80 +#define GL_GLYPH_HAS_KERNING_BIT_NV 0x100 +#define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000 +#define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000 +#define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000 +#define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000 +#define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000 +#define GL_FONT_ASCENDER_BIT_NV 0x00200000 +#define GL_FONT_DESCENDER_BIT_NV 0x00400000 +#define GL_FONT_HEIGHT_BIT_NV 0x00800000 +#define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000 +#define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000 +#define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000 +#define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000 +#define GL_FONT_HAS_KERNING_BIT_NV 0x10000000 +#define GL_ROUNDED_RECT_NV 0xE8 +#define GL_RELATIVE_ROUNDED_RECT_NV 0xE9 +#define GL_ROUNDED_RECT2_NV 0xEA +#define GL_RELATIVE_ROUNDED_RECT2_NV 0xEB +#define GL_ROUNDED_RECT4_NV 0xEC +#define GL_RELATIVE_ROUNDED_RECT4_NV 0xED +#define GL_ROUNDED_RECT8_NV 0xEE +#define GL_RELATIVE_ROUNDED_RECT8_NV 0xEF +#define GL_RELATIVE_RECT_NV 0xF7 +#define GL_FONT_GLYPHS_AVAILABLE_NV 0x9368 +#define GL_FONT_TARGET_UNAVAILABLE_NV 0x9369 +#define GL_FONT_UNAVAILABLE_NV 0x936A +#define GL_FONT_UNINTELLIGIBLE_NV 0x936B +#define GL_CONIC_CURVE_TO_NV 0x1A +#define GL_RELATIVE_CONIC_CURVE_TO_NV 0x1B +#define GL_FONT_NUM_GLYPH_INDICES_BIT_NV 0x20000000 +#define GL_STANDARD_FONT_FORMAT_NV 0x936C +#define GL_2_BYTES_NV 0x1407 +#define GL_3_BYTES_NV 0x1408 +#define GL_4_BYTES_NV 0x1409 +#define GL_EYE_LINEAR_NV 0x2400 +#define GL_OBJECT_LINEAR_NV 0x2401 +#define GL_CONSTANT_NV 0x8576 +#define GL_PATH_FOG_GEN_MODE_NV 0x90AC +#define GL_PRIMARY_COLOR_NV 0x852C +#define GL_SECONDARY_COLOR_NV 0x852D +#define GL_PATH_GEN_COLOR_FORMAT_NV 0x90B2 +#define GL_PATH_PROJECTION_NV 0x1701 +#define GL_PATH_MODELVIEW_NV 0x1700 +#define GL_PATH_MODELVIEW_STACK_DEPTH_NV 0x0BA3 +#define GL_PATH_MODELVIEW_MATRIX_NV 0x0BA6 +#define GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV 0x0D36 +#define GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV 0x84E3 +#define GL_PATH_PROJECTION_STACK_DEPTH_NV 0x0BA4 +#define GL_PATH_PROJECTION_MATRIX_NV 0x0BA7 +#define GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV 0x0D38 +#define GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV 0x84E4 +#define GL_FRAGMENT_INPUT_NV 0x936D +typedef GLuint (APIENTRYP PFNGLGENPATHSNVPROC) (GLsizei range); +typedef void (APIENTRYP PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range); +typedef GLboolean (APIENTRYP PFNGLISPATHNVPROC) (GLuint path); +typedef void (APIENTRYP PFNGLPATHCOMMANDSNVPROC) (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); +typedef void (APIENTRYP PFNGLPATHCOORDSNVPROC) (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); +typedef void (APIENTRYP PFNGLPATHSUBCOMMANDSNVPROC) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); +typedef void (APIENTRYP PFNGLPATHSUBCOORDSNVPROC) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); +typedef void (APIENTRYP PFNGLPATHSTRINGNVPROC) (GLuint path, GLenum format, GLsizei length, const void *pathString); +typedef void (APIENTRYP PFNGLPATHGLYPHSNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +typedef void (APIENTRYP PFNGLPATHGLYPHRANGENVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +typedef void (APIENTRYP PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); +typedef void (APIENTRYP PFNGLCOPYPATHNVPROC) (GLuint resultPath, GLuint srcPath); +typedef void (APIENTRYP PFNGLINTERPOLATEPATHSNVPROC) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); +typedef void (APIENTRYP PFNGLTRANSFORMPATHNVPROC) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); +typedef void (APIENTRYP PFNGLPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, const GLint *value); +typedef void (APIENTRYP PFNGLPATHPARAMETERINVPROC) (GLuint path, GLenum pname, GLint value); +typedef void (APIENTRYP PFNGLPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, const GLfloat *value); +typedef void (APIENTRYP PFNGLPATHPARAMETERFNVPROC) (GLuint path, GLenum pname, GLfloat value); +typedef void (APIENTRYP PFNGLPATHDASHARRAYNVPROC) (GLuint path, GLsizei dashCount, const GLfloat *dashArray); +typedef void (APIENTRYP PFNGLPATHSTENCILFUNCNVPROC) (GLenum func, GLint ref, GLuint mask); +typedef void (APIENTRYP PFNGLPATHSTENCILDEPTHOFFSETNVPROC) (GLfloat factor, GLfloat units); +typedef void (APIENTRYP PFNGLSTENCILFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask); +typedef void (APIENTRYP PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask); +typedef void (APIENTRYP PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); +typedef void (APIENTRYP PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); +typedef void (APIENTRYP PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum func); +typedef void (APIENTRYP PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode); +typedef void (APIENTRYP PFNGLCOVERSTROKEPATHNVPROC) (GLuint path, GLenum coverMode); +typedef void (APIENTRYP PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +typedef void (APIENTRYP PFNGLCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +typedef void (APIENTRYP PFNGLGETPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, GLint *value); +typedef void (APIENTRYP PFNGLGETPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, GLfloat *value); +typedef void (APIENTRYP PFNGLGETPATHCOMMANDSNVPROC) (GLuint path, GLubyte *commands); +typedef void (APIENTRYP PFNGLGETPATHCOORDSNVPROC) (GLuint path, GLfloat *coords); +typedef void (APIENTRYP PFNGLGETPATHDASHARRAYNVPROC) (GLuint path, GLfloat *dashArray); +typedef void (APIENTRYP PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); +typedef void (APIENTRYP PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); +typedef void (APIENTRYP PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); +typedef GLboolean (APIENTRYP PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y); +typedef GLboolean (APIENTRYP PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y); +typedef GLfloat (APIENTRYP PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments); +typedef GLboolean (APIENTRYP PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); +typedef void (APIENTRYP PFNGLMATRIXLOAD3X2FNVPROC) (GLenum matrixMode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXLOAD3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXMULT3X2FNVPROC) (GLenum matrixMode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXMULT3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); +typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); +typedef void (APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); +typedef void (APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask, GLenum coverMode); +typedef void (APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +typedef void (APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +typedef GLenum (APIENTRYP PFNGLPATHGLYPHINDEXRANGENVPROC) (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint *baseAndCount); +typedef GLenum (APIENTRYP PFNGLPATHGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +typedef GLenum (APIENTRYP PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +typedef void (APIENTRYP PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC) (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs); +typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCEFVNVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params); +typedef void (APIENTRYP PFNGLPATHCOLORGENNVPROC) (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs); +typedef void (APIENTRYP PFNGLPATHTEXGENNVPROC) (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs); +typedef void (APIENTRYP PFNGLPATHFOGGENNVPROC) (GLenum genMode); +typedef void (APIENTRYP PFNGLGETPATHCOLORGENIVNVPROC) (GLenum color, GLenum pname, GLint *value); +typedef void (APIENTRYP PFNGLGETPATHCOLORGENFVNVPROC) (GLenum color, GLenum pname, GLfloat *value); +typedef void (APIENTRYP PFNGLGETPATHTEXGENIVNVPROC) (GLenum texCoordSet, GLenum pname, GLint *value); +typedef void (APIENTRYP PFNGLGETPATHTEXGENFVNVPROC) (GLenum texCoordSet, GLenum pname, GLfloat *value); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLuint APIENTRY glGenPathsNV (GLsizei range); +GLAPI void APIENTRY glDeletePathsNV (GLuint path, GLsizei range); +GLAPI GLboolean APIENTRY glIsPathNV (GLuint path); +GLAPI void APIENTRY glPathCommandsNV (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); +GLAPI void APIENTRY glPathCoordsNV (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); +GLAPI void APIENTRY glPathSubCommandsNV (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); +GLAPI void APIENTRY glPathSubCoordsNV (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); +GLAPI void APIENTRY glPathStringNV (GLuint path, GLenum format, GLsizei length, const void *pathString); +GLAPI void APIENTRY glPathGlyphsNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +GLAPI void APIENTRY glPathGlyphRangeNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +GLAPI void APIENTRY glWeightPathsNV (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); +GLAPI void APIENTRY glCopyPathNV (GLuint resultPath, GLuint srcPath); +GLAPI void APIENTRY glInterpolatePathsNV (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); +GLAPI void APIENTRY glTransformPathNV (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); +GLAPI void APIENTRY glPathParameterivNV (GLuint path, GLenum pname, const GLint *value); +GLAPI void APIENTRY glPathParameteriNV (GLuint path, GLenum pname, GLint value); +GLAPI void APIENTRY glPathParameterfvNV (GLuint path, GLenum pname, const GLfloat *value); +GLAPI void APIENTRY glPathParameterfNV (GLuint path, GLenum pname, GLfloat value); +GLAPI void APIENTRY glPathDashArrayNV (GLuint path, GLsizei dashCount, const GLfloat *dashArray); +GLAPI void APIENTRY glPathStencilFuncNV (GLenum func, GLint ref, GLuint mask); +GLAPI void APIENTRY glPathStencilDepthOffsetNV (GLfloat factor, GLfloat units); +GLAPI void APIENTRY glStencilFillPathNV (GLuint path, GLenum fillMode, GLuint mask); +GLAPI void APIENTRY glStencilStrokePathNV (GLuint path, GLint reference, GLuint mask); +GLAPI void APIENTRY glStencilFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); +GLAPI void APIENTRY glStencilStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); +GLAPI void APIENTRY glPathCoverDepthFuncNV (GLenum func); +GLAPI void APIENTRY glCoverFillPathNV (GLuint path, GLenum coverMode); +GLAPI void APIENTRY glCoverStrokePathNV (GLuint path, GLenum coverMode); +GLAPI void APIENTRY glCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +GLAPI void APIENTRY glCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +GLAPI void APIENTRY glGetPathParameterivNV (GLuint path, GLenum pname, GLint *value); +GLAPI void APIENTRY glGetPathParameterfvNV (GLuint path, GLenum pname, GLfloat *value); +GLAPI void APIENTRY glGetPathCommandsNV (GLuint path, GLubyte *commands); +GLAPI void APIENTRY glGetPathCoordsNV (GLuint path, GLfloat *coords); +GLAPI void APIENTRY glGetPathDashArrayNV (GLuint path, GLfloat *dashArray); +GLAPI void APIENTRY glGetPathMetricsNV (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); +GLAPI void APIENTRY glGetPathMetricRangeNV (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); +GLAPI void APIENTRY glGetPathSpacingNV (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); +GLAPI GLboolean APIENTRY glIsPointInFillPathNV (GLuint path, GLuint mask, GLfloat x, GLfloat y); +GLAPI GLboolean APIENTRY glIsPointInStrokePathNV (GLuint path, GLfloat x, GLfloat y); +GLAPI GLfloat APIENTRY glGetPathLengthNV (GLuint path, GLsizei startSegment, GLsizei numSegments); +GLAPI GLboolean APIENTRY glPointAlongPathNV (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); +GLAPI void APIENTRY glMatrixLoad3x2fNV (GLenum matrixMode, const GLfloat *m); +GLAPI void APIENTRY glMatrixLoad3x3fNV (GLenum matrixMode, const GLfloat *m); +GLAPI void APIENTRY glMatrixLoadTranspose3x3fNV (GLenum matrixMode, const GLfloat *m); +GLAPI void APIENTRY glMatrixMult3x2fNV (GLenum matrixMode, const GLfloat *m); +GLAPI void APIENTRY glMatrixMult3x3fNV (GLenum matrixMode, const GLfloat *m); +GLAPI void APIENTRY glMatrixMultTranspose3x3fNV (GLenum matrixMode, const GLfloat *m); +GLAPI void APIENTRY glStencilThenCoverFillPathNV (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); +GLAPI void APIENTRY glStencilThenCoverStrokePathNV (GLuint path, GLint reference, GLuint mask, GLenum coverMode); +GLAPI void APIENTRY glStencilThenCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +GLAPI void APIENTRY glStencilThenCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +GLAPI GLenum APIENTRY glPathGlyphIndexRangeNV (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint *baseAndCount); +GLAPI GLenum APIENTRY glPathGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +GLAPI GLenum APIENTRY glPathMemoryGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +GLAPI void APIENTRY glProgramPathFragmentInputGenNV (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs); +GLAPI void APIENTRY glGetProgramResourcefvNV (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params); +GLAPI void APIENTRY glPathColorGenNV (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs); +GLAPI void APIENTRY glPathTexGenNV (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs); +GLAPI void APIENTRY glPathFogGenNV (GLenum genMode); +GLAPI void APIENTRY glGetPathColorGenivNV (GLenum color, GLenum pname, GLint *value); +GLAPI void APIENTRY glGetPathColorGenfvNV (GLenum color, GLenum pname, GLfloat *value); +GLAPI void APIENTRY glGetPathTexGenivNV (GLenum texCoordSet, GLenum pname, GLint *value); +GLAPI void APIENTRY glGetPathTexGenfvNV (GLenum texCoordSet, GLenum pname, GLfloat *value); +#endif +#endif /* GL_NV_path_rendering */ + +#ifndef GL_NV_path_rendering_shared_edge +#define GL_NV_path_rendering_shared_edge 1 +#define GL_SHARED_EDGE_NV 0xC0 +#endif /* GL_NV_path_rendering_shared_edge */ + +#ifndef GL_NV_pixel_data_range +#define GL_NV_pixel_data_range 1 +#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 +#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 +#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A +#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B +#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C +#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D +typedef void (APIENTRYP PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, const void *pointer); +typedef void (APIENTRYP PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelDataRangeNV (GLenum target, GLsizei length, const void *pointer); +GLAPI void APIENTRY glFlushPixelDataRangeNV (GLenum target); +#endif +#endif /* GL_NV_pixel_data_range */ + +#ifndef GL_NV_point_sprite +#define GL_NV_point_sprite 1 +#define GL_POINT_SPRITE_NV 0x8861 +#define GL_COORD_REPLACE_NV 0x8862 +#define GL_POINT_SPRITE_R_MODE_NV 0x8863 +typedef void (APIENTRYP PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameteriNV (GLenum pname, GLint param); +GLAPI void APIENTRY glPointParameterivNV (GLenum pname, const GLint *params); +#endif +#endif /* GL_NV_point_sprite */ + +#ifndef GL_NV_present_video +#define GL_NV_present_video 1 +#define GL_FRAME_NV 0x8E26 +#define GL_FIELDS_NV 0x8E27 +#define GL_CURRENT_TIME_NV 0x8E28 +#define GL_NUM_FILL_STREAMS_NV 0x8E29 +#define GL_PRESENT_TIME_NV 0x8E2A +#define GL_PRESENT_DURATION_NV 0x8E2B +typedef void (APIENTRYP PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); +typedef void (APIENTRYP PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); +typedef void (APIENTRYP PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT *params); +typedef void (APIENTRYP PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPresentFrameKeyedNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); +GLAPI void APIENTRY glPresentFrameDualFillNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); +GLAPI void APIENTRY glGetVideoivNV (GLuint video_slot, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVideouivNV (GLuint video_slot, GLenum pname, GLuint *params); +GLAPI void APIENTRY glGetVideoi64vNV (GLuint video_slot, GLenum pname, GLint64EXT *params); +GLAPI void APIENTRY glGetVideoui64vNV (GLuint video_slot, GLenum pname, GLuint64EXT *params); +#endif +#endif /* GL_NV_present_video */ + +#ifndef GL_NV_primitive_restart +#define GL_NV_primitive_restart 1 +#define GL_PRIMITIVE_RESTART_NV 0x8558 +#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 +typedef void (APIENTRYP PFNGLPRIMITIVERESTARTNVPROC) (void); +typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPrimitiveRestartNV (void); +GLAPI void APIENTRY glPrimitiveRestartIndexNV (GLuint index); +#endif +#endif /* GL_NV_primitive_restart */ + +#ifndef GL_NV_primitive_shading_rate +#define GL_NV_primitive_shading_rate 1 +#define GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV 0x95B1 +#define GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV 0x95B2 +#endif /* GL_NV_primitive_shading_rate */ + +#ifndef GL_NV_query_resource +#define GL_NV_query_resource 1 +#define GL_QUERY_RESOURCE_TYPE_VIDMEM_ALLOC_NV 0x9540 +#define GL_QUERY_RESOURCE_MEMTYPE_VIDMEM_NV 0x9542 +#define GL_QUERY_RESOURCE_SYS_RESERVED_NV 0x9544 +#define GL_QUERY_RESOURCE_TEXTURE_NV 0x9545 +#define GL_QUERY_RESOURCE_RENDERBUFFER_NV 0x9546 +#define GL_QUERY_RESOURCE_BUFFEROBJECT_NV 0x9547 +typedef GLint (APIENTRYP PFNGLQUERYRESOURCENVPROC) (GLenum queryType, GLint tagId, GLuint count, GLint *buffer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLint APIENTRY glQueryResourceNV (GLenum queryType, GLint tagId, GLuint count, GLint *buffer); +#endif +#endif /* GL_NV_query_resource */ + +#ifndef GL_NV_query_resource_tag +#define GL_NV_query_resource_tag 1 +typedef void (APIENTRYP PFNGLGENQUERYRESOURCETAGNVPROC) (GLsizei n, GLint *tagIds); +typedef void (APIENTRYP PFNGLDELETEQUERYRESOURCETAGNVPROC) (GLsizei n, const GLint *tagIds); +typedef void (APIENTRYP PFNGLQUERYRESOURCETAGNVPROC) (GLint tagId, const GLchar *tagString); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGenQueryResourceTagNV (GLsizei n, GLint *tagIds); +GLAPI void APIENTRY glDeleteQueryResourceTagNV (GLsizei n, const GLint *tagIds); +GLAPI void APIENTRY glQueryResourceTagNV (GLint tagId, const GLchar *tagString); +#endif +#endif /* GL_NV_query_resource_tag */ + +#ifndef GL_NV_register_combiners +#define GL_NV_register_combiners 1 +#define GL_REGISTER_COMBINERS_NV 0x8522 +#define GL_VARIABLE_A_NV 0x8523 +#define GL_VARIABLE_B_NV 0x8524 +#define GL_VARIABLE_C_NV 0x8525 +#define GL_VARIABLE_D_NV 0x8526 +#define GL_VARIABLE_E_NV 0x8527 +#define GL_VARIABLE_F_NV 0x8528 +#define GL_VARIABLE_G_NV 0x8529 +#define GL_CONSTANT_COLOR0_NV 0x852A +#define GL_CONSTANT_COLOR1_NV 0x852B +#define GL_SPARE0_NV 0x852E +#define GL_SPARE1_NV 0x852F +#define GL_DISCARD_NV 0x8530 +#define GL_E_TIMES_F_NV 0x8531 +#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 +#define GL_UNSIGNED_IDENTITY_NV 0x8536 +#define GL_UNSIGNED_INVERT_NV 0x8537 +#define GL_EXPAND_NORMAL_NV 0x8538 +#define GL_EXPAND_NEGATE_NV 0x8539 +#define GL_HALF_BIAS_NORMAL_NV 0x853A +#define GL_HALF_BIAS_NEGATE_NV 0x853B +#define GL_SIGNED_IDENTITY_NV 0x853C +#define GL_SIGNED_NEGATE_NV 0x853D +#define GL_SCALE_BY_TWO_NV 0x853E +#define GL_SCALE_BY_FOUR_NV 0x853F +#define GL_SCALE_BY_ONE_HALF_NV 0x8540 +#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 +#define GL_COMBINER_INPUT_NV 0x8542 +#define GL_COMBINER_MAPPING_NV 0x8543 +#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 +#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 +#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 +#define GL_COMBINER_MUX_SUM_NV 0x8547 +#define GL_COMBINER_SCALE_NV 0x8548 +#define GL_COMBINER_BIAS_NV 0x8549 +#define GL_COMBINER_AB_OUTPUT_NV 0x854A +#define GL_COMBINER_CD_OUTPUT_NV 0x854B +#define GL_COMBINER_SUM_OUTPUT_NV 0x854C +#define GL_MAX_GENERAL_COMBINERS_NV 0x854D +#define GL_NUM_GENERAL_COMBINERS_NV 0x854E +#define GL_COLOR_SUM_CLAMP_NV 0x854F +#define GL_COMBINER0_NV 0x8550 +#define GL_COMBINER1_NV 0x8551 +#define GL_COMBINER2_NV 0x8552 +#define GL_COMBINER3_NV 0x8553 +#define GL_COMBINER4_NV 0x8554 +#define GL_COMBINER5_NV 0x8555 +#define GL_COMBINER6_NV 0x8556 +#define GL_COMBINER7_NV 0x8557 +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +typedef void (APIENTRYP PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); +typedef void (APIENTRYP PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCombinerParameterfvNV (GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glCombinerParameterfNV (GLenum pname, GLfloat param); +GLAPI void APIENTRY glCombinerParameterivNV (GLenum pname, const GLint *params); +GLAPI void APIENTRY glCombinerParameteriNV (GLenum pname, GLint param); +GLAPI void APIENTRY glCombinerInputNV (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +GLAPI void APIENTRY glCombinerOutputNV (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); +GLAPI void APIENTRY glFinalCombinerInputNV (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +GLAPI void APIENTRY glGetCombinerInputParameterfvNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetCombinerInputParameterivNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetCombinerOutputParameterfvNV (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetCombinerOutputParameterivNV (GLenum stage, GLenum portion, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum variable, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV (GLenum variable, GLenum pname, GLint *params); +#endif +#endif /* GL_NV_register_combiners */ + +#ifndef GL_NV_register_combiners2 +#define GL_NV_register_combiners2 1 +#define GL_PER_STAGE_CONSTANTS_NV 0x8535 +typedef void (APIENTRYP PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCombinerStageParameterfvNV (GLenum stage, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum stage, GLenum pname, GLfloat *params); +#endif +#endif /* GL_NV_register_combiners2 */ + +#ifndef GL_NV_representative_fragment_test +#define GL_NV_representative_fragment_test 1 +#define GL_REPRESENTATIVE_FRAGMENT_TEST_NV 0x937F +#endif /* GL_NV_representative_fragment_test */ + +#ifndef GL_NV_robustness_video_memory_purge +#define GL_NV_robustness_video_memory_purge 1 +#define GL_PURGED_CONTEXT_RESET_NV 0x92BB +#endif /* GL_NV_robustness_video_memory_purge */ + +#ifndef GL_NV_sample_locations +#define GL_NV_sample_locations 1 +#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D +#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV 0x933E +#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV 0x933F +#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV 0x9340 +#define GL_SAMPLE_LOCATION_NV 0x8E50 +#define GL_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9341 +#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV 0x9342 +#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV 0x9343 +typedef void (APIENTRYP PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLRESOLVEDEPTHVALUESNVPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFramebufferSampleLocationsfvNV (GLenum target, GLuint start, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glNamedFramebufferSampleLocationsfvNV (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glResolveDepthValuesNV (void); +#endif +#endif /* GL_NV_sample_locations */ + +#ifndef GL_NV_sample_mask_override_coverage +#define GL_NV_sample_mask_override_coverage 1 +#endif /* GL_NV_sample_mask_override_coverage */ + +#ifndef GL_NV_scissor_exclusive +#define GL_NV_scissor_exclusive 1 +#define GL_SCISSOR_TEST_EXCLUSIVE_NV 0x9555 +#define GL_SCISSOR_BOX_EXCLUSIVE_NV 0x9556 +typedef void (APIENTRYP PFNGLSCISSOREXCLUSIVENVPROC) (GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLSCISSOREXCLUSIVEARRAYVNVPROC) (GLuint first, GLsizei count, const GLint *v); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glScissorExclusiveNV (GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glScissorExclusiveArrayvNV (GLuint first, GLsizei count, const GLint *v); +#endif +#endif /* GL_NV_scissor_exclusive */ + +#ifndef GL_NV_shader_atomic_counters +#define GL_NV_shader_atomic_counters 1 +#endif /* GL_NV_shader_atomic_counters */ + +#ifndef GL_NV_shader_atomic_float +#define GL_NV_shader_atomic_float 1 +#endif /* GL_NV_shader_atomic_float */ + +#ifndef GL_NV_shader_atomic_float64 +#define GL_NV_shader_atomic_float64 1 +#endif /* GL_NV_shader_atomic_float64 */ + +#ifndef GL_NV_shader_atomic_fp16_vector +#define GL_NV_shader_atomic_fp16_vector 1 +#endif /* GL_NV_shader_atomic_fp16_vector */ + +#ifndef GL_NV_shader_atomic_int64 +#define GL_NV_shader_atomic_int64 1 +#endif /* GL_NV_shader_atomic_int64 */ + +#ifndef GL_NV_shader_buffer_load +#define GL_NV_shader_buffer_load 1 +#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D +#define GL_GPU_ADDRESS_NV 0x8F34 +#define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35 +typedef void (APIENTRYP PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access); +typedef void (APIENTRYP PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target); +typedef GLboolean (APIENTRYP PFNGLISBUFFERRESIDENTNVPROC) (GLenum target); +typedef void (APIENTRYP PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access); +typedef void (APIENTRYP PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer); +typedef GLboolean (APIENTRYP PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT *params); +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT *params); +typedef void (APIENTRYP PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT *result); +typedef void (APIENTRYP PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value); +typedef void (APIENTRYP PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMakeBufferResidentNV (GLenum target, GLenum access); +GLAPI void APIENTRY glMakeBufferNonResidentNV (GLenum target); +GLAPI GLboolean APIENTRY glIsBufferResidentNV (GLenum target); +GLAPI void APIENTRY glMakeNamedBufferResidentNV (GLuint buffer, GLenum access); +GLAPI void APIENTRY glMakeNamedBufferNonResidentNV (GLuint buffer); +GLAPI GLboolean APIENTRY glIsNamedBufferResidentNV (GLuint buffer); +GLAPI void APIENTRY glGetBufferParameterui64vNV (GLenum target, GLenum pname, GLuint64EXT *params); +GLAPI void APIENTRY glGetNamedBufferParameterui64vNV (GLuint buffer, GLenum pname, GLuint64EXT *params); +GLAPI void APIENTRY glGetIntegerui64vNV (GLenum value, GLuint64EXT *result); +GLAPI void APIENTRY glUniformui64NV (GLint location, GLuint64EXT value); +GLAPI void APIENTRY glUniformui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); +GLAPI void APIENTRY glProgramUniformui64NV (GLuint program, GLint location, GLuint64EXT value); +GLAPI void APIENTRY glProgramUniformui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +#endif +#endif /* GL_NV_shader_buffer_load */ + +#ifndef GL_NV_shader_buffer_store +#define GL_NV_shader_buffer_store 1 +#define GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV 0x00000010 +#endif /* GL_NV_shader_buffer_store */ + +#ifndef GL_NV_shader_storage_buffer_object +#define GL_NV_shader_storage_buffer_object 1 +#endif /* GL_NV_shader_storage_buffer_object */ + +#ifndef GL_NV_shader_subgroup_partitioned +#define GL_NV_shader_subgroup_partitioned 1 +#define GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV 0x00000100 +#endif /* GL_NV_shader_subgroup_partitioned */ + +#ifndef GL_NV_shader_texture_footprint +#define GL_NV_shader_texture_footprint 1 +#endif /* GL_NV_shader_texture_footprint */ + +#ifndef GL_NV_shader_thread_group +#define GL_NV_shader_thread_group 1 +#define GL_WARP_SIZE_NV 0x9339 +#define GL_WARPS_PER_SM_NV 0x933A +#define GL_SM_COUNT_NV 0x933B +#endif /* GL_NV_shader_thread_group */ + +#ifndef GL_NV_shader_thread_shuffle +#define GL_NV_shader_thread_shuffle 1 +#endif /* GL_NV_shader_thread_shuffle */ + +#ifndef GL_NV_shading_rate_image +#define GL_NV_shading_rate_image 1 +#define GL_SHADING_RATE_IMAGE_NV 0x9563 +#define GL_SHADING_RATE_NO_INVOCATIONS_NV 0x9564 +#define GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV 0x9565 +#define GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV 0x9566 +#define GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV 0x9567 +#define GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV 0x9568 +#define GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV 0x9569 +#define GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV 0x956A +#define GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV 0x956B +#define GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV 0x956C +#define GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV 0x956D +#define GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV 0x956E +#define GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV 0x956F +#define GL_SHADING_RATE_IMAGE_BINDING_NV 0x955B +#define GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV 0x955C +#define GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV 0x955D +#define GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV 0x955E +#define GL_MAX_COARSE_FRAGMENT_SAMPLES_NV 0x955F +#define GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV 0x95AE +#define GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV 0x95AF +#define GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV 0x95B0 +typedef void (APIENTRYP PFNGLBINDSHADINGRATEIMAGENVPROC) (GLuint texture); +typedef void (APIENTRYP PFNGLGETSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint entry, GLenum *rate); +typedef void (APIENTRYP PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC) (GLenum rate, GLuint samples, GLuint index, GLint *location); +typedef void (APIENTRYP PFNGLSHADINGRATEIMAGEBARRIERNVPROC) (GLboolean synchronize); +typedef void (APIENTRYP PFNGLSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates); +typedef void (APIENTRYP PFNGLSHADINGRATESAMPLEORDERNVPROC) (GLenum order); +typedef void (APIENTRYP PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC) (GLenum rate, GLuint samples, const GLint *locations); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindShadingRateImageNV (GLuint texture); +GLAPI void APIENTRY glGetShadingRateImagePaletteNV (GLuint viewport, GLuint entry, GLenum *rate); +GLAPI void APIENTRY glGetShadingRateSampleLocationivNV (GLenum rate, GLuint samples, GLuint index, GLint *location); +GLAPI void APIENTRY glShadingRateImageBarrierNV (GLboolean synchronize); +GLAPI void APIENTRY glShadingRateImagePaletteNV (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates); +GLAPI void APIENTRY glShadingRateSampleOrderNV (GLenum order); +GLAPI void APIENTRY glShadingRateSampleOrderCustomNV (GLenum rate, GLuint samples, const GLint *locations); +#endif +#endif /* GL_NV_shading_rate_image */ + +#ifndef GL_NV_stereo_view_rendering +#define GL_NV_stereo_view_rendering 1 +#endif /* GL_NV_stereo_view_rendering */ + +#ifndef GL_NV_tessellation_program5 +#define GL_NV_tessellation_program5 1 +#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8 +#define GL_TESS_CONTROL_PROGRAM_NV 0x891E +#define GL_TESS_EVALUATION_PROGRAM_NV 0x891F +#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74 +#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75 +#endif /* GL_NV_tessellation_program5 */ + +#ifndef GL_NV_texgen_emboss +#define GL_NV_texgen_emboss 1 +#define GL_EMBOSS_LIGHT_NV 0x855D +#define GL_EMBOSS_CONSTANT_NV 0x855E +#define GL_EMBOSS_MAP_NV 0x855F +#endif /* GL_NV_texgen_emboss */ + +#ifndef GL_NV_texgen_reflection +#define GL_NV_texgen_reflection 1 +#define GL_NORMAL_MAP_NV 0x8511 +#define GL_REFLECTION_MAP_NV 0x8512 +#endif /* GL_NV_texgen_reflection */ + +#ifndef GL_NV_texture_barrier +#define GL_NV_texture_barrier 1 +typedef void (APIENTRYP PFNGLTEXTUREBARRIERNVPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTextureBarrierNV (void); +#endif +#endif /* GL_NV_texture_barrier */ + +#ifndef GL_NV_texture_compression_vtc +#define GL_NV_texture_compression_vtc 1 +#endif /* GL_NV_texture_compression_vtc */ + +#ifndef GL_NV_texture_env_combine4 +#define GL_NV_texture_env_combine4 1 +#define GL_COMBINE4_NV 0x8503 +#define GL_SOURCE3_RGB_NV 0x8583 +#define GL_SOURCE3_ALPHA_NV 0x858B +#define GL_OPERAND3_RGB_NV 0x8593 +#define GL_OPERAND3_ALPHA_NV 0x859B +#endif /* GL_NV_texture_env_combine4 */ + +#ifndef GL_NV_texture_expand_normal +#define GL_NV_texture_expand_normal 1 +#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F +#endif /* GL_NV_texture_expand_normal */ + +#ifndef GL_NV_texture_multisample +#define GL_NV_texture_multisample 1 +#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045 +#define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046 +typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexImage2DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +GLAPI void APIENTRY glTexImage3DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +GLAPI void APIENTRY glTextureImage2DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +GLAPI void APIENTRY glTextureImage3DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +GLAPI void APIENTRY glTextureImage2DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +GLAPI void APIENTRY glTextureImage3DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +#endif +#endif /* GL_NV_texture_multisample */ + +#ifndef GL_NV_texture_rectangle +#define GL_NV_texture_rectangle 1 +#define GL_TEXTURE_RECTANGLE_NV 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 +#endif /* GL_NV_texture_rectangle */ + +#ifndef GL_NV_texture_rectangle_compressed +#define GL_NV_texture_rectangle_compressed 1 +#endif /* GL_NV_texture_rectangle_compressed */ + +#ifndef GL_NV_texture_shader +#define GL_NV_texture_shader 1 +#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C +#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D +#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E +#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 +#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA +#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB +#define GL_DSDT_MAG_INTENSITY_NV 0x86DC +#define GL_SHADER_CONSISTENT_NV 0x86DD +#define GL_TEXTURE_SHADER_NV 0x86DE +#define GL_SHADER_OPERATION_NV 0x86DF +#define GL_CULL_MODES_NV 0x86E0 +#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 +#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 +#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 +#define GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1 +#define GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2 +#define GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3 +#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 +#define GL_CONST_EYE_NV 0x86E5 +#define GL_PASS_THROUGH_NV 0x86E6 +#define GL_CULL_FRAGMENT_NV 0x86E7 +#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 +#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 +#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA +#define GL_DOT_PRODUCT_NV 0x86EC +#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED +#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE +#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 +#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 +#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 +#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 +#define GL_HILO_NV 0x86F4 +#define GL_DSDT_NV 0x86F5 +#define GL_DSDT_MAG_NV 0x86F6 +#define GL_DSDT_MAG_VIB_NV 0x86F7 +#define GL_HILO16_NV 0x86F8 +#define GL_SIGNED_HILO_NV 0x86F9 +#define GL_SIGNED_HILO16_NV 0x86FA +#define GL_SIGNED_RGBA_NV 0x86FB +#define GL_SIGNED_RGBA8_NV 0x86FC +#define GL_SIGNED_RGB_NV 0x86FE +#define GL_SIGNED_RGB8_NV 0x86FF +#define GL_SIGNED_LUMINANCE_NV 0x8701 +#define GL_SIGNED_LUMINANCE8_NV 0x8702 +#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 +#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 +#define GL_SIGNED_ALPHA_NV 0x8705 +#define GL_SIGNED_ALPHA8_NV 0x8706 +#define GL_SIGNED_INTENSITY_NV 0x8707 +#define GL_SIGNED_INTENSITY8_NV 0x8708 +#define GL_DSDT8_NV 0x8709 +#define GL_DSDT8_MAG8_NV 0x870A +#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B +#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C +#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D +#define GL_HI_SCALE_NV 0x870E +#define GL_LO_SCALE_NV 0x870F +#define GL_DS_SCALE_NV 0x8710 +#define GL_DT_SCALE_NV 0x8711 +#define GL_MAGNITUDE_SCALE_NV 0x8712 +#define GL_VIBRANCE_SCALE_NV 0x8713 +#define GL_HI_BIAS_NV 0x8714 +#define GL_LO_BIAS_NV 0x8715 +#define GL_DS_BIAS_NV 0x8716 +#define GL_DT_BIAS_NV 0x8717 +#define GL_MAGNITUDE_BIAS_NV 0x8718 +#define GL_VIBRANCE_BIAS_NV 0x8719 +#define GL_TEXTURE_BORDER_VALUES_NV 0x871A +#define GL_TEXTURE_HI_SIZE_NV 0x871B +#define GL_TEXTURE_LO_SIZE_NV 0x871C +#define GL_TEXTURE_DS_SIZE_NV 0x871D +#define GL_TEXTURE_DT_SIZE_NV 0x871E +#define GL_TEXTURE_MAG_SIZE_NV 0x871F +#endif /* GL_NV_texture_shader */ + +#ifndef GL_NV_texture_shader2 +#define GL_NV_texture_shader2 1 +#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF +#endif /* GL_NV_texture_shader2 */ + +#ifndef GL_NV_texture_shader3 +#define GL_NV_texture_shader3 1 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 +#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 +#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 +#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 +#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 +#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A +#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B +#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C +#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D +#define GL_HILO8_NV 0x885E +#define GL_SIGNED_HILO8_NV 0x885F +#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 +#endif /* GL_NV_texture_shader3 */ + +#ifndef GL_NV_timeline_semaphore +#define GL_NV_timeline_semaphore 1 +#define GL_TIMELINE_SEMAPHORE_VALUE_NV 0x9595 +#define GL_SEMAPHORE_TYPE_NV 0x95B3 +#define GL_SEMAPHORE_TYPE_BINARY_NV 0x95B4 +#define GL_SEMAPHORE_TYPE_TIMELINE_NV 0x95B5 +#define GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV 0x95B6 +typedef void (APIENTRYP PFNGLCREATESEMAPHORESNVPROC) (GLsizei n, GLuint *semaphores); +typedef void (APIENTRYP PFNGLSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLGETSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glCreateSemaphoresNV (GLsizei n, GLuint *semaphores); +GLAPI void APIENTRY glSemaphoreParameterivNV (GLuint semaphore, GLenum pname, const GLint *params); +GLAPI void APIENTRY glGetSemaphoreParameterivNV (GLuint semaphore, GLenum pname, GLint *params); +#endif +#endif /* GL_NV_timeline_semaphore */ + +#ifndef GL_NV_transform_feedback +#define GL_NV_transform_feedback 1 +#define GL_BACK_PRIMARY_COLOR_NV 0x8C77 +#define GL_BACK_SECONDARY_COLOR_NV 0x8C78 +#define GL_TEXTURE_COORD_NV 0x8C79 +#define GL_CLIP_DISTANCE_NV 0x8C7A +#define GL_VERTEX_ID_NV 0x8C7B +#define GL_PRIMITIVE_ID_NV 0x8C7C +#define GL_GENERIC_ATTRIB_NV 0x8C7D +#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 +#define GL_ACTIVE_VARYINGS_NV 0x8C81 +#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 +#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 +#define GL_PRIMITIVES_GENERATED_NV 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 +#define GL_RASTERIZER_DISCARD_NV 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B +#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C +#define GL_SEPARATE_ATTRIBS_NV 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F +#define GL_LAYER_NV 0x8DAA +#define GL_NEXT_BUFFER_NV -2 +#define GL_SKIP_COMPONENTS4_NV -3 +#define GL_SKIP_COMPONENTS3_NV -4 +#define GL_SKIP_COMPONENTS2_NV -5 +#define GL_SKIP_COMPONENTS1_NV -6 +typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode); +typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKNVPROC) (void); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLsizei count, const GLint *attribs, GLenum bufferMode); +typedef void (APIENTRYP PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +typedef void (APIENTRYP PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); +typedef void (APIENTRYP PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC) (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginTransformFeedbackNV (GLenum primitiveMode); +GLAPI void APIENTRY glEndTransformFeedbackNV (void); +GLAPI void APIENTRY glTransformFeedbackAttribsNV (GLsizei count, const GLint *attribs, GLenum bufferMode); +GLAPI void APIENTRY glBindBufferRangeNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI void APIENTRY glBindBufferOffsetNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +GLAPI void APIENTRY glBindBufferBaseNV (GLenum target, GLuint index, GLuint buffer); +GLAPI void APIENTRY glTransformFeedbackVaryingsNV (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); +GLAPI void APIENTRY glActiveVaryingNV (GLuint program, const GLchar *name); +GLAPI GLint APIENTRY glGetVaryingLocationNV (GLuint program, const GLchar *name); +GLAPI void APIENTRY glGetActiveVaryingNV (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +GLAPI void APIENTRY glGetTransformFeedbackVaryingNV (GLuint program, GLuint index, GLint *location); +GLAPI void APIENTRY glTransformFeedbackStreamAttribsNV (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode); +#endif +#endif /* GL_NV_transform_feedback */ + +#ifndef GL_NV_transform_feedback2 +#define GL_NV_transform_feedback2 1 +#define GL_TRANSFORM_FEEDBACK_NV 0x8E22 +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23 +#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24 +#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25 +typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint *ids); +typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id); +typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void); +typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void); +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBindTransformFeedbackNV (GLenum target, GLuint id); +GLAPI void APIENTRY glDeleteTransformFeedbacksNV (GLsizei n, const GLuint *ids); +GLAPI void APIENTRY glGenTransformFeedbacksNV (GLsizei n, GLuint *ids); +GLAPI GLboolean APIENTRY glIsTransformFeedbackNV (GLuint id); +GLAPI void APIENTRY glPauseTransformFeedbackNV (void); +GLAPI void APIENTRY glResumeTransformFeedbackNV (void); +GLAPI void APIENTRY glDrawTransformFeedbackNV (GLenum mode, GLuint id); +#endif +#endif /* GL_NV_transform_feedback2 */ + +#ifndef GL_NV_uniform_buffer_unified_memory +#define GL_NV_uniform_buffer_unified_memory 1 +#define GL_UNIFORM_BUFFER_UNIFIED_NV 0x936E +#define GL_UNIFORM_BUFFER_ADDRESS_NV 0x936F +#define GL_UNIFORM_BUFFER_LENGTH_NV 0x9370 +#endif /* GL_NV_uniform_buffer_unified_memory */ + +#ifndef GL_NV_vdpau_interop +#define GL_NV_vdpau_interop 1 +typedef GLintptr GLvdpauSurfaceNV; +#define GL_SURFACE_STATE_NV 0x86EB +#define GL_SURFACE_REGISTERED_NV 0x86FD +#define GL_SURFACE_MAPPED_NV 0x8700 +#define GL_WRITE_DISCARD_NV 0x88BE +typedef void (APIENTRYP PFNGLVDPAUINITNVPROC) (const void *vdpDevice, const void *getProcAddress); +typedef void (APIENTRYP PFNGLVDPAUFININVPROC) (void); +typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); +typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); +typedef GLboolean (APIENTRYP PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface); +typedef void (APIENTRYP PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface); +typedef void (APIENTRYP PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei count, GLsizei *length, GLint *values); +typedef void (APIENTRYP PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access); +typedef void (APIENTRYP PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces); +typedef void (APIENTRYP PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVDPAUInitNV (const void *vdpDevice, const void *getProcAddress); +GLAPI void APIENTRY glVDPAUFiniNV (void); +GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterVideoSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); +GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterOutputSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); +GLAPI GLboolean APIENTRY glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface); +GLAPI void APIENTRY glVDPAUUnregisterSurfaceNV (GLvdpauSurfaceNV surface); +GLAPI void APIENTRY glVDPAUGetSurfaceivNV (GLvdpauSurfaceNV surface, GLenum pname, GLsizei count, GLsizei *length, GLint *values); +GLAPI void APIENTRY glVDPAUSurfaceAccessNV (GLvdpauSurfaceNV surface, GLenum access); +GLAPI void APIENTRY glVDPAUMapSurfacesNV (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces); +GLAPI void APIENTRY glVDPAUUnmapSurfacesNV (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces); +#endif +#endif /* GL_NV_vdpau_interop */ + +#ifndef GL_NV_vdpau_interop2 +#define GL_NV_vdpau_interop2 1 +typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames, GLboolean isFrameStructure); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterVideoSurfaceWithPictureStructureNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames, GLboolean isFrameStructure); +#endif +#endif /* GL_NV_vdpau_interop2 */ + +#ifndef GL_NV_vertex_array_range +#define GL_NV_vertex_array_range 1 +#define GL_VERTEX_ARRAY_RANGE_NV 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E +#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F +#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 +#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 +typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); +typedef void (APIENTRYP PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, const void *pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFlushVertexArrayRangeNV (void); +GLAPI void APIENTRY glVertexArrayRangeNV (GLsizei length, const void *pointer); +#endif +#endif /* GL_NV_vertex_array_range */ + +#ifndef GL_NV_vertex_array_range2 +#define GL_NV_vertex_array_range2 1 +#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 +#endif /* GL_NV_vertex_array_range2 */ + +#ifndef GL_NV_vertex_attrib_integer_64bit +#define GL_NV_vertex_attrib_integer_64bit 1 +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT *v); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT *params); +typedef void (APIENTRYP PFNGLVERTEXATTRIBLFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glVertexAttribL1i64NV (GLuint index, GLint64EXT x); +GLAPI void APIENTRY glVertexAttribL2i64NV (GLuint index, GLint64EXT x, GLint64EXT y); +GLAPI void APIENTRY glVertexAttribL3i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); +GLAPI void APIENTRY glVertexAttribL4i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +GLAPI void APIENTRY glVertexAttribL1i64vNV (GLuint index, const GLint64EXT *v); +GLAPI void APIENTRY glVertexAttribL2i64vNV (GLuint index, const GLint64EXT *v); +GLAPI void APIENTRY glVertexAttribL3i64vNV (GLuint index, const GLint64EXT *v); +GLAPI void APIENTRY glVertexAttribL4i64vNV (GLuint index, const GLint64EXT *v); +GLAPI void APIENTRY glVertexAttribL1ui64NV (GLuint index, GLuint64EXT x); +GLAPI void APIENTRY glVertexAttribL2ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y); +GLAPI void APIENTRY glVertexAttribL3ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +GLAPI void APIENTRY glVertexAttribL4ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +GLAPI void APIENTRY glVertexAttribL1ui64vNV (GLuint index, const GLuint64EXT *v); +GLAPI void APIENTRY glVertexAttribL2ui64vNV (GLuint index, const GLuint64EXT *v); +GLAPI void APIENTRY glVertexAttribL3ui64vNV (GLuint index, const GLuint64EXT *v); +GLAPI void APIENTRY glVertexAttribL4ui64vNV (GLuint index, const GLuint64EXT *v); +GLAPI void APIENTRY glGetVertexAttribLi64vNV (GLuint index, GLenum pname, GLint64EXT *params); +GLAPI void APIENTRY glGetVertexAttribLui64vNV (GLuint index, GLenum pname, GLuint64EXT *params); +GLAPI void APIENTRY glVertexAttribLFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride); +#endif +#endif /* GL_NV_vertex_attrib_integer_64bit */ + +#ifndef GL_NV_vertex_buffer_unified_memory +#define GL_NV_vertex_buffer_unified_memory 1 +#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E +#define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F +#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20 +#define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21 +#define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22 +#define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23 +#define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24 +#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25 +#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26 +#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27 +#define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28 +#define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29 +#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A +#define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B +#define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C +#define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D +#define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E +#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F +#define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30 +#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31 +#define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32 +#define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33 +#define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40 +#define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41 +#define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42 +typedef void (APIENTRYP PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); +typedef void (APIENTRYP PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); +typedef void (APIENTRYP PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride); +typedef void (APIENTRYP PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); +typedef void (APIENTRYP PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride); +typedef void (APIENTRYP PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); +typedef void (APIENTRYP PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride); +typedef void (APIENTRYP PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); +typedef void (APIENTRYP PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride); +typedef void (APIENTRYP PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); +typedef void (APIENTRYP PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); +typedef void (APIENTRYP PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT *result); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBufferAddressRangeNV (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); +GLAPI void APIENTRY glVertexFormatNV (GLint size, GLenum type, GLsizei stride); +GLAPI void APIENTRY glNormalFormatNV (GLenum type, GLsizei stride); +GLAPI void APIENTRY glColorFormatNV (GLint size, GLenum type, GLsizei stride); +GLAPI void APIENTRY glIndexFormatNV (GLenum type, GLsizei stride); +GLAPI void APIENTRY glTexCoordFormatNV (GLint size, GLenum type, GLsizei stride); +GLAPI void APIENTRY glEdgeFlagFormatNV (GLsizei stride); +GLAPI void APIENTRY glSecondaryColorFormatNV (GLint size, GLenum type, GLsizei stride); +GLAPI void APIENTRY glFogCoordFormatNV (GLenum type, GLsizei stride); +GLAPI void APIENTRY glVertexAttribFormatNV (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); +GLAPI void APIENTRY glVertexAttribIFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride); +GLAPI void APIENTRY glGetIntegerui64i_vNV (GLenum value, GLuint index, GLuint64EXT *result); +#endif +#endif /* GL_NV_vertex_buffer_unified_memory */ + +#ifndef GL_NV_vertex_program +#define GL_NV_vertex_program 1 +#define GL_VERTEX_PROGRAM_NV 0x8620 +#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 +#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 +#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 +#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 +#define GL_CURRENT_ATTRIB_NV 0x8626 +#define GL_PROGRAM_LENGTH_NV 0x8627 +#define GL_PROGRAM_STRING_NV 0x8628 +#define GL_MODELVIEW_PROJECTION_NV 0x8629 +#define GL_IDENTITY_NV 0x862A +#define GL_INVERSE_NV 0x862B +#define GL_TRANSPOSE_NV 0x862C +#define GL_INVERSE_TRANSPOSE_NV 0x862D +#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E +#define GL_MAX_TRACK_MATRICES_NV 0x862F +#define GL_MATRIX0_NV 0x8630 +#define GL_MATRIX1_NV 0x8631 +#define GL_MATRIX2_NV 0x8632 +#define GL_MATRIX3_NV 0x8633 +#define GL_MATRIX4_NV 0x8634 +#define GL_MATRIX5_NV 0x8635 +#define GL_MATRIX6_NV 0x8636 +#define GL_MATRIX7_NV 0x8637 +#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 +#define GL_CURRENT_MATRIX_NV 0x8641 +#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 +#define GL_PROGRAM_PARAMETER_NV 0x8644 +#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 +#define GL_PROGRAM_TARGET_NV 0x8646 +#define GL_PROGRAM_RESIDENT_NV 0x8647 +#define GL_TRACK_MATRIX_NV 0x8648 +#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 +#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A +#define GL_PROGRAM_ERROR_POSITION_NV 0x864B +#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 +#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 +#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 +#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 +#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 +#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 +#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 +#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 +#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 +#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 +#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A +#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B +#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C +#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D +#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E +#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F +#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 +#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 +#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 +#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 +#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 +#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 +#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 +#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 +#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 +#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 +#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A +#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B +#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C +#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D +#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E +#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F +#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 +#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 +#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 +#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 +#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 +#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 +#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 +#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 +#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 +#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 +#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A +#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B +#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C +#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D +#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E +#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F +typedef GLboolean (APIENTRYP PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences); +typedef void (APIENTRYP PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); +typedef void (APIENTRYP PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params); +typedef void (APIENTRYP PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs); +typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program); +typedef void (APIENTRYP PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, void **pointer); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMNVPROC) (GLuint id); +typedef void (APIENTRYP PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); +typedef void (APIENTRYP PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const void *pointer); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLboolean APIENTRY glAreProgramsResidentNV (GLsizei n, const GLuint *programs, GLboolean *residences); +GLAPI void APIENTRY glBindProgramNV (GLenum target, GLuint id); +GLAPI void APIENTRY glDeleteProgramsNV (GLsizei n, const GLuint *programs); +GLAPI void APIENTRY glExecuteProgramNV (GLenum target, GLuint id, const GLfloat *params); +GLAPI void APIENTRY glGenProgramsNV (GLsizei n, GLuint *programs); +GLAPI void APIENTRY glGetProgramParameterdvNV (GLenum target, GLuint index, GLenum pname, GLdouble *params); +GLAPI void APIENTRY glGetProgramParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetProgramivNV (GLuint id, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetProgramStringNV (GLuint id, GLenum pname, GLubyte *program); +GLAPI void APIENTRY glGetTrackMatrixivNV (GLenum target, GLuint address, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVertexAttribdvNV (GLuint index, GLenum pname, GLdouble *params); +GLAPI void APIENTRY glGetVertexAttribfvNV (GLuint index, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetVertexAttribivNV (GLuint index, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVertexAttribPointervNV (GLuint index, GLenum pname, void **pointer); +GLAPI GLboolean APIENTRY glIsProgramNV (GLuint id); +GLAPI void APIENTRY glLoadProgramNV (GLenum target, GLuint id, GLsizei len, const GLubyte *program); +GLAPI void APIENTRY glProgramParameter4dNV (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glProgramParameter4dvNV (GLenum target, GLuint index, const GLdouble *v); +GLAPI void APIENTRY glProgramParameter4fNV (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glProgramParameter4fvNV (GLenum target, GLuint index, const GLfloat *v); +GLAPI void APIENTRY glProgramParameters4dvNV (GLenum target, GLuint index, GLsizei count, const GLdouble *v); +GLAPI void APIENTRY glProgramParameters4fvNV (GLenum target, GLuint index, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glRequestResidentProgramsNV (GLsizei n, const GLuint *programs); +GLAPI void APIENTRY glTrackMatrixNV (GLenum target, GLuint address, GLenum matrix, GLenum transform); +GLAPI void APIENTRY glVertexAttribPointerNV (GLuint index, GLint fsize, GLenum type, GLsizei stride, const void *pointer); +GLAPI void APIENTRY glVertexAttrib1dNV (GLuint index, GLdouble x); +GLAPI void APIENTRY glVertexAttrib1dvNV (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib1fNV (GLuint index, GLfloat x); +GLAPI void APIENTRY glVertexAttrib1fvNV (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib1sNV (GLuint index, GLshort x); +GLAPI void APIENTRY glVertexAttrib1svNV (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib2dNV (GLuint index, GLdouble x, GLdouble y); +GLAPI void APIENTRY glVertexAttrib2dvNV (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib2fNV (GLuint index, GLfloat x, GLfloat y); +GLAPI void APIENTRY glVertexAttrib2fvNV (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib2sNV (GLuint index, GLshort x, GLshort y); +GLAPI void APIENTRY glVertexAttrib2svNV (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib3dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glVertexAttrib3dvNV (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib3fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glVertexAttrib3fvNV (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib3sNV (GLuint index, GLshort x, GLshort y, GLshort z); +GLAPI void APIENTRY glVertexAttrib3svNV (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glVertexAttrib4dvNV (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib4fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glVertexAttrib4fvNV (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib4sNV (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void APIENTRY glVertexAttrib4svNV (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4ubNV (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +GLAPI void APIENTRY glVertexAttrib4ubvNV (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttribs1dvNV (GLuint index, GLsizei count, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribs1fvNV (GLuint index, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glVertexAttribs1svNV (GLuint index, GLsizei count, const GLshort *v); +GLAPI void APIENTRY glVertexAttribs2dvNV (GLuint index, GLsizei count, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribs2fvNV (GLuint index, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glVertexAttribs2svNV (GLuint index, GLsizei count, const GLshort *v); +GLAPI void APIENTRY glVertexAttribs3dvNV (GLuint index, GLsizei count, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribs3fvNV (GLuint index, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glVertexAttribs3svNV (GLuint index, GLsizei count, const GLshort *v); +GLAPI void APIENTRY glVertexAttribs4dvNV (GLuint index, GLsizei count, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribs4fvNV (GLuint index, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glVertexAttribs4svNV (GLuint index, GLsizei count, const GLshort *v); +GLAPI void APIENTRY glVertexAttribs4ubvNV (GLuint index, GLsizei count, const GLubyte *v); +#endif +#endif /* GL_NV_vertex_program */ + +#ifndef GL_NV_vertex_program1_1 +#define GL_NV_vertex_program1_1 1 +#endif /* GL_NV_vertex_program1_1 */ + +#ifndef GL_NV_vertex_program2 +#define GL_NV_vertex_program2 1 +#endif /* GL_NV_vertex_program2 */ + +#ifndef GL_NV_vertex_program2_option +#define GL_NV_vertex_program2_option 1 +#endif /* GL_NV_vertex_program2_option */ + +#ifndef GL_NV_vertex_program3 +#define GL_NV_vertex_program3 1 +#endif /* GL_NV_vertex_program3 */ + +#ifndef GL_NV_vertex_program4 +#define GL_NV_vertex_program4 1 +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD +#endif /* GL_NV_vertex_program4 */ + +#ifndef GL_NV_video_capture +#define GL_NV_video_capture 1 +#define GL_VIDEO_BUFFER_NV 0x9020 +#define GL_VIDEO_BUFFER_BINDING_NV 0x9021 +#define GL_FIELD_UPPER_NV 0x9022 +#define GL_FIELD_LOWER_NV 0x9023 +#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024 +#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025 +#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026 +#define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027 +#define GL_VIDEO_BUFFER_PITCH_NV 0x9028 +#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029 +#define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A +#define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B +#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C +#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D +#define GL_PARTIAL_SUCCESS_NV 0x902E +#define GL_SUCCESS_NV 0x902F +#define GL_FAILURE_NV 0x9030 +#define GL_YCBYCR8_422_NV 0x9031 +#define GL_YCBAYCR8A_4224_NV 0x9032 +#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033 +#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034 +#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035 +#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036 +#define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037 +#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038 +#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039 +#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A +#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B +#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C +typedef void (APIENTRYP PFNGLBEGINVIDEOCAPTURENVPROC) (GLuint video_capture_slot); +typedef void (APIENTRYP PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); +typedef void (APIENTRYP PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); +typedef void (APIENTRYP PFNGLENDVIDEOCAPTURENVPROC) (GLuint video_capture_slot); +typedef void (APIENTRYP PFNGLGETVIDEOCAPTUREIVNVPROC) (GLuint video_capture_slot, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params); +typedef GLenum (APIENTRYP PFNGLVIDEOCAPTURENVPROC) (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time); +typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBeginVideoCaptureNV (GLuint video_capture_slot); +GLAPI void APIENTRY glBindVideoCaptureStreamBufferNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); +GLAPI void APIENTRY glBindVideoCaptureStreamTextureNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); +GLAPI void APIENTRY glEndVideoCaptureNV (GLuint video_capture_slot); +GLAPI void APIENTRY glGetVideoCaptureivNV (GLuint video_capture_slot, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVideoCaptureStreamivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVideoCaptureStreamfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetVideoCaptureStreamdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params); +GLAPI GLenum APIENTRY glVideoCaptureNV (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time); +GLAPI void APIENTRY glVideoCaptureStreamParameterivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params); +GLAPI void APIENTRY glVideoCaptureStreamParameterfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glVideoCaptureStreamParameterdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params); +#endif +#endif /* GL_NV_video_capture */ + +#ifndef GL_NV_viewport_array2 +#define GL_NV_viewport_array2 1 +#endif /* GL_NV_viewport_array2 */ + +#ifndef GL_NV_viewport_swizzle +#define GL_NV_viewport_swizzle 1 +#define GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV 0x9350 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV 0x9351 +#define GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV 0x9352 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV 0x9353 +#define GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV 0x9354 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV 0x9355 +#define GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV 0x9356 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV 0x9357 +#define GL_VIEWPORT_SWIZZLE_X_NV 0x9358 +#define GL_VIEWPORT_SWIZZLE_Y_NV 0x9359 +#define GL_VIEWPORT_SWIZZLE_Z_NV 0x935A +#define GL_VIEWPORT_SWIZZLE_W_NV 0x935B +typedef void (APIENTRYP PFNGLVIEWPORTSWIZZLENVPROC) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glViewportSwizzleNV (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); +#endif +#endif /* GL_NV_viewport_swizzle */ + +#ifndef GL_OML_interlace +#define GL_OML_interlace 1 +#define GL_INTERLACE_OML 0x8980 +#define GL_INTERLACE_READ_OML 0x8981 +#endif /* GL_OML_interlace */ + +#ifndef GL_OML_resample +#define GL_OML_resample 1 +#define GL_PACK_RESAMPLE_OML 0x8984 +#define GL_UNPACK_RESAMPLE_OML 0x8985 +#define GL_RESAMPLE_REPLICATE_OML 0x8986 +#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 +#define GL_RESAMPLE_AVERAGE_OML 0x8988 +#define GL_RESAMPLE_DECIMATE_OML 0x8989 +#endif /* GL_OML_resample */ + +#ifndef GL_OML_subsample +#define GL_OML_subsample 1 +#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 +#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 +#endif /* GL_OML_subsample */ + +#ifndef GL_OVR_multiview +#define GL_OVR_multiview 1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR 0x9630 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR 0x9632 +#define GL_MAX_VIEWS_OVR 0x9631 +#define GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR 0x9633 +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFramebufferTextureMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); +#endif +#endif /* GL_OVR_multiview */ + +#ifndef GL_OVR_multiview2 +#define GL_OVR_multiview2 1 +#endif /* GL_OVR_multiview2 */ + +#ifndef GL_PGI_misc_hints +#define GL_PGI_misc_hints 1 +#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8 +#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD +#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE +#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202 +#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203 +#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204 +#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C +#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D +#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E +#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F +#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210 +#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211 +#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216 +#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217 +#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218 +#define GL_FULL_STIPPLE_HINT_PGI 0x1A219 +#define GL_CLIP_NEAR_HINT_PGI 0x1A220 +#define GL_CLIP_FAR_HINT_PGI 0x1A221 +#define GL_WIDE_LINE_HINT_PGI 0x1A222 +#define GL_BACK_NORMALS_HINT_PGI 0x1A223 +typedef void (APIENTRYP PFNGLHINTPGIPROC) (GLenum target, GLint mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glHintPGI (GLenum target, GLint mode); +#endif +#endif /* GL_PGI_misc_hints */ + +#ifndef GL_PGI_vertex_hints +#define GL_PGI_vertex_hints 1 +#define GL_VERTEX_DATA_HINT_PGI 0x1A22A +#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B +#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C +#define GL_MAX_VERTEX_HINT_PGI 0x1A22D +#define GL_COLOR3_BIT_PGI 0x00010000 +#define GL_COLOR4_BIT_PGI 0x00020000 +#define GL_EDGEFLAG_BIT_PGI 0x00040000 +#define GL_INDEX_BIT_PGI 0x00080000 +#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 +#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 +#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 +#define GL_MAT_EMISSION_BIT_PGI 0x00800000 +#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 +#define GL_MAT_SHININESS_BIT_PGI 0x02000000 +#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 +#define GL_NORMAL_BIT_PGI 0x08000000 +#define GL_TEXCOORD1_BIT_PGI 0x10000000 +#define GL_TEXCOORD2_BIT_PGI 0x20000000 +#define GL_TEXCOORD3_BIT_PGI 0x40000000 +#define GL_TEXCOORD4_BIT_PGI 0x80000000 +#define GL_VERTEX23_BIT_PGI 0x00000004 +#define GL_VERTEX4_BIT_PGI 0x00000008 +#endif /* GL_PGI_vertex_hints */ + +#ifndef GL_REND_screen_coordinates +#define GL_REND_screen_coordinates 1 +#define GL_SCREEN_COORDINATES_REND 0x8490 +#define GL_INVERTED_SCREEN_W_REND 0x8491 +#endif /* GL_REND_screen_coordinates */ + +#ifndef GL_S3_s3tc +#define GL_S3_s3tc 1 +#define GL_RGB_S3TC 0x83A0 +#define GL_RGB4_S3TC 0x83A1 +#define GL_RGBA_S3TC 0x83A2 +#define GL_RGBA4_S3TC 0x83A3 +#define GL_RGBA_DXT5_S3TC 0x83A4 +#define GL_RGBA4_DXT5_S3TC 0x83A5 +#endif /* GL_S3_s3tc */ + +#ifndef GL_SGIS_detail_texture +#define GL_SGIS_detail_texture 1 +#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095 +#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096 +#define GL_LINEAR_DETAIL_SGIS 0x8097 +#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098 +#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099 +#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A +#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B +#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C +typedef void (APIENTRYP PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); +typedef void (APIENTRYP PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDetailTexFuncSGIS (GLenum target, GLsizei n, const GLfloat *points); +GLAPI void APIENTRY glGetDetailTexFuncSGIS (GLenum target, GLfloat *points); +#endif +#endif /* GL_SGIS_detail_texture */ + +#ifndef GL_SGIS_fog_function +#define GL_SGIS_fog_function 1 +#define GL_FOG_FUNC_SGIS 0x812A +#define GL_FOG_FUNC_POINTS_SGIS 0x812B +#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C +typedef void (APIENTRYP PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points); +typedef void (APIENTRYP PFNGLGETFOGFUNCSGISPROC) (GLfloat *points); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFogFuncSGIS (GLsizei n, const GLfloat *points); +GLAPI void APIENTRY glGetFogFuncSGIS (GLfloat *points); +#endif +#endif /* GL_SGIS_fog_function */ + +#ifndef GL_SGIS_generate_mipmap +#define GL_SGIS_generate_mipmap 1 +#define GL_GENERATE_MIPMAP_SGIS 0x8191 +#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 +#endif /* GL_SGIS_generate_mipmap */ + +#ifndef GL_SGIS_multisample +#define GL_SGIS_multisample 1 +#define GL_MULTISAMPLE_SGIS 0x809D +#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F +#define GL_SAMPLE_MASK_SGIS 0x80A0 +#define GL_1PASS_SGIS 0x80A1 +#define GL_2PASS_0_SGIS 0x80A2 +#define GL_2PASS_1_SGIS 0x80A3 +#define GL_4PASS_0_SGIS 0x80A4 +#define GL_4PASS_1_SGIS 0x80A5 +#define GL_4PASS_2_SGIS 0x80A6 +#define GL_4PASS_3_SGIS 0x80A7 +#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 +#define GL_SAMPLES_SGIS 0x80A9 +#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA +#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB +#define GL_SAMPLE_PATTERN_SGIS 0x80AC +typedef void (APIENTRYP PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRYP PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSampleMaskSGIS (GLclampf value, GLboolean invert); +GLAPI void APIENTRY glSamplePatternSGIS (GLenum pattern); +#endif +#endif /* GL_SGIS_multisample */ + +#ifndef GL_SGIS_pixel_texture +#define GL_SGIS_pixel_texture 1 +#define GL_PIXEL_TEXTURE_SGIS 0x8353 +#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354 +#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355 +#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356 +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelTexGenParameteriSGIS (GLenum pname, GLint param); +GLAPI void APIENTRY glPixelTexGenParameterivSGIS (GLenum pname, const GLint *params); +GLAPI void APIENTRY glPixelTexGenParameterfSGIS (GLenum pname, GLfloat param); +GLAPI void APIENTRY glPixelTexGenParameterfvSGIS (GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS (GLenum pname, GLint *params); +GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS (GLenum pname, GLfloat *params); +#endif +#endif /* GL_SGIS_pixel_texture */ + +#ifndef GL_SGIS_point_line_texgen +#define GL_SGIS_point_line_texgen 1 +#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 +#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 +#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 +#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 +#define GL_EYE_POINT_SGIS 0x81F4 +#define GL_OBJECT_POINT_SGIS 0x81F5 +#define GL_EYE_LINE_SGIS 0x81F6 +#define GL_OBJECT_LINE_SGIS 0x81F7 +#endif /* GL_SGIS_point_line_texgen */ + +#ifndef GL_SGIS_point_parameters +#define GL_SGIS_point_parameters 1 +#define GL_POINT_SIZE_MIN_SGIS 0x8126 +#define GL_POINT_SIZE_MAX_SGIS 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 +#define GL_DISTANCE_ATTENUATION_SGIS 0x8129 +typedef void (APIENTRYP PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPointParameterfSGIS (GLenum pname, GLfloat param); +GLAPI void APIENTRY glPointParameterfvSGIS (GLenum pname, const GLfloat *params); +#endif +#endif /* GL_SGIS_point_parameters */ + +#ifndef GL_SGIS_sharpen_texture +#define GL_SGIS_sharpen_texture 1 +#define GL_LINEAR_SHARPEN_SGIS 0x80AD +#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE +#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF +#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0 +typedef void (APIENTRYP PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); +typedef void (APIENTRYP PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSharpenTexFuncSGIS (GLenum target, GLsizei n, const GLfloat *points); +GLAPI void APIENTRY glGetSharpenTexFuncSGIS (GLenum target, GLfloat *points); +#endif +#endif /* GL_SGIS_sharpen_texture */ + +#ifndef GL_SGIS_texture4D +#define GL_SGIS_texture4D 1 +#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130 +#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131 +#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132 +#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133 +#define GL_TEXTURE_4D_SGIS 0x8134 +#define GL_PROXY_TEXTURE_4D_SGIS 0x8135 +#define GL_TEXTURE_4DSIZE_SGIS 0x8136 +#define GL_TEXTURE_WRAP_Q_SGIS 0x8137 +#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138 +#define GL_TEXTURE_4D_BINDING_SGIS 0x814F +typedef void (APIENTRYP PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const void *pixels); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexImage4DSGIS (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI void APIENTRY glTexSubImage4DSGIS (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const void *pixels); +#endif +#endif /* GL_SGIS_texture4D */ + +#ifndef GL_SGIS_texture_border_clamp +#define GL_SGIS_texture_border_clamp 1 +#define GL_CLAMP_TO_BORDER_SGIS 0x812D +#endif /* GL_SGIS_texture_border_clamp */ + +#ifndef GL_SGIS_texture_color_mask +#define GL_SGIS_texture_color_mask 1 +#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF +typedef void (APIENTRYP PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTextureColorMaskSGIS (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +#endif +#endif /* GL_SGIS_texture_color_mask */ + +#ifndef GL_SGIS_texture_edge_clamp +#define GL_SGIS_texture_edge_clamp 1 +#define GL_CLAMP_TO_EDGE_SGIS 0x812F +#endif /* GL_SGIS_texture_edge_clamp */ + +#ifndef GL_SGIS_texture_filter4 +#define GL_SGIS_texture_filter4 1 +#define GL_FILTER4_SGIS 0x8146 +#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147 +typedef void (APIENTRYP PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights); +typedef void (APIENTRYP PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetTexFilterFuncSGIS (GLenum target, GLenum filter, GLfloat *weights); +GLAPI void APIENTRY glTexFilterFuncSGIS (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); +#endif +#endif /* GL_SGIS_texture_filter4 */ + +#ifndef GL_SGIS_texture_lod +#define GL_SGIS_texture_lod 1 +#define GL_TEXTURE_MIN_LOD_SGIS 0x813A +#define GL_TEXTURE_MAX_LOD_SGIS 0x813B +#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C +#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D +#endif /* GL_SGIS_texture_lod */ + +#ifndef GL_SGIS_texture_select +#define GL_SGIS_texture_select 1 +#define GL_DUAL_ALPHA4_SGIS 0x8110 +#define GL_DUAL_ALPHA8_SGIS 0x8111 +#define GL_DUAL_ALPHA12_SGIS 0x8112 +#define GL_DUAL_ALPHA16_SGIS 0x8113 +#define GL_DUAL_LUMINANCE4_SGIS 0x8114 +#define GL_DUAL_LUMINANCE8_SGIS 0x8115 +#define GL_DUAL_LUMINANCE12_SGIS 0x8116 +#define GL_DUAL_LUMINANCE16_SGIS 0x8117 +#define GL_DUAL_INTENSITY4_SGIS 0x8118 +#define GL_DUAL_INTENSITY8_SGIS 0x8119 +#define GL_DUAL_INTENSITY12_SGIS 0x811A +#define GL_DUAL_INTENSITY16_SGIS 0x811B +#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C +#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D +#define GL_QUAD_ALPHA4_SGIS 0x811E +#define GL_QUAD_ALPHA8_SGIS 0x811F +#define GL_QUAD_LUMINANCE4_SGIS 0x8120 +#define GL_QUAD_LUMINANCE8_SGIS 0x8121 +#define GL_QUAD_INTENSITY4_SGIS 0x8122 +#define GL_QUAD_INTENSITY8_SGIS 0x8123 +#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124 +#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125 +#endif /* GL_SGIS_texture_select */ + +#ifndef GL_SGIX_async +#define GL_SGIX_async 1 +#define GL_ASYNC_MARKER_SGIX 0x8329 +typedef void (APIENTRYP PFNGLASYNCMARKERSGIXPROC) (GLuint marker); +typedef GLint (APIENTRYP PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp); +typedef GLint (APIENTRYP PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp); +typedef GLuint (APIENTRYP PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); +typedef void (APIENTRYP PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); +typedef GLboolean (APIENTRYP PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glAsyncMarkerSGIX (GLuint marker); +GLAPI GLint APIENTRY glFinishAsyncSGIX (GLuint *markerp); +GLAPI GLint APIENTRY glPollAsyncSGIX (GLuint *markerp); +GLAPI GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei range); +GLAPI void APIENTRY glDeleteAsyncMarkersSGIX (GLuint marker, GLsizei range); +GLAPI GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint marker); +#endif +#endif /* GL_SGIX_async */ + +#ifndef GL_SGIX_async_histogram +#define GL_SGIX_async_histogram 1 +#define GL_ASYNC_HISTOGRAM_SGIX 0x832C +#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D +#endif /* GL_SGIX_async_histogram */ + +#ifndef GL_SGIX_async_pixel +#define GL_SGIX_async_pixel 1 +#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C +#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D +#define GL_ASYNC_READ_PIXELS_SGIX 0x835E +#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F +#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 +#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 +#endif /* GL_SGIX_async_pixel */ + +#ifndef GL_SGIX_blend_alpha_minmax +#define GL_SGIX_blend_alpha_minmax 1 +#define GL_ALPHA_MIN_SGIX 0x8320 +#define GL_ALPHA_MAX_SGIX 0x8321 +#endif /* GL_SGIX_blend_alpha_minmax */ + +#ifndef GL_SGIX_calligraphic_fragment +#define GL_SGIX_calligraphic_fragment 1 +#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183 +#endif /* GL_SGIX_calligraphic_fragment */ + +#ifndef GL_SGIX_clipmap +#define GL_SGIX_clipmap 1 +#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170 +#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171 +#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172 +#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173 +#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174 +#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175 +#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176 +#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177 +#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178 +#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D +#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E +#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F +#endif /* GL_SGIX_clipmap */ + +#ifndef GL_SGIX_convolution_accuracy +#define GL_SGIX_convolution_accuracy 1 +#define GL_CONVOLUTION_HINT_SGIX 0x8316 +#endif /* GL_SGIX_convolution_accuracy */ + +#ifndef GL_SGIX_depth_pass_instrument +#define GL_SGIX_depth_pass_instrument 1 +#endif /* GL_SGIX_depth_pass_instrument */ + +#ifndef GL_SGIX_depth_texture +#define GL_SGIX_depth_texture 1 +#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 +#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 +#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 +#endif /* GL_SGIX_depth_texture */ + +#ifndef GL_SGIX_flush_raster +#define GL_SGIX_flush_raster 1 +typedef void (APIENTRYP PFNGLFLUSHRASTERSGIXPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFlushRasterSGIX (void); +#endif +#endif /* GL_SGIX_flush_raster */ + +#ifndef GL_SGIX_fog_offset +#define GL_SGIX_fog_offset 1 +#define GL_FOG_OFFSET_SGIX 0x8198 +#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 +#endif /* GL_SGIX_fog_offset */ + +#ifndef GL_SGIX_fragment_lighting +#define GL_SGIX_fragment_lighting 1 +#define GL_FRAGMENT_LIGHTING_SGIX 0x8400 +#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401 +#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402 +#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403 +#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404 +#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405 +#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406 +#define GL_LIGHT_ENV_MODE_SGIX 0x8407 +#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408 +#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409 +#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A +#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B +#define GL_FRAGMENT_LIGHT0_SGIX 0x840C +#define GL_FRAGMENT_LIGHT1_SGIX 0x840D +#define GL_FRAGMENT_LIGHT2_SGIX 0x840E +#define GL_FRAGMENT_LIGHT3_SGIX 0x840F +#define GL_FRAGMENT_LIGHT4_SGIX 0x8410 +#define GL_FRAGMENT_LIGHT5_SGIX 0x8411 +#define GL_FRAGMENT_LIGHT6_SGIX 0x8412 +#define GL_FRAGMENT_LIGHT7_SGIX 0x8413 +typedef void (APIENTRYP PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum face, GLenum mode); +GLAPI void APIENTRY glFragmentLightfSGIX (GLenum light, GLenum pname, GLfloat param); +GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum light, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glFragmentLightiSGIX (GLenum light, GLenum pname, GLint param); +GLAPI void APIENTRY glFragmentLightivSGIX (GLenum light, GLenum pname, const GLint *params); +GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum pname, GLfloat param); +GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum pname, GLint param); +GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum pname, const GLint *params); +GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum face, GLenum pname, GLfloat param); +GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum face, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum face, GLenum pname, GLint param); +GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum face, GLenum pname, const GLint *params); +GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum light, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum light, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum face, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum face, GLenum pname, GLint *params); +GLAPI void APIENTRY glLightEnviSGIX (GLenum pname, GLint param); +#endif +#endif /* GL_SGIX_fragment_lighting */ + +#ifndef GL_SGIX_framezoom +#define GL_SGIX_framezoom 1 +#define GL_FRAMEZOOM_SGIX 0x818B +#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C +#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D +typedef void (APIENTRYP PFNGLFRAMEZOOMSGIXPROC) (GLint factor); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFrameZoomSGIX (GLint factor); +#endif +#endif /* GL_SGIX_framezoom */ + +#ifndef GL_SGIX_igloo_interface +#define GL_SGIX_igloo_interface 1 +typedef void (APIENTRYP PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const void *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glIglooInterfaceSGIX (GLenum pname, const void *params); +#endif +#endif /* GL_SGIX_igloo_interface */ + +#ifndef GL_SGIX_instruments +#define GL_SGIX_instruments 1 +#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180 +#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181 +typedef GLint (APIENTRYP PFNGLGETINSTRUMENTSSGIXPROC) (void); +typedef void (APIENTRYP PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer); +typedef GLint (APIENTRYP PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p); +typedef void (APIENTRYP PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker); +typedef void (APIENTRYP PFNGLSTARTINSTRUMENTSSGIXPROC) (void); +typedef void (APIENTRYP PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLint APIENTRY glGetInstrumentsSGIX (void); +GLAPI void APIENTRY glInstrumentsBufferSGIX (GLsizei size, GLint *buffer); +GLAPI GLint APIENTRY glPollInstrumentsSGIX (GLint *marker_p); +GLAPI void APIENTRY glReadInstrumentsSGIX (GLint marker); +GLAPI void APIENTRY glStartInstrumentsSGIX (void); +GLAPI void APIENTRY glStopInstrumentsSGIX (GLint marker); +#endif +#endif /* GL_SGIX_instruments */ + +#ifndef GL_SGIX_interlace +#define GL_SGIX_interlace 1 +#define GL_INTERLACE_SGIX 0x8094 +#endif /* GL_SGIX_interlace */ + +#ifndef GL_SGIX_ir_instrument1 +#define GL_SGIX_ir_instrument1 1 +#define GL_IR_INSTRUMENT1_SGIX 0x817F +#endif /* GL_SGIX_ir_instrument1 */ + +#ifndef GL_SGIX_list_priority +#define GL_SGIX_list_priority 1 +#define GL_LIST_PRIORITY_SGIX 0x8182 +typedef void (APIENTRYP PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetListParameterfvSGIX (GLuint list, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetListParameterivSGIX (GLuint list, GLenum pname, GLint *params); +GLAPI void APIENTRY glListParameterfSGIX (GLuint list, GLenum pname, GLfloat param); +GLAPI void APIENTRY glListParameterfvSGIX (GLuint list, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glListParameteriSGIX (GLuint list, GLenum pname, GLint param); +GLAPI void APIENTRY glListParameterivSGIX (GLuint list, GLenum pname, const GLint *params); +#endif +#endif /* GL_SGIX_list_priority */ + +#ifndef GL_SGIX_pixel_texture +#define GL_SGIX_pixel_texture 1 +#define GL_PIXEL_TEX_GEN_SGIX 0x8139 +#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B +typedef void (APIENTRYP PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glPixelTexGenSGIX (GLenum mode); +#endif +#endif /* GL_SGIX_pixel_texture */ + +#ifndef GL_SGIX_pixel_tiles +#define GL_SGIX_pixel_tiles 1 +#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E +#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F +#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140 +#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141 +#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142 +#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143 +#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144 +#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145 +#endif /* GL_SGIX_pixel_tiles */ + +#ifndef GL_SGIX_polynomial_ffd +#define GL_SGIX_polynomial_ffd 1 +#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001 +#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002 +#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194 +#define GL_TEXTURE_DEFORMATION_SGIX 0x8195 +#define GL_DEFORMATIONS_MASK_SGIX 0x8196 +#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197 +typedef void (APIENTRYP PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); +typedef void (APIENTRYP PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); +typedef void (APIENTRYP PFNGLDEFORMSGIXPROC) (GLbitfield mask); +typedef void (APIENTRYP PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDeformationMap3dSGIX (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); +GLAPI void APIENTRY glDeformationMap3fSGIX (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); +GLAPI void APIENTRY glDeformSGIX (GLbitfield mask); +GLAPI void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield mask); +#endif +#endif /* GL_SGIX_polynomial_ffd */ + +#ifndef GL_SGIX_reference_plane +#define GL_SGIX_reference_plane 1 +#define GL_REFERENCE_PLANE_SGIX 0x817D +#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E +typedef void (APIENTRYP PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glReferencePlaneSGIX (const GLdouble *equation); +#endif +#endif /* GL_SGIX_reference_plane */ + +#ifndef GL_SGIX_resample +#define GL_SGIX_resample 1 +#define GL_PACK_RESAMPLE_SGIX 0x842E +#define GL_UNPACK_RESAMPLE_SGIX 0x842F +#define GL_RESAMPLE_REPLICATE_SGIX 0x8433 +#define GL_RESAMPLE_ZERO_FILL_SGIX 0x8434 +#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 +#endif /* GL_SGIX_resample */ + +#ifndef GL_SGIX_scalebias_hint +#define GL_SGIX_scalebias_hint 1 +#define GL_SCALEBIAS_HINT_SGIX 0x8322 +#endif /* GL_SGIX_scalebias_hint */ + +#ifndef GL_SGIX_shadow +#define GL_SGIX_shadow 1 +#define GL_TEXTURE_COMPARE_SGIX 0x819A +#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B +#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C +#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D +#endif /* GL_SGIX_shadow */ + +#ifndef GL_SGIX_shadow_ambient +#define GL_SGIX_shadow_ambient 1 +#define GL_SHADOW_AMBIENT_SGIX 0x80BF +#endif /* GL_SGIX_shadow_ambient */ + +#ifndef GL_SGIX_sprite +#define GL_SGIX_sprite 1 +#define GL_SPRITE_SGIX 0x8148 +#define GL_SPRITE_MODE_SGIX 0x8149 +#define GL_SPRITE_AXIS_SGIX 0x814A +#define GL_SPRITE_TRANSLATION_SGIX 0x814B +#define GL_SPRITE_AXIAL_SGIX 0x814C +#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D +#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E +typedef void (APIENTRYP PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glSpriteParameterfSGIX (GLenum pname, GLfloat param); +GLAPI void APIENTRY glSpriteParameterfvSGIX (GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glSpriteParameteriSGIX (GLenum pname, GLint param); +GLAPI void APIENTRY glSpriteParameterivSGIX (GLenum pname, const GLint *params); +#endif +#endif /* GL_SGIX_sprite */ + +#ifndef GL_SGIX_subsample +#define GL_SGIX_subsample 1 +#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 +#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 +#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 +#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 +#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 +#endif /* GL_SGIX_subsample */ + +#ifndef GL_SGIX_tag_sample_buffer +#define GL_SGIX_tag_sample_buffer 1 +typedef void (APIENTRYP PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTagSampleBufferSGIX (void); +#endif +#endif /* GL_SGIX_tag_sample_buffer */ + +#ifndef GL_SGIX_texture_add_env +#define GL_SGIX_texture_add_env 1 +#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE +#endif /* GL_SGIX_texture_add_env */ + +#ifndef GL_SGIX_texture_coordinate_clamp +#define GL_SGIX_texture_coordinate_clamp 1 +#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 +#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A +#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B +#endif /* GL_SGIX_texture_coordinate_clamp */ + +#ifndef GL_SGIX_texture_lod_bias +#define GL_SGIX_texture_lod_bias 1 +#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E +#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F +#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190 +#endif /* GL_SGIX_texture_lod_bias */ + +#ifndef GL_SGIX_texture_multi_buffer +#define GL_SGIX_texture_multi_buffer 1 +#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E +#endif /* GL_SGIX_texture_multi_buffer */ + +#ifndef GL_SGIX_texture_scale_bias +#define GL_SGIX_texture_scale_bias 1 +#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 +#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A +#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B +#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C +#endif /* GL_SGIX_texture_scale_bias */ + +#ifndef GL_SGIX_vertex_preclip +#define GL_SGIX_vertex_preclip 1 +#define GL_VERTEX_PRECLIP_SGIX 0x83EE +#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF +#endif /* GL_SGIX_vertex_preclip */ + +#ifndef GL_SGIX_ycrcb +#define GL_SGIX_ycrcb 1 +#define GL_YCRCB_422_SGIX 0x81BB +#define GL_YCRCB_444_SGIX 0x81BC +#endif /* GL_SGIX_ycrcb */ + +#ifndef GL_SGIX_ycrcb_subsample +#define GL_SGIX_ycrcb_subsample 1 +#endif /* GL_SGIX_ycrcb_subsample */ + +#ifndef GL_SGIX_ycrcba +#define GL_SGIX_ycrcba 1 +#define GL_YCRCB_SGIX 0x8318 +#define GL_YCRCBA_SGIX 0x8319 +#endif /* GL_SGIX_ycrcba */ + +#ifndef GL_SGI_color_matrix +#define GL_SGI_color_matrix 1 +#define GL_COLOR_MATRIX_SGI 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB +#endif /* GL_SGI_color_matrix */ + +#ifndef GL_SGI_color_table +#define GL_SGI_color_table 1 +#define GL_COLOR_TABLE_SGI 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 +#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 +#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 +#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 +#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 +#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF +typedef void (APIENTRYP PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, void *table); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColorTableSGI (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); +GLAPI void APIENTRY glColorTableParameterfvSGI (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glColorTableParameterivSGI (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glCopyColorTableSGI (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glGetColorTableSGI (GLenum target, GLenum format, GLenum type, void *table); +GLAPI void APIENTRY glGetColorTableParameterfvSGI (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetColorTableParameterivSGI (GLenum target, GLenum pname, GLint *params); +#endif +#endif /* GL_SGI_color_table */ + +#ifndef GL_SGI_texture_color_table +#define GL_SGI_texture_color_table 1 +#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC +#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD +#endif /* GL_SGI_texture_color_table */ + +#ifndef GL_SUNX_constant_data +#define GL_SUNX_constant_data 1 +#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 +#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 +typedef void (APIENTRYP PFNGLFINISHTEXTURESUNXPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glFinishTextureSUNX (void); +#endif +#endif /* GL_SUNX_constant_data */ + +#ifndef GL_SUN_convolution_border_modes +#define GL_SUN_convolution_border_modes 1 +#define GL_WRAP_BORDER_SUN 0x81D4 +#endif /* GL_SUN_convolution_border_modes */ + +#ifndef GL_SUN_global_alpha +#define GL_SUN_global_alpha 1 +#define GL_GLOBAL_ALPHA_SUN 0x81D9 +#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); +typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGlobalAlphaFactorbSUN (GLbyte factor); +GLAPI void APIENTRY glGlobalAlphaFactorsSUN (GLshort factor); +GLAPI void APIENTRY glGlobalAlphaFactoriSUN (GLint factor); +GLAPI void APIENTRY glGlobalAlphaFactorfSUN (GLfloat factor); +GLAPI void APIENTRY glGlobalAlphaFactordSUN (GLdouble factor); +GLAPI void APIENTRY glGlobalAlphaFactorubSUN (GLubyte factor); +GLAPI void APIENTRY glGlobalAlphaFactorusSUN (GLushort factor); +GLAPI void APIENTRY glGlobalAlphaFactoruiSUN (GLuint factor); +#endif +#endif /* GL_SUN_global_alpha */ + +#ifndef GL_SUN_mesh_array +#define GL_SUN_mesh_array 1 +#define GL_QUAD_MESH_SUN 0x8614 +#define GL_TRIANGLE_MESH_SUN 0x8615 +typedef void (APIENTRYP PFNGLDRAWMESHARRAYSSUNPROC) (GLenum mode, GLint first, GLsizei count, GLsizei width); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawMeshArraysSUN (GLenum mode, GLint first, GLsizei count, GLsizei width); +#endif +#endif /* GL_SUN_mesh_array */ + +#ifndef GL_SUN_slice_accum +#define GL_SUN_slice_accum 1 +#define GL_SLICE_ACCUM_SUN 0x85CC +#endif /* GL_SUN_slice_accum */ + +#ifndef GL_SUN_triangle_list +#define GL_SUN_triangle_list 1 +#define GL_RESTART_SUN 0x0001 +#define GL_REPLACE_MIDDLE_SUN 0x0002 +#define GL_REPLACE_OLDEST_SUN 0x0003 +#define GL_TRIANGLE_LIST_SUN 0x81D7 +#define GL_REPLACEMENT_CODE_SUN 0x81D8 +#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 +#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 +#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 +#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 +#define GL_R1UI_V3F_SUN 0x85C4 +#define GL_R1UI_C4UB_V3F_SUN 0x85C5 +#define GL_R1UI_C3F_V3F_SUN 0x85C6 +#define GL_R1UI_N3F_V3F_SUN 0x85C7 +#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 +#define GL_R1UI_T2F_V3F_SUN 0x85C9 +#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA +#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const void **pointer); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glReplacementCodeuiSUN (GLuint code); +GLAPI void APIENTRY glReplacementCodeusSUN (GLushort code); +GLAPI void APIENTRY glReplacementCodeubSUN (GLubyte code); +GLAPI void APIENTRY glReplacementCodeuivSUN (const GLuint *code); +GLAPI void APIENTRY glReplacementCodeusvSUN (const GLushort *code); +GLAPI void APIENTRY glReplacementCodeubvSUN (const GLubyte *code); +GLAPI void APIENTRY glReplacementCodePointerSUN (GLenum type, GLsizei stride, const void **pointer); +#endif +#endif /* GL_SUN_triangle_list */ + +#ifndef GL_SUN_vertex +#define GL_SUN_vertex 1 +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint *rc, const GLubyte *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glColor4ubVertex2fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); +GLAPI void APIENTRY glColor4ubVertex2fvSUN (const GLubyte *c, const GLfloat *v); +GLAPI void APIENTRY glColor4ubVertex3fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glColor4ubVertex3fvSUN (const GLubyte *c, const GLfloat *v); +GLAPI void APIENTRY glColor3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glColor3fVertex3fvSUN (const GLfloat *c, const GLfloat *v); +GLAPI void APIENTRY glNormal3fVertex3fSUN (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glNormal3fVertex3fvSUN (const GLfloat *n, const GLfloat *v); +GLAPI void APIENTRY glColor4fNormal3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glColor4fNormal3fVertex3fvSUN (const GLfloat *c, const GLfloat *n, const GLfloat *v); +GLAPI void APIENTRY glTexCoord2fVertex3fSUN (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glTexCoord2fVertex3fvSUN (const GLfloat *tc, const GLfloat *v); +GLAPI void APIENTRY glTexCoord4fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glTexCoord4fVertex4fvSUN (const GLfloat *tc, const GLfloat *v); +GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fSUN (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *tc, const GLubyte *c, const GLfloat *v); +GLAPI void APIENTRY glTexCoord2fColor3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glTexCoord2fColor3fVertex3fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *v); +GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *tc, const GLfloat *n, const GLfloat *v); +GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +GLAPI void APIENTRY glReplacementCodeuiVertex3fSUN (GLuint rc, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glReplacementCodeuiVertex3fvSUN (const GLuint *rc, const GLfloat *v); +GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN (const GLuint *rc, const GLubyte *c, const GLfloat *v); +GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN (const GLuint *rc, const GLfloat *c, const GLfloat *v); +GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *n, const GLfloat *v); +GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *v); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +#endif +#endif /* GL_SUN_vertex */ + +#ifndef GL_WIN_phong_shading +#define GL_WIN_phong_shading 1 +#define GL_PHONG_WIN 0x80EA +#define GL_PHONG_HINT_WIN 0x80EB +#endif /* GL_WIN_phong_shading */ + +#ifndef GL_WIN_specular_fog +#define GL_WIN_specular_fog 1 +#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC +#endif /* GL_WIN_specular_fog */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/lib/windows/include/SDL2/SDL_opengles.h b/lib/windows/include/SDL2/SDL_opengles.h new file mode 100644 index 0000000..adf6ef7 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_opengles.h @@ -0,0 +1,38 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* + * This is a simple file to encapsulate the OpenGL ES 1.X API headers. + */ + +#include "SDL_config.h" + +#ifdef __IPHONEOS__ +#include +#include +#else +#include +#include +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif diff --git a/lib/windows/include/SDL2/SDL_opengles2.h b/lib/windows/include/SDL2/SDL_opengles2.h new file mode 100644 index 0000000..5514197 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_opengles2.h @@ -0,0 +1,51 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* + * This is a simple file to encapsulate the OpenGL ES 2.0 API headers. + */ + +#include "SDL_config.h" + +#if !defined(_MSC_VER) && !defined(SDL_USE_BUILTIN_OPENGL_DEFINITIONS) + +#ifdef __IPHONEOS__ +#include +#include +#else +#include +#include +#include +#endif + +#else /* _MSC_VER */ + +/* OpenGL ES2 headers for Visual Studio */ +#include "SDL_opengles2_khrplatform.h" +#include "SDL_opengles2_gl2platform.h" +#include "SDL_opengles2_gl2.h" +#include "SDL_opengles2_gl2ext.h" + +#endif /* _MSC_VER */ + +#ifndef APIENTRY +#define APIENTRY GL_APIENTRY +#endif diff --git a/lib/windows/include/SDL2/SDL_opengles2_gl2.h b/lib/windows/include/SDL2/SDL_opengles2_gl2.h new file mode 100644 index 0000000..d13622a --- /dev/null +++ b/lib/windows/include/SDL2/SDL_opengles2_gl2.h @@ -0,0 +1,656 @@ +#ifndef __gles2_gl2_h_ +#define __gles2_gl2_h_ 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright 2013-2020 The Khronos Group Inc. +** SPDX-License-Identifier: MIT +** +** This header is generated from the Khronos OpenGL / OpenGL ES XML +** API Registry. The current version of the Registry, generator scripts +** used to make the header, and the header can be found at +** https://github.com/KhronosGroup/OpenGL-Registry +*/ + +/*#include */ + +#ifndef GL_APIENTRYP +#define GL_APIENTRYP GL_APIENTRY* +#endif + +#ifndef GL_GLES_PROTOTYPES +#define GL_GLES_PROTOTYPES 1 +#endif + +/* Generated on date 20220530 */ + +/* Generated C header for: + * API: gles2 + * Profile: common + * Versions considered: 2\.[0-9] + * Versions emitted: .* + * Default extensions included: None + * Additional extensions included: _nomatch_^ + * Extensions removed: _nomatch_^ + */ + +#ifndef GL_ES_VERSION_2_0 +#define GL_ES_VERSION_2_0 1 +/*#include */ +typedef khronos_int8_t GLbyte; +typedef khronos_float_t GLclampf; +typedef khronos_int32_t GLfixed; +typedef khronos_int16_t GLshort; +typedef khronos_uint16_t GLushort; +typedef void GLvoid; +typedef struct __GLsync *GLsync; +typedef khronos_int64_t GLint64; +typedef khronos_uint64_t GLuint64; +typedef unsigned int GLenum; +typedef unsigned int GLuint; +typedef char GLchar; +typedef khronos_float_t GLfloat; +typedef khronos_ssize_t GLsizeiptr; +typedef khronos_intptr_t GLintptr; +typedef unsigned int GLbitfield; +typedef int GLint; +typedef unsigned char GLboolean; +typedef int GLsizei; +typedef khronos_uint8_t GLubyte; +#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_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_FUNC_ADD 0x8006 +#define GL_BLEND_EQUATION 0x8009 +#define GL_BLEND_EQUATION_RGB 0x8009 +#define GL_BLEND_EQUATION_ALPHA 0x883D +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#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_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_BLEND_COLOR 0x8005 +#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_STREAM_DRAW 0x88E0 +#define GL_STATIC_DRAW 0x88E4 +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_FRONT_AND_BACK 0x0408 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_CULL_FACE 0x0B44 +#define GL_BLEND 0x0BE2 +#define GL_DITHER 0x0BD0 +#define GL_STENCIL_TEST 0x0B90 +#define GL_DEPTH_TEST 0x0B71 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_POLYGON_OFFSET_FILL 0x8037 +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_COVERAGE 0x80A0 +#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_LINE_WIDTH 0x0B21 +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_FUNC 0x0B92 +#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_VALUE_MASK 0x0B93 +#define GL_STENCIL_WRITEMASK 0x0B98 +#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_STENCIL_BACK_REF 0x8CA3 +#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 +#define GL_VIEWPORT 0x0BA2 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_RED_BITS 0x0D52 +#define GL_GREEN_BITS 0x0D53 +#define GL_BLUE_BITS 0x0D54 +#define GL_ALPHA_BITS 0x0D55 +#define GL_DEPTH_BITS 0x0D56 +#define GL_STENCIL_BITS 0x0D57 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 +#define GL_GENERATE_MIPMAP_HINT 0x8192 +#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_FIXED 0x140C +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_ALPHA 0x1906 +#define GL_RGB 0x1907 +#define GL_RGBA 0x1908 +#define GL_LUMINANCE 0x1909 +#define GL_LUMINANCE_ALPHA 0x190A +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_VERTEX_SHADER 0x8B31 +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB +#define GL_MAX_VARYING_VECTORS 0x8DFC +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD +#define GL_SHADER_TYPE 0x8B4F +#define GL_DELETE_STATUS 0x8B80 +#define GL_LINK_STATUS 0x8B82 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_CURRENT_PROGRAM 0x8B8D +#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_KEEP 0x1E00 +#define GL_REPLACE 0x1E01 +#define GL_INCR 0x1E02 +#define GL_DECR 0x1E03 +#define GL_INVERT 0x150A +#define GL_INCR_WRAP 0x8507 +#define GL_DECR_WRAP 0x8508 +#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_TEXTURE 0x1702 +#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_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C +#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_REPEAT 0x2901 +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_MIRRORED_REPEAT 0x8370 +#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_2D 0x8B5E +#define GL_SAMPLER_CUBE 0x8B60 +#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_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F +#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B +#define GL_COMPILE_STATUS 0x8B81 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GL_SHADER_COMPILER 0x8DFA +#define GL_SHADER_BINARY_FORMATS 0x8DF8 +#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 +#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_FRAMEBUFFER 0x8D40 +#define GL_RENDERBUFFER 0x8D41 +#define GL_RGBA4 0x8056 +#define GL_RGB5_A1 0x8057 +#define GL_RGB565 0x8D62 +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#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_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_COLOR_ATTACHMENT0 0x8CE0 +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_STENCIL_ATTACHMENT 0x8D20 +#define GL_NONE 0 +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); +typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); +typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); +typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); +typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); +typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); +typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); +typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); +typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); +typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); +typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); +typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); +typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); +typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); +typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); +typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); +typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); +typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); +typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); +typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); +typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); +typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); +typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); +typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); +typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); +typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); +typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); +typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); +typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); +typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); +typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); +typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); +typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); +typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); +typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); +typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); +typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); +typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); +typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); +typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); +typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); +typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); +typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); +typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); +typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); +typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); +typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); +typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); +typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); +typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); +typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); +typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); +typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); +typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); +typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); +typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); +typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); +typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); +typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); +typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); +typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); +typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); +typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); +typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); +typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); +typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); +typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); +typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); +typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); +typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); +typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); +typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); +typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); +typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); +typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); +typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); +typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); +typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); +typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); +typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); +typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); +typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); +typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); +#if GL_GLES_PROTOTYPES +GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); +GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); +GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); +GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); +GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); +GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); +GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); +GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); +GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); +GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); +GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); +GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); +GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); +GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); +GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); +GL_APICALL void GL_APIENTRY glClearStencil (GLint s); +GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); +GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); +GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); +GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); +GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); +GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); +GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); +GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); +GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); +GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); +GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); +GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); +GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); +GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); +GL_APICALL void GL_APIENTRY glDisable (GLenum cap); +GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); +GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); +GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); +GL_APICALL void GL_APIENTRY glEnable (GLenum cap); +GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); +GL_APICALL void GL_APIENTRY glFinish (void); +GL_APICALL void GL_APIENTRY glFlush (void); +GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); +GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); +GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); +GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); +GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); +GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); +GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); +GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); +GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); +GL_APICALL GLenum GL_APIENTRY glGetError (void); +GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); +GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); +GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); +GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); +GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); +GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); +GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); +GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); +GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); +GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); +GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); +GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); +GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); +GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); +GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); +GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); +GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); +GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); +GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); +GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); +GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); +GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); +GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); +GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); +GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); +GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); +GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); +GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); +GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); +GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); +GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); +GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); +GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); +GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); +GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); +GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); +GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); +GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); +GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); +GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); +GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); +GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); +GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); +GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); +GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); +GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); +GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); +GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); +GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); +GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); +GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); +GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); +GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); +GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); +GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); +GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); +GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); +GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); +GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); +GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); +#endif +#endif /* GL_ES_VERSION_2_0 */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/lib/windows/include/SDL2/SDL_opengles2_gl2ext.h b/lib/windows/include/SDL2/SDL_opengles2_gl2ext.h new file mode 100644 index 0000000..9448ce0 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_opengles2_gl2ext.h @@ -0,0 +1,4033 @@ +#ifndef __gles2_gl2ext_h_ +#define __gles2_gl2ext_h_ 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright 2013-2020 The Khronos Group Inc. +** SPDX-License-Identifier: MIT +** +** This header is generated from the Khronos OpenGL / OpenGL ES XML +** API Registry. The current version of the Registry, generator scripts +** used to make the header, and the header can be found at +** https://github.com/KhronosGroup/OpenGL-Registry +*/ + +#ifndef GL_APIENTRYP +#define GL_APIENTRYP GL_APIENTRY* +#endif + +/* Generated on date 20220530 */ + +/* Generated C header for: + * API: gles2 + * Profile: common + * Versions considered: 2\.[0-9] + * Versions emitted: _nomatch_^ + * Default extensions included: gles2 + * Additional extensions included: _nomatch_^ + * Extensions removed: _nomatch_^ + */ + +#ifndef GL_KHR_blend_equation_advanced +#define GL_KHR_blend_equation_advanced 1 +#define GL_MULTIPLY_KHR 0x9294 +#define GL_SCREEN_KHR 0x9295 +#define GL_OVERLAY_KHR 0x9296 +#define GL_DARKEN_KHR 0x9297 +#define GL_LIGHTEN_KHR 0x9298 +#define GL_COLORDODGE_KHR 0x9299 +#define GL_COLORBURN_KHR 0x929A +#define GL_HARDLIGHT_KHR 0x929B +#define GL_SOFTLIGHT_KHR 0x929C +#define GL_DIFFERENCE_KHR 0x929E +#define GL_EXCLUSION_KHR 0x92A0 +#define GL_HSL_HUE_KHR 0x92AD +#define GL_HSL_SATURATION_KHR 0x92AE +#define GL_HSL_COLOR_KHR 0x92AF +#define GL_HSL_LUMINOSITY_KHR 0x92B0 +typedef void (GL_APIENTRYP PFNGLBLENDBARRIERKHRPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glBlendBarrierKHR (void); +#endif +#endif /* GL_KHR_blend_equation_advanced */ + +#ifndef GL_KHR_blend_equation_advanced_coherent +#define GL_KHR_blend_equation_advanced_coherent 1 +#define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285 +#endif /* GL_KHR_blend_equation_advanced_coherent */ + +#ifndef GL_KHR_context_flush_control +#define GL_KHR_context_flush_control 1 +#define GL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x82FB +#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x82FC +#endif /* GL_KHR_context_flush_control */ + +#ifndef GL_KHR_debug +#define GL_KHR_debug 1 +typedef void (GL_APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +#define GL_SAMPLER 0x82E6 +#define GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR 0x8242 +#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR 0x8243 +#define GL_DEBUG_CALLBACK_FUNCTION_KHR 0x8244 +#define GL_DEBUG_CALLBACK_USER_PARAM_KHR 0x8245 +#define GL_DEBUG_SOURCE_API_KHR 0x8246 +#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR 0x8247 +#define GL_DEBUG_SOURCE_SHADER_COMPILER_KHR 0x8248 +#define GL_DEBUG_SOURCE_THIRD_PARTY_KHR 0x8249 +#define GL_DEBUG_SOURCE_APPLICATION_KHR 0x824A +#define GL_DEBUG_SOURCE_OTHER_KHR 0x824B +#define GL_DEBUG_TYPE_ERROR_KHR 0x824C +#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR 0x824D +#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR 0x824E +#define GL_DEBUG_TYPE_PORTABILITY_KHR 0x824F +#define GL_DEBUG_TYPE_PERFORMANCE_KHR 0x8250 +#define GL_DEBUG_TYPE_OTHER_KHR 0x8251 +#define GL_DEBUG_TYPE_MARKER_KHR 0x8268 +#define GL_DEBUG_TYPE_PUSH_GROUP_KHR 0x8269 +#define GL_DEBUG_TYPE_POP_GROUP_KHR 0x826A +#define GL_DEBUG_SEVERITY_NOTIFICATION_KHR 0x826B +#define GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR 0x826C +#define GL_DEBUG_GROUP_STACK_DEPTH_KHR 0x826D +#define GL_BUFFER_KHR 0x82E0 +#define GL_SHADER_KHR 0x82E1 +#define GL_PROGRAM_KHR 0x82E2 +#define GL_VERTEX_ARRAY_KHR 0x8074 +#define GL_QUERY_KHR 0x82E3 +#define GL_PROGRAM_PIPELINE_KHR 0x82E4 +#define GL_SAMPLER_KHR 0x82E6 +#define GL_MAX_LABEL_LENGTH_KHR 0x82E8 +#define GL_MAX_DEBUG_MESSAGE_LENGTH_KHR 0x9143 +#define GL_MAX_DEBUG_LOGGED_MESSAGES_KHR 0x9144 +#define GL_DEBUG_LOGGED_MESSAGES_KHR 0x9145 +#define GL_DEBUG_SEVERITY_HIGH_KHR 0x9146 +#define GL_DEBUG_SEVERITY_MEDIUM_KHR 0x9147 +#define GL_DEBUG_SEVERITY_LOW_KHR 0x9148 +#define GL_DEBUG_OUTPUT_KHR 0x92E0 +#define GL_CONTEXT_FLAG_DEBUG_BIT_KHR 0x00000002 +#define GL_STACK_OVERFLOW_KHR 0x0503 +#define GL_STACK_UNDERFLOW_KHR 0x0504 +typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLKHRPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTKHRPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKKHRPROC) (GLDEBUGPROCKHR callback, const void *userParam); +typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGKHRPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPKHRPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message); +typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPKHRPROC) (void); +typedef void (GL_APIENTRYP PFNGLOBJECTLABELKHRPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); +typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELKHRPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); +typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei length, const GLchar *label); +typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); +typedef void (GL_APIENTRYP PFNGLGETPOINTERVKHRPROC) (GLenum pname, void **params); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDebugMessageControlKHR (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +GL_APICALL void GL_APIENTRY glDebugMessageInsertKHR (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +GL_APICALL void GL_APIENTRY glDebugMessageCallbackKHR (GLDEBUGPROCKHR callback, const void *userParam); +GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLogKHR (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +GL_APICALL void GL_APIENTRY glPushDebugGroupKHR (GLenum source, GLuint id, GLsizei length, const GLchar *message); +GL_APICALL void GL_APIENTRY glPopDebugGroupKHR (void); +GL_APICALL void GL_APIENTRY glObjectLabelKHR (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); +GL_APICALL void GL_APIENTRY glGetObjectLabelKHR (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); +GL_APICALL void GL_APIENTRY glObjectPtrLabelKHR (const void *ptr, GLsizei length, const GLchar *label); +GL_APICALL void GL_APIENTRY glGetObjectPtrLabelKHR (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); +GL_APICALL void GL_APIENTRY glGetPointervKHR (GLenum pname, void **params); +#endif +#endif /* GL_KHR_debug */ + +#ifndef GL_KHR_no_error +#define GL_KHR_no_error 1 +#define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR 0x00000008 +#endif /* GL_KHR_no_error */ + +#ifndef GL_KHR_parallel_shader_compile +#define GL_KHR_parallel_shader_compile 1 +#define GL_MAX_SHADER_COMPILER_THREADS_KHR 0x91B0 +#define GL_COMPLETION_STATUS_KHR 0x91B1 +typedef void (GL_APIENTRYP PFNGLMAXSHADERCOMPILERTHREADSKHRPROC) (GLuint count); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glMaxShaderCompilerThreadsKHR (GLuint count); +#endif +#endif /* GL_KHR_parallel_shader_compile */ + +#ifndef GL_KHR_robust_buffer_access_behavior +#define GL_KHR_robust_buffer_access_behavior 1 +#endif /* GL_KHR_robust_buffer_access_behavior */ + +#ifndef GL_KHR_robustness +#define GL_KHR_robustness 1 +#define GL_CONTEXT_ROBUST_ACCESS_KHR 0x90F3 +#define GL_LOSE_CONTEXT_ON_RESET_KHR 0x8252 +#define GL_GUILTY_CONTEXT_RESET_KHR 0x8253 +#define GL_INNOCENT_CONTEXT_RESET_KHR 0x8254 +#define GL_UNKNOWN_CONTEXT_RESET_KHR 0x8255 +#define GL_RESET_NOTIFICATION_STRATEGY_KHR 0x8256 +#define GL_NO_RESET_NOTIFICATION_KHR 0x8261 +#define GL_CONTEXT_LOST_KHR 0x0507 +typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSKHRPROC) (void); +typedef void (GL_APIENTRYP PFNGLREADNPIXELSKHRPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVKHRPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); +typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVKHRPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); +typedef void (GL_APIENTRYP PFNGLGETNUNIFORMUIVKHRPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusKHR (void); +GL_APICALL void GL_APIENTRY glReadnPixelsKHR (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +GL_APICALL void GL_APIENTRY glGetnUniformfvKHR (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); +GL_APICALL void GL_APIENTRY glGetnUniformivKHR (GLuint program, GLint location, GLsizei bufSize, GLint *params); +GL_APICALL void GL_APIENTRY glGetnUniformuivKHR (GLuint program, GLint location, GLsizei bufSize, GLuint *params); +#endif +#endif /* GL_KHR_robustness */ + +#ifndef GL_KHR_shader_subgroup +#define GL_KHR_shader_subgroup 1 +#define GL_SUBGROUP_SIZE_KHR 0x9532 +#define GL_SUBGROUP_SUPPORTED_STAGES_KHR 0x9533 +#define GL_SUBGROUP_SUPPORTED_FEATURES_KHR 0x9534 +#define GL_SUBGROUP_QUAD_ALL_STAGES_KHR 0x9535 +#define GL_SUBGROUP_FEATURE_BASIC_BIT_KHR 0x00000001 +#define GL_SUBGROUP_FEATURE_VOTE_BIT_KHR 0x00000002 +#define GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR 0x00000004 +#define GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR 0x00000008 +#define GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR 0x00000010 +#define GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR 0x00000020 +#define GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR 0x00000040 +#define GL_SUBGROUP_FEATURE_QUAD_BIT_KHR 0x00000080 +#endif /* GL_KHR_shader_subgroup */ + +#ifndef GL_KHR_texture_compression_astc_hdr +#define GL_KHR_texture_compression_astc_hdr 1 +#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 +#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 +#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 +#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 +#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 +#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 +#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 +#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 +#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 +#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 +#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA +#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB +#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC +#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD +#endif /* GL_KHR_texture_compression_astc_hdr */ + +#ifndef GL_KHR_texture_compression_astc_ldr +#define GL_KHR_texture_compression_astc_ldr 1 +#endif /* GL_KHR_texture_compression_astc_ldr */ + +#ifndef GL_KHR_texture_compression_astc_sliced_3d +#define GL_KHR_texture_compression_astc_sliced_3d 1 +#endif /* GL_KHR_texture_compression_astc_sliced_3d */ + +#ifndef GL_OES_EGL_image +#define GL_OES_EGL_image 1 +typedef void *GLeglImageOES; +typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); +typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); +GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); +#endif +#endif /* GL_OES_EGL_image */ + +#ifndef GL_OES_EGL_image_external +#define GL_OES_EGL_image_external 1 +#define GL_TEXTURE_EXTERNAL_OES 0x8D65 +#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67 +#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68 +#define GL_SAMPLER_EXTERNAL_OES 0x8D66 +#endif /* GL_OES_EGL_image_external */ + +#ifndef GL_OES_EGL_image_external_essl3 +#define GL_OES_EGL_image_external_essl3 1 +#endif /* GL_OES_EGL_image_external_essl3 */ + +#ifndef GL_OES_compressed_ETC1_RGB8_sub_texture +#define GL_OES_compressed_ETC1_RGB8_sub_texture 1 +#endif /* GL_OES_compressed_ETC1_RGB8_sub_texture */ + +#ifndef GL_OES_compressed_ETC1_RGB8_texture +#define GL_OES_compressed_ETC1_RGB8_texture 1 +#define GL_ETC1_RGB8_OES 0x8D64 +#endif /* GL_OES_compressed_ETC1_RGB8_texture */ + +#ifndef GL_OES_compressed_paletted_texture +#define GL_OES_compressed_paletted_texture 1 +#define GL_PALETTE4_RGB8_OES 0x8B90 +#define GL_PALETTE4_RGBA8_OES 0x8B91 +#define GL_PALETTE4_R5_G6_B5_OES 0x8B92 +#define GL_PALETTE4_RGBA4_OES 0x8B93 +#define GL_PALETTE4_RGB5_A1_OES 0x8B94 +#define GL_PALETTE8_RGB8_OES 0x8B95 +#define GL_PALETTE8_RGBA8_OES 0x8B96 +#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 +#define GL_PALETTE8_RGBA4_OES 0x8B98 +#define GL_PALETTE8_RGB5_A1_OES 0x8B99 +#endif /* GL_OES_compressed_paletted_texture */ + +#ifndef GL_OES_copy_image +#define GL_OES_copy_image 1 +typedef void (GL_APIENTRYP PFNGLCOPYIMAGESUBDATAOESPROC) (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); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glCopyImageSubDataOES (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +#endif +#endif /* GL_OES_copy_image */ + +#ifndef GL_OES_depth24 +#define GL_OES_depth24 1 +#define GL_DEPTH_COMPONENT24_OES 0x81A6 +#endif /* GL_OES_depth24 */ + +#ifndef GL_OES_depth32 +#define GL_OES_depth32 1 +#define GL_DEPTH_COMPONENT32_OES 0x81A7 +#endif /* GL_OES_depth32 */ + +#ifndef GL_OES_depth_texture +#define GL_OES_depth_texture 1 +#endif /* GL_OES_depth_texture */ + +#ifndef GL_OES_draw_buffers_indexed +#define GL_OES_draw_buffers_indexed 1 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +typedef void (GL_APIENTRYP PFNGLENABLEIOESPROC) (GLenum target, GLuint index); +typedef void (GL_APIENTRYP PFNGLDISABLEIOESPROC) (GLenum target, GLuint index); +typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONIOESPROC) (GLuint buf, GLenum mode); +typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEIOESPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (GL_APIENTRYP PFNGLBLENDFUNCIOESPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEIOESPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (GL_APIENTRYP PFNGLCOLORMASKIOESPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDIOESPROC) (GLenum target, GLuint index); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glEnableiOES (GLenum target, GLuint index); +GL_APICALL void GL_APIENTRY glDisableiOES (GLenum target, GLuint index); +GL_APICALL void GL_APIENTRY glBlendEquationiOES (GLuint buf, GLenum mode); +GL_APICALL void GL_APIENTRY glBlendEquationSeparateiOES (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +GL_APICALL void GL_APIENTRY glBlendFunciOES (GLuint buf, GLenum src, GLenum dst); +GL_APICALL void GL_APIENTRY glBlendFuncSeparateiOES (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +GL_APICALL void GL_APIENTRY glColorMaskiOES (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +GL_APICALL GLboolean GL_APIENTRY glIsEnablediOES (GLenum target, GLuint index); +#endif +#endif /* GL_OES_draw_buffers_indexed */ + +#ifndef GL_OES_draw_elements_base_vertex +#define GL_OES_draw_elements_base_vertex 1 +typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXOESPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); +typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXOESPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); +typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOESPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); +typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDrawElementsBaseVertexOES (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); +GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertexOES (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); +GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexOES (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); +GL_APICALL void GL_APIENTRY glMultiDrawElementsBaseVertexEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); +#endif +#endif /* GL_OES_draw_elements_base_vertex */ + +#ifndef GL_OES_element_index_uint +#define GL_OES_element_index_uint 1 +#endif /* GL_OES_element_index_uint */ + +#ifndef GL_OES_fbo_render_mipmap +#define GL_OES_fbo_render_mipmap 1 +#endif /* GL_OES_fbo_render_mipmap */ + +#ifndef GL_OES_fragment_precision_high +#define GL_OES_fragment_precision_high 1 +#endif /* GL_OES_fragment_precision_high */ + +#ifndef GL_OES_geometry_point_size +#define GL_OES_geometry_point_size 1 +#endif /* GL_OES_geometry_point_size */ + +#ifndef GL_OES_geometry_shader +#define GL_OES_geometry_shader 1 +#define GL_GEOMETRY_SHADER_OES 0x8DD9 +#define GL_GEOMETRY_SHADER_BIT_OES 0x00000004 +#define GL_GEOMETRY_LINKED_VERTICES_OUT_OES 0x8916 +#define GL_GEOMETRY_LINKED_INPUT_TYPE_OES 0x8917 +#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES 0x8918 +#define GL_GEOMETRY_SHADER_INVOCATIONS_OES 0x887F +#define GL_LAYER_PROVOKING_VERTEX_OES 0x825E +#define GL_LINES_ADJACENCY_OES 0x000A +#define GL_LINE_STRIP_ADJACENCY_OES 0x000B +#define GL_TRIANGLES_ADJACENCY_OES 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY_OES 0x000D +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8DDF +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES 0x8A2C +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8A32 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES 0x9124 +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES 0x8DE1 +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES 0x8E5A +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES 0x8C29 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES 0x92CF +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES 0x92D5 +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES 0x90CD +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES 0x90D7 +#define GL_FIRST_VERTEX_CONVENTION_OES 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_OES 0x8E4E +#define GL_UNDEFINED_VERTEX_OES 0x8260 +#define GL_PRIMITIVES_GENERATED_OES 0x8C87 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS_OES 0x9312 +#define GL_MAX_FRAMEBUFFER_LAYERS_OES 0x9317 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES 0x8DA8 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES 0x8DA7 +#define GL_REFERENCED_BY_GEOMETRY_SHADER_OES 0x9309 +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREOESPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glFramebufferTextureOES (GLenum target, GLenum attachment, GLuint texture, GLint level); +#endif +#endif /* GL_OES_geometry_shader */ + +#ifndef GL_OES_get_program_binary +#define GL_OES_get_program_binary 1 +#define GL_PROGRAM_BINARY_LENGTH_OES 0x8741 +#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE +#define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF +typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); +typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLint length); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); +GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const void *binary, GLint length); +#endif +#endif /* GL_OES_get_program_binary */ + +#ifndef GL_OES_gpu_shader5 +#define GL_OES_gpu_shader5 1 +#endif /* GL_OES_gpu_shader5 */ + +#ifndef GL_OES_mapbuffer +#define GL_OES_mapbuffer 1 +#define GL_WRITE_ONLY_OES 0x88B9 +#define GL_BUFFER_ACCESS_OES 0x88BB +#define GL_BUFFER_MAPPED_OES 0x88BC +#define GL_BUFFER_MAP_POINTER_OES 0x88BD +typedef void *(GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access); +typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target); +typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, void **params); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void *GL_APIENTRY glMapBufferOES (GLenum target, GLenum access); +GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target); +GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, void **params); +#endif +#endif /* GL_OES_mapbuffer */ + +#ifndef GL_OES_packed_depth_stencil +#define GL_OES_packed_depth_stencil 1 +#define GL_DEPTH_STENCIL_OES 0x84F9 +#define GL_UNSIGNED_INT_24_8_OES 0x84FA +#define GL_DEPTH24_STENCIL8_OES 0x88F0 +#endif /* GL_OES_packed_depth_stencil */ + +#ifndef GL_OES_primitive_bounding_box +#define GL_OES_primitive_bounding_box 1 +#define GL_PRIMITIVE_BOUNDING_BOX_OES 0x92BE +typedef void (GL_APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXOESPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glPrimitiveBoundingBoxOES (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); +#endif +#endif /* GL_OES_primitive_bounding_box */ + +#ifndef GL_OES_required_internalformat +#define GL_OES_required_internalformat 1 +#define GL_ALPHA8_OES 0x803C +#define GL_DEPTH_COMPONENT16_OES 0x81A5 +#define GL_LUMINANCE4_ALPHA4_OES 0x8043 +#define GL_LUMINANCE8_ALPHA8_OES 0x8045 +#define GL_LUMINANCE8_OES 0x8040 +#define GL_RGBA4_OES 0x8056 +#define GL_RGB5_A1_OES 0x8057 +#define GL_RGB565_OES 0x8D62 +#define GL_RGB8_OES 0x8051 +#define GL_RGBA8_OES 0x8058 +#define GL_RGB10_EXT 0x8052 +#define GL_RGB10_A2_EXT 0x8059 +#endif /* GL_OES_required_internalformat */ + +#ifndef GL_OES_rgb8_rgba8 +#define GL_OES_rgb8_rgba8 1 +#endif /* GL_OES_rgb8_rgba8 */ + +#ifndef GL_OES_sample_shading +#define GL_OES_sample_shading 1 +#define GL_SAMPLE_SHADING_OES 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE_OES 0x8C37 +typedef void (GL_APIENTRYP PFNGLMINSAMPLESHADINGOESPROC) (GLfloat value); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glMinSampleShadingOES (GLfloat value); +#endif +#endif /* GL_OES_sample_shading */ + +#ifndef GL_OES_sample_variables +#define GL_OES_sample_variables 1 +#endif /* GL_OES_sample_variables */ + +#ifndef GL_OES_shader_image_atomic +#define GL_OES_shader_image_atomic 1 +#endif /* GL_OES_shader_image_atomic */ + +#ifndef GL_OES_shader_io_blocks +#define GL_OES_shader_io_blocks 1 +#endif /* GL_OES_shader_io_blocks */ + +#ifndef GL_OES_shader_multisample_interpolation +#define GL_OES_shader_multisample_interpolation 1 +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5C +#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES 0x8E5D +#endif /* GL_OES_shader_multisample_interpolation */ + +#ifndef GL_OES_standard_derivatives +#define GL_OES_standard_derivatives 1 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B +#endif /* GL_OES_standard_derivatives */ + +#ifndef GL_OES_stencil1 +#define GL_OES_stencil1 1 +#define GL_STENCIL_INDEX1_OES 0x8D46 +#endif /* GL_OES_stencil1 */ + +#ifndef GL_OES_stencil4 +#define GL_OES_stencil4 1 +#define GL_STENCIL_INDEX4_OES 0x8D47 +#endif /* GL_OES_stencil4 */ + +#ifndef GL_OES_surfaceless_context +#define GL_OES_surfaceless_context 1 +#define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219 +#endif /* GL_OES_surfaceless_context */ + +#ifndef GL_OES_tessellation_point_size +#define GL_OES_tessellation_point_size 1 +#endif /* GL_OES_tessellation_point_size */ + +#ifndef GL_OES_tessellation_shader +#define GL_OES_tessellation_shader 1 +#define GL_PATCHES_OES 0x000E +#define GL_PATCH_VERTICES_OES 0x8E72 +#define GL_TESS_CONTROL_OUTPUT_VERTICES_OES 0x8E75 +#define GL_TESS_GEN_MODE_OES 0x8E76 +#define GL_TESS_GEN_SPACING_OES 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER_OES 0x8E78 +#define GL_TESS_GEN_POINT_MODE_OES 0x8E79 +#define GL_ISOLINES_OES 0x8E7A +#define GL_QUADS_OES 0x0007 +#define GL_FRACTIONAL_ODD_OES 0x8E7B +#define GL_FRACTIONAL_EVEN_OES 0x8E7C +#define GL_MAX_PATCH_VERTICES_OES 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL_OES 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS_OES 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES 0x8E86 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES 0x8E8A +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E1F +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES 0x92CD +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES 0x92CE +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES 0x92D3 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES 0x92D4 +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES 0x90CB +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES 0x90CC +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES 0x90D8 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES 0x90D9 +#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES 0x8221 +#define GL_IS_PER_PATCH_OES 0x92E7 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES 0x9308 +#define GL_TESS_CONTROL_SHADER_OES 0x8E88 +#define GL_TESS_EVALUATION_SHADER_OES 0x8E87 +#define GL_TESS_CONTROL_SHADER_BIT_OES 0x00000008 +#define GL_TESS_EVALUATION_SHADER_BIT_OES 0x00000010 +typedef void (GL_APIENTRYP PFNGLPATCHPARAMETERIOESPROC) (GLenum pname, GLint value); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glPatchParameteriOES (GLenum pname, GLint value); +#endif +#endif /* GL_OES_tessellation_shader */ + +#ifndef GL_OES_texture_3D +#define GL_OES_texture_3D 1 +#define GL_TEXTURE_WRAP_R_OES 0x8072 +#define GL_TEXTURE_3D_OES 0x806F +#define GL_TEXTURE_BINDING_3D_OES 0x806A +#define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073 +#define GL_SAMPLER_3D_OES 0x8B5F +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4 +typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DOESPROC) (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 (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC) (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 (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); +GL_APICALL void GL_APIENTRY glTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); +GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +GL_APICALL void GL_APIENTRY glCompressedTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); +GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +#endif +#endif /* GL_OES_texture_3D */ + +#ifndef GL_OES_texture_border_clamp +#define GL_OES_texture_border_clamp 1 +#define GL_TEXTURE_BORDER_COLOR_OES 0x1004 +#define GL_CLAMP_TO_BORDER_OES 0x812D +typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVOESPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVOESPROC) (GLenum target, GLenum pname, const GLuint *params); +typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVOESPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVOESPROC) (GLenum target, GLenum pname, GLuint *params); +typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVOESPROC) (GLuint sampler, GLenum pname, const GLint *param); +typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVOESPROC) (GLuint sampler, GLenum pname, const GLuint *param); +typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVOESPROC) (GLuint sampler, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVOESPROC) (GLuint sampler, GLenum pname, GLuint *params); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glTexParameterIivOES (GLenum target, GLenum pname, const GLint *params); +GL_APICALL void GL_APIENTRY glTexParameterIuivOES (GLenum target, GLenum pname, const GLuint *params); +GL_APICALL void GL_APIENTRY glGetTexParameterIivOES (GLenum target, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glGetTexParameterIuivOES (GLenum target, GLenum pname, GLuint *params); +GL_APICALL void GL_APIENTRY glSamplerParameterIivOES (GLuint sampler, GLenum pname, const GLint *param); +GL_APICALL void GL_APIENTRY glSamplerParameterIuivOES (GLuint sampler, GLenum pname, const GLuint *param); +GL_APICALL void GL_APIENTRY glGetSamplerParameterIivOES (GLuint sampler, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glGetSamplerParameterIuivOES (GLuint sampler, GLenum pname, GLuint *params); +#endif +#endif /* GL_OES_texture_border_clamp */ + +#ifndef GL_OES_texture_buffer +#define GL_OES_texture_buffer 1 +#define GL_TEXTURE_BUFFER_OES 0x8C2A +#define GL_TEXTURE_BUFFER_BINDING_OES 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_OES 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_OES 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES 0x8C2D +#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES 0x919F +#define GL_SAMPLER_BUFFER_OES 0x8DC2 +#define GL_INT_SAMPLER_BUFFER_OES 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_OES 0x8DD8 +#define GL_IMAGE_BUFFER_OES 0x9051 +#define GL_INT_IMAGE_BUFFER_OES 0x905C +#define GL_UNSIGNED_INT_IMAGE_BUFFER_OES 0x9067 +#define GL_TEXTURE_BUFFER_OFFSET_OES 0x919D +#define GL_TEXTURE_BUFFER_SIZE_OES 0x919E +typedef void (GL_APIENTRYP PFNGLTEXBUFFEROESPROC) (GLenum target, GLenum internalformat, GLuint buffer); +typedef void (GL_APIENTRYP PFNGLTEXBUFFERRANGEOESPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glTexBufferOES (GLenum target, GLenum internalformat, GLuint buffer); +GL_APICALL void GL_APIENTRY glTexBufferRangeOES (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +#endif +#endif /* GL_OES_texture_buffer */ + +#ifndef GL_OES_texture_compression_astc +#define GL_OES_texture_compression_astc 1 +#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0 +#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1 +#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2 +#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3 +#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4 +#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5 +#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6 +#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7 +#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8 +#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9 +#endif /* GL_OES_texture_compression_astc */ + +#ifndef GL_OES_texture_cube_map_array +#define GL_OES_texture_cube_map_array 1 +#define GL_TEXTURE_CUBE_MAP_ARRAY_OES 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES 0x900A +#define GL_SAMPLER_CUBE_MAP_ARRAY_OES 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900F +#define GL_IMAGE_CUBE_MAP_ARRAY_OES 0x9054 +#define GL_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x905F +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x906A +#endif /* GL_OES_texture_cube_map_array */ + +#ifndef GL_OES_texture_float +#define GL_OES_texture_float 1 +#endif /* GL_OES_texture_float */ + +#ifndef GL_OES_texture_float_linear +#define GL_OES_texture_float_linear 1 +#endif /* GL_OES_texture_float_linear */ + +#ifndef GL_OES_texture_half_float +#define GL_OES_texture_half_float 1 +#define GL_HALF_FLOAT_OES 0x8D61 +#endif /* GL_OES_texture_half_float */ + +#ifndef GL_OES_texture_half_float_linear +#define GL_OES_texture_half_float_linear 1 +#endif /* GL_OES_texture_half_float_linear */ + +#ifndef GL_OES_texture_npot +#define GL_OES_texture_npot 1 +#endif /* GL_OES_texture_npot */ + +#ifndef GL_OES_texture_stencil8 +#define GL_OES_texture_stencil8 1 +#define GL_STENCIL_INDEX_OES 0x1901 +#define GL_STENCIL_INDEX8_OES 0x8D48 +#endif /* GL_OES_texture_stencil8 */ + +#ifndef GL_OES_texture_storage_multisample_2d_array +#define GL_OES_texture_storage_multisample_2d_array 1 +#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES 0x9102 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES 0x9105 +#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910B +#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910C +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910D +typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glTexStorage3DMultisampleOES (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +#endif +#endif /* GL_OES_texture_storage_multisample_2d_array */ + +#ifndef GL_OES_texture_view +#define GL_OES_texture_view 1 +#define GL_TEXTURE_VIEW_MIN_LEVEL_OES 0x82DB +#define GL_TEXTURE_VIEW_NUM_LEVELS_OES 0x82DC +#define GL_TEXTURE_VIEW_MIN_LAYER_OES 0x82DD +#define GL_TEXTURE_VIEW_NUM_LAYERS_OES 0x82DE +#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF +typedef void (GL_APIENTRYP PFNGLTEXTUREVIEWOESPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glTextureViewOES (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); +#endif +#endif /* GL_OES_texture_view */ + +#ifndef GL_OES_vertex_array_object +#define GL_OES_vertex_array_object 1 +#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5 +typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array); +typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays); +typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays); +typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array); +GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays); +GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays); +GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array); +#endif +#endif /* GL_OES_vertex_array_object */ + +#ifndef GL_OES_vertex_half_float +#define GL_OES_vertex_half_float 1 +#endif /* GL_OES_vertex_half_float */ + +#ifndef GL_OES_vertex_type_10_10_10_2 +#define GL_OES_vertex_type_10_10_10_2 1 +#define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6 +#define GL_INT_10_10_10_2_OES 0x8DF7 +#endif /* GL_OES_vertex_type_10_10_10_2 */ + +#ifndef GL_OES_viewport_array +#define GL_OES_viewport_array 1 +#define GL_MAX_VIEWPORTS_OES 0x825B +#define GL_VIEWPORT_SUBPIXEL_BITS_OES 0x825C +#define GL_VIEWPORT_BOUNDS_RANGE_OES 0x825D +#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX_OES 0x825F +typedef void (GL_APIENTRYP PFNGLVIEWPORTARRAYVOESPROC) (GLuint first, GLsizei count, const GLfloat *v); +typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFOESPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFVOESPROC) (GLuint index, const GLfloat *v); +typedef void (GL_APIENTRYP PFNGLSCISSORARRAYVOESPROC) (GLuint first, GLsizei count, const GLint *v); +typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDOESPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDVOESPROC) (GLuint index, const GLint *v); +typedef void (GL_APIENTRYP PFNGLDEPTHRANGEARRAYFVOESPROC) (GLuint first, GLsizei count, const GLfloat *v); +typedef void (GL_APIENTRYP PFNGLDEPTHRANGEINDEXEDFOESPROC) (GLuint index, GLfloat n, GLfloat f); +typedef void (GL_APIENTRYP PFNGLGETFLOATI_VOESPROC) (GLenum target, GLuint index, GLfloat *data); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glViewportArrayvOES (GLuint first, GLsizei count, const GLfloat *v); +GL_APICALL void GL_APIENTRY glViewportIndexedfOES (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +GL_APICALL void GL_APIENTRY glViewportIndexedfvOES (GLuint index, const GLfloat *v); +GL_APICALL void GL_APIENTRY glScissorArrayvOES (GLuint first, GLsizei count, const GLint *v); +GL_APICALL void GL_APIENTRY glScissorIndexedOES (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glScissorIndexedvOES (GLuint index, const GLint *v); +GL_APICALL void GL_APIENTRY glDepthRangeArrayfvOES (GLuint first, GLsizei count, const GLfloat *v); +GL_APICALL void GL_APIENTRY glDepthRangeIndexedfOES (GLuint index, GLfloat n, GLfloat f); +GL_APICALL void GL_APIENTRY glGetFloati_vOES (GLenum target, GLuint index, GLfloat *data); +#endif +#endif /* GL_OES_viewport_array */ + +#ifndef GL_AMD_compressed_3DC_texture +#define GL_AMD_compressed_3DC_texture 1 +#define GL_3DC_X_AMD 0x87F9 +#define GL_3DC_XY_AMD 0x87FA +#endif /* GL_AMD_compressed_3DC_texture */ + +#ifndef GL_AMD_compressed_ATC_texture +#define GL_AMD_compressed_ATC_texture 1 +#define GL_ATC_RGB_AMD 0x8C92 +#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93 +#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE +#endif /* GL_AMD_compressed_ATC_texture */ + +#ifndef GL_AMD_framebuffer_multisample_advanced +#define GL_AMD_framebuffer_multisample_advanced 1 +#define GL_RENDERBUFFER_STORAGE_SAMPLES_AMD 0x91B2 +#define GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD 0x91B3 +#define GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD 0x91B4 +#define GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD 0x91B5 +#define GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B6 +#define GL_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B7 +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAdvancedAMD (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glNamedRenderbufferStorageMultisampleAdvancedAMD (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); +#endif +#endif /* GL_AMD_framebuffer_multisample_advanced */ + +#ifndef GL_AMD_performance_monitor +#define GL_AMD_performance_monitor 1 +#define GL_COUNTER_TYPE_AMD 0x8BC0 +#define GL_COUNTER_RANGE_AMD 0x8BC1 +#define GL_UNSIGNED_INT64_AMD 0x8BC2 +#define GL_PERCENTAGE_AMD 0x8BC3 +#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 +#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 +#define GL_PERFMON_RESULT_AMD 0x8BC6 +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void *data); +typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); +typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); +typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); +typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); +typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups); +GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); +GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); +GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); +GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, void *data); +GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors); +GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors); +GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); +GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor); +GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor); +GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); +#endif +#endif /* GL_AMD_performance_monitor */ + +#ifndef GL_AMD_program_binary_Z400 +#define GL_AMD_program_binary_Z400 1 +#define GL_Z400_BINARY_AMD 0x8740 +#endif /* GL_AMD_program_binary_Z400 */ + +#ifndef GL_ANDROID_extension_pack_es31a +#define GL_ANDROID_extension_pack_es31a 1 +#endif /* GL_ANDROID_extension_pack_es31a */ + +#ifndef GL_ANGLE_depth_texture +#define GL_ANGLE_depth_texture 1 +#endif /* GL_ANGLE_depth_texture */ + +#ifndef GL_ANGLE_framebuffer_blit +#define GL_ANGLE_framebuffer_blit 1 +#define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9 +#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6 +#define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA +typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glBlitFramebufferANGLE (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif +#endif /* GL_ANGLE_framebuffer_blit */ + +#ifndef GL_ANGLE_framebuffer_multisample +#define GL_ANGLE_framebuffer_multisample 1 +#define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56 +#define GL_MAX_SAMPLES_ANGLE 0x8D57 +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#endif +#endif /* GL_ANGLE_framebuffer_multisample */ + +#ifndef GL_ANGLE_instanced_arrays +#define GL_ANGLE_instanced_arrays 1 +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE +typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDrawArraysInstancedANGLE (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +GL_APICALL void GL_APIENTRY glDrawElementsInstancedANGLE (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +GL_APICALL void GL_APIENTRY glVertexAttribDivisorANGLE (GLuint index, GLuint divisor); +#endif +#endif /* GL_ANGLE_instanced_arrays */ + +#ifndef GL_ANGLE_pack_reverse_row_order +#define GL_ANGLE_pack_reverse_row_order 1 +#define GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93A4 +#endif /* GL_ANGLE_pack_reverse_row_order */ + +#ifndef GL_ANGLE_program_binary +#define GL_ANGLE_program_binary 1 +#define GL_PROGRAM_BINARY_ANGLE 0x93A6 +#endif /* GL_ANGLE_program_binary */ + +#ifndef GL_ANGLE_texture_compression_dxt3 +#define GL_ANGLE_texture_compression_dxt3 1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 +#endif /* GL_ANGLE_texture_compression_dxt3 */ + +#ifndef GL_ANGLE_texture_compression_dxt5 +#define GL_ANGLE_texture_compression_dxt5 1 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 +#endif /* GL_ANGLE_texture_compression_dxt5 */ + +#ifndef GL_ANGLE_texture_usage +#define GL_ANGLE_texture_usage 1 +#define GL_TEXTURE_USAGE_ANGLE 0x93A2 +#define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3 +#endif /* GL_ANGLE_texture_usage */ + +#ifndef GL_ANGLE_translated_shader_source +#define GL_ANGLE_translated_shader_source 1 +#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0 +typedef void (GL_APIENTRYP PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGetTranslatedShaderSourceANGLE (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +#endif +#endif /* GL_ANGLE_translated_shader_source */ + +#ifndef GL_APPLE_clip_distance +#define GL_APPLE_clip_distance 1 +#define GL_MAX_CLIP_DISTANCES_APPLE 0x0D32 +#define GL_CLIP_DISTANCE0_APPLE 0x3000 +#define GL_CLIP_DISTANCE1_APPLE 0x3001 +#define GL_CLIP_DISTANCE2_APPLE 0x3002 +#define GL_CLIP_DISTANCE3_APPLE 0x3003 +#define GL_CLIP_DISTANCE4_APPLE 0x3004 +#define GL_CLIP_DISTANCE5_APPLE 0x3005 +#define GL_CLIP_DISTANCE6_APPLE 0x3006 +#define GL_CLIP_DISTANCE7_APPLE 0x3007 +#endif /* GL_APPLE_clip_distance */ + +#ifndef GL_APPLE_color_buffer_packed_float +#define GL_APPLE_color_buffer_packed_float 1 +#endif /* GL_APPLE_color_buffer_packed_float */ + +#ifndef GL_APPLE_copy_texture_levels +#define GL_APPLE_copy_texture_levels 1 +typedef void (GL_APIENTRYP PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glCopyTextureLevelsAPPLE (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); +#endif +#endif /* GL_APPLE_copy_texture_levels */ + +#ifndef GL_APPLE_framebuffer_multisample +#define GL_APPLE_framebuffer_multisample 1 +#define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56 +#define GL_MAX_SAMPLES_APPLE 0x8D57 +#define GL_READ_FRAMEBUFFER_APPLE 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9 +#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6 +#define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void); +#endif +#endif /* GL_APPLE_framebuffer_multisample */ + +#ifndef GL_APPLE_rgb_422 +#define GL_APPLE_rgb_422 1 +#define GL_RGB_422_APPLE 0x8A1F +#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB +#define GL_RGB_RAW_422_APPLE 0x8A51 +#endif /* GL_APPLE_rgb_422 */ + +#ifndef GL_APPLE_sync +#define GL_APPLE_sync 1 +#define GL_SYNC_OBJECT_APPLE 0x8A53 +#define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111 +#define GL_OBJECT_TYPE_APPLE 0x9112 +#define GL_SYNC_CONDITION_APPLE 0x9113 +#define GL_SYNC_STATUS_APPLE 0x9114 +#define GL_SYNC_FLAGS_APPLE 0x9115 +#define GL_SYNC_FENCE_APPLE 0x9116 +#define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117 +#define GL_UNSIGNALED_APPLE 0x9118 +#define GL_SIGNALED_APPLE 0x9119 +#define GL_ALREADY_SIGNALED_APPLE 0x911A +#define GL_TIMEOUT_EXPIRED_APPLE 0x911B +#define GL_CONDITION_SATISFIED_APPLE 0x911C +#define GL_WAIT_FAILED_APPLE 0x911D +#define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001 +#define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull +typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags); +typedef GLboolean (GL_APIENTRYP PFNGLISSYNCAPPLEPROC) (GLsync sync); +typedef void (GL_APIENTRYP PFNGLDELETESYNCAPPLEPROC) (GLsync sync); +typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (GL_APIENTRYP PFNGLWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (GL_APIENTRYP PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64 *params); +typedef void (GL_APIENTRYP PFNGLGETSYNCIVAPPLEPROC) (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL GLsync GL_APIENTRY glFenceSyncAPPLE (GLenum condition, GLbitfield flags); +GL_APICALL GLboolean GL_APIENTRY glIsSyncAPPLE (GLsync sync); +GL_APICALL void GL_APIENTRY glDeleteSyncAPPLE (GLsync sync); +GL_APICALL GLenum GL_APIENTRY glClientWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); +GL_APICALL void GL_APIENTRY glWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); +GL_APICALL void GL_APIENTRY glGetInteger64vAPPLE (GLenum pname, GLint64 *params); +GL_APICALL void GL_APIENTRY glGetSyncivAPPLE (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); +#endif +#endif /* GL_APPLE_sync */ + +#ifndef GL_APPLE_texture_format_BGRA8888 +#define GL_APPLE_texture_format_BGRA8888 1 +#define GL_BGRA_EXT 0x80E1 +#define GL_BGRA8_EXT 0x93A1 +#endif /* GL_APPLE_texture_format_BGRA8888 */ + +#ifndef GL_APPLE_texture_max_level +#define GL_APPLE_texture_max_level 1 +#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D +#endif /* GL_APPLE_texture_max_level */ + +#ifndef GL_APPLE_texture_packed_float +#define GL_APPLE_texture_packed_float 1 +#define GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE 0x8C3B +#define GL_UNSIGNED_INT_5_9_9_9_REV_APPLE 0x8C3E +#define GL_R11F_G11F_B10F_APPLE 0x8C3A +#define GL_RGB9_E5_APPLE 0x8C3D +#endif /* GL_APPLE_texture_packed_float */ + +#ifndef GL_ARM_mali_program_binary +#define GL_ARM_mali_program_binary 1 +#define GL_MALI_PROGRAM_BINARY_ARM 0x8F61 +#endif /* GL_ARM_mali_program_binary */ + +#ifndef GL_ARM_mali_shader_binary +#define GL_ARM_mali_shader_binary 1 +#define GL_MALI_SHADER_BINARY_ARM 0x8F60 +#endif /* GL_ARM_mali_shader_binary */ + +#ifndef GL_ARM_rgba8 +#define GL_ARM_rgba8 1 +#endif /* GL_ARM_rgba8 */ + +#ifndef GL_ARM_shader_framebuffer_fetch +#define GL_ARM_shader_framebuffer_fetch 1 +#define GL_FETCH_PER_SAMPLE_ARM 0x8F65 +#define GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM 0x8F66 +#endif /* GL_ARM_shader_framebuffer_fetch */ + +#ifndef GL_ARM_shader_framebuffer_fetch_depth_stencil +#define GL_ARM_shader_framebuffer_fetch_depth_stencil 1 +#endif /* GL_ARM_shader_framebuffer_fetch_depth_stencil */ + +#ifndef GL_ARM_texture_unnormalized_coordinates +#define GL_ARM_texture_unnormalized_coordinates 1 +#define GL_TEXTURE_UNNORMALIZED_COORDINATES_ARM 0x8F6A +#endif /* GL_ARM_texture_unnormalized_coordinates */ + +#ifndef GL_DMP_program_binary +#define GL_DMP_program_binary 1 +#define GL_SMAPHS30_PROGRAM_BINARY_DMP 0x9251 +#define GL_SMAPHS_PROGRAM_BINARY_DMP 0x9252 +#define GL_DMP_PROGRAM_BINARY_DMP 0x9253 +#endif /* GL_DMP_program_binary */ + +#ifndef GL_DMP_shader_binary +#define GL_DMP_shader_binary 1 +#define GL_SHADER_BINARY_DMP 0x9250 +#endif /* GL_DMP_shader_binary */ + +#ifndef GL_EXT_EGL_image_array +#define GL_EXT_EGL_image_array 1 +#endif /* GL_EXT_EGL_image_array */ + +#ifndef GL_EXT_EGL_image_storage +#define GL_EXT_EGL_image_storage 1 +typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC) (GLenum target, GLeglImageOES image, const GLint* attrib_list); +typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC) (GLuint texture, GLeglImageOES image, const GLint* attrib_list); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glEGLImageTargetTexStorageEXT (GLenum target, GLeglImageOES image, const GLint* attrib_list); +GL_APICALL void GL_APIENTRY glEGLImageTargetTextureStorageEXT (GLuint texture, GLeglImageOES image, const GLint* attrib_list); +#endif +#endif /* GL_EXT_EGL_image_storage */ + +#ifndef GL_EXT_EGL_image_storage_compression +#define GL_EXT_EGL_image_storage_compression 1 +#define GL_SURFACE_COMPRESSION_EXT 0x96C0 +#define GL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT 0x96C1 +#define GL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT 0x96C2 +#endif /* GL_EXT_EGL_image_storage_compression */ + +#ifndef GL_EXT_YUV_target +#define GL_EXT_YUV_target 1 +#define GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT 0x8BE7 +#endif /* GL_EXT_YUV_target */ + +#ifndef GL_EXT_base_instance +#define GL_EXT_base_instance 1 +typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); +typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); +typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDrawArraysInstancedBaseInstanceEXT (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); +GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseInstanceEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); +GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexBaseInstanceEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); +#endif +#endif /* GL_EXT_base_instance */ + +#ifndef GL_EXT_blend_func_extended +#define GL_EXT_blend_func_extended 1 +#define GL_SRC1_COLOR_EXT 0x88F9 +#define GL_SRC1_ALPHA_EXT 0x8589 +#define GL_ONE_MINUS_SRC1_COLOR_EXT 0x88FA +#define GL_ONE_MINUS_SRC1_ALPHA_EXT 0x88FB +#define GL_SRC_ALPHA_SATURATE_EXT 0x0308 +#define GL_LOCATION_INDEX_EXT 0x930F +#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT 0x88FC +typedef void (GL_APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); +typedef void (GL_APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); +typedef GLint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC) (GLuint program, GLenum programInterface, const GLchar *name); +typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATAINDEXEXTPROC) (GLuint program, const GLchar *name); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glBindFragDataLocationIndexedEXT (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); +GL_APICALL void GL_APIENTRY glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name); +GL_APICALL GLint GL_APIENTRY glGetProgramResourceLocationIndexEXT (GLuint program, GLenum programInterface, const GLchar *name); +GL_APICALL GLint GL_APIENTRY glGetFragDataIndexEXT (GLuint program, const GLchar *name); +#endif +#endif /* GL_EXT_blend_func_extended */ + +#ifndef GL_EXT_blend_minmax +#define GL_EXT_blend_minmax 1 +#define GL_MIN_EXT 0x8007 +#define GL_MAX_EXT 0x8008 +#endif /* GL_EXT_blend_minmax */ + +#ifndef GL_EXT_buffer_storage +#define GL_EXT_buffer_storage 1 +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MAP_PERSISTENT_BIT_EXT 0x0040 +#define GL_MAP_COHERENT_BIT_EXT 0x0080 +#define GL_DYNAMIC_STORAGE_BIT_EXT 0x0100 +#define GL_CLIENT_STORAGE_BIT_EXT 0x0200 +#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT 0x00004000 +#define GL_BUFFER_IMMUTABLE_STORAGE_EXT 0x821F +#define GL_BUFFER_STORAGE_FLAGS_EXT 0x8220 +typedef void (GL_APIENTRYP PFNGLBUFFERSTORAGEEXTPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glBufferStorageEXT (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); +#endif +#endif /* GL_EXT_buffer_storage */ + +#ifndef GL_EXT_clear_texture +#define GL_EXT_clear_texture 1 +typedef void (GL_APIENTRYP PFNGLCLEARTEXIMAGEEXTPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); +typedef void (GL_APIENTRYP PFNGLCLEARTEXSUBIMAGEEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glClearTexImageEXT (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); +GL_APICALL void GL_APIENTRY glClearTexSubImageEXT (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); +#endif +#endif /* GL_EXT_clear_texture */ + +#ifndef GL_EXT_clip_control +#define GL_EXT_clip_control 1 +#define GL_LOWER_LEFT_EXT 0x8CA1 +#define GL_UPPER_LEFT_EXT 0x8CA2 +#define GL_NEGATIVE_ONE_TO_ONE_EXT 0x935E +#define GL_ZERO_TO_ONE_EXT 0x935F +#define GL_CLIP_ORIGIN_EXT 0x935C +#define GL_CLIP_DEPTH_MODE_EXT 0x935D +typedef void (GL_APIENTRYP PFNGLCLIPCONTROLEXTPROC) (GLenum origin, GLenum depth); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glClipControlEXT (GLenum origin, GLenum depth); +#endif +#endif /* GL_EXT_clip_control */ + +#ifndef GL_EXT_clip_cull_distance +#define GL_EXT_clip_cull_distance 1 +#define GL_MAX_CLIP_DISTANCES_EXT 0x0D32 +#define GL_MAX_CULL_DISTANCES_EXT 0x82F9 +#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT 0x82FA +#define GL_CLIP_DISTANCE0_EXT 0x3000 +#define GL_CLIP_DISTANCE1_EXT 0x3001 +#define GL_CLIP_DISTANCE2_EXT 0x3002 +#define GL_CLIP_DISTANCE3_EXT 0x3003 +#define GL_CLIP_DISTANCE4_EXT 0x3004 +#define GL_CLIP_DISTANCE5_EXT 0x3005 +#define GL_CLIP_DISTANCE6_EXT 0x3006 +#define GL_CLIP_DISTANCE7_EXT 0x3007 +#endif /* GL_EXT_clip_cull_distance */ + +#ifndef GL_EXT_color_buffer_float +#define GL_EXT_color_buffer_float 1 +#endif /* GL_EXT_color_buffer_float */ + +#ifndef GL_EXT_color_buffer_half_float +#define GL_EXT_color_buffer_half_float 1 +#define GL_RGBA16F_EXT 0x881A +#define GL_RGB16F_EXT 0x881B +#define GL_RG16F_EXT 0x822F +#define GL_R16F_EXT 0x822D +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211 +#define GL_UNSIGNED_NORMALIZED_EXT 0x8C17 +#endif /* GL_EXT_color_buffer_half_float */ + +#ifndef GL_EXT_conservative_depth +#define GL_EXT_conservative_depth 1 +#endif /* GL_EXT_conservative_depth */ + +#ifndef GL_EXT_copy_image +#define GL_EXT_copy_image 1 +typedef void (GL_APIENTRYP PFNGLCOPYIMAGESUBDATAEXTPROC) (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); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glCopyImageSubDataEXT (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); +#endif +#endif /* GL_EXT_copy_image */ + +#ifndef GL_EXT_debug_label +#define GL_EXT_debug_label 1 +#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F +#define GL_PROGRAM_OBJECT_EXT 0x8B40 +#define GL_SHADER_OBJECT_EXT 0x8B48 +#define GL_BUFFER_OBJECT_EXT 0x9151 +#define GL_QUERY_OBJECT_EXT 0x9153 +#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 +#define GL_TRANSFORM_FEEDBACK 0x8E22 +typedef void (GL_APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label); +typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label); +GL_APICALL void GL_APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif +#endif /* GL_EXT_debug_label */ + +#ifndef GL_EXT_debug_marker +#define GL_EXT_debug_marker 1 +typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker); +typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker); +typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker); +GL_APICALL void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker); +GL_APICALL void GL_APIENTRY glPopGroupMarkerEXT (void); +#endif +#endif /* GL_EXT_debug_marker */ + +#ifndef GL_EXT_depth_clamp +#define GL_EXT_depth_clamp 1 +#define GL_DEPTH_CLAMP_EXT 0x864F +#endif /* GL_EXT_depth_clamp */ + +#ifndef GL_EXT_discard_framebuffer +#define GL_EXT_discard_framebuffer 1 +#define GL_COLOR_EXT 0x1800 +#define GL_DEPTH_EXT 0x1801 +#define GL_STENCIL_EXT 0x1802 +typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments); +#endif +#endif /* GL_EXT_discard_framebuffer */ + +#ifndef GL_EXT_disjoint_timer_query +#define GL_EXT_disjoint_timer_query 1 +#define GL_QUERY_COUNTER_BITS_EXT 0x8864 +#define GL_CURRENT_QUERY_EXT 0x8865 +#define GL_QUERY_RESULT_EXT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 +#define GL_TIME_ELAPSED_EXT 0x88BF +#define GL_TIMESTAMP_EXT 0x8E28 +#define GL_GPU_DISJOINT_EXT 0x8FBB +typedef void (GL_APIENTRYP PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint *ids); +typedef void (GL_APIENTRYP PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (GL_APIENTRYP PFNGLISQUERYEXTPROC) (GLuint id); +typedef void (GL_APIENTRYP PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id); +typedef void (GL_APIENTRYP PFNGLENDQUERYEXTPROC) (GLenum target); +typedef void (GL_APIENTRYP PFNGLQUERYCOUNTEREXTPROC) (GLuint id, GLenum target); +typedef void (GL_APIENTRYP PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTIVEXTPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint *params); +typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64 *params); +typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64 *params); +typedef void (GL_APIENTRYP PFNGLGETINTEGER64VEXTPROC) (GLenum pname, GLint64 *data); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGenQueriesEXT (GLsizei n, GLuint *ids); +GL_APICALL void GL_APIENTRY glDeleteQueriesEXT (GLsizei n, const GLuint *ids); +GL_APICALL GLboolean GL_APIENTRY glIsQueryEXT (GLuint id); +GL_APICALL void GL_APIENTRY glBeginQueryEXT (GLenum target, GLuint id); +GL_APICALL void GL_APIENTRY glEndQueryEXT (GLenum target); +GL_APICALL void GL_APIENTRY glQueryCounterEXT (GLuint id, GLenum target); +GL_APICALL void GL_APIENTRY glGetQueryivEXT (GLenum target, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glGetQueryObjectivEXT (GLuint id, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glGetQueryObjectuivEXT (GLuint id, GLenum pname, GLuint *params); +GL_APICALL void GL_APIENTRY glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64 *params); +GL_APICALL void GL_APIENTRY glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64 *params); +GL_APICALL void GL_APIENTRY glGetInteger64vEXT (GLenum pname, GLint64 *data); +#endif +#endif /* GL_EXT_disjoint_timer_query */ + +#ifndef GL_EXT_draw_buffers +#define GL_EXT_draw_buffers 1 +#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF +#define GL_MAX_DRAW_BUFFERS_EXT 0x8824 +#define GL_DRAW_BUFFER0_EXT 0x8825 +#define GL_DRAW_BUFFER1_EXT 0x8826 +#define GL_DRAW_BUFFER2_EXT 0x8827 +#define GL_DRAW_BUFFER3_EXT 0x8828 +#define GL_DRAW_BUFFER4_EXT 0x8829 +#define GL_DRAW_BUFFER5_EXT 0x882A +#define GL_DRAW_BUFFER6_EXT 0x882B +#define GL_DRAW_BUFFER7_EXT 0x882C +#define GL_DRAW_BUFFER8_EXT 0x882D +#define GL_DRAW_BUFFER9_EXT 0x882E +#define GL_DRAW_BUFFER10_EXT 0x882F +#define GL_DRAW_BUFFER11_EXT 0x8830 +#define GL_DRAW_BUFFER12_EXT 0x8831 +#define GL_DRAW_BUFFER13_EXT 0x8832 +#define GL_DRAW_BUFFER14_EXT 0x8833 +#define GL_DRAW_BUFFER15_EXT 0x8834 +#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 +typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSEXTPROC) (GLsizei n, const GLenum *bufs); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDrawBuffersEXT (GLsizei n, const GLenum *bufs); +#endif +#endif /* GL_EXT_draw_buffers */ + +#ifndef GL_EXT_draw_buffers_indexed +#define GL_EXT_draw_buffers_indexed 1 +typedef void (GL_APIENTRYP PFNGLENABLEIEXTPROC) (GLenum target, GLuint index); +typedef void (GL_APIENTRYP PFNGLDISABLEIEXTPROC) (GLenum target, GLuint index); +typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONIEXTPROC) (GLuint buf, GLenum mode); +typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEIEXTPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (GL_APIENTRYP PFNGLBLENDFUNCIEXTPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEIEXTPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (GL_APIENTRYP PFNGLCOLORMASKIEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDIEXTPROC) (GLenum target, GLuint index); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glEnableiEXT (GLenum target, GLuint index); +GL_APICALL void GL_APIENTRY glDisableiEXT (GLenum target, GLuint index); +GL_APICALL void GL_APIENTRY glBlendEquationiEXT (GLuint buf, GLenum mode); +GL_APICALL void GL_APIENTRY glBlendEquationSeparateiEXT (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +GL_APICALL void GL_APIENTRY glBlendFunciEXT (GLuint buf, GLenum src, GLenum dst); +GL_APICALL void GL_APIENTRY glBlendFuncSeparateiEXT (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +GL_APICALL void GL_APIENTRY glColorMaskiEXT (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +GL_APICALL GLboolean GL_APIENTRY glIsEnablediEXT (GLenum target, GLuint index); +#endif +#endif /* GL_EXT_draw_buffers_indexed */ + +#ifndef GL_EXT_draw_elements_base_vertex +#define GL_EXT_draw_elements_base_vertex 1 +typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); +typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); +typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDrawElementsBaseVertexEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); +GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertexEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); +GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); +#endif +#endif /* GL_EXT_draw_elements_base_vertex */ + +#ifndef GL_EXT_draw_instanced +#define GL_EXT_draw_instanced 1 +typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); +typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount); +GL_APICALL void GL_APIENTRY glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +#endif +#endif /* GL_EXT_draw_instanced */ + +#ifndef GL_EXT_draw_transform_feedback +#define GL_EXT_draw_transform_feedback 1 +typedef void (GL_APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKEXTPROC) (GLenum mode, GLuint id); +typedef void (GL_APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC) (GLenum mode, GLuint id, GLsizei instancecount); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDrawTransformFeedbackEXT (GLenum mode, GLuint id); +GL_APICALL void GL_APIENTRY glDrawTransformFeedbackInstancedEXT (GLenum mode, GLuint id, GLsizei instancecount); +#endif +#endif /* GL_EXT_draw_transform_feedback */ + +#ifndef GL_EXT_external_buffer +#define GL_EXT_external_buffer 1 +typedef void *GLeglClientBufferEXT; +typedef void (GL_APIENTRYP PFNGLBUFFERSTORAGEEXTERNALEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); +typedef void (GL_APIENTRYP PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glBufferStorageExternalEXT (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); +GL_APICALL void GL_APIENTRY glNamedBufferStorageExternalEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); +#endif +#endif /* GL_EXT_external_buffer */ + +#ifndef GL_EXT_float_blend +#define GL_EXT_float_blend 1 +#endif /* GL_EXT_float_blend */ + +#ifndef GL_EXT_fragment_shading_rate +#define GL_EXT_fragment_shading_rate 1 +#define GL_SHADING_RATE_1X1_PIXELS_EXT 0x96A6 +#define GL_SHADING_RATE_1X2_PIXELS_EXT 0x96A7 +#define GL_SHADING_RATE_2X1_PIXELS_EXT 0x96A8 +#define GL_SHADING_RATE_2X2_PIXELS_EXT 0x96A9 +#define GL_SHADING_RATE_1X4_PIXELS_EXT 0x96AA +#define GL_SHADING_RATE_4X1_PIXELS_EXT 0x96AB +#define GL_SHADING_RATE_4X2_PIXELS_EXT 0x96AC +#define GL_SHADING_RATE_2X4_PIXELS_EXT 0x96AD +#define GL_SHADING_RATE_4X4_PIXELS_EXT 0x96AE +#define GL_SHADING_RATE_EXT 0x96D0 +#define GL_SHADING_RATE_ATTACHMENT_EXT 0x96D1 +#define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_EXT 0x96D2 +#define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_EXT 0x96D3 +#define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_EXT 0x96D4 +#define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_EXT 0x96D5 +#define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_EXT 0x96D6 +#define GL_MIN_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_WIDTH_EXT 0x96D7 +#define GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_WIDTH_EXT 0x96D8 +#define GL_MIN_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_HEIGHT_EXT 0x96D9 +#define GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_HEIGHT_EXT 0x96DA +#define GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_ASPECT_RATIO_EXT 0x96DB +#define GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_LAYERS_EXT 0x96DC +#define GL_FRAGMENT_SHADING_RATE_WITH_SHADER_DEPTH_STENCIL_WRITES_SUPPORTED_EXT 0x96DD +#define GL_FRAGMENT_SHADING_RATE_WITH_SAMPLE_MASK_SUPPORTED_EXT 0x96DE +#define GL_FRAGMENT_SHADING_RATE_ATTACHMENT_WITH_DEFAULT_FRAMEBUFFER_SUPPORTED_EXT 0x96DF +#define GL_FRAGMENT_SHADING_RATE_NON_TRIVIAL_COMBINERS_SUPPORTED_EXT 0x8F6F +typedef void (GL_APIENTRYP PFNGLGETFRAGMENTSHADINGRATESEXTPROC) (GLsizei samples, GLsizei maxCount, GLsizei *count, GLenum *shadingRates); +typedef void (GL_APIENTRYP PFNGLSHADINGRATEEXTPROC) (GLenum rate); +typedef void (GL_APIENTRYP PFNGLSHADINGRATECOMBINEROPSEXTPROC) (GLenum combinerOp0, GLenum combinerOp1); +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERSHADINGRATEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint baseLayer, GLsizei numLayers, GLsizei texelWidth, GLsizei texelHeight); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGetFragmentShadingRatesEXT (GLsizei samples, GLsizei maxCount, GLsizei *count, GLenum *shadingRates); +GL_APICALL void GL_APIENTRY glShadingRateEXT (GLenum rate); +GL_APICALL void GL_APIENTRY glShadingRateCombinerOpsEXT (GLenum combinerOp0, GLenum combinerOp1); +GL_APICALL void GL_APIENTRY glFramebufferShadingRateEXT (GLenum target, GLenum attachment, GLuint texture, GLint baseLayer, GLsizei numLayers, GLsizei texelWidth, GLsizei texelHeight); +#endif +#endif /* GL_EXT_fragment_shading_rate */ + +#ifndef GL_EXT_geometry_point_size +#define GL_EXT_geometry_point_size 1 +#endif /* GL_EXT_geometry_point_size */ + +#ifndef GL_EXT_geometry_shader +#define GL_EXT_geometry_shader 1 +#define GL_GEOMETRY_SHADER_EXT 0x8DD9 +#define GL_GEOMETRY_SHADER_BIT_EXT 0x00000004 +#define GL_GEOMETRY_LINKED_VERTICES_OUT_EXT 0x8916 +#define GL_GEOMETRY_LINKED_INPUT_TYPE_EXT 0x8917 +#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT 0x8918 +#define GL_GEOMETRY_SHADER_INVOCATIONS_EXT 0x887F +#define GL_LAYER_PROVOKING_VERTEX_EXT 0x825E +#define GL_LINES_ADJACENCY_EXT 0x000A +#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B +#define GL_TRIANGLES_ADJACENCY_EXT 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT 0x8A2C +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8A32 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT 0x9124 +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT 0x8E5A +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 +#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT 0x92CF +#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT 0x92D5 +#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT 0x90CD +#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT 0x90D7 +#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E +#define GL_UNDEFINED_VERTEX_EXT 0x8260 +#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 +#define GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT 0x9312 +#define GL_MAX_FRAMEBUFFER_LAYERS_EXT 0x9317 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 +#define GL_REFERENCED_BY_GEOMETRY_SHADER_EXT 0x9309 +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level); +#endif +#endif /* GL_EXT_geometry_shader */ + +#ifndef GL_EXT_gpu_shader5 +#define GL_EXT_gpu_shader5 1 +#endif /* GL_EXT_gpu_shader5 */ + +#ifndef GL_EXT_instanced_arrays +#define GL_EXT_instanced_arrays 1 +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT 0x88FE +typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glVertexAttribDivisorEXT (GLuint index, GLuint divisor); +#endif +#endif /* GL_EXT_instanced_arrays */ + +#ifndef GL_EXT_map_buffer_range +#define GL_EXT_map_buffer_range 1 +#define GL_MAP_READ_BIT_EXT 0x0001 +#define GL_MAP_WRITE_BIT_EXT 0x0002 +#define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004 +#define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008 +#define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010 +#define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020 +typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void *GL_APIENTRY glMapBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +GL_APICALL void GL_APIENTRY glFlushMappedBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length); +#endif +#endif /* GL_EXT_map_buffer_range */ + +#ifndef GL_EXT_memory_object +#define GL_EXT_memory_object 1 +#define GL_TEXTURE_TILING_EXT 0x9580 +#define GL_DEDICATED_MEMORY_OBJECT_EXT 0x9581 +#define GL_PROTECTED_MEMORY_OBJECT_EXT 0x959B +#define GL_NUM_TILING_TYPES_EXT 0x9582 +#define GL_TILING_TYPES_EXT 0x9583 +#define GL_OPTIMAL_TILING_EXT 0x9584 +#define GL_LINEAR_TILING_EXT 0x9585 +#define GL_NUM_DEVICE_UUIDS_EXT 0x9596 +#define GL_DEVICE_UUID_EXT 0x9597 +#define GL_DRIVER_UUID_EXT 0x9598 +#define GL_UUID_SIZE_EXT 16 +typedef void (GL_APIENTRYP PFNGLGETUNSIGNEDBYTEVEXTPROC) (GLenum pname, GLubyte *data); +typedef void (GL_APIENTRYP PFNGLGETUNSIGNEDBYTEI_VEXTPROC) (GLenum target, GLuint index, GLubyte *data); +typedef void (GL_APIENTRYP PFNGLDELETEMEMORYOBJECTSEXTPROC) (GLsizei n, const GLuint *memoryObjects); +typedef GLboolean (GL_APIENTRYP PFNGLISMEMORYOBJECTEXTPROC) (GLuint memoryObject); +typedef void (GL_APIENTRYP PFNGLCREATEMEMORYOBJECTSEXTPROC) (GLsizei n, GLuint *memoryObjects); +typedef void (GL_APIENTRYP PFNGLMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, const GLint *params); +typedef void (GL_APIENTRYP PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); +typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); +typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +typedef void (GL_APIENTRYP PFNGLBUFFERSTORAGEMEMEXTPROC) (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); +typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGEMEM2DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); +typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGEMEM3DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); +typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +typedef void (GL_APIENTRYP PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC) (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGetUnsignedBytevEXT (GLenum pname, GLubyte *data); +GL_APICALL void GL_APIENTRY glGetUnsignedBytei_vEXT (GLenum target, GLuint index, GLubyte *data); +GL_APICALL void GL_APIENTRY glDeleteMemoryObjectsEXT (GLsizei n, const GLuint *memoryObjects); +GL_APICALL GLboolean GL_APIENTRY glIsMemoryObjectEXT (GLuint memoryObject); +GL_APICALL void GL_APIENTRY glCreateMemoryObjectsEXT (GLsizei n, GLuint *memoryObjects); +GL_APICALL void GL_APIENTRY glMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, const GLint *params); +GL_APICALL void GL_APIENTRY glGetMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glTexStorageMem2DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); +GL_APICALL void GL_APIENTRY glTexStorageMem2DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +GL_APICALL void GL_APIENTRY glTexStorageMem3DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); +GL_APICALL void GL_APIENTRY glTexStorageMem3DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +GL_APICALL void GL_APIENTRY glBufferStorageMemEXT (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); +GL_APICALL void GL_APIENTRY glTextureStorageMem2DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); +GL_APICALL void GL_APIENTRY glTextureStorageMem2DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +GL_APICALL void GL_APIENTRY glTextureStorageMem3DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); +GL_APICALL void GL_APIENTRY glTextureStorageMem3DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); +GL_APICALL void GL_APIENTRY glNamedBufferStorageMemEXT (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); +#endif +#endif /* GL_EXT_memory_object */ + +#ifndef GL_EXT_memory_object_fd +#define GL_EXT_memory_object_fd 1 +#define GL_HANDLE_TYPE_OPAQUE_FD_EXT 0x9586 +typedef void (GL_APIENTRYP PFNGLIMPORTMEMORYFDEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, GLint fd); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glImportMemoryFdEXT (GLuint memory, GLuint64 size, GLenum handleType, GLint fd); +#endif +#endif /* GL_EXT_memory_object_fd */ + +#ifndef GL_EXT_memory_object_win32 +#define GL_EXT_memory_object_win32 1 +#define GL_HANDLE_TYPE_OPAQUE_WIN32_EXT 0x9587 +#define GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT 0x9588 +#define GL_DEVICE_LUID_EXT 0x9599 +#define GL_DEVICE_NODE_MASK_EXT 0x959A +#define GL_LUID_SIZE_EXT 8 +#define GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT 0x9589 +#define GL_HANDLE_TYPE_D3D12_RESOURCE_EXT 0x958A +#define GL_HANDLE_TYPE_D3D11_IMAGE_EXT 0x958B +#define GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT 0x958C +typedef void (GL_APIENTRYP PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, void *handle); +typedef void (GL_APIENTRYP PFNGLIMPORTMEMORYWIN32NAMEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, const void *name); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glImportMemoryWin32HandleEXT (GLuint memory, GLuint64 size, GLenum handleType, void *handle); +GL_APICALL void GL_APIENTRY glImportMemoryWin32NameEXT (GLuint memory, GLuint64 size, GLenum handleType, const void *name); +#endif +#endif /* GL_EXT_memory_object_win32 */ + +#ifndef GL_EXT_multi_draw_arrays +#define GL_EXT_multi_draw_arrays 1 +typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); +#endif +#endif /* GL_EXT_multi_draw_arrays */ + +#ifndef GL_EXT_multi_draw_indirect +#define GL_EXT_multi_draw_indirect 1 +typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC) (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); +typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glMultiDrawArraysIndirectEXT (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); +GL_APICALL void GL_APIENTRY glMultiDrawElementsIndirectEXT (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); +#endif +#endif /* GL_EXT_multi_draw_indirect */ + +#ifndef GL_EXT_multisampled_compatibility +#define GL_EXT_multisampled_compatibility 1 +#define GL_MULTISAMPLE_EXT 0x809D +#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F +#endif /* GL_EXT_multisampled_compatibility */ + +#ifndef GL_EXT_multisampled_render_to_texture +#define GL_EXT_multisampled_render_to_texture 1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C +#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 +#define GL_MAX_SAMPLES_EXT 0x8D57 +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); +#endif +#endif /* GL_EXT_multisampled_render_to_texture */ + +#ifndef GL_EXT_multisampled_render_to_texture2 +#define GL_EXT_multisampled_render_to_texture2 1 +#endif /* GL_EXT_multisampled_render_to_texture2 */ + +#ifndef GL_EXT_multiview_draw_buffers +#define GL_EXT_multiview_draw_buffers 1 +#define GL_COLOR_ATTACHMENT_EXT 0x90F0 +#define GL_MULTIVIEW_EXT 0x90F1 +#define GL_DRAW_BUFFER_EXT 0x0C01 +#define GL_READ_BUFFER_EXT 0x0C02 +#define GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90F2 +typedef void (GL_APIENTRYP PFNGLREADBUFFERINDEXEDEXTPROC) (GLenum src, GLint index); +typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSINDEXEDEXTPROC) (GLint n, const GLenum *location, const GLint *indices); +typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VEXTPROC) (GLenum target, GLuint index, GLint *data); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glReadBufferIndexedEXT (GLenum src, GLint index); +GL_APICALL void GL_APIENTRY glDrawBuffersIndexedEXT (GLint n, const GLenum *location, const GLint *indices); +GL_APICALL void GL_APIENTRY glGetIntegeri_vEXT (GLenum target, GLuint index, GLint *data); +#endif +#endif /* GL_EXT_multiview_draw_buffers */ + +#ifndef GL_EXT_multiview_tessellation_geometry_shader +#define GL_EXT_multiview_tessellation_geometry_shader 1 +#endif /* GL_EXT_multiview_tessellation_geometry_shader */ + +#ifndef GL_EXT_multiview_texture_multisample +#define GL_EXT_multiview_texture_multisample 1 +#endif /* GL_EXT_multiview_texture_multisample */ + +#ifndef GL_EXT_multiview_timer_query +#define GL_EXT_multiview_timer_query 1 +#endif /* GL_EXT_multiview_timer_query */ + +#ifndef GL_EXT_occlusion_query_boolean +#define GL_EXT_occlusion_query_boolean 1 +#define GL_ANY_SAMPLES_PASSED_EXT 0x8C2F +#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A +#endif /* GL_EXT_occlusion_query_boolean */ + +#ifndef GL_EXT_polygon_offset_clamp +#define GL_EXT_polygon_offset_clamp 1 +#define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B +typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETCLAMPEXTPROC) (GLfloat factor, GLfloat units, GLfloat clamp); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glPolygonOffsetClampEXT (GLfloat factor, GLfloat units, GLfloat clamp); +#endif +#endif /* GL_EXT_polygon_offset_clamp */ + +#ifndef GL_EXT_post_depth_coverage +#define GL_EXT_post_depth_coverage 1 +#endif /* GL_EXT_post_depth_coverage */ + +#ifndef GL_EXT_primitive_bounding_box +#define GL_EXT_primitive_bounding_box 1 +#define GL_PRIMITIVE_BOUNDING_BOX_EXT 0x92BE +typedef void (GL_APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXEXTPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glPrimitiveBoundingBoxEXT (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); +#endif +#endif /* GL_EXT_primitive_bounding_box */ + +#ifndef GL_EXT_protected_textures +#define GL_EXT_protected_textures 1 +#define GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT 0x00000010 +#define GL_TEXTURE_PROTECTED_EXT 0x8BFA +#endif /* GL_EXT_protected_textures */ + +#ifndef GL_EXT_pvrtc_sRGB +#define GL_EXT_pvrtc_sRGB 1 +#define GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT 0x8A54 +#define GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT 0x8A55 +#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT 0x8A56 +#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT 0x8A57 +#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG 0x93F0 +#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG 0x93F1 +#endif /* GL_EXT_pvrtc_sRGB */ + +#ifndef GL_EXT_raster_multisample +#define GL_EXT_raster_multisample 1 +#define GL_RASTER_MULTISAMPLE_EXT 0x9327 +#define GL_RASTER_SAMPLES_EXT 0x9328 +#define GL_MAX_RASTER_SAMPLES_EXT 0x9329 +#define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A +#define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B +#define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C +typedef void (GL_APIENTRYP PFNGLRASTERSAMPLESEXTPROC) (GLuint samples, GLboolean fixedsamplelocations); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glRasterSamplesEXT (GLuint samples, GLboolean fixedsamplelocations); +#endif +#endif /* GL_EXT_raster_multisample */ + +#ifndef GL_EXT_read_format_bgra +#define GL_EXT_read_format_bgra 1 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366 +#endif /* GL_EXT_read_format_bgra */ + +#ifndef GL_EXT_render_snorm +#define GL_EXT_render_snorm 1 +#define GL_R8_SNORM 0x8F94 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGBA8_SNORM 0x8F97 +#define GL_R16_SNORM_EXT 0x8F98 +#define GL_RG16_SNORM_EXT 0x8F99 +#define GL_RGBA16_SNORM_EXT 0x8F9B +#endif /* GL_EXT_render_snorm */ + +#ifndef GL_EXT_robustness +#define GL_EXT_robustness 1 +#define GL_GUILTY_CONTEXT_RESET_EXT 0x8253 +#define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254 +#define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255 +#define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3 +#define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256 +#define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252 +#define GL_NO_RESET_NOTIFICATION_EXT 0x8261 +typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void); +typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); +typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusEXT (void); +GL_APICALL void GL_APIENTRY glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +GL_APICALL void GL_APIENTRY glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); +GL_APICALL void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint *params); +#endif +#endif /* GL_EXT_robustness */ + +#ifndef GL_EXT_sRGB +#define GL_EXT_sRGB 1 +#define GL_SRGB_EXT 0x8C40 +#define GL_SRGB_ALPHA_EXT 0x8C42 +#define GL_SRGB8_ALPHA8_EXT 0x8C43 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210 +#endif /* GL_EXT_sRGB */ + +#ifndef GL_EXT_sRGB_write_control +#define GL_EXT_sRGB_write_control 1 +#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 +#endif /* GL_EXT_sRGB_write_control */ + +#ifndef GL_EXT_semaphore +#define GL_EXT_semaphore 1 +#define GL_LAYOUT_GENERAL_EXT 0x958D +#define GL_LAYOUT_COLOR_ATTACHMENT_EXT 0x958E +#define GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT 0x958F +#define GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT 0x9590 +#define GL_LAYOUT_SHADER_READ_ONLY_EXT 0x9591 +#define GL_LAYOUT_TRANSFER_SRC_EXT 0x9592 +#define GL_LAYOUT_TRANSFER_DST_EXT 0x9593 +#define GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT 0x9530 +#define GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT 0x9531 +typedef void (GL_APIENTRYP PFNGLGENSEMAPHORESEXTPROC) (GLsizei n, GLuint *semaphores); +typedef void (GL_APIENTRYP PFNGLDELETESEMAPHORESEXTPROC) (GLsizei n, const GLuint *semaphores); +typedef GLboolean (GL_APIENTRYP PFNGLISSEMAPHOREEXTPROC) (GLuint semaphore); +typedef void (GL_APIENTRYP PFNGLSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, const GLuint64 *params); +typedef void (GL_APIENTRYP PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, GLuint64 *params); +typedef void (GL_APIENTRYP PFNGLWAITSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); +typedef void (GL_APIENTRYP PFNGLSIGNALSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGenSemaphoresEXT (GLsizei n, GLuint *semaphores); +GL_APICALL void GL_APIENTRY glDeleteSemaphoresEXT (GLsizei n, const GLuint *semaphores); +GL_APICALL GLboolean GL_APIENTRY glIsSemaphoreEXT (GLuint semaphore); +GL_APICALL void GL_APIENTRY glSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, const GLuint64 *params); +GL_APICALL void GL_APIENTRY glGetSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, GLuint64 *params); +GL_APICALL void GL_APIENTRY glWaitSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); +GL_APICALL void GL_APIENTRY glSignalSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); +#endif +#endif /* GL_EXT_semaphore */ + +#ifndef GL_EXT_semaphore_fd +#define GL_EXT_semaphore_fd 1 +typedef void (GL_APIENTRYP PFNGLIMPORTSEMAPHOREFDEXTPROC) (GLuint semaphore, GLenum handleType, GLint fd); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glImportSemaphoreFdEXT (GLuint semaphore, GLenum handleType, GLint fd); +#endif +#endif /* GL_EXT_semaphore_fd */ + +#ifndef GL_EXT_semaphore_win32 +#define GL_EXT_semaphore_win32 1 +#define GL_HANDLE_TYPE_D3D12_FENCE_EXT 0x9594 +#define GL_D3D12_FENCE_VALUE_EXT 0x9595 +typedef void (GL_APIENTRYP PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC) (GLuint semaphore, GLenum handleType, void *handle); +typedef void (GL_APIENTRYP PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC) (GLuint semaphore, GLenum handleType, const void *name); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glImportSemaphoreWin32HandleEXT (GLuint semaphore, GLenum handleType, void *handle); +GL_APICALL void GL_APIENTRY glImportSemaphoreWin32NameEXT (GLuint semaphore, GLenum handleType, const void *name); +#endif +#endif /* GL_EXT_semaphore_win32 */ + +#ifndef GL_EXT_separate_depth_stencil +#define GL_EXT_separate_depth_stencil 1 +#endif /* GL_EXT_separate_depth_stencil */ + +#ifndef GL_EXT_separate_shader_objects +#define GL_EXT_separate_shader_objects 1 +#define GL_ACTIVE_PROGRAM_EXT 0x8259 +#define GL_VERTEX_SHADER_BIT_EXT 0x00000001 +#define GL_FRAGMENT_SHADER_BIT_EXT 0x00000002 +#define GL_ALL_SHADER_BITS_EXT 0xFFFFFFFF +#define GL_PROGRAM_SEPARABLE_EXT 0x8258 +#define GL_PROGRAM_PIPELINE_BINDING_EXT 0x825A +typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMEXTPROC) (GLuint pipeline, GLuint program); +typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEEXTPROC) (GLuint pipeline); +typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVEXTPROC) (GLenum type, GLsizei count, const GLchar **strings); +typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESEXTPROC) (GLsizei n, const GLuint *pipelines); +typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESEXTPROC) (GLsizei n, GLuint *pipelines); +typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVEXTPROC) (GLuint pipeline, GLenum pname, GLint *params); +typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEEXTPROC) (GLuint pipeline); +typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESEXTPROC) (GLuint pipeline, GLbitfield stages, GLuint program); +typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEEXTPROC) (GLuint pipeline); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glActiveShaderProgramEXT (GLuint pipeline, GLuint program); +GL_APICALL void GL_APIENTRY glBindProgramPipelineEXT (GLuint pipeline); +GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramvEXT (GLenum type, GLsizei count, const GLchar **strings); +GL_APICALL void GL_APIENTRY glDeleteProgramPipelinesEXT (GLsizei n, const GLuint *pipelines); +GL_APICALL void GL_APIENTRY glGenProgramPipelinesEXT (GLsizei n, GLuint *pipelines); +GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLogEXT (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GL_APICALL void GL_APIENTRY glGetProgramPipelineivEXT (GLuint pipeline, GLenum pname, GLint *params); +GL_APICALL GLboolean GL_APIENTRY glIsProgramPipelineEXT (GLuint pipeline); +GL_APICALL void GL_APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value); +GL_APICALL void GL_APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat v0); +GL_APICALL void GL_APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint v0); +GL_APICALL void GL_APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GL_APICALL void GL_APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1); +GL_APICALL void GL_APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint v0, GLint v1); +GL_APICALL void GL_APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GL_APICALL void GL_APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GL_APICALL void GL_APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +GL_APICALL void GL_APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GL_APICALL void GL_APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GL_APICALL void GL_APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GL_APICALL void GL_APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); +GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glUseProgramStagesEXT (GLuint pipeline, GLbitfield stages, GLuint program); +GL_APICALL void GL_APIENTRY glValidateProgramPipelineEXT (GLuint pipeline); +GL_APICALL void GL_APIENTRY glProgramUniform1uiEXT (GLuint program, GLint location, GLuint v0); +GL_APICALL void GL_APIENTRY glProgramUniform2uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1); +GL_APICALL void GL_APIENTRY glProgramUniform3uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +GL_APICALL void GL_APIENTRY glProgramUniform4uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +GL_APICALL void GL_APIENTRY glProgramUniform1uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); +GL_APICALL void GL_APIENTRY glProgramUniform2uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); +GL_APICALL void GL_APIENTRY glProgramUniform3uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); +GL_APICALL void GL_APIENTRY glProgramUniform4uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); +GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#endif +#endif /* GL_EXT_separate_shader_objects */ + +#ifndef GL_EXT_shader_framebuffer_fetch +#define GL_EXT_shader_framebuffer_fetch 1 +#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52 +#endif /* GL_EXT_shader_framebuffer_fetch */ + +#ifndef GL_EXT_shader_framebuffer_fetch_non_coherent +#define GL_EXT_shader_framebuffer_fetch_non_coherent 1 +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glFramebufferFetchBarrierEXT (void); +#endif +#endif /* GL_EXT_shader_framebuffer_fetch_non_coherent */ + +#ifndef GL_EXT_shader_group_vote +#define GL_EXT_shader_group_vote 1 +#endif /* GL_EXT_shader_group_vote */ + +#ifndef GL_EXT_shader_implicit_conversions +#define GL_EXT_shader_implicit_conversions 1 +#endif /* GL_EXT_shader_implicit_conversions */ + +#ifndef GL_EXT_shader_integer_mix +#define GL_EXT_shader_integer_mix 1 +#endif /* GL_EXT_shader_integer_mix */ + +#ifndef GL_EXT_shader_io_blocks +#define GL_EXT_shader_io_blocks 1 +#endif /* GL_EXT_shader_io_blocks */ + +#ifndef GL_EXT_shader_non_constant_global_initializers +#define GL_EXT_shader_non_constant_global_initializers 1 +#endif /* GL_EXT_shader_non_constant_global_initializers */ + +#ifndef GL_EXT_shader_pixel_local_storage +#define GL_EXT_shader_pixel_local_storage 1 +#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT 0x8F63 +#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT 0x8F67 +#define GL_SHADER_PIXEL_LOCAL_STORAGE_EXT 0x8F64 +#endif /* GL_EXT_shader_pixel_local_storage */ + +#ifndef GL_EXT_shader_pixel_local_storage2 +#define GL_EXT_shader_pixel_local_storage2 1 +#define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT 0x9650 +#define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT 0x9651 +#define GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT 0x9652 +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target, GLsizei size); +typedef GLsizei (GL_APIENTRYP PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target); +typedef void (GL_APIENTRYP PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC) (GLsizei offset, GLsizei n, const GLuint *values); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glFramebufferPixelLocalStorageSizeEXT (GLuint target, GLsizei size); +GL_APICALL GLsizei GL_APIENTRY glGetFramebufferPixelLocalStorageSizeEXT (GLuint target); +GL_APICALL void GL_APIENTRY glClearPixelLocalStorageuiEXT (GLsizei offset, GLsizei n, const GLuint *values); +#endif +#endif /* GL_EXT_shader_pixel_local_storage2 */ + +#ifndef GL_EXT_shader_samples_identical +#define GL_EXT_shader_samples_identical 1 +#endif /* GL_EXT_shader_samples_identical */ + +#ifndef GL_EXT_shader_texture_lod +#define GL_EXT_shader_texture_lod 1 +#endif /* GL_EXT_shader_texture_lod */ + +#ifndef GL_EXT_shadow_samplers +#define GL_EXT_shadow_samplers 1 +#define GL_TEXTURE_COMPARE_MODE_EXT 0x884C +#define GL_TEXTURE_COMPARE_FUNC_EXT 0x884D +#define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E +#define GL_SAMPLER_2D_SHADOW_EXT 0x8B62 +#endif /* GL_EXT_shadow_samplers */ + +#ifndef GL_EXT_sparse_texture +#define GL_EXT_sparse_texture 1 +#define GL_TEXTURE_SPARSE_EXT 0x91A6 +#define GL_VIRTUAL_PAGE_SIZE_INDEX_EXT 0x91A7 +#define GL_NUM_SPARSE_LEVELS_EXT 0x91AA +#define GL_NUM_VIRTUAL_PAGE_SIZES_EXT 0x91A8 +#define GL_VIRTUAL_PAGE_SIZE_X_EXT 0x9195 +#define GL_VIRTUAL_PAGE_SIZE_Y_EXT 0x9196 +#define GL_VIRTUAL_PAGE_SIZE_Z_EXT 0x9197 +#define GL_TEXTURE_2D_ARRAY 0x8C1A +#define GL_TEXTURE_3D 0x806F +#define GL_MAX_SPARSE_TEXTURE_SIZE_EXT 0x9198 +#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT 0x9199 +#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT 0x919A +#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT 0x91A9 +typedef void (GL_APIENTRYP PFNGLTEXPAGECOMMITMENTEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glTexPageCommitmentEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); +#endif +#endif /* GL_EXT_sparse_texture */ + +#ifndef GL_EXT_sparse_texture2 +#define GL_EXT_sparse_texture2 1 +#endif /* GL_EXT_sparse_texture2 */ + +#ifndef GL_EXT_tessellation_point_size +#define GL_EXT_tessellation_point_size 1 +#endif /* GL_EXT_tessellation_point_size */ + +#ifndef GL_EXT_tessellation_shader +#define GL_EXT_tessellation_shader 1 +#define GL_PATCHES_EXT 0x000E +#define GL_PATCH_VERTICES_EXT 0x8E72 +#define GL_TESS_CONTROL_OUTPUT_VERTICES_EXT 0x8E75 +#define GL_TESS_GEN_MODE_EXT 0x8E76 +#define GL_TESS_GEN_SPACING_EXT 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER_EXT 0x8E78 +#define GL_TESS_GEN_POINT_MODE_EXT 0x8E79 +#define GL_ISOLINES_EXT 0x8E7A +#define GL_QUADS_EXT 0x0007 +#define GL_FRACTIONAL_ODD_EXT 0x8E7B +#define GL_FRACTIONAL_EVEN_EXT 0x8E7C +#define GL_MAX_PATCH_VERTICES_EXT 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL_EXT 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS_EXT 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT 0x8E86 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT 0x8E8A +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E1F +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT 0x92CD +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT 0x92CE +#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT 0x92D3 +#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT 0x92D4 +#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT 0x90CB +#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT 0x90CC +#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT 0x90D8 +#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT 0x90D9 +#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 +#define GL_IS_PER_PATCH_EXT 0x92E7 +#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT 0x9307 +#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT 0x9308 +#define GL_TESS_CONTROL_SHADER_EXT 0x8E88 +#define GL_TESS_EVALUATION_SHADER_EXT 0x8E87 +#define GL_TESS_CONTROL_SHADER_BIT_EXT 0x00000008 +#define GL_TESS_EVALUATION_SHADER_BIT_EXT 0x00000010 +typedef void (GL_APIENTRYP PFNGLPATCHPARAMETERIEXTPROC) (GLenum pname, GLint value); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glPatchParameteriEXT (GLenum pname, GLint value); +#endif +#endif /* GL_EXT_tessellation_shader */ + +#ifndef GL_EXT_texture_border_clamp +#define GL_EXT_texture_border_clamp 1 +#define GL_TEXTURE_BORDER_COLOR_EXT 0x1004 +#define GL_CLAMP_TO_BORDER_EXT 0x812D +typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); +typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); +typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVEXTPROC) (GLuint sampler, GLenum pname, const GLint *param); +typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVEXTPROC) (GLuint sampler, GLenum pname, const GLuint *param); +typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVEXTPROC) (GLuint sampler, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVEXTPROC) (GLuint sampler, GLenum pname, GLuint *params); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glTexParameterIivEXT (GLenum target, GLenum pname, const GLint *params); +GL_APICALL void GL_APIENTRY glTexParameterIuivEXT (GLenum target, GLenum pname, const GLuint *params); +GL_APICALL void GL_APIENTRY glGetTexParameterIivEXT (GLenum target, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glGetTexParameterIuivEXT (GLenum target, GLenum pname, GLuint *params); +GL_APICALL void GL_APIENTRY glSamplerParameterIivEXT (GLuint sampler, GLenum pname, const GLint *param); +GL_APICALL void GL_APIENTRY glSamplerParameterIuivEXT (GLuint sampler, GLenum pname, const GLuint *param); +GL_APICALL void GL_APIENTRY glGetSamplerParameterIivEXT (GLuint sampler, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glGetSamplerParameterIuivEXT (GLuint sampler, GLenum pname, GLuint *params); +#endif +#endif /* GL_EXT_texture_border_clamp */ + +#ifndef GL_EXT_texture_buffer +#define GL_EXT_texture_buffer 1 +#define GL_TEXTURE_BUFFER_EXT 0x8C2A +#define GL_TEXTURE_BUFFER_BINDING_EXT 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D +#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT 0x919F +#define GL_SAMPLER_BUFFER_EXT 0x8DC2 +#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 +#define GL_IMAGE_BUFFER_EXT 0x9051 +#define GL_INT_IMAGE_BUFFER_EXT 0x905C +#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 +#define GL_TEXTURE_BUFFER_OFFSET_EXT 0x919D +#define GL_TEXTURE_BUFFER_SIZE_EXT 0x919E +typedef void (GL_APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); +typedef void (GL_APIENTRYP PFNGLTEXBUFFERRANGEEXTPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glTexBufferEXT (GLenum target, GLenum internalformat, GLuint buffer); +GL_APICALL void GL_APIENTRY glTexBufferRangeEXT (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +#endif +#endif /* GL_EXT_texture_buffer */ + +#ifndef GL_EXT_texture_compression_astc_decode_mode +#define GL_EXT_texture_compression_astc_decode_mode 1 +#define GL_TEXTURE_ASTC_DECODE_PRECISION_EXT 0x8F69 +#endif /* GL_EXT_texture_compression_astc_decode_mode */ + +#ifndef GL_EXT_texture_compression_bptc +#define GL_EXT_texture_compression_bptc 1 +#define GL_COMPRESSED_RGBA_BPTC_UNORM_EXT 0x8E8C +#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT 0x8E8D +#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT 0x8E8E +#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT 0x8E8F +#endif /* GL_EXT_texture_compression_bptc */ + +#ifndef GL_EXT_texture_compression_dxt1 +#define GL_EXT_texture_compression_dxt1 1 +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#endif /* GL_EXT_texture_compression_dxt1 */ + +#ifndef GL_EXT_texture_compression_rgtc +#define GL_EXT_texture_compression_rgtc 1 +#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC +#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD +#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE +#endif /* GL_EXT_texture_compression_rgtc */ + +#ifndef GL_EXT_texture_compression_s3tc +#define GL_EXT_texture_compression_s3tc 1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +#endif /* GL_EXT_texture_compression_s3tc */ + +#ifndef GL_EXT_texture_compression_s3tc_srgb +#define GL_EXT_texture_compression_s3tc_srgb 1 +#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 +#endif /* GL_EXT_texture_compression_s3tc_srgb */ + +#ifndef GL_EXT_texture_cube_map_array +#define GL_EXT_texture_cube_map_array 1 +#define GL_TEXTURE_CUBE_MAP_ARRAY_EXT 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT 0x900A +#define GL_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900F +#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 +#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A +#endif /* GL_EXT_texture_cube_map_array */ + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_EXT_texture_filter_anisotropic 1 +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +#endif /* GL_EXT_texture_filter_anisotropic */ + +#ifndef GL_EXT_texture_filter_minmax +#define GL_EXT_texture_filter_minmax 1 +#define GL_TEXTURE_REDUCTION_MODE_EXT 0x9366 +#define GL_WEIGHTED_AVERAGE_EXT 0x9367 +#endif /* GL_EXT_texture_filter_minmax */ + +#ifndef GL_EXT_texture_format_BGRA8888 +#define GL_EXT_texture_format_BGRA8888 1 +#endif /* GL_EXT_texture_format_BGRA8888 */ + +#ifndef GL_EXT_texture_format_sRGB_override +#define GL_EXT_texture_format_sRGB_override 1 +#define GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT 0x8FBF +#endif /* GL_EXT_texture_format_sRGB_override */ + +#ifndef GL_EXT_texture_mirror_clamp_to_edge +#define GL_EXT_texture_mirror_clamp_to_edge 1 +#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 +#endif /* GL_EXT_texture_mirror_clamp_to_edge */ + +#ifndef GL_EXT_texture_norm16 +#define GL_EXT_texture_norm16 1 +#define GL_R16_EXT 0x822A +#define GL_RG16_EXT 0x822C +#define GL_RGBA16_EXT 0x805B +#define GL_RGB16_EXT 0x8054 +#define GL_RGB16_SNORM_EXT 0x8F9A +#endif /* GL_EXT_texture_norm16 */ + +#ifndef GL_EXT_texture_query_lod +#define GL_EXT_texture_query_lod 1 +#endif /* GL_EXT_texture_query_lod */ + +#ifndef GL_EXT_texture_rg +#define GL_EXT_texture_rg 1 +#define GL_RED_EXT 0x1903 +#define GL_RG_EXT 0x8227 +#define GL_R8_EXT 0x8229 +#define GL_RG8_EXT 0x822B +#endif /* GL_EXT_texture_rg */ + +#ifndef GL_EXT_texture_sRGB_R8 +#define GL_EXT_texture_sRGB_R8 1 +#define GL_SR8_EXT 0x8FBD +#endif /* GL_EXT_texture_sRGB_R8 */ + +#ifndef GL_EXT_texture_sRGB_RG8 +#define GL_EXT_texture_sRGB_RG8 1 +#define GL_SRG8_EXT 0x8FBE +#endif /* GL_EXT_texture_sRGB_RG8 */ + +#ifndef GL_EXT_texture_sRGB_decode +#define GL_EXT_texture_sRGB_decode 1 +#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 +#define GL_DECODE_EXT 0x8A49 +#define GL_SKIP_DECODE_EXT 0x8A4A +#endif /* GL_EXT_texture_sRGB_decode */ + +#ifndef GL_EXT_texture_shadow_lod +#define GL_EXT_texture_shadow_lod 1 +#endif /* GL_EXT_texture_shadow_lod */ + +#ifndef GL_EXT_texture_storage +#define GL_EXT_texture_storage 1 +#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F +#define GL_ALPHA8_EXT 0x803C +#define GL_LUMINANCE8_EXT 0x8040 +#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 +#define GL_RGBA32F_EXT 0x8814 +#define GL_RGB32F_EXT 0x8815 +#define GL_ALPHA32F_EXT 0x8816 +#define GL_LUMINANCE32F_EXT 0x8818 +#define GL_LUMINANCE_ALPHA32F_EXT 0x8819 +#define GL_ALPHA16F_EXT 0x881C +#define GL_LUMINANCE16F_EXT 0x881E +#define GL_LUMINANCE_ALPHA16F_EXT 0x881F +#define GL_R32F_EXT 0x822E +#define GL_RG32F_EXT 0x8230 +typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +GL_APICALL void GL_APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +GL_APICALL void GL_APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +GL_APICALL void GL_APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +#endif +#endif /* GL_EXT_texture_storage */ + +#ifndef GL_EXT_texture_storage_compression +#define GL_EXT_texture_storage_compression 1 +#define GL_NUM_SURFACE_COMPRESSION_FIXED_RATES_EXT 0x8F6E +#define GL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT 0x96C4 +#define GL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT 0x96C5 +#define GL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT 0x96C6 +#define GL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT 0x96C7 +#define GL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT 0x96C8 +#define GL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT 0x96C9 +#define GL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT 0x96CA +#define GL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT 0x96CB +#define GL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT 0x96CC +#define GL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT 0x96CD +#define GL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT 0x96CE +#define GL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT 0x96CF +typedef void (GL_APIENTRYP PFNGLTEXSTORAGEATTRIBS2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, const GLint* attrib_list); +typedef void (GL_APIENTRYP PFNGLTEXSTORAGEATTRIBS3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, const GLint* attrib_list); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glTexStorageAttribs2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, const GLint* attrib_list); +GL_APICALL void GL_APIENTRY glTexStorageAttribs3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, const GLint* attrib_list); +#endif +#endif /* GL_EXT_texture_storage_compression */ + +#ifndef GL_EXT_texture_type_2_10_10_10_REV +#define GL_EXT_texture_type_2_10_10_10_REV 1 +#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 +#endif /* GL_EXT_texture_type_2_10_10_10_REV */ + +#ifndef GL_EXT_texture_view +#define GL_EXT_texture_view 1 +#define GL_TEXTURE_VIEW_MIN_LEVEL_EXT 0x82DB +#define GL_TEXTURE_VIEW_NUM_LEVELS_EXT 0x82DC +#define GL_TEXTURE_VIEW_MIN_LAYER_EXT 0x82DD +#define GL_TEXTURE_VIEW_NUM_LAYERS_EXT 0x82DE +typedef void (GL_APIENTRYP PFNGLTEXTUREVIEWEXTPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glTextureViewEXT (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); +#endif +#endif /* GL_EXT_texture_view */ + +#ifndef GL_EXT_unpack_subimage +#define GL_EXT_unpack_subimage 1 +#define GL_UNPACK_ROW_LENGTH_EXT 0x0CF2 +#define GL_UNPACK_SKIP_ROWS_EXT 0x0CF3 +#define GL_UNPACK_SKIP_PIXELS_EXT 0x0CF4 +#endif /* GL_EXT_unpack_subimage */ + +#ifndef GL_EXT_win32_keyed_mutex +#define GL_EXT_win32_keyed_mutex 1 +typedef GLboolean (GL_APIENTRYP PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key, GLuint timeout); +typedef GLboolean (GL_APIENTRYP PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL GLboolean GL_APIENTRY glAcquireKeyedMutexWin32EXT (GLuint memory, GLuint64 key, GLuint timeout); +GL_APICALL GLboolean GL_APIENTRY glReleaseKeyedMutexWin32EXT (GLuint memory, GLuint64 key); +#endif +#endif /* GL_EXT_win32_keyed_mutex */ + +#ifndef GL_EXT_window_rectangles +#define GL_EXT_window_rectangles 1 +#define GL_INCLUSIVE_EXT 0x8F10 +#define GL_EXCLUSIVE_EXT 0x8F11 +#define GL_WINDOW_RECTANGLE_EXT 0x8F12 +#define GL_WINDOW_RECTANGLE_MODE_EXT 0x8F13 +#define GL_MAX_WINDOW_RECTANGLES_EXT 0x8F14 +#define GL_NUM_WINDOW_RECTANGLES_EXT 0x8F15 +typedef void (GL_APIENTRYP PFNGLWINDOWRECTANGLESEXTPROC) (GLenum mode, GLsizei count, const GLint *box); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glWindowRectanglesEXT (GLenum mode, GLsizei count, const GLint *box); +#endif +#endif /* GL_EXT_window_rectangles */ + +#ifndef GL_FJ_shader_binary_GCCSO +#define GL_FJ_shader_binary_GCCSO 1 +#define GL_GCCSO_SHADER_BINARY_FJ 0x9260 +#endif /* GL_FJ_shader_binary_GCCSO */ + +#ifndef GL_IMG_bindless_texture +#define GL_IMG_bindless_texture 1 +typedef GLuint64 (GL_APIENTRYP PFNGLGETTEXTUREHANDLEIMGPROC) (GLuint texture); +typedef GLuint64 (GL_APIENTRYP PFNGLGETTEXTURESAMPLERHANDLEIMGPROC) (GLuint texture, GLuint sampler); +typedef void (GL_APIENTRYP PFNGLUNIFORMHANDLEUI64IMGPROC) (GLint location, GLuint64 value); +typedef void (GL_APIENTRYP PFNGLUNIFORMHANDLEUI64VIMGPROC) (GLint location, GLsizei count, const GLuint64 *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC) (GLuint program, GLint location, GLuint64 value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL GLuint64 GL_APIENTRY glGetTextureHandleIMG (GLuint texture); +GL_APICALL GLuint64 GL_APIENTRY glGetTextureSamplerHandleIMG (GLuint texture, GLuint sampler); +GL_APICALL void GL_APIENTRY glUniformHandleui64IMG (GLint location, GLuint64 value); +GL_APICALL void GL_APIENTRY glUniformHandleui64vIMG (GLint location, GLsizei count, const GLuint64 *value); +GL_APICALL void GL_APIENTRY glProgramUniformHandleui64IMG (GLuint program, GLint location, GLuint64 value); +GL_APICALL void GL_APIENTRY glProgramUniformHandleui64vIMG (GLuint program, GLint location, GLsizei count, const GLuint64 *values); +#endif +#endif /* GL_IMG_bindless_texture */ + +#ifndef GL_IMG_framebuffer_downsample +#define GL_IMG_framebuffer_downsample 1 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG 0x913C +#define GL_NUM_DOWNSAMPLE_SCALES_IMG 0x913D +#define GL_DOWNSAMPLE_SCALES_IMG 0x913E +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG 0x913F +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale); +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glFramebufferTexture2DDownsampleIMG (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale); +GL_APICALL void GL_APIENTRY glFramebufferTextureLayerDownsampleIMG (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale); +#endif +#endif /* GL_IMG_framebuffer_downsample */ + +#ifndef GL_IMG_multisampled_render_to_texture +#define GL_IMG_multisampled_render_to_texture 1 +#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134 +#define GL_MAX_SAMPLES_IMG 0x9135 +#define GL_TEXTURE_SAMPLES_IMG 0x9136 +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); +#endif +#endif /* GL_IMG_multisampled_render_to_texture */ + +#ifndef GL_IMG_program_binary +#define GL_IMG_program_binary 1 +#define GL_SGX_PROGRAM_BINARY_IMG 0x9130 +#endif /* GL_IMG_program_binary */ + +#ifndef GL_IMG_read_format +#define GL_IMG_read_format 1 +#define GL_BGRA_IMG 0x80E1 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365 +#endif /* GL_IMG_read_format */ + +#ifndef GL_IMG_shader_binary +#define GL_IMG_shader_binary 1 +#define GL_SGX_BINARY_IMG 0x8C0A +#endif /* GL_IMG_shader_binary */ + +#ifndef GL_IMG_texture_compression_pvrtc +#define GL_IMG_texture_compression_pvrtc 1 +#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 +#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01 +#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 +#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03 +#endif /* GL_IMG_texture_compression_pvrtc */ + +#ifndef GL_IMG_texture_compression_pvrtc2 +#define GL_IMG_texture_compression_pvrtc2 1 +#define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG 0x9137 +#define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG 0x9138 +#endif /* GL_IMG_texture_compression_pvrtc2 */ + +#ifndef GL_IMG_texture_filter_cubic +#define GL_IMG_texture_filter_cubic 1 +#define GL_CUBIC_IMG 0x9139 +#define GL_CUBIC_MIPMAP_NEAREST_IMG 0x913A +#define GL_CUBIC_MIPMAP_LINEAR_IMG 0x913B +#endif /* GL_IMG_texture_filter_cubic */ + +#ifndef GL_INTEL_blackhole_render +#define GL_INTEL_blackhole_render 1 +#define GL_BLACKHOLE_RENDER_INTEL 0x83FC +#endif /* GL_INTEL_blackhole_render */ + +#ifndef GL_INTEL_conservative_rasterization +#define GL_INTEL_conservative_rasterization 1 +#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE +#endif /* GL_INTEL_conservative_rasterization */ + +#ifndef GL_INTEL_framebuffer_CMAA +#define GL_INTEL_framebuffer_CMAA 1 +typedef void (GL_APIENTRYP PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glApplyFramebufferAttachmentCMAAINTEL (void); +#endif +#endif /* GL_INTEL_framebuffer_CMAA */ + +#ifndef GL_INTEL_performance_query +#define GL_INTEL_performance_query 1 +#define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x00000000 +#define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x00000001 +#define GL_PERFQUERY_WAIT_INTEL 0x83FB +#define GL_PERFQUERY_FLUSH_INTEL 0x83FA +#define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9 +#define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0 +#define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1 +#define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2 +#define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3 +#define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4 +#define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5 +#define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8 +#define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9 +#define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA +#define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB +#define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC +#define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD +#define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE +#define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF +#define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500 +typedef void (GL_APIENTRYP PFNGLBEGINPERFQUERYINTELPROC) (GLuint queryHandle); +typedef void (GL_APIENTRYP PFNGLCREATEPERFQUERYINTELPROC) (GLuint queryId, GLuint *queryHandle); +typedef void (GL_APIENTRYP PFNGLDELETEPERFQUERYINTELPROC) (GLuint queryHandle); +typedef void (GL_APIENTRYP PFNGLENDPERFQUERYINTELPROC) (GLuint queryHandle); +typedef void (GL_APIENTRYP PFNGLGETFIRSTPERFQUERYIDINTELPROC) (GLuint *queryId); +typedef void (GL_APIENTRYP PFNGLGETNEXTPERFQUERYIDINTELPROC) (GLuint queryId, GLuint *nextQueryId); +typedef void (GL_APIENTRYP PFNGLGETPERFCOUNTERINFOINTELPROC) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); +typedef void (GL_APIENTRYP PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten); +typedef void (GL_APIENTRYP PFNGLGETPERFQUERYIDBYNAMEINTELPROC) (GLchar *queryName, GLuint *queryId); +typedef void (GL_APIENTRYP PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glBeginPerfQueryINTEL (GLuint queryHandle); +GL_APICALL void GL_APIENTRY glCreatePerfQueryINTEL (GLuint queryId, GLuint *queryHandle); +GL_APICALL void GL_APIENTRY glDeletePerfQueryINTEL (GLuint queryHandle); +GL_APICALL void GL_APIENTRY glEndPerfQueryINTEL (GLuint queryHandle); +GL_APICALL void GL_APIENTRY glGetFirstPerfQueryIdINTEL (GLuint *queryId); +GL_APICALL void GL_APIENTRY glGetNextPerfQueryIdINTEL (GLuint queryId, GLuint *nextQueryId); +GL_APICALL void GL_APIENTRY glGetPerfCounterInfoINTEL (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); +GL_APICALL void GL_APIENTRY glGetPerfQueryDataINTEL (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten); +GL_APICALL void GL_APIENTRY glGetPerfQueryIdByNameINTEL (GLchar *queryName, GLuint *queryId); +GL_APICALL void GL_APIENTRY glGetPerfQueryInfoINTEL (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); +#endif +#endif /* GL_INTEL_performance_query */ + +#ifndef GL_MESA_bgra +#define GL_MESA_bgra 1 +#define GL_BGR_EXT 0x80E0 +#endif /* GL_MESA_bgra */ + +#ifndef GL_MESA_framebuffer_flip_x +#define GL_MESA_framebuffer_flip_x 1 +#define GL_FRAMEBUFFER_FLIP_X_MESA 0x8BBC +#endif /* GL_MESA_framebuffer_flip_x */ + +#ifndef GL_MESA_framebuffer_flip_y +#define GL_MESA_framebuffer_flip_y 1 +#define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPARAMETERIMESAPROC) (GLenum target, GLenum pname, GLint param); +typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC) (GLenum target, GLenum pname, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glFramebufferParameteriMESA (GLenum target, GLenum pname, GLint param); +GL_APICALL void GL_APIENTRY glGetFramebufferParameterivMESA (GLenum target, GLenum pname, GLint *params); +#endif +#endif /* GL_MESA_framebuffer_flip_y */ + +#ifndef GL_MESA_framebuffer_swap_xy +#define GL_MESA_framebuffer_swap_xy 1 +#define GL_FRAMEBUFFER_SWAP_XY_MESA 0x8BBD +#endif /* GL_MESA_framebuffer_swap_xy */ + +#ifndef GL_MESA_program_binary_formats +#define GL_MESA_program_binary_formats 1 +#define GL_PROGRAM_BINARY_FORMAT_MESA 0x875F +#endif /* GL_MESA_program_binary_formats */ + +#ifndef GL_MESA_shader_integer_functions +#define GL_MESA_shader_integer_functions 1 +#endif /* GL_MESA_shader_integer_functions */ + +#ifndef GL_NVX_blend_equation_advanced_multi_draw_buffers +#define GL_NVX_blend_equation_advanced_multi_draw_buffers 1 +#endif /* GL_NVX_blend_equation_advanced_multi_draw_buffers */ + +#ifndef GL_NV_bindless_texture +#define GL_NV_bindless_texture 1 +typedef GLuint64 (GL_APIENTRYP PFNGLGETTEXTUREHANDLENVPROC) (GLuint texture); +typedef GLuint64 (GL_APIENTRYP PFNGLGETTEXTURESAMPLERHANDLENVPROC) (GLuint texture, GLuint sampler); +typedef void (GL_APIENTRYP PFNGLMAKETEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); +typedef void (GL_APIENTRYP PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC) (GLuint64 handle); +typedef GLuint64 (GL_APIENTRYP PFNGLGETIMAGEHANDLENVPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); +typedef void (GL_APIENTRYP PFNGLMAKEIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle, GLenum access); +typedef void (GL_APIENTRYP PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC) (GLuint64 handle); +typedef void (GL_APIENTRYP PFNGLUNIFORMHANDLEUI64NVPROC) (GLint location, GLuint64 value); +typedef void (GL_APIENTRYP PFNGLUNIFORMHANDLEUI64VNVPROC) (GLint location, GLsizei count, const GLuint64 *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC) (GLuint program, GLint location, GLuint64 value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); +typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); +typedef GLboolean (GL_APIENTRYP PFNGLISIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL GLuint64 GL_APIENTRY glGetTextureHandleNV (GLuint texture); +GL_APICALL GLuint64 GL_APIENTRY glGetTextureSamplerHandleNV (GLuint texture, GLuint sampler); +GL_APICALL void GL_APIENTRY glMakeTextureHandleResidentNV (GLuint64 handle); +GL_APICALL void GL_APIENTRY glMakeTextureHandleNonResidentNV (GLuint64 handle); +GL_APICALL GLuint64 GL_APIENTRY glGetImageHandleNV (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); +GL_APICALL void GL_APIENTRY glMakeImageHandleResidentNV (GLuint64 handle, GLenum access); +GL_APICALL void GL_APIENTRY glMakeImageHandleNonResidentNV (GLuint64 handle); +GL_APICALL void GL_APIENTRY glUniformHandleui64NV (GLint location, GLuint64 value); +GL_APICALL void GL_APIENTRY glUniformHandleui64vNV (GLint location, GLsizei count, const GLuint64 *value); +GL_APICALL void GL_APIENTRY glProgramUniformHandleui64NV (GLuint program, GLint location, GLuint64 value); +GL_APICALL void GL_APIENTRY glProgramUniformHandleui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64 *values); +GL_APICALL GLboolean GL_APIENTRY glIsTextureHandleResidentNV (GLuint64 handle); +GL_APICALL GLboolean GL_APIENTRY glIsImageHandleResidentNV (GLuint64 handle); +#endif +#endif /* GL_NV_bindless_texture */ + +#ifndef GL_NV_blend_equation_advanced +#define GL_NV_blend_equation_advanced 1 +#define GL_BLEND_OVERLAP_NV 0x9281 +#define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280 +#define GL_BLUE_NV 0x1905 +#define GL_COLORBURN_NV 0x929A +#define GL_COLORDODGE_NV 0x9299 +#define GL_CONJOINT_NV 0x9284 +#define GL_CONTRAST_NV 0x92A1 +#define GL_DARKEN_NV 0x9297 +#define GL_DIFFERENCE_NV 0x929E +#define GL_DISJOINT_NV 0x9283 +#define GL_DST_ATOP_NV 0x928F +#define GL_DST_IN_NV 0x928B +#define GL_DST_NV 0x9287 +#define GL_DST_OUT_NV 0x928D +#define GL_DST_OVER_NV 0x9289 +#define GL_EXCLUSION_NV 0x92A0 +#define GL_GREEN_NV 0x1904 +#define GL_HARDLIGHT_NV 0x929B +#define GL_HARDMIX_NV 0x92A9 +#define GL_HSL_COLOR_NV 0x92AF +#define GL_HSL_HUE_NV 0x92AD +#define GL_HSL_LUMINOSITY_NV 0x92B0 +#define GL_HSL_SATURATION_NV 0x92AE +#define GL_INVERT_OVG_NV 0x92B4 +#define GL_INVERT_RGB_NV 0x92A3 +#define GL_LIGHTEN_NV 0x9298 +#define GL_LINEARBURN_NV 0x92A5 +#define GL_LINEARDODGE_NV 0x92A4 +#define GL_LINEARLIGHT_NV 0x92A7 +#define GL_MINUS_CLAMPED_NV 0x92B3 +#define GL_MINUS_NV 0x929F +#define GL_MULTIPLY_NV 0x9294 +#define GL_OVERLAY_NV 0x9296 +#define GL_PINLIGHT_NV 0x92A8 +#define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2 +#define GL_PLUS_CLAMPED_NV 0x92B1 +#define GL_PLUS_DARKER_NV 0x9292 +#define GL_PLUS_NV 0x9291 +#define GL_RED_NV 0x1903 +#define GL_SCREEN_NV 0x9295 +#define GL_SOFTLIGHT_NV 0x929C +#define GL_SRC_ATOP_NV 0x928E +#define GL_SRC_IN_NV 0x928A +#define GL_SRC_NV 0x9286 +#define GL_SRC_OUT_NV 0x928C +#define GL_SRC_OVER_NV 0x9288 +#define GL_UNCORRELATED_NV 0x9282 +#define GL_VIVIDLIGHT_NV 0x92A6 +#define GL_XOR_NV 0x1506 +typedef void (GL_APIENTRYP PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint value); +typedef void (GL_APIENTRYP PFNGLBLENDBARRIERNVPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glBlendParameteriNV (GLenum pname, GLint value); +GL_APICALL void GL_APIENTRY glBlendBarrierNV (void); +#endif +#endif /* GL_NV_blend_equation_advanced */ + +#ifndef GL_NV_blend_equation_advanced_coherent +#define GL_NV_blend_equation_advanced_coherent 1 +#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285 +#endif /* GL_NV_blend_equation_advanced_coherent */ + +#ifndef GL_NV_blend_minmax_factor +#define GL_NV_blend_minmax_factor 1 +#define GL_FACTOR_MIN_AMD 0x901C +#define GL_FACTOR_MAX_AMD 0x901D +#endif /* GL_NV_blend_minmax_factor */ + +#ifndef GL_NV_clip_space_w_scaling +#define GL_NV_clip_space_w_scaling 1 +#define GL_VIEWPORT_POSITION_W_SCALE_NV 0x937C +#define GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV 0x937D +#define GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV 0x937E +typedef void (GL_APIENTRYP PFNGLVIEWPORTPOSITIONWSCALENVPROC) (GLuint index, GLfloat xcoeff, GLfloat ycoeff); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glViewportPositionWScaleNV (GLuint index, GLfloat xcoeff, GLfloat ycoeff); +#endif +#endif /* GL_NV_clip_space_w_scaling */ + +#ifndef GL_NV_compute_shader_derivatives +#define GL_NV_compute_shader_derivatives 1 +#endif /* GL_NV_compute_shader_derivatives */ + +#ifndef GL_NV_conditional_render +#define GL_NV_conditional_render 1 +#define GL_QUERY_WAIT_NV 0x8E13 +#define GL_QUERY_NO_WAIT_NV 0x8E14 +#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 +typedef void (GL_APIENTRYP PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); +typedef void (GL_APIENTRYP PFNGLENDCONDITIONALRENDERNVPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glBeginConditionalRenderNV (GLuint id, GLenum mode); +GL_APICALL void GL_APIENTRY glEndConditionalRenderNV (void); +#endif +#endif /* GL_NV_conditional_render */ + +#ifndef GL_NV_conservative_raster +#define GL_NV_conservative_raster 1 +#define GL_CONSERVATIVE_RASTERIZATION_NV 0x9346 +#define GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV 0x9347 +#define GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV 0x9348 +#define GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV 0x9349 +typedef void (GL_APIENTRYP PFNGLSUBPIXELPRECISIONBIASNVPROC) (GLuint xbits, GLuint ybits); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glSubpixelPrecisionBiasNV (GLuint xbits, GLuint ybits); +#endif +#endif /* GL_NV_conservative_raster */ + +#ifndef GL_NV_conservative_raster_pre_snap +#define GL_NV_conservative_raster_pre_snap 1 +#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV 0x9550 +#endif /* GL_NV_conservative_raster_pre_snap */ + +#ifndef GL_NV_conservative_raster_pre_snap_triangles +#define GL_NV_conservative_raster_pre_snap_triangles 1 +#define GL_CONSERVATIVE_RASTER_MODE_NV 0x954D +#define GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV 0x954E +#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV 0x954F +typedef void (GL_APIENTRYP PFNGLCONSERVATIVERASTERPARAMETERINVPROC) (GLenum pname, GLint param); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glConservativeRasterParameteriNV (GLenum pname, GLint param); +#endif +#endif /* GL_NV_conservative_raster_pre_snap_triangles */ + +#ifndef GL_NV_copy_buffer +#define GL_NV_copy_buffer 1 +#define GL_COPY_READ_BUFFER_NV 0x8F36 +#define GL_COPY_WRITE_BUFFER_NV 0x8F37 +typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATANVPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glCopyBufferSubDataNV (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +#endif +#endif /* GL_NV_copy_buffer */ + +#ifndef GL_NV_coverage_sample +#define GL_NV_coverage_sample 1 +#define GL_COVERAGE_COMPONENT_NV 0x8ED0 +#define GL_COVERAGE_COMPONENT4_NV 0x8ED1 +#define GL_COVERAGE_ATTACHMENT_NV 0x8ED2 +#define GL_COVERAGE_BUFFERS_NV 0x8ED3 +#define GL_COVERAGE_SAMPLES_NV 0x8ED4 +#define GL_COVERAGE_ALL_FRAGMENTS_NV 0x8ED5 +#define GL_COVERAGE_EDGE_FRAGMENTS_NV 0x8ED6 +#define GL_COVERAGE_AUTOMATIC_NV 0x8ED7 +#define GL_COVERAGE_BUFFER_BIT_NV 0x00008000 +typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask); +typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask); +GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation); +#endif +#endif /* GL_NV_coverage_sample */ + +#ifndef GL_NV_depth_nonlinear +#define GL_NV_depth_nonlinear 1 +#define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C +#endif /* GL_NV_depth_nonlinear */ + +#ifndef GL_NV_draw_buffers +#define GL_NV_draw_buffers 1 +#define GL_MAX_DRAW_BUFFERS_NV 0x8824 +#define GL_DRAW_BUFFER0_NV 0x8825 +#define GL_DRAW_BUFFER1_NV 0x8826 +#define GL_DRAW_BUFFER2_NV 0x8827 +#define GL_DRAW_BUFFER3_NV 0x8828 +#define GL_DRAW_BUFFER4_NV 0x8829 +#define GL_DRAW_BUFFER5_NV 0x882A +#define GL_DRAW_BUFFER6_NV 0x882B +#define GL_DRAW_BUFFER7_NV 0x882C +#define GL_DRAW_BUFFER8_NV 0x882D +#define GL_DRAW_BUFFER9_NV 0x882E +#define GL_DRAW_BUFFER10_NV 0x882F +#define GL_DRAW_BUFFER11_NV 0x8830 +#define GL_DRAW_BUFFER12_NV 0x8831 +#define GL_DRAW_BUFFER13_NV 0x8832 +#define GL_DRAW_BUFFER14_NV 0x8833 +#define GL_DRAW_BUFFER15_NV 0x8834 +#define GL_COLOR_ATTACHMENT0_NV 0x8CE0 +#define GL_COLOR_ATTACHMENT1_NV 0x8CE1 +#define GL_COLOR_ATTACHMENT2_NV 0x8CE2 +#define GL_COLOR_ATTACHMENT3_NV 0x8CE3 +#define GL_COLOR_ATTACHMENT4_NV 0x8CE4 +#define GL_COLOR_ATTACHMENT5_NV 0x8CE5 +#define GL_COLOR_ATTACHMENT6_NV 0x8CE6 +#define GL_COLOR_ATTACHMENT7_NV 0x8CE7 +#define GL_COLOR_ATTACHMENT8_NV 0x8CE8 +#define GL_COLOR_ATTACHMENT9_NV 0x8CE9 +#define GL_COLOR_ATTACHMENT10_NV 0x8CEA +#define GL_COLOR_ATTACHMENT11_NV 0x8CEB +#define GL_COLOR_ATTACHMENT12_NV 0x8CEC +#define GL_COLOR_ATTACHMENT13_NV 0x8CED +#define GL_COLOR_ATTACHMENT14_NV 0x8CEE +#define GL_COLOR_ATTACHMENT15_NV 0x8CEF +typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum *bufs); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDrawBuffersNV (GLsizei n, const GLenum *bufs); +#endif +#endif /* GL_NV_draw_buffers */ + +#ifndef GL_NV_draw_instanced +#define GL_NV_draw_instanced 1 +typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDNVPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDNVPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDrawArraysInstancedNV (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +GL_APICALL void GL_APIENTRY glDrawElementsInstancedNV (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); +#endif +#endif /* GL_NV_draw_instanced */ + +#ifndef GL_NV_draw_vulkan_image +#define GL_NV_draw_vulkan_image 1 +typedef void (GL_APIENTRY *GLVULKANPROCNV)(void); +typedef void (GL_APIENTRYP PFNGLDRAWVKIMAGENVPROC) (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); +typedef GLVULKANPROCNV (GL_APIENTRYP PFNGLGETVKPROCADDRNVPROC) (const GLchar *name); +typedef void (GL_APIENTRYP PFNGLWAITVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); +typedef void (GL_APIENTRYP PFNGLSIGNALVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); +typedef void (GL_APIENTRYP PFNGLSIGNALVKFENCENVPROC) (GLuint64 vkFence); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDrawVkImageNV (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); +GL_APICALL GLVULKANPROCNV GL_APIENTRY glGetVkProcAddrNV (const GLchar *name); +GL_APICALL void GL_APIENTRY glWaitVkSemaphoreNV (GLuint64 vkSemaphore); +GL_APICALL void GL_APIENTRY glSignalVkSemaphoreNV (GLuint64 vkSemaphore); +GL_APICALL void GL_APIENTRY glSignalVkFenceNV (GLuint64 vkFence); +#endif +#endif /* GL_NV_draw_vulkan_image */ + +#ifndef GL_NV_explicit_attrib_location +#define GL_NV_explicit_attrib_location 1 +#endif /* GL_NV_explicit_attrib_location */ + +#ifndef GL_NV_fbo_color_attachments +#define GL_NV_fbo_color_attachments 1 +#define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF +#endif /* GL_NV_fbo_color_attachments */ + +#ifndef GL_NV_fence +#define GL_NV_fence 1 +#define GL_ALL_COMPLETED_NV 0x84F2 +#define GL_FENCE_STATUS_NV 0x84F3 +#define GL_FENCE_CONDITION_NV 0x84F4 +typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); +typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); +typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); +typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); +typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); +typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei n, const GLuint *fences); +GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei n, GLuint *fences); +GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint fence); +GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint fence); +GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint fence, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint fence); +GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint fence, GLenum condition); +#endif +#endif /* GL_NV_fence */ + +#ifndef GL_NV_fill_rectangle +#define GL_NV_fill_rectangle 1 +#define GL_FILL_RECTANGLE_NV 0x933C +#endif /* GL_NV_fill_rectangle */ + +#ifndef GL_NV_fragment_coverage_to_color +#define GL_NV_fragment_coverage_to_color 1 +#define GL_FRAGMENT_COVERAGE_TO_COLOR_NV 0x92DD +#define GL_FRAGMENT_COVERAGE_COLOR_NV 0x92DE +typedef void (GL_APIENTRYP PFNGLFRAGMENTCOVERAGECOLORNVPROC) (GLuint color); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glFragmentCoverageColorNV (GLuint color); +#endif +#endif /* GL_NV_fragment_coverage_to_color */ + +#ifndef GL_NV_fragment_shader_barycentric +#define GL_NV_fragment_shader_barycentric 1 +#endif /* GL_NV_fragment_shader_barycentric */ + +#ifndef GL_NV_fragment_shader_interlock +#define GL_NV_fragment_shader_interlock 1 +#endif /* GL_NV_fragment_shader_interlock */ + +#ifndef GL_NV_framebuffer_blit +#define GL_NV_framebuffer_blit 1 +#define GL_READ_FRAMEBUFFER_NV 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_NV 0x8CA9 +#define GL_DRAW_FRAMEBUFFER_BINDING_NV 0x8CA6 +#define GL_READ_FRAMEBUFFER_BINDING_NV 0x8CAA +typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERNVPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glBlitFramebufferNV (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif +#endif /* GL_NV_framebuffer_blit */ + +#ifndef GL_NV_framebuffer_mixed_samples +#define GL_NV_framebuffer_mixed_samples 1 +#define GL_COVERAGE_MODULATION_TABLE_NV 0x9331 +#define GL_COLOR_SAMPLES_NV 0x8E20 +#define GL_DEPTH_SAMPLES_NV 0x932D +#define GL_STENCIL_SAMPLES_NV 0x932E +#define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F +#define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330 +#define GL_COVERAGE_MODULATION_NV 0x9332 +#define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333 +typedef void (GL_APIENTRYP PFNGLCOVERAGEMODULATIONTABLENVPROC) (GLsizei n, const GLfloat *v); +typedef void (GL_APIENTRYP PFNGLGETCOVERAGEMODULATIONTABLENVPROC) (GLsizei bufSize, GLfloat *v); +typedef void (GL_APIENTRYP PFNGLCOVERAGEMODULATIONNVPROC) (GLenum components); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glCoverageModulationTableNV (GLsizei n, const GLfloat *v); +GL_APICALL void GL_APIENTRY glGetCoverageModulationTableNV (GLsizei bufSize, GLfloat *v); +GL_APICALL void GL_APIENTRY glCoverageModulationNV (GLenum components); +#endif +#endif /* GL_NV_framebuffer_mixed_samples */ + +#ifndef GL_NV_framebuffer_multisample +#define GL_NV_framebuffer_multisample 1 +#define GL_RENDERBUFFER_SAMPLES_NV 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV 0x8D56 +#define GL_MAX_SAMPLES_NV 0x8D57 +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleNV (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#endif +#endif /* GL_NV_framebuffer_multisample */ + +#ifndef GL_NV_generate_mipmap_sRGB +#define GL_NV_generate_mipmap_sRGB 1 +#endif /* GL_NV_generate_mipmap_sRGB */ + +#ifndef GL_NV_geometry_shader_passthrough +#define GL_NV_geometry_shader_passthrough 1 +#endif /* GL_NV_geometry_shader_passthrough */ + +#ifndef GL_NV_gpu_shader5 +#define GL_NV_gpu_shader5 1 +typedef khronos_int64_t GLint64EXT; +typedef khronos_uint64_t GLuint64EXT; +#define GL_INT64_NV 0x140E +#define GL_UNSIGNED_INT64_NV 0x140F +#define GL_INT8_NV 0x8FE0 +#define GL_INT8_VEC2_NV 0x8FE1 +#define GL_INT8_VEC3_NV 0x8FE2 +#define GL_INT8_VEC4_NV 0x8FE3 +#define GL_INT16_NV 0x8FE4 +#define GL_INT16_VEC2_NV 0x8FE5 +#define GL_INT16_VEC3_NV 0x8FE6 +#define GL_INT16_VEC4_NV 0x8FE7 +#define GL_INT64_VEC2_NV 0x8FE9 +#define GL_INT64_VEC3_NV 0x8FEA +#define GL_INT64_VEC4_NV 0x8FEB +#define GL_UNSIGNED_INT8_NV 0x8FEC +#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED +#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE +#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF +#define GL_UNSIGNED_INT16_NV 0x8FF0 +#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 +#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 +#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 +#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5 +#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6 +#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7 +#define GL_FLOAT16_NV 0x8FF8 +#define GL_FLOAT16_VEC2_NV 0x8FF9 +#define GL_FLOAT16_VEC3_NV 0x8FFA +#define GL_FLOAT16_VEC4_NV 0x8FFB +#define GL_PATCHES 0x000E +typedef void (GL_APIENTRYP PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x); +typedef void (GL_APIENTRYP PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y); +typedef void (GL_APIENTRYP PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void (GL_APIENTRYP PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void (GL_APIENTRYP PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); +typedef void (GL_APIENTRYP PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); +typedef void (GL_APIENTRYP PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); +typedef void (GL_APIENTRYP PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); +typedef void (GL_APIENTRYP PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x); +typedef void (GL_APIENTRYP PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y); +typedef void (GL_APIENTRYP PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void (GL_APIENTRYP PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void (GL_APIENTRYP PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (GL_APIENTRYP PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (GL_APIENTRYP PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (GL_APIENTRYP PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (GL_APIENTRYP PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT *params); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glUniform1i64NV (GLint location, GLint64EXT x); +GL_APICALL void GL_APIENTRY glUniform2i64NV (GLint location, GLint64EXT x, GLint64EXT y); +GL_APICALL void GL_APIENTRY glUniform3i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +GL_APICALL void GL_APIENTRY glUniform4i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +GL_APICALL void GL_APIENTRY glUniform1i64vNV (GLint location, GLsizei count, const GLint64EXT *value); +GL_APICALL void GL_APIENTRY glUniform2i64vNV (GLint location, GLsizei count, const GLint64EXT *value); +GL_APICALL void GL_APIENTRY glUniform3i64vNV (GLint location, GLsizei count, const GLint64EXT *value); +GL_APICALL void GL_APIENTRY glUniform4i64vNV (GLint location, GLsizei count, const GLint64EXT *value); +GL_APICALL void GL_APIENTRY glUniform1ui64NV (GLint location, GLuint64EXT x); +GL_APICALL void GL_APIENTRY glUniform2ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y); +GL_APICALL void GL_APIENTRY glUniform3ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +GL_APICALL void GL_APIENTRY glUniform4ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +GL_APICALL void GL_APIENTRY glUniform1ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); +GL_APICALL void GL_APIENTRY glUniform2ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); +GL_APICALL void GL_APIENTRY glUniform3ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); +GL_APICALL void GL_APIENTRY glUniform4ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); +GL_APICALL void GL_APIENTRY glGetUniformi64vNV (GLuint program, GLint location, GLint64EXT *params); +GL_APICALL void GL_APIENTRY glProgramUniform1i64NV (GLuint program, GLint location, GLint64EXT x); +GL_APICALL void GL_APIENTRY glProgramUniform2i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); +GL_APICALL void GL_APIENTRY glProgramUniform3i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +GL_APICALL void GL_APIENTRY glProgramUniform4i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +GL_APICALL void GL_APIENTRY glProgramUniform1i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +GL_APICALL void GL_APIENTRY glProgramUniform2i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +GL_APICALL void GL_APIENTRY glProgramUniform3i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +GL_APICALL void GL_APIENTRY glProgramUniform4i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); +GL_APICALL void GL_APIENTRY glProgramUniform1ui64NV (GLuint program, GLint location, GLuint64EXT x); +GL_APICALL void GL_APIENTRY glProgramUniform2ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); +GL_APICALL void GL_APIENTRY glProgramUniform3ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +GL_APICALL void GL_APIENTRY glProgramUniform4ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +GL_APICALL void GL_APIENTRY glProgramUniform1ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +GL_APICALL void GL_APIENTRY glProgramUniform2ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +GL_APICALL void GL_APIENTRY glProgramUniform3ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +GL_APICALL void GL_APIENTRY glProgramUniform4ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); +#endif +#endif /* GL_NV_gpu_shader5 */ + +#ifndef GL_NV_image_formats +#define GL_NV_image_formats 1 +#endif /* GL_NV_image_formats */ + +#ifndef GL_NV_instanced_arrays +#define GL_NV_instanced_arrays 1 +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV 0x88FE +typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORNVPROC) (GLuint index, GLuint divisor); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glVertexAttribDivisorNV (GLuint index, GLuint divisor); +#endif +#endif /* GL_NV_instanced_arrays */ + +#ifndef GL_NV_internalformat_sample_query +#define GL_NV_internalformat_sample_query 1 +#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 +#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 +#define GL_MULTISAMPLES_NV 0x9371 +#define GL_SUPERSAMPLE_SCALE_X_NV 0x9372 +#define GL_SUPERSAMPLE_SCALE_Y_NV 0x9373 +#define GL_CONFORMANT_NV 0x9374 +typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATSAMPLEIVNVPROC) (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGetInternalformatSampleivNV (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params); +#endif +#endif /* GL_NV_internalformat_sample_query */ + +#ifndef GL_NV_memory_attachment +#define GL_NV_memory_attachment 1 +#define GL_ATTACHED_MEMORY_OBJECT_NV 0x95A4 +#define GL_ATTACHED_MEMORY_OFFSET_NV 0x95A5 +#define GL_MEMORY_ATTACHABLE_ALIGNMENT_NV 0x95A6 +#define GL_MEMORY_ATTACHABLE_SIZE_NV 0x95A7 +#define GL_MEMORY_ATTACHABLE_NV 0x95A8 +#define GL_DETACHED_MEMORY_INCARNATION_NV 0x95A9 +#define GL_DETACHED_TEXTURES_NV 0x95AA +#define GL_DETACHED_BUFFERS_NV 0x95AB +#define GL_MAX_DETACHED_TEXTURES_NV 0x95AC +#define GL_MAX_DETACHED_BUFFERS_NV 0x95AD +typedef void (GL_APIENTRYP PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC) (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params); +typedef void (GL_APIENTRYP PFNGLRESETMEMORYOBJECTPARAMETERNVPROC) (GLuint memory, GLenum pname); +typedef void (GL_APIENTRYP PFNGLTEXATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); +typedef void (GL_APIENTRYP PFNGLBUFFERATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); +typedef void (GL_APIENTRYP PFNGLTEXTUREATTACHMEMORYNVPROC) (GLuint texture, GLuint memory, GLuint64 offset); +typedef void (GL_APIENTRYP PFNGLNAMEDBUFFERATTACHMEMORYNVPROC) (GLuint buffer, GLuint memory, GLuint64 offset); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGetMemoryObjectDetachedResourcesuivNV (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params); +GL_APICALL void GL_APIENTRY glResetMemoryObjectParameterNV (GLuint memory, GLenum pname); +GL_APICALL void GL_APIENTRY glTexAttachMemoryNV (GLenum target, GLuint memory, GLuint64 offset); +GL_APICALL void GL_APIENTRY glBufferAttachMemoryNV (GLenum target, GLuint memory, GLuint64 offset); +GL_APICALL void GL_APIENTRY glTextureAttachMemoryNV (GLuint texture, GLuint memory, GLuint64 offset); +GL_APICALL void GL_APIENTRY glNamedBufferAttachMemoryNV (GLuint buffer, GLuint memory, GLuint64 offset); +#endif +#endif /* GL_NV_memory_attachment */ + +#ifndef GL_NV_memory_object_sparse +#define GL_NV_memory_object_sparse 1 +typedef void (GL_APIENTRYP PFNGLBUFFERPAGECOMMITMENTMEMNVPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); +typedef void (GL_APIENTRYP PFNGLTEXPAGECOMMITMENTMEMNVPROC) (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); +typedef void (GL_APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTMEMNVPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); +typedef void (GL_APIENTRYP PFNGLTEXTUREPAGECOMMITMENTMEMNVPROC) (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glBufferPageCommitmentMemNV (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); +GL_APICALL void GL_APIENTRY glTexPageCommitmentMemNV (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); +GL_APICALL void GL_APIENTRY glNamedBufferPageCommitmentMemNV (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); +GL_APICALL void GL_APIENTRY glTexturePageCommitmentMemNV (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); +#endif +#endif /* GL_NV_memory_object_sparse */ + +#ifndef GL_NV_mesh_shader +#define GL_NV_mesh_shader 1 +#define GL_MESH_SHADER_NV 0x9559 +#define GL_TASK_SHADER_NV 0x955A +#define GL_MAX_MESH_UNIFORM_BLOCKS_NV 0x8E60 +#define GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV 0x8E61 +#define GL_MAX_MESH_IMAGE_UNIFORMS_NV 0x8E62 +#define GL_MAX_MESH_UNIFORM_COMPONENTS_NV 0x8E63 +#define GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV 0x8E64 +#define GL_MAX_MESH_ATOMIC_COUNTERS_NV 0x8E65 +#define GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV 0x8E66 +#define GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV 0x8E67 +#define GL_MAX_TASK_UNIFORM_BLOCKS_NV 0x8E68 +#define GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV 0x8E69 +#define GL_MAX_TASK_IMAGE_UNIFORMS_NV 0x8E6A +#define GL_MAX_TASK_UNIFORM_COMPONENTS_NV 0x8E6B +#define GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV 0x8E6C +#define GL_MAX_TASK_ATOMIC_COUNTERS_NV 0x8E6D +#define GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV 0x8E6E +#define GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV 0x8E6F +#define GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV 0x95A2 +#define GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV 0x95A3 +#define GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV 0x9536 +#define GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV 0x9537 +#define GL_MAX_MESH_OUTPUT_VERTICES_NV 0x9538 +#define GL_MAX_MESH_OUTPUT_PRIMITIVES_NV 0x9539 +#define GL_MAX_TASK_OUTPUT_COUNT_NV 0x953A +#define GL_MAX_DRAW_MESH_TASKS_COUNT_NV 0x953D +#define GL_MAX_MESH_VIEWS_NV 0x9557 +#define GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV 0x92DF +#define GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV 0x9543 +#define GL_MAX_MESH_WORK_GROUP_SIZE_NV 0x953B +#define GL_MAX_TASK_WORK_GROUP_SIZE_NV 0x953C +#define GL_MESH_WORK_GROUP_SIZE_NV 0x953E +#define GL_TASK_WORK_GROUP_SIZE_NV 0x953F +#define GL_MESH_VERTICES_OUT_NV 0x9579 +#define GL_MESH_PRIMITIVES_OUT_NV 0x957A +#define GL_MESH_OUTPUT_TYPE_NV 0x957B +#define GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV 0x959C +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV 0x959D +#define GL_REFERENCED_BY_MESH_SHADER_NV 0x95A0 +#define GL_REFERENCED_BY_TASK_SHADER_NV 0x95A1 +#define GL_MESH_SHADER_BIT_NV 0x00000040 +#define GL_TASK_SHADER_BIT_NV 0x00000080 +#define GL_MESH_SUBROUTINE_NV 0x957C +#define GL_TASK_SUBROUTINE_NV 0x957D +#define GL_MESH_SUBROUTINE_UNIFORM_NV 0x957E +#define GL_TASK_SUBROUTINE_UNIFORM_NV 0x957F +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV 0x959E +#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV 0x959F +typedef void (GL_APIENTRYP PFNGLDRAWMESHTASKSNVPROC) (GLuint first, GLuint count); +typedef void (GL_APIENTRYP PFNGLDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect); +typedef void (GL_APIENTRYP PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect, GLsizei drawcount, GLsizei stride); +typedef void (GL_APIENTRYP PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC) (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glDrawMeshTasksNV (GLuint first, GLuint count); +GL_APICALL void GL_APIENTRY glDrawMeshTasksIndirectNV (GLintptr indirect); +GL_APICALL void GL_APIENTRY glMultiDrawMeshTasksIndirectNV (GLintptr indirect, GLsizei drawcount, GLsizei stride); +GL_APICALL void GL_APIENTRY glMultiDrawMeshTasksIndirectCountNV (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +#endif +#endif /* GL_NV_mesh_shader */ + +#ifndef GL_NV_non_square_matrices +#define GL_NV_non_square_matrices 1 +#define GL_FLOAT_MAT2x3_NV 0x8B65 +#define GL_FLOAT_MAT2x4_NV 0x8B66 +#define GL_FLOAT_MAT3x2_NV 0x8B67 +#define GL_FLOAT_MAT3x4_NV 0x8B68 +#define GL_FLOAT_MAT4x2_NV 0x8B69 +#define GL_FLOAT_MAT4x3_NV 0x8B6A +typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glUniformMatrix2x3fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glUniformMatrix3x2fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glUniformMatrix2x4fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glUniformMatrix4x2fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glUniformMatrix3x4fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GL_APICALL void GL_APIENTRY glUniformMatrix4x3fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#endif +#endif /* GL_NV_non_square_matrices */ + +#ifndef GL_NV_path_rendering +#define GL_NV_path_rendering 1 +typedef double GLdouble; +#define GL_PATH_FORMAT_SVG_NV 0x9070 +#define GL_PATH_FORMAT_PS_NV 0x9071 +#define GL_STANDARD_FONT_NAME_NV 0x9072 +#define GL_SYSTEM_FONT_NAME_NV 0x9073 +#define GL_FILE_NAME_NV 0x9074 +#define GL_PATH_STROKE_WIDTH_NV 0x9075 +#define GL_PATH_END_CAPS_NV 0x9076 +#define GL_PATH_INITIAL_END_CAP_NV 0x9077 +#define GL_PATH_TERMINAL_END_CAP_NV 0x9078 +#define GL_PATH_JOIN_STYLE_NV 0x9079 +#define GL_PATH_MITER_LIMIT_NV 0x907A +#define GL_PATH_DASH_CAPS_NV 0x907B +#define GL_PATH_INITIAL_DASH_CAP_NV 0x907C +#define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D +#define GL_PATH_DASH_OFFSET_NV 0x907E +#define GL_PATH_CLIENT_LENGTH_NV 0x907F +#define GL_PATH_FILL_MODE_NV 0x9080 +#define GL_PATH_FILL_MASK_NV 0x9081 +#define GL_PATH_FILL_COVER_MODE_NV 0x9082 +#define GL_PATH_STROKE_COVER_MODE_NV 0x9083 +#define GL_PATH_STROKE_MASK_NV 0x9084 +#define GL_COUNT_UP_NV 0x9088 +#define GL_COUNT_DOWN_NV 0x9089 +#define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A +#define GL_CONVEX_HULL_NV 0x908B +#define GL_BOUNDING_BOX_NV 0x908D +#define GL_TRANSLATE_X_NV 0x908E +#define GL_TRANSLATE_Y_NV 0x908F +#define GL_TRANSLATE_2D_NV 0x9090 +#define GL_TRANSLATE_3D_NV 0x9091 +#define GL_AFFINE_2D_NV 0x9092 +#define GL_AFFINE_3D_NV 0x9094 +#define GL_TRANSPOSE_AFFINE_2D_NV 0x9096 +#define GL_TRANSPOSE_AFFINE_3D_NV 0x9098 +#define GL_UTF8_NV 0x909A +#define GL_UTF16_NV 0x909B +#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C +#define GL_PATH_COMMAND_COUNT_NV 0x909D +#define GL_PATH_COORD_COUNT_NV 0x909E +#define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F +#define GL_PATH_COMPUTED_LENGTH_NV 0x90A0 +#define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1 +#define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2 +#define GL_SQUARE_NV 0x90A3 +#define GL_ROUND_NV 0x90A4 +#define GL_TRIANGULAR_NV 0x90A5 +#define GL_BEVEL_NV 0x90A6 +#define GL_MITER_REVERT_NV 0x90A7 +#define GL_MITER_TRUNCATE_NV 0x90A8 +#define GL_SKIP_MISSING_GLYPH_NV 0x90A9 +#define GL_USE_MISSING_GLYPH_NV 0x90AA +#define GL_PATH_ERROR_POSITION_NV 0x90AB +#define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD +#define GL_ADJACENT_PAIRS_NV 0x90AE +#define GL_FIRST_TO_REST_NV 0x90AF +#define GL_PATH_GEN_MODE_NV 0x90B0 +#define GL_PATH_GEN_COEFF_NV 0x90B1 +#define GL_PATH_GEN_COMPONENTS_NV 0x90B3 +#define GL_PATH_STENCIL_FUNC_NV 0x90B7 +#define GL_PATH_STENCIL_REF_NV 0x90B8 +#define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9 +#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD +#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE +#define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF +#define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4 +#define GL_MOVE_TO_RESETS_NV 0x90B5 +#define GL_MOVE_TO_CONTINUES_NV 0x90B6 +#define GL_CLOSE_PATH_NV 0x00 +#define GL_MOVE_TO_NV 0x02 +#define GL_RELATIVE_MOVE_TO_NV 0x03 +#define GL_LINE_TO_NV 0x04 +#define GL_RELATIVE_LINE_TO_NV 0x05 +#define GL_HORIZONTAL_LINE_TO_NV 0x06 +#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07 +#define GL_VERTICAL_LINE_TO_NV 0x08 +#define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09 +#define GL_QUADRATIC_CURVE_TO_NV 0x0A +#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B +#define GL_CUBIC_CURVE_TO_NV 0x0C +#define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D +#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E +#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F +#define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10 +#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11 +#define GL_SMALL_CCW_ARC_TO_NV 0x12 +#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13 +#define GL_SMALL_CW_ARC_TO_NV 0x14 +#define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15 +#define GL_LARGE_CCW_ARC_TO_NV 0x16 +#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17 +#define GL_LARGE_CW_ARC_TO_NV 0x18 +#define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19 +#define GL_RESTART_PATH_NV 0xF0 +#define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2 +#define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4 +#define GL_RECT_NV 0xF6 +#define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8 +#define GL_CIRCULAR_CW_ARC_TO_NV 0xFA +#define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC +#define GL_ARC_TO_NV 0xFE +#define GL_RELATIVE_ARC_TO_NV 0xFF +#define GL_BOLD_BIT_NV 0x01 +#define GL_ITALIC_BIT_NV 0x02 +#define GL_GLYPH_WIDTH_BIT_NV 0x01 +#define GL_GLYPH_HEIGHT_BIT_NV 0x02 +#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04 +#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08 +#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10 +#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20 +#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40 +#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80 +#define GL_GLYPH_HAS_KERNING_BIT_NV 0x100 +#define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000 +#define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000 +#define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000 +#define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000 +#define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000 +#define GL_FONT_ASCENDER_BIT_NV 0x00200000 +#define GL_FONT_DESCENDER_BIT_NV 0x00400000 +#define GL_FONT_HEIGHT_BIT_NV 0x00800000 +#define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000 +#define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000 +#define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000 +#define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000 +#define GL_FONT_HAS_KERNING_BIT_NV 0x10000000 +#define GL_ROUNDED_RECT_NV 0xE8 +#define GL_RELATIVE_ROUNDED_RECT_NV 0xE9 +#define GL_ROUNDED_RECT2_NV 0xEA +#define GL_RELATIVE_ROUNDED_RECT2_NV 0xEB +#define GL_ROUNDED_RECT4_NV 0xEC +#define GL_RELATIVE_ROUNDED_RECT4_NV 0xED +#define GL_ROUNDED_RECT8_NV 0xEE +#define GL_RELATIVE_ROUNDED_RECT8_NV 0xEF +#define GL_RELATIVE_RECT_NV 0xF7 +#define GL_FONT_GLYPHS_AVAILABLE_NV 0x9368 +#define GL_FONT_TARGET_UNAVAILABLE_NV 0x9369 +#define GL_FONT_UNAVAILABLE_NV 0x936A +#define GL_FONT_UNINTELLIGIBLE_NV 0x936B +#define GL_CONIC_CURVE_TO_NV 0x1A +#define GL_RELATIVE_CONIC_CURVE_TO_NV 0x1B +#define GL_FONT_NUM_GLYPH_INDICES_BIT_NV 0x20000000 +#define GL_STANDARD_FONT_FORMAT_NV 0x936C +#define GL_PATH_PROJECTION_NV 0x1701 +#define GL_PATH_MODELVIEW_NV 0x1700 +#define GL_PATH_MODELVIEW_STACK_DEPTH_NV 0x0BA3 +#define GL_PATH_MODELVIEW_MATRIX_NV 0x0BA6 +#define GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV 0x0D36 +#define GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV 0x84E3 +#define GL_PATH_PROJECTION_STACK_DEPTH_NV 0x0BA4 +#define GL_PATH_PROJECTION_MATRIX_NV 0x0BA7 +#define GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV 0x0D38 +#define GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV 0x84E4 +#define GL_FRAGMENT_INPUT_NV 0x936D +typedef GLuint (GL_APIENTRYP PFNGLGENPATHSNVPROC) (GLsizei range); +typedef void (GL_APIENTRYP PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range); +typedef GLboolean (GL_APIENTRYP PFNGLISPATHNVPROC) (GLuint path); +typedef void (GL_APIENTRYP PFNGLPATHCOMMANDSNVPROC) (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); +typedef void (GL_APIENTRYP PFNGLPATHCOORDSNVPROC) (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); +typedef void (GL_APIENTRYP PFNGLPATHSUBCOMMANDSNVPROC) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); +typedef void (GL_APIENTRYP PFNGLPATHSUBCOORDSNVPROC) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); +typedef void (GL_APIENTRYP PFNGLPATHSTRINGNVPROC) (GLuint path, GLenum format, GLsizei length, const void *pathString); +typedef void (GL_APIENTRYP PFNGLPATHGLYPHSNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +typedef void (GL_APIENTRYP PFNGLPATHGLYPHRANGENVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +typedef void (GL_APIENTRYP PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); +typedef void (GL_APIENTRYP PFNGLCOPYPATHNVPROC) (GLuint resultPath, GLuint srcPath); +typedef void (GL_APIENTRYP PFNGLINTERPOLATEPATHSNVPROC) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); +typedef void (GL_APIENTRYP PFNGLTRANSFORMPATHNVPROC) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); +typedef void (GL_APIENTRYP PFNGLPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, const GLint *value); +typedef void (GL_APIENTRYP PFNGLPATHPARAMETERINVPROC) (GLuint path, GLenum pname, GLint value); +typedef void (GL_APIENTRYP PFNGLPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, const GLfloat *value); +typedef void (GL_APIENTRYP PFNGLPATHPARAMETERFNVPROC) (GLuint path, GLenum pname, GLfloat value); +typedef void (GL_APIENTRYP PFNGLPATHDASHARRAYNVPROC) (GLuint path, GLsizei dashCount, const GLfloat *dashArray); +typedef void (GL_APIENTRYP PFNGLPATHSTENCILFUNCNVPROC) (GLenum func, GLint ref, GLuint mask); +typedef void (GL_APIENTRYP PFNGLPATHSTENCILDEPTHOFFSETNVPROC) (GLfloat factor, GLfloat units); +typedef void (GL_APIENTRYP PFNGLSTENCILFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask); +typedef void (GL_APIENTRYP PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask); +typedef void (GL_APIENTRYP PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); +typedef void (GL_APIENTRYP PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); +typedef void (GL_APIENTRYP PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum func); +typedef void (GL_APIENTRYP PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode); +typedef void (GL_APIENTRYP PFNGLCOVERSTROKEPATHNVPROC) (GLuint path, GLenum coverMode); +typedef void (GL_APIENTRYP PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +typedef void (GL_APIENTRYP PFNGLCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +typedef void (GL_APIENTRYP PFNGLGETPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, GLint *value); +typedef void (GL_APIENTRYP PFNGLGETPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, GLfloat *value); +typedef void (GL_APIENTRYP PFNGLGETPATHCOMMANDSNVPROC) (GLuint path, GLubyte *commands); +typedef void (GL_APIENTRYP PFNGLGETPATHCOORDSNVPROC) (GLuint path, GLfloat *coords); +typedef void (GL_APIENTRYP PFNGLGETPATHDASHARRAYNVPROC) (GLuint path, GLfloat *dashArray); +typedef void (GL_APIENTRYP PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); +typedef void (GL_APIENTRYP PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); +typedef void (GL_APIENTRYP PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); +typedef GLboolean (GL_APIENTRYP PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y); +typedef GLboolean (GL_APIENTRYP PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y); +typedef GLfloat (GL_APIENTRYP PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments); +typedef GLboolean (GL_APIENTRYP PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); +typedef void (GL_APIENTRYP PFNGLMATRIXLOAD3X2FNVPROC) (GLenum matrixMode, const GLfloat *m); +typedef void (GL_APIENTRYP PFNGLMATRIXLOAD3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); +typedef void (GL_APIENTRYP PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); +typedef void (GL_APIENTRYP PFNGLMATRIXMULT3X2FNVPROC) (GLenum matrixMode, const GLfloat *m); +typedef void (GL_APIENTRYP PFNGLMATRIXMULT3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); +typedef void (GL_APIENTRYP PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); +typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); +typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask, GLenum coverMode); +typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +typedef GLenum (GL_APIENTRYP PFNGLPATHGLYPHINDEXRANGENVPROC) (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint *baseAndCount); +typedef GLenum (GL_APIENTRYP PFNGLPATHGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +typedef GLenum (GL_APIENTRYP PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +typedef void (GL_APIENTRYP PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC) (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs); +typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEFVNVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params); +typedef void (GL_APIENTRYP PFNGLMATRIXFRUSTUMEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +typedef void (GL_APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode); +typedef void (GL_APIENTRYP PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (GL_APIENTRYP PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (GL_APIENTRYP PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (GL_APIENTRYP PFNGLMATRIXLOADDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (GL_APIENTRYP PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (GL_APIENTRYP PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (GL_APIENTRYP PFNGLMATRIXMULTFEXTPROC) (GLenum mode, const GLfloat *m); +typedef void (GL_APIENTRYP PFNGLMATRIXMULTDEXTPROC) (GLenum mode, const GLdouble *m); +typedef void (GL_APIENTRYP PFNGLMATRIXORTHOEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +typedef void (GL_APIENTRYP PFNGLMATRIXPOPEXTPROC) (GLenum mode); +typedef void (GL_APIENTRYP PFNGLMATRIXPUSHEXTPROC) (GLenum mode); +typedef void (GL_APIENTRYP PFNGLMATRIXROTATEFEXTPROC) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +typedef void (GL_APIENTRYP PFNGLMATRIXROTATEDEXTPROC) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +typedef void (GL_APIENTRYP PFNGLMATRIXSCALEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +typedef void (GL_APIENTRYP PFNGLMATRIXSCALEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +typedef void (GL_APIENTRYP PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +typedef void (GL_APIENTRYP PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL GLuint GL_APIENTRY glGenPathsNV (GLsizei range); +GL_APICALL void GL_APIENTRY glDeletePathsNV (GLuint path, GLsizei range); +GL_APICALL GLboolean GL_APIENTRY glIsPathNV (GLuint path); +GL_APICALL void GL_APIENTRY glPathCommandsNV (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); +GL_APICALL void GL_APIENTRY glPathCoordsNV (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); +GL_APICALL void GL_APIENTRY glPathSubCommandsNV (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); +GL_APICALL void GL_APIENTRY glPathSubCoordsNV (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); +GL_APICALL void GL_APIENTRY glPathStringNV (GLuint path, GLenum format, GLsizei length, const void *pathString); +GL_APICALL void GL_APIENTRY glPathGlyphsNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +GL_APICALL void GL_APIENTRY glPathGlyphRangeNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +GL_APICALL void GL_APIENTRY glWeightPathsNV (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); +GL_APICALL void GL_APIENTRY glCopyPathNV (GLuint resultPath, GLuint srcPath); +GL_APICALL void GL_APIENTRY glInterpolatePathsNV (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); +GL_APICALL void GL_APIENTRY glTransformPathNV (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); +GL_APICALL void GL_APIENTRY glPathParameterivNV (GLuint path, GLenum pname, const GLint *value); +GL_APICALL void GL_APIENTRY glPathParameteriNV (GLuint path, GLenum pname, GLint value); +GL_APICALL void GL_APIENTRY glPathParameterfvNV (GLuint path, GLenum pname, const GLfloat *value); +GL_APICALL void GL_APIENTRY glPathParameterfNV (GLuint path, GLenum pname, GLfloat value); +GL_APICALL void GL_APIENTRY glPathDashArrayNV (GLuint path, GLsizei dashCount, const GLfloat *dashArray); +GL_APICALL void GL_APIENTRY glPathStencilFuncNV (GLenum func, GLint ref, GLuint mask); +GL_APICALL void GL_APIENTRY glPathStencilDepthOffsetNV (GLfloat factor, GLfloat units); +GL_APICALL void GL_APIENTRY glStencilFillPathNV (GLuint path, GLenum fillMode, GLuint mask); +GL_APICALL void GL_APIENTRY glStencilStrokePathNV (GLuint path, GLint reference, GLuint mask); +GL_APICALL void GL_APIENTRY glStencilFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); +GL_APICALL void GL_APIENTRY glStencilStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); +GL_APICALL void GL_APIENTRY glPathCoverDepthFuncNV (GLenum func); +GL_APICALL void GL_APIENTRY glCoverFillPathNV (GLuint path, GLenum coverMode); +GL_APICALL void GL_APIENTRY glCoverStrokePathNV (GLuint path, GLenum coverMode); +GL_APICALL void GL_APIENTRY glCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +GL_APICALL void GL_APIENTRY glCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +GL_APICALL void GL_APIENTRY glGetPathParameterivNV (GLuint path, GLenum pname, GLint *value); +GL_APICALL void GL_APIENTRY glGetPathParameterfvNV (GLuint path, GLenum pname, GLfloat *value); +GL_APICALL void GL_APIENTRY glGetPathCommandsNV (GLuint path, GLubyte *commands); +GL_APICALL void GL_APIENTRY glGetPathCoordsNV (GLuint path, GLfloat *coords); +GL_APICALL void GL_APIENTRY glGetPathDashArrayNV (GLuint path, GLfloat *dashArray); +GL_APICALL void GL_APIENTRY glGetPathMetricsNV (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); +GL_APICALL void GL_APIENTRY glGetPathMetricRangeNV (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); +GL_APICALL void GL_APIENTRY glGetPathSpacingNV (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); +GL_APICALL GLboolean GL_APIENTRY glIsPointInFillPathNV (GLuint path, GLuint mask, GLfloat x, GLfloat y); +GL_APICALL GLboolean GL_APIENTRY glIsPointInStrokePathNV (GLuint path, GLfloat x, GLfloat y); +GL_APICALL GLfloat GL_APIENTRY glGetPathLengthNV (GLuint path, GLsizei startSegment, GLsizei numSegments); +GL_APICALL GLboolean GL_APIENTRY glPointAlongPathNV (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); +GL_APICALL void GL_APIENTRY glMatrixLoad3x2fNV (GLenum matrixMode, const GLfloat *m); +GL_APICALL void GL_APIENTRY glMatrixLoad3x3fNV (GLenum matrixMode, const GLfloat *m); +GL_APICALL void GL_APIENTRY glMatrixLoadTranspose3x3fNV (GLenum matrixMode, const GLfloat *m); +GL_APICALL void GL_APIENTRY glMatrixMult3x2fNV (GLenum matrixMode, const GLfloat *m); +GL_APICALL void GL_APIENTRY glMatrixMult3x3fNV (GLenum matrixMode, const GLfloat *m); +GL_APICALL void GL_APIENTRY glMatrixMultTranspose3x3fNV (GLenum matrixMode, const GLfloat *m); +GL_APICALL void GL_APIENTRY glStencilThenCoverFillPathNV (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); +GL_APICALL void GL_APIENTRY glStencilThenCoverStrokePathNV (GLuint path, GLint reference, GLuint mask, GLenum coverMode); +GL_APICALL void GL_APIENTRY glStencilThenCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +GL_APICALL void GL_APIENTRY glStencilThenCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); +GL_APICALL GLenum GL_APIENTRY glPathGlyphIndexRangeNV (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint *baseAndCount); +GL_APICALL GLenum GL_APIENTRY glPathGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +GL_APICALL GLenum GL_APIENTRY glPathMemoryGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); +GL_APICALL void GL_APIENTRY glProgramPathFragmentInputGenNV (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs); +GL_APICALL void GL_APIENTRY glGetProgramResourcefvNV (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params); +GL_APICALL void GL_APIENTRY glMatrixFrustumEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +GL_APICALL void GL_APIENTRY glMatrixLoadIdentityEXT (GLenum mode); +GL_APICALL void GL_APIENTRY glMatrixLoadTransposefEXT (GLenum mode, const GLfloat *m); +GL_APICALL void GL_APIENTRY glMatrixLoadTransposedEXT (GLenum mode, const GLdouble *m); +GL_APICALL void GL_APIENTRY glMatrixLoadfEXT (GLenum mode, const GLfloat *m); +GL_APICALL void GL_APIENTRY glMatrixLoaddEXT (GLenum mode, const GLdouble *m); +GL_APICALL void GL_APIENTRY glMatrixMultTransposefEXT (GLenum mode, const GLfloat *m); +GL_APICALL void GL_APIENTRY glMatrixMultTransposedEXT (GLenum mode, const GLdouble *m); +GL_APICALL void GL_APIENTRY glMatrixMultfEXT (GLenum mode, const GLfloat *m); +GL_APICALL void GL_APIENTRY glMatrixMultdEXT (GLenum mode, const GLdouble *m); +GL_APICALL void GL_APIENTRY glMatrixOrthoEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +GL_APICALL void GL_APIENTRY glMatrixPopEXT (GLenum mode); +GL_APICALL void GL_APIENTRY glMatrixPushEXT (GLenum mode); +GL_APICALL void GL_APIENTRY glMatrixRotatefEXT (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +GL_APICALL void GL_APIENTRY glMatrixRotatedEXT (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +GL_APICALL void GL_APIENTRY glMatrixScalefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +GL_APICALL void GL_APIENTRY glMatrixScaledEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +GL_APICALL void GL_APIENTRY glMatrixTranslatefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); +GL_APICALL void GL_APIENTRY glMatrixTranslatedEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); +#endif +#endif /* GL_NV_path_rendering */ + +#ifndef GL_NV_path_rendering_shared_edge +#define GL_NV_path_rendering_shared_edge 1 +#define GL_SHARED_EDGE_NV 0xC0 +#endif /* GL_NV_path_rendering_shared_edge */ + +#ifndef GL_NV_pixel_buffer_object +#define GL_NV_pixel_buffer_object 1 +#define GL_PIXEL_PACK_BUFFER_NV 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_NV 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_NV 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_NV 0x88EF +#endif /* GL_NV_pixel_buffer_object */ + +#ifndef GL_NV_polygon_mode +#define GL_NV_polygon_mode 1 +#define GL_POLYGON_MODE_NV 0x0B40 +#define GL_POLYGON_OFFSET_POINT_NV 0x2A01 +#define GL_POLYGON_OFFSET_LINE_NV 0x2A02 +#define GL_POINT_NV 0x1B00 +#define GL_LINE_NV 0x1B01 +#define GL_FILL_NV 0x1B02 +typedef void (GL_APIENTRYP PFNGLPOLYGONMODENVPROC) (GLenum face, GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glPolygonModeNV (GLenum face, GLenum mode); +#endif +#endif /* GL_NV_polygon_mode */ + +#ifndef GL_NV_primitive_shading_rate +#define GL_NV_primitive_shading_rate 1 +#define GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV 0x95B1 +#define GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV 0x95B2 +#endif /* GL_NV_primitive_shading_rate */ + +#ifndef GL_NV_read_buffer +#define GL_NV_read_buffer 1 +#define GL_READ_BUFFER_NV 0x0C02 +typedef void (GL_APIENTRYP PFNGLREADBUFFERNVPROC) (GLenum mode); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glReadBufferNV (GLenum mode); +#endif +#endif /* GL_NV_read_buffer */ + +#ifndef GL_NV_read_buffer_front +#define GL_NV_read_buffer_front 1 +#endif /* GL_NV_read_buffer_front */ + +#ifndef GL_NV_read_depth +#define GL_NV_read_depth 1 +#endif /* GL_NV_read_depth */ + +#ifndef GL_NV_read_depth_stencil +#define GL_NV_read_depth_stencil 1 +#endif /* GL_NV_read_depth_stencil */ + +#ifndef GL_NV_read_stencil +#define GL_NV_read_stencil 1 +#endif /* GL_NV_read_stencil */ + +#ifndef GL_NV_representative_fragment_test +#define GL_NV_representative_fragment_test 1 +#define GL_REPRESENTATIVE_FRAGMENT_TEST_NV 0x937F +#endif /* GL_NV_representative_fragment_test */ + +#ifndef GL_NV_sRGB_formats +#define GL_NV_sRGB_formats 1 +#define GL_SLUMINANCE_NV 0x8C46 +#define GL_SLUMINANCE_ALPHA_NV 0x8C44 +#define GL_SRGB8_NV 0x8C41 +#define GL_SLUMINANCE8_NV 0x8C47 +#define GL_SLUMINANCE8_ALPHA8_NV 0x8C45 +#define GL_COMPRESSED_SRGB_S3TC_DXT1_NV 0x8C4C +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV 0x8C4D +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV 0x8C4E +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV 0x8C4F +#define GL_ETC1_SRGB8_NV 0x88EE +#endif /* GL_NV_sRGB_formats */ + +#ifndef GL_NV_sample_locations +#define GL_NV_sample_locations 1 +#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D +#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV 0x933E +#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV 0x933F +#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV 0x9340 +#define GL_SAMPLE_LOCATION_NV 0x8E50 +#define GL_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9341 +#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV 0x9342 +#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV 0x9343 +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat *v); +typedef void (GL_APIENTRYP PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); +typedef void (GL_APIENTRYP PFNGLRESOLVEDEPTHVALUESNVPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glFramebufferSampleLocationsfvNV (GLenum target, GLuint start, GLsizei count, const GLfloat *v); +GL_APICALL void GL_APIENTRY glNamedFramebufferSampleLocationsfvNV (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); +GL_APICALL void GL_APIENTRY glResolveDepthValuesNV (void); +#endif +#endif /* GL_NV_sample_locations */ + +#ifndef GL_NV_sample_mask_override_coverage +#define GL_NV_sample_mask_override_coverage 1 +#endif /* GL_NV_sample_mask_override_coverage */ + +#ifndef GL_NV_scissor_exclusive +#define GL_NV_scissor_exclusive 1 +#define GL_SCISSOR_TEST_EXCLUSIVE_NV 0x9555 +#define GL_SCISSOR_BOX_EXCLUSIVE_NV 0x9556 +typedef void (GL_APIENTRYP PFNGLSCISSOREXCLUSIVENVPROC) (GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLSCISSOREXCLUSIVEARRAYVNVPROC) (GLuint first, GLsizei count, const GLint *v); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glScissorExclusiveNV (GLint x, GLint y, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glScissorExclusiveArrayvNV (GLuint first, GLsizei count, const GLint *v); +#endif +#endif /* GL_NV_scissor_exclusive */ + +#ifndef GL_NV_shader_atomic_fp16_vector +#define GL_NV_shader_atomic_fp16_vector 1 +#endif /* GL_NV_shader_atomic_fp16_vector */ + +#ifndef GL_NV_shader_noperspective_interpolation +#define GL_NV_shader_noperspective_interpolation 1 +#endif /* GL_NV_shader_noperspective_interpolation */ + +#ifndef GL_NV_shader_subgroup_partitioned +#define GL_NV_shader_subgroup_partitioned 1 +#define GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV 0x00000100 +#endif /* GL_NV_shader_subgroup_partitioned */ + +#ifndef GL_NV_shader_texture_footprint +#define GL_NV_shader_texture_footprint 1 +#endif /* GL_NV_shader_texture_footprint */ + +#ifndef GL_NV_shading_rate_image +#define GL_NV_shading_rate_image 1 +#define GL_SHADING_RATE_IMAGE_NV 0x9563 +#define GL_SHADING_RATE_NO_INVOCATIONS_NV 0x9564 +#define GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV 0x9565 +#define GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV 0x9566 +#define GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV 0x9567 +#define GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV 0x9568 +#define GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV 0x9569 +#define GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV 0x956A +#define GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV 0x956B +#define GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV 0x956C +#define GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV 0x956D +#define GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV 0x956E +#define GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV 0x956F +#define GL_SHADING_RATE_IMAGE_BINDING_NV 0x955B +#define GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV 0x955C +#define GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV 0x955D +#define GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV 0x955E +#define GL_MAX_COARSE_FRAGMENT_SAMPLES_NV 0x955F +#define GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV 0x95AE +#define GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV 0x95AF +#define GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV 0x95B0 +typedef void (GL_APIENTRYP PFNGLBINDSHADINGRATEIMAGENVPROC) (GLuint texture); +typedef void (GL_APIENTRYP PFNGLGETSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint entry, GLenum *rate); +typedef void (GL_APIENTRYP PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC) (GLenum rate, GLuint samples, GLuint index, GLint *location); +typedef void (GL_APIENTRYP PFNGLSHADINGRATEIMAGEBARRIERNVPROC) (GLboolean synchronize); +typedef void (GL_APIENTRYP PFNGLSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates); +typedef void (GL_APIENTRYP PFNGLSHADINGRATESAMPLEORDERNVPROC) (GLenum order); +typedef void (GL_APIENTRYP PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC) (GLenum rate, GLuint samples, const GLint *locations); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glBindShadingRateImageNV (GLuint texture); +GL_APICALL void GL_APIENTRY glGetShadingRateImagePaletteNV (GLuint viewport, GLuint entry, GLenum *rate); +GL_APICALL void GL_APIENTRY glGetShadingRateSampleLocationivNV (GLenum rate, GLuint samples, GLuint index, GLint *location); +GL_APICALL void GL_APIENTRY glShadingRateImageBarrierNV (GLboolean synchronize); +GL_APICALL void GL_APIENTRY glShadingRateImagePaletteNV (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates); +GL_APICALL void GL_APIENTRY glShadingRateSampleOrderNV (GLenum order); +GL_APICALL void GL_APIENTRY glShadingRateSampleOrderCustomNV (GLenum rate, GLuint samples, const GLint *locations); +#endif +#endif /* GL_NV_shading_rate_image */ + +#ifndef GL_NV_shadow_samplers_array +#define GL_NV_shadow_samplers_array 1 +#define GL_SAMPLER_2D_ARRAY_SHADOW_NV 0x8DC4 +#endif /* GL_NV_shadow_samplers_array */ + +#ifndef GL_NV_shadow_samplers_cube +#define GL_NV_shadow_samplers_cube 1 +#define GL_SAMPLER_CUBE_SHADOW_NV 0x8DC5 +#endif /* GL_NV_shadow_samplers_cube */ + +#ifndef GL_NV_stereo_view_rendering +#define GL_NV_stereo_view_rendering 1 +#endif /* GL_NV_stereo_view_rendering */ + +#ifndef GL_NV_texture_border_clamp +#define GL_NV_texture_border_clamp 1 +#define GL_TEXTURE_BORDER_COLOR_NV 0x1004 +#define GL_CLAMP_TO_BORDER_NV 0x812D +#endif /* GL_NV_texture_border_clamp */ + +#ifndef GL_NV_texture_compression_s3tc_update +#define GL_NV_texture_compression_s3tc_update 1 +#endif /* GL_NV_texture_compression_s3tc_update */ + +#ifndef GL_NV_texture_npot_2D_mipmap +#define GL_NV_texture_npot_2D_mipmap 1 +#endif /* GL_NV_texture_npot_2D_mipmap */ + +#ifndef GL_NV_timeline_semaphore +#define GL_NV_timeline_semaphore 1 +#define GL_TIMELINE_SEMAPHORE_VALUE_NV 0x9595 +#define GL_SEMAPHORE_TYPE_NV 0x95B3 +#define GL_SEMAPHORE_TYPE_BINARY_NV 0x95B4 +#define GL_SEMAPHORE_TYPE_TIMELINE_NV 0x95B5 +#define GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV 0x95B6 +typedef void (GL_APIENTRYP PFNGLCREATESEMAPHORESNVPROC) (GLsizei n, GLuint *semaphores); +typedef void (GL_APIENTRYP PFNGLSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, const GLint *params); +typedef void (GL_APIENTRYP PFNGLGETSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, GLint *params); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glCreateSemaphoresNV (GLsizei n, GLuint *semaphores); +GL_APICALL void GL_APIENTRY glSemaphoreParameterivNV (GLuint semaphore, GLenum pname, const GLint *params); +GL_APICALL void GL_APIENTRY glGetSemaphoreParameterivNV (GLuint semaphore, GLenum pname, GLint *params); +#endif +#endif /* GL_NV_timeline_semaphore */ + +#ifndef GL_NV_viewport_array +#define GL_NV_viewport_array 1 +#define GL_MAX_VIEWPORTS_NV 0x825B +#define GL_VIEWPORT_SUBPIXEL_BITS_NV 0x825C +#define GL_VIEWPORT_BOUNDS_RANGE_NV 0x825D +#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV 0x825F +typedef void (GL_APIENTRYP PFNGLVIEWPORTARRAYVNVPROC) (GLuint first, GLsizei count, const GLfloat *v); +typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFVNVPROC) (GLuint index, const GLfloat *v); +typedef void (GL_APIENTRYP PFNGLSCISSORARRAYVNVPROC) (GLuint first, GLsizei count, const GLint *v); +typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDNVPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDVNVPROC) (GLuint index, const GLint *v); +typedef void (GL_APIENTRYP PFNGLDEPTHRANGEARRAYFVNVPROC) (GLuint first, GLsizei count, const GLfloat *v); +typedef void (GL_APIENTRYP PFNGLDEPTHRANGEINDEXEDFNVPROC) (GLuint index, GLfloat n, GLfloat f); +typedef void (GL_APIENTRYP PFNGLGETFLOATI_VNVPROC) (GLenum target, GLuint index, GLfloat *data); +typedef void (GL_APIENTRYP PFNGLENABLEINVPROC) (GLenum target, GLuint index); +typedef void (GL_APIENTRYP PFNGLDISABLEINVPROC) (GLenum target, GLuint index); +typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDINVPROC) (GLenum target, GLuint index); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glViewportArrayvNV (GLuint first, GLsizei count, const GLfloat *v); +GL_APICALL void GL_APIENTRY glViewportIndexedfNV (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +GL_APICALL void GL_APIENTRY glViewportIndexedfvNV (GLuint index, const GLfloat *v); +GL_APICALL void GL_APIENTRY glScissorArrayvNV (GLuint first, GLsizei count, const GLint *v); +GL_APICALL void GL_APIENTRY glScissorIndexedNV (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +GL_APICALL void GL_APIENTRY glScissorIndexedvNV (GLuint index, const GLint *v); +GL_APICALL void GL_APIENTRY glDepthRangeArrayfvNV (GLuint first, GLsizei count, const GLfloat *v); +GL_APICALL void GL_APIENTRY glDepthRangeIndexedfNV (GLuint index, GLfloat n, GLfloat f); +GL_APICALL void GL_APIENTRY glGetFloati_vNV (GLenum target, GLuint index, GLfloat *data); +GL_APICALL void GL_APIENTRY glEnableiNV (GLenum target, GLuint index); +GL_APICALL void GL_APIENTRY glDisableiNV (GLenum target, GLuint index); +GL_APICALL GLboolean GL_APIENTRY glIsEnablediNV (GLenum target, GLuint index); +#endif +#endif /* GL_NV_viewport_array */ + +#ifndef GL_NV_viewport_array2 +#define GL_NV_viewport_array2 1 +#endif /* GL_NV_viewport_array2 */ + +#ifndef GL_NV_viewport_swizzle +#define GL_NV_viewport_swizzle 1 +#define GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV 0x9350 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV 0x9351 +#define GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV 0x9352 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV 0x9353 +#define GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV 0x9354 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV 0x9355 +#define GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV 0x9356 +#define GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV 0x9357 +#define GL_VIEWPORT_SWIZZLE_X_NV 0x9358 +#define GL_VIEWPORT_SWIZZLE_Y_NV 0x9359 +#define GL_VIEWPORT_SWIZZLE_Z_NV 0x935A +#define GL_VIEWPORT_SWIZZLE_W_NV 0x935B +typedef void (GL_APIENTRYP PFNGLVIEWPORTSWIZZLENVPROC) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glViewportSwizzleNV (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); +#endif +#endif /* GL_NV_viewport_swizzle */ + +#ifndef GL_OVR_multiview +#define GL_OVR_multiview 1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR 0x9630 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR 0x9632 +#define GL_MAX_VIEWS_OVR 0x9631 +#define GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR 0x9633 +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glFramebufferTextureMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); +#endif +#endif /* GL_OVR_multiview */ + +#ifndef GL_OVR_multiview2 +#define GL_OVR_multiview2 1 +#endif /* GL_OVR_multiview2 */ + +#ifndef GL_OVR_multiview_multisampled_render_to_texture +#define GL_OVR_multiview_multisampled_render_to_texture 1 +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glFramebufferTextureMultisampleMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews); +#endif +#endif /* GL_OVR_multiview_multisampled_render_to_texture */ + +#ifndef GL_QCOM_YUV_texture_gather +#define GL_QCOM_YUV_texture_gather 1 +#endif /* GL_QCOM_YUV_texture_gather */ + +#ifndef GL_QCOM_alpha_test +#define GL_QCOM_alpha_test 1 +#define GL_ALPHA_TEST_QCOM 0x0BC0 +#define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1 +#define GL_ALPHA_TEST_REF_QCOM 0x0BC2 +typedef void (GL_APIENTRYP PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glAlphaFuncQCOM (GLenum func, GLclampf ref); +#endif +#endif /* GL_QCOM_alpha_test */ + +#ifndef GL_QCOM_binning_control +#define GL_QCOM_binning_control 1 +#define GL_BINNING_CONTROL_HINT_QCOM 0x8FB0 +#define GL_CPU_OPTIMIZED_QCOM 0x8FB1 +#define GL_GPU_OPTIMIZED_QCOM 0x8FB2 +#define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3 +#endif /* GL_QCOM_binning_control */ + +#ifndef GL_QCOM_driver_control +#define GL_QCOM_driver_control 1 +typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls); +typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); +typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); +typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls); +GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); +GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl); +GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl); +#endif +#endif /* GL_QCOM_driver_control */ + +#ifndef GL_QCOM_extended_get +#define GL_QCOM_extended_get 1 +#define GL_TEXTURE_WIDTH_QCOM 0x8BD2 +#define GL_TEXTURE_HEIGHT_QCOM 0x8BD3 +#define GL_TEXTURE_DEPTH_QCOM 0x8BD4 +#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5 +#define GL_TEXTURE_FORMAT_QCOM 0x8BD6 +#define GL_TEXTURE_TYPE_QCOM 0x8BD7 +#define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8 +#define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9 +#define GL_TEXTURE_TARGET_QCOM 0x8BDA +#define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB +#define GL_STATE_RESTORE 0x8BDC +typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures); +typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); +typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); +typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); +typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); +typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param); +typedef void (GL_APIENTRYP PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels); +typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, void **params); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures); +GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); +GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); +GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); +GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); +GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param); +GL_APICALL void GL_APIENTRY glExtGetTexSubImageQCOM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels); +GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, void **params); +#endif +#endif /* GL_QCOM_extended_get */ + +#ifndef GL_QCOM_extended_get2 +#define GL_QCOM_extended_get2 1 +typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders); +typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms); +typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program); +typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders); +GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms); +GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program); +GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length); +#endif +#endif /* GL_QCOM_extended_get2 */ + +#ifndef GL_QCOM_frame_extrapolation +#define GL_QCOM_frame_extrapolation 1 +typedef void (GL_APIENTRYP PFNGLEXTRAPOLATETEX2DQCOMPROC) (GLuint src1, GLuint src2, GLuint output, GLfloat scaleFactor); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glExtrapolateTex2DQCOM (GLuint src1, GLuint src2, GLuint output, GLfloat scaleFactor); +#endif +#endif /* GL_QCOM_frame_extrapolation */ + +#ifndef GL_QCOM_framebuffer_foveated +#define GL_QCOM_framebuffer_foveated 1 +#define GL_FOVEATION_ENABLE_BIT_QCOM 0x00000001 +#define GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM 0x00000002 +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC) (GLuint framebuffer, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint *providedFeatures); +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC) (GLuint framebuffer, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glFramebufferFoveationConfigQCOM (GLuint framebuffer, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint *providedFeatures); +GL_APICALL void GL_APIENTRY glFramebufferFoveationParametersQCOM (GLuint framebuffer, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); +#endif +#endif /* GL_QCOM_framebuffer_foveated */ + +#ifndef GL_QCOM_motion_estimation +#define GL_QCOM_motion_estimation 1 +#define GL_MOTION_ESTIMATION_SEARCH_BLOCK_X_QCOM 0x8C90 +#define GL_MOTION_ESTIMATION_SEARCH_BLOCK_Y_QCOM 0x8C91 +typedef void (GL_APIENTRYP PFNGLTEXESTIMATEMOTIONQCOMPROC) (GLuint ref, GLuint target, GLuint output); +typedef void (GL_APIENTRYP PFNGLTEXESTIMATEMOTIONREGIONSQCOMPROC) (GLuint ref, GLuint target, GLuint output, GLuint mask); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glTexEstimateMotionQCOM (GLuint ref, GLuint target, GLuint output); +GL_APICALL void GL_APIENTRY glTexEstimateMotionRegionsQCOM (GLuint ref, GLuint target, GLuint output, GLuint mask); +#endif +#endif /* GL_QCOM_motion_estimation */ + +#ifndef GL_QCOM_perfmon_global_mode +#define GL_QCOM_perfmon_global_mode 1 +#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0 +#endif /* GL_QCOM_perfmon_global_mode */ + +#ifndef GL_QCOM_render_shared_exponent +#define GL_QCOM_render_shared_exponent 1 +#endif /* GL_QCOM_render_shared_exponent */ + +#ifndef GL_QCOM_shader_framebuffer_fetch_noncoherent +#define GL_QCOM_shader_framebuffer_fetch_noncoherent 1 +#define GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM 0x96A2 +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC) (void); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glFramebufferFetchBarrierQCOM (void); +#endif +#endif /* GL_QCOM_shader_framebuffer_fetch_noncoherent */ + +#ifndef GL_QCOM_shader_framebuffer_fetch_rate +#define GL_QCOM_shader_framebuffer_fetch_rate 1 +#endif /* GL_QCOM_shader_framebuffer_fetch_rate */ + +#ifndef GL_QCOM_shading_rate +#define GL_QCOM_shading_rate 1 +#define GL_SHADING_RATE_QCOM 0x96A4 +#define GL_SHADING_RATE_PRESERVE_ASPECT_RATIO_QCOM 0x96A5 +#define GL_SHADING_RATE_1X1_PIXELS_QCOM 0x96A6 +#define GL_SHADING_RATE_1X2_PIXELS_QCOM 0x96A7 +#define GL_SHADING_RATE_2X1_PIXELS_QCOM 0x96A8 +#define GL_SHADING_RATE_2X2_PIXELS_QCOM 0x96A9 +#define GL_SHADING_RATE_4X2_PIXELS_QCOM 0x96AC +#define GL_SHADING_RATE_4X4_PIXELS_QCOM 0x96AE +typedef void (GL_APIENTRYP PFNGLSHADINGRATEQCOMPROC) (GLenum rate); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glShadingRateQCOM (GLenum rate); +#endif +#endif /* GL_QCOM_shading_rate */ + +#ifndef GL_QCOM_texture_foveated +#define GL_QCOM_texture_foveated 1 +#define GL_TEXTURE_FOVEATED_FEATURE_BITS_QCOM 0x8BFB +#define GL_TEXTURE_FOVEATED_MIN_PIXEL_DENSITY_QCOM 0x8BFC +#define GL_TEXTURE_FOVEATED_FEATURE_QUERY_QCOM 0x8BFD +#define GL_TEXTURE_FOVEATED_NUM_FOCAL_POINTS_QUERY_QCOM 0x8BFE +#define GL_FRAMEBUFFER_INCOMPLETE_FOVEATION_QCOM 0x8BFF +typedef void (GL_APIENTRYP PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC) (GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glTextureFoveationParametersQCOM (GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); +#endif +#endif /* GL_QCOM_texture_foveated */ + +#ifndef GL_QCOM_texture_foveated2 +#define GL_QCOM_texture_foveated2 1 +#define GL_TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM 0x96A0 +#endif /* GL_QCOM_texture_foveated2 */ + +#ifndef GL_QCOM_texture_foveated_subsampled_layout +#define GL_QCOM_texture_foveated_subsampled_layout 1 +#define GL_FOVEATION_SUBSAMPLED_LAYOUT_METHOD_BIT_QCOM 0x00000004 +#define GL_MAX_SHADER_SUBSAMPLED_IMAGE_UNITS_QCOM 0x8FA1 +#endif /* GL_QCOM_texture_foveated_subsampled_layout */ + +#ifndef GL_QCOM_tiled_rendering +#define GL_QCOM_tiled_rendering 1 +#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001 +#define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002 +#define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004 +#define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008 +#define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010 +#define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020 +#define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040 +#define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080 +#define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100 +#define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200 +#define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400 +#define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800 +#define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000 +#define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000 +#define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000 +#define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000 +#define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000 +#define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000 +#define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000 +#define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000 +#define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000 +#define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000 +#define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000 +#define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000 +#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000 +#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000 +#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000 +#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000 +#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000 +#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000 +#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000 +#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000 +typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); +typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask); +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); +GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask); +#endif +#endif /* GL_QCOM_tiled_rendering */ + +#ifndef GL_QCOM_writeonly_rendering +#define GL_QCOM_writeonly_rendering 1 +#define GL_WRITEONLY_RENDERING_QCOM 0x8823 +#endif /* GL_QCOM_writeonly_rendering */ + +#ifndef GL_VIV_shader_binary +#define GL_VIV_shader_binary 1 +#define GL_SHADER_BINARY_VIV 0x8FC4 +#endif /* GL_VIV_shader_binary */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/lib/windows/include/SDL2/SDL_opengles2_gl2platform.h b/lib/windows/include/SDL2/SDL_opengles2_gl2platform.h new file mode 100644 index 0000000..426796e --- /dev/null +++ b/lib/windows/include/SDL2/SDL_opengles2_gl2platform.h @@ -0,0 +1,27 @@ +#ifndef __gl2platform_h_ +#define __gl2platform_h_ + +/* +** Copyright 2017-2020 The Khronos Group Inc. +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* Platform-specific types and definitions for OpenGL ES 2.X gl2.h + * + * Adopters may modify khrplatform.h and this file to suit their platform. + * Please contribute modifications back to Khronos as pull requests on the + * public github repository: + * https://github.com/KhronosGroup/OpenGL-Registry + */ + +/*#include */ + +#ifndef GL_APICALL +#define GL_APICALL KHRONOS_APICALL +#endif + +#ifndef GL_APIENTRY +#define GL_APIENTRY KHRONOS_APIENTRY +#endif + +#endif /* __gl2platform_h_ */ diff --git a/lib/windows/include/SDL2/SDL_opengles2_khrplatform.h b/lib/windows/include/SDL2/SDL_opengles2_khrplatform.h new file mode 100644 index 0000000..0164644 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_opengles2_khrplatform.h @@ -0,0 +1,311 @@ +#ifndef __khrplatform_h_ +#define __khrplatform_h_ + +/* +** Copyright (c) 2008-2018 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* Khronos platform-specific types and definitions. + * + * The master copy of khrplatform.h is maintained in the Khronos EGL + * Registry repository at https://github.com/KhronosGroup/EGL-Registry + * The last semantic modification to khrplatform.h was at commit ID: + * 67a3e0864c2d75ea5287b9f3d2eb74a745936692 + * + * Adopters may modify this file to suit their platform. Adopters are + * encouraged to submit platform specific modifications to the Khronos + * group so that they can be included in future versions of this file. + * Please submit changes by filing pull requests or issues on + * the EGL Registry repository linked above. + * + * + * See the Implementer's Guidelines for information about where this file + * should be located on your system and for more details of its use: + * http://www.khronos.org/registry/implementers_guide.pdf + * + * This file should be included as + * #include + * by Khronos client API header files that use its types and defines. + * + * The types in khrplatform.h should only be used to define API-specific types. + * + * Types defined in khrplatform.h: + * khronos_int8_t signed 8 bit + * khronos_uint8_t unsigned 8 bit + * khronos_int16_t signed 16 bit + * khronos_uint16_t unsigned 16 bit + * khronos_int32_t signed 32 bit + * khronos_uint32_t unsigned 32 bit + * khronos_int64_t signed 64 bit + * khronos_uint64_t unsigned 64 bit + * khronos_intptr_t signed same number of bits as a pointer + * khronos_uintptr_t unsigned same number of bits as a pointer + * khronos_ssize_t signed size + * khronos_usize_t unsigned size + * khronos_float_t signed 32 bit floating point + * khronos_time_ns_t unsigned 64 bit time in nanoseconds + * khronos_utime_nanoseconds_t unsigned time interval or absolute time in + * nanoseconds + * khronos_stime_nanoseconds_t signed time interval in nanoseconds + * khronos_boolean_enum_t enumerated boolean type. This should + * only be used as a base type when a client API's boolean type is + * an enum. Client APIs which use an integer or other type for + * booleans cannot use this as the base type for their boolean. + * + * Tokens defined in khrplatform.h: + * + * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. + * + * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. + * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. + * + * Calling convention macros defined in this file: + * KHRONOS_APICALL + * KHRONOS_APIENTRY + * KHRONOS_APIATTRIBUTES + * + * These may be used in function prototypes as: + * + * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( + * int arg1, + * int arg2) KHRONOS_APIATTRIBUTES; + */ + +#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC) +# define KHRONOS_STATIC 1 +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APICALL + *------------------------------------------------------------------------- + * This precedes the return type of the function in the function prototype. + */ +#if defined(KHRONOS_STATIC) + /* If the preprocessor constant KHRONOS_STATIC is defined, make the + * header compatible with static linking. */ +# define KHRONOS_APICALL +#elif defined(_WIN32) +# define KHRONOS_APICALL __declspec(dllimport) +#elif defined (__SYMBIAN32__) +# define KHRONOS_APICALL IMPORT_C +#elif defined(__ANDROID__) +# define KHRONOS_APICALL __attribute__((visibility("default"))) +#else +# define KHRONOS_APICALL +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIENTRY + *------------------------------------------------------------------------- + * This follows the return type of the function and precedes the function + * name in the function prototype. + */ +#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) + /* Win32 but not WinCE */ +# define KHRONOS_APIENTRY __stdcall +#else +# define KHRONOS_APIENTRY +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIATTRIBUTES + *------------------------------------------------------------------------- + * This follows the closing parenthesis of the function prototype arguments. + */ +#if defined (__ARMCC_2__) +#define KHRONOS_APIATTRIBUTES __softfp +#else +#define KHRONOS_APIATTRIBUTES +#endif + +/*------------------------------------------------------------------------- + * basic type definitions + *-----------------------------------------------------------------------*/ +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) + + +/* + * Using + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 +/* + * To support platform where unsigned long cannot be used interchangeably with + * inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t. + * Ideally, we could just use (u)intptr_t everywhere, but this could result in + * ABI breakage if khronos_uintptr_t is changed from unsigned long to + * unsigned long long or similar (this results in different C++ name mangling). + * To avoid changes for existing platforms, we restrict usage of intptr_t to + * platforms where the size of a pointer is larger than the size of long. + */ +#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__) +#if __SIZEOF_POINTER__ > __SIZEOF_LONG__ +#define KHRONOS_USE_INTPTR_T +#endif +#endif + +#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 KHRONOS_USE_INTPTR_T +typedef intptr_t khronos_intptr_t; +typedef uintptr_t khronos_uintptr_t; +#elif defined(_WIN64) +typedef signed long long int khronos_intptr_t; +typedef unsigned long long int khronos_uintptr_t; +#else +typedef signed long int khronos_intptr_t; +typedef unsigned long int khronos_uintptr_t; +#endif + +#if defined(_WIN64) +typedef signed long long int khronos_ssize_t; +typedef unsigned long long int khronos_usize_t; +#else +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_ */ diff --git a/lib/windows/include/SDL2/SDL_pixels.h b/lib/windows/include/SDL2/SDL_pixels.h new file mode 100644 index 0000000..6f29811 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_pixels.h @@ -0,0 +1,686 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryPixels + * + * Header for the enumerated pixel format definitions. + */ + +#ifndef SDL_pixels_h_ +#define SDL_pixels_h_ + +#include "SDL_stdinc.h" +#include "SDL_endian.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \name Transparency definitions + * + * These define alpha as the opacity of a surface. + */ +/* @{ */ +#define SDL_ALPHA_OPAQUE 255 +#define SDL_ALPHA_TRANSPARENT 0 +/* @} */ + +/** Pixel type. */ +typedef enum +{ + SDL_PIXELTYPE_UNKNOWN, + SDL_PIXELTYPE_INDEX1, + SDL_PIXELTYPE_INDEX4, + SDL_PIXELTYPE_INDEX8, + SDL_PIXELTYPE_PACKED8, + SDL_PIXELTYPE_PACKED16, + SDL_PIXELTYPE_PACKED32, + SDL_PIXELTYPE_ARRAYU8, + SDL_PIXELTYPE_ARRAYU16, + SDL_PIXELTYPE_ARRAYU32, + SDL_PIXELTYPE_ARRAYF16, + SDL_PIXELTYPE_ARRAYF32, + + /* This must be at the end of the list to avoid breaking the existing ABI */ + SDL_PIXELTYPE_INDEX2 +} SDL_PixelType; + +/** Bitmap pixel order, high bit -> low bit. */ +typedef enum +{ + SDL_BITMAPORDER_NONE, + SDL_BITMAPORDER_4321, + SDL_BITMAPORDER_1234 +} SDL_BitmapOrder; + +/** Packed component order, high bit -> low bit. */ +typedef enum +{ + SDL_PACKEDORDER_NONE, + SDL_PACKEDORDER_XRGB, + SDL_PACKEDORDER_RGBX, + SDL_PACKEDORDER_ARGB, + SDL_PACKEDORDER_RGBA, + SDL_PACKEDORDER_XBGR, + SDL_PACKEDORDER_BGRX, + SDL_PACKEDORDER_ABGR, + SDL_PACKEDORDER_BGRA +} SDL_PackedOrder; + +/** Array component order, low byte -> high byte. */ +/* !!! FIXME: in 2.1, make these not overlap differently with + !!! FIXME: SDL_PACKEDORDER_*, so we can simplify SDL_ISPIXELFORMAT_ALPHA */ +typedef enum +{ + SDL_ARRAYORDER_NONE, + SDL_ARRAYORDER_RGB, + SDL_ARRAYORDER_RGBA, + SDL_ARRAYORDER_ARGB, + SDL_ARRAYORDER_BGR, + SDL_ARRAYORDER_BGRA, + SDL_ARRAYORDER_ABGR +} SDL_ArrayOrder; + +/** Packed component layout. */ +typedef enum +{ + SDL_PACKEDLAYOUT_NONE, + SDL_PACKEDLAYOUT_332, + SDL_PACKEDLAYOUT_4444, + SDL_PACKEDLAYOUT_1555, + SDL_PACKEDLAYOUT_5551, + SDL_PACKEDLAYOUT_565, + SDL_PACKEDLAYOUT_8888, + SDL_PACKEDLAYOUT_2101010, + SDL_PACKEDLAYOUT_1010102 +} SDL_PackedLayout; + +#define SDL_DEFINE_PIXELFOURCC(A, B, C, D) SDL_FOURCC(A, B, C, D) + +#define SDL_DEFINE_PIXELFORMAT(type, order, layout, bits, bytes) \ + ((1 << 28) | ((type) << 24) | ((order) << 20) | ((layout) << 16) | \ + ((bits) << 8) | ((bytes) << 0)) + +#define SDL_PIXELFLAG(X) (((X) >> 28) & 0x0F) +#define SDL_PIXELTYPE(X) (((X) >> 24) & 0x0F) +#define SDL_PIXELORDER(X) (((X) >> 20) & 0x0F) +#define SDL_PIXELLAYOUT(X) (((X) >> 16) & 0x0F) +#define SDL_BITSPERPIXEL(X) (((X) >> 8) & 0xFF) +#define SDL_BYTESPERPIXEL(X) \ + (SDL_ISPIXELFORMAT_FOURCC(X) ? \ + ((((X) == SDL_PIXELFORMAT_YUY2) || \ + ((X) == SDL_PIXELFORMAT_UYVY) || \ + ((X) == SDL_PIXELFORMAT_YVYU)) ? 2 : 1) : (((X) >> 0) & 0xFF)) + +#define SDL_ISPIXELFORMAT_INDEXED(format) \ + (!SDL_ISPIXELFORMAT_FOURCC(format) && \ + ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX1) || \ + (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX2) || \ + (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX4) || \ + (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_INDEX8))) + +#define SDL_ISPIXELFORMAT_PACKED(format) \ + (!SDL_ISPIXELFORMAT_FOURCC(format) && \ + ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED8) || \ + (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED16) || \ + (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_PACKED32))) + +#define SDL_ISPIXELFORMAT_ARRAY(format) \ + (!SDL_ISPIXELFORMAT_FOURCC(format) && \ + ((SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU8) || \ + (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU16) || \ + (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYU32) || \ + (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYF16) || \ + (SDL_PIXELTYPE(format) == SDL_PIXELTYPE_ARRAYF32))) + +#define SDL_ISPIXELFORMAT_ALPHA(format) \ + ((SDL_ISPIXELFORMAT_PACKED(format) && \ + ((SDL_PIXELORDER(format) == SDL_PACKEDORDER_ARGB) || \ + (SDL_PIXELORDER(format) == SDL_PACKEDORDER_RGBA) || \ + (SDL_PIXELORDER(format) == SDL_PACKEDORDER_ABGR) || \ + (SDL_PIXELORDER(format) == SDL_PACKEDORDER_BGRA))) || \ + (SDL_ISPIXELFORMAT_ARRAY(format) && \ + ((SDL_PIXELORDER(format) == SDL_ARRAYORDER_ARGB) || \ + (SDL_PIXELORDER(format) == SDL_ARRAYORDER_RGBA) || \ + (SDL_PIXELORDER(format) == SDL_ARRAYORDER_ABGR) || \ + (SDL_PIXELORDER(format) == SDL_ARRAYORDER_BGRA)))) + +/* The flag is set to 1 because 0x1? is not in the printable ASCII range */ +#define SDL_ISPIXELFORMAT_FOURCC(format) \ + ((format) && (SDL_PIXELFLAG(format) != 1)) + +/* Note: If you modify this list, update SDL_GetPixelFormatName() */ +typedef enum +{ + SDL_PIXELFORMAT_UNKNOWN, + SDL_PIXELFORMAT_INDEX1LSB = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_4321, 0, + 1, 0), + SDL_PIXELFORMAT_INDEX1MSB = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_1234, 0, + 1, 0), + SDL_PIXELFORMAT_INDEX2LSB = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX2, SDL_BITMAPORDER_4321, 0, + 2, 0), + SDL_PIXELFORMAT_INDEX2MSB = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX2, SDL_BITMAPORDER_1234, 0, + 2, 0), + SDL_PIXELFORMAT_INDEX4LSB = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_4321, 0, + 4, 0), + SDL_PIXELFORMAT_INDEX4MSB = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_1234, 0, + 4, 0), + SDL_PIXELFORMAT_INDEX8 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX8, 0, 0, 8, 1), + SDL_PIXELFORMAT_RGB332 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED8, SDL_PACKEDORDER_XRGB, + SDL_PACKEDLAYOUT_332, 8, 1), + SDL_PIXELFORMAT_XRGB4444 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, + SDL_PACKEDLAYOUT_4444, 12, 2), + SDL_PIXELFORMAT_RGB444 = SDL_PIXELFORMAT_XRGB4444, + SDL_PIXELFORMAT_XBGR4444 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, + SDL_PACKEDLAYOUT_4444, 12, 2), + SDL_PIXELFORMAT_BGR444 = SDL_PIXELFORMAT_XBGR4444, + SDL_PIXELFORMAT_XRGB1555 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, + SDL_PACKEDLAYOUT_1555, 15, 2), + SDL_PIXELFORMAT_RGB555 = SDL_PIXELFORMAT_XRGB1555, + SDL_PIXELFORMAT_XBGR1555 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, + SDL_PACKEDLAYOUT_1555, 15, 2), + SDL_PIXELFORMAT_BGR555 = SDL_PIXELFORMAT_XBGR1555, + SDL_PIXELFORMAT_ARGB4444 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB, + SDL_PACKEDLAYOUT_4444, 16, 2), + SDL_PIXELFORMAT_RGBA4444 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, + SDL_PACKEDLAYOUT_4444, 16, 2), + SDL_PIXELFORMAT_ABGR4444 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR, + SDL_PACKEDLAYOUT_4444, 16, 2), + SDL_PIXELFORMAT_BGRA4444 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA, + SDL_PACKEDLAYOUT_4444, 16, 2), + SDL_PIXELFORMAT_ARGB1555 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB, + SDL_PACKEDLAYOUT_1555, 16, 2), + SDL_PIXELFORMAT_RGBA5551 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, + SDL_PACKEDLAYOUT_5551, 16, 2), + SDL_PIXELFORMAT_ABGR1555 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR, + SDL_PACKEDLAYOUT_1555, 16, 2), + SDL_PIXELFORMAT_BGRA5551 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA, + SDL_PACKEDLAYOUT_5551, 16, 2), + SDL_PIXELFORMAT_RGB565 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, + SDL_PACKEDLAYOUT_565, 16, 2), + SDL_PIXELFORMAT_BGR565 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, + SDL_PACKEDLAYOUT_565, 16, 2), + SDL_PIXELFORMAT_RGB24 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_RGB, 0, + 24, 3), + SDL_PIXELFORMAT_BGR24 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_BGR, 0, + 24, 3), + SDL_PIXELFORMAT_XRGB8888 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XRGB, + SDL_PACKEDLAYOUT_8888, 24, 4), + SDL_PIXELFORMAT_RGB888 = SDL_PIXELFORMAT_XRGB8888, + SDL_PIXELFORMAT_RGBX8888 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBX, + SDL_PACKEDLAYOUT_8888, 24, 4), + SDL_PIXELFORMAT_XBGR8888 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XBGR, + SDL_PACKEDLAYOUT_8888, 24, 4), + SDL_PIXELFORMAT_BGR888 = SDL_PIXELFORMAT_XBGR8888, + SDL_PIXELFORMAT_BGRX8888 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRX, + SDL_PACKEDLAYOUT_8888, 24, 4), + SDL_PIXELFORMAT_ARGB8888 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB, + SDL_PACKEDLAYOUT_8888, 32, 4), + SDL_PIXELFORMAT_RGBA8888 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBA, + SDL_PACKEDLAYOUT_8888, 32, 4), + SDL_PIXELFORMAT_ABGR8888 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ABGR, + SDL_PACKEDLAYOUT_8888, 32, 4), + SDL_PIXELFORMAT_BGRA8888 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRA, + SDL_PACKEDLAYOUT_8888, 32, 4), + SDL_PIXELFORMAT_ARGB2101010 = + SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB, + SDL_PACKEDLAYOUT_2101010, 32, 4), + + /* Aliases for RGBA byte arrays of color data, for the current platform */ +#if SDL_BYTEORDER == SDL_BIG_ENDIAN + SDL_PIXELFORMAT_RGBA32 = SDL_PIXELFORMAT_RGBA8888, + SDL_PIXELFORMAT_ARGB32 = SDL_PIXELFORMAT_ARGB8888, + SDL_PIXELFORMAT_BGRA32 = SDL_PIXELFORMAT_BGRA8888, + SDL_PIXELFORMAT_ABGR32 = SDL_PIXELFORMAT_ABGR8888, + SDL_PIXELFORMAT_RGBX32 = SDL_PIXELFORMAT_RGBX8888, + SDL_PIXELFORMAT_XRGB32 = SDL_PIXELFORMAT_XRGB8888, + SDL_PIXELFORMAT_BGRX32 = SDL_PIXELFORMAT_BGRX8888, + SDL_PIXELFORMAT_XBGR32 = SDL_PIXELFORMAT_XBGR8888, +#else + SDL_PIXELFORMAT_RGBA32 = SDL_PIXELFORMAT_ABGR8888, + SDL_PIXELFORMAT_ARGB32 = SDL_PIXELFORMAT_BGRA8888, + SDL_PIXELFORMAT_BGRA32 = SDL_PIXELFORMAT_ARGB8888, + SDL_PIXELFORMAT_ABGR32 = SDL_PIXELFORMAT_RGBA8888, + SDL_PIXELFORMAT_RGBX32 = SDL_PIXELFORMAT_XBGR8888, + SDL_PIXELFORMAT_XRGB32 = SDL_PIXELFORMAT_BGRX8888, + SDL_PIXELFORMAT_BGRX32 = SDL_PIXELFORMAT_XRGB8888, + SDL_PIXELFORMAT_XBGR32 = SDL_PIXELFORMAT_RGBX8888, +#endif + + SDL_PIXELFORMAT_YV12 = /**< Planar mode: Y + V + U (3 planes) */ + SDL_DEFINE_PIXELFOURCC('Y', 'V', '1', '2'), + SDL_PIXELFORMAT_IYUV = /**< Planar mode: Y + U + V (3 planes) */ + SDL_DEFINE_PIXELFOURCC('I', 'Y', 'U', 'V'), + SDL_PIXELFORMAT_YUY2 = /**< Packed mode: Y0+U0+Y1+V0 (1 plane) */ + SDL_DEFINE_PIXELFOURCC('Y', 'U', 'Y', '2'), + SDL_PIXELFORMAT_UYVY = /**< Packed mode: U0+Y0+V0+Y1 (1 plane) */ + SDL_DEFINE_PIXELFOURCC('U', 'Y', 'V', 'Y'), + SDL_PIXELFORMAT_YVYU = /**< Packed mode: Y0+V0+Y1+U0 (1 plane) */ + SDL_DEFINE_PIXELFOURCC('Y', 'V', 'Y', 'U'), + SDL_PIXELFORMAT_NV12 = /**< Planar mode: Y + U/V interleaved (2 planes) */ + SDL_DEFINE_PIXELFOURCC('N', 'V', '1', '2'), + SDL_PIXELFORMAT_NV21 = /**< Planar mode: Y + V/U interleaved (2 planes) */ + SDL_DEFINE_PIXELFOURCC('N', 'V', '2', '1'), + SDL_PIXELFORMAT_EXTERNAL_OES = /**< Android video texture format */ + SDL_DEFINE_PIXELFOURCC('O', 'E', 'S', ' ') +} SDL_PixelFormatEnum; + +/** + * The bits of this structure can be directly reinterpreted as an + * integer-packed color which uses the SDL_PIXELFORMAT_RGBA32 format + * (SDL_PIXELFORMAT_ABGR8888 on little-endian systems and + * SDL_PIXELFORMAT_RGBA8888 on big-endian systems). + */ +typedef struct SDL_Color +{ + Uint8 r; + Uint8 g; + Uint8 b; + Uint8 a; +} SDL_Color; +#define SDL_Colour SDL_Color + +typedef struct SDL_Palette +{ + int ncolors; + SDL_Color *colors; + Uint32 version; + int refcount; +} SDL_Palette; + +/** + * A structure that contains pixel format information. + * + * Everything in the pixel format structure is read-only. + * + * A pixel format has either a palette or masks. If a palette is used `Rmask`, + * `Gmask`, `Bmask`, and `Amask` will be 0. + * + * An SDL_PixelFormat describes the format of the pixel data stored at the + * `pixels` field of an SDL_Surface. Every surface stores an SDL_PixelFormat + * in the `format` field. + * + * If you wish to do pixel level modifications on a surface, then + * understanding how SDL stores its color information is essential. + * + * For information on modern pixel color spaces, see the following Wikipedia + * article: http://en.wikipedia.org/wiki/RGBA_color_space + * + * \sa SDL_ConvertSurface + * \sa SDL_GetRGB + * \sa SDL_GetRGBA + * \sa SDL_MapRGB + * \sa SDL_MapRGBA + * \sa SDL_AllocFormat + * \sa SDL_FreeFormat + */ +typedef struct SDL_PixelFormat +{ + Uint32 format; + SDL_Palette *palette; + Uint8 BitsPerPixel; + Uint8 BytesPerPixel; + Uint8 padding[2]; + Uint32 Rmask; + Uint32 Gmask; + Uint32 Bmask; + Uint32 Amask; + Uint8 Rloss; + Uint8 Gloss; + Uint8 Bloss; + Uint8 Aloss; + Uint8 Rshift; + Uint8 Gshift; + Uint8 Bshift; + Uint8 Ashift; + int refcount; + struct SDL_PixelFormat *next; +} SDL_PixelFormat; + +/** + * Get the human readable name of a pixel format. + * + * \param format the pixel format to query. + * \returns the human readable name of the specified pixel format or + * `SDL_PIXELFORMAT_UNKNOWN` if the format isn't recognized. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC const char* SDLCALL SDL_GetPixelFormatName(Uint32 format); + +/** + * Convert one of the enumerated pixel formats to a bpp value and RGBA masks. + * + * \param format one of the SDL_PixelFormatEnum values. + * \param bpp a bits per pixel value; usually 15, 16, or 32. + * \param Rmask a pointer filled in with the red mask for the format. + * \param Gmask a pointer filled in with the green mask for the format. + * \param Bmask a pointer filled in with the blue mask for the format. + * \param Amask a pointer filled in with the alpha mask for the format. + * \returns SDL_TRUE on success or SDL_FALSE if the conversion wasn't + * possible; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_MasksToPixelFormatEnum + */ +extern DECLSPEC SDL_bool SDLCALL SDL_PixelFormatEnumToMasks(Uint32 format, + int *bpp, + Uint32 * Rmask, + Uint32 * Gmask, + Uint32 * Bmask, + Uint32 * Amask); + +/** + * Convert a bpp value and RGBA masks to an enumerated pixel format. + * + * This will return `SDL_PIXELFORMAT_UNKNOWN` if the conversion wasn't + * possible. + * + * \param bpp a bits per pixel value; usually 15, 16, or 32. + * \param Rmask the red mask for the format. + * \param Gmask the green mask for the format. + * \param Bmask the blue mask for the format. + * \param Amask the alpha mask for the format. + * \returns one of the SDL_PixelFormatEnum values. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_PixelFormatEnumToMasks + */ +extern DECLSPEC Uint32 SDLCALL SDL_MasksToPixelFormatEnum(int bpp, + Uint32 Rmask, + Uint32 Gmask, + Uint32 Bmask, + Uint32 Amask); + +/** + * Create an SDL_PixelFormat structure corresponding to a pixel format. + * + * Returned structure may come from a shared global cache (i.e. not newly + * allocated), and hence should not be modified, especially the palette. Weird + * errors such as `Blit combination not supported` may occur. + * + * \param pixel_format one of the SDL_PixelFormatEnum values. + * \returns the new SDL_PixelFormat structure or NULL on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_FreeFormat + */ +extern DECLSPEC SDL_PixelFormat * SDLCALL SDL_AllocFormat(Uint32 pixel_format); + +/** + * Free an SDL_PixelFormat structure allocated by SDL_AllocFormat(). + * + * \param format the SDL_PixelFormat structure to free. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AllocFormat + */ +extern DECLSPEC void SDLCALL SDL_FreeFormat(SDL_PixelFormat *format); + +/** + * Create a palette structure with the specified number of color entries. + * + * The palette entries are initialized to white. + * + * \param ncolors represents the number of color entries in the color palette. + * \returns a new SDL_Palette structure on success or NULL on failure (e.g. if + * there wasn't enough memory); call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_FreePalette + */ +extern DECLSPEC SDL_Palette *SDLCALL SDL_AllocPalette(int ncolors); + +/** + * Set the palette for a pixel format structure. + * + * \param format the SDL_PixelFormat structure that will use the palette. + * \param palette the SDL_Palette structure that will be used. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AllocPalette + * \sa SDL_FreePalette + */ +extern DECLSPEC int SDLCALL SDL_SetPixelFormatPalette(SDL_PixelFormat * format, + SDL_Palette *palette); + +/** + * Set a range of colors in a palette. + * + * \param palette the SDL_Palette structure to modify. + * \param colors an array of SDL_Color structures to copy into the palette. + * \param firstcolor the index of the first palette entry to modify. + * \param ncolors the number of entries to modify. + * \returns 0 on success or a negative error code if not all of the colors + * could be set; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AllocPalette + * \sa SDL_CreateRGBSurface + */ +extern DECLSPEC int SDLCALL SDL_SetPaletteColors(SDL_Palette * palette, + const SDL_Color * colors, + int firstcolor, int ncolors); + +/** + * Free a palette created with SDL_AllocPalette(). + * + * \param palette the SDL_Palette structure to be freed. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AllocPalette + */ +extern DECLSPEC void SDLCALL SDL_FreePalette(SDL_Palette * palette); + +/** + * Map an RGB triple to an opaque pixel value for a given pixel format. + * + * This function maps the RGB color value to the specified pixel format and + * returns the pixel value best approximating the given RGB color value for + * the given pixel format. + * + * If the format has a palette (8-bit) the index of the closest matching color + * in the palette will be returned. + * + * If the specified pixel format has an alpha component it will be returned as + * all 1 bits (fully opaque). + * + * If the pixel format bpp (color depth) is less than 32-bpp then the unused + * upper bits of the return value can safely be ignored (e.g., with a 16-bpp + * format the return value can be assigned to a Uint16, and similarly a Uint8 + * for an 8-bpp format). + * + * \param format an SDL_PixelFormat structure describing the pixel format. + * \param r the red component of the pixel in the range 0-255. + * \param g the green component of the pixel in the range 0-255. + * \param b the blue component of the pixel in the range 0-255. + * \returns a pixel value. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetRGB + * \sa SDL_GetRGBA + * \sa SDL_MapRGBA + */ +extern DECLSPEC Uint32 SDLCALL SDL_MapRGB(const SDL_PixelFormat * format, + Uint8 r, Uint8 g, Uint8 b); + +/** + * Map an RGBA quadruple to a pixel value for a given pixel format. + * + * This function maps the RGBA color value to the specified pixel format and + * returns the pixel value best approximating the given RGBA color value for + * the given pixel format. + * + * If the specified pixel format has no alpha component the alpha value will + * be ignored (as it will be in formats with a palette). + * + * If the format has a palette (8-bit) the index of the closest matching color + * in the palette will be returned. + * + * If the pixel format bpp (color depth) is less than 32-bpp then the unused + * upper bits of the return value can safely be ignored (e.g., with a 16-bpp + * format the return value can be assigned to a Uint16, and similarly a Uint8 + * for an 8-bpp format). + * + * \param format an SDL_PixelFormat structure describing the format of the + * pixel. + * \param r the red component of the pixel in the range 0-255. + * \param g the green component of the pixel in the range 0-255. + * \param b the blue component of the pixel in the range 0-255. + * \param a the alpha component of the pixel in the range 0-255. + * \returns a pixel value. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetRGB + * \sa SDL_GetRGBA + * \sa SDL_MapRGB + */ +extern DECLSPEC Uint32 SDLCALL SDL_MapRGBA(const SDL_PixelFormat * format, + Uint8 r, Uint8 g, Uint8 b, + Uint8 a); + +/** + * Get RGB values from a pixel in the specified format. + * + * This function uses the entire 8-bit [0..255] range when converting color + * components from pixel formats with less than 8-bits per RGB component + * (e.g., a completely white pixel in 16-bit RGB565 format would return [0xff, + * 0xff, 0xff] not [0xf8, 0xfc, 0xf8]). + * + * \param pixel a pixel value. + * \param format an SDL_PixelFormat structure describing the format of the + * pixel. + * \param r a pointer filled in with the red component. + * \param g a pointer filled in with the green component. + * \param b a pointer filled in with the blue component. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetRGBA + * \sa SDL_MapRGB + * \sa SDL_MapRGBA + */ +extern DECLSPEC void SDLCALL SDL_GetRGB(Uint32 pixel, + const SDL_PixelFormat * format, + Uint8 * r, Uint8 * g, Uint8 * b); + +/** + * Get RGBA values from a pixel in the specified format. + * + * This function uses the entire 8-bit [0..255] range when converting color + * components from pixel formats with less than 8-bits per RGB component + * (e.g., a completely white pixel in 16-bit RGB565 format would return [0xff, + * 0xff, 0xff] not [0xf8, 0xfc, 0xf8]). + * + * If the surface has no alpha component, the alpha will be returned as 0xff + * (100% opaque). + * + * \param pixel a pixel value. + * \param format an SDL_PixelFormat structure describing the format of the + * pixel. + * \param r a pointer filled in with the red component. + * \param g a pointer filled in with the green component. + * \param b a pointer filled in with the blue component. + * \param a a pointer filled in with the alpha component. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetRGB + * \sa SDL_MapRGB + * \sa SDL_MapRGBA + */ +extern DECLSPEC void SDLCALL SDL_GetRGBA(Uint32 pixel, + const SDL_PixelFormat * format, + Uint8 * r, Uint8 * g, Uint8 * b, + Uint8 * a); + +/** + * Calculate a 256 entry gamma ramp for a gamma value. + * + * \param gamma a gamma value where 0.0 is black and 1.0 is identity. + * \param ramp an array of 256 values filled in with the gamma ramp. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetWindowGammaRamp + */ +extern DECLSPEC void SDLCALL SDL_CalculateGammaRamp(float gamma, Uint16 * ramp); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_pixels_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_platform.h b/lib/windows/include/SDL2/SDL_platform.h new file mode 100644 index 0000000..64ece4f --- /dev/null +++ b/lib/windows/include/SDL2/SDL_platform.h @@ -0,0 +1,275 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryPlatform + * + * Try to get a standard set of platform defines. + */ + +#ifndef SDL_platform_h_ +#define SDL_platform_h_ + +#if defined(_AIX) +#undef __AIX__ +#define __AIX__ 1 +#endif +#if defined(__HAIKU__) +#undef __HAIKU__ +#define __HAIKU__ 1 +#endif +#if defined(bsdi) || defined(__bsdi) || defined(__bsdi__) +#undef __BSDI__ +#define __BSDI__ 1 +#endif +#if defined(_arch_dreamcast) +#undef __DREAMCAST__ +#define __DREAMCAST__ 1 +#endif +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) +#undef __FREEBSD__ +#define __FREEBSD__ 1 +#endif +#if defined(hpux) || defined(__hpux) || defined(__hpux__) +#undef __HPUX__ +#define __HPUX__ 1 +#endif +#if defined(sgi) || defined(__sgi) || defined(__sgi__) || defined(_SGI_SOURCE) +#undef __IRIX__ +#define __IRIX__ 1 +#endif +#if (defined(linux) || defined(__linux) || defined(__linux__)) +#undef __LINUX__ +#define __LINUX__ 1 +#endif +#if defined(ANDROID) || defined(__ANDROID__) +#undef __ANDROID__ +#undef __LINUX__ /* do we need to do this? */ +#define __ANDROID__ 1 +#endif +#if defined(__NGAGE__) +#undef __NGAGE__ +#define __NGAGE__ 1 +#endif + +#if defined(__APPLE__) +/* lets us know what version of Mac OS X we're compiling on */ +#include +#ifndef __has_extension /* Older compilers don't support this */ +#define __has_extension(x) 0 +#include +#undef __has_extension +#else +#include +#endif + +/* Fix building with older SDKs that don't define these + See this for more information: + https://stackoverflow.com/questions/12132933/preprocessor-macro-for-os-x-targets +*/ +#ifndef TARGET_OS_MACCATALYST +#define TARGET_OS_MACCATALYST 0 +#endif +#ifndef TARGET_OS_IOS +#define TARGET_OS_IOS 0 +#endif +#ifndef TARGET_OS_IPHONE +#define TARGET_OS_IPHONE 0 +#endif +#ifndef TARGET_OS_TV +#define TARGET_OS_TV 0 +#endif +#ifndef TARGET_OS_SIMULATOR +#define TARGET_OS_SIMULATOR 0 +#endif + +#if TARGET_OS_TV +#undef __TVOS__ +#define __TVOS__ 1 +#endif +#if TARGET_OS_IPHONE +/* if compiling for iOS */ +#undef __IPHONEOS__ +#define __IPHONEOS__ 1 +#undef __MACOSX__ +#else +/* if not compiling for iOS */ +#undef __MACOSX__ +#define __MACOSX__ 1 +#if MAC_OS_X_VERSION_MIN_REQUIRED < 1070 +# error SDL for Mac OS X only supports deploying on 10.7 and above. +#endif /* MAC_OS_X_VERSION_MIN_REQUIRED < 1070 */ +#endif /* TARGET_OS_IPHONE */ +#endif /* defined(__APPLE__) */ + +#if defined(__NetBSD__) +#undef __NETBSD__ +#define __NETBSD__ 1 +#endif +#if defined(__OpenBSD__) +#undef __OPENBSD__ +#define __OPENBSD__ 1 +#endif +#if defined(__OS2__) || defined(__EMX__) +#undef __OS2__ +#define __OS2__ 1 +#endif +#if defined(osf) || defined(__osf) || defined(__osf__) || defined(_OSF_SOURCE) +#undef __OSF__ +#define __OSF__ 1 +#endif +#if defined(__QNXNTO__) +#undef __QNXNTO__ +#define __QNXNTO__ 1 +#endif +#if defined(riscos) || defined(__riscos) || defined(__riscos__) +#undef __RISCOS__ +#define __RISCOS__ 1 +#endif +#if defined(__sun) && defined(__SVR4) +#undef __SOLARIS__ +#define __SOLARIS__ 1 +#endif + +#if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__) +/* Try to find out if we're compiling for WinRT, GDK or non-WinRT/GDK */ +#if defined(_MSC_VER) && defined(__has_include) +#if __has_include() +#define HAVE_WINAPIFAMILY_H 1 +#else +#define HAVE_WINAPIFAMILY_H 0 +#endif + +/* If _USING_V110_SDK71_ is defined it means we are using the Windows XP toolset. */ +#elif defined(_MSC_VER) && (_MSC_VER >= 1700 && !_USING_V110_SDK71_) /* _MSC_VER == 1700 for Visual Studio 2012 */ +#define HAVE_WINAPIFAMILY_H 1 +#else +#define HAVE_WINAPIFAMILY_H 0 +#endif + +#if HAVE_WINAPIFAMILY_H +#include +#define WINAPI_FAMILY_WINRT (!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)) +#else +#define WINAPI_FAMILY_WINRT 0 +#endif /* HAVE_WINAPIFAMILY_H */ + +#if (HAVE_WINAPIFAMILY_H) && defined(WINAPI_FAMILY_PHONE_APP) +#define SDL_WINAPI_FAMILY_PHONE (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) +#else +#define SDL_WINAPI_FAMILY_PHONE 0 +#endif + +#if WINAPI_FAMILY_WINRT +#undef __WINRT__ +#define __WINRT__ 1 +#elif defined(_GAMING_DESKTOP) /* GDK project configuration always defines _GAMING_XXX */ +#undef __WINGDK__ +#define __WINGDK__ 1 +#elif defined(_GAMING_XBOX_XBOXONE) +#undef __XBOXONE__ +#define __XBOXONE__ 1 +#elif defined(_GAMING_XBOX_SCARLETT) +#undef __XBOXSERIES__ +#define __XBOXSERIES__ 1 +#else +#undef __WINDOWS__ +#define __WINDOWS__ 1 +#endif +#endif /* defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) */ + +#if defined(__WINDOWS__) +#undef __WIN32__ +#define __WIN32__ 1 +#endif +/* This is to support generic "any GDK" separate from a platform-specific GDK */ +#if defined(__WINGDK__) || defined(__XBOXONE__) || defined(__XBOXSERIES__) +#undef __GDK__ +#define __GDK__ 1 +#endif +#if defined(__PSP__) || defined(__psp__) +#ifdef __PSP__ +#undef __PSP__ +#endif +#define __PSP__ 1 +#endif +#if defined(PS2) +#define __PS2__ 1 +#endif + +/* The NACL compiler defines __native_client__ and __pnacl__ + * Ref: http://www.chromium.org/nativeclient/pnacl/stability-of-the-pnacl-bitcode-abi + */ +#if defined(__native_client__) +#undef __LINUX__ +#undef __NACL__ +#define __NACL__ 1 +#endif +#if defined(__pnacl__) +#undef __LINUX__ +#undef __PNACL__ +#define __PNACL__ 1 +/* PNACL with newlib supports static linking only */ +#define __SDL_NOGETPROCADDR__ +#endif + +#if defined(__vita__) +#define __VITA__ 1 +#endif + +#if defined(__3DS__) +#undef __3DS__ +#define __3DS__ 1 +#endif + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Get the name of the platform. + * + * Here are the names returned for some (but not all) supported platforms: + * + * - "Windows" + * - "Mac OS X" + * - "Linux" + * - "iOS" + * - "Android" + * + * \returns the name of the platform. If the correct platform name is not + * available, returns a string beginning with the text "Unknown". + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC const char * SDLCALL SDL_GetPlatform (void); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_platform_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_power.h b/lib/windows/include/SDL2/SDL_power.h new file mode 100644 index 0000000..755c5d4 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_power.h @@ -0,0 +1,87 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_power_h_ +#define SDL_power_h_ + +/** + * # CategoryPower + * + * Header for the SDL power management routines. + */ + +#include "SDL_stdinc.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * The basic state for the system's power supply. + */ +typedef enum SDL_PowerState +{ + SDL_POWERSTATE_UNKNOWN, /**< cannot determine power status */ + SDL_POWERSTATE_ON_BATTERY, /**< Not plugged in, running on the battery */ + SDL_POWERSTATE_NO_BATTERY, /**< Plugged in, no battery available */ + SDL_POWERSTATE_CHARGING, /**< Plugged in, charging battery */ + SDL_POWERSTATE_CHARGED /**< Plugged in, battery charged */ +} SDL_PowerState; + +/** + * Get the current power supply details. + * + * You should never take a battery status as absolute truth. Batteries + * (especially failing batteries) are delicate hardware, and the values + * reported here are best estimates based on what that hardware reports. It's + * not uncommon for older batteries to lose stored power much faster than it + * reports, or completely drain when reporting it has 20 percent left, etc. + * + * Battery status can change at any time; if you are concerned with power + * state, you should call this function frequently, and perhaps ignore changes + * until they seem to be stable for a few seconds. + * + * It's possible a platform can only report battery percentage or time left + * but not both. + * + * \param seconds seconds of battery life left, you can pass a NULL here if + * you don't care, will return -1 if we can't determine a + * value, or we're not running on a battery. + * \param percent percentage of battery life left, between 0 and 100, you can + * pass a NULL here if you don't care, will return -1 if we + * can't determine a value, or we're not running on a battery. + * \returns an SDL_PowerState enum representing the current battery state. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC SDL_PowerState SDLCALL SDL_GetPowerInfo(int *seconds, int *percent); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_power_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_quit.h b/lib/windows/include/SDL2/SDL_quit.h new file mode 100644 index 0000000..03630e2 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_quit.h @@ -0,0 +1,50 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryQuit + * + * An SDL_QUIT event is generated when the user tries to close the application + * window. If it is ignored or filtered out, the window will remain open. If + * it is not ignored or filtered, it is queued normally and the window is + * allowed to close. When the window is closed, screen updates will complete, + * but have no effect. + * + * SDL_Init() installs signal handlers for SIGINT (keyboard interrupt) and + * SIGTERM (system termination request), if handlers do not already exist, + * that generate SDL_QUIT events as well. There is no way to determine the + * cause of an SDL_QUIT event, but setting a signal handler in your + * application will override the default generation of quit events for that + * signal. + */ + +#ifndef SDL_quit_h_ +#define SDL_quit_h_ + +#include "SDL_stdinc.h" +#include "SDL_error.h" + +/* There are no functions directly affecting the quit event */ + +#define SDL_QuitRequested() \ + (SDL_PumpEvents(), (SDL_PeepEvents(NULL,0,SDL_PEEKEVENT,SDL_QUIT,SDL_QUIT) > 0)) + +#endif /* SDL_quit_h_ */ diff --git a/lib/windows/include/SDL2/SDL_rect.h b/lib/windows/include/SDL2/SDL_rect.h new file mode 100644 index 0000000..b7e609d --- /dev/null +++ b/lib/windows/include/SDL2/SDL_rect.h @@ -0,0 +1,376 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryRect + * + * Header file for SDL_rect definition and management functions. + */ + +#ifndef SDL_rect_h_ +#define SDL_rect_h_ + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_pixels.h" +#include "SDL_rwops.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * The structure that defines a point (integer) + * + * \sa SDL_EnclosePoints + * \sa SDL_PointInRect + */ +typedef struct SDL_Point +{ + int x; + int y; +} SDL_Point; + +/** + * The structure that defines a point (floating point) + * + * \sa SDL_EncloseFPoints + * \sa SDL_PointInFRect + */ +typedef struct SDL_FPoint +{ + float x; + float y; +} SDL_FPoint; + + +/** + * A rectangle, with the origin at the upper left (integer). + * + * \sa SDL_RectEmpty + * \sa SDL_RectEquals + * \sa SDL_HasIntersection + * \sa SDL_IntersectRect + * \sa SDL_IntersectRectAndLine + * \sa SDL_UnionRect + * \sa SDL_EnclosePoints + */ +typedef struct SDL_Rect +{ + int x, y; + int w, h; +} SDL_Rect; + + +/** + * A rectangle, with the origin at the upper left (floating point). + * + * \sa SDL_FRectEmpty + * \sa SDL_FRectEquals + * \sa SDL_FRectEqualsEpsilon + * \sa SDL_HasIntersectionF + * \sa SDL_IntersectFRect + * \sa SDL_IntersectFRectAndLine + * \sa SDL_UnionFRect + * \sa SDL_EncloseFPoints + * \sa SDL_PointInFRect + */ +typedef struct SDL_FRect +{ + float x; + float y; + float w; + float h; +} SDL_FRect; + + +/** + * Returns true if point resides inside a rectangle. + */ +SDL_FORCE_INLINE SDL_bool SDL_PointInRect(const SDL_Point *p, const SDL_Rect *r) +{ + return ( (p->x >= r->x) && (p->x < (r->x + r->w)) && + (p->y >= r->y) && (p->y < (r->y + r->h)) ) ? SDL_TRUE : SDL_FALSE; +} + +/** + * Returns true if the rectangle has no area. + */ +SDL_FORCE_INLINE SDL_bool SDL_RectEmpty(const SDL_Rect *r) +{ + return ((!r) || (r->w <= 0) || (r->h <= 0)) ? SDL_TRUE : SDL_FALSE; +} + +/** + * Returns true if the two rectangles are equal. + */ +SDL_FORCE_INLINE SDL_bool SDL_RectEquals(const SDL_Rect *a, const SDL_Rect *b) +{ + return (a && b && (a->x == b->x) && (a->y == b->y) && + (a->w == b->w) && (a->h == b->h)) ? SDL_TRUE : SDL_FALSE; +} + +/** + * Determine whether two rectangles intersect. + * + * If either pointer is NULL the function will return SDL_FALSE. + * + * \param A an SDL_Rect structure representing the first rectangle. + * \param B an SDL_Rect structure representing the second rectangle. + * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_IntersectRect + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasIntersection(const SDL_Rect * A, + const SDL_Rect * B); + +/** + * Calculate the intersection of two rectangles. + * + * If `result` is NULL then this function will return SDL_FALSE. + * + * \param A an SDL_Rect structure representing the first rectangle. + * \param B an SDL_Rect structure representing the second rectangle. + * \param result an SDL_Rect structure filled in with the intersection of + * rectangles `A` and `B`. + * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HasIntersection + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IntersectRect(const SDL_Rect * A, + const SDL_Rect * B, + SDL_Rect * result); + +/** + * Calculate the union of two rectangles. + * + * \param A an SDL_Rect structure representing the first rectangle. + * \param B an SDL_Rect structure representing the second rectangle. + * \param result an SDL_Rect structure filled in with the union of rectangles + * `A` and `B`. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC void SDLCALL SDL_UnionRect(const SDL_Rect * A, + const SDL_Rect * B, + SDL_Rect * result); + +/** + * Calculate a minimal rectangle enclosing a set of points. + * + * If `clip` is not NULL then only points inside of the clipping rectangle are + * considered. + * + * \param points an array of SDL_Point structures representing points to be + * enclosed. + * \param count the number of structures in the `points` array. + * \param clip an SDL_Rect used for clipping or NULL to enclose all points. + * \param result an SDL_Rect structure filled in with the minimal enclosing + * rectangle. + * \returns SDL_TRUE if any points were enclosed or SDL_FALSE if all the + * points were outside of the clipping rectangle. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_EnclosePoints(const SDL_Point * points, + int count, + const SDL_Rect * clip, + SDL_Rect * result); + +/** + * Calculate the intersection of a rectangle and line segment. + * + * This function is used to clip a line segment to a rectangle. A line segment + * contained entirely within the rectangle or that does not intersect will + * remain unchanged. A line segment that crosses the rectangle at either or + * both ends will be clipped to the boundary of the rectangle and the new + * coordinates saved in `X1`, `Y1`, `X2`, and/or `Y2` as necessary. + * + * \param rect an SDL_Rect structure representing the rectangle to intersect. + * \param X1 a pointer to the starting X-coordinate of the line. + * \param Y1 a pointer to the starting Y-coordinate of the line. + * \param X2 a pointer to the ending X-coordinate of the line. + * \param Y2 a pointer to the ending Y-coordinate of the line. + * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IntersectRectAndLine(const SDL_Rect * + rect, int *X1, + int *Y1, int *X2, + int *Y2); + + +/* SDL_FRect versions... */ + +/** + * Returns true if point resides inside a rectangle. + */ +SDL_FORCE_INLINE SDL_bool SDL_PointInFRect(const SDL_FPoint *p, const SDL_FRect *r) +{ + return ( (p->x >= r->x) && (p->x < (r->x + r->w)) && + (p->y >= r->y) && (p->y < (r->y + r->h)) ) ? SDL_TRUE : SDL_FALSE; +} + +/** + * Returns true if the rectangle has no area. + */ +SDL_FORCE_INLINE SDL_bool SDL_FRectEmpty(const SDL_FRect *r) +{ + return ((!r) || (r->w <= 0.0f) || (r->h <= 0.0f)) ? SDL_TRUE : SDL_FALSE; +} + +/** + * Returns true if the two rectangles are equal, within some given epsilon. + * + * \since This function is available since SDL 2.0.22. + */ +SDL_FORCE_INLINE SDL_bool SDL_FRectEqualsEpsilon(const SDL_FRect *a, const SDL_FRect *b, const float epsilon) +{ + return (a && b && ((a == b) || + ((SDL_fabsf(a->x - b->x) <= epsilon) && + (SDL_fabsf(a->y - b->y) <= epsilon) && + (SDL_fabsf(a->w - b->w) <= epsilon) && + (SDL_fabsf(a->h - b->h) <= epsilon)))) + ? SDL_TRUE : SDL_FALSE; +} + +/** + * Returns true if the two rectangles are equal, using a default epsilon. + * + * \since This function is available since SDL 2.0.22. + */ +SDL_FORCE_INLINE SDL_bool SDL_FRectEquals(const SDL_FRect *a, const SDL_FRect *b) +{ + return SDL_FRectEqualsEpsilon(a, b, SDL_FLT_EPSILON); +} + +/** + * Determine whether two rectangles intersect with float precision. + * + * If either pointer is NULL the function will return SDL_FALSE. + * + * \param A an SDL_FRect structure representing the first rectangle. + * \param B an SDL_FRect structure representing the second rectangle. + * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.22. + * + * \sa SDL_IntersectRect + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasIntersectionF(const SDL_FRect * A, + const SDL_FRect * B); + +/** + * Calculate the intersection of two rectangles with float precision. + * + * If `result` is NULL then this function will return SDL_FALSE. + * + * \param A an SDL_FRect structure representing the first rectangle. + * \param B an SDL_FRect structure representing the second rectangle. + * \param result an SDL_FRect structure filled in with the intersection of + * rectangles `A` and `B`. + * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.22. + * + * \sa SDL_HasIntersectionF + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IntersectFRect(const SDL_FRect * A, + const SDL_FRect * B, + SDL_FRect * result); + +/** + * Calculate the union of two rectangles with float precision. + * + * \param A an SDL_FRect structure representing the first rectangle. + * \param B an SDL_FRect structure representing the second rectangle. + * \param result an SDL_FRect structure filled in with the union of rectangles + * `A` and `B`. + * + * \since This function is available since SDL 2.0.22. + */ +extern DECLSPEC void SDLCALL SDL_UnionFRect(const SDL_FRect * A, + const SDL_FRect * B, + SDL_FRect * result); + +/** + * Calculate a minimal rectangle enclosing a set of points with float + * precision. + * + * If `clip` is not NULL then only points inside of the clipping rectangle are + * considered. + * + * \param points an array of SDL_FPoint structures representing points to be + * enclosed. + * \param count the number of structures in the `points` array. + * \param clip an SDL_FRect used for clipping or NULL to enclose all points. + * \param result an SDL_FRect structure filled in with the minimal enclosing + * rectangle. + * \returns SDL_TRUE if any points were enclosed or SDL_FALSE if all the + * points were outside of the clipping rectangle. + * + * \since This function is available since SDL 2.0.22. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_EncloseFPoints(const SDL_FPoint * points, + int count, + const SDL_FRect * clip, + SDL_FRect * result); + +/** + * Calculate the intersection of a rectangle and line segment with float + * precision. + * + * This function is used to clip a line segment to a rectangle. A line segment + * contained entirely within the rectangle or that does not intersect will + * remain unchanged. A line segment that crosses the rectangle at either or + * both ends will be clipped to the boundary of the rectangle and the new + * coordinates saved in `X1`, `Y1`, `X2`, and/or `Y2` as necessary. + * + * \param rect an SDL_FRect structure representing the rectangle to intersect. + * \param X1 a pointer to the starting X-coordinate of the line. + * \param Y1 a pointer to the starting Y-coordinate of the line. + * \param X2 a pointer to the ending X-coordinate of the line. + * \param Y2 a pointer to the ending Y-coordinate of the line. + * \returns SDL_TRUE if there is an intersection, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.22. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IntersectFRectAndLine(const SDL_FRect * + rect, float *X1, + float *Y1, float *X2, + float *Y2); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_rect_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_render.h b/lib/windows/include/SDL2/SDL_render.h new file mode 100644 index 0000000..5274172 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_render.h @@ -0,0 +1,1932 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryRender + * + * Header file for SDL 2D rendering functions. + * + * This API supports the following features: + * + * - single pixel points + * - single pixel lines + * - filled rectangles + * - texture images + * + * The primitives may be drawn in opaque, blended, or additive modes. + * + * The texture images may be drawn in opaque, blended, or additive modes. They + * can have an additional color tint or alpha modulation applied to them, and + * may also be stretched with linear interpolation. + * + * This API is designed to accelerate simple 2D operations. You may want more + * functionality such as polygons and particle effects and in that case you + * should use SDL's OpenGL/Direct3D support or one of the many good 3D + * engines. + * + * These functions must be called from the main thread. See this bug for + * details: https://github.com/libsdl-org/SDL/issues/986 + */ + +#ifndef SDL_render_h_ +#define SDL_render_h_ + +#include "SDL_stdinc.h" +#include "SDL_rect.h" +#include "SDL_video.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Flags used when creating a rendering context + */ +typedef enum SDL_RendererFlags +{ + SDL_RENDERER_SOFTWARE = 0x00000001, /**< The renderer is a software fallback */ + SDL_RENDERER_ACCELERATED = 0x00000002, /**< The renderer uses hardware + acceleration */ + SDL_RENDERER_PRESENTVSYNC = 0x00000004, /**< Present is synchronized + with the refresh rate */ + SDL_RENDERER_TARGETTEXTURE = 0x00000008 /**< The renderer supports + rendering to texture */ +} SDL_RendererFlags; + +/** + * Information on the capabilities of a render driver or context. + */ +typedef struct SDL_RendererInfo +{ + const char *name; /**< The name of the renderer */ + Uint32 flags; /**< Supported SDL_RendererFlags */ + Uint32 num_texture_formats; /**< The number of available texture formats */ + Uint32 texture_formats[16]; /**< The available texture formats */ + int max_texture_width; /**< The maximum texture width */ + int max_texture_height; /**< The maximum texture height */ +} SDL_RendererInfo; + +/** + * Vertex structure + */ +typedef struct SDL_Vertex +{ + SDL_FPoint position; /**< Vertex position, in SDL_Renderer coordinates */ + SDL_Color color; /**< Vertex color */ + SDL_FPoint tex_coord; /**< Normalized texture coordinates, if needed */ +} SDL_Vertex; + +/** + * The scaling mode for a texture. + */ +typedef enum SDL_ScaleMode +{ + SDL_ScaleModeNearest, /**< nearest pixel sampling */ + SDL_ScaleModeLinear, /**< linear filtering */ + SDL_ScaleModeBest /**< anisotropic filtering */ +} SDL_ScaleMode; + +/** + * The access pattern allowed for a texture. + */ +typedef enum SDL_TextureAccess +{ + SDL_TEXTUREACCESS_STATIC, /**< Changes rarely, not lockable */ + SDL_TEXTUREACCESS_STREAMING, /**< Changes frequently, lockable */ + SDL_TEXTUREACCESS_TARGET /**< Texture can be used as a render target */ +} SDL_TextureAccess; + +/** + * The texture channel modulation used in SDL_RenderCopy(). + */ +typedef enum SDL_TextureModulate +{ + SDL_TEXTUREMODULATE_NONE = 0x00000000, /**< No modulation */ + SDL_TEXTUREMODULATE_COLOR = 0x00000001, /**< srcC = srcC * color */ + SDL_TEXTUREMODULATE_ALPHA = 0x00000002 /**< srcA = srcA * alpha */ +} SDL_TextureModulate; + +/** + * Flip constants for SDL_RenderCopyEx + */ +typedef enum SDL_RendererFlip +{ + SDL_FLIP_NONE = 0x00000000, /**< Do not flip */ + SDL_FLIP_HORIZONTAL = 0x00000001, /**< flip horizontally */ + SDL_FLIP_VERTICAL = 0x00000002 /**< flip vertically */ +} SDL_RendererFlip; + +/** + * A structure representing rendering state + */ +struct SDL_Renderer; +typedef struct SDL_Renderer SDL_Renderer; + +/** + * An efficient driver-specific representation of pixel data + */ +struct SDL_Texture; +typedef struct SDL_Texture SDL_Texture; + +/* Function prototypes */ + +/** + * Get the number of 2D rendering drivers available for the current display. + * + * A render driver is a set of code that handles rendering and texture + * management on a particular display. Normally there is only one, but some + * drivers may have several available with different capabilities. + * + * There may be none if SDL was compiled without render support. + * + * \returns a number >= 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateRenderer + * \sa SDL_GetRenderDriverInfo + */ +extern DECLSPEC int SDLCALL SDL_GetNumRenderDrivers(void); + +/** + * Get info about a specific 2D rendering driver for the current display. + * + * \param index the index of the driver to query information about. + * \param info an SDL_RendererInfo structure to be filled with information on + * the rendering driver. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateRenderer + * \sa SDL_GetNumRenderDrivers + */ +extern DECLSPEC int SDLCALL SDL_GetRenderDriverInfo(int index, + SDL_RendererInfo * info); + +/** + * Create a window and default renderer. + * + * \param width the width of the window. + * \param height the height of the window. + * \param window_flags the flags used to create the window (see + * SDL_CreateWindow()). + * \param window a pointer filled with the window, or NULL on error. + * \param renderer a pointer filled with the renderer, or NULL on error. + * \returns 0 on success, or -1 on error; call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateRenderer + * \sa SDL_CreateWindow + */ +extern DECLSPEC int SDLCALL SDL_CreateWindowAndRenderer( + int width, int height, Uint32 window_flags, + SDL_Window **window, SDL_Renderer **renderer); + + +/** + * Create a 2D rendering context for a window. + * + * \param window the window where rendering is displayed. + * \param index the index of the rendering driver to initialize, or -1 to + * initialize the first one supporting the requested flags. + * \param flags 0, or one or more SDL_RendererFlags OR'd together. + * \returns a valid rendering context or NULL if there was an error; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateSoftwareRenderer + * \sa SDL_DestroyRenderer + * \sa SDL_GetNumRenderDrivers + * \sa SDL_GetRendererInfo + */ +extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRenderer(SDL_Window * window, + int index, Uint32 flags); + +/** + * Create a 2D software rendering context for a surface. + * + * Two other API which can be used to create SDL_Renderer: + * SDL_CreateRenderer() and SDL_CreateWindowAndRenderer(). These can _also_ + * create a software renderer, but they are intended to be used with an + * SDL_Window as the final destination and not an SDL_Surface. + * + * \param surface the SDL_Surface structure representing the surface where + * rendering is done. + * \returns a valid rendering context or NULL if there was an error; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateRenderer + * \sa SDL_CreateWindowAndRenderer + * \sa SDL_DestroyRenderer + */ +extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateSoftwareRenderer(SDL_Surface * surface); + +/** + * Get the renderer associated with a window. + * + * \param window the window to query. + * \returns the rendering context on success or NULL on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateRenderer + */ +extern DECLSPEC SDL_Renderer * SDLCALL SDL_GetRenderer(SDL_Window * window); + +/** + * Get the window associated with a renderer. + * + * \param renderer the renderer to query. + * \returns the window on success or NULL on failure; call SDL_GetError() for + * more information. + * + * \since This function is available since SDL 2.0.22. + */ +extern DECLSPEC SDL_Window * SDLCALL SDL_RenderGetWindow(SDL_Renderer *renderer); + +/** + * Get information about a rendering context. + * + * \param renderer the rendering context. + * \param info an SDL_RendererInfo structure filled with information about the + * current renderer. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateRenderer + */ +extern DECLSPEC int SDLCALL SDL_GetRendererInfo(SDL_Renderer * renderer, + SDL_RendererInfo * info); + +/** + * Get the output size in pixels of a rendering context. + * + * Due to high-dpi displays, you might end up with a rendering context that + * has more pixels than the window that contains it, so use this instead of + * SDL_GetWindowSize() to decide how much drawing area you have. + * + * \param renderer the rendering context. + * \param w an int filled with the width. + * \param h an int filled with the height. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetRenderer + */ +extern DECLSPEC int SDLCALL SDL_GetRendererOutputSize(SDL_Renderer * renderer, + int *w, int *h); + +/** + * Create a texture for a rendering context. + * + * You can set the texture scaling method by setting + * `SDL_HINT_RENDER_SCALE_QUALITY` before creating the texture. + * + * \param renderer the rendering context. + * \param format one of the enumerated values in SDL_PixelFormatEnum. + * \param access one of the enumerated values in SDL_TextureAccess. + * \param w the width of the texture in pixels. + * \param h the height of the texture in pixels. + * \returns a pointer to the created texture or NULL if no rendering context + * was active, the format was unsupported, or the width or height + * were out of range; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateTextureFromSurface + * \sa SDL_DestroyTexture + * \sa SDL_QueryTexture + * \sa SDL_UpdateTexture + */ +extern DECLSPEC SDL_Texture * SDLCALL SDL_CreateTexture(SDL_Renderer * renderer, + Uint32 format, + int access, int w, + int h); + +/** + * Create a texture from an existing surface. + * + * The surface is not modified or freed by this function. + * + * The SDL_TextureAccess hint for the created texture is + * `SDL_TEXTUREACCESS_STATIC`. + * + * The pixel format of the created texture may be different from the pixel + * format of the surface. Use SDL_QueryTexture() to query the pixel format of + * the texture. + * + * \param renderer the rendering context. + * \param surface the SDL_Surface structure containing pixel data used to fill + * the texture. + * \returns the created texture or NULL on failure; call SDL_GetError() for + * more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateTexture + * \sa SDL_DestroyTexture + * \sa SDL_QueryTexture + */ +extern DECLSPEC SDL_Texture * SDLCALL SDL_CreateTextureFromSurface(SDL_Renderer * renderer, SDL_Surface * surface); + +/** + * Query the attributes of a texture. + * + * \param texture the texture to query. + * \param format a pointer filled in with the raw format of the texture; the + * actual format may differ, but pixel transfers will use this + * format (one of the SDL_PixelFormatEnum values). This argument + * can be NULL if you don't need this information. + * \param access a pointer filled in with the actual access to the texture + * (one of the SDL_TextureAccess values). This argument can be + * NULL if you don't need this information. + * \param w a pointer filled in with the width of the texture in pixels. This + * argument can be NULL if you don't need this information. + * \param h a pointer filled in with the height of the texture in pixels. This + * argument can be NULL if you don't need this information. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateTexture + */ +extern DECLSPEC int SDLCALL SDL_QueryTexture(SDL_Texture * texture, + Uint32 * format, int *access, + int *w, int *h); + +/** + * Set an additional color value multiplied into render copy operations. + * + * When this texture is rendered, during the copy operation each source color + * channel is modulated by the appropriate color value according to the + * following formula: + * + * `srcC = srcC * (color / 255)` + * + * Color modulation is not always supported by the renderer; it will return -1 + * if color modulation is not supported. + * + * \param texture the texture to update. + * \param r the red color value multiplied into copy operations. + * \param g the green color value multiplied into copy operations. + * \param b the blue color value multiplied into copy operations. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetTextureColorMod + * \sa SDL_SetTextureAlphaMod + */ +extern DECLSPEC int SDLCALL SDL_SetTextureColorMod(SDL_Texture * texture, + Uint8 r, Uint8 g, Uint8 b); + + +/** + * Get the additional color value multiplied into render copy operations. + * + * \param texture the texture to query. + * \param r a pointer filled in with the current red color value. + * \param g a pointer filled in with the current green color value. + * \param b a pointer filled in with the current blue color value. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetTextureAlphaMod + * \sa SDL_SetTextureColorMod + */ +extern DECLSPEC int SDLCALL SDL_GetTextureColorMod(SDL_Texture * texture, + Uint8 * r, Uint8 * g, + Uint8 * b); + +/** + * Set an additional alpha value multiplied into render copy operations. + * + * When this texture is rendered, during the copy operation the source alpha + * value is modulated by this alpha value according to the following formula: + * + * `srcA = srcA * (alpha / 255)` + * + * Alpha modulation is not always supported by the renderer; it will return -1 + * if alpha modulation is not supported. + * + * \param texture the texture to update. + * \param alpha the source alpha value multiplied into copy operations. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetTextureAlphaMod + * \sa SDL_SetTextureColorMod + */ +extern DECLSPEC int SDLCALL SDL_SetTextureAlphaMod(SDL_Texture * texture, + Uint8 alpha); + +/** + * Get the additional alpha value multiplied into render copy operations. + * + * \param texture the texture to query. + * \param alpha a pointer filled in with the current alpha value. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetTextureColorMod + * \sa SDL_SetTextureAlphaMod + */ +extern DECLSPEC int SDLCALL SDL_GetTextureAlphaMod(SDL_Texture * texture, + Uint8 * alpha); + +/** + * Set the blend mode for a texture, used by SDL_RenderCopy(). + * + * If the blend mode is not supported, the closest supported mode is chosen + * and this function returns -1. + * + * \param texture the texture to update. + * \param blendMode the SDL_BlendMode to use for texture blending. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetTextureBlendMode + * \sa SDL_RenderCopy + */ +extern DECLSPEC int SDLCALL SDL_SetTextureBlendMode(SDL_Texture * texture, + SDL_BlendMode blendMode); + +/** + * Get the blend mode used for texture copy operations. + * + * \param texture the texture to query. + * \param blendMode a pointer filled in with the current SDL_BlendMode. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetTextureBlendMode + */ +extern DECLSPEC int SDLCALL SDL_GetTextureBlendMode(SDL_Texture * texture, + SDL_BlendMode *blendMode); + +/** + * Set the scale mode used for texture scale operations. + * + * If the scale mode is not supported, the closest supported mode is chosen. + * + * \param texture The texture to update. + * \param scaleMode the SDL_ScaleMode to use for texture scaling. + * \returns 0 on success, or -1 if the texture is not valid. + * + * \since This function is available since SDL 2.0.12. + * + * \sa SDL_GetTextureScaleMode + */ +extern DECLSPEC int SDLCALL SDL_SetTextureScaleMode(SDL_Texture * texture, + SDL_ScaleMode scaleMode); + +/** + * Get the scale mode used for texture scale operations. + * + * \param texture the texture to query. + * \param scaleMode a pointer filled in with the current scale mode. + * \return 0 on success, or -1 if the texture is not valid. + * + * \since This function is available since SDL 2.0.12. + * + * \sa SDL_SetTextureScaleMode + */ +extern DECLSPEC int SDLCALL SDL_GetTextureScaleMode(SDL_Texture * texture, + SDL_ScaleMode *scaleMode); + +/** + * Associate a user-specified pointer with a texture. + * + * \param texture the texture to update. + * \param userdata the pointer to associate with the texture. + * \returns 0 on success, or -1 if the texture is not valid. + * + * \since This function is available since SDL 2.0.18. + * + * \sa SDL_GetTextureUserData + */ +extern DECLSPEC int SDLCALL SDL_SetTextureUserData(SDL_Texture * texture, + void *userdata); + +/** + * Get the user-specified pointer associated with a texture + * + * \param texture the texture to query. + * \return the pointer associated with the texture, or NULL if the texture is + * not valid. + * + * \since This function is available since SDL 2.0.18. + * + * \sa SDL_SetTextureUserData + */ +extern DECLSPEC void * SDLCALL SDL_GetTextureUserData(SDL_Texture * texture); + +/** + * Update the given texture rectangle with new pixel data. + * + * The pixel data must be in the pixel format of the texture. Use + * SDL_QueryTexture() to query the pixel format of the texture. + * + * This is a fairly slow function, intended for use with static textures that + * do not change often. + * + * If the texture is intended to be updated often, it is preferred to create + * the texture as streaming and use the locking functions referenced below. + * While this function will work with streaming textures, for optimization + * reasons you may not get the pixels back if you lock the texture afterward. + * + * \param texture the texture to update. + * \param rect an SDL_Rect structure representing the area to update, or NULL + * to update the entire texture. + * \param pixels the raw pixel data in the format of the texture. + * \param pitch the number of bytes in a row of pixel data, including padding + * between lines. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateTexture + * \sa SDL_LockTexture + * \sa SDL_UnlockTexture + */ +extern DECLSPEC int SDLCALL SDL_UpdateTexture(SDL_Texture * texture, + const SDL_Rect * rect, + const void *pixels, int pitch); + +/** + * Update a rectangle within a planar YV12 or IYUV texture with new pixel + * data. + * + * You can use SDL_UpdateTexture() as long as your pixel data is a contiguous + * block of Y and U/V planes in the proper order, but this function is + * available if your pixel data is not contiguous. + * + * \param texture the texture to update. + * \param rect a pointer to the rectangle of pixels to update, or NULL to + * update the entire texture. + * \param Yplane the raw pixel data for the Y plane. + * \param Ypitch the number of bytes between rows of pixel data for the Y + * plane. + * \param Uplane the raw pixel data for the U plane. + * \param Upitch the number of bytes between rows of pixel data for the U + * plane. + * \param Vplane the raw pixel data for the V plane. + * \param Vpitch the number of bytes between rows of pixel data for the V + * plane. + * \returns 0 on success or -1 if the texture is not valid; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.1. + * + * \sa SDL_UpdateTexture + */ +extern DECLSPEC int SDLCALL SDL_UpdateYUVTexture(SDL_Texture * texture, + const SDL_Rect * rect, + const Uint8 *Yplane, int Ypitch, + const Uint8 *Uplane, int Upitch, + const Uint8 *Vplane, int Vpitch); + +/** + * Update a rectangle within a planar NV12 or NV21 texture with new pixels. + * + * You can use SDL_UpdateTexture() as long as your pixel data is a contiguous + * block of NV12/21 planes in the proper order, but this function is available + * if your pixel data is not contiguous. + * + * \param texture the texture to update. + * \param rect a pointer to the rectangle of pixels to update, or NULL to + * update the entire texture. + * \param Yplane the raw pixel data for the Y plane. + * \param Ypitch the number of bytes between rows of pixel data for the Y + * plane. + * \param UVplane the raw pixel data for the UV plane. + * \param UVpitch the number of bytes between rows of pixel data for the UV + * plane. + * \return 0 on success, or -1 if the texture is not valid. + * + * \since This function is available since SDL 2.0.16. + */ +extern DECLSPEC int SDLCALL SDL_UpdateNVTexture(SDL_Texture * texture, + const SDL_Rect * rect, + const Uint8 *Yplane, int Ypitch, + const Uint8 *UVplane, int UVpitch); + +/** + * Lock a portion of the texture for **write-only** pixel access. + * + * As an optimization, the pixels made available for editing don't necessarily + * contain the old texture data. This is a write-only operation, and if you + * need to keep a copy of the texture data you should do that at the + * application level. + * + * You must use SDL_UnlockTexture() to unlock the pixels and apply any + * changes. + * + * \param texture the texture to lock for access, which was created with + * `SDL_TEXTUREACCESS_STREAMING`. + * \param rect an SDL_Rect structure representing the area to lock for access; + * NULL to lock the entire texture. + * \param pixels this is filled in with a pointer to the locked pixels, + * appropriately offset by the locked area. + * \param pitch this is filled in with the pitch of the locked pixels; the + * pitch is the length of one row in bytes. + * \returns 0 on success or a negative error code if the texture is not valid + * or was not created with `SDL_TEXTUREACCESS_STREAMING`; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_UnlockTexture + */ +extern DECLSPEC int SDLCALL SDL_LockTexture(SDL_Texture * texture, + const SDL_Rect * rect, + void **pixels, int *pitch); + +/** + * Lock a portion of the texture for **write-only** pixel access, and expose + * it as a SDL surface. + * + * Besides providing an SDL_Surface instead of raw pixel data, this function + * operates like SDL_LockTexture. + * + * As an optimization, the pixels made available for editing don't necessarily + * contain the old texture data. This is a write-only operation, and if you + * need to keep a copy of the texture data you should do that at the + * application level. + * + * You must use SDL_UnlockTexture() to unlock the pixels and apply any + * changes. + * + * The returned surface is freed internally after calling SDL_UnlockTexture() + * or SDL_DestroyTexture(). The caller should not free it. + * + * \param texture the texture to lock for access, which was created with + * `SDL_TEXTUREACCESS_STREAMING`. + * \param rect a pointer to the rectangle to lock for access. If the rect is + * NULL, the entire texture will be locked. + * \param surface this is filled in with an SDL surface representing the + * locked area. + * \returns 0 on success, or -1 if the texture is not valid or was not created + * with `SDL_TEXTUREACCESS_STREAMING`. + * + * \since This function is available since SDL 2.0.12. + * + * \sa SDL_LockTexture + * \sa SDL_UnlockTexture + */ +extern DECLSPEC int SDLCALL SDL_LockTextureToSurface(SDL_Texture *texture, + const SDL_Rect *rect, + SDL_Surface **surface); + +/** + * Unlock a texture, uploading the changes to video memory, if needed. + * + * **Warning**: Please note that SDL_LockTexture() is intended to be + * write-only; it will not guarantee the previous contents of the texture will + * be provided. You must fully initialize any area of a texture that you lock + * before unlocking it, as the pixels might otherwise be uninitialized memory. + * + * Which is to say: locking and immediately unlocking a texture can result in + * corrupted textures, depending on the renderer in use. + * + * \param texture a texture locked by SDL_LockTexture(). + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LockTexture + */ +extern DECLSPEC void SDLCALL SDL_UnlockTexture(SDL_Texture * texture); + +/** + * Determine whether a renderer supports the use of render targets. + * + * \param renderer the renderer that will be checked. + * \returns SDL_TRUE if supported or SDL_FALSE if not. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetRenderTarget + */ +extern DECLSPEC SDL_bool SDLCALL SDL_RenderTargetSupported(SDL_Renderer *renderer); + +/** + * Set a texture as the current rendering target. + * + * Before using this function, you should check the + * `SDL_RENDERER_TARGETTEXTURE` bit in the flags of SDL_RendererInfo to see if + * render targets are supported. + * + * The default render target is the window for which the renderer was created. + * To stop rendering to a texture and render to the window again, call this + * function with a NULL `texture`. This will reset the renderer's viewport, + * clipping rectangle, and scaling settings to the state they were in before + * setting a non-NULL `texture` target, losing any changes made in the + * meantime. + * + * \param renderer the rendering context. + * \param texture the targeted texture, which must be created with the + * `SDL_TEXTUREACCESS_TARGET` flag, or NULL to render to the + * window instead of a texture. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetRenderTarget + */ +extern DECLSPEC int SDLCALL SDL_SetRenderTarget(SDL_Renderer *renderer, + SDL_Texture *texture); + +/** + * Get the current render target. + * + * The default render target is the window for which the renderer was created, + * and is reported as NULL here. + * + * \param renderer the rendering context. + * \returns the current render target or NULL for the default render target. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetRenderTarget + */ +extern DECLSPEC SDL_Texture * SDLCALL SDL_GetRenderTarget(SDL_Renderer *renderer); + +/** + * Set a device independent resolution for rendering. + * + * This function uses the viewport and scaling functionality to allow a fixed + * logical resolution for rendering, regardless of the actual output + * resolution. If the actual output resolution doesn't have the same aspect + * ratio the output rendering will be centered within the output display. + * + * If the output display is a window, mouse and touch events in the window + * will be filtered and scaled so they seem to arrive within the logical + * resolution. The SDL_HINT_MOUSE_RELATIVE_SCALING hint controls whether + * relative motion events are also scaled. + * + * If this function results in scaling or subpixel drawing by the rendering + * backend, it will be handled using the appropriate quality hints. + * + * \param renderer the renderer for which resolution should be set. + * \param w the width of the logical resolution. + * \param h the height of the logical resolution. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RenderGetLogicalSize + */ +extern DECLSPEC int SDLCALL SDL_RenderSetLogicalSize(SDL_Renderer * renderer, int w, int h); + +/** + * Get device independent resolution for rendering. + * + * When using the main rendering target (eg no target texture is set): this + * may return 0 for `w` and `h` if the SDL_Renderer has never had its logical + * size set by SDL_RenderSetLogicalSize(). Otherwise it returns the logical + * width and height. + * + * When using a target texture: Never return 0 for `w` and `h` at first. Then + * it returns the logical width and height that are set. + * + * \param renderer a rendering context. + * \param w an int to be filled with the width. + * \param h an int to be filled with the height. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RenderSetLogicalSize + */ +extern DECLSPEC void SDLCALL SDL_RenderGetLogicalSize(SDL_Renderer * renderer, int *w, int *h); + +/** + * Set whether to force integer scales for resolution-independent rendering. + * + * This function restricts the logical viewport to integer values - that is, + * when a resolution is between two multiples of a logical size, the viewport + * size is rounded down to the lower multiple. + * + * \param renderer the renderer for which integer scaling should be set. + * \param enable enable or disable the integer scaling for rendering. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.5. + * + * \sa SDL_RenderGetIntegerScale + * \sa SDL_RenderSetLogicalSize + */ +extern DECLSPEC int SDLCALL SDL_RenderSetIntegerScale(SDL_Renderer * renderer, + SDL_bool enable); + +/** + * Get whether integer scales are forced for resolution-independent rendering. + * + * \param renderer the renderer from which integer scaling should be queried. + * \returns SDL_TRUE if integer scales are forced or SDL_FALSE if not and on + * failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.5. + * + * \sa SDL_RenderSetIntegerScale + */ +extern DECLSPEC SDL_bool SDLCALL SDL_RenderGetIntegerScale(SDL_Renderer * renderer); + +/** + * Set the drawing area for rendering on the current target. + * + * When the window is resized, the viewport is reset to fill the entire new + * window size. + * + * \param renderer the rendering context. + * \param rect the SDL_Rect structure representing the drawing area, or NULL + * to set the viewport to the entire target. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RenderGetViewport + */ +extern DECLSPEC int SDLCALL SDL_RenderSetViewport(SDL_Renderer * renderer, + const SDL_Rect * rect); + +/** + * Get the drawing area for the current target. + * + * \param renderer the rendering context. + * \param rect an SDL_Rect structure filled in with the current drawing area. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RenderSetViewport + */ +extern DECLSPEC void SDLCALL SDL_RenderGetViewport(SDL_Renderer * renderer, + SDL_Rect * rect); + +/** + * Set the clip rectangle for rendering on the specified target. + * + * \param renderer the rendering context for which clip rectangle should be + * set. + * \param rect an SDL_Rect structure representing the clip area, relative to + * the viewport, or NULL to disable clipping. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RenderGetClipRect + * \sa SDL_RenderIsClipEnabled + */ +extern DECLSPEC int SDLCALL SDL_RenderSetClipRect(SDL_Renderer * renderer, + const SDL_Rect * rect); + +/** + * Get the clip rectangle for the current target. + * + * \param renderer the rendering context from which clip rectangle should be + * queried. + * \param rect an SDL_Rect structure filled in with the current clipping area + * or an empty rectangle if clipping is disabled. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RenderIsClipEnabled + * \sa SDL_RenderSetClipRect + */ +extern DECLSPEC void SDLCALL SDL_RenderGetClipRect(SDL_Renderer * renderer, + SDL_Rect * rect); + +/** + * Get whether clipping is enabled on the given renderer. + * + * \param renderer the renderer from which clip state should be queried. + * \returns SDL_TRUE if clipping is enabled or SDL_FALSE if not; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.4. + * + * \sa SDL_RenderGetClipRect + * \sa SDL_RenderSetClipRect + */ +extern DECLSPEC SDL_bool SDLCALL SDL_RenderIsClipEnabled(SDL_Renderer * renderer); + + +/** + * Set the drawing scale for rendering on the current target. + * + * The drawing coordinates are scaled by the x/y scaling factors before they + * are used by the renderer. This allows resolution independent drawing with a + * single coordinate system. + * + * If this results in scaling or subpixel drawing by the rendering backend, it + * will be handled using the appropriate quality hints. For best results use + * integer scaling factors. + * + * \param renderer a rendering context. + * \param scaleX the horizontal scaling factor. + * \param scaleY the vertical scaling factor. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RenderGetScale + * \sa SDL_RenderSetLogicalSize + */ +extern DECLSPEC int SDLCALL SDL_RenderSetScale(SDL_Renderer * renderer, + float scaleX, float scaleY); + +/** + * Get the drawing scale for the current target. + * + * \param renderer the renderer from which drawing scale should be queried. + * \param scaleX a pointer filled in with the horizontal scaling factor. + * \param scaleY a pointer filled in with the vertical scaling factor. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RenderSetScale + */ +extern DECLSPEC void SDLCALL SDL_RenderGetScale(SDL_Renderer * renderer, + float *scaleX, float *scaleY); + +/** + * Get logical coordinates of point in renderer when given real coordinates of + * point in window. + * + * Logical coordinates will differ from real coordinates when render is scaled + * and logical renderer size set + * + * \param renderer the renderer from which the logical coordinates should be + * calculated. + * \param windowX the real X coordinate in the window. + * \param windowY the real Y coordinate in the window. + * \param logicalX the pointer filled with the logical x coordinate. + * \param logicalY the pointer filled with the logical y coordinate. + * + * \since This function is available since SDL 2.0.18. + * + * \sa SDL_RenderGetScale + * \sa SDL_RenderSetScale + * \sa SDL_RenderGetLogicalSize + * \sa SDL_RenderSetLogicalSize + */ +extern DECLSPEC void SDLCALL SDL_RenderWindowToLogical(SDL_Renderer * renderer, + int windowX, int windowY, + float *logicalX, float *logicalY); + + +/** + * Get real coordinates of point in window when given logical coordinates of + * point in renderer. + * + * Logical coordinates will differ from real coordinates when render is scaled + * and logical renderer size set + * + * \param renderer the renderer from which the window coordinates should be + * calculated. + * \param logicalX the logical x coordinate. + * \param logicalY the logical y coordinate. + * \param windowX the pointer filled with the real X coordinate in the window. + * \param windowY the pointer filled with the real Y coordinate in the window. + * + * \since This function is available since SDL 2.0.18. + * + * \sa SDL_RenderGetScale + * \sa SDL_RenderSetScale + * \sa SDL_RenderGetLogicalSize + * \sa SDL_RenderSetLogicalSize + */ +extern DECLSPEC void SDLCALL SDL_RenderLogicalToWindow(SDL_Renderer * renderer, + float logicalX, float logicalY, + int *windowX, int *windowY); + +/** + * Set the color used for drawing operations (Rect, Line and Clear). + * + * Set the color for drawing or filling rectangles, lines, and points, and for + * SDL_RenderClear(). + * + * \param renderer the rendering context. + * \param r the red value used to draw on the rendering target. + * \param g the green value used to draw on the rendering target. + * \param b the blue value used to draw on the rendering target. + * \param a the alpha value used to draw on the rendering target; usually + * `SDL_ALPHA_OPAQUE` (255). Use SDL_SetRenderDrawBlendMode to + * specify how the alpha channel is used. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetRenderDrawColor + * \sa SDL_RenderClear + * \sa SDL_RenderDrawLine + * \sa SDL_RenderDrawLines + * \sa SDL_RenderDrawPoint + * \sa SDL_RenderDrawPoints + * \sa SDL_RenderDrawRect + * \sa SDL_RenderDrawRects + * \sa SDL_RenderFillRect + * \sa SDL_RenderFillRects + */ +extern DECLSPEC int SDLCALL SDL_SetRenderDrawColor(SDL_Renderer * renderer, + Uint8 r, Uint8 g, Uint8 b, + Uint8 a); + +/** + * Get the color used for drawing operations (Rect, Line and Clear). + * + * \param renderer the rendering context. + * \param r a pointer filled in with the red value used to draw on the + * rendering target. + * \param g a pointer filled in with the green value used to draw on the + * rendering target. + * \param b a pointer filled in with the blue value used to draw on the + * rendering target. + * \param a a pointer filled in with the alpha value used to draw on the + * rendering target; usually `SDL_ALPHA_OPAQUE` (255). + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetRenderDrawColor + */ +extern DECLSPEC int SDLCALL SDL_GetRenderDrawColor(SDL_Renderer * renderer, + Uint8 * r, Uint8 * g, Uint8 * b, + Uint8 * a); + +/** + * Set the blend mode used for drawing operations (Fill and Line). + * + * If the blend mode is not supported, the closest supported mode is chosen. + * + * \param renderer the rendering context. + * \param blendMode the SDL_BlendMode to use for blending. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetRenderDrawBlendMode + * \sa SDL_RenderDrawLine + * \sa SDL_RenderDrawLines + * \sa SDL_RenderDrawPoint + * \sa SDL_RenderDrawPoints + * \sa SDL_RenderDrawRect + * \sa SDL_RenderDrawRects + * \sa SDL_RenderFillRect + * \sa SDL_RenderFillRects + */ +extern DECLSPEC int SDLCALL SDL_SetRenderDrawBlendMode(SDL_Renderer * renderer, + SDL_BlendMode blendMode); + +/** + * Get the blend mode used for drawing operations. + * + * \param renderer the rendering context. + * \param blendMode a pointer filled in with the current SDL_BlendMode. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetRenderDrawBlendMode + */ +extern DECLSPEC int SDLCALL SDL_GetRenderDrawBlendMode(SDL_Renderer * renderer, + SDL_BlendMode *blendMode); + +/** + * Clear the current rendering target with the drawing color. + * + * This function clears the entire rendering target, ignoring the viewport and + * the clip rectangle. + * + * \param renderer the rendering context. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetRenderDrawColor + */ +extern DECLSPEC int SDLCALL SDL_RenderClear(SDL_Renderer * renderer); + +/** + * Draw a point on the current rendering target. + * + * SDL_RenderDrawPoint() draws a single point. If you want to draw multiple, + * use SDL_RenderDrawPoints() instead. + * + * \param renderer the rendering context. + * \param x the x coordinate of the point. + * \param y the y coordinate of the point. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RenderDrawLine + * \sa SDL_RenderDrawLines + * \sa SDL_RenderDrawPoints + * \sa SDL_RenderDrawRect + * \sa SDL_RenderDrawRects + * \sa SDL_RenderFillRect + * \sa SDL_RenderFillRects + * \sa SDL_RenderPresent + * \sa SDL_SetRenderDrawBlendMode + * \sa SDL_SetRenderDrawColor + */ +extern DECLSPEC int SDLCALL SDL_RenderDrawPoint(SDL_Renderer * renderer, + int x, int y); + +/** + * Draw multiple points on the current rendering target. + * + * \param renderer the rendering context. + * \param points an array of SDL_Point structures that represent the points to + * draw. + * \param count the number of points to draw. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RenderDrawLine + * \sa SDL_RenderDrawLines + * \sa SDL_RenderDrawPoint + * \sa SDL_RenderDrawRect + * \sa SDL_RenderDrawRects + * \sa SDL_RenderFillRect + * \sa SDL_RenderFillRects + * \sa SDL_RenderPresent + * \sa SDL_SetRenderDrawBlendMode + * \sa SDL_SetRenderDrawColor + */ +extern DECLSPEC int SDLCALL SDL_RenderDrawPoints(SDL_Renderer * renderer, + const SDL_Point * points, + int count); + +/** + * Draw a line on the current rendering target. + * + * SDL_RenderDrawLine() draws the line to include both end points. If you want + * to draw multiple, connecting lines use SDL_RenderDrawLines() instead. + * + * \param renderer the rendering context. + * \param x1 the x coordinate of the start point. + * \param y1 the y coordinate of the start point. + * \param x2 the x coordinate of the end point. + * \param y2 the y coordinate of the end point. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RenderDrawLines + * \sa SDL_RenderDrawPoint + * \sa SDL_RenderDrawPoints + * \sa SDL_RenderDrawRect + * \sa SDL_RenderDrawRects + * \sa SDL_RenderFillRect + * \sa SDL_RenderFillRects + * \sa SDL_RenderPresent + * \sa SDL_SetRenderDrawBlendMode + * \sa SDL_SetRenderDrawColor + */ +extern DECLSPEC int SDLCALL SDL_RenderDrawLine(SDL_Renderer * renderer, + int x1, int y1, int x2, int y2); + +/** + * Draw a series of connected lines on the current rendering target. + * + * \param renderer the rendering context. + * \param points an array of SDL_Point structures representing points along + * the lines. + * \param count the number of points, drawing count-1 lines. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RenderDrawLine + * \sa SDL_RenderDrawPoint + * \sa SDL_RenderDrawPoints + * \sa SDL_RenderDrawRect + * \sa SDL_RenderDrawRects + * \sa SDL_RenderFillRect + * \sa SDL_RenderFillRects + * \sa SDL_RenderPresent + * \sa SDL_SetRenderDrawBlendMode + * \sa SDL_SetRenderDrawColor + */ +extern DECLSPEC int SDLCALL SDL_RenderDrawLines(SDL_Renderer * renderer, + const SDL_Point * points, + int count); + +/** + * Draw a rectangle on the current rendering target. + * + * \param renderer the rendering context. + * \param rect an SDL_Rect structure representing the rectangle to draw, or + * NULL to outline the entire rendering target. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RenderDrawLine + * \sa SDL_RenderDrawLines + * \sa SDL_RenderDrawPoint + * \sa SDL_RenderDrawPoints + * \sa SDL_RenderDrawRects + * \sa SDL_RenderFillRect + * \sa SDL_RenderFillRects + * \sa SDL_RenderPresent + * \sa SDL_SetRenderDrawBlendMode + * \sa SDL_SetRenderDrawColor + */ +extern DECLSPEC int SDLCALL SDL_RenderDrawRect(SDL_Renderer * renderer, + const SDL_Rect * rect); + +/** + * Draw some number of rectangles on the current rendering target. + * + * \param renderer the rendering context. + * \param rects an array of SDL_Rect structures representing the rectangles to + * be drawn. + * \param count the number of rectangles. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RenderDrawLine + * \sa SDL_RenderDrawLines + * \sa SDL_RenderDrawPoint + * \sa SDL_RenderDrawPoints + * \sa SDL_RenderDrawRect + * \sa SDL_RenderFillRect + * \sa SDL_RenderFillRects + * \sa SDL_RenderPresent + * \sa SDL_SetRenderDrawBlendMode + * \sa SDL_SetRenderDrawColor + */ +extern DECLSPEC int SDLCALL SDL_RenderDrawRects(SDL_Renderer * renderer, + const SDL_Rect * rects, + int count); + +/** + * Fill a rectangle on the current rendering target with the drawing color. + * + * The current drawing color is set by SDL_SetRenderDrawColor(), and the + * color's alpha value is ignored unless blending is enabled with the + * appropriate call to SDL_SetRenderDrawBlendMode(). + * + * \param renderer the rendering context. + * \param rect the SDL_Rect structure representing the rectangle to fill, or + * NULL for the entire rendering target. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RenderDrawLine + * \sa SDL_RenderDrawLines + * \sa SDL_RenderDrawPoint + * \sa SDL_RenderDrawPoints + * \sa SDL_RenderDrawRect + * \sa SDL_RenderDrawRects + * \sa SDL_RenderFillRects + * \sa SDL_RenderPresent + * \sa SDL_SetRenderDrawBlendMode + * \sa SDL_SetRenderDrawColor + */ +extern DECLSPEC int SDLCALL SDL_RenderFillRect(SDL_Renderer * renderer, + const SDL_Rect * rect); + +/** + * Fill some number of rectangles on the current rendering target with the + * drawing color. + * + * \param renderer the rendering context. + * \param rects an array of SDL_Rect structures representing the rectangles to + * be filled. + * \param count the number of rectangles. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RenderDrawLine + * \sa SDL_RenderDrawLines + * \sa SDL_RenderDrawPoint + * \sa SDL_RenderDrawPoints + * \sa SDL_RenderDrawRect + * \sa SDL_RenderDrawRects + * \sa SDL_RenderFillRect + * \sa SDL_RenderPresent + */ +extern DECLSPEC int SDLCALL SDL_RenderFillRects(SDL_Renderer * renderer, + const SDL_Rect * rects, + int count); + +/** + * Copy a portion of the texture to the current rendering target. + * + * The texture is blended with the destination based on its blend mode set + * with SDL_SetTextureBlendMode(). + * + * The texture color is affected based on its color modulation set by + * SDL_SetTextureColorMod(). + * + * The texture alpha is affected based on its alpha modulation set by + * SDL_SetTextureAlphaMod(). + * + * \param renderer the rendering context. + * \param texture the source texture. + * \param srcrect the source SDL_Rect structure or NULL for the entire + * texture. + * \param dstrect the destination SDL_Rect structure or NULL for the entire + * rendering target; the texture will be stretched to fill the + * given rectangle. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RenderCopyEx + * \sa SDL_SetTextureAlphaMod + * \sa SDL_SetTextureBlendMode + * \sa SDL_SetTextureColorMod + */ +extern DECLSPEC int SDLCALL SDL_RenderCopy(SDL_Renderer * renderer, + SDL_Texture * texture, + const SDL_Rect * srcrect, + const SDL_Rect * dstrect); + +/** + * Copy a portion of the texture to the current rendering, with optional + * rotation and flipping. + * + * Copy a portion of the texture to the current rendering target, optionally + * rotating it by angle around the given center and also flipping it + * top-bottom and/or left-right. + * + * The texture is blended with the destination based on its blend mode set + * with SDL_SetTextureBlendMode(). + * + * The texture color is affected based on its color modulation set by + * SDL_SetTextureColorMod(). + * + * The texture alpha is affected based on its alpha modulation set by + * SDL_SetTextureAlphaMod(). + * + * \param renderer the rendering context. + * \param texture the source texture. + * \param srcrect the source SDL_Rect structure or NULL for the entire + * texture. + * \param dstrect the destination SDL_Rect structure or NULL for the entire + * rendering target. + * \param angle an angle in degrees that indicates the rotation that will be + * applied to dstrect, rotating it in a clockwise direction. + * \param center a pointer to a point indicating the point around which + * dstrect will be rotated (if NULL, rotation will be done + * around `dstrect.w / 2`, `dstrect.h / 2`). + * \param flip a SDL_RendererFlip value stating which flipping actions should + * be performed on the texture. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RenderCopy + * \sa SDL_SetTextureAlphaMod + * \sa SDL_SetTextureBlendMode + * \sa SDL_SetTextureColorMod + */ +extern DECLSPEC int SDLCALL SDL_RenderCopyEx(SDL_Renderer * renderer, + SDL_Texture * texture, + const SDL_Rect * srcrect, + const SDL_Rect * dstrect, + const double angle, + const SDL_Point *center, + const SDL_RendererFlip flip); + + +/** + * Draw a point on the current rendering target at subpixel precision. + * + * \param renderer The renderer which should draw a point. + * \param x The x coordinate of the point. + * \param y The y coordinate of the point. + * \return 0 on success, or -1 on error. + * + * \since This function is available since SDL 2.0.10. + */ +extern DECLSPEC int SDLCALL SDL_RenderDrawPointF(SDL_Renderer * renderer, + float x, float y); + +/** + * Draw multiple points on the current rendering target at subpixel precision. + * + * \param renderer The renderer which should draw multiple points. + * \param points The points to draw. + * \param count The number of points to draw. + * \return 0 on success, or -1 on error. + * + * \since This function is available since SDL 2.0.10. + */ +extern DECLSPEC int SDLCALL SDL_RenderDrawPointsF(SDL_Renderer * renderer, + const SDL_FPoint * points, + int count); + +/** + * Draw a line on the current rendering target at subpixel precision. + * + * \param renderer The renderer which should draw a line. + * \param x1 The x coordinate of the start point. + * \param y1 The y coordinate of the start point. + * \param x2 The x coordinate of the end point. + * \param y2 The y coordinate of the end point. + * \return 0 on success, or -1 on error. + * + * \since This function is available since SDL 2.0.10. + */ +extern DECLSPEC int SDLCALL SDL_RenderDrawLineF(SDL_Renderer * renderer, + float x1, float y1, float x2, float y2); + +/** + * Draw a series of connected lines on the current rendering target at + * subpixel precision. + * + * \param renderer The renderer which should draw multiple lines. + * \param points The points along the lines. + * \param count The number of points, drawing count-1 lines. + * \return 0 on success, or -1 on error. + * + * \since This function is available since SDL 2.0.10. + */ +extern DECLSPEC int SDLCALL SDL_RenderDrawLinesF(SDL_Renderer * renderer, + const SDL_FPoint * points, + int count); + +/** + * Draw a rectangle on the current rendering target at subpixel precision. + * + * \param renderer The renderer which should draw a rectangle. + * \param rect A pointer to the destination rectangle, or NULL to outline the + * entire rendering target. + * \return 0 on success, or -1 on error. + * + * \since This function is available since SDL 2.0.10. + */ +extern DECLSPEC int SDLCALL SDL_RenderDrawRectF(SDL_Renderer * renderer, + const SDL_FRect * rect); + +/** + * Draw some number of rectangles on the current rendering target at subpixel + * precision. + * + * \param renderer The renderer which should draw multiple rectangles. + * \param rects A pointer to an array of destination rectangles. + * \param count The number of rectangles. + * \return 0 on success, or -1 on error. + * + * \since This function is available since SDL 2.0.10. + */ +extern DECLSPEC int SDLCALL SDL_RenderDrawRectsF(SDL_Renderer * renderer, + const SDL_FRect * rects, + int count); + +/** + * Fill a rectangle on the current rendering target with the drawing color at + * subpixel precision. + * + * \param renderer The renderer which should fill a rectangle. + * \param rect A pointer to the destination rectangle, or NULL for the entire + * rendering target. + * \return 0 on success, or -1 on error. + * + * \since This function is available since SDL 2.0.10. + */ +extern DECLSPEC int SDLCALL SDL_RenderFillRectF(SDL_Renderer * renderer, + const SDL_FRect * rect); + +/** + * Fill some number of rectangles on the current rendering target with the + * drawing color at subpixel precision. + * + * \param renderer The renderer which should fill multiple rectangles. + * \param rects A pointer to an array of destination rectangles. + * \param count The number of rectangles. + * \return 0 on success, or -1 on error. + * + * \since This function is available since SDL 2.0.10. + */ +extern DECLSPEC int SDLCALL SDL_RenderFillRectsF(SDL_Renderer * renderer, + const SDL_FRect * rects, + int count); + +/** + * Copy a portion of the texture to the current rendering target at subpixel + * precision. + * + * \param renderer The renderer which should copy parts of a texture. + * \param texture The source texture. + * \param srcrect A pointer to the source rectangle, or NULL for the entire + * texture. + * \param dstrect A pointer to the destination rectangle, or NULL for the + * entire rendering target. + * \return 0 on success, or -1 on error. + * + * \since This function is available since SDL 2.0.10. + */ +extern DECLSPEC int SDLCALL SDL_RenderCopyF(SDL_Renderer * renderer, + SDL_Texture * texture, + const SDL_Rect * srcrect, + const SDL_FRect * dstrect); + +/** + * Copy a portion of the source texture to the current rendering target, with + * rotation and flipping, at subpixel precision. + * + * \param renderer The renderer which should copy parts of a texture. + * \param texture The source texture. + * \param srcrect A pointer to the source rectangle, or NULL for the entire + * texture. + * \param dstrect A pointer to the destination rectangle, or NULL for the + * entire rendering target. + * \param angle An angle in degrees that indicates the rotation that will be + * applied to dstrect, rotating it in a clockwise direction. + * \param center A pointer to a point indicating the point around which + * dstrect will be rotated (if NULL, rotation will be done + * around dstrect.w/2, dstrect.h/2). + * \param flip An SDL_RendererFlip value stating which flipping actions should + * be performed on the texture. + * \return 0 on success, or -1 on error. + * + * \since This function is available since SDL 2.0.10. + */ +extern DECLSPEC int SDLCALL SDL_RenderCopyExF(SDL_Renderer * renderer, + SDL_Texture * texture, + const SDL_Rect * srcrect, + const SDL_FRect * dstrect, + const double angle, + const SDL_FPoint *center, + const SDL_RendererFlip flip); + +/** + * Render a list of triangles, optionally using a texture and indices into the + * vertex array Color and alpha modulation is done per vertex + * (SDL_SetTextureColorMod and SDL_SetTextureAlphaMod are ignored). + * + * \param renderer The rendering context. + * \param texture (optional) The SDL texture to use. + * \param vertices Vertices. + * \param num_vertices Number of vertices. + * \param indices (optional) An array of integer indices into the 'vertices' + * array, if NULL all vertices will be rendered in sequential + * order. + * \param num_indices Number of indices. + * \return 0 on success, or -1 if the operation is not supported. + * + * \since This function is available since SDL 2.0.18. + * + * \sa SDL_RenderGeometryRaw + * \sa SDL_Vertex + */ +extern DECLSPEC int SDLCALL SDL_RenderGeometry(SDL_Renderer *renderer, + SDL_Texture *texture, + const SDL_Vertex *vertices, int num_vertices, + const int *indices, int num_indices); + +/** + * Render a list of triangles, optionally using a texture and indices into the + * vertex arrays Color and alpha modulation is done per vertex + * (SDL_SetTextureColorMod and SDL_SetTextureAlphaMod are ignored). + * + * \param renderer The rendering context. + * \param texture (optional) The SDL texture to use. + * \param xy Vertex positions. + * \param xy_stride Byte size to move from one element to the next element. + * \param color Vertex colors (as SDL_Color). + * \param color_stride Byte size to move from one element to the next element. + * \param uv Vertex normalized texture coordinates. + * \param uv_stride Byte size to move from one element to the next element. + * \param num_vertices Number of vertices. + * \param indices (optional) An array of indices into the 'vertices' arrays, + * if NULL all vertices will be rendered in sequential order. + * \param num_indices Number of indices. + * \param size_indices Index size: 1 (byte), 2 (short), 4 (int). + * \return 0 on success, or -1 if the operation is not supported. + * + * \since This function is available since SDL 2.0.18. + * + * \sa SDL_RenderGeometry + * \sa SDL_Vertex + */ +extern DECLSPEC int SDLCALL SDL_RenderGeometryRaw(SDL_Renderer *renderer, + SDL_Texture *texture, + const float *xy, int xy_stride, + const SDL_Color *color, int color_stride, + const float *uv, int uv_stride, + int num_vertices, + const void *indices, int num_indices, int size_indices); + +/** + * Read pixels from the current rendering target to an array of pixels. + * + * **WARNING**: This is a very slow operation, and should not be used + * frequently. If you're using this on the main rendering target, it should be + * called after rendering and before SDL_RenderPresent(). + * + * `pitch` specifies the number of bytes between rows in the destination + * `pixels` data. This allows you to write to a subrectangle or have padded + * rows in the destination. Generally, `pitch` should equal the number of + * pixels per row in the `pixels` data times the number of bytes per pixel, + * but it might contain additional padding (for example, 24bit RGB Windows + * Bitmap data pads all rows to multiples of 4 bytes). + * + * \param renderer the rendering context. + * \param rect an SDL_Rect structure representing the area to read, or NULL + * for the entire render target. + * \param format an SDL_PixelFormatEnum value of the desired format of the + * pixel data, or 0 to use the format of the rendering target. + * \param pixels a pointer to the pixel data to copy into. + * \param pitch the pitch of the `pixels` parameter. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC int SDLCALL SDL_RenderReadPixels(SDL_Renderer * renderer, + const SDL_Rect * rect, + Uint32 format, + void *pixels, int pitch); + +/** + * Update the screen with any rendering performed since the previous call. + * + * SDL's rendering functions operate on a backbuffer; that is, calling a + * rendering function such as SDL_RenderDrawLine() does not directly put a + * line on the screen, but rather updates the backbuffer. As such, you compose + * your entire scene and *present* the composed backbuffer to the screen as a + * complete picture. + * + * Therefore, when using SDL's rendering API, one does all drawing intended + * for the frame, and then calls this function once per frame to present the + * final drawing to the user. + * + * The backbuffer should be considered invalidated after each present; do not + * assume that previous contents will exist between frames. You are strongly + * encouraged to call SDL_RenderClear() to initialize the backbuffer before + * starting each new frame's drawing, even if you plan to overwrite every + * pixel. + * + * \param renderer the rendering context. + * + * \threadsafety You may only call this function on the main thread. If this + * happens to work on a background thread on any given platform + * or backend, it's purely by luck and you should not rely on it + * to work next time. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateRenderer + * \sa SDL_RenderClear + * \sa SDL_RenderDrawLine + * \sa SDL_RenderDrawLines + * \sa SDL_RenderDrawPoint + * \sa SDL_RenderDrawPoints + * \sa SDL_RenderDrawRect + * \sa SDL_RenderDrawRects + * \sa SDL_RenderFillRect + * \sa SDL_RenderFillRects + * \sa SDL_SetRenderDrawBlendMode + * \sa SDL_SetRenderDrawColor + */ +extern DECLSPEC void SDLCALL SDL_RenderPresent(SDL_Renderer * renderer); + +/** + * Destroy the specified texture. + * + * Passing NULL or an otherwise invalid texture will set the SDL error message + * to "Invalid texture". + * + * \param texture the texture to destroy. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateTexture + * \sa SDL_CreateTextureFromSurface + */ +extern DECLSPEC void SDLCALL SDL_DestroyTexture(SDL_Texture * texture); + +/** + * Destroy the rendering context for a window and free associated textures. + * + * If `renderer` is NULL, this function will return immediately after setting + * the SDL error message to "Invalid renderer". See SDL_GetError(). + * + * \param renderer the rendering context. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateRenderer + */ +extern DECLSPEC void SDLCALL SDL_DestroyRenderer(SDL_Renderer * renderer); + +/** + * Force the rendering context to flush any pending commands to the underlying + * rendering API. + * + * You do not need to (and in fact, shouldn't) call this function unless you + * are planning to call into OpenGL/Direct3D/Metal/whatever directly in + * addition to using an SDL_Renderer. + * + * This is for a very-specific case: if you are using SDL's render API, you + * asked for a specific renderer backend (OpenGL, Direct3D, etc), you set + * SDL_HINT_RENDER_BATCHING to "1", and you plan to make OpenGL/D3D/whatever + * calls in addition to SDL render API calls. If all of this applies, you + * should call SDL_RenderFlush() between calls to SDL's render API and the + * low-level API you're using in cooperation. + * + * In all other cases, you can ignore this function. This is only here to get + * maximum performance out of a specific situation. In all other cases, SDL + * will do the right thing, perhaps at a performance loss. + * + * This function is first available in SDL 2.0.10, and is not needed in 2.0.9 + * and earlier, as earlier versions did not queue rendering commands at all, + * instead flushing them to the OS immediately. + * + * \param renderer the rendering context. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.10. + */ +extern DECLSPEC int SDLCALL SDL_RenderFlush(SDL_Renderer * renderer); + + +/** + * Bind an OpenGL/ES/ES2 texture to the current context. + * + * This is for use with OpenGL instructions when rendering OpenGL primitives + * directly. + * + * If not NULL, `texw` and `texh` will be filled with the width and height + * values suitable for the provided texture. In most cases, both will be 1.0, + * however, on systems that support the GL_ARB_texture_rectangle extension, + * these values will actually be the pixel width and height used to create the + * texture, so this factor needs to be taken into account when providing + * texture coordinates to OpenGL. + * + * You need a renderer to create an SDL_Texture, therefore you can only use + * this function with an implicit OpenGL context from SDL_CreateRenderer(), + * not with your own OpenGL context. If you need control over your OpenGL + * context, you need to write your own texture-loading methods. + * + * Also note that SDL may upload RGB textures as BGR (or vice-versa), and + * re-order the color channels in the shaders phase, so the uploaded texture + * may have swapped color channels. + * + * \param texture the texture to bind to the current OpenGL/ES/ES2 context. + * \param texw a pointer to a float value which will be filled with the + * texture width or NULL if you don't need that value. + * \param texh a pointer to a float value which will be filled with the + * texture height or NULL if you don't need that value. + * \returns 0 on success, or -1 if the operation is not supported; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GL_MakeCurrent + * \sa SDL_GL_UnbindTexture + */ +extern DECLSPEC int SDLCALL SDL_GL_BindTexture(SDL_Texture *texture, float *texw, float *texh); + +/** + * Unbind an OpenGL/ES/ES2 texture from the current context. + * + * See SDL_GL_BindTexture() for examples on how to use these functions + * + * \param texture the texture to unbind from the current OpenGL/ES/ES2 + * context. + * \returns 0 on success, or -1 if the operation is not supported. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GL_BindTexture + * \sa SDL_GL_MakeCurrent + */ +extern DECLSPEC int SDLCALL SDL_GL_UnbindTexture(SDL_Texture *texture); + +/** + * Get the CAMetalLayer associated with the given Metal renderer. + * + * This function returns `void *`, so SDL doesn't have to include Metal's + * headers, but it can be safely cast to a `CAMetalLayer *`. + * + * \param renderer The renderer to query. + * \returns a `CAMetalLayer *` on success, or NULL if the renderer isn't a + * Metal renderer. + * + * \since This function is available since SDL 2.0.8. + * + * \sa SDL_RenderGetMetalCommandEncoder + */ +extern DECLSPEC void *SDLCALL SDL_RenderGetMetalLayer(SDL_Renderer * renderer); + +/** + * Get the Metal command encoder for the current frame + * + * This function returns `void *`, so SDL doesn't have to include Metal's + * headers, but it can be safely cast to an `id`. + * + * Note that as of SDL 2.0.18, this will return NULL if Metal refuses to give + * SDL a drawable to render to, which might happen if the window is + * hidden/minimized/offscreen. This doesn't apply to command encoders for + * render targets, just the window's backbuffer. Check your return values! + * + * \param renderer The renderer to query. + * \returns an `id` on success, or NULL if the + * renderer isn't a Metal renderer or there was an error. + * + * \since This function is available since SDL 2.0.8. + * + * \sa SDL_RenderGetMetalLayer + */ +extern DECLSPEC void *SDLCALL SDL_RenderGetMetalCommandEncoder(SDL_Renderer * renderer); + +/** + * Toggle VSync of the given renderer. + * + * \param renderer The renderer to toggle. + * \param vsync 1 for on, 0 for off. All other values are reserved. + * \returns a 0 int on success, or non-zero on failure. + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC int SDLCALL SDL_RenderSetVSync(SDL_Renderer* renderer, int vsync); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_render_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_revision.h b/lib/windows/include/SDL2/SDL_revision.h new file mode 100644 index 0000000..bf4a9f3 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_revision.h @@ -0,0 +1,7 @@ +/* Generated by updaterev.sh, do not edit */ +#ifdef SDL_VENDOR_INFO +#define SDL_REVISION "SDL-release-2.32.10-0-g5d2495703 (" SDL_VENDOR_INFO ")" +#else +#define SDL_REVISION "SDL-release-2.32.10-0-g5d2495703" +#endif +#define SDL_REVISION_NUMBER 0 diff --git a/lib/windows/include/SDL2/SDL_rwops.h b/lib/windows/include/SDL2/SDL_rwops.h new file mode 100644 index 0000000..43c1b0e --- /dev/null +++ b/lib/windows/include/SDL2/SDL_rwops.h @@ -0,0 +1,844 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* WIKI CATEGORY: RWOPS */ + +/** + * # CategoryRWOPS + * + * This file provides a general interface for SDL to read and write data + * streams. It can easily be extended to files, memory, etc. + */ + +#ifndef SDL_rwops_h_ +#define SDL_rwops_h_ + +#include "SDL_stdinc.h" +#include "SDL_error.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* RWops Types */ +#define SDL_RWOPS_UNKNOWN 0U /**< Unknown stream type */ +#define SDL_RWOPS_WINFILE 1U /**< Win32 file */ +#define SDL_RWOPS_STDFILE 2U /**< Stdio file */ +#define SDL_RWOPS_JNIFILE 3U /**< Android asset */ +#define SDL_RWOPS_MEMORY 4U /**< Memory stream */ +#define SDL_RWOPS_MEMORY_RO 5U /**< Read-Only memory stream */ + +/** + * This is the read/write operation structure -- very basic. + */ +typedef struct SDL_RWops +{ + /** + * Return the size of the file in this rwops, or -1 if unknown + */ + Sint64 (SDLCALL * size) (struct SDL_RWops * context); + + /** + * Seek to `offset` relative to `whence`, one of stdio's whence values: + * RW_SEEK_SET, RW_SEEK_CUR, RW_SEEK_END + * + * \return the final offset in the data stream, or -1 on error. + */ + Sint64 (SDLCALL * seek) (struct SDL_RWops * context, Sint64 offset, + int whence); + + /** + * Read up to `maxnum` objects each of size `size` from the data + * stream to the area pointed at by `ptr`. + * + * \return the number of objects read, or 0 at error or end of file. + */ + size_t (SDLCALL * read) (struct SDL_RWops * context, void *ptr, + size_t size, size_t maxnum); + + /** + * Write exactly `num` objects each of size `size` from the area + * pointed at by `ptr` to data stream. + * + * \return the number of objects written, or 0 at error or end of file. + */ + size_t (SDLCALL * write) (struct SDL_RWops * context, const void *ptr, + size_t size, size_t num); + + /** + * Close and free an allocated SDL_RWops structure. + * + * \return 0 if successful or -1 on write error when flushing data. + */ + int (SDLCALL * close) (struct SDL_RWops * context); + + Uint32 type; + union + { +#if defined(__ANDROID__) + struct + { + void *asset; + } androidio; +#elif defined(__WIN32__) || defined(__GDK__) + struct + { + SDL_bool append; + void *h; + struct + { + void *data; + size_t size; + size_t left; + } buffer; + } windowsio; +#endif + +#ifdef HAVE_STDIO_H + struct + { + SDL_bool autoclose; + FILE *fp; + } stdio; +#endif + struct + { + Uint8 *base; + Uint8 *here; + Uint8 *stop; + } mem; + struct + { + void *data1; + void *data2; + } unknown; + } hidden; + +} SDL_RWops; + + +/** + * \name RWFrom functions + * + * Functions to create SDL_RWops structures from various data streams. + */ +/* @{ */ + +/** + * Use this function to create a new SDL_RWops structure for reading from + * and/or writing to a named file. + * + * The `mode` string is treated roughly the same as in a call to the C + * library's fopen(), even if SDL doesn't happen to use fopen() behind the + * scenes. + * + * Available `mode` strings: + * + * - "r": Open a file for reading. The file must exist. + * - "w": Create an empty file for writing. If a file with the same name + * already exists its content is erased and the file is treated as a new + * empty file. + * - "a": Append to a file. Writing operations append data at the end of the + * file. The file is created if it does not exist. + * - "r+": Open a file for update both reading and writing. The file must + * exist. + * - "w+": Create an empty file for both reading and writing. If a file with + * the same name already exists its content is erased and the file is + * treated as a new empty file. + * - "a+": Open a file for reading and appending. All writing operations are + * performed at the end of the file, protecting the previous content to be + * overwritten. You can reposition (fseek, rewind) the internal pointer to + * anywhere in the file for reading, but writing operations will move it + * back to the end of file. The file is created if it does not exist. + * + * **NOTE**: In order to open a file as a binary file, a "b" character has to + * be included in the `mode` string. This additional "b" character can either + * be appended at the end of the string (thus making the following compound + * modes: "rb", "wb", "ab", "r+b", "w+b", "a+b") or be inserted between the + * letter and the "+" sign for the mixed modes ("rb+", "wb+", "ab+"). + * Additional characters may follow the sequence, although they should have no + * effect. For example, "t" is sometimes appended to make explicit the file is + * a text file. + * + * This function supports Unicode filenames, but they must be encoded in UTF-8 + * format, regardless of the underlying operating system. + * + * As a fallback, SDL_RWFromFile() will transparently open a matching filename + * in an Android app's `assets`. + * + * Closing the SDL_RWops will close the file handle SDL is holding internally. + * + * \param file a UTF-8 string representing the filename to open. + * \param mode an ASCII string representing the mode to be used for opening + * the file. + * \returns a pointer to the SDL_RWops structure that is created, or NULL on + * failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RWclose + * \sa SDL_RWFromConstMem + * \sa SDL_RWFromFP + * \sa SDL_RWFromMem + * \sa SDL_RWread + * \sa SDL_RWseek + * \sa SDL_RWtell + * \sa SDL_RWwrite + */ +extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromFile(const char *file, + const char *mode); + +#ifdef HAVE_STDIO_H + +extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromFP(FILE * fp, SDL_bool autoclose); + +#else + +/** + * Use this function to create an SDL_RWops structure from a standard I/O file + * pointer (stdio.h's `FILE*`). + * + * This function is not available on Windows, since files opened in an + * application on that platform cannot be used by a dynamically linked + * library. + * + * On some platforms, the first parameter is a `void*`, on others, it's a + * `FILE*`, depending on what system headers are available to SDL. It is + * always intended to be the `FILE*` type from the C runtime's stdio.h. + * + * \param fp the `FILE*` that feeds the SDL_RWops stream. + * \param autoclose SDL_TRUE to close the `FILE*` when closing the SDL_RWops, + * SDL_FALSE to leave the `FILE*` open when the RWops is + * closed. + * \returns a pointer to the SDL_RWops structure that is created, or NULL on + * failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RWclose + * \sa SDL_RWFromConstMem + * \sa SDL_RWFromFile + * \sa SDL_RWFromMem + * \sa SDL_RWread + * \sa SDL_RWseek + * \sa SDL_RWtell + * \sa SDL_RWwrite + */ +extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromFP(void * fp, + SDL_bool autoclose); +#endif + +/** + * Use this function to prepare a read-write memory buffer for use with + * SDL_RWops. + * + * This function sets up an SDL_RWops struct based on a memory area of a + * certain size, for both read and write access. + * + * This memory buffer is not copied by the RWops; the pointer you provide must + * remain valid until you close the stream. Closing the stream will not free + * the original buffer. + * + * If you need to make sure the RWops never writes to the memory buffer, you + * should use SDL_RWFromConstMem() with a read-only buffer of memory instead. + * + * \param mem a pointer to a buffer to feed an SDL_RWops stream. + * \param size the buffer size, in bytes. + * \returns a pointer to a new SDL_RWops structure, or NULL if it fails; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RWclose + * \sa SDL_RWFromConstMem + * \sa SDL_RWFromFile + * \sa SDL_RWFromFP + * \sa SDL_RWFromMem + * \sa SDL_RWread + * \sa SDL_RWseek + * \sa SDL_RWtell + * \sa SDL_RWwrite + */ +extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromMem(void *mem, int size); + +/** + * Use this function to prepare a read-only memory buffer for use with RWops. + * + * This function sets up an SDL_RWops struct based on a memory area of a + * certain size. It assumes the memory area is not writable. + * + * Attempting to write to this RWops stream will report an error without + * writing to the memory buffer. + * + * This memory buffer is not copied by the RWops; the pointer you provide must + * remain valid until you close the stream. Closing the stream will not free + * the original buffer. + * + * If you need to write to a memory buffer, you should use SDL_RWFromMem() + * with a writable buffer of memory instead. + * + * \param mem a pointer to a read-only buffer to feed an SDL_RWops stream. + * \param size the buffer size, in bytes. + * \returns a pointer to a new SDL_RWops structure, or NULL if it fails; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RWclose + * \sa SDL_RWFromConstMem + * \sa SDL_RWFromFile + * \sa SDL_RWFromFP + * \sa SDL_RWFromMem + * \sa SDL_RWread + * \sa SDL_RWseek + * \sa SDL_RWtell + */ +extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromConstMem(const void *mem, + int size); + +/* @} *//* RWFrom functions */ + + +/** + * Use this function to allocate an empty, unpopulated SDL_RWops structure. + * + * Applications do not need to use this function unless they are providing + * their own SDL_RWops implementation. If you just need a SDL_RWops to + * read/write a common data source, you should use the built-in + * implementations in SDL, like SDL_RWFromFile() or SDL_RWFromMem(), etc. + * + * You must free the returned pointer with SDL_FreeRW(). Depending on your + * operating system and compiler, there may be a difference between the + * malloc() and free() your program uses and the versions SDL calls + * internally. Trying to mix the two can cause crashing such as segmentation + * faults. Since all SDL_RWops must free themselves when their **close** + * method is called, all SDL_RWops must be allocated through this function, so + * they can all be freed correctly with SDL_FreeRW(). + * + * \returns a pointer to the allocated memory on success, or NULL on failure; + * call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_FreeRW + */ +extern DECLSPEC SDL_RWops *SDLCALL SDL_AllocRW(void); + +/** + * Use this function to free an SDL_RWops structure allocated by + * SDL_AllocRW(). + * + * Applications do not need to use this function unless they are providing + * their own SDL_RWops implementation. If you just need a SDL_RWops to + * read/write a common data source, you should use the built-in + * implementations in SDL, like SDL_RWFromFile() or SDL_RWFromMem(), etc, and + * call the **close** method on those SDL_RWops pointers when you are done + * with them. + * + * Only use SDL_FreeRW() on pointers returned by SDL_AllocRW(). The pointer is + * invalid as soon as this function returns. Any extra memory allocated during + * creation of the SDL_RWops is not freed by SDL_FreeRW(); the programmer must + * be responsible for managing that memory in their **close** method. + * + * \param area the SDL_RWops structure to be freed. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AllocRW + */ +extern DECLSPEC void SDLCALL SDL_FreeRW(SDL_RWops * area); + +/* Possible `whence` values for SDL_RWops seeking... */ +#define RW_SEEK_SET 0 /**< Seek from the beginning of data */ +#define RW_SEEK_CUR 1 /**< Seek relative to current read point */ +#define RW_SEEK_END 2 /**< Seek relative to the end of data */ + +/** + * Use this function to get the size of the data stream in an SDL_RWops. + * + * Prior to SDL 2.0.10, this function was a macro. + * + * \param context the SDL_RWops to get the size of the data stream from. + * \returns the size of the data stream in the SDL_RWops on success, -1 if + * unknown or a negative error code on failure; call SDL_GetError() + * for more information. + * + * \since This function is available since SDL 2.0.10. + */ +extern DECLSPEC Sint64 SDLCALL SDL_RWsize(SDL_RWops *context); + +/** + * Seek within an SDL_RWops data stream. + * + * This function seeks to byte `offset`, relative to `whence`. + * + * `whence` may be any of the following values: + * + * - `RW_SEEK_SET`: seek from the beginning of data + * - `RW_SEEK_CUR`: seek relative to current read point + * - `RW_SEEK_END`: seek relative to the end of data + * + * If this stream can not seek, it will return -1. + * + * SDL_RWseek() is actually a wrapper function that calls the SDL_RWops's + * `seek` method appropriately, to simplify application development. + * + * Prior to SDL 2.0.10, this function was a macro. + * + * \param context a pointer to an SDL_RWops structure. + * \param offset an offset in bytes, relative to **whence** location; can be + * negative. + * \param whence any of `RW_SEEK_SET`, `RW_SEEK_CUR`, `RW_SEEK_END`. + * \returns the final offset in the data stream after the seek or -1 on error. + * + * \since This function is available since SDL 2.0.10. + * + * \sa SDL_RWclose + * \sa SDL_RWFromConstMem + * \sa SDL_RWFromFile + * \sa SDL_RWFromFP + * \sa SDL_RWFromMem + * \sa SDL_RWread + * \sa SDL_RWtell + * \sa SDL_RWwrite + */ +extern DECLSPEC Sint64 SDLCALL SDL_RWseek(SDL_RWops *context, + Sint64 offset, int whence); + +/** + * Determine the current read/write offset in an SDL_RWops data stream. + * + * SDL_RWtell is actually a wrapper function that calls the SDL_RWops's `seek` + * method, with an offset of 0 bytes from `RW_SEEK_CUR`, to simplify + * application development. + * + * Prior to SDL 2.0.10, this function was a macro. + * + * \param context a SDL_RWops data stream object from which to get the current + * offset. + * \returns the current offset in the stream, or -1 if the information can not + * be determined. + * + * \since This function is available since SDL 2.0.10. + * + * \sa SDL_RWclose + * \sa SDL_RWFromConstMem + * \sa SDL_RWFromFile + * \sa SDL_RWFromFP + * \sa SDL_RWFromMem + * \sa SDL_RWread + * \sa SDL_RWseek + * \sa SDL_RWwrite + */ +extern DECLSPEC Sint64 SDLCALL SDL_RWtell(SDL_RWops *context); + +/** + * Read from a data source. + * + * This function reads up to `maxnum` objects each of size `size` from the + * data source to the area pointed at by `ptr`. This function may read less + * objects than requested. It will return zero when there has been an error or + * the data stream is completely read. + * + * SDL_RWread() is actually a function wrapper that calls the SDL_RWops's + * `read` method appropriately, to simplify application development. + * + * Prior to SDL 2.0.10, this function was a macro. + * + * \param context a pointer to an SDL_RWops structure. + * \param ptr a pointer to a buffer to read data into. + * \param size the size of each object to read, in bytes. + * \param maxnum the maximum number of objects to be read. + * \returns the number of objects read, or 0 at error or end of file; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.10. + * + * \sa SDL_RWclose + * \sa SDL_RWFromConstMem + * \sa SDL_RWFromFile + * \sa SDL_RWFromFP + * \sa SDL_RWFromMem + * \sa SDL_RWseek + * \sa SDL_RWwrite + */ +extern DECLSPEC size_t SDLCALL SDL_RWread(SDL_RWops *context, + void *ptr, size_t size, + size_t maxnum); + +/** + * Write to an SDL_RWops data stream. + * + * This function writes exactly `num` objects each of size `size` from the + * area pointed at by `ptr` to the stream. If this fails for any reason, it'll + * return less than `num` to demonstrate how far the write progressed. On + * success, it returns `num`. + * + * SDL_RWwrite is actually a function wrapper that calls the SDL_RWops's + * `write` method appropriately, to simplify application development. + * + * Prior to SDL 2.0.10, this function was a macro. + * + * \param context a pointer to an SDL_RWops structure. + * \param ptr a pointer to a buffer containing data to write. + * \param size the size of an object to write, in bytes. + * \param num the number of objects to write. + * \returns the number of objects written, which will be less than **num** on + * error; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.10. + * + * \sa SDL_RWclose + * \sa SDL_RWFromConstMem + * \sa SDL_RWFromFile + * \sa SDL_RWFromFP + * \sa SDL_RWFromMem + * \sa SDL_RWread + * \sa SDL_RWseek + */ +extern DECLSPEC size_t SDLCALL SDL_RWwrite(SDL_RWops *context, + const void *ptr, size_t size, + size_t num); + +/** + * Close and free an allocated SDL_RWops structure. + * + * SDL_RWclose() closes and cleans up the SDL_RWops stream. It releases any + * resources used by the stream and frees the SDL_RWops itself with + * SDL_FreeRW(). This returns 0 on success, or -1 if the stream failed to + * flush to its output (e.g. to disk). + * + * Note that if this fails to flush the stream to disk, this function reports + * an error, but the SDL_RWops is still invalid once this function returns. + * + * Prior to SDL 2.0.10, this function was a macro. + * + * \param context SDL_RWops structure to close. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.10. + * + * \sa SDL_RWFromConstMem + * \sa SDL_RWFromFile + * \sa SDL_RWFromFP + * \sa SDL_RWFromMem + * \sa SDL_RWread + * \sa SDL_RWseek + * \sa SDL_RWwrite + */ +extern DECLSPEC int SDLCALL SDL_RWclose(SDL_RWops *context); + +/** + * Load all the data from an SDL data stream. + * + * The data is allocated with a zero byte at the end (null terminated) for + * convenience. This extra byte is not included in the value reported via + * `datasize`. + * + * The data should be freed with SDL_free(). + * + * \param src the SDL_RWops to read all available data from. + * \param datasize if not NULL, will store the number of bytes read. + * \param freesrc if non-zero, calls SDL_RWclose() on `src` before returning. + * \returns the data, or NULL if there was an error. + * + * \since This function is available since SDL 2.0.6. + */ +extern DECLSPEC void *SDLCALL SDL_LoadFile_RW(SDL_RWops *src, + size_t *datasize, + int freesrc); + +/** + * Load all the data from a file path. + * + * The data is allocated with a zero byte at the end (null terminated) for + * convenience. This extra byte is not included in the value reported via + * `datasize`. + * + * The data should be freed with SDL_free(). + * + * Prior to SDL 2.0.10, this function was a macro wrapping around + * SDL_LoadFile_RW. + * + * \param file the path to read all available data from. + * \param datasize if not NULL, will store the number of bytes read. + * \returns the data, or NULL if there was an error. + * + * \since This function is available since SDL 2.0.10. + */ +extern DECLSPEC void *SDLCALL SDL_LoadFile(const char *file, size_t *datasize); + +/** + * \name Read endian functions + * + * Read an item of the specified endianness and return in native format. + */ +/* @{ */ + +/** + * Use this function to read a byte from an SDL_RWops. + * + * \param src the SDL_RWops to read from. + * \returns the read byte on success or 0 on failure; call SDL_GetError() for + * more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_WriteU8 + */ +extern DECLSPEC Uint8 SDLCALL SDL_ReadU8(SDL_RWops * src); + +/** + * Use this function to read 16 bits of little-endian data from an SDL_RWops + * and return in native format. + * + * SDL byteswaps the data only if necessary, so the data returned will be in + * the native byte order. + * + * \param src the stream from which to read data. + * \returns 16 bits of data in the native byte order of the platform. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_ReadBE16 + */ +extern DECLSPEC Uint16 SDLCALL SDL_ReadLE16(SDL_RWops * src); + +/** + * Use this function to read 16 bits of big-endian data from an SDL_RWops and + * return in native format. + * + * SDL byteswaps the data only if necessary, so the data returned will be in + * the native byte order. + * + * \param src the stream from which to read data. + * \returns 16 bits of data in the native byte order of the platform. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_ReadLE16 + */ +extern DECLSPEC Uint16 SDLCALL SDL_ReadBE16(SDL_RWops * src); + +/** + * Use this function to read 32 bits of little-endian data from an SDL_RWops + * and return in native format. + * + * SDL byteswaps the data only if necessary, so the data returned will be in + * the native byte order. + * + * \param src the stream from which to read data. + * \returns 32 bits of data in the native byte order of the platform. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_ReadBE32 + */ +extern DECLSPEC Uint32 SDLCALL SDL_ReadLE32(SDL_RWops * src); + +/** + * Use this function to read 32 bits of big-endian data from an SDL_RWops and + * return in native format. + * + * SDL byteswaps the data only if necessary, so the data returned will be in + * the native byte order. + * + * \param src the stream from which to read data. + * \returns 32 bits of data in the native byte order of the platform. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_ReadLE32 + */ +extern DECLSPEC Uint32 SDLCALL SDL_ReadBE32(SDL_RWops * src); + +/** + * Use this function to read 64 bits of little-endian data from an SDL_RWops + * and return in native format. + * + * SDL byteswaps the data only if necessary, so the data returned will be in + * the native byte order. + * + * \param src the stream from which to read data. + * \returns 64 bits of data in the native byte order of the platform. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_ReadBE64 + */ +extern DECLSPEC Uint64 SDLCALL SDL_ReadLE64(SDL_RWops * src); + +/** + * Use this function to read 64 bits of big-endian data from an SDL_RWops and + * return in native format. + * + * SDL byteswaps the data only if necessary, so the data returned will be in + * the native byte order. + * + * \param src the stream from which to read data. + * \returns 64 bits of data in the native byte order of the platform. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_ReadLE64 + */ +extern DECLSPEC Uint64 SDLCALL SDL_ReadBE64(SDL_RWops * src); +/* @} *//* Read endian functions */ + +/** + * \name Write endian functions + * + * Write an item of native format to the specified endianness. + */ +/* @{ */ + +/** + * Use this function to write a byte to an SDL_RWops. + * + * \param dst the SDL_RWops to write to. + * \param value the byte value to write. + * \returns 1 on success or 0 on failure; call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_ReadU8 + */ +extern DECLSPEC size_t SDLCALL SDL_WriteU8(SDL_RWops * dst, Uint8 value); + +/** + * Use this function to write 16 bits in native format to a SDL_RWops as + * little-endian data. + * + * SDL byteswaps the data only if necessary, so the application always + * specifies native format, and the data written will be in little-endian + * format. + * + * \param dst the stream to which data will be written. + * \param value the data to be written, in native format. + * \returns 1 on successful write, 0 on error. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_WriteBE16 + */ +extern DECLSPEC size_t SDLCALL SDL_WriteLE16(SDL_RWops * dst, Uint16 value); + +/** + * Use this function to write 16 bits in native format to a SDL_RWops as + * big-endian data. + * + * SDL byteswaps the data only if necessary, so the application always + * specifies native format, and the data written will be in big-endian format. + * + * \param dst the stream to which data will be written. + * \param value the data to be written, in native format. + * \returns 1 on successful write, 0 on error. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_WriteLE16 + */ +extern DECLSPEC size_t SDLCALL SDL_WriteBE16(SDL_RWops * dst, Uint16 value); + +/** + * Use this function to write 32 bits in native format to a SDL_RWops as + * little-endian data. + * + * SDL byteswaps the data only if necessary, so the application always + * specifies native format, and the data written will be in little-endian + * format. + * + * \param dst the stream to which data will be written. + * \param value the data to be written, in native format. + * \returns 1 on successful write, 0 on error. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_WriteBE32 + */ +extern DECLSPEC size_t SDLCALL SDL_WriteLE32(SDL_RWops * dst, Uint32 value); + +/** + * Use this function to write 32 bits in native format to a SDL_RWops as + * big-endian data. + * + * SDL byteswaps the data only if necessary, so the application always + * specifies native format, and the data written will be in big-endian format. + * + * \param dst the stream to which data will be written. + * \param value the data to be written, in native format. + * \returns 1 on successful write, 0 on error. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_WriteLE32 + */ +extern DECLSPEC size_t SDLCALL SDL_WriteBE32(SDL_RWops * dst, Uint32 value); + +/** + * Use this function to write 64 bits in native format to a SDL_RWops as + * little-endian data. + * + * SDL byteswaps the data only if necessary, so the application always + * specifies native format, and the data written will be in little-endian + * format. + * + * \param dst the stream to which data will be written. + * \param value the data to be written, in native format. + * \returns 1 on successful write, 0 on error. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_WriteBE64 + */ +extern DECLSPEC size_t SDLCALL SDL_WriteLE64(SDL_RWops * dst, Uint64 value); + +/** + * Use this function to write 64 bits in native format to a SDL_RWops as + * big-endian data. + * + * SDL byteswaps the data only if necessary, so the application always + * specifies native format, and the data written will be in big-endian format. + * + * \param dst the stream to which data will be written. + * \param value the data to be written, in native format. + * \returns 1 on successful write, 0 on error. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_WriteLE64 + */ +extern DECLSPEC size_t SDLCALL SDL_WriteBE64(SDL_RWops * dst, Uint64 value); +/* @} *//* Write endian functions */ + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_rwops_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_scancode.h b/lib/windows/include/SDL2/SDL_scancode.h new file mode 100644 index 0000000..0652d7e --- /dev/null +++ b/lib/windows/include/SDL2/SDL_scancode.h @@ -0,0 +1,438 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryScancode + * + * Defines keyboard scancodes. + */ + +#ifndef SDL_scancode_h_ +#define SDL_scancode_h_ + +#include "SDL_stdinc.h" + +/** + * The SDL keyboard scancode representation. + * + * Values of this type are used to represent keyboard keys, among other places + * in the SDL_Keysym::scancode key.keysym.scancode field of the SDL_Event + * structure. + * + * The values in this enumeration are based on the USB usage page standard: + * https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf + */ +typedef enum SDL_Scancode +{ + SDL_SCANCODE_UNKNOWN = 0, + + /** + * \name Usage page 0x07 + * + * These values are from usage page 0x07 (USB keyboard page). + */ + /* @{ */ + + SDL_SCANCODE_A = 4, + SDL_SCANCODE_B = 5, + SDL_SCANCODE_C = 6, + SDL_SCANCODE_D = 7, + SDL_SCANCODE_E = 8, + SDL_SCANCODE_F = 9, + SDL_SCANCODE_G = 10, + SDL_SCANCODE_H = 11, + SDL_SCANCODE_I = 12, + SDL_SCANCODE_J = 13, + SDL_SCANCODE_K = 14, + SDL_SCANCODE_L = 15, + SDL_SCANCODE_M = 16, + SDL_SCANCODE_N = 17, + SDL_SCANCODE_O = 18, + SDL_SCANCODE_P = 19, + SDL_SCANCODE_Q = 20, + SDL_SCANCODE_R = 21, + SDL_SCANCODE_S = 22, + SDL_SCANCODE_T = 23, + SDL_SCANCODE_U = 24, + SDL_SCANCODE_V = 25, + SDL_SCANCODE_W = 26, + SDL_SCANCODE_X = 27, + SDL_SCANCODE_Y = 28, + SDL_SCANCODE_Z = 29, + + SDL_SCANCODE_1 = 30, + SDL_SCANCODE_2 = 31, + SDL_SCANCODE_3 = 32, + SDL_SCANCODE_4 = 33, + SDL_SCANCODE_5 = 34, + SDL_SCANCODE_6 = 35, + SDL_SCANCODE_7 = 36, + SDL_SCANCODE_8 = 37, + SDL_SCANCODE_9 = 38, + SDL_SCANCODE_0 = 39, + + SDL_SCANCODE_RETURN = 40, + SDL_SCANCODE_ESCAPE = 41, + SDL_SCANCODE_BACKSPACE = 42, + SDL_SCANCODE_TAB = 43, + SDL_SCANCODE_SPACE = 44, + + SDL_SCANCODE_MINUS = 45, + SDL_SCANCODE_EQUALS = 46, + SDL_SCANCODE_LEFTBRACKET = 47, + SDL_SCANCODE_RIGHTBRACKET = 48, + SDL_SCANCODE_BACKSLASH = 49, /**< Located at the lower left of the return + * key on ISO keyboards and at the right end + * of the QWERTY row on ANSI keyboards. + * Produces REVERSE SOLIDUS (backslash) and + * VERTICAL LINE in a US layout, REVERSE + * SOLIDUS and VERTICAL LINE in a UK Mac + * layout, NUMBER SIGN and TILDE in a UK + * Windows layout, DOLLAR SIGN and POUND SIGN + * in a Swiss German layout, NUMBER SIGN and + * APOSTROPHE in a German layout, GRAVE + * ACCENT and POUND SIGN in a French Mac + * layout, and ASTERISK and MICRO SIGN in a + * French Windows layout. + */ + SDL_SCANCODE_NONUSHASH = 50, /**< ISO USB keyboards actually use this code + * instead of 49 for the same key, but all + * OSes I've seen treat the two codes + * identically. So, as an implementor, unless + * your keyboard generates both of those + * codes and your OS treats them differently, + * you should generate SDL_SCANCODE_BACKSLASH + * instead of this code. As a user, you + * should not rely on this code because SDL + * will never generate it with most (all?) + * keyboards. + */ + SDL_SCANCODE_SEMICOLON = 51, + SDL_SCANCODE_APOSTROPHE = 52, + SDL_SCANCODE_GRAVE = 53, /**< Located in the top left corner (on both ANSI + * and ISO keyboards). Produces GRAVE ACCENT and + * TILDE in a US Windows layout and in US and UK + * Mac layouts on ANSI keyboards, GRAVE ACCENT + * and NOT SIGN in a UK Windows layout, SECTION + * SIGN and PLUS-MINUS SIGN in US and UK Mac + * layouts on ISO keyboards, SECTION SIGN and + * DEGREE SIGN in a Swiss German layout (Mac: + * only on ISO keyboards), CIRCUMFLEX ACCENT and + * DEGREE SIGN in a German layout (Mac: only on + * ISO keyboards), SUPERSCRIPT TWO and TILDE in a + * French Windows layout, COMMERCIAL AT and + * NUMBER SIGN in a French Mac layout on ISO + * keyboards, and LESS-THAN SIGN and GREATER-THAN + * SIGN in a Swiss German, German, or French Mac + * layout on ANSI keyboards. + */ + SDL_SCANCODE_COMMA = 54, + SDL_SCANCODE_PERIOD = 55, + SDL_SCANCODE_SLASH = 56, + + SDL_SCANCODE_CAPSLOCK = 57, + + SDL_SCANCODE_F1 = 58, + SDL_SCANCODE_F2 = 59, + SDL_SCANCODE_F3 = 60, + SDL_SCANCODE_F4 = 61, + SDL_SCANCODE_F5 = 62, + SDL_SCANCODE_F6 = 63, + SDL_SCANCODE_F7 = 64, + SDL_SCANCODE_F8 = 65, + SDL_SCANCODE_F9 = 66, + SDL_SCANCODE_F10 = 67, + SDL_SCANCODE_F11 = 68, + SDL_SCANCODE_F12 = 69, + + SDL_SCANCODE_PRINTSCREEN = 70, + SDL_SCANCODE_SCROLLLOCK = 71, + SDL_SCANCODE_PAUSE = 72, + SDL_SCANCODE_INSERT = 73, /**< insert on PC, help on some Mac keyboards (but + does send code 73, not 117) */ + SDL_SCANCODE_HOME = 74, + SDL_SCANCODE_PAGEUP = 75, + SDL_SCANCODE_DELETE = 76, + SDL_SCANCODE_END = 77, + SDL_SCANCODE_PAGEDOWN = 78, + SDL_SCANCODE_RIGHT = 79, + SDL_SCANCODE_LEFT = 80, + SDL_SCANCODE_DOWN = 81, + SDL_SCANCODE_UP = 82, + + SDL_SCANCODE_NUMLOCKCLEAR = 83, /**< num lock on PC, clear on Mac keyboards + */ + SDL_SCANCODE_KP_DIVIDE = 84, + SDL_SCANCODE_KP_MULTIPLY = 85, + SDL_SCANCODE_KP_MINUS = 86, + SDL_SCANCODE_KP_PLUS = 87, + SDL_SCANCODE_KP_ENTER = 88, + SDL_SCANCODE_KP_1 = 89, + SDL_SCANCODE_KP_2 = 90, + SDL_SCANCODE_KP_3 = 91, + SDL_SCANCODE_KP_4 = 92, + SDL_SCANCODE_KP_5 = 93, + SDL_SCANCODE_KP_6 = 94, + SDL_SCANCODE_KP_7 = 95, + SDL_SCANCODE_KP_8 = 96, + SDL_SCANCODE_KP_9 = 97, + SDL_SCANCODE_KP_0 = 98, + SDL_SCANCODE_KP_PERIOD = 99, + + SDL_SCANCODE_NONUSBACKSLASH = 100, /**< This is the additional key that ISO + * keyboards have over ANSI ones, + * located between left shift and Y. + * Produces GRAVE ACCENT and TILDE in a + * US or UK Mac layout, REVERSE SOLIDUS + * (backslash) and VERTICAL LINE in a + * US or UK Windows layout, and + * LESS-THAN SIGN and GREATER-THAN SIGN + * in a Swiss German, German, or French + * layout. */ + SDL_SCANCODE_APPLICATION = 101, /**< windows contextual menu, compose */ + SDL_SCANCODE_POWER = 102, /**< The USB document says this is a status flag, + * not a physical key - but some Mac keyboards + * do have a power key. */ + SDL_SCANCODE_KP_EQUALS = 103, + SDL_SCANCODE_F13 = 104, + SDL_SCANCODE_F14 = 105, + SDL_SCANCODE_F15 = 106, + SDL_SCANCODE_F16 = 107, + SDL_SCANCODE_F17 = 108, + SDL_SCANCODE_F18 = 109, + SDL_SCANCODE_F19 = 110, + SDL_SCANCODE_F20 = 111, + SDL_SCANCODE_F21 = 112, + SDL_SCANCODE_F22 = 113, + SDL_SCANCODE_F23 = 114, + SDL_SCANCODE_F24 = 115, + SDL_SCANCODE_EXECUTE = 116, + SDL_SCANCODE_HELP = 117, /**< AL Integrated Help Center */ + SDL_SCANCODE_MENU = 118, /**< Menu (show menu) */ + SDL_SCANCODE_SELECT = 119, + SDL_SCANCODE_STOP = 120, /**< AC Stop */ + SDL_SCANCODE_AGAIN = 121, /**< AC Redo/Repeat */ + SDL_SCANCODE_UNDO = 122, /**< AC Undo */ + SDL_SCANCODE_CUT = 123, /**< AC Cut */ + SDL_SCANCODE_COPY = 124, /**< AC Copy */ + SDL_SCANCODE_PASTE = 125, /**< AC Paste */ + SDL_SCANCODE_FIND = 126, /**< AC Find */ + SDL_SCANCODE_MUTE = 127, + SDL_SCANCODE_VOLUMEUP = 128, + SDL_SCANCODE_VOLUMEDOWN = 129, +/* not sure whether there's a reason to enable these */ +/* SDL_SCANCODE_LOCKINGCAPSLOCK = 130, */ +/* SDL_SCANCODE_LOCKINGNUMLOCK = 131, */ +/* SDL_SCANCODE_LOCKINGSCROLLLOCK = 132, */ + SDL_SCANCODE_KP_COMMA = 133, + SDL_SCANCODE_KP_EQUALSAS400 = 134, + + SDL_SCANCODE_INTERNATIONAL1 = 135, /**< used on Asian keyboards, see + footnotes in USB doc */ + SDL_SCANCODE_INTERNATIONAL2 = 136, + SDL_SCANCODE_INTERNATIONAL3 = 137, /**< Yen */ + SDL_SCANCODE_INTERNATIONAL4 = 138, + SDL_SCANCODE_INTERNATIONAL5 = 139, + SDL_SCANCODE_INTERNATIONAL6 = 140, + SDL_SCANCODE_INTERNATIONAL7 = 141, + SDL_SCANCODE_INTERNATIONAL8 = 142, + SDL_SCANCODE_INTERNATIONAL9 = 143, + SDL_SCANCODE_LANG1 = 144, /**< Hangul/English toggle */ + SDL_SCANCODE_LANG2 = 145, /**< Hanja conversion */ + SDL_SCANCODE_LANG3 = 146, /**< Katakana */ + SDL_SCANCODE_LANG4 = 147, /**< Hiragana */ + SDL_SCANCODE_LANG5 = 148, /**< Zenkaku/Hankaku */ + SDL_SCANCODE_LANG6 = 149, /**< reserved */ + SDL_SCANCODE_LANG7 = 150, /**< reserved */ + SDL_SCANCODE_LANG8 = 151, /**< reserved */ + SDL_SCANCODE_LANG9 = 152, /**< reserved */ + + SDL_SCANCODE_ALTERASE = 153, /**< Erase-Eaze */ + SDL_SCANCODE_SYSREQ = 154, + SDL_SCANCODE_CANCEL = 155, /**< AC Cancel */ + SDL_SCANCODE_CLEAR = 156, + SDL_SCANCODE_PRIOR = 157, + SDL_SCANCODE_RETURN2 = 158, + SDL_SCANCODE_SEPARATOR = 159, + SDL_SCANCODE_OUT = 160, + SDL_SCANCODE_OPER = 161, + SDL_SCANCODE_CLEARAGAIN = 162, + SDL_SCANCODE_CRSEL = 163, + SDL_SCANCODE_EXSEL = 164, + + SDL_SCANCODE_KP_00 = 176, + SDL_SCANCODE_KP_000 = 177, + SDL_SCANCODE_THOUSANDSSEPARATOR = 178, + SDL_SCANCODE_DECIMALSEPARATOR = 179, + SDL_SCANCODE_CURRENCYUNIT = 180, + SDL_SCANCODE_CURRENCYSUBUNIT = 181, + SDL_SCANCODE_KP_LEFTPAREN = 182, + SDL_SCANCODE_KP_RIGHTPAREN = 183, + SDL_SCANCODE_KP_LEFTBRACE = 184, + SDL_SCANCODE_KP_RIGHTBRACE = 185, + SDL_SCANCODE_KP_TAB = 186, + SDL_SCANCODE_KP_BACKSPACE = 187, + SDL_SCANCODE_KP_A = 188, + SDL_SCANCODE_KP_B = 189, + SDL_SCANCODE_KP_C = 190, + SDL_SCANCODE_KP_D = 191, + SDL_SCANCODE_KP_E = 192, + SDL_SCANCODE_KP_F = 193, + SDL_SCANCODE_KP_XOR = 194, + SDL_SCANCODE_KP_POWER = 195, + SDL_SCANCODE_KP_PERCENT = 196, + SDL_SCANCODE_KP_LESS = 197, + SDL_SCANCODE_KP_GREATER = 198, + SDL_SCANCODE_KP_AMPERSAND = 199, + SDL_SCANCODE_KP_DBLAMPERSAND = 200, + SDL_SCANCODE_KP_VERTICALBAR = 201, + SDL_SCANCODE_KP_DBLVERTICALBAR = 202, + SDL_SCANCODE_KP_COLON = 203, + SDL_SCANCODE_KP_HASH = 204, + SDL_SCANCODE_KP_SPACE = 205, + SDL_SCANCODE_KP_AT = 206, + SDL_SCANCODE_KP_EXCLAM = 207, + SDL_SCANCODE_KP_MEMSTORE = 208, + SDL_SCANCODE_KP_MEMRECALL = 209, + SDL_SCANCODE_KP_MEMCLEAR = 210, + SDL_SCANCODE_KP_MEMADD = 211, + SDL_SCANCODE_KP_MEMSUBTRACT = 212, + SDL_SCANCODE_KP_MEMMULTIPLY = 213, + SDL_SCANCODE_KP_MEMDIVIDE = 214, + SDL_SCANCODE_KP_PLUSMINUS = 215, + SDL_SCANCODE_KP_CLEAR = 216, + SDL_SCANCODE_KP_CLEARENTRY = 217, + SDL_SCANCODE_KP_BINARY = 218, + SDL_SCANCODE_KP_OCTAL = 219, + SDL_SCANCODE_KP_DECIMAL = 220, + SDL_SCANCODE_KP_HEXADECIMAL = 221, + + SDL_SCANCODE_LCTRL = 224, + SDL_SCANCODE_LSHIFT = 225, + SDL_SCANCODE_LALT = 226, /**< alt, option */ + SDL_SCANCODE_LGUI = 227, /**< windows, command (apple), meta */ + SDL_SCANCODE_RCTRL = 228, + SDL_SCANCODE_RSHIFT = 229, + SDL_SCANCODE_RALT = 230, /**< alt gr, option */ + SDL_SCANCODE_RGUI = 231, /**< windows, command (apple), meta */ + + SDL_SCANCODE_MODE = 257, /**< I'm not sure if this is really not covered + * by any of the above, but since there's a + * special KMOD_MODE for it I'm adding it here + */ + + /* @} *//* Usage page 0x07 */ + + /** + * \name Usage page 0x0C + * + * These values are mapped from usage page 0x0C (USB consumer page). + * See https://usb.org/sites/default/files/hut1_2.pdf + * + * There are way more keys in the spec than we can represent in the + * current scancode range, so pick the ones that commonly come up in + * real world usage. + */ + /* @{ */ + + SDL_SCANCODE_AUDIONEXT = 258, + SDL_SCANCODE_AUDIOPREV = 259, + SDL_SCANCODE_AUDIOSTOP = 260, + SDL_SCANCODE_AUDIOPLAY = 261, + SDL_SCANCODE_AUDIOMUTE = 262, + SDL_SCANCODE_MEDIASELECT = 263, + SDL_SCANCODE_WWW = 264, /**< AL Internet Browser */ + SDL_SCANCODE_MAIL = 265, + SDL_SCANCODE_CALCULATOR = 266, /**< AL Calculator */ + SDL_SCANCODE_COMPUTER = 267, + SDL_SCANCODE_AC_SEARCH = 268, /**< AC Search */ + SDL_SCANCODE_AC_HOME = 269, /**< AC Home */ + SDL_SCANCODE_AC_BACK = 270, /**< AC Back */ + SDL_SCANCODE_AC_FORWARD = 271, /**< AC Forward */ + SDL_SCANCODE_AC_STOP = 272, /**< AC Stop */ + SDL_SCANCODE_AC_REFRESH = 273, /**< AC Refresh */ + SDL_SCANCODE_AC_BOOKMARKS = 274, /**< AC Bookmarks */ + + /* @} *//* Usage page 0x0C */ + + /** + * \name Walther keys + * + * These are values that Christian Walther added (for mac keyboard?). + */ + /* @{ */ + + SDL_SCANCODE_BRIGHTNESSDOWN = 275, + SDL_SCANCODE_BRIGHTNESSUP = 276, + SDL_SCANCODE_DISPLAYSWITCH = 277, /**< display mirroring/dual display + switch, video mode switch */ + SDL_SCANCODE_KBDILLUMTOGGLE = 278, + SDL_SCANCODE_KBDILLUMDOWN = 279, + SDL_SCANCODE_KBDILLUMUP = 280, + SDL_SCANCODE_EJECT = 281, + SDL_SCANCODE_SLEEP = 282, /**< SC System Sleep */ + + SDL_SCANCODE_APP1 = 283, + SDL_SCANCODE_APP2 = 284, + + /* @} *//* Walther keys */ + + /** + * \name Usage page 0x0C (additional media keys) + * + * These values are mapped from usage page 0x0C (USB consumer page). + */ + /* @{ */ + + SDL_SCANCODE_AUDIOREWIND = 285, + SDL_SCANCODE_AUDIOFASTFORWARD = 286, + + /* @} *//* Usage page 0x0C (additional media keys) */ + + /** + * \name Mobile keys + * + * These are values that are often used on mobile phones. + */ + /* @{ */ + + SDL_SCANCODE_SOFTLEFT = 287, /**< Usually situated below the display on phones and + used as a multi-function feature key for selecting + a software defined function shown on the bottom left + of the display. */ + SDL_SCANCODE_SOFTRIGHT = 288, /**< Usually situated below the display on phones and + used as a multi-function feature key for selecting + a software defined function shown on the bottom right + of the display. */ + SDL_SCANCODE_CALL = 289, /**< Used for accepting phone calls. */ + SDL_SCANCODE_ENDCALL = 290, /**< Used for rejecting phone calls. */ + + /* @} *//* Mobile keys */ + + /* Add any other keys here. */ + + SDL_NUM_SCANCODES = 512 /**< not a key, just marks the number of scancodes + for array bounds */ +} SDL_Scancode; + +#endif /* SDL_scancode_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_sensor.h b/lib/windows/include/SDL2/SDL_sensor.h new file mode 100644 index 0000000..d4b1c51 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_sensor.h @@ -0,0 +1,329 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategorySensor + * + * Include file for SDL sensor event handling + */ + +#ifndef SDL_sensor_h_ +#define SDL_sensor_h_ + +#include "SDL_stdinc.h" +#include "SDL_error.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +/* *INDENT-OFF* */ +extern "C" { +/* *INDENT-ON* */ +#endif + +/** + * \brief SDL_sensor.h + * + * In order to use these functions, SDL_Init() must have been called + * with the SDL_INIT_SENSOR flag. This causes SDL to scan the system + * for sensors, and load appropriate drivers. + */ + +struct _SDL_Sensor; +typedef struct _SDL_Sensor SDL_Sensor; + +/** + * This is a unique ID for a sensor for the time it is connected to the + * system, and is never reused for the lifetime of the application. + * + * The ID value starts at 0 and increments from there. The value -1 is an + * invalid ID. + */ +typedef Sint32 SDL_SensorID; + +/** + * The different sensors defined by SDL. + * + * Additional sensors may be available, using platform dependent semantics. + * + * Here are the additional Android sensors: + * + * https://developer.android.com/reference/android/hardware/SensorEvent.html#values + * + * Accelerometer sensor notes: + * + * The accelerometer returns the current acceleration in SI meters per second + * squared. This measurement includes the force of gravity, so a device at + * rest will have an value of SDL_STANDARD_GRAVITY away from the center of the + * earth, which is a positive Y value. + * + * - `values[0]`: Acceleration on the x axis + * - `values[1]`: Acceleration on the y axis + * - `values[2]`: Acceleration on the z axis + * + * For phones and tablets held in natural orientation and game controllers + * held in front of you, the axes are defined as follows: + * + * - -X ... +X : left ... right + * - -Y ... +Y : bottom ... top + * - -Z ... +Z : farther ... closer + * + * The accelerometer axis data is not changed when the device is rotated. + * + * Gyroscope sensor notes: + * + * The gyroscope returns the current rate of rotation in radians per second. + * The rotation is positive in the counter-clockwise direction. That is, an + * observer looking from a positive location on one of the axes would see + * positive rotation on that axis when it appeared to be rotating + * counter-clockwise. + * + * - `values[0]`: Angular speed around the x axis (pitch) + * - `values[1]`: Angular speed around the y axis (yaw) + * - `values[2]`: Angular speed around the z axis (roll) + * + * For phones and tablets held in natural orientation and game controllers + * held in front of you, the axes are defined as follows: + * + * - -X ... +X : left ... right + * - -Y ... +Y : bottom ... top + * - -Z ... +Z : farther ... closer + * + * The gyroscope axis data is not changed when the device is rotated. + * + * \sa SDL_GetDisplayOrientation + */ +typedef enum SDL_SensorType +{ + SDL_SENSOR_INVALID = -1, /**< Returned for an invalid sensor */ + SDL_SENSOR_UNKNOWN, /**< Unknown sensor type */ + SDL_SENSOR_ACCEL, /**< Accelerometer */ + SDL_SENSOR_GYRO, /**< Gyroscope */ + SDL_SENSOR_ACCEL_L, /**< Accelerometer for left Joy-Con controller and Wii nunchuk */ + SDL_SENSOR_GYRO_L, /**< Gyroscope for left Joy-Con controller */ + SDL_SENSOR_ACCEL_R, /**< Accelerometer for right Joy-Con controller */ + SDL_SENSOR_GYRO_R /**< Gyroscope for right Joy-Con controller */ +} SDL_SensorType; + +/** + * A constant to represent standard gravity for accelerometer sensors. + * + * The accelerometer returns the current acceleration in SI meters per second + * squared. This measurement includes the force of gravity, so a device at + * rest will have an value of SDL_STANDARD_GRAVITY away from the center of the + * earth, which is a positive Y value. + */ +#define SDL_STANDARD_GRAVITY 9.80665f + +/* Function prototypes */ + +/** + * Locking for multi-threaded access to the sensor API + * + * If you are using the sensor API or handling events from multiple threads + * you should use these locking functions to protect access to the sensors. + * + * In particular, you are guaranteed that the sensor list won't change, so the + * API functions that take a sensor index will be valid, and sensor events + * will not be delivered. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC void SDLCALL SDL_LockSensors(void); +extern DECLSPEC void SDLCALL SDL_UnlockSensors(void); + +/** + * Count the number of sensors attached to the system right now. + * + * \returns the number of sensors detected. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC int SDLCALL SDL_NumSensors(void); + +/** + * Get the implementation dependent name of a sensor. + * + * \param device_index The sensor to obtain name from. + * \returns the sensor name, or NULL if `device_index` is out of range. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC const char *SDLCALL SDL_SensorGetDeviceName(int device_index); + +/** + * Get the type of a sensor. + * + * \param device_index The sensor to get the type from. + * \returns the SDL_SensorType, or `SDL_SENSOR_INVALID` if `device_index` is + * out of range. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC SDL_SensorType SDLCALL SDL_SensorGetDeviceType(int device_index); + +/** + * Get the platform dependent type of a sensor. + * + * \param device_index The sensor to check. + * \returns the sensor platform dependent type, or -1 if `device_index` is out + * of range. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC int SDLCALL SDL_SensorGetDeviceNonPortableType(int device_index); + +/** + * Get the instance ID of a sensor. + * + * \param device_index The sensor to get instance id from. + * \returns the sensor instance ID, or -1 if `device_index` is out of range. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC SDL_SensorID SDLCALL SDL_SensorGetDeviceInstanceID(int device_index); + +/** + * Open a sensor for use. + * + * \param device_index The sensor to open. + * \returns an SDL_Sensor sensor object, or NULL if an error occurred. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC SDL_Sensor *SDLCALL SDL_SensorOpen(int device_index); + +/** + * Return the SDL_Sensor associated with an instance id. + * + * \param instance_id The sensor from instance id. + * \returns an SDL_Sensor object. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC SDL_Sensor *SDLCALL SDL_SensorFromInstanceID(SDL_SensorID instance_id); + +/** + * Get the implementation dependent name of a sensor + * + * \param sensor The SDL_Sensor object. + * \returns the sensor name, or NULL if `sensor` is NULL. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC const char *SDLCALL SDL_SensorGetName(SDL_Sensor *sensor); + +/** + * Get the type of a sensor. + * + * \param sensor The SDL_Sensor object to inspect. + * \returns the SDL_SensorType type, or `SDL_SENSOR_INVALID` if `sensor` is + * NULL. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC SDL_SensorType SDLCALL SDL_SensorGetType(SDL_Sensor *sensor); + +/** + * Get the platform dependent type of a sensor. + * + * \param sensor The SDL_Sensor object to inspect. + * \returns the sensor platform dependent type, or -1 if `sensor` is NULL. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC int SDLCALL SDL_SensorGetNonPortableType(SDL_Sensor *sensor); + +/** + * Get the instance ID of a sensor. + * + * \param sensor The SDL_Sensor object to inspect. + * \returns the sensor instance ID, or -1 if `sensor` is NULL. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC SDL_SensorID SDLCALL SDL_SensorGetInstanceID(SDL_Sensor *sensor); + +/** + * Get the current state of an opened sensor. + * + * The number of values and interpretation of the data is sensor dependent. + * + * \param sensor The SDL_Sensor object to query. + * \param data A pointer filled with the current sensor state. + * \param num_values The number of values to write to data. + * \returns 0 or -1 if an error occurred. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC int SDLCALL SDL_SensorGetData(SDL_Sensor *sensor, float *data, int num_values); + +/** + * Get the current state of an opened sensor with the timestamp of the last + * update. + * + * The number of values and interpretation of the data is sensor dependent. + * + * \param sensor The SDL_Sensor object to query. + * \param timestamp A pointer filled with the timestamp in microseconds of the + * current sensor reading if available, or 0 if not. + * \param data A pointer filled with the current sensor state. + * \param num_values The number of values to write to data. + * \returns 0 or -1 if an error occurred. + * + * \since This function is available since SDL 2.26.0. + */ +extern DECLSPEC int SDLCALL SDL_SensorGetDataWithTimestamp(SDL_Sensor *sensor, Uint64 *timestamp, float *data, int num_values); + +/** + * Close a sensor previously opened with SDL_SensorOpen(). + * + * \param sensor The SDL_Sensor object to close. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC void SDLCALL SDL_SensorClose(SDL_Sensor *sensor); + +/** + * Update the current state of the open sensors. + * + * This is called automatically by the event loop if sensor events are + * enabled. + * + * This needs to be called from the thread that initialized the sensor + * subsystem. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC void SDLCALL SDL_SensorUpdate(void); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +/* *INDENT-OFF* */ +} +/* *INDENT-ON* */ +#endif +#include "close_code.h" + +#endif /* SDL_sensor_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_shape.h b/lib/windows/include/SDL2/SDL_shape.h new file mode 100644 index 0000000..d356084 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_shape.h @@ -0,0 +1,155 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_shape_h_ +#define SDL_shape_h_ + +#include "SDL_stdinc.h" +#include "SDL_pixels.h" +#include "SDL_rect.h" +#include "SDL_surface.h" +#include "SDL_video.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** \file SDL_shape.h + * + * Header file for the shaped window API. + */ + +#define SDL_NONSHAPEABLE_WINDOW -1 +#define SDL_INVALID_SHAPE_ARGUMENT -2 +#define SDL_WINDOW_LACKS_SHAPE -3 + +/** + * Create a window that can be shaped with the specified position, dimensions, + * and flags. + * + * \param title The title of the window, in UTF-8 encoding. + * \param x The x position of the window, SDL_WINDOWPOS_CENTERED, or + * SDL_WINDOWPOS_UNDEFINED. + * \param y The y position of the window, SDL_WINDOWPOS_CENTERED, or + * SDL_WINDOWPOS_UNDEFINED. + * \param w The width of the window. + * \param h The height of the window. + * \param flags The flags for the window, a mask of SDL_WINDOW_BORDERLESS with + * any of the following: SDL_WINDOW_OPENGL, + * SDL_WINDOW_INPUT_GRABBED, SDL_WINDOW_HIDDEN, + * SDL_WINDOW_RESIZABLE, SDL_WINDOW_MAXIMIZED, + * SDL_WINDOW_MINIMIZED, SDL_WINDOW_BORDERLESS is always set, and + * SDL_WINDOW_FULLSCREEN is always unset. + * \return the window created, or NULL if window creation failed. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_DestroyWindow + */ +extern DECLSPEC SDL_Window * SDLCALL SDL_CreateShapedWindow(const char *title,unsigned int x,unsigned int y,unsigned int w,unsigned int h,Uint32 flags); + +/** + * Return whether the given window is a shaped window. + * + * \param window The window to query for being shaped. + * \return SDL_TRUE if the window is a window that can be shaped, SDL_FALSE if + * the window is unshaped or NULL. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateShapedWindow + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IsShapedWindow(const SDL_Window *window); + +/** \brief An enum denoting the specific type of contents present in an SDL_WindowShapeParams union. */ +typedef enum { + /** \brief The default mode, a binarized alpha cutoff of 1. */ + ShapeModeDefault, + /** \brief A binarized alpha cutoff with a given integer value. */ + ShapeModeBinarizeAlpha, + /** \brief A binarized alpha cutoff with a given integer value, but with the opposite comparison. */ + ShapeModeReverseBinarizeAlpha, + /** \brief A color key is applied. */ + ShapeModeColorKey +} WindowShapeMode; + +#define SDL_SHAPEMODEALPHA(mode) (mode == ShapeModeDefault || mode == ShapeModeBinarizeAlpha || mode == ShapeModeReverseBinarizeAlpha) + +/** \brief A union containing parameters for shaped windows. */ +typedef union { + /** \brief A cutoff alpha value for binarization of the window shape's alpha channel. */ + Uint8 binarizationCutoff; + SDL_Color colorKey; +} SDL_WindowShapeParams; + +/** \brief A struct that tags the SDL_WindowShapeParams union with an enum describing the type of its contents. */ +typedef struct SDL_WindowShapeMode { + /** \brief The mode of these window-shape parameters. */ + WindowShapeMode mode; + /** \brief Window-shape parameters. */ + SDL_WindowShapeParams parameters; +} SDL_WindowShapeMode; + +/** + * Set the shape and parameters of a shaped window. + * + * \param window The shaped window whose parameters should be set. + * \param shape A surface encoding the desired shape for the window. + * \param shape_mode The parameters to set for the shaped window. + * \return 0 on success, SDL_INVALID_SHAPE_ARGUMENT on an invalid shape + * argument, or SDL_NONSHAPEABLE_WINDOW if the SDL_Window given does + * not reference a valid shaped window. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_WindowShapeMode + * \sa SDL_GetShapedWindowMode + */ +extern DECLSPEC int SDLCALL SDL_SetWindowShape(SDL_Window *window,SDL_Surface *shape,SDL_WindowShapeMode *shape_mode); + +/** + * Get the shape parameters of a shaped window. + * + * \param window The shaped window whose parameters should be retrieved. + * \param shape_mode An empty shape-mode structure to fill, or NULL to check + * whether the window has a shape. + * \return 0 if the window has a shape and, provided shape_mode was not NULL, + * shape_mode has been filled with the mode data, + * SDL_NONSHAPEABLE_WINDOW if the SDL_Window given is not a shaped + * window, or SDL_WINDOW_LACKS_SHAPE if the SDL_Window given is a + * shapeable window currently lacking a shape. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_WindowShapeMode + * \sa SDL_SetWindowShape + */ +extern DECLSPEC int SDLCALL SDL_GetShapedWindowMode(SDL_Window *window,SDL_WindowShapeMode *shape_mode); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_shape_h_ */ diff --git a/lib/windows/include/SDL2/SDL_stdinc.h b/lib/windows/include/SDL2/SDL_stdinc.h new file mode 100644 index 0000000..1854698 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_stdinc.h @@ -0,0 +1,873 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* WIKI CATEGORY: StdInc */ + +/** + * # CategoryStdInc + * + * This is a general header that includes C language support. + */ + +#ifndef SDL_stdinc_h_ +#define SDL_stdinc_h_ + +#include "SDL_config.h" + +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_STDIO_H +#include +#endif +#if defined(STDC_HEADERS) +# include +# include +# include +#else +# if defined(HAVE_STDLIB_H) +# include +# elif defined(HAVE_MALLOC_H) +# include +# endif +# if defined(HAVE_STDDEF_H) +# include +# endif +# if defined(HAVE_STDARG_H) +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H) +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_WCHAR_H +# include +#endif +#if defined(HAVE_INTTYPES_H) +# include +#elif defined(HAVE_STDINT_H) +# include +#endif +#ifdef HAVE_CTYPE_H +# include +#endif +#ifdef HAVE_MATH_H +# if defined(_MSC_VER) +/* Defining _USE_MATH_DEFINES is required to get M_PI to be defined on + Visual Studio. See http://msdn.microsoft.com/en-us/library/4hwaceh6.aspx + for more information. +*/ +# ifndef _USE_MATH_DEFINES +# define _USE_MATH_DEFINES +# endif +# endif +# include +#endif +#ifdef HAVE_FLOAT_H +# include +#endif +#if defined(HAVE_ALLOCA) && !defined(alloca) +# if defined(HAVE_ALLOCA_H) +# include +# elif defined(__GNUC__) +# define alloca __builtin_alloca +# elif defined(_MSC_VER) +# include +# define alloca _alloca +# elif defined(__WATCOMC__) +# include +# elif defined(__BORLANDC__) +# include +# elif defined(__DMC__) +# include +# elif defined(__AIX__) +#pragma alloca +# elif defined(__MRC__) +void *alloca(unsigned); +# else +void *alloca(size_t); +# endif +#endif + +#ifdef SIZE_MAX +# define SDL_SIZE_MAX SIZE_MAX +#else +# define SDL_SIZE_MAX ((size_t) -1) +#endif + +/** + * Check if the compiler supports a given builtin. + * Supported by virtually all clang versions and recent gcc. Use this + * instead of checking the clang version if possible. + */ +#ifdef __has_builtin +#define _SDL_HAS_BUILTIN(x) __has_builtin(x) +#else +#define _SDL_HAS_BUILTIN(x) 0 +#endif + +/** + * The number of elements in an array. + */ +#define SDL_arraysize(array) (sizeof(array)/sizeof(array[0])) +#define SDL_TABLESIZE(table) SDL_arraysize(table) + +/** + * Macro useful for building other macros with strings in them + * + * e.g: + * + * ```c + * #define LOG_ERROR(X) OutputDebugString(SDL_STRINGIFY_ARG(__FUNCTION__) ": " X "\n") + * ``` + */ +#define SDL_STRINGIFY_ARG(arg) #arg + +/** + * \name Cast operators + * + * Use proper C++ casts when compiled as C++ to be compatible with the option + * -Wold-style-cast of GCC (and -Werror=old-style-cast in GCC 4.2 and above). + */ +/* @{ */ +#ifdef __cplusplus +#define SDL_reinterpret_cast(type, expression) reinterpret_cast(expression) +#define SDL_static_cast(type, expression) static_cast(expression) +#define SDL_const_cast(type, expression) const_cast(expression) +#else +#define SDL_reinterpret_cast(type, expression) ((type)(expression)) +#define SDL_static_cast(type, expression) ((type)(expression)) +#define SDL_const_cast(type, expression) ((type)(expression)) +#endif +/* @} *//* Cast operators */ + +/* Define a four character code as a Uint32 */ +#define SDL_FOURCC(A, B, C, D) \ + ((SDL_static_cast(Uint32, SDL_static_cast(Uint8, (A))) << 0) | \ + (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (B))) << 8) | \ + (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (C))) << 16) | \ + (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (D))) << 24)) + +/** + * \name Basic data types + */ +/* @{ */ + +#ifdef __CC_ARM +/* ARM's compiler throws warnings if we use an enum: like "SDL_bool x = a < b;" */ +#define SDL_FALSE 0 +#define SDL_TRUE 1 +typedef int SDL_bool; +#else +typedef enum +{ + SDL_FALSE = 0, + SDL_TRUE = 1 +} SDL_bool; +#endif + +/** + * A signed 8-bit integer type. + */ +typedef int8_t Sint8; +#define SDL_MAX_SINT8 ((Sint8)0x7F) /* 127 */ +#define SDL_MIN_SINT8 ((Sint8)(~0x7F)) /* -128 */ + +/** + * An unsigned 8-bit integer type. + */ +typedef uint8_t Uint8; +#define SDL_MAX_UINT8 ((Uint8)0xFF) /* 255 */ +#define SDL_MIN_UINT8 ((Uint8)0x00) /* 0 */ + +/** + * A signed 16-bit integer type. + */ +typedef int16_t Sint16; +#define SDL_MAX_SINT16 ((Sint16)0x7FFF) /* 32767 */ +#define SDL_MIN_SINT16 ((Sint16)(~0x7FFF)) /* -32768 */ + +/** + * An unsigned 16-bit integer type. + */ +typedef uint16_t Uint16; +#define SDL_MAX_UINT16 ((Uint16)0xFFFF) /* 65535 */ +#define SDL_MIN_UINT16 ((Uint16)0x0000) /* 0 */ + +/** + * A signed 32-bit integer type. + */ +typedef int32_t Sint32; +#define SDL_MAX_SINT32 ((Sint32)0x7FFFFFFF) /* 2147483647 */ +#define SDL_MIN_SINT32 ((Sint32)(~0x7FFFFFFF)) /* -2147483648 */ + +/** + * An unsigned 32-bit integer type. + */ +typedef uint32_t Uint32; +#define SDL_MAX_UINT32 ((Uint32)0xFFFFFFFFu) /* 4294967295 */ +#define SDL_MIN_UINT32 ((Uint32)0x00000000) /* 0 */ + +/** + * A signed 64-bit integer type. + */ +typedef int64_t Sint64; +#define SDL_MAX_SINT64 ((Sint64)0x7FFFFFFFFFFFFFFFll) /* 9223372036854775807 */ +#define SDL_MIN_SINT64 ((Sint64)(~0x7FFFFFFFFFFFFFFFll)) /* -9223372036854775808 */ + +/** + * An unsigned 64-bit integer type. + */ +typedef uint64_t Uint64; +#define SDL_MAX_UINT64 ((Uint64)0xFFFFFFFFFFFFFFFFull) /* 18446744073709551615 */ +#define SDL_MIN_UINT64 ((Uint64)(0x0000000000000000ull)) /* 0 */ + + +/* @} *//* Basic data types */ + +/** + * \name Floating-point constants + */ +/* @{ */ + +#ifdef FLT_EPSILON +#define SDL_FLT_EPSILON FLT_EPSILON +#else +#define SDL_FLT_EPSILON 1.1920928955078125e-07F /* 0x0.000002p0 */ +#endif + +/* @} *//* Floating-point constants */ + +/* Make sure we have macros for printing width-based integers. + * should define these but this is not true all platforms. + * (for example win32) */ +#ifndef SDL_PRIs64 +#if defined(__WIN32__) || defined(__GDK__) +#define SDL_PRIs64 "I64d" +#elif defined(PRId64) +#define SDL_PRIs64 PRId64 +#elif defined(__LP64__) && !defined(__APPLE__) && !defined(__EMSCRIPTEN__) +#define SDL_PRIs64 "ld" +#else +#define SDL_PRIs64 "lld" +#endif +#endif +#ifndef SDL_PRIu64 +#if defined(__WIN32__) || defined(__GDK__) +#define SDL_PRIu64 "I64u" +#elif defined(PRIu64) +#define SDL_PRIu64 PRIu64 +#elif defined(__LP64__) && !defined(__APPLE__) +#define SDL_PRIu64 "lu" +#else +#define SDL_PRIu64 "llu" +#endif +#endif +#ifndef SDL_PRIx64 +#if defined(__WIN32__) || defined(__GDK__) +#define SDL_PRIx64 "I64x" +#elif defined(PRIx64) +#define SDL_PRIx64 PRIx64 +#elif defined(__LP64__) && !defined(__APPLE__) +#define SDL_PRIx64 "lx" +#else +#define SDL_PRIx64 "llx" +#endif +#endif +#ifndef SDL_PRIX64 +#if defined(__WIN32__) || defined(__GDK__) +#define SDL_PRIX64 "I64X" +#elif defined(PRIX64) +#define SDL_PRIX64 PRIX64 +#elif defined(__LP64__) && !defined(__APPLE__) +#define SDL_PRIX64 "lX" +#else +#define SDL_PRIX64 "llX" +#endif +#endif +#ifndef SDL_PRIs32 +#ifdef PRId32 +#define SDL_PRIs32 PRId32 +#else +#define SDL_PRIs32 "d" +#endif +#endif +#ifndef SDL_PRIu32 +#ifdef PRIu32 +#define SDL_PRIu32 PRIu32 +#else +#define SDL_PRIu32 "u" +#endif +#endif +#ifndef SDL_PRIx32 +#ifdef PRIx32 +#define SDL_PRIx32 PRIx32 +#else +#define SDL_PRIx32 "x" +#endif +#endif +#ifndef SDL_PRIX32 +#ifdef PRIX32 +#define SDL_PRIX32 PRIX32 +#else +#define SDL_PRIX32 "X" +#endif +#endif + +/* Annotations to help code analysis tools */ +#ifdef SDL_DISABLE_ANALYZE_MACROS +#define SDL_IN_BYTECAP(x) +#define SDL_INOUT_Z_CAP(x) +#define SDL_OUT_Z_CAP(x) +#define SDL_OUT_CAP(x) +#define SDL_OUT_BYTECAP(x) +#define SDL_OUT_Z_BYTECAP(x) +#define SDL_PRINTF_FORMAT_STRING +#define SDL_SCANF_FORMAT_STRING +#define SDL_PRINTF_VARARG_FUNC( fmtargnumber ) +#define SDL_PRINTF_VARARG_FUNCV( fmtargnumber ) +#define SDL_SCANF_VARARG_FUNC( fmtargnumber ) +#define SDL_SCANF_VARARG_FUNCV( fmtargnumber ) +#else +#if defined(_MSC_VER) && (_MSC_VER >= 1600) /* VS 2010 and above */ +#include + +#define SDL_IN_BYTECAP(x) _In_bytecount_(x) +#define SDL_INOUT_Z_CAP(x) _Inout_z_cap_(x) +#define SDL_OUT_Z_CAP(x) _Out_z_cap_(x) +#define SDL_OUT_CAP(x) _Out_cap_(x) +#define SDL_OUT_BYTECAP(x) _Out_bytecap_(x) +#define SDL_OUT_Z_BYTECAP(x) _Out_z_bytecap_(x) + +#define SDL_PRINTF_FORMAT_STRING _Printf_format_string_ +#define SDL_SCANF_FORMAT_STRING _Scanf_format_string_impl_ +#else +#define SDL_IN_BYTECAP(x) +#define SDL_INOUT_Z_CAP(x) +#define SDL_OUT_Z_CAP(x) +#define SDL_OUT_CAP(x) +#define SDL_OUT_BYTECAP(x) +#define SDL_OUT_Z_BYTECAP(x) +#define SDL_PRINTF_FORMAT_STRING +#define SDL_SCANF_FORMAT_STRING +#endif +#if defined(__GNUC__) +#define SDL_PRINTF_VARARG_FUNC( fmtargnumber ) __attribute__ (( format( __printf__, fmtargnumber, fmtargnumber+1 ))) +#define SDL_PRINTF_VARARG_FUNCV( fmtargnumber ) __attribute__(( format( __printf__, fmtargnumber, 0 ))) +#define SDL_SCANF_VARARG_FUNC( fmtargnumber ) __attribute__ (( format( __scanf__, fmtargnumber, fmtargnumber+1 ))) +#define SDL_SCANF_VARARG_FUNCV( fmtargnumber ) __attribute__(( format( __scanf__, fmtargnumber, 0 ))) +#else +#define SDL_PRINTF_VARARG_FUNC( fmtargnumber ) +#define SDL_PRINTF_VARARG_FUNCV( fmtargnumber ) +#define SDL_SCANF_VARARG_FUNC( fmtargnumber ) +#define SDL_SCANF_VARARG_FUNCV( fmtargnumber ) +#endif +#endif /* SDL_DISABLE_ANALYZE_MACROS */ + +#ifndef SDL_COMPILE_TIME_ASSERT +#if defined(__cplusplus) +/* Keep C++ case alone: Some versions of gcc will define __STDC_VERSION__ even when compiling in C++ mode. */ +#if (__cplusplus >= 201103L) +#define SDL_COMPILE_TIME_ASSERT(name, x) static_assert(x, #x) +#endif +#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 202311L) +#define SDL_COMPILE_TIME_ASSERT(name, x) static_assert(x, #x) +#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) +#define SDL_COMPILE_TIME_ASSERT(name, x) _Static_assert(x, #x) +#endif +#endif /* !SDL_COMPILE_TIME_ASSERT */ + +#ifndef SDL_COMPILE_TIME_ASSERT +/* universal, but may trigger -Wunused-local-typedefs */ +#define SDL_COMPILE_TIME_ASSERT(name, x) \ + typedef int SDL_compile_time_assert_ ## name[(x) * 2 - 1] +#endif + +/** \cond */ +#ifndef DOXYGEN_SHOULD_IGNORE_THIS +SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1); +SDL_COMPILE_TIME_ASSERT(sint8, sizeof(Sint8) == 1); +SDL_COMPILE_TIME_ASSERT(uint16, sizeof(Uint16) == 2); +SDL_COMPILE_TIME_ASSERT(sint16, sizeof(Sint16) == 2); +SDL_COMPILE_TIME_ASSERT(uint32, sizeof(Uint32) == 4); +SDL_COMPILE_TIME_ASSERT(sint32, sizeof(Sint32) == 4); +SDL_COMPILE_TIME_ASSERT(uint64, sizeof(Uint64) == 8); +SDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8); +#endif /* DOXYGEN_SHOULD_IGNORE_THIS */ +/** \endcond */ + +/* Check to make sure enums are the size of ints, for structure packing. + For both Watcom C/C++ and Borland C/C++ the compiler option that makes + enums having the size of an int must be enabled. + This is "-b" for Borland C/C++ and "-ei" for Watcom C/C++ (v11). +*/ + +/** \cond */ +#ifndef DOXYGEN_SHOULD_IGNORE_THIS +#if !defined(__VITA__) && !defined(__3DS__) +/* TODO: include/SDL_stdinc.h:422: error: size of array 'SDL_dummy_enum' is negative */ +typedef enum +{ + DUMMY_ENUM_VALUE +} SDL_DUMMY_ENUM; + +SDL_COMPILE_TIME_ASSERT(enum, sizeof(SDL_DUMMY_ENUM) == sizeof(int)); +#endif +#endif /* DOXYGEN_SHOULD_IGNORE_THIS */ +/** \endcond */ + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef HAVE_ALLOCA +#define SDL_stack_alloc(type, count) (type*)alloca(sizeof(type)*(count)) +#define SDL_stack_free(data) +#else +#define SDL_stack_alloc(type, count) (type*)SDL_malloc(sizeof(type)*(count)) +#define SDL_stack_free(data) SDL_free(data) +#endif + +extern DECLSPEC void *SDLCALL SDL_malloc(size_t size); +extern DECLSPEC void *SDLCALL SDL_calloc(size_t nmemb, size_t size); +extern DECLSPEC void *SDLCALL SDL_realloc(void *mem, size_t size); +extern DECLSPEC void SDLCALL SDL_free(void *mem); + +typedef void *(SDLCALL *SDL_malloc_func)(size_t size); +typedef void *(SDLCALL *SDL_calloc_func)(size_t nmemb, size_t size); +typedef void *(SDLCALL *SDL_realloc_func)(void *mem, size_t size); +typedef void (SDLCALL *SDL_free_func)(void *mem); + +/** + * Get the original set of SDL memory functions + * + * \since This function is available since SDL 2.24.0. + */ +extern DECLSPEC void SDLCALL SDL_GetOriginalMemoryFunctions(SDL_malloc_func *malloc_func, + SDL_calloc_func *calloc_func, + SDL_realloc_func *realloc_func, + SDL_free_func *free_func); + +/** + * Get the current set of SDL memory functions + * + * \since This function is available since SDL 2.0.7. + */ +extern DECLSPEC void SDLCALL SDL_GetMemoryFunctions(SDL_malloc_func *malloc_func, + SDL_calloc_func *calloc_func, + SDL_realloc_func *realloc_func, + SDL_free_func *free_func); + +/** + * Replace SDL's memory allocation functions with a custom set + * + * \since This function is available since SDL 2.0.7. + */ +extern DECLSPEC int SDLCALL SDL_SetMemoryFunctions(SDL_malloc_func malloc_func, + SDL_calloc_func calloc_func, + SDL_realloc_func realloc_func, + SDL_free_func free_func); + +/** + * Get the number of outstanding (unfreed) allocations + * + * \since This function is available since SDL 2.0.7. + */ +extern DECLSPEC int SDLCALL SDL_GetNumAllocations(void); + +extern DECLSPEC char *SDLCALL SDL_getenv(const char *name); +extern DECLSPEC int SDLCALL SDL_setenv(const char *name, const char *value, int overwrite); + +typedef int (SDLCALL *SDL_CompareCallback)(const void *, const void *); +extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size, SDL_CompareCallback compare); +extern DECLSPEC void * SDLCALL SDL_bsearch(const void *key, const void *base, size_t nmemb, size_t size, SDL_CompareCallback compare); + +extern DECLSPEC int SDLCALL SDL_abs(int x); + +/* NOTE: these double-evaluate their arguments, so you should never have side effects in the parameters */ +#define SDL_min(x, y) (((x) < (y)) ? (x) : (y)) +#define SDL_max(x, y) (((x) > (y)) ? (x) : (y)) +#define SDL_clamp(x, a, b) (((x) < (a)) ? (a) : (((x) > (b)) ? (b) : (x))) + +extern DECLSPEC int SDLCALL SDL_isalpha(int x); +extern DECLSPEC int SDLCALL SDL_isalnum(int x); +extern DECLSPEC int SDLCALL SDL_isblank(int x); +extern DECLSPEC int SDLCALL SDL_iscntrl(int x); +extern DECLSPEC int SDLCALL SDL_isdigit(int x); +extern DECLSPEC int SDLCALL SDL_isxdigit(int x); +extern DECLSPEC int SDLCALL SDL_ispunct(int x); +extern DECLSPEC int SDLCALL SDL_isspace(int x); +extern DECLSPEC int SDLCALL SDL_isupper(int x); +extern DECLSPEC int SDLCALL SDL_islower(int x); +extern DECLSPEC int SDLCALL SDL_isprint(int x); +extern DECLSPEC int SDLCALL SDL_isgraph(int x); +extern DECLSPEC int SDLCALL SDL_toupper(int x); +extern DECLSPEC int SDLCALL SDL_tolower(int x); + +extern DECLSPEC Uint16 SDLCALL SDL_crc16(Uint16 crc, const void *data, size_t len); +extern DECLSPEC Uint32 SDLCALL SDL_crc32(Uint32 crc, const void *data, size_t len); + +extern DECLSPEC void *SDLCALL SDL_memset(SDL_OUT_BYTECAP(len) void *dst, int c, size_t len); + +/* Some safe(r) macros for zero'ing structures... */ +#define SDL_zero(x) SDL_memset(&(x), 0, sizeof((x))) +#define SDL_zerop(x) SDL_memset((x), 0, sizeof(*(x))) +#define SDL_zeroa(x) SDL_memset((x), 0, sizeof((x))) + +#define SDL_copyp(dst, src) \ + { SDL_COMPILE_TIME_ASSERT(SDL_copyp, sizeof (*(dst)) == sizeof (*(src))); } \ + SDL_memcpy((dst), (src), sizeof (*(src))) + + +/* Note that memset() is a byte assignment and this is a 32-bit assignment, so they're not directly equivalent. */ +SDL_FORCE_INLINE void SDL_memset4(void *dst, Uint32 val, size_t dwords) +{ +#if defined(__GNUC__) && defined(__i386__) + int u0, u1, u2; + __asm__ __volatile__ ( + "cld \n\t" + "rep ; stosl \n\t" + : "=&D" (u0), "=&a" (u1), "=&c" (u2) + : "0" (dst), "1" (val), "2" (SDL_static_cast(Uint32, dwords)) + : "memory" + ); +#else + size_t _n = (dwords + 3) / 4; + Uint32 *_p = SDL_static_cast(Uint32 *, dst); + Uint32 _val = (val); + if (dwords == 0) { + return; + } + switch (dwords % 4) { + case 0: do { *_p++ = _val; SDL_FALLTHROUGH; + case 3: *_p++ = _val; SDL_FALLTHROUGH; + case 2: *_p++ = _val; SDL_FALLTHROUGH; + case 1: *_p++ = _val; + } while ( --_n ); + } +#endif +} + +extern DECLSPEC void *SDLCALL SDL_memcpy(SDL_OUT_BYTECAP(len) void *dst, SDL_IN_BYTECAP(len) const void *src, size_t len); + +extern DECLSPEC void *SDLCALL SDL_memmove(SDL_OUT_BYTECAP(len) void *dst, SDL_IN_BYTECAP(len) const void *src, size_t len); +extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, size_t len); + +extern DECLSPEC size_t SDLCALL SDL_wcslen(const wchar_t *wstr); +extern DECLSPEC size_t SDLCALL SDL_wcslcpy(SDL_OUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen); +extern DECLSPEC size_t SDLCALL SDL_wcslcat(SDL_INOUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen); +extern DECLSPEC wchar_t *SDLCALL SDL_wcsdup(const wchar_t *wstr); +extern DECLSPEC wchar_t *SDLCALL SDL_wcsstr(const wchar_t *haystack, const wchar_t *needle); + +extern DECLSPEC int SDLCALL SDL_wcscmp(const wchar_t *str1, const wchar_t *str2); +extern DECLSPEC int SDLCALL SDL_wcsncmp(const wchar_t *str1, const wchar_t *str2, size_t maxlen); +extern DECLSPEC int SDLCALL SDL_wcscasecmp(const wchar_t *str1, const wchar_t *str2); +extern DECLSPEC int SDLCALL SDL_wcsncasecmp(const wchar_t *str1, const wchar_t *str2, size_t len); + +extern DECLSPEC size_t SDLCALL SDL_strlen(const char *str); +extern DECLSPEC size_t SDLCALL SDL_strlcpy(SDL_OUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen); +extern DECLSPEC size_t SDLCALL SDL_utf8strlcpy(SDL_OUT_Z_CAP(dst_bytes) char *dst, const char *src, size_t dst_bytes); +extern DECLSPEC size_t SDLCALL SDL_strlcat(SDL_INOUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen); +extern DECLSPEC char *SDLCALL SDL_strdup(const char *str); +extern DECLSPEC char *SDLCALL SDL_strrev(char *str); +extern DECLSPEC char *SDLCALL SDL_strupr(char *str); +extern DECLSPEC char *SDLCALL SDL_strlwr(char *str); +extern DECLSPEC char *SDLCALL SDL_strchr(const char *str, int c); +extern DECLSPEC char *SDLCALL SDL_strrchr(const char *str, int c); +extern DECLSPEC char *SDLCALL SDL_strstr(const char *haystack, const char *needle); +extern DECLSPEC char *SDLCALL SDL_strcasestr(const char *haystack, const char *needle); +extern DECLSPEC char *SDLCALL SDL_strtokr(char *s1, const char *s2, char **saveptr); +extern DECLSPEC size_t SDLCALL SDL_utf8strlen(const char *str); +extern DECLSPEC size_t SDLCALL SDL_utf8strnlen(const char *str, size_t bytes); + +extern DECLSPEC char *SDLCALL SDL_itoa(int value, char *str, int radix); +extern DECLSPEC char *SDLCALL SDL_uitoa(unsigned int value, char *str, int radix); +extern DECLSPEC char *SDLCALL SDL_ltoa(long value, char *str, int radix); +extern DECLSPEC char *SDLCALL SDL_ultoa(unsigned long value, char *str, int radix); +extern DECLSPEC char *SDLCALL SDL_lltoa(Sint64 value, char *str, int radix); +extern DECLSPEC char *SDLCALL SDL_ulltoa(Uint64 value, char *str, int radix); + +extern DECLSPEC int SDLCALL SDL_atoi(const char *str); +extern DECLSPEC double SDLCALL SDL_atof(const char *str); +extern DECLSPEC long SDLCALL SDL_strtol(const char *str, char **endp, int base); +extern DECLSPEC unsigned long SDLCALL SDL_strtoul(const char *str, char **endp, int base); +extern DECLSPEC Sint64 SDLCALL SDL_strtoll(const char *str, char **endp, int base); +extern DECLSPEC Uint64 SDLCALL SDL_strtoull(const char *str, char **endp, int base); +extern DECLSPEC double SDLCALL SDL_strtod(const char *str, char **endp); + +extern DECLSPEC int SDLCALL SDL_strcmp(const char *str1, const char *str2); +extern DECLSPEC int SDLCALL SDL_strncmp(const char *str1, const char *str2, size_t maxlen); +extern DECLSPEC int SDLCALL SDL_strcasecmp(const char *str1, const char *str2); +extern DECLSPEC int SDLCALL SDL_strncasecmp(const char *str1, const char *str2, size_t len); + +extern DECLSPEC int SDLCALL SDL_sscanf(const char *text, SDL_SCANF_FORMAT_STRING const char *fmt, ...) SDL_SCANF_VARARG_FUNC(2); +extern DECLSPEC int SDLCALL SDL_vsscanf(const char *text, SDL_SCANF_FORMAT_STRING const char *fmt, va_list ap) SDL_SCANF_VARARG_FUNCV(2); +extern DECLSPEC int SDLCALL SDL_snprintf(SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, SDL_PRINTF_FORMAT_STRING const char *fmt, ... ) SDL_PRINTF_VARARG_FUNC(3); +extern DECLSPEC int SDLCALL SDL_vsnprintf(SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, SDL_PRINTF_FORMAT_STRING const char *fmt, va_list ap) SDL_PRINTF_VARARG_FUNCV(3); +extern DECLSPEC int SDLCALL SDL_asprintf(char **strp, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); +extern DECLSPEC int SDLCALL SDL_vasprintf(char **strp, SDL_PRINTF_FORMAT_STRING const char *fmt, va_list ap) SDL_PRINTF_VARARG_FUNCV(2); + +#ifndef HAVE_M_PI +#ifndef M_PI +#define M_PI 3.14159265358979323846264338327950288 /**< pi */ +#endif +#endif + +/** + * Use this function to compute arc cosine of `x`. + * + * The definition of `y = acos(x)` is `x = cos(y)`. + * + * Domain: `-1 <= x <= 1` + * + * Range: `0 <= y <= Pi` + * + * \param x floating point value, in radians. + * \returns arc cosine of `x`. + * + * \since This function is available since SDL 2.0.2. + */ +extern DECLSPEC double SDLCALL SDL_acos(double x); +extern DECLSPEC float SDLCALL SDL_acosf(float x); +extern DECLSPEC double SDLCALL SDL_asin(double x); +extern DECLSPEC float SDLCALL SDL_asinf(float x); +extern DECLSPEC double SDLCALL SDL_atan(double x); +extern DECLSPEC float SDLCALL SDL_atanf(float x); +extern DECLSPEC double SDLCALL SDL_atan2(double y, double x); +extern DECLSPEC float SDLCALL SDL_atan2f(float y, float x); +extern DECLSPEC double SDLCALL SDL_ceil(double x); +extern DECLSPEC float SDLCALL SDL_ceilf(float x); +extern DECLSPEC double SDLCALL SDL_copysign(double x, double y); +extern DECLSPEC float SDLCALL SDL_copysignf(float x, float y); +extern DECLSPEC double SDLCALL SDL_cos(double x); +extern DECLSPEC float SDLCALL SDL_cosf(float x); +extern DECLSPEC double SDLCALL SDL_exp(double x); +extern DECLSPEC float SDLCALL SDL_expf(float x); +extern DECLSPEC double SDLCALL SDL_fabs(double x); +extern DECLSPEC float SDLCALL SDL_fabsf(float x); +extern DECLSPEC double SDLCALL SDL_floor(double x); +extern DECLSPEC float SDLCALL SDL_floorf(float x); +extern DECLSPEC double SDLCALL SDL_trunc(double x); +extern DECLSPEC float SDLCALL SDL_truncf(float x); +extern DECLSPEC double SDLCALL SDL_fmod(double x, double y); +extern DECLSPEC float SDLCALL SDL_fmodf(float x, float y); +extern DECLSPEC double SDLCALL SDL_log(double x); +extern DECLSPEC float SDLCALL SDL_logf(float x); +extern DECLSPEC double SDLCALL SDL_log10(double x); +extern DECLSPEC float SDLCALL SDL_log10f(float x); +extern DECLSPEC double SDLCALL SDL_pow(double x, double y); +extern DECLSPEC float SDLCALL SDL_powf(float x, float y); +extern DECLSPEC double SDLCALL SDL_round(double x); +extern DECLSPEC float SDLCALL SDL_roundf(float x); +extern DECLSPEC long SDLCALL SDL_lround(double x); +extern DECLSPEC long SDLCALL SDL_lroundf(float x); +extern DECLSPEC double SDLCALL SDL_scalbn(double x, int n); +extern DECLSPEC float SDLCALL SDL_scalbnf(float x, int n); +extern DECLSPEC double SDLCALL SDL_sin(double x); +extern DECLSPEC float SDLCALL SDL_sinf(float x); +extern DECLSPEC double SDLCALL SDL_sqrt(double x); +extern DECLSPEC float SDLCALL SDL_sqrtf(float x); +extern DECLSPEC double SDLCALL SDL_tan(double x); +extern DECLSPEC float SDLCALL SDL_tanf(float x); + +/* The SDL implementation of iconv() returns these error codes */ +#define SDL_ICONV_ERROR (size_t)-1 +#define SDL_ICONV_E2BIG (size_t)-2 +#define SDL_ICONV_EILSEQ (size_t)-3 +#define SDL_ICONV_EINVAL (size_t)-4 + +/* SDL_iconv_* are now always real symbols/types, not macros or inlined. */ +typedef struct _SDL_iconv_t *SDL_iconv_t; +extern DECLSPEC SDL_iconv_t SDLCALL SDL_iconv_open(const char *tocode, + const char *fromcode); +extern DECLSPEC int SDLCALL SDL_iconv_close(SDL_iconv_t cd); +extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf, + size_t * inbytesleft, char **outbuf, + size_t * outbytesleft); + +/** + * This function converts a buffer or string between encodings in one pass, + * returning a string that must be freed with SDL_free() or NULL on error. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC char *SDLCALL SDL_iconv_string(const char *tocode, + const char *fromcode, + const char *inbuf, + size_t inbytesleft); + +/* Some helper macros for common cases... */ +#define SDL_iconv_utf8_locale(S) SDL_iconv_string("", "UTF-8", S, SDL_strlen(S)+1) +#define SDL_iconv_utf8_ucs2(S) (Uint16 *)SDL_iconv_string("UCS-2", "UTF-8", S, SDL_strlen(S)+1) +#define SDL_iconv_utf8_ucs4(S) (Uint32 *)SDL_iconv_string("UCS-4", "UTF-8", S, SDL_strlen(S)+1) +#define SDL_iconv_wchar_utf8(S) SDL_iconv_string("UTF-8", "WCHAR_T", (char *)S, (SDL_wcslen(S)+1)*sizeof(wchar_t)) + +/* force builds using Clang's static analysis tools to use literal C runtime + here, since there are possibly tests that are ineffective otherwise. */ +#if defined(__clang_analyzer__) && !defined(SDL_DISABLE_ANALYZE_MACROS) + +/* The analyzer knows about strlcpy even when the system doesn't provide it */ +#ifndef HAVE_STRLCPY +size_t strlcpy(char* dst, const char* src, size_t size); +#endif + +/* The analyzer knows about strlcat even when the system doesn't provide it */ +#ifndef HAVE_STRLCAT +size_t strlcat(char* dst, const char* src, size_t size); +#endif + +#ifndef HAVE_WCSLCPY +size_t wcslcpy(wchar_t *dst, const wchar_t *src, size_t size); +#endif + +#ifndef HAVE_WCSLCAT +size_t wcslcat(wchar_t *dst, const wchar_t *src, size_t size); +#endif + +#ifndef _WIN32 +/* strdup is not ANSI but POSIX, and its prototype might be hidden... */ +/* not for windows: might conflict with string.h where strdup may have + * dllimport attribute: https://github.com/libsdl-org/SDL/issues/12948 */ +char *strdup(const char *str); +#endif + +/* Starting LLVM 16, the analyser errors out if these functions do not have + their prototype defined (clang-diagnostic-implicit-function-declaration) */ +#include +#include +#include + +#define SDL_malloc malloc +#define SDL_calloc calloc +#define SDL_realloc realloc +#define SDL_free free +#define SDL_memset memset +#define SDL_memcpy memcpy +#define SDL_memmove memmove +#define SDL_memcmp memcmp +#define SDL_strlcpy strlcpy +#define SDL_strlcat strlcat +#define SDL_strlen strlen +#define SDL_wcslen wcslen +#define SDL_wcslcpy wcslcpy +#define SDL_wcslcat wcslcat +#define SDL_strdup strdup +#define SDL_wcsdup wcsdup +#define SDL_strchr strchr +#define SDL_strrchr strrchr +#define SDL_strstr strstr +#define SDL_wcsstr wcsstr +#define SDL_strtokr strtok_r +#define SDL_strcmp strcmp +#define SDL_wcscmp wcscmp +#define SDL_strncmp strncmp +#define SDL_wcsncmp wcsncmp +#define SDL_strcasecmp strcasecmp +#define SDL_strncasecmp strncasecmp +#define SDL_sscanf sscanf +#define SDL_vsscanf vsscanf +#define SDL_snprintf snprintf +#define SDL_vsnprintf vsnprintf +#endif + +SDL_FORCE_INLINE void *SDL_memcpy4(SDL_OUT_BYTECAP(dwords*4) void *dst, SDL_IN_BYTECAP(dwords*4) const void *src, size_t dwords) +{ + return SDL_memcpy(dst, src, dwords * 4); +} + +/** + * If a * b would overflow, return -1. + * + * Otherwise store a * b via ret and return 0. + * + * \since This function is available since SDL 2.24.0. + */ +SDL_FORCE_INLINE int SDL_size_mul_overflow (size_t a, + size_t b, + size_t *ret) +{ + if (a != 0 && b > SDL_SIZE_MAX / a) { + return -1; + } + *ret = a * b; + return 0; +} + +#if _SDL_HAS_BUILTIN(__builtin_mul_overflow) +/* This needs to be wrapped in an inline rather than being a direct #define, + * because __builtin_mul_overflow() is type-generic, but we want to be + * consistent about interpreting a and b as size_t. */ +SDL_FORCE_INLINE int _SDL_size_mul_overflow_builtin (size_t a, + size_t b, + size_t *ret) +{ + return __builtin_mul_overflow(a, b, ret) == 0 ? 0 : -1; +} +#define SDL_size_mul_overflow(a, b, ret) (_SDL_size_mul_overflow_builtin(a, b, ret)) +#endif + +/** + * If a + b would overflow, return -1. + * + * Otherwise store a + b via ret and return 0. + * + * \since This function is available since SDL 2.24.0. + */ +SDL_FORCE_INLINE int SDL_size_add_overflow (size_t a, + size_t b, + size_t *ret) +{ + if (b > SDL_SIZE_MAX - a) { + return -1; + } + *ret = a + b; + return 0; +} + +#if _SDL_HAS_BUILTIN(__builtin_add_overflow) +/* This needs to be wrapped in an inline rather than being a direct #define, + * the same as the call to __builtin_mul_overflow() above. */ +SDL_FORCE_INLINE int _SDL_size_add_overflow_builtin (size_t a, + size_t b, + size_t *ret) +{ + return __builtin_add_overflow(a, b, ret) == 0 ? 0 : -1; +} +#define SDL_size_add_overflow(a, b, ret) (_SDL_size_add_overflow_builtin(a, b, ret)) +#endif + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_stdinc_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_surface.h b/lib/windows/include/SDL2/SDL_surface.h new file mode 100644 index 0000000..42ea591 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_surface.h @@ -0,0 +1,1001 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategorySurface + * + * Header file for SDL_Surface definition and management functions. + */ + +#ifndef SDL_surface_h_ +#define SDL_surface_h_ + +#include "SDL_stdinc.h" +#include "SDL_pixels.h" +#include "SDL_rect.h" +#include "SDL_blendmode.h" +#include "SDL_rwops.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \name Surface flags + * + * These are the currently supported flags for the SDL_Surface. + * + * \internal + * Used internally (read-only). + */ +/* @{ */ +#define SDL_SWSURFACE 0 /**< Just here for compatibility */ +#define SDL_PREALLOC 0x00000001 /**< Surface uses preallocated memory */ +#define SDL_RLEACCEL 0x00000002 /**< Surface is RLE encoded */ +#define SDL_DONTFREE 0x00000004 /**< Surface is referenced internally */ +#define SDL_SIMD_ALIGNED 0x00000008 /**< Surface uses aligned memory */ +/* @} *//* Surface flags */ + +/** + * Evaluates to true if the surface needs to be locked before access. + */ +#define SDL_MUSTLOCK(S) (((S)->flags & SDL_RLEACCEL) != 0) + +typedef struct SDL_BlitMap SDL_BlitMap; /* this is an opaque type. */ + +/** + * A collection of pixels used in software blitting. + * + * This structure should be treated as read-only, except for `pixels`, which, + * if not NULL, contains the raw pixel data for the surface. + */ +typedef struct SDL_Surface +{ + Uint32 flags; /**< Read-only */ + SDL_PixelFormat *format; /**< Read-only */ + int w, h; /**< Read-only */ + int pitch; /**< Read-only */ + void *pixels; /**< Read-write */ + + /** Application data associated with the surface */ + void *userdata; /**< Read-write */ + + /** information needed for surfaces requiring locks */ + int locked; /**< Read-only */ + + /** list of BlitMap that hold a reference to this surface */ + void *list_blitmap; /**< Private */ + + /** clipping information */ + SDL_Rect clip_rect; /**< Read-only */ + + /** info for fast blit mapping to other surfaces */ + SDL_BlitMap *map; /**< Private */ + + /** Reference count -- used when freeing surface */ + int refcount; /**< Read-mostly */ +} SDL_Surface; + +/** + * The type of function used for surface blitting functions. + */ +typedef int (SDLCALL *SDL_blit) (struct SDL_Surface * src, SDL_Rect * srcrect, + struct SDL_Surface * dst, SDL_Rect * dstrect); + +/** + * The formula used for converting between YUV and RGB + */ +typedef enum SDL_YUV_CONVERSION_MODE +{ + SDL_YUV_CONVERSION_JPEG, /**< Full range JPEG */ + SDL_YUV_CONVERSION_BT601, /**< BT.601 (the default) */ + SDL_YUV_CONVERSION_BT709, /**< BT.709 */ + SDL_YUV_CONVERSION_AUTOMATIC /**< BT.601 for SD content, BT.709 for HD content */ +} SDL_YUV_CONVERSION_MODE; + +/** + * Allocate a new RGB surface. + * + * If `depth` is 4 or 8 bits, an empty palette is allocated for the surface. + * If `depth` is greater than 8 bits, the pixel format is set using the + * [RGBA]mask parameters. + * + * The [RGBA]mask parameters are the bitmasks used to extract that color from + * a pixel. For instance, `Rmask` being 0xFF000000 means the red data is + * stored in the most significant byte. Using zeros for the RGB masks sets a + * default value, based on the depth. For example: + * + * ```c++ + * SDL_CreateRGBSurface(0,w,h,32,0,0,0,0); + * ``` + * + * However, using zero for the Amask results in an Amask of 0. + * + * By default surfaces with an alpha mask are set up for blending as with: + * + * ```c++ + * SDL_SetSurfaceBlendMode(surface, SDL_BLENDMODE_BLEND) + * ``` + * + * You can change this by calling SDL_SetSurfaceBlendMode() and selecting a + * different `blendMode`. + * + * \param flags the flags are unused and should be set to 0. + * \param width the width of the surface. + * \param height the height of the surface. + * \param depth the depth of the surface in bits. + * \param Rmask the red mask for the pixels. + * \param Gmask the green mask for the pixels. + * \param Bmask the blue mask for the pixels. + * \param Amask the alpha mask for the pixels. + * \returns the new SDL_Surface structure that is created or NULL if it fails; + * call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateRGBSurfaceFrom + * \sa SDL_CreateRGBSurfaceWithFormat + * \sa SDL_FreeSurface + */ +extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurface + (Uint32 flags, int width, int height, int depth, + Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask); + + +/* !!! FIXME for 2.1: why does this ask for depth? Format provides that. */ + +/** + * Allocate a new RGB surface with a specific pixel format. + * + * This function operates mostly like SDL_CreateRGBSurface(), except instead + * of providing pixel color masks, you provide it with a predefined format + * from SDL_PixelFormatEnum. + * + * \param flags the flags are unused and should be set to 0. + * \param width the width of the surface. + * \param height the height of the surface. + * \param depth the depth of the surface in bits. + * \param format the SDL_PixelFormatEnum for the new surface's pixel format. + * \returns the new SDL_Surface structure that is created or NULL if it fails; + * call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.5. + * + * \sa SDL_CreateRGBSurface + * \sa SDL_CreateRGBSurfaceFrom + * \sa SDL_FreeSurface + */ +extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceWithFormat + (Uint32 flags, int width, int height, int depth, Uint32 format); + +/** + * Allocate a new RGB surface with existing pixel data. + * + * This function operates mostly like SDL_CreateRGBSurface(), except it does + * not allocate memory for the pixel data, instead the caller provides an + * existing buffer of data for the surface to use. + * + * No copy is made of the pixel data. Pixel data is not managed automatically; + * you must free the surface before you free the pixel data. + * + * \param pixels a pointer to existing pixel data. + * \param width the width of the surface. + * \param height the height of the surface. + * \param depth the depth of the surface in bits. + * \param pitch the pitch of the surface in bytes. + * \param Rmask the red mask for the pixels. + * \param Gmask the green mask for the pixels. + * \param Bmask the blue mask for the pixels. + * \param Amask the alpha mask for the pixels. + * \returns the new SDL_Surface structure that is created or NULL if it fails; + * call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateRGBSurface + * \sa SDL_CreateRGBSurfaceWithFormat + * \sa SDL_CreateRGBSurfaceWithFormatFrom + * \sa SDL_FreeSurface + */ +extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceFrom(void *pixels, + int width, + int height, + int depth, + int pitch, + Uint32 Rmask, + Uint32 Gmask, + Uint32 Bmask, + Uint32 Amask); + +/* !!! FIXME for 2.1: why does this ask for depth? Format provides that. */ + +/** + * Allocate a new RGB surface with with a specific pixel format and existing + * pixel data. + * + * This function operates mostly like SDL_CreateRGBSurfaceFrom(), except + * instead of providing pixel color masks, you provide it with a predefined + * format from SDL_PixelFormatEnum. + * + * No copy is made of the pixel data. Pixel data is not managed automatically; + * you must free the surface before you free the pixel data. + * + * \param pixels a pointer to existing pixel data. + * \param width the width of the surface. + * \param height the height of the surface. + * \param depth the depth of the surface in bits. + * \param pitch the pitch of the surface in bytes. + * \param format the SDL_PixelFormatEnum for the new surface's pixel format. + * \returns the new SDL_Surface structure that is created or NULL if it fails; + * call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.5. + * + * \sa SDL_CreateRGBSurfaceFrom + * \sa SDL_CreateRGBSurfaceWithFormat + * \sa SDL_FreeSurface + */ +extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceWithFormatFrom + (void *pixels, int width, int height, int depth, int pitch, Uint32 format); + +/** + * Free an RGB surface. + * + * It is safe to pass NULL to this function. + * + * \param surface the SDL_Surface to free. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateRGBSurface + * \sa SDL_CreateRGBSurfaceFrom + * \sa SDL_LoadBMP + * \sa SDL_LoadBMP_RW + */ +extern DECLSPEC void SDLCALL SDL_FreeSurface(SDL_Surface * surface); + +/** + * Set the palette used by a surface. + * + * A single palette can be shared with many surfaces. + * + * \param surface the SDL_Surface structure to update. + * \param palette the SDL_Palette structure to use. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC int SDLCALL SDL_SetSurfacePalette(SDL_Surface * surface, + SDL_Palette * palette); + +/** + * Set up a surface for directly accessing the pixels. + * + * Between calls to SDL_LockSurface() / SDL_UnlockSurface(), you can write to + * and read from `surface->pixels`, using the pixel format stored in + * `surface->format`. Once you are done accessing the surface, you should use + * SDL_UnlockSurface() to release it. + * + * Not all surfaces require locking. If `SDL_MUSTLOCK(surface)` evaluates to + * 0, then you can read and write to the surface at any time, and the pixel + * format of the surface will not change. + * + * \param surface the SDL_Surface structure to be locked. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_MUSTLOCK + * \sa SDL_UnlockSurface + */ +extern DECLSPEC int SDLCALL SDL_LockSurface(SDL_Surface * surface); + +/** + * Release a surface after directly accessing the pixels. + * + * \param surface the SDL_Surface structure to be unlocked. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LockSurface + */ +extern DECLSPEC void SDLCALL SDL_UnlockSurface(SDL_Surface * surface); + +/** + * Load a BMP image from a seekable SDL data stream. + * + * The new surface should be freed with SDL_FreeSurface(). Not doing so will + * result in a memory leak. + * + * src is an open SDL_RWops buffer, typically loaded with SDL_RWFromFile. + * Alternatively, you might also use the macro SDL_LoadBMP to load a bitmap + * from a file, convert it to an SDL_Surface and then close the file. + * + * \param src the data stream for the surface. + * \param freesrc non-zero to close the stream after being read. + * \returns a pointer to a new SDL_Surface structure or NULL if there was an + * error; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_FreeSurface + * \sa SDL_RWFromFile + * \sa SDL_LoadBMP + * \sa SDL_SaveBMP_RW + */ +extern DECLSPEC SDL_Surface *SDLCALL SDL_LoadBMP_RW(SDL_RWops * src, + int freesrc); + +/** + * Load a surface from a file. + * + * Convenience macro. + */ +#define SDL_LoadBMP(file) SDL_LoadBMP_RW(SDL_RWFromFile(file, "rb"), 1) + +/** + * Save a surface to a seekable SDL data stream in BMP format. + * + * Surfaces with a 24-bit, 32-bit and paletted 8-bit format get saved in the + * BMP directly. Other RGB formats with 8-bit or higher get converted to a + * 24-bit surface or, if they have an alpha mask or a colorkey, to a 32-bit + * surface before they are saved. YUV and paletted 1-bit and 4-bit formats are + * not supported. + * + * \param surface the SDL_Surface structure containing the image to be saved. + * \param dst a data stream to save to. + * \param freedst non-zero to close the stream after being written. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_LoadBMP_RW + * \sa SDL_SaveBMP + */ +extern DECLSPEC int SDLCALL SDL_SaveBMP_RW + (SDL_Surface * surface, SDL_RWops * dst, int freedst); + +/** + * Save a surface to a file. + * + * Convenience macro. + */ +#define SDL_SaveBMP(surface, file) \ + SDL_SaveBMP_RW(surface, SDL_RWFromFile(file, "wb"), 1) + +/** + * Set the RLE acceleration hint for a surface. + * + * If RLE is enabled, color key and alpha blending blits are much faster, but + * the surface must be locked before directly accessing the pixels. + * + * \param surface the SDL_Surface structure to optimize. + * \param flag 0 to disable, non-zero to enable RLE acceleration. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_BlitSurface + * \sa SDL_LockSurface + * \sa SDL_UnlockSurface + */ +extern DECLSPEC int SDLCALL SDL_SetSurfaceRLE(SDL_Surface * surface, + int flag); + +/** + * Returns whether the surface is RLE enabled + * + * It is safe to pass a NULL `surface` here; it will return SDL_FALSE. + * + * \param surface the SDL_Surface structure to query. + * \returns SDL_TRUE if the surface is RLE enabled, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.14. + * + * \sa SDL_SetSurfaceRLE + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasSurfaceRLE(SDL_Surface * surface); + +/** + * Set the color key (transparent pixel) in a surface. + * + * The color key defines a pixel value that will be treated as transparent in + * a blit. For example, one can use this to specify that cyan pixels should be + * considered transparent, and therefore not rendered. + * + * It is a pixel of the format used by the surface, as generated by + * SDL_MapRGB(). + * + * RLE acceleration can substantially speed up blitting of images with large + * horizontal runs of transparent pixels. See SDL_SetSurfaceRLE() for details. + * + * \param surface the SDL_Surface structure to update. + * \param flag SDL_TRUE to enable color key, SDL_FALSE to disable color key. + * \param key the transparent pixel. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_BlitSurface + * \sa SDL_GetColorKey + */ +extern DECLSPEC int SDLCALL SDL_SetColorKey(SDL_Surface * surface, + int flag, Uint32 key); + +/** + * Returns whether the surface has a color key + * + * It is safe to pass a NULL `surface` here; it will return SDL_FALSE. + * + * \param surface the SDL_Surface structure to query. + * \return SDL_TRUE if the surface has a color key, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.9. + * + * \sa SDL_SetColorKey + * \sa SDL_GetColorKey + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasColorKey(SDL_Surface * surface); + +/** + * Get the color key (transparent pixel) for a surface. + * + * The color key is a pixel of the format used by the surface, as generated by + * SDL_MapRGB(). + * + * If the surface doesn't have color key enabled this function returns -1. + * + * \param surface the SDL_Surface structure to query. + * \param key a pointer filled in with the transparent pixel. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_BlitSurface + * \sa SDL_SetColorKey + */ +extern DECLSPEC int SDLCALL SDL_GetColorKey(SDL_Surface * surface, + Uint32 * key); + +/** + * Set an additional color value multiplied into blit operations. + * + * When this surface is blitted, during the blit operation each source color + * channel is modulated by the appropriate color value according to the + * following formula: + * + * `srcC = srcC * (color / 255)` + * + * \param surface the SDL_Surface structure to update. + * \param r the red color value multiplied into blit operations. + * \param g the green color value multiplied into blit operations. + * \param b the blue color value multiplied into blit operations. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetSurfaceColorMod + * \sa SDL_SetSurfaceAlphaMod + */ +extern DECLSPEC int SDLCALL SDL_SetSurfaceColorMod(SDL_Surface * surface, + Uint8 r, Uint8 g, Uint8 b); + + +/** + * Get the additional color value multiplied into blit operations. + * + * \param surface the SDL_Surface structure to query. + * \param r a pointer filled in with the current red color value. + * \param g a pointer filled in with the current green color value. + * \param b a pointer filled in with the current blue color value. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetSurfaceAlphaMod + * \sa SDL_SetSurfaceColorMod + */ +extern DECLSPEC int SDLCALL SDL_GetSurfaceColorMod(SDL_Surface * surface, + Uint8 * r, Uint8 * g, + Uint8 * b); + +/** + * Set an additional alpha value used in blit operations. + * + * When this surface is blitted, during the blit operation the source alpha + * value is modulated by this alpha value according to the following formula: + * + * `srcA = srcA * (alpha / 255)` + * + * \param surface the SDL_Surface structure to update. + * \param alpha the alpha value multiplied into blit operations. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetSurfaceAlphaMod + * \sa SDL_SetSurfaceColorMod + */ +extern DECLSPEC int SDLCALL SDL_SetSurfaceAlphaMod(SDL_Surface * surface, + Uint8 alpha); + +/** + * Get the additional alpha value used in blit operations. + * + * \param surface the SDL_Surface structure to query. + * \param alpha a pointer filled in with the current alpha value. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetSurfaceColorMod + * \sa SDL_SetSurfaceAlphaMod + */ +extern DECLSPEC int SDLCALL SDL_GetSurfaceAlphaMod(SDL_Surface * surface, + Uint8 * alpha); + +/** + * Set the blend mode used for blit operations. + * + * To copy a surface to another surface (or texture) without blending with the + * existing data, the blendmode of the SOURCE surface should be set to + * `SDL_BLENDMODE_NONE`. + * + * \param surface the SDL_Surface structure to update. + * \param blendMode the SDL_BlendMode to use for blit blending. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetSurfaceBlendMode + */ +extern DECLSPEC int SDLCALL SDL_SetSurfaceBlendMode(SDL_Surface * surface, + SDL_BlendMode blendMode); + +/** + * Get the blend mode used for blit operations. + * + * \param surface the SDL_Surface structure to query. + * \param blendMode a pointer filled in with the current SDL_BlendMode. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetSurfaceBlendMode + */ +extern DECLSPEC int SDLCALL SDL_GetSurfaceBlendMode(SDL_Surface * surface, + SDL_BlendMode *blendMode); + +/** + * Set the clipping rectangle for a surface. + * + * When `surface` is the destination of a blit, only the area within the clip + * rectangle is drawn into. + * + * Note that blits are automatically clipped to the edges of the source and + * destination surfaces. + * + * \param surface the SDL_Surface structure to be clipped. + * \param rect the SDL_Rect structure representing the clipping rectangle, or + * NULL to disable clipping. + * \returns SDL_TRUE if the rectangle intersects the surface, otherwise + * SDL_FALSE and blits will be completely clipped. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_BlitSurface + * \sa SDL_GetClipRect + */ +extern DECLSPEC SDL_bool SDLCALL SDL_SetClipRect(SDL_Surface * surface, + const SDL_Rect * rect); + +/** + * Get the clipping rectangle for a surface. + * + * When `surface` is the destination of a blit, only the area within the clip + * rectangle is drawn into. + * + * \param surface the SDL_Surface structure representing the surface to be + * clipped. + * \param rect an SDL_Rect structure filled in with the clipping rectangle for + * the surface. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_BlitSurface + * \sa SDL_SetClipRect + */ +extern DECLSPEC void SDLCALL SDL_GetClipRect(SDL_Surface * surface, + SDL_Rect * rect); + +/* + * Creates a new surface identical to the existing surface. + * + * The returned surface should be freed with SDL_FreeSurface(). + * + * \param surface the surface to duplicate. + * \returns a copy of the surface, or NULL on failure; call SDL_GetError() for + * more information. + */ +extern DECLSPEC SDL_Surface *SDLCALL SDL_DuplicateSurface(SDL_Surface * surface); + +/** + * Copy an existing surface to a new surface of the specified format. + * + * This function is used to optimize images for faster *repeat* blitting. This + * is accomplished by converting the original and storing the result as a new + * surface. The new, optimized surface can then be used as the source for + * future blits, making them faster. + * + * \param src the existing SDL_Surface structure to convert. + * \param fmt the SDL_PixelFormat structure that the new surface is optimized + * for. + * \param flags the flags are unused and should be set to 0; this is a + * leftover from SDL 1.2's API. + * \returns the new SDL_Surface structure that is created or NULL if it fails; + * call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AllocFormat + * \sa SDL_ConvertSurfaceFormat + * \sa SDL_CreateRGBSurface + */ +extern DECLSPEC SDL_Surface *SDLCALL SDL_ConvertSurface + (SDL_Surface * src, const SDL_PixelFormat * fmt, Uint32 flags); + +/** + * Copy an existing surface to a new surface of the specified format enum. + * + * This function operates just like SDL_ConvertSurface(), but accepts an + * SDL_PixelFormatEnum value instead of an SDL_PixelFormat structure. As such, + * it might be easier to call but it doesn't have access to palette + * information for the destination surface, in case that would be important. + * + * \param src the existing SDL_Surface structure to convert. + * \param pixel_format the SDL_PixelFormatEnum that the new surface is + * optimized for. + * \param flags the flags are unused and should be set to 0; this is a + * leftover from SDL 1.2's API. + * \returns the new SDL_Surface structure that is created or NULL if it fails; + * call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AllocFormat + * \sa SDL_ConvertSurface + * \sa SDL_CreateRGBSurface + */ +extern DECLSPEC SDL_Surface *SDLCALL SDL_ConvertSurfaceFormat + (SDL_Surface * src, Uint32 pixel_format, Uint32 flags); + +/** + * Copy a block of pixels of one format to another format. + * + * \param width the width of the block to copy, in pixels. + * \param height the height of the block to copy, in pixels. + * \param src_format an SDL_PixelFormatEnum value of the `src` pixels format. + * \param src a pointer to the source pixels. + * \param src_pitch the pitch of the source pixels, in bytes. + * \param dst_format an SDL_PixelFormatEnum value of the `dst` pixels format. + * \param dst a pointer to be filled in with new pixel data. + * \param dst_pitch the pitch of the destination pixels, in bytes. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC int SDLCALL SDL_ConvertPixels(int width, int height, + Uint32 src_format, + const void * src, int src_pitch, + Uint32 dst_format, + void * dst, int dst_pitch); + +/** + * Premultiply the alpha on a block of pixels. + * + * This is safe to use with src == dst, but not for other overlapping areas. + * + * This function is currently only implemented for SDL_PIXELFORMAT_ARGB8888. + * + * \param width the width of the block to convert, in pixels. + * \param height the height of the block to convert, in pixels. + * \param src_format an SDL_PixelFormatEnum value of the `src` pixels format. + * \param src a pointer to the source pixels. + * \param src_pitch the pitch of the source pixels, in bytes. + * \param dst_format an SDL_PixelFormatEnum value of the `dst` pixels format. + * \param dst a pointer to be filled in with premultiplied pixel data. + * \param dst_pitch the pitch of the destination pixels, in bytes. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC int SDLCALL SDL_PremultiplyAlpha(int width, int height, + Uint32 src_format, + const void * src, int src_pitch, + Uint32 dst_format, + void * dst, int dst_pitch); + +/** + * Perform a fast fill of a rectangle with a specific color. + * + * `color` should be a pixel of the format used by the surface, and can be + * generated by SDL_MapRGB() or SDL_MapRGBA(). If the color value contains an + * alpha component then the destination is simply filled with that alpha + * information, no blending takes place. + * + * If there is a clip rectangle set on the destination (set via + * SDL_SetClipRect()), then this function will fill based on the intersection + * of the clip rectangle and `rect`. + * + * \param dst the SDL_Surface structure that is the drawing target. + * \param rect the SDL_Rect structure representing the rectangle to fill, or + * NULL to fill the entire surface. + * \param color the color to fill with. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_FillRects + */ +extern DECLSPEC int SDLCALL SDL_FillRect + (SDL_Surface * dst, const SDL_Rect * rect, Uint32 color); + +/** + * Perform a fast fill of a set of rectangles with a specific color. + * + * `color` should be a pixel of the format used by the surface, and can be + * generated by SDL_MapRGB() or SDL_MapRGBA(). If the color value contains an + * alpha component then the destination is simply filled with that alpha + * information, no blending takes place. + * + * If there is a clip rectangle set on the destination (set via + * SDL_SetClipRect()), then this function will fill based on the intersection + * of the clip rectangle and `rect`. + * + * \param dst the SDL_Surface structure that is the drawing target. + * \param rects an array of SDL_Rect representing the rectangles to fill. + * \param count the number of rectangles in the array. + * \param color the color to fill with. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_FillRect + */ +extern DECLSPEC int SDLCALL SDL_FillRects + (SDL_Surface * dst, const SDL_Rect * rects, int count, Uint32 color); + +/* !!! FIXME: merge this documentation with the wiki */ + +/** + * Performs a fast blit from the source surface to the destination surface. + * + * This assumes that the source and destination rectangles are the same size. + * If either `srcrect` or `dstrect` are NULL, the entire surface (`src` or + * `dst`) is copied. The final blit rectangle is saved in `dstrect` after + * all clipping is performed. + * + * The blit function should not be called on a locked surface. + * + * The blit semantics for surfaces with and without blending and colorkey are + * defined as follows: + * + * ``` + * RGBA->RGB: + * Source surface blend mode set to SDL_BLENDMODE_BLEND: + * alpha-blend (using the source alpha-channel and per-surface alpha) + * SDL_SRCCOLORKEY ignored. + * Source surface blend mode set to SDL_BLENDMODE_NONE: + * copy RGB. + * if SDL_SRCCOLORKEY set, only copy the pixels matching the + * RGB values of the source color key, ignoring alpha in the + * comparison. + * + * RGB->RGBA: + * Source surface blend mode set to SDL_BLENDMODE_BLEND: + * alpha-blend (using the source per-surface alpha) + * Source surface blend mode set to SDL_BLENDMODE_NONE: + * copy RGB, set destination alpha to source per-surface alpha value. + * both: + * if SDL_SRCCOLORKEY set, only copy the pixels matching the + * source color key. + * + * RGBA->RGBA: + * Source surface blend mode set to SDL_BLENDMODE_BLEND: + * alpha-blend (using the source alpha-channel and per-surface alpha) + * SDL_SRCCOLORKEY ignored. + * Source surface blend mode set to SDL_BLENDMODE_NONE: + * copy all of RGBA to the destination. + * if SDL_SRCCOLORKEY set, only copy the pixels matching the + * RGB values of the source color key, ignoring alpha in the + * comparison. + * + * RGB->RGB: + * Source surface blend mode set to SDL_BLENDMODE_BLEND: + * alpha-blend (using the source per-surface alpha) + * Source surface blend mode set to SDL_BLENDMODE_NONE: + * copy RGB. + * both: + * if SDL_SRCCOLORKEY set, only copy the pixels matching the + * source color key. + * ``` + * + * You should call SDL_BlitSurface() unless you know exactly how SDL blitting + * works internally and how to use the other blit functions. + * + * \returns 0 if the blit is successful, otherwise it returns -1. + */ +#define SDL_BlitSurface SDL_UpperBlit + +/** + * Perform a fast blit from the source surface to the destination surface. + * + * SDL_UpperBlit() has been replaced by SDL_BlitSurface(), which is merely a + * macro for this function with a less confusing name. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_BlitSurface + */ +extern DECLSPEC int SDLCALL SDL_UpperBlit + (SDL_Surface * src, const SDL_Rect * srcrect, + SDL_Surface * dst, SDL_Rect * dstrect); + +/** + * Perform low-level surface blitting only. + * + * This is a semi-private blit function and it performs low-level surface + * blitting, assuming the input rectangles have already been clipped. + * + * Unless you know what you're doing, you should be using SDL_BlitSurface() + * instead. + * + * \param src the SDL_Surface structure to be copied from. + * \param srcrect the SDL_Rect structure representing the rectangle to be + * copied, or NULL to copy the entire surface. + * \param dst the SDL_Surface structure that is the blit target. + * \param dstrect the SDL_Rect structure representing the rectangle that is + * copied into. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_BlitSurface + */ +extern DECLSPEC int SDLCALL SDL_LowerBlit + (SDL_Surface * src, SDL_Rect * srcrect, + SDL_Surface * dst, SDL_Rect * dstrect); + + +/** + * Perform a fast, low quality, stretch blit between two surfaces of the same + * format. + * + * Please use SDL_BlitScaled() instead. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC int SDLCALL SDL_SoftStretch(SDL_Surface * src, + const SDL_Rect * srcrect, + SDL_Surface * dst, + const SDL_Rect * dstrect); + +/** + * Perform bilinear scaling between two surfaces of the same format, 32BPP. + * + * \since This function is available since SDL 2.0.16. + */ +extern DECLSPEC int SDLCALL SDL_SoftStretchLinear(SDL_Surface * src, + const SDL_Rect * srcrect, + SDL_Surface * dst, + const SDL_Rect * dstrect); + + +/** + * Perform a scaled surface copy to a destination surface. + * + * SDL_UpperBlitScaled() has been replaced by SDL_BlitScaled(), which is + * merely a macro for this function with a less confusing name. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_BlitScaled + */ +extern DECLSPEC int SDLCALL SDL_UpperBlitScaled + (SDL_Surface * src, const SDL_Rect * srcrect, + SDL_Surface * dst, SDL_Rect * dstrect); + +#define SDL_BlitScaled SDL_UpperBlitScaled + + +/** + * Perform low-level surface scaled blitting only. + * + * This is a semi-private function and it performs low-level surface blitting, + * assuming the input rectangles have already been clipped. + * + * \param src the SDL_Surface structure to be copied from. + * \param srcrect the SDL_Rect structure representing the rectangle to be + * copied. + * \param dst the SDL_Surface structure that is the blit target. + * \param dstrect the SDL_Rect structure representing the rectangle that is + * copied into. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_BlitScaled + */ +extern DECLSPEC int SDLCALL SDL_LowerBlitScaled + (SDL_Surface * src, SDL_Rect * srcrect, + SDL_Surface * dst, SDL_Rect * dstrect); + +/** + * Set the YUV conversion mode + * + * \since This function is available since SDL 2.0.8. + */ +extern DECLSPEC void SDLCALL SDL_SetYUVConversionMode(SDL_YUV_CONVERSION_MODE mode); + +/** + * Get the YUV conversion mode + * + * \since This function is available since SDL 2.0.8. + */ +extern DECLSPEC SDL_YUV_CONVERSION_MODE SDLCALL SDL_GetYUVConversionMode(void); + +/** + * Get the YUV conversion mode, returning the correct mode for the resolution + * when the current conversion mode is SDL_YUV_CONVERSION_AUTOMATIC + * + * \since This function is available since SDL 2.0.8. + */ +extern DECLSPEC SDL_YUV_CONVERSION_MODE SDLCALL SDL_GetYUVConversionModeForResolution(int width, int height); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_surface_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_system.h b/lib/windows/include/SDL2/SDL_system.h new file mode 100644 index 0000000..2f7a236 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_system.h @@ -0,0 +1,642 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategorySystem + * + * Include file for platform specific SDL API functions + */ + +#ifndef SDL_system_h_ +#define SDL_system_h_ + +#include "SDL_stdinc.h" +#include "SDL_keyboard.h" +#include "SDL_render.h" +#include "SDL_video.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + + +/* Platform specific functions for Windows */ +#if defined(__WIN32__) || defined(__GDK__) + +typedef void (SDLCALL * SDL_WindowsMessageHook)(void *userdata, void *hWnd, unsigned int message, Uint64 wParam, Sint64 lParam); + +/** + * Set a callback for every Windows message, run before TranslateMessage(). + * + * \param callback The SDL_WindowsMessageHook function to call. + * \param userdata a pointer to pass to every iteration of `callback`. + * + * \since This function is available since SDL 2.0.4. + */ +extern DECLSPEC void SDLCALL SDL_SetWindowsMessageHook(SDL_WindowsMessageHook callback, void *userdata); + +#endif /* defined(__WIN32__) || defined(__GDK__) */ + +#if defined(__WIN32__) || defined(__WINGDK__) + +/** + * Get the D3D9 adapter index that matches the specified display index. + * + * The returned adapter index can be passed to `IDirect3D9::CreateDevice` and + * controls on which monitor a full screen application will appear. + * + * \param displayIndex the display index for which to get the D3D9 adapter + * index. + * \returns the D3D9 adapter index on success or a negative error code on + * failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.1. + */ +extern DECLSPEC int SDLCALL SDL_Direct3D9GetAdapterIndex( int displayIndex ); + +typedef struct IDirect3DDevice9 IDirect3DDevice9; + +/** + * Get the D3D9 device associated with a renderer. + * + * Once you are done using the device, you should release it to avoid a + * resource leak. + * + * \param renderer the renderer from which to get the associated D3D device. + * \returns the D3D9 device associated with given renderer or NULL if it is + * not a D3D9 renderer; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.1. + */ +extern DECLSPEC IDirect3DDevice9* SDLCALL SDL_RenderGetD3D9Device(SDL_Renderer * renderer); + +typedef struct ID3D11Device ID3D11Device; + +/** + * Get the D3D11 device associated with a renderer. + * + * Once you are done using the device, you should release it to avoid a + * resource leak. + * + * \param renderer the renderer from which to get the associated D3D11 device. + * \returns the D3D11 device associated with given renderer or NULL if it is + * not a D3D11 renderer; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.16. + */ +extern DECLSPEC ID3D11Device* SDLCALL SDL_RenderGetD3D11Device(SDL_Renderer * renderer); + +#endif /* defined(__WIN32__) || defined(__WINGDK__) */ + +#if defined(__WIN32__) || defined(__GDK__) + +typedef struct ID3D12Device ID3D12Device; + +/** + * Get the D3D12 device associated with a renderer. + * + * Once you are done using the device, you should release it to avoid a + * resource leak. + * + * \param renderer the renderer from which to get the associated D3D12 device. + * \returns the D3D12 device associated with given renderer or NULL if it is + * not a D3D12 renderer; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.24.0. + */ +extern DECLSPEC ID3D12Device* SDLCALL SDL_RenderGetD3D12Device(SDL_Renderer* renderer); + +#endif /* defined(__WIN32__) || defined(__GDK__) */ + +#if defined(__WIN32__) || defined(__WINGDK__) + +/** + * Get the DXGI Adapter and Output indices for the specified display index. + * + * The DXGI Adapter and Output indices can be passed to `EnumAdapters` and + * `EnumOutputs` respectively to get the objects required to create a DX10 or + * DX11 device and swap chain. + * + * Before SDL 2.0.4 this function did not return a value. Since SDL 2.0.4 it + * returns an SDL_bool. + * + * \param displayIndex the display index for which to get both indices. + * \param adapterIndex a pointer to be filled in with the adapter index. + * \param outputIndex a pointer to be filled in with the output index. + * \returns SDL_TRUE on success or SDL_FALSE on failure; call SDL_GetError() + * for more information. + * + * \since This function is available since SDL 2.0.2. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_DXGIGetOutputInfo( int displayIndex, int *adapterIndex, int *outputIndex ); + +#endif /* defined(__WIN32__) || defined(__WINGDK__) */ + +/* Platform specific functions for Linux */ +#ifdef __LINUX__ + +/** + * Sets the UNIX nice value for a thread. + * + * This uses setpriority() if possible, and RealtimeKit if available. + * + * \param threadID the Unix thread ID to change priority of. + * \param priority The new, Unix-specific, priority value. + * \returns 0 on success, or -1 on error. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC int SDLCALL SDL_LinuxSetThreadPriority(Sint64 threadID, int priority); + +/** + * Sets the priority (not nice level) and scheduling policy for a thread. + * + * This uses setpriority() if possible, and RealtimeKit if available. + * + * \param threadID The Unix thread ID to change priority of. + * \param sdlPriority The new SDL_ThreadPriority value. + * \param schedPolicy The new scheduling policy (SCHED_FIFO, SCHED_RR, + * SCHED_OTHER, etc...). + * \returns 0 on success, or -1 on error. + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC int SDLCALL SDL_LinuxSetThreadPriorityAndPolicy(Sint64 threadID, int sdlPriority, int schedPolicy); + +#endif /* __LINUX__ */ + +/* Platform specific functions for iOS */ +#ifdef __IPHONEOS__ + +typedef void (SDLCALL *SDL_iOSAnimationCallback)(void*); + +/** + * Use this function to set the animation callback on Apple iOS. + * + * The function prototype for `callback` is: + * + * ```c + * void callback(void* callbackParam); + * ``` + * + * Where its parameter, `callbackParam`, is what was passed as `callbackParam` + * to SDL_iPhoneSetAnimationCallback(). + * + * This function is only available on Apple iOS. + * + * For more information see: + * https://github.com/libsdl-org/SDL/blob/main/docs/README-ios.md + * + * This functions is also accessible using the macro + * SDL_iOSSetAnimationCallback() since SDL 2.0.4. + * + * \param window the window for which the animation callback should be set. + * \param interval the number of frames after which **callback** will be + * called. + * \param callback the function to call for every frame. + * \param callbackParam a pointer that is passed to `callback`. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_iPhoneSetEventPump + */ +extern DECLSPEC int SDLCALL SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, SDL_iOSAnimationCallback callback, void *callbackParam); + +#define SDL_iOSSetAnimationCallback(window, interval, callback, callbackParam) SDL_iPhoneSetAnimationCallback(window, interval, callback, callbackParam) + + +/** + * Use this function to enable or disable the SDL event pump on Apple iOS. + * + * This function is only available on Apple iOS. + * + * This functions is also accessible using the macro SDL_iOSSetEventPump() + * since SDL 2.0.4. + * + * \param enabled SDL_TRUE to enable the event pump, SDL_FALSE to disable it. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_iPhoneSetAnimationCallback + */ +extern DECLSPEC void SDLCALL SDL_iPhoneSetEventPump(SDL_bool enabled); + +#define SDL_iOSSetEventPump(enabled) SDL_iPhoneSetEventPump(enabled) + +/* end of iOS-specific functions. */ +#endif /* __IPHONEOS__ */ + + +/* Platform specific functions for Android */ +#ifdef __ANDROID__ + +/** + * Get the Android Java Native Interface Environment of the current thread. + * + * This is the JNIEnv one needs to access the Java virtual machine from native + * code, and is needed for many Android APIs to be usable from C. + * + * The prototype of the function in SDL's code actually declare a void* return + * type, even if the implementation returns a pointer to a JNIEnv. The + * rationale being that the SDL headers can avoid including jni.h. + * + * \returns a pointer to Java native interface object (JNIEnv) to which the + * current thread is attached, or 0 on error. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AndroidGetActivity + */ +extern DECLSPEC void * SDLCALL SDL_AndroidGetJNIEnv(void); + +/** + * Retrieve the Java instance of the Android activity class. + * + * The prototype of the function in SDL's code actually declares a void* + * return type, even if the implementation returns a jobject. The rationale + * being that the SDL headers can avoid including jni.h. + * + * The jobject returned by the function is a local reference and must be + * released by the caller. See the PushLocalFrame() and PopLocalFrame() or + * DeleteLocalRef() functions of the Java native interface: + * + * https://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/functions.html + * + * \returns the jobject representing the instance of the Activity class of the + * Android application, or NULL on error. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AndroidGetJNIEnv + */ +extern DECLSPEC void * SDLCALL SDL_AndroidGetActivity(void); + +/** + * Query Android API level of the current device. + * + * - API level 31: Android 12 + * - API level 30: Android 11 + * - API level 29: Android 10 + * - API level 28: Android 9 + * - API level 27: Android 8.1 + * - API level 26: Android 8.0 + * - API level 25: Android 7.1 + * - API level 24: Android 7.0 + * - API level 23: Android 6.0 + * - API level 22: Android 5.1 + * - API level 21: Android 5.0 + * - API level 20: Android 4.4W + * - API level 19: Android 4.4 + * - API level 18: Android 4.3 + * - API level 17: Android 4.2 + * - API level 16: Android 4.1 + * - API level 15: Android 4.0.3 + * - API level 14: Android 4.0 + * - API level 13: Android 3.2 + * - API level 12: Android 3.1 + * - API level 11: Android 3.0 + * - API level 10: Android 2.3.3 + * + * \returns the Android API level. + * + * \since This function is available since SDL 2.0.12. + */ +extern DECLSPEC int SDLCALL SDL_GetAndroidSDKVersion(void); + +/** + * Query if the application is running on Android TV. + * + * \returns SDL_TRUE if this is Android TV, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.8. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IsAndroidTV(void); + +/** + * Query if the application is running on a Chromebook. + * + * \returns SDL_TRUE if this is a Chromebook, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IsChromebook(void); + +/** + * Query if the application is running on a Samsung DeX docking station. + * + * \returns SDL_TRUE if this is a DeX docking station, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IsDeXMode(void); + +/** + * Trigger the Android system back button behavior. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC void SDLCALL SDL_AndroidBackButton(void); + +/** + * See the official Android developer guide for more information: + * http://developer.android.com/guide/topics/data/data-storage.html + */ +#define SDL_ANDROID_EXTERNAL_STORAGE_READ 0x01 +#define SDL_ANDROID_EXTERNAL_STORAGE_WRITE 0x02 + +/** + * Get the path used for internal storage for this application. + * + * This path is unique to your application and cannot be written to by other + * applications. + * + * Your internal storage path is typically: + * `/data/data/your.app.package/files`. + * + * \returns the path used for internal storage or NULL on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AndroidGetExternalStorageState + */ +extern DECLSPEC const char * SDLCALL SDL_AndroidGetInternalStoragePath(void); + +/** + * Get the current state of external storage. + * + * The current state of external storage, a bitmask of these values: + * `SDL_ANDROID_EXTERNAL_STORAGE_READ`, `SDL_ANDROID_EXTERNAL_STORAGE_WRITE`. + * + * If external storage is currently unavailable, this will return 0. + * + * \returns the current state of external storage on success or 0 on failure; + * call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AndroidGetExternalStoragePath + */ +extern DECLSPEC int SDLCALL SDL_AndroidGetExternalStorageState(void); + +/** + * Get the path used for external storage for this application. + * + * This path is unique to your application, but is public and can be written + * to by other applications. + * + * Your external storage path is typically: + * `/storage/sdcard0/Android/data/your.app.package/files`. + * + * \returns the path used for external storage for this application on success + * or NULL on failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AndroidGetExternalStorageState + */ +extern DECLSPEC const char * SDLCALL SDL_AndroidGetExternalStoragePath(void); + +/** + * Request permissions at runtime. + * + * This blocks the calling thread until the permission is granted or denied. + * + * \param permission The permission to request. + * \returns SDL_TRUE if the permission was granted, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.14. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_AndroidRequestPermission(const char *permission); + +/** + * Shows an Android toast notification. + * + * Toasts are a sort of lightweight notification that are unique to Android. + * + * https://developer.android.com/guide/topics/ui/notifiers/toasts + * + * Shows toast in UI thread. + * + * For the `gravity` parameter, choose a value from here, or -1 if you don't + * have a preference: + * + * https://developer.android.com/reference/android/view/Gravity + * + * \param message text message to be shown. + * \param duration 0=short, 1=long. + * \param gravity where the notification should appear on the screen. + * \param xoffset set this parameter only when gravity >=0. + * \param yoffset set this parameter only when gravity >=0. + * \returns 0 if success, -1 if any error occurs. + * + * \since This function is available since SDL 2.0.16. + */ +extern DECLSPEC int SDLCALL SDL_AndroidShowToast(const char* message, int duration, int gravity, int xoffset, int yoffset); + +/** + * Send a user command to SDLActivity. + * + * Override "boolean onUnhandledMessage(Message msg)" to handle the message. + * + * \param command user command that must be greater or equal to 0x8000. + * \param param user parameter. + * + * \since This function is available since SDL 2.0.22. + */ +extern DECLSPEC int SDLCALL SDL_AndroidSendMessage(Uint32 command, int param); + +#endif /* __ANDROID__ */ + +/* Platform specific functions for WinRT */ +#ifdef __WINRT__ + +/** + * WinRT / Windows Phone path types + */ +typedef enum SDL_WinRT_Path +{ + /** \brief The installed app's root directory. + Files here are likely to be read-only. */ + SDL_WINRT_PATH_INSTALLED_LOCATION, + + /** \brief The app's local data store. Files may be written here */ + SDL_WINRT_PATH_LOCAL_FOLDER, + + /** \brief The app's roaming data store. Unsupported on Windows Phone. + Files written here may be copied to other machines via a network + connection. + */ + SDL_WINRT_PATH_ROAMING_FOLDER, + + /** \brief The app's temporary data store. Unsupported on Windows Phone. + Files written here may be deleted at any time. */ + SDL_WINRT_PATH_TEMP_FOLDER +} SDL_WinRT_Path; + + +/** + * WinRT Device Family + */ +typedef enum SDL_WinRT_DeviceFamily +{ + /** \brief Unknown family */ + SDL_WINRT_DEVICEFAMILY_UNKNOWN, + + /** \brief Desktop family*/ + SDL_WINRT_DEVICEFAMILY_DESKTOP, + + /** \brief Mobile family (for example smartphone) */ + SDL_WINRT_DEVICEFAMILY_MOBILE, + + /** \brief XBox family */ + SDL_WINRT_DEVICEFAMILY_XBOX, +} SDL_WinRT_DeviceFamily; + + +/** + * Retrieve a WinRT defined path on the local file system. + * + * Not all paths are available on all versions of Windows. This is especially + * true on Windows Phone. Check the documentation for the given SDL_WinRT_Path + * for more information on which path types are supported where. + * + * Documentation on most app-specific path types on WinRT can be found on + * MSDN, at the URL: + * + * https://msdn.microsoft.com/en-us/library/windows/apps/hh464917.aspx + * + * \param pathType the type of path to retrieve, one of SDL_WinRT_Path. + * \returns a UCS-2 string (16-bit, wide-char) containing the path, or NULL if + * the path is not available for any reason; call SDL_GetError() for + * more information. + * + * \since This function is available since SDL 2.0.3. + * + * \sa SDL_WinRTGetFSPathUTF8 + */ +extern DECLSPEC const wchar_t * SDLCALL SDL_WinRTGetFSPathUNICODE(SDL_WinRT_Path pathType); + +/** + * Retrieve a WinRT defined path on the local file system. + * + * Not all paths are available on all versions of Windows. This is especially + * true on Windows Phone. Check the documentation for the given SDL_WinRT_Path + * for more information on which path types are supported where. + * + * Documentation on most app-specific path types on WinRT can be found on + * MSDN, at the URL: + * + * https://msdn.microsoft.com/en-us/library/windows/apps/hh464917.aspx + * + * \param pathType the type of path to retrieve, one of SDL_WinRT_Path. + * \returns a UTF-8 string (8-bit, multi-byte) containing the path, or NULL if + * the path is not available for any reason; call SDL_GetError() for + * more information. + * + * \since This function is available since SDL 2.0.3. + * + * \sa SDL_WinRTGetFSPathUNICODE + */ +extern DECLSPEC const char * SDLCALL SDL_WinRTGetFSPathUTF8(SDL_WinRT_Path pathType); + +/** + * Detects the device family of WinRT platform at runtime. + * + * \returns a value from the SDL_WinRT_DeviceFamily enum. + * + * \since This function is available since SDL 2.0.8. + */ +extern DECLSPEC SDL_WinRT_DeviceFamily SDLCALL SDL_WinRTGetDeviceFamily(); + +#endif /* __WINRT__ */ + +/** + * Query if the current device is a tablet. + * + * If SDL can't determine this, it will return SDL_FALSE. + * + * \returns SDL_TRUE if the device is a tablet, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.9. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IsTablet(void); + +/* Functions used by iOS application delegates to notify SDL about state changes */ +extern DECLSPEC void SDLCALL SDL_OnApplicationWillTerminate(void); +extern DECLSPEC void SDLCALL SDL_OnApplicationDidReceiveMemoryWarning(void); +extern DECLSPEC void SDLCALL SDL_OnApplicationWillResignActive(void); +extern DECLSPEC void SDLCALL SDL_OnApplicationDidEnterBackground(void); +extern DECLSPEC void SDLCALL SDL_OnApplicationWillEnterForeground(void); +extern DECLSPEC void SDLCALL SDL_OnApplicationDidBecomeActive(void); +#ifdef __IPHONEOS__ +extern DECLSPEC void SDLCALL SDL_OnApplicationDidChangeStatusBarOrientation(void); +#endif + +/* Functions used only by GDK */ +#if defined(__GDK__) +typedef struct XTaskQueueObject *XTaskQueueHandle; +typedef struct XUser *XUserHandle; + +/** + * Gets a reference to the global async task queue handle for GDK, + * initializing if needed. + * + * Once you are done with the task queue, you should call + * XTaskQueueCloseHandle to reduce the reference count to avoid a resource + * leak. + * + * \param outTaskQueue a pointer to be filled in with task queue handle. + * \returns 0 if success, -1 if any error occurs. + * + * \since This function is available since SDL 2.24.0. + */ +extern DECLSPEC int SDLCALL SDL_GDKGetTaskQueue(XTaskQueueHandle * outTaskQueue); + +/** + * Gets a reference to the default user handle for GDK. + * + * This is effectively a synchronous version of XUserAddAsync, which always + * prefers the default user and allows a sign-in UI. + * + * \param outUserHandle a pointer to be filled in with the default user + * handle. + * \returns 0 if success, -1 if any error occurs. + * + * \since This function is available since SDL 2.28.0. + */ +extern DECLSPEC int SDLCALL SDL_GDKGetDefaultUser(XUserHandle * outUserHandle); + +#endif + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_system_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_syswm.h b/lib/windows/include/SDL2/SDL_syswm.h new file mode 100644 index 0000000..18f6873 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_syswm.h @@ -0,0 +1,386 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* WIKI CATEGORY: SYSWM */ + +/* + * # CategorySYSWM + * + * Include file for SDL custom system window manager hooks. + * + * Your application has access to a special type of event SDL_SYSWMEVENT, + * which contains window-manager specific information and arrives whenever + * an unhandled window event occurs. This event is ignored by default, but + * you can enable it with SDL_EventState(). + */ + +#ifndef SDL_syswm_h_ +#define SDL_syswm_h_ + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_video.h" +#include "SDL_version.h" + +struct SDL_SysWMinfo; + +#if !defined(SDL_PROTOTYPES_ONLY) + +#if defined(SDL_VIDEO_DRIVER_WINDOWS) +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#ifndef NOMINMAX /* don't define min() and max(). */ +#define NOMINMAX +#endif +#include +#endif + +#if defined(SDL_VIDEO_DRIVER_WINRT) +#include +#endif + +/* This is the structure for custom window manager events */ +#if defined(SDL_VIDEO_DRIVER_X11) +#if defined(__APPLE__) && defined(__MACH__) +/* conflicts with Quickdraw.h */ +#define Cursor X11Cursor +#endif + +#include +#include + +#if defined(__APPLE__) && defined(__MACH__) +/* matches the re-define above */ +#undef Cursor +#endif + +#endif /* defined(SDL_VIDEO_DRIVER_X11) */ + +#if defined(SDL_VIDEO_DRIVER_DIRECTFB) +#include +#endif + +#if defined(SDL_VIDEO_DRIVER_COCOA) +#ifdef __OBJC__ +@class NSWindow; +#else +typedef struct _NSWindow NSWindow; +#endif +#endif + +#if defined(SDL_VIDEO_DRIVER_UIKIT) +#ifdef __OBJC__ +#include +#else +typedef struct _UIWindow UIWindow; +typedef struct _UIViewController UIViewController; +#endif +typedef Uint32 GLuint; +#endif + +#if defined(SDL_VIDEO_VULKAN) || defined(SDL_VIDEO_METAL) +#define SDL_METALVIEW_TAG 255 +#endif + +#if defined(SDL_VIDEO_DRIVER_ANDROID) +typedef struct ANativeWindow ANativeWindow; +typedef void *EGLSurface; +#endif + +#if defined(SDL_VIDEO_DRIVER_VIVANTE) +#include "SDL_egl.h" +#endif + +#if defined(SDL_VIDEO_DRIVER_OS2) +#define INCL_WIN +#include +#endif +#endif /* SDL_PROTOTYPES_ONLY */ + +#if defined(SDL_VIDEO_DRIVER_KMSDRM) +struct gbm_device; +#endif + + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +#if !defined(SDL_PROTOTYPES_ONLY) + +/** + * These are the various supported windowing subsystems + */ +typedef enum SDL_SYSWM_TYPE +{ + SDL_SYSWM_UNKNOWN, + SDL_SYSWM_WINDOWS, + SDL_SYSWM_X11, + SDL_SYSWM_DIRECTFB, + SDL_SYSWM_COCOA, + SDL_SYSWM_UIKIT, + SDL_SYSWM_WAYLAND, + SDL_SYSWM_MIR, /* no longer available, left for API/ABI compatibility. Remove in 2.1! */ + SDL_SYSWM_WINRT, + SDL_SYSWM_ANDROID, + SDL_SYSWM_VIVANTE, + SDL_SYSWM_OS2, + SDL_SYSWM_HAIKU, + SDL_SYSWM_KMSDRM, + SDL_SYSWM_RISCOS +} SDL_SYSWM_TYPE; + +/** + * The custom event structure. + */ +struct SDL_SysWMmsg +{ + SDL_version version; + SDL_SYSWM_TYPE subsystem; + union + { +#if defined(SDL_VIDEO_DRIVER_WINDOWS) + struct { + HWND hwnd; /**< The window for the message */ + UINT msg; /**< The type of message */ + WPARAM wParam; /**< WORD message parameter */ + LPARAM lParam; /**< LONG message parameter */ + } win; +#endif +#if defined(SDL_VIDEO_DRIVER_X11) + struct { + XEvent event; + } x11; +#endif +#if defined(SDL_VIDEO_DRIVER_DIRECTFB) + struct { + DFBEvent event; + } dfb; +#endif +#if defined(SDL_VIDEO_DRIVER_COCOA) + struct + { + /* Latest version of Xcode clang complains about empty structs in C v. C++: + error: empty struct has size 0 in C, size 1 in C++ + */ + int dummy; + /* No Cocoa window events yet */ + } cocoa; +#endif +#if defined(SDL_VIDEO_DRIVER_UIKIT) + struct + { + int dummy; + /* No UIKit window events yet */ + } uikit; +#endif +#if defined(SDL_VIDEO_DRIVER_VIVANTE) + struct + { + int dummy; + /* No Vivante window events yet */ + } vivante; +#endif +#if defined(SDL_VIDEO_DRIVER_OS2) + struct + { + BOOL fFrame; /**< TRUE if hwnd is a frame window */ + HWND hwnd; /**< The window receiving the message */ + ULONG msg; /**< The message identifier */ + MPARAM mp1; /**< The first first message parameter */ + MPARAM mp2; /**< The second first message parameter */ + } os2; +#endif + /* Can't have an empty union */ + int dummy; + } msg; +}; + +/** + * The custom window manager information structure. + * + * When this structure is returned, it holds information about which low level + * system it is using, and will be one of SDL_SYSWM_TYPE. + */ +struct SDL_SysWMinfo +{ + SDL_version version; + SDL_SYSWM_TYPE subsystem; + union + { +#if defined(SDL_VIDEO_DRIVER_WINDOWS) + struct + { + HWND window; /**< The window handle */ + HDC hdc; /**< The window device context */ + HINSTANCE hinstance; /**< The instance handle */ + } win; +#endif +#if defined(SDL_VIDEO_DRIVER_WINRT) + struct + { + IInspectable * window; /**< The WinRT CoreWindow */ + } winrt; +#endif +#if defined(SDL_VIDEO_DRIVER_X11) + struct + { + Display *display; /**< The X11 display */ + Window window; /**< The X11 window */ + } x11; +#endif +#if defined(SDL_VIDEO_DRIVER_DIRECTFB) + struct + { + IDirectFB *dfb; /**< The directfb main interface */ + IDirectFBWindow *window; /**< The directfb window handle */ + IDirectFBSurface *surface; /**< The directfb client surface */ + } dfb; +#endif +#if defined(SDL_VIDEO_DRIVER_COCOA) + struct + { +#if defined(__OBJC__) && defined(__has_feature) + #if __has_feature(objc_arc) + NSWindow __unsafe_unretained *window; /**< The Cocoa window */ + #else + NSWindow *window; /**< The Cocoa window */ + #endif +#else + NSWindow *window; /**< The Cocoa window */ +#endif + } cocoa; +#endif +#if defined(SDL_VIDEO_DRIVER_UIKIT) + struct + { +#if defined(__OBJC__) && defined(__has_feature) + #if __has_feature(objc_arc) + UIWindow __unsafe_unretained *window; /**< The UIKit window */ + #else + UIWindow *window; /**< The UIKit window */ + #endif +#else + UIWindow *window; /**< The UIKit window */ +#endif + GLuint framebuffer; /**< The GL view's Framebuffer Object. It must be bound when rendering to the screen using GL. */ + GLuint colorbuffer; /**< The GL view's color Renderbuffer Object. It must be bound when SDL_GL_SwapWindow is called. */ + GLuint resolveFramebuffer; /**< The Framebuffer Object which holds the resolve color Renderbuffer, when MSAA is used. */ + } uikit; +#endif +#if defined(SDL_VIDEO_DRIVER_WAYLAND) + struct + { + struct wl_display *display; /**< Wayland display */ + struct wl_surface *surface; /**< Wayland surface */ + void *shell_surface; /**< DEPRECATED Wayland shell_surface (window manager handle) */ + struct wl_egl_window *egl_window; /**< Wayland EGL window (native window) */ + struct xdg_surface *xdg_surface; /**< Wayland xdg surface (window manager handle) */ + struct xdg_toplevel *xdg_toplevel; /**< Wayland xdg toplevel role */ + struct xdg_popup *xdg_popup; /**< Wayland xdg popup role */ + struct xdg_positioner *xdg_positioner; /**< Wayland xdg positioner, for popup */ + } wl; +#endif +#if defined(SDL_VIDEO_DRIVER_MIR) /* no longer available, left for API/ABI compatibility. Remove in 2.1! */ + struct + { + void *connection; /**< Mir display server connection */ + void *surface; /**< Mir surface */ + } mir; +#endif + +#if defined(SDL_VIDEO_DRIVER_ANDROID) + struct + { + ANativeWindow *window; + EGLSurface surface; + } android; +#endif + +#if defined(SDL_VIDEO_DRIVER_OS2) + struct + { + HWND hwnd; /**< The window handle */ + HWND hwndFrame; /**< The frame window handle */ + } os2; +#endif + +#if defined(SDL_VIDEO_DRIVER_VIVANTE) + struct + { + EGLNativeDisplayType display; + EGLNativeWindowType window; + } vivante; +#endif + +#if defined(SDL_VIDEO_DRIVER_KMSDRM) + struct + { + int dev_index; /**< Device index (ex: the X in /dev/dri/cardX) */ + int drm_fd; /**< DRM FD (unavailable on Vulkan windows) */ + struct gbm_device *gbm_dev; /**< GBM device (unavailable on Vulkan windows) */ + } kmsdrm; +#endif + + /* Make sure this union is always 64 bytes (8 64-bit pointers). */ + /* Be careful not to overflow this if you add a new target! */ + Uint8 dummy[64]; + } info; +}; + +#endif /* SDL_PROTOTYPES_ONLY */ + +typedef struct SDL_SysWMinfo SDL_SysWMinfo; + + +/** + * Get driver-specific information about a window. + * + * You must include SDL_syswm.h for the declaration of SDL_SysWMinfo. + * + * The caller must initialize the `info` structure's version by using + * `SDL_VERSION(&info.version)`, and then this function will fill in the rest + * of the structure with information about the given window. + * + * \param window the window about which information is being requested. + * \param info an SDL_SysWMinfo structure filled in with window information. + * \returns SDL_TRUE if the function is implemented and the `version` member + * of the `info` struct is valid, or SDL_FALSE if the information + * could not be retrieved; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowWMInfo(SDL_Window * window, + SDL_SysWMinfo * info); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_syswm_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_test.h b/lib/windows/include/SDL2/SDL_test.h new file mode 100644 index 0000000..78a7e62 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_test.h @@ -0,0 +1,69 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* + * \file SDL_test.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +#ifndef SDL_test_h_ +#define SDL_test_h_ + +#include "SDL.h" +#include "SDL_test_assert.h" +#include "SDL_test_common.h" +#include "SDL_test_compare.h" +#include "SDL_test_crc32.h" +#include "SDL_test_font.h" +#include "SDL_test_fuzzer.h" +#include "SDL_test_harness.h" +#include "SDL_test_images.h" +#include "SDL_test_log.h" +#include "SDL_test_md5.h" +#include "SDL_test_memory.h" +#include "SDL_test_random.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Global definitions */ + +/* + * Note: Maximum size of SDLTest log message is less than SDL's limit + * to ensure we can fit additional information such as the timestamp. + */ +#define SDLTEST_MAX_LOGMESSAGE_LENGTH 3584 + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_test_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_test_assert.h b/lib/windows/include/SDL2/SDL_test_assert.h new file mode 100644 index 0000000..ff3b6b6 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_test_assert.h @@ -0,0 +1,105 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* + * \file SDL_test_assert.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* + * + * Assert API for test code and test cases + * + */ + +#ifndef SDL_test_assert_h_ +#define SDL_test_assert_h_ + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* + * \brief Fails the assert. + */ +#define ASSERT_FAIL 0 + +/* + * \brief Passes the assert. + */ +#define ASSERT_PASS 1 + +/* + * \brief Assert that logs and break execution flow on failures. + * + * \param assertCondition Evaluated condition or variable to assert; fail (==0) or pass (!=0). + * \param assertDescription Message to log with the assert describing it. + */ +void SDLTest_Assert(int assertCondition, SDL_PRINTF_FORMAT_STRING const char *assertDescription, ...) SDL_PRINTF_VARARG_FUNC(2); + +/* + * \brief Assert for test cases that logs but does not break execution flow on failures. Updates assertion counters. + * + * \param assertCondition Evaluated condition or variable to assert; fail (==0) or pass (!=0). + * \param assertDescription Message to log with the assert describing it. + * + * \returns the assertCondition so it can be used to externally to break execution flow if desired. + */ +int SDLTest_AssertCheck(int assertCondition, SDL_PRINTF_FORMAT_STRING const char *assertDescription, ...) SDL_PRINTF_VARARG_FUNC(2); + +/* + * \brief Explicitly pass without checking an assertion condition. Updates assertion counter. + * + * \param assertDescription Message to log with the assert describing it. + */ +void SDLTest_AssertPass(SDL_PRINTF_FORMAT_STRING const char *assertDescription, ...) SDL_PRINTF_VARARG_FUNC(1); + +/* + * \brief Resets the assert summary counters to zero. + */ +void SDLTest_ResetAssertSummary(void); + +/* + * \brief Logs summary of all assertions (total, pass, fail) since last reset as INFO or ERROR. + */ +void SDLTest_LogAssertSummary(void); + + +/* + * \brief Converts the current assert summary state to a test result. + * + * \returns TEST_RESULT_PASSED, TEST_RESULT_FAILED, or TEST_RESULT_NO_ASSERT + */ +int SDLTest_AssertSummaryToTestResult(void); + +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_test_assert_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_test_common.h b/lib/windows/include/SDL2/SDL_test_common.h new file mode 100644 index 0000000..64b5f83 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_test_common.h @@ -0,0 +1,236 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* + * \file SDL_test_common.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* Ported from original test\common.h file. */ + +#ifndef SDL_test_common_h_ +#define SDL_test_common_h_ + +#include "SDL.h" + +#if defined(__PSP__) +#define DEFAULT_WINDOW_WIDTH 480 +#define DEFAULT_WINDOW_HEIGHT 272 +#elif defined(__VITA__) +#define DEFAULT_WINDOW_WIDTH 960 +#define DEFAULT_WINDOW_HEIGHT 544 +#else +#define DEFAULT_WINDOW_WIDTH 640 +#define DEFAULT_WINDOW_HEIGHT 480 +#endif + +#define VERBOSE_VIDEO 0x00000001 +#define VERBOSE_MODES 0x00000002 +#define VERBOSE_RENDER 0x00000004 +#define VERBOSE_EVENT 0x00000008 +#define VERBOSE_AUDIO 0x00000010 +#define VERBOSE_MOTION 0x00000020 + +typedef struct +{ + /* SDL init flags */ + char **argv; + Uint32 flags; + Uint32 verbose; + + /* Video info */ + const char *videodriver; + int display; + const char *window_title; + const char *window_icon; + Uint32 window_flags; + SDL_bool flash_on_focus_loss; + int window_x; + int window_y; + int window_w; + int window_h; + int window_minW; + int window_minH; + int window_maxW; + int window_maxH; + int logical_w; + int logical_h; + float scale; + int depth; + int refresh_rate; + int num_windows; + SDL_Window **windows; + + /* Renderer info */ + const char *renderdriver; + Uint32 render_flags; + SDL_bool skip_renderer; + SDL_Renderer **renderers; + SDL_Texture **targets; + + /* Audio info */ + const char *audiodriver; + SDL_AudioSpec audiospec; + + /* GL settings */ + int gl_red_size; + int gl_green_size; + int gl_blue_size; + int gl_alpha_size; + int gl_buffer_size; + int gl_depth_size; + int gl_stencil_size; + int gl_double_buffer; + int gl_accum_red_size; + int gl_accum_green_size; + int gl_accum_blue_size; + int gl_accum_alpha_size; + int gl_stereo; + int gl_multisamplebuffers; + int gl_multisamplesamples; + int gl_retained_backing; + int gl_accelerated; + int gl_major_version; + int gl_minor_version; + int gl_debug; + int gl_profile_mask; + + /* Additional fields added in 2.0.18 */ + SDL_Rect confine; + +} SDLTest_CommonState; + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Function prototypes */ + +/* + * \brief Parse command line parameters and create common state. + * + * \param argv Array of command line parameters + * \param flags Flags indicating which subsystem to initialize (i.e. SDL_INIT_VIDEO | SDL_INIT_AUDIO) + * + * \returns a newly allocated common state object. + */ +SDLTest_CommonState *SDLTest_CommonCreateState(char **argv, Uint32 flags); + +/* + * \brief Process one common argument. + * + * \param state The common state describing the test window to create. + * \param index The index of the argument to process in argv[]. + * + * \returns the number of arguments processed (i.e. 1 for --fullscreen, 2 for --video [videodriver], or -1 on error. + */ +int SDLTest_CommonArg(SDLTest_CommonState * state, int index); + + +/* + * \brief Logs command line usage info. + * + * This logs the appropriate command line options for the subsystems in use + * plus other common options, and then any application-specific options. + * This uses the SDL_Log() function and splits up output to be friendly to + * 80-character-wide terminals. + * + * \param state The common state describing the test window for the app. + * \param argv0 argv[0], as passed to main/SDL_main. + * \param options an array of strings for application specific options. The last element of the array should be NULL. + */ +void SDLTest_CommonLogUsage(SDLTest_CommonState * state, const char *argv0, const char **options); + +/* + * \brief Returns common usage information + * + * You should (probably) be using SDLTest_CommonLogUsage() instead, but this + * function remains for binary compatibility. Strings returned from this + * function are valid until SDLTest_CommonQuit() is called, in which case + * those strings' memory is freed and can no longer be used. + * + * \param state The common state describing the test window to create. + * \returns a string with usage information + */ +const char *SDLTest_CommonUsage(SDLTest_CommonState * state); + +/* + * \brief Open test window. + * + * \param state The common state describing the test window to create. + * + * \returns SDL_TRUE if initialization succeeded, false otherwise + */ +SDL_bool SDLTest_CommonInit(SDLTest_CommonState * state); + +/* + * \brief Easy argument handling when test app doesn't need any custom args. + * + * \param state The common state describing the test window to create. + * \param argc argc, as supplied to SDL_main + * \param argv argv, as supplied to SDL_main + * + * \returns SDL_FALSE if app should quit, true otherwise. + */ +SDL_bool SDLTest_CommonDefaultArgs(SDLTest_CommonState * state, const int argc, char **argv); + +/* + * \brief Common event handler for test windows. + * + * \param state The common state used to create test window. + * \param event The event to handle. + * \param done Flag indicating we are done. + * + */ +void SDLTest_CommonEvent(SDLTest_CommonState * state, SDL_Event * event, int *done); + +/* + * \brief Close test window. + * + * \param state The common state used to create test window. + * + */ +void SDLTest_CommonQuit(SDLTest_CommonState * state); + +/* + * \brief Draws various window information (position, size, etc.) to the renderer. + * + * \param renderer The renderer to draw to. + * \param window The window whose information should be displayed. + * \param usedHeight Returns the height used, so the caller can draw more below. + * + */ +void SDLTest_CommonDrawWindowInfo(SDL_Renderer * renderer, SDL_Window * window, int * usedHeight); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_test_common_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_test_compare.h b/lib/windows/include/SDL2/SDL_test_compare.h new file mode 100644 index 0000000..3fcb935 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_test_compare.h @@ -0,0 +1,69 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* + * \file SDL_test_compare.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* + + Defines comparison functions (i.e. for surfaces). + +*/ + +#ifndef SDL_test_compare_h_ +#define SDL_test_compare_h_ + +#include "SDL.h" + +#include "SDL_test_images.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* + * \brief Compares a surface and with reference image data for equality + * + * \param surface Surface used in comparison + * \param referenceSurface Test Surface used in comparison + * \param allowable_error Allowable difference (=sum of squared difference for each RGB component) in blending accuracy. + * + * \returns 0 if comparison succeeded, >0 (=number of pixels for which the comparison failed) if comparison failed, -1 if any of the surfaces were NULL, -2 if the surface sizes differ. + */ +int SDLTest_CompareSurfaces(SDL_Surface *surface, SDL_Surface *referenceSurface, int allowable_error); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_test_compare_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_test_crc32.h b/lib/windows/include/SDL2/SDL_test_crc32.h new file mode 100644 index 0000000..1dbeef2 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_test_crc32.h @@ -0,0 +1,124 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* + * \file SDL_test_crc32.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* + + Implements CRC32 calculations (default output is Perl String::CRC32 compatible). + +*/ + +#ifndef SDL_test_crc32_h_ +#define SDL_test_crc32_h_ + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + + +/* ------------ Definitions --------- */ + +/* Definition shared by all CRC routines */ + +#ifndef CrcUint32 + #define CrcUint32 unsigned int +#endif +#ifndef CrcUint8 + #define CrcUint8 unsigned char +#endif + +#ifdef ORIGINAL_METHOD + #define CRC32_POLY 0x04c11db7 /* AUTODIN II, Ethernet, & FDDI */ +#else + #define CRC32_POLY 0xEDB88320 /* Perl String::CRC32 compatible */ +#endif + +/* + * Data structure for CRC32 (checksum) computation + */ + typedef struct { + CrcUint32 crc32_table[256]; /* CRC table */ + } SDLTest_Crc32Context; + +/* ---------- Function Prototypes ------------- */ + +/* + * \brief Initialize the CRC context + * + * Note: The function initializes the crc table required for all crc calculations. + * + * \param crcContext pointer to context variable + * + * \returns 0 for OK, -1 on error + * + */ + int SDLTest_Crc32Init(SDLTest_Crc32Context * crcContext); + + +/* + * \brief calculate a crc32 from a data block + * + * \param crcContext pointer to context variable + * \param inBuf input buffer to checksum + * \param inLen length of input buffer + * \param crc32 pointer to Uint32 to store the final CRC into + * + * \returns 0 for OK, -1 on error + * + */ +int SDLTest_Crc32Calc(SDLTest_Crc32Context * crcContext, CrcUint8 *inBuf, CrcUint32 inLen, CrcUint32 *crc32); + +/* Same routine broken down into three steps */ +int SDLTest_Crc32CalcStart(SDLTest_Crc32Context * crcContext, CrcUint32 *crc32); +int SDLTest_Crc32CalcEnd(SDLTest_Crc32Context * crcContext, CrcUint32 *crc32); +int SDLTest_Crc32CalcBuffer(SDLTest_Crc32Context * crcContext, CrcUint8 *inBuf, CrcUint32 inLen, CrcUint32 *crc32); + + +/* + * \brief clean up CRC context + * + * \param crcContext pointer to context variable + * + * \returns 0 for OK, -1 on error + * +*/ + +int SDLTest_Crc32Done(SDLTest_Crc32Context * crcContext); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_test_crc32_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_test_font.h b/lib/windows/include/SDL2/SDL_test_font.h new file mode 100644 index 0000000..0eade92 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_test_font.h @@ -0,0 +1,168 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* + * \file SDL_test_font.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +#ifndef SDL_test_font_h_ +#define SDL_test_font_h_ + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Function prototypes */ + +#define FONT_CHARACTER_SIZE 8 +#define FONT_LINE_HEIGHT (FONT_CHARACTER_SIZE + 2) + +/* + * \brief Draw a string in the currently set font. + * + * \param renderer The renderer to draw on. + * \param x The X coordinate of the upper left corner of the character. + * \param y The Y coordinate of the upper left corner of the character. + * \param c The character to draw. + * + * \returns 0 on success, -1 on failure. + */ +int SDLTest_DrawCharacter(SDL_Renderer *renderer, int x, int y, Uint32 c); + +/* + * \brief Draw a UTF-8 string in the currently set font. + * + * The font currently only supports characters in the Basic Latin and Latin-1 Supplement sets. + * + * \param renderer The renderer to draw on. + * \param x The X coordinate of the upper left corner of the string. + * \param y The Y coordinate of the upper left corner of the string. + * \param s The string to draw. + * + * \returns 0 on success, -1 on failure. + */ +int SDLTest_DrawString(SDL_Renderer *renderer, int x, int y, const char *s); + +/* + * \brief Data used for multi-line text output + */ +typedef struct SDLTest_TextWindow +{ + SDL_Rect rect; + int current; + int numlines; + char **lines; +} SDLTest_TextWindow; + +/* + * \brief Create a multi-line text output window + * + * \param x The X coordinate of the upper left corner of the window. + * \param y The Y coordinate of the upper left corner of the window. + * \param w The width of the window (currently ignored) + * \param h The height of the window (currently ignored) + * + * \returns the new window, or NULL on failure. + * + * \since This function is available since SDL 2.24.0 + */ +SDLTest_TextWindow *SDLTest_TextWindowCreate(int x, int y, int w, int h); + +/* + * \brief Display a multi-line text output window + * + * This function should be called every frame to display the text + * + * \param textwin The text output window + * \param renderer The renderer to use for display + * + * \since This function is available since SDL 2.24.0 + */ +void SDLTest_TextWindowDisplay(SDLTest_TextWindow *textwin, SDL_Renderer *renderer); + +/* + * \brief Add text to a multi-line text output window + * + * Adds UTF-8 text to the end of the current text. The newline character starts a + * new line of text. The backspace character deletes the last character or, if the + * line is empty, deletes the line and goes to the end of the previous line. + * + * \param textwin The text output window + * \param fmt A printf() style format string + * \param ... additional parameters matching % tokens in the `fmt` string, if any + * + * \since This function is available since SDL 2.24.0 + */ +void SDLTest_TextWindowAddText(SDLTest_TextWindow *textwin, SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(2); + +/* + * \brief Add text to a multi-line text output window + * + * Adds UTF-8 text to the end of the current text. The newline character starts a + * new line of text. The backspace character deletes the last character or, if the + * line is empty, deletes the line and goes to the end of the previous line. + * + * \param textwin The text output window + * \param text The text to add to the window + * \param len The length, in bytes, of the text to add to the window + * + * \since This function is available since SDL 2.24.0 + */ +void SDLTest_TextWindowAddTextWithLength(SDLTest_TextWindow *textwin, const char *text, size_t len); + +/* + * \brief Clear the text in a multi-line text output window + * + * \param textwin The text output window + * + * \since This function is available since SDL 2.24.0 + */ +void SDLTest_TextWindowClear(SDLTest_TextWindow *textwin); + +/* + * \brief Free the storage associated with a multi-line text output window + * + * \param textwin The text output window + * + * \since This function is available since SDL 2.24.0 + */ +void SDLTest_TextWindowDestroy(SDLTest_TextWindow *textwin); + +/* + * \brief Cleanup textures used by font drawing functions. + */ +void SDLTest_CleanupTextDrawing(void); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_test_font_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_test_fuzzer.h b/lib/windows/include/SDL2/SDL_test_fuzzer.h new file mode 100644 index 0000000..c6978ac --- /dev/null +++ b/lib/windows/include/SDL2/SDL_test_fuzzer.h @@ -0,0 +1,387 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* + * \file SDL_test_fuzzer.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* + + Data generators for fuzzing test data in a reproducible way. + +*/ + +#ifndef SDL_test_fuzzer_h_ +#define SDL_test_fuzzer_h_ + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + + +/* + Based on GSOC code by Markus Kauppila +*/ + + +/* + * \file + * Note: The fuzzer implementation uses a static instance of random context + * internally which makes it thread-UNsafe. + */ + +/* + * Initializes the fuzzer for a test + * + * \param execKey Execution "Key" that initializes the random number generator uniquely for the test. + * + */ +void SDLTest_FuzzerInit(Uint64 execKey); + + +/* + * Returns a random Uint8 + * + * \returns a generated integer + */ +Uint8 SDLTest_RandomUint8(void); + +/* + * Returns a random Sint8 + * + * \returns a generated signed integer + */ +Sint8 SDLTest_RandomSint8(void); + + +/* + * Returns a random Uint16 + * + * \returns a generated integer + */ +Uint16 SDLTest_RandomUint16(void); + +/* + * Returns a random Sint16 + * + * \returns a generated signed integer + */ +Sint16 SDLTest_RandomSint16(void); + + +/* + * Returns a random integer + * + * \returns a generated integer + */ +Sint32 SDLTest_RandomSint32(void); + + +/* + * Returns a random positive integer + * + * \returns a generated integer + */ +Uint32 SDLTest_RandomUint32(void); + +/* + * Returns random Uint64. + * + * \returns a generated integer + */ +Uint64 SDLTest_RandomUint64(void); + + +/* + * Returns random Sint64. + * + * \returns a generated signed integer + */ +Sint64 SDLTest_RandomSint64(void); + +/* + * \returns a random float in range [0.0 - 1.0] + */ +float SDLTest_RandomUnitFloat(void); + +/* + * \returns a random double in range [0.0 - 1.0] + */ +double SDLTest_RandomUnitDouble(void); + +/* + * \returns a random float. + * + */ +float SDLTest_RandomFloat(void); + +/* + * \returns a random double. + * + */ +double SDLTest_RandomDouble(void); + +/* + * Returns a random boundary value for Uint8 within the given boundaries. + * Boundaries are inclusive, see the usage examples below. If validDomain + * is true, the function will only return valid boundaries, otherwise non-valid + * boundaries are also possible. + * If boundary1 > boundary2, the values are swapped + * + * Usage examples: + * RandomUint8BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 + * RandomUint8BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21 + * RandomUint8BoundaryValue(0, 99, SDL_FALSE) returns 100 + * RandomUint8BoundaryValue(0, 255, SDL_FALSE) returns 0 (error set) + * + * \param boundary1 Lower boundary limit + * \param boundary2 Upper boundary limit + * \param validDomain Should the generated boundary be valid (=within the bounds) or not? + * + * \returns a random boundary value for the given range and domain or 0 with error set + */ +Uint8 SDLTest_RandomUint8BoundaryValue(Uint8 boundary1, Uint8 boundary2, SDL_bool validDomain); + +/* + * Returns a random boundary value for Uint16 within the given boundaries. + * Boundaries are inclusive, see the usage examples below. If validDomain + * is true, the function will only return valid boundaries, otherwise non-valid + * boundaries are also possible. + * If boundary1 > boundary2, the values are swapped + * + * Usage examples: + * RandomUint16BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 + * RandomUint16BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21 + * RandomUint16BoundaryValue(0, 99, SDL_FALSE) returns 100 + * RandomUint16BoundaryValue(0, 0xFFFF, SDL_FALSE) returns 0 (error set) + * + * \param boundary1 Lower boundary limit + * \param boundary2 Upper boundary limit + * \param validDomain Should the generated boundary be valid (=within the bounds) or not? + * + * \returns a random boundary value for the given range and domain or 0 with error set + */ +Uint16 SDLTest_RandomUint16BoundaryValue(Uint16 boundary1, Uint16 boundary2, SDL_bool validDomain); + +/* + * Returns a random boundary value for Uint32 within the given boundaries. + * Boundaries are inclusive, see the usage examples below. If validDomain + * is true, the function will only return valid boundaries, otherwise non-valid + * boundaries are also possible. + * If boundary1 > boundary2, the values are swapped + * + * Usage examples: + * RandomUint32BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 + * RandomUint32BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21 + * RandomUint32BoundaryValue(0, 99, SDL_FALSE) returns 100 + * RandomUint32BoundaryValue(0, 0xFFFFFFFF, SDL_FALSE) returns 0 (with error set) + * + * \param boundary1 Lower boundary limit + * \param boundary2 Upper boundary limit + * \param validDomain Should the generated boundary be valid (=within the bounds) or not? + * + * \returns a random boundary value for the given range and domain or 0 with error set + */ +Uint32 SDLTest_RandomUint32BoundaryValue(Uint32 boundary1, Uint32 boundary2, SDL_bool validDomain); + +/* + * Returns a random boundary value for Uint64 within the given boundaries. + * Boundaries are inclusive, see the usage examples below. If validDomain + * is true, the function will only return valid boundaries, otherwise non-valid + * boundaries are also possible. + * If boundary1 > boundary2, the values are swapped + * + * Usage examples: + * RandomUint64BoundaryValue(10, 20, SDL_TRUE) returns 10, 11, 19 or 20 + * RandomUint64BoundaryValue(1, 20, SDL_FALSE) returns 0 or 21 + * RandomUint64BoundaryValue(0, 99, SDL_FALSE) returns 100 + * RandomUint64BoundaryValue(0, 0xFFFFFFFFFFFFFFFF, SDL_FALSE) returns 0 (with error set) + * + * \param boundary1 Lower boundary limit + * \param boundary2 Upper boundary limit + * \param validDomain Should the generated boundary be valid (=within the bounds) or not? + * + * \returns a random boundary value for the given range and domain or 0 with error set + */ +Uint64 SDLTest_RandomUint64BoundaryValue(Uint64 boundary1, Uint64 boundary2, SDL_bool validDomain); + +/* + * Returns a random boundary value for Sint8 within the given boundaries. + * Boundaries are inclusive, see the usage examples below. If validDomain + * is true, the function will only return valid boundaries, otherwise non-valid + * boundaries are also possible. + * If boundary1 > boundary2, the values are swapped + * + * Usage examples: + * RandomSint8BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20 + * RandomSint8BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9 + * RandomSint8BoundaryValue(SINT8_MIN, 99, SDL_FALSE) returns 100 + * RandomSint8BoundaryValue(SINT8_MIN, SINT8_MAX, SDL_FALSE) returns SINT8_MIN (== error value) with error set + * + * \param boundary1 Lower boundary limit + * \param boundary2 Upper boundary limit + * \param validDomain Should the generated boundary be valid (=within the bounds) or not? + * + * \returns a random boundary value for the given range and domain or SINT8_MIN with error set + */ +Sint8 SDLTest_RandomSint8BoundaryValue(Sint8 boundary1, Sint8 boundary2, SDL_bool validDomain); + + +/* + * Returns a random boundary value for Sint16 within the given boundaries. + * Boundaries are inclusive, see the usage examples below. If validDomain + * is true, the function will only return valid boundaries, otherwise non-valid + * boundaries are also possible. + * If boundary1 > boundary2, the values are swapped + * + * Usage examples: + * RandomSint16BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20 + * RandomSint16BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9 + * RandomSint16BoundaryValue(SINT16_MIN, 99, SDL_FALSE) returns 100 + * RandomSint16BoundaryValue(SINT16_MIN, SINT16_MAX, SDL_FALSE) returns SINT16_MIN (== error value) with error set + * + * \param boundary1 Lower boundary limit + * \param boundary2 Upper boundary limit + * \param validDomain Should the generated boundary be valid (=within the bounds) or not? + * + * \returns a random boundary value for the given range and domain or SINT16_MIN with error set + */ +Sint16 SDLTest_RandomSint16BoundaryValue(Sint16 boundary1, Sint16 boundary2, SDL_bool validDomain); + +/* + * Returns a random boundary value for Sint32 within the given boundaries. + * Boundaries are inclusive, see the usage examples below. If validDomain + * is true, the function will only return valid boundaries, otherwise non-valid + * boundaries are also possible. + * If boundary1 > boundary2, the values are swapped + * + * Usage examples: + * RandomSint32BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20 + * RandomSint32BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9 + * RandomSint32BoundaryValue(SINT32_MIN, 99, SDL_FALSE) returns 100 + * RandomSint32BoundaryValue(SINT32_MIN, SINT32_MAX, SDL_FALSE) returns SINT32_MIN (== error value) + * + * \param boundary1 Lower boundary limit + * \param boundary2 Upper boundary limit + * \param validDomain Should the generated boundary be valid (=within the bounds) or not? + * + * \returns a random boundary value for the given range and domain or SINT32_MIN with error set + */ +Sint32 SDLTest_RandomSint32BoundaryValue(Sint32 boundary1, Sint32 boundary2, SDL_bool validDomain); + +/* + * Returns a random boundary value for Sint64 within the given boundaries. + * Boundaries are inclusive, see the usage examples below. If validDomain + * is true, the function will only return valid boundaries, otherwise non-valid + * boundaries are also possible. + * If boundary1 > boundary2, the values are swapped + * + * Usage examples: + * RandomSint64BoundaryValue(-10, 20, SDL_TRUE) returns -11, -10, 19 or 20 + * RandomSint64BoundaryValue(-100, -10, SDL_FALSE) returns -101 or -9 + * RandomSint64BoundaryValue(SINT64_MIN, 99, SDL_FALSE) returns 100 + * RandomSint64BoundaryValue(SINT64_MIN, SINT64_MAX, SDL_FALSE) returns SINT64_MIN (== error value) and error set + * + * \param boundary1 Lower boundary limit + * \param boundary2 Upper boundary limit + * \param validDomain Should the generated boundary be valid (=within the bounds) or not? + * + * \returns a random boundary value for the given range and domain or SINT64_MIN with error set + */ +Sint64 SDLTest_RandomSint64BoundaryValue(Sint64 boundary1, Sint64 boundary2, SDL_bool validDomain); + + +/* + * Returns integer in range [min, max] (inclusive). + * Min and max values can be negative values. + * If Max in smaller than min, then the values are swapped. + * Min and max are the same value, that value will be returned. + * + * \param min Minimum inclusive value of returned random number + * \param max Maximum inclusive value of returned random number + * + * \returns a generated random integer in range + */ +Sint32 SDLTest_RandomIntegerInRange(Sint32 min, Sint32 max); + + +/* + * Generates random null-terminated string. The minimum length for + * the string is 1 character, maximum length for the string is 255 + * characters and it can contain ASCII characters from 32 to 126. + * + * Note: Returned string needs to be deallocated. + * + * \returns a newly allocated random string; or NULL if length was invalid or string could not be allocated. + */ +char * SDLTest_RandomAsciiString(void); + + +/* + * Generates random null-terminated string. The maximum length for + * the string is defined by the maxLength parameter. + * String can contain ASCII characters from 32 to 126. + * + * Note: Returned string needs to be deallocated. + * + * \param maxLength The maximum length of the generated string. + * + * \returns a newly allocated random string; or NULL if maxLength was invalid or string could not be allocated. + */ +char * SDLTest_RandomAsciiStringWithMaximumLength(int maxLength); + + +/* + * Generates random null-terminated string. The length for + * the string is defined by the size parameter. + * String can contain ASCII characters from 32 to 126. + * + * Note: Returned string needs to be deallocated. + * + * \param size The length of the generated string + * + * \returns a newly allocated random string; or NULL if size was invalid or string could not be allocated. + */ +char * SDLTest_RandomAsciiStringOfSize(int size); + + +/* + * Get the invocation count for the fuzzer since last ...FuzzerInit. + * + * \returns the invocation count. + */ +int SDLTest_GetFuzzerInvocationCount(void); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_test_fuzzer_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_test_harness.h b/lib/windows/include/SDL2/SDL_test_harness.h new file mode 100644 index 0000000..cfd62e8 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_test_harness.h @@ -0,0 +1,134 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* + * \file SDL_test_harness.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* + Defines types for test case definitions and the test execution harness API. + + Based on original GSOC code by Markus Kauppila +*/ + +#ifndef SDL_test_h_arness_h +#define SDL_test_h_arness_h + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + + +/* ! Definitions for test case structures */ +#define TEST_ENABLED 1 +#define TEST_DISABLED 0 + +/* ! Definition of all the possible test return values of the test case method */ +#define TEST_ABORTED -1 +#define TEST_STARTED 0 +#define TEST_COMPLETED 1 +#define TEST_SKIPPED 2 + +/* ! Definition of all the possible test results for the harness */ +#define TEST_RESULT_PASSED 0 +#define TEST_RESULT_FAILED 1 +#define TEST_RESULT_NO_ASSERT 2 +#define TEST_RESULT_SKIPPED 3 +#define TEST_RESULT_SETUP_FAILURE 4 + +/* !< Function pointer to a test case setup function (run before every test) */ +typedef void (*SDLTest_TestCaseSetUpFp)(void *arg); + +/* !< Function pointer to a test case function */ +typedef int (*SDLTest_TestCaseFp)(void *arg); + +/* !< Function pointer to a test case teardown function (run after every test) */ +typedef void (*SDLTest_TestCaseTearDownFp)(void *arg); + +/* + * Holds information about a single test case. + */ +typedef struct SDLTest_TestCaseReference { + /* !< Func2Stress */ + SDLTest_TestCaseFp testCase; + /* !< Short name (or function name) "Func2Stress" */ + const char *name; + /* !< Long name or full description "This test pushes func2() to the limit." */ + const char *description; + /* !< Set to TEST_ENABLED or TEST_DISABLED (test won't be run) */ + int enabled; +} SDLTest_TestCaseReference; + +/* + * Holds information about a test suite (multiple test cases). + */ +typedef struct SDLTest_TestSuiteReference { + /* !< "PlatformSuite" */ + const char *name; + /* !< The function that is run before each test. NULL skips. */ + SDLTest_TestCaseSetUpFp testSetUp; + /* !< The test cases that are run as part of the suite. Last item should be NULL. */ + const SDLTest_TestCaseReference **testCases; + /* !< The function that is run after each test. NULL skips. */ + SDLTest_TestCaseTearDownFp testTearDown; +} SDLTest_TestSuiteReference; + + +/* + * \brief Generates a random run seed string for the harness. The generated seed will contain alphanumeric characters (0-9A-Z). + * + * Note: The returned string needs to be deallocated by the caller. + * + * \param length The length of the seed string to generate + * + * \returns the generated seed string + */ +char *SDLTest_GenerateRunSeed(const int length); + +/* + * \brief Execute a test suite using the given run seed and execution key. + * + * \param testSuites Suites containing the test case. + * \param userRunSeed Custom run seed provided by user, or NULL to autogenerate one. + * \param userExecKey Custom execution key provided by user, or 0 to autogenerate one. + * \param filter Filter specification. NULL disables. Case sensitive. + * \param testIterations Number of iterations to run each test case. + * + * \returns the test run result: 0 when all tests passed, 1 if any tests failed. + */ +int SDLTest_RunSuites(SDLTest_TestSuiteReference *testSuites[], const char *userRunSeed, Uint64 userExecKey, const char *filter, int testIterations); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_test_h_arness_h */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_test_images.h b/lib/windows/include/SDL2/SDL_test_images.h new file mode 100644 index 0000000..d593a31 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_test_images.h @@ -0,0 +1,78 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* + * \file SDL_test_images.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* + + Defines some images for tests. + +*/ + +#ifndef SDL_test_images_h_ +#define SDL_test_images_h_ + +#include "SDL.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* + *Type for test images. + */ +typedef struct SDLTest_SurfaceImage_s { + int width; + int height; + unsigned int bytes_per_pixel; /* 3:RGB, 4:RGBA */ + const char *pixel_data; +} SDLTest_SurfaceImage_t; + +/* Test images */ +SDL_Surface *SDLTest_ImageBlit(void); +SDL_Surface *SDLTest_ImageBlitColor(void); +SDL_Surface *SDLTest_ImageBlitAlpha(void); +SDL_Surface *SDLTest_ImageBlitBlendAdd(void); +SDL_Surface *SDLTest_ImageBlitBlend(void); +SDL_Surface *SDLTest_ImageBlitBlendMod(void); +SDL_Surface *SDLTest_ImageBlitBlendNone(void); +SDL_Surface *SDLTest_ImageBlitBlendAll(void); +SDL_Surface *SDLTest_ImageFace(void); +SDL_Surface *SDLTest_ImagePrimitives(void); +SDL_Surface *SDLTest_ImagePrimitivesBlend(void); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_test_images_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_test_log.h b/lib/windows/include/SDL2/SDL_test_log.h new file mode 100644 index 0000000..6f7f661 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_test_log.h @@ -0,0 +1,67 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* + * \file SDL_test_log.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* + * + * Wrapper to log in the TEST category + * + */ + +#ifndef SDL_test_log_h_ +#define SDL_test_log_h_ + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* + * \brief Prints given message with a timestamp in the TEST category and INFO priority. + * + * \param fmt Message to be logged + */ +void SDLTest_Log(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1); + +/* + * \brief Prints given message with a timestamp in the TEST category and the ERROR priority. + * + * \param fmt Message to be logged + */ +void SDLTest_LogError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_test_log_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_test_md5.h b/lib/windows/include/SDL2/SDL_test_md5.h new file mode 100644 index 0000000..edd7945 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_test_md5.h @@ -0,0 +1,129 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* + * \file SDL_test_md5.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* + *********************************************************************** + ** Header file for implementation of MD5 ** + ** RSA Data Security, Inc. MD5 Message-Digest Algorithm ** + ** Created: 2/17/90 RLR ** + ** Revised: 12/27/90 SRD,AJ,BSK,JT Reference C version ** + ** Revised (for MD5): RLR 4/27/91 ** + ** -- G modified to have y&~z instead of y&z ** + ** -- FF, GG, HH modified to add in last register done ** + ** -- Access pattern: round 2 works mod 5, round 3 works mod 3 ** + ** -- distinct additive constant for each step ** + ** -- round 4 added, working mod 7 ** + *********************************************************************** +*/ + +/* + *********************************************************************** + ** Message-digest routines: ** + ** To form the message digest for a message M ** + ** (1) Initialize a context buffer mdContext using MD5Init ** + ** (2) Call MD5Update on mdContext and M ** + ** (3) Call MD5Final on mdContext ** + ** The message digest is now in mdContext->digest[0...15] ** + *********************************************************************** +*/ + +#ifndef SDL_test_md5_h_ +#define SDL_test_md5_h_ + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* ------------ Definitions --------- */ + +/* typedef a 32-bit type */ + typedef unsigned long int MD5UINT4; + +/* Data structure for MD5 (Message-Digest) computation */ + typedef struct { + MD5UINT4 i[2]; /* number of _bits_ handled mod 2^64 */ + MD5UINT4 buf[4]; /* scratch buffer */ + unsigned char in[64]; /* input buffer */ + unsigned char digest[16]; /* actual digest after Md5Final call */ + } SDLTest_Md5Context; + +/* ---------- Function Prototypes ------------- */ + +/* + * \brief initialize the context + * + * \param mdContext pointer to context variable + * + * Note: The function initializes the message-digest context + * mdContext. Call before each new use of the context - + * all fields are set to zero. + */ + void SDLTest_Md5Init(SDLTest_Md5Context * mdContext); + + +/* + * \brief update digest from variable length data + * + * \param mdContext pointer to context variable + * \param inBuf pointer to data array/string + * \param inLen length of data array/string + * + * Note: The function updates the message-digest context to account + * for the presence of each of the characters inBuf[0..inLen-1] + * in the message whose digest is being computed. +*/ + + void SDLTest_Md5Update(SDLTest_Md5Context * mdContext, unsigned char *inBuf, + unsigned int inLen); + + +/* + * \brief complete digest computation + * + * \param mdContext pointer to context variable + * + * Note: The function terminates the message-digest computation and + * ends with the desired message digest in mdContext.digest[0..15]. + * Always call before using the digest[] variable. +*/ + + void SDLTest_Md5Final(SDLTest_Md5Context * mdContext); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_test_md5_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_test_memory.h b/lib/windows/include/SDL2/SDL_test_memory.h new file mode 100644 index 0000000..e789fa8 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_test_memory.h @@ -0,0 +1,63 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* + * \file SDL_test_memory.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +#ifndef SDL_test_memory_h_ +#define SDL_test_memory_h_ + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + + +/* + * \brief Start tracking SDL memory allocations + * + * \note This should be called before any other SDL functions for complete tracking coverage + */ +int SDLTest_TrackAllocations(void); + +/* + * \brief Print a log of any outstanding allocations + * + * \note This can be called after SDL_Quit() + */ +void SDLTest_LogAllocations(void); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_test_memory_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_test_random.h b/lib/windows/include/SDL2/SDL_test_random.h new file mode 100644 index 0000000..05d6d3e --- /dev/null +++ b/lib/windows/include/SDL2/SDL_test_random.h @@ -0,0 +1,115 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* + * \file SDL_test_random.h + * + * Include file for SDL test framework. + * + * This code is a part of the SDL2_test library, not the main SDL library. + */ + +/* + + A "32-bit Multiply with carry random number generator. Very fast. + Includes a list of recommended multipliers. + + multiply-with-carry generator: x(n) = a*x(n-1) + carry mod 2^32. + period: (a*2^31)-1 + +*/ + +#ifndef SDL_test_random_h_ +#define SDL_test_random_h_ + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* --- Definitions */ + +/* + * Macros that return a random number in a specific format. + */ +#define SDLTest_RandomInt(c) ((int)SDLTest_Random(c)) + +/* + * Context structure for the random number generator state. + */ + typedef struct { + unsigned int a; + unsigned int x; + unsigned int c; + unsigned int ah; + unsigned int al; + } SDLTest_RandomContext; + + +/* --- Function prototypes */ + +/* + * \brief Initialize random number generator with two integers. + * + * Note: The random sequence of numbers returned by ...Random() is the + * same for the same two integers and has a period of 2^31. + * + * \param rndContext pointer to context structure + * \param xi integer that defines the random sequence + * \param ci integer that defines the random sequence + * + */ + void SDLTest_RandomInit(SDLTest_RandomContext * rndContext, unsigned int xi, + unsigned int ci); + +/* + * \brief Initialize random number generator based on current system time. + * + * \param rndContext pointer to context structure + * + */ + void SDLTest_RandomInitTime(SDLTest_RandomContext *rndContext); + + +/* + * \brief Initialize random number generator based on current system time. + * + * Note: ...RandomInit() or ...RandomInitTime() must have been called + * before using this function. + * + * \param rndContext pointer to context structure + * + * \returns a random number (32bit unsigned integer) + * + */ + unsigned int SDLTest_Random(SDLTest_RandomContext *rndContext); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_test_random_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_thread.h b/lib/windows/include/SDL2/SDL_thread.h new file mode 100644 index 0000000..ac405d8 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_thread.h @@ -0,0 +1,468 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_thread_h_ +#define SDL_thread_h_ + +/** + * # CategoryThread + * + * Header for the SDL thread management routines. + */ + +#include "SDL_stdinc.h" +#include "SDL_error.h" + +/* Thread synchronization primitives */ +#include "SDL_atomic.h" +#include "SDL_mutex.h" + +#if (defined(__WIN32__) || defined(__GDK__)) && !defined(__WINRT__) +#include /* _beginthreadex() and _endthreadex() */ +#endif +#if defined(__OS2__) /* for _beginthread() and _endthread() */ +#ifndef __EMX__ +#include +#else +#include +#endif +#endif + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* The SDL thread structure, defined in SDL_thread.c */ +struct SDL_Thread; +typedef struct SDL_Thread SDL_Thread; + +/* The SDL thread ID */ +typedef unsigned long SDL_threadID; + +/* Thread local storage ID, 0 is the invalid ID */ +typedef unsigned int SDL_TLSID; + +/** + * The SDL thread priority. + * + * SDL will make system changes as necessary in order to apply the thread + * priority. Code which attempts to control thread state related to priority + * should be aware that calling SDL_SetThreadPriority may alter such state. + * SDL_HINT_THREAD_PRIORITY_POLICY can be used to control aspects of this + * behavior. + * + * On many systems you require special privileges to set high or time critical + * priority. + */ +typedef enum SDL_ThreadPriority { + SDL_THREAD_PRIORITY_LOW, + SDL_THREAD_PRIORITY_NORMAL, + SDL_THREAD_PRIORITY_HIGH, + SDL_THREAD_PRIORITY_TIME_CRITICAL +} SDL_ThreadPriority; + +/** + * The function passed to SDL_CreateThread(). + * + * \param data what was passed as `data` to SDL_CreateThread(). + * \returns a value that can be reported through SDL_WaitThread(). + */ +typedef int (SDLCALL * SDL_ThreadFunction) (void *data); + + +#if (defined(__WIN32__) || defined(__GDK__)) && !defined(__WINRT__) +/** + * \file SDL_thread.h + * + * We compile SDL into a DLL. This means, that it's the DLL which + * creates a new thread for the calling process with the SDL_CreateThread() + * API. There is a problem with this, that only the RTL of the SDL2.DLL will + * be initialized for those threads, and not the RTL of the calling + * application! + * + * To solve this, we make a little hack here. + * + * We'll always use the caller's _beginthread() and _endthread() APIs to + * start a new thread. This way, if it's the SDL2.DLL which uses this API, + * then the RTL of SDL2.DLL will be used to create the new thread, and if it's + * the application, then the RTL of the application will be used. + * + * So, in short: + * Always use the _beginthread() and _endthread() of the calling runtime + * library! + */ +#define SDL_PASSED_BEGINTHREAD_ENDTHREAD + +typedef uintptr_t (__cdecl * pfnSDL_CurrentBeginThread) + (void *, unsigned, unsigned (__stdcall *func)(void *), + void * /*arg*/, unsigned, unsigned * /* threadID */); +typedef void (__cdecl * pfnSDL_CurrentEndThread) (unsigned code); + +#ifndef SDL_beginthread +#define SDL_beginthread _beginthreadex +#endif +#ifndef SDL_endthread +#define SDL_endthread _endthreadex +#endif + +extern DECLSPEC SDL_Thread *SDLCALL +SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data, + pfnSDL_CurrentBeginThread pfnBeginThread, + pfnSDL_CurrentEndThread pfnEndThread); + +extern DECLSPEC SDL_Thread *SDLCALL +SDL_CreateThreadWithStackSize(SDL_ThreadFunction fn, + const char *name, const size_t stacksize, void *data, + pfnSDL_CurrentBeginThread pfnBeginThread, + pfnSDL_CurrentEndThread pfnEndThread); + + +#if defined(SDL_CreateThread) && SDL_DYNAMIC_API +#undef SDL_CreateThread +#define SDL_CreateThread(fn, name, data) SDL_CreateThread_REAL(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) +#undef SDL_CreateThreadWithStackSize +#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize_REAL(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) +#else +#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) +#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) +#endif + +#elif defined(__OS2__) +/* + * just like the windows case above: We compile SDL2 + * into a dll with Watcom's runtime statically linked. + */ +#define SDL_PASSED_BEGINTHREAD_ENDTHREAD + +typedef int (*pfnSDL_CurrentBeginThread)(void (*func)(void *), void *, unsigned, void * /*arg*/); +typedef void (*pfnSDL_CurrentEndThread)(void); + +#ifndef SDL_beginthread +#define SDL_beginthread _beginthread +#endif +#ifndef SDL_endthread +#define SDL_endthread _endthread +#endif + +extern DECLSPEC SDL_Thread *SDLCALL +SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data, + pfnSDL_CurrentBeginThread pfnBeginThread, + pfnSDL_CurrentEndThread pfnEndThread); +extern DECLSPEC SDL_Thread *SDLCALL +SDL_CreateThreadWithStackSize(SDL_ThreadFunction fn, const char *name, const size_t stacksize, void *data, + pfnSDL_CurrentBeginThread pfnBeginThread, + pfnSDL_CurrentEndThread pfnEndThread); + +#if defined(SDL_CreateThread) && SDL_DYNAMIC_API +#undef SDL_CreateThread +#define SDL_CreateThread(fn, name, data) SDL_CreateThread_REAL(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) +#undef SDL_CreateThreadWithStackSize +#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize_REAL(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) +#else +#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) +#define SDL_CreateThreadWithStackSize(fn, name, stacksize, data) SDL_CreateThreadWithStackSize(fn, name, stacksize, data, (pfnSDL_CurrentBeginThread)SDL_beginthread, (pfnSDL_CurrentEndThread)SDL_endthread) +#endif + +#else + +/** + * Create a new thread with a default stack size. + * + * This is equivalent to calling: + * + * ```c + * SDL_CreateThreadWithStackSize(fn, name, 0, data); + * ``` + * + * \param fn the SDL_ThreadFunction function to call in the new thread. + * \param name the name of the thread. + * \param data a pointer that is passed to `fn`. + * \returns an opaque pointer to the new thread object on success, NULL if the + * new thread could not be created; call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateThreadWithStackSize + * \sa SDL_WaitThread + */ +extern DECLSPEC SDL_Thread *SDLCALL +SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data); + +/** + * Create a new thread with a specific stack size. + * + * SDL makes an attempt to report `name` to the system, so that debuggers can + * display it. Not all platforms support this. + * + * Thread naming is a little complicated: Most systems have very small limits + * for the string length (Haiku has 32 bytes, Linux currently has 16, Visual + * C++ 6.0 has _nine_!), and possibly other arbitrary rules. You'll have to + * see what happens with your system's debugger. The name should be UTF-8 (but + * using the naming limits of C identifiers is a better bet). There are no + * requirements for thread naming conventions, so long as the string is + * null-terminated UTF-8, but these guidelines are helpful in choosing a name: + * + * https://stackoverflow.com/questions/149932/naming-conventions-for-threads + * + * If a system imposes requirements, SDL will try to munge the string for it + * (truncate, etc), but the original string contents will be available from + * SDL_GetThreadName(). + * + * The size (in bytes) of the new stack can be specified. Zero means "use the + * system default" which might be wildly different between platforms. x86 + * Linux generally defaults to eight megabytes, an embedded device might be a + * few kilobytes instead. You generally need to specify a stack that is a + * multiple of the system's page size (in many cases, this is 4 kilobytes, but + * check your system documentation). + * + * In SDL 2.1, stack size will be folded into the original SDL_CreateThread + * function, but for backwards compatibility, this is currently a separate + * function. + * + * \param fn the SDL_ThreadFunction function to call in the new thread. + * \param name the name of the thread. + * \param stacksize the size, in bytes, to allocate for the new thread stack. + * \param data a pointer that is passed to `fn`. + * \returns an opaque pointer to the new thread object on success, NULL if the + * new thread could not be created; call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.9. + * + * \sa SDL_WaitThread + */ +extern DECLSPEC SDL_Thread *SDLCALL +SDL_CreateThreadWithStackSize(SDL_ThreadFunction fn, const char *name, const size_t stacksize, void *data); + +#endif + +/** + * Get the thread name as it was specified in SDL_CreateThread(). + * + * This is internal memory, not to be freed by the caller, and remains valid + * until the specified thread is cleaned up by SDL_WaitThread(). + * + * \param thread the thread to query. + * \returns a pointer to a UTF-8 string that names the specified thread, or + * NULL if it doesn't have a name. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateThread + */ +extern DECLSPEC const char *SDLCALL SDL_GetThreadName(SDL_Thread *thread); + +/** + * Get the thread identifier for the current thread. + * + * This thread identifier is as reported by the underlying operating system. + * If SDL is running on a platform that does not support threads the return + * value will always be zero. + * + * This function also returns a valid thread ID when called from the main + * thread. + * + * \returns the ID of the current thread. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetThreadID + */ +extern DECLSPEC SDL_threadID SDLCALL SDL_ThreadID(void); + +/** + * Get the thread identifier for the specified thread. + * + * This thread identifier is as reported by the underlying operating system. + * If SDL is running on a platform that does not support threads the return + * value will always be zero. + * + * \param thread the thread to query. + * \returns the ID of the specified thread, or the ID of the current thread if + * `thread` is NULL. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_ThreadID + */ +extern DECLSPEC SDL_threadID SDLCALL SDL_GetThreadID(SDL_Thread * thread); + +/** + * Set the priority for the current thread. + * + * Note that some platforms will not let you alter the priority (or at least, + * promote the thread to a higher priority) at all, and some require you to be + * an administrator account. Be prepared for this to fail. + * + * \param priority the SDL_ThreadPriority to set. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC int SDLCALL SDL_SetThreadPriority(SDL_ThreadPriority priority); + +/** + * Wait for a thread to finish. + * + * Threads that haven't been detached will remain (as a "zombie") until this + * function cleans them up. Not doing so is a resource leak. + * + * Once a thread has been cleaned up through this function, the SDL_Thread + * that references it becomes invalid and should not be referenced again. As + * such, only one thread may call SDL_WaitThread() on another. + * + * The return code for the thread function is placed in the area pointed to by + * `status`, if `status` is not NULL. + * + * You may not wait on a thread that has been used in a call to + * SDL_DetachThread(). Use either that function or this one, but not both, or + * behavior is undefined. + * + * It is safe to pass a NULL thread to this function; it is a no-op. + * + * Note that the thread pointer is freed by this function and is not valid + * afterward. + * + * \param thread the SDL_Thread pointer that was returned from the + * SDL_CreateThread() call that started this thread. + * \param status pointer to an integer that will receive the value returned + * from the thread function by its 'return', or NULL to not + * receive such value back. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateThread + * \sa SDL_DetachThread + */ +extern DECLSPEC void SDLCALL SDL_WaitThread(SDL_Thread * thread, int *status); + +/** + * Let a thread clean up on exit without intervention. + * + * A thread may be "detached" to signify that it should not remain until + * another thread has called SDL_WaitThread() on it. Detaching a thread is + * useful for long-running threads that nothing needs to synchronize with or + * further manage. When a detached thread is done, it simply goes away. + * + * There is no way to recover the return code of a detached thread. If you + * need this, don't detach the thread and instead use SDL_WaitThread(). + * + * Once a thread is detached, you should usually assume the SDL_Thread isn't + * safe to reference again, as it will become invalid immediately upon the + * detached thread's exit, instead of remaining until someone has called + * SDL_WaitThread() to finally clean it up. As such, don't detach the same + * thread more than once. + * + * If a thread has already exited when passed to SDL_DetachThread(), it will + * stop waiting for a call to SDL_WaitThread() and clean up immediately. It is + * not safe to detach a thread that might be used with SDL_WaitThread(). + * + * You may not call SDL_WaitThread() on a thread that has been detached. Use + * either that function or this one, but not both, or behavior is undefined. + * + * It is safe to pass NULL to this function; it is a no-op. + * + * \param thread the SDL_Thread pointer that was returned from the + * SDL_CreateThread() call that started this thread. + * + * \since This function is available since SDL 2.0.2. + * + * \sa SDL_CreateThread + * \sa SDL_WaitThread + */ +extern DECLSPEC void SDLCALL SDL_DetachThread(SDL_Thread * thread); + +/** + * Create a piece of thread-local storage. + * + * This creates an identifier that is globally visible to all threads but + * refers to data that is thread-specific. + * + * \returns the newly created thread local storage identifier or 0 on error. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_TLSGet + * \sa SDL_TLSSet + */ +extern DECLSPEC SDL_TLSID SDLCALL SDL_TLSCreate(void); + +/** + * Get the current thread's value associated with a thread local storage ID. + * + * \param id the thread local storage ID. + * \returns the value associated with the ID for the current thread or NULL if + * no value has been set; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_TLSCreate + * \sa SDL_TLSSet + */ +extern DECLSPEC void * SDLCALL SDL_TLSGet(SDL_TLSID id); + +typedef void (SDLCALL *SDL_TLSDestructorCallback)(void*); + +/** + * Set the current thread's value associated with a thread local storage ID. + * + * The function prototype for `destructor` is: + * + * ```c + * void destructor(void *value) + * ``` + * + * where its parameter `value` is what was passed as `value` to SDL_TLSSet(). + * + * \param id the thread local storage ID. + * \param value the value to associate with the ID for the current thread. + * \param destructor a function called when the thread exits, to free the + * value. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_TLSCreate + * \sa SDL_TLSGet + */ +extern DECLSPEC int SDLCALL SDL_TLSSet(SDL_TLSID id, const void *value, SDL_TLSDestructorCallback destructor); + +/** + * Cleanup all TLS data for this thread. + * + * \since This function is available since SDL 2.0.16. + */ +extern DECLSPEC void SDLCALL SDL_TLSCleanup(void); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_thread_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_timer.h b/lib/windows/include/SDL2/SDL_timer.h new file mode 100644 index 0000000..6096969 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_timer.h @@ -0,0 +1,222 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +#ifndef SDL_timer_h_ +#define SDL_timer_h_ + +/** + * # CategoryTimer + * + * Header for the SDL time management routines. + */ + +#include "SDL_stdinc.h" +#include "SDL_error.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Get the number of milliseconds since SDL library initialization. + * + * This value wraps if the program runs for more than ~49 days. + * + * This function is not recommended as of SDL 2.0.18; use SDL_GetTicks64() + * instead, where the value doesn't wrap every ~49 days. There are places in + * SDL where we provide a 32-bit timestamp that can not change without + * breaking binary compatibility, though, so this function isn't officially + * deprecated. + * + * \returns an unsigned 32-bit value representing the number of milliseconds + * since the SDL library initialized. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_TICKS_PASSED + */ +extern DECLSPEC Uint32 SDLCALL SDL_GetTicks(void); + +/** + * Get the number of milliseconds since SDL library initialization. + * + * Note that you should not use the SDL_TICKS_PASSED macro with values + * returned by this function, as that macro does clever math to compensate for + * the 32-bit overflow every ~49 days that SDL_GetTicks() suffers from. 64-bit + * values from this function can be safely compared directly. + * + * For example, if you want to wait 100 ms, you could do this: + * + * ```c + * const Uint64 timeout = SDL_GetTicks64() + 100; + * while (SDL_GetTicks64() < timeout) { + * // ... do work until timeout has elapsed + * } + * ``` + * + * \returns an unsigned 64-bit value representing the number of milliseconds + * since the SDL library initialized. + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC Uint64 SDLCALL SDL_GetTicks64(void); + +/** + * Compare 32-bit SDL ticks values, and return true if `A` has passed `B`. + * + * This should be used with results from SDL_GetTicks(), as this macro + * attempts to deal with the 32-bit counter wrapping back to zero every ~49 + * days, but should _not_ be used with SDL_GetTicks64(), which does not have + * that problem. + * + * For example, with SDL_GetTicks(), if you want to wait 100 ms, you could do + * this: + * + * ```c + * const Uint32 timeout = SDL_GetTicks() + 100; + * while (!SDL_TICKS_PASSED(SDL_GetTicks(), timeout)) { + * // ... do work until timeout has elapsed + * } + * ``` + * + * Note that this does not handle tick differences greater than 2^31 so take + * care when using the above kind of code with large timeout delays (tens of + * days). + */ +#define SDL_TICKS_PASSED(A, B) ((Sint32)((B) - (A)) <= 0) + +/** + * Get the current value of the high resolution counter. + * + * This function is typically used for profiling. + * + * The counter values are only meaningful relative to each other. Differences + * between values can be converted to times by using + * SDL_GetPerformanceFrequency(). + * + * \returns the current counter value. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetPerformanceFrequency + */ +extern DECLSPEC Uint64 SDLCALL SDL_GetPerformanceCounter(void); + +/** + * Get the count per second of the high resolution counter. + * + * \returns a platform-specific count per second. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetPerformanceCounter + */ +extern DECLSPEC Uint64 SDLCALL SDL_GetPerformanceFrequency(void); + +/** + * Wait a specified number of milliseconds before returning. + * + * This function waits a specified number of milliseconds before returning. It + * waits at least the specified time, but possibly longer due to OS + * scheduling. + * + * \param ms the number of milliseconds to delay. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC void SDLCALL SDL_Delay(Uint32 ms); + +/** + * Function prototype for the timer callback function. + * + * The callback function is passed the current timer interval and returns the + * next timer interval. If the returned value is the same as the one passed + * in, the periodic alarm continues, otherwise a new alarm is scheduled. If + * the callback returns 0, the periodic alarm is cancelled. + */ +typedef Uint32 (SDLCALL * SDL_TimerCallback) (Uint32 interval, void *param); + +/** + * Definition of the timer ID type. + */ +typedef int SDL_TimerID; + +/** + * Call a callback function at a future time. + * + * If you use this function, you must pass `SDL_INIT_TIMER` to SDL_Init(). + * + * The callback function is passed the current timer interval and the user + * supplied parameter from the SDL_AddTimer() call and should return the next + * timer interval. If the value returned from the callback is 0, the timer is + * canceled. + * + * The callback is run on a separate thread. + * + * Timers take into account the amount of time it took to execute the + * callback. For example, if the callback took 250 ms to execute and returned + * 1000 (ms), the timer would only wait another 750 ms before its next + * iteration. + * + * Timing may be inexact due to OS scheduling. Be sure to note the current + * time with SDL_GetTicks() or SDL_GetPerformanceCounter() in case your + * callback needs to adjust for variances. + * + * \param interval the timer delay, in milliseconds, passed to `callback`. + * \param callback the SDL_TimerCallback function to call when the specified + * `interval` elapses. + * \param param a pointer that is passed to `callback`. + * \returns a timer ID or 0 if an error occurs; call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RemoveTimer + */ +extern DECLSPEC SDL_TimerID SDLCALL SDL_AddTimer(Uint32 interval, + SDL_TimerCallback callback, + void *param); + +/** + * Remove a timer created with SDL_AddTimer(). + * + * \param id the ID of the timer to remove. + * \returns SDL_TRUE if the timer is removed or SDL_FALSE if the timer wasn't + * found. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_AddTimer + */ +extern DECLSPEC SDL_bool SDLCALL SDL_RemoveTimer(SDL_TimerID id); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_timer_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_touch.h b/lib/windows/include/SDL2/SDL_touch.h new file mode 100644 index 0000000..80a0fef --- /dev/null +++ b/lib/windows/include/SDL2/SDL_touch.h @@ -0,0 +1,150 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryTouch + * + * Include file for SDL touch event handling. + */ + +#ifndef SDL_touch_h_ +#define SDL_touch_h_ + +#include "SDL_stdinc.h" +#include "SDL_error.h" +#include "SDL_video.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +typedef Sint64 SDL_TouchID; +typedef Sint64 SDL_FingerID; + +typedef enum +{ + SDL_TOUCH_DEVICE_INVALID = -1, + SDL_TOUCH_DEVICE_DIRECT, /* touch screen with window-relative coordinates */ + SDL_TOUCH_DEVICE_INDIRECT_ABSOLUTE, /* trackpad with absolute device coordinates */ + SDL_TOUCH_DEVICE_INDIRECT_RELATIVE /* trackpad with screen cursor-relative coordinates */ +} SDL_TouchDeviceType; + +typedef struct SDL_Finger +{ + SDL_FingerID id; + float x; + float y; + float pressure; +} SDL_Finger; + +/* Used as the device ID for mouse events simulated with touch input */ +#define SDL_TOUCH_MOUSEID ((Uint32)-1) + +/* Used as the SDL_TouchID for touch events simulated with mouse input */ +#define SDL_MOUSE_TOUCHID ((Sint64)-1) + + +/** + * Get the number of registered touch devices. + * + * On some platforms SDL first sees the touch device if it was actually used. + * Therefore SDL_GetNumTouchDevices() may return 0 although devices are + * available. After using all devices at least once the number will be + * correct. + * + * This was fixed for Android in SDL 2.0.1. + * + * \returns the number of registered touch devices. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetTouchDevice + */ +extern DECLSPEC int SDLCALL SDL_GetNumTouchDevices(void); + +/** + * Get the touch ID with the given index. + * + * \param index the touch device index. + * \returns the touch ID with the given index on success or 0 if the index is + * invalid; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetNumTouchDevices + */ +extern DECLSPEC SDL_TouchID SDLCALL SDL_GetTouchDevice(int index); + +/** + * Get the touch device name as reported from the driver or NULL if the index + * is invalid. + * + * \since This function is available since SDL 2.0.22. + */ +extern DECLSPEC const char* SDLCALL SDL_GetTouchName(int index); + +/** + * Get the type of the given touch device. + * + * \since This function is available since SDL 2.0.10. + */ +extern DECLSPEC SDL_TouchDeviceType SDLCALL SDL_GetTouchDeviceType(SDL_TouchID touchID); + +/** + * Get the number of active fingers for a given touch device. + * + * \param touchID the ID of a touch device. + * \returns the number of active fingers for a given touch device on success + * or 0 on failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetTouchFinger + */ +extern DECLSPEC int SDLCALL SDL_GetNumTouchFingers(SDL_TouchID touchID); + +/** + * Get the finger object for specified touch device ID and finger index. + * + * The returned resource is owned by SDL and should not be deallocated. + * + * \param touchID the ID of the requested touch device. + * \param index the index of the requested finger. + * \returns a pointer to the SDL_Finger object or NULL if no object at the + * given ID and index could be found. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_RecordGesture + */ +extern DECLSPEC SDL_Finger * SDLCALL SDL_GetTouchFinger(SDL_TouchID touchID, int index); + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_touch_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_types.h b/lib/windows/include/SDL2/SDL_types.h new file mode 100644 index 0000000..cb3b4a8 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_types.h @@ -0,0 +1,24 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* DEPRECATED */ + +#include "SDL_stdinc.h" diff --git a/lib/windows/include/SDL2/SDL_version.h b/lib/windows/include/SDL2/SDL_version.h new file mode 100644 index 0000000..b94e6d8 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_version.h @@ -0,0 +1,205 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryVersion + * + * This header defines the current SDL version. + */ + +#ifndef SDL_version_h_ +#define SDL_version_h_ + +#include "SDL_stdinc.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Information about the version of SDL in use. + * + * Represents the library's version as three levels: major revision + * (increments with massive changes, additions, and enhancements), minor + * revision (increments with backwards-compatible changes to the major + * revision), and patchlevel (increments with fixes to the minor revision). + * + * \sa SDL_VERSION + * \sa SDL_GetVersion + */ +typedef struct SDL_version +{ + Uint8 major; /**< major version */ + Uint8 minor; /**< minor version */ + Uint8 patch; /**< update version */ +} SDL_version; + +/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL +*/ +#define SDL_MAJOR_VERSION 2 +#define SDL_MINOR_VERSION 32 +#define SDL_PATCHLEVEL 10 + +/** + * Macro to determine SDL version program was compiled against. + * + * This macro fills in a SDL_version structure with the version of the library + * you compiled against. This is determined by what header the compiler uses. + * Note that if you dynamically linked the library, you might have a slightly + * newer or older version at runtime. That version can be determined with + * SDL_GetVersion(), which, unlike SDL_VERSION(), is not a macro. + * + * \param x A pointer to a SDL_version struct to initialize. + * + * \sa SDL_version + * \sa SDL_GetVersion + */ +#define SDL_VERSION(x) \ +{ \ + (x)->major = SDL_MAJOR_VERSION; \ + (x)->minor = SDL_MINOR_VERSION; \ + (x)->patch = SDL_PATCHLEVEL; \ +} + +/* TODO: Remove this whole block in SDL 3 */ +#if SDL_MAJOR_VERSION < 3 + +/** + * This macro turns the version numbers into a numeric value: + * + * ``` + * (1,2,3) -> (1203) + * ``` + * + * This assumes that there will never be more than 100 patchlevels. + * + * In versions higher than 2.9.0, the minor version overflows into the + * thousands digit: for example, 2.23.0 is encoded as 4300, and 2.255.99 would + * be encoded as 25799. + * + * This macro will not be available in SDL 3.x. + */ +#define SDL_VERSIONNUM(X, Y, Z) \ + ((X)*1000 + (Y)*100 + (Z)) + +/** + * This is the version number macro for the current SDL version. + * + * In versions higher than 2.9.0, the minor version overflows into the + * thousands digit: for example, 2.23.0 is encoded as 4300. This macro will + * not be available in SDL 3.x. + * + * Deprecated, use SDL_VERSION_ATLEAST or SDL_VERSION instead. + */ +#define SDL_COMPILEDVERSION \ + SDL_VERSIONNUM(SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL) +#endif /* SDL_MAJOR_VERSION < 3 */ + +/** + * This macro will evaluate to true if compiled with SDL at least X.Y.Z. + */ +#define SDL_VERSION_ATLEAST(X, Y, Z) \ + ((SDL_MAJOR_VERSION >= X) && \ + (SDL_MAJOR_VERSION > X || SDL_MINOR_VERSION >= Y) && \ + (SDL_MAJOR_VERSION > X || SDL_MINOR_VERSION > Y || SDL_PATCHLEVEL >= Z)) + +/** + * Get the version of SDL that is linked against your program. + * + * If you are linking to SDL dynamically, then it is possible that the current + * version will be different than the version you compiled against. This + * function returns the current version, while SDL_VERSION() is a macro that + * tells you what version you compiled with. + * + * This function may be called safely at any time, even before SDL_Init(). + * + * \param ver the SDL_version structure that contains the version information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetRevision + */ +extern DECLSPEC void SDLCALL SDL_GetVersion(SDL_version * ver); + +/** + * Get the code revision of SDL that is linked against your program. + * + * This value is the revision of the code you are linked with and may be + * different from the code you are compiling with, which is found in the + * constant SDL_REVISION. + * + * The revision is arbitrary string (a hash value) uniquely identifying the + * exact revision of the SDL library in use, and is only useful in comparing + * against other revisions. It is NOT an incrementing number. + * + * If SDL wasn't built from a git repository with the appropriate tools, this + * will return an empty string. + * + * Prior to SDL 2.0.16, before development moved to GitHub, this returned a + * hash for a Mercurial repository. + * + * You shouldn't use this function for anything but logging it for debugging + * purposes. The string is not intended to be reliable in any way. + * + * \returns an arbitrary string, uniquely identifying the exact revision of + * the SDL library in use. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetVersion + */ +extern DECLSPEC const char *SDLCALL SDL_GetRevision(void); + +/** + * Obsolete function, do not use. + * + * When SDL was hosted in a Mercurial repository, and was built carefully, + * this would return the revision number that the build was created from. This + * number was not reliable for several reasons, but more importantly, SDL is + * now hosted in a git repository, which does not offer numbers at all, only + * hashes. This function only ever returns zero now. Don't use it. + * + * Before SDL 2.0.16, this might have returned an unreliable, but non-zero + * number. + * + * \deprecated Use SDL_GetRevision() instead; if SDL was carefully built, it + * will return a git hash. + * + * \returns zero, always, in modern SDL releases. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetRevision + */ +extern SDL_DEPRECATED DECLSPEC int SDLCALL SDL_GetRevisionNumber(void); + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_version_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_video.h b/lib/windows/include/SDL2/SDL_video.h new file mode 100644 index 0000000..2db5552 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_video.h @@ -0,0 +1,2228 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * # CategoryVideo + * + * Header file for SDL video functions. + */ + +#ifndef SDL_video_h_ +#define SDL_video_h_ + +#include "SDL_stdinc.h" +#include "SDL_pixels.h" +#include "SDL_rect.h" +#include "SDL_surface.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * The structure that defines a display mode + * + * \sa SDL_GetNumDisplayModes + * \sa SDL_GetDisplayMode + * \sa SDL_GetDesktopDisplayMode + * \sa SDL_GetCurrentDisplayMode + * \sa SDL_GetClosestDisplayMode + * \sa SDL_SetWindowDisplayMode + * \sa SDL_GetWindowDisplayMode + */ +typedef struct SDL_DisplayMode +{ + Uint32 format; /**< pixel format */ + int w; /**< width, in screen coordinates */ + int h; /**< height, in screen coordinates */ + int refresh_rate; /**< refresh rate (or zero for unspecified) */ + void *driverdata; /**< driver-specific data, initialize to 0 */ +} SDL_DisplayMode; + +/** + * The opaque type used to identify a window. + * + * \sa SDL_CreateWindow + * \sa SDL_CreateWindowFrom + * \sa SDL_DestroyWindow + * \sa SDL_FlashWindow + * \sa SDL_GetWindowData + * \sa SDL_GetWindowFlags + * \sa SDL_GetWindowGrab + * \sa SDL_GetWindowKeyboardGrab + * \sa SDL_GetWindowMouseGrab + * \sa SDL_GetWindowPosition + * \sa SDL_GetWindowSize + * \sa SDL_GetWindowTitle + * \sa SDL_HideWindow + * \sa SDL_MaximizeWindow + * \sa SDL_MinimizeWindow + * \sa SDL_RaiseWindow + * \sa SDL_RestoreWindow + * \sa SDL_SetWindowData + * \sa SDL_SetWindowFullscreen + * \sa SDL_SetWindowGrab + * \sa SDL_SetWindowKeyboardGrab + * \sa SDL_SetWindowMouseGrab + * \sa SDL_SetWindowIcon + * \sa SDL_SetWindowPosition + * \sa SDL_SetWindowSize + * \sa SDL_SetWindowBordered + * \sa SDL_SetWindowResizable + * \sa SDL_SetWindowTitle + * \sa SDL_ShowWindow + */ +typedef struct SDL_Window SDL_Window; + +/** + * The flags on a window + * + * \sa SDL_GetWindowFlags + */ +typedef enum SDL_WindowFlags +{ + SDL_WINDOW_FULLSCREEN = 0x00000001, /**< fullscreen window */ + SDL_WINDOW_OPENGL = 0x00000002, /**< window usable with OpenGL context */ + SDL_WINDOW_SHOWN = 0x00000004, /**< window is visible */ + SDL_WINDOW_HIDDEN = 0x00000008, /**< window is not visible */ + SDL_WINDOW_BORDERLESS = 0x00000010, /**< no window decoration */ + SDL_WINDOW_RESIZABLE = 0x00000020, /**< window can be resized */ + SDL_WINDOW_MINIMIZED = 0x00000040, /**< window is minimized */ + SDL_WINDOW_MAXIMIZED = 0x00000080, /**< window is maximized */ + SDL_WINDOW_MOUSE_GRABBED = 0x00000100, /**< window has grabbed mouse input */ + SDL_WINDOW_INPUT_FOCUS = 0x00000200, /**< window has input focus */ + SDL_WINDOW_MOUSE_FOCUS = 0x00000400, /**< window has mouse focus */ + SDL_WINDOW_FULLSCREEN_DESKTOP = ( SDL_WINDOW_FULLSCREEN | 0x00001000 ), + SDL_WINDOW_FOREIGN = 0x00000800, /**< window not created by SDL */ + SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000, /**< window should be created in high-DPI mode if supported. + On macOS NSHighResolutionCapable must be set true in the + application's Info.plist for this to have any effect. */ + SDL_WINDOW_MOUSE_CAPTURE = 0x00004000, /**< window has mouse captured (unrelated to MOUSE_GRABBED) */ + SDL_WINDOW_ALWAYS_ON_TOP = 0x00008000, /**< window should always be above others */ + SDL_WINDOW_SKIP_TASKBAR = 0x00010000, /**< window should not be added to the taskbar */ + SDL_WINDOW_UTILITY = 0x00020000, /**< window should be treated as a utility window */ + SDL_WINDOW_TOOLTIP = 0x00040000, /**< window should be treated as a tooltip */ + SDL_WINDOW_POPUP_MENU = 0x00080000, /**< window should be treated as a popup menu */ + SDL_WINDOW_KEYBOARD_GRABBED = 0x00100000, /**< window has grabbed keyboard input */ + SDL_WINDOW_VULKAN = 0x10000000, /**< window usable for Vulkan surface */ + SDL_WINDOW_METAL = 0x20000000, /**< window usable for Metal view */ + + SDL_WINDOW_INPUT_GRABBED = SDL_WINDOW_MOUSE_GRABBED /**< equivalent to SDL_WINDOW_MOUSE_GRABBED for compatibility */ +} SDL_WindowFlags; + +/** + * Used to indicate that you don't care what the window position is. + */ +#define SDL_WINDOWPOS_UNDEFINED_MASK 0x1FFF0000u +#define SDL_WINDOWPOS_UNDEFINED_DISPLAY(X) (SDL_WINDOWPOS_UNDEFINED_MASK|(X)) +#define SDL_WINDOWPOS_UNDEFINED SDL_WINDOWPOS_UNDEFINED_DISPLAY(0) +#define SDL_WINDOWPOS_ISUNDEFINED(X) \ + (((X)&0xFFFF0000) == SDL_WINDOWPOS_UNDEFINED_MASK) + +/** + * Used to indicate that the window position should be centered. + */ +#define SDL_WINDOWPOS_CENTERED_MASK 0x2FFF0000u +#define SDL_WINDOWPOS_CENTERED_DISPLAY(X) (SDL_WINDOWPOS_CENTERED_MASK|(X)) +#define SDL_WINDOWPOS_CENTERED SDL_WINDOWPOS_CENTERED_DISPLAY(0) +#define SDL_WINDOWPOS_ISCENTERED(X) \ + (((X)&0xFFFF0000) == SDL_WINDOWPOS_CENTERED_MASK) + +/** + * Event subtype for window events + */ +typedef enum SDL_WindowEventID +{ + SDL_WINDOWEVENT_NONE, /**< Never used */ + SDL_WINDOWEVENT_SHOWN, /**< Window has been shown */ + SDL_WINDOWEVENT_HIDDEN, /**< Window has been hidden */ + SDL_WINDOWEVENT_EXPOSED, /**< Window has been exposed and should be + redrawn */ + SDL_WINDOWEVENT_MOVED, /**< Window has been moved to data1, data2 + */ + SDL_WINDOWEVENT_RESIZED, /**< Window has been resized to data1xdata2 */ + SDL_WINDOWEVENT_SIZE_CHANGED, /**< The window size has changed, either as + a result of an API call or through the + system or user changing the window size. */ + SDL_WINDOWEVENT_MINIMIZED, /**< Window has been minimized */ + SDL_WINDOWEVENT_MAXIMIZED, /**< Window has been maximized */ + SDL_WINDOWEVENT_RESTORED, /**< Window has been restored to normal size + and position */ + SDL_WINDOWEVENT_ENTER, /**< Window has gained mouse focus */ + SDL_WINDOWEVENT_LEAVE, /**< Window has lost mouse focus */ + SDL_WINDOWEVENT_FOCUS_GAINED, /**< Window has gained keyboard focus */ + SDL_WINDOWEVENT_FOCUS_LOST, /**< Window has lost keyboard focus */ + SDL_WINDOWEVENT_CLOSE, /**< The window manager requests that the window be closed */ + SDL_WINDOWEVENT_TAKE_FOCUS, /**< Window is being offered a focus (should SetWindowInputFocus() on itself or a subwindow, or ignore) */ + SDL_WINDOWEVENT_HIT_TEST, /**< Window had a hit test that wasn't SDL_HITTEST_NORMAL. */ + SDL_WINDOWEVENT_ICCPROF_CHANGED,/**< The ICC profile of the window's display has changed. */ + SDL_WINDOWEVENT_DISPLAY_CHANGED /**< Window has been moved to display data1. */ +} SDL_WindowEventID; + +/** + * Event subtype for display events + */ +typedef enum SDL_DisplayEventID +{ + SDL_DISPLAYEVENT_NONE, /**< Never used */ + SDL_DISPLAYEVENT_ORIENTATION, /**< Display orientation has changed to data1 */ + SDL_DISPLAYEVENT_CONNECTED, /**< Display has been added to the system */ + SDL_DISPLAYEVENT_DISCONNECTED, /**< Display has been removed from the system */ + SDL_DISPLAYEVENT_MOVED /**< Display has changed position */ +} SDL_DisplayEventID; + +/** + * Display orientation + */ +typedef enum SDL_DisplayOrientation +{ + SDL_ORIENTATION_UNKNOWN, /**< The display orientation can't be determined */ + SDL_ORIENTATION_LANDSCAPE, /**< The display is in landscape mode, with the right side up, relative to portrait mode */ + SDL_ORIENTATION_LANDSCAPE_FLIPPED, /**< The display is in landscape mode, with the left side up, relative to portrait mode */ + SDL_ORIENTATION_PORTRAIT, /**< The display is in portrait mode */ + SDL_ORIENTATION_PORTRAIT_FLIPPED /**< The display is in portrait mode, upside down */ +} SDL_DisplayOrientation; + +/** + * Window flash operation + */ +typedef enum SDL_FlashOperation +{ + SDL_FLASH_CANCEL, /**< Cancel any window flash state */ + SDL_FLASH_BRIEFLY, /**< Flash the window briefly to get attention */ + SDL_FLASH_UNTIL_FOCUSED /**< Flash the window until it gets focus */ +} SDL_FlashOperation; + +/** + * An opaque handle to an OpenGL context. + * + * \sa SDL_GL_CreateContext + */ +typedef void *SDL_GLContext; + +/** + * OpenGL configuration attributes. + * + * While you can set most OpenGL attributes normally, the attributes listed + * above must be known before SDL creates the window that will be used with + * the OpenGL context. These attributes are set and read with + * SDL_GL_SetAttribute and SDL_GL_GetAttribute. + * + * In some cases, these attributes are minimum requests; the GL does not + * promise to give you exactly what you asked for. It's possible to ask for a + * 16-bit depth buffer and get a 24-bit one instead, for example, or to ask + * for no stencil buffer and still have one available. Context creation should + * fail if the GL can't provide your requested attributes at a minimum, but + * you should check to see exactly what you got. + * + * + * [Multisample anti-aliasing](http://en.wikipedia.org/wiki/Multisample_anti-aliasing) + * is a type of full screen anti-aliasing. Multipsampling defaults to off but + * can be turned on by setting SDL_GL_MULTISAMPLEBUFFERS to 1 and + * SDL_GL_MULTISAMPLESAMPLES to a value greater than 0. Typical values are 2 + * and 4. + * + * SDL_GL_CONTEXT_PROFILE_MASK determines the type of context created, while + * both SDL_GL_CONTEXT_MAJOR_VERSION and SDL_GL_CONTEXT_MINOR_VERSION + * determine which version. All three attributes must be set prior to creating + * the first window, and in general you can't change the value of + * SDL_GL_CONTEXT_PROFILE_MASK without first destroying all windows created + * with the previous setting. + * + * SDL_GL_CONTEXT_RELEASE_BEHAVIOR can be set to + * SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE or + * SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH. + */ +typedef enum SDL_GLattr +{ + SDL_GL_RED_SIZE, /**< the minimum number of bits for the red channel of the color buffer; defaults to 3. */ + SDL_GL_GREEN_SIZE, /**< the minimum number of bits for the green channel of the color buffer; defaults to 3. */ + SDL_GL_BLUE_SIZE, /**< the minimum number of bits for the blue channel of the color buffer; defaults to 2. */ + SDL_GL_ALPHA_SIZE, /**< the minimum number of bits for the alpha channel of the color buffer; defaults to 0. */ + SDL_GL_BUFFER_SIZE, /**< the minimum number of bits for frame buffer size; defaults to 0. */ + SDL_GL_DOUBLEBUFFER, /**< whether the output is single or double buffered; defaults to double buffering on. */ + SDL_GL_DEPTH_SIZE, /**< the minimum number of bits in the depth buffer; defaults to 16. */ + SDL_GL_STENCIL_SIZE, /**< the minimum number of bits in the stencil buffer; defaults to 0. */ + SDL_GL_ACCUM_RED_SIZE, /**< the minimum number of bits for the red channel of the accumulation buffer; defaults to 0. */ + SDL_GL_ACCUM_GREEN_SIZE, /**< the minimum number of bits for the green channel of the accumulation buffer; defaults to 0. */ + SDL_GL_ACCUM_BLUE_SIZE, /**< the minimum number of bits for the blue channel of the accumulation buffer; defaults to 0. */ + SDL_GL_ACCUM_ALPHA_SIZE, /**< the minimum number of bits for the alpha channel of the accumulation buffer; defaults to 0. */ + SDL_GL_STEREO, /**< whether the output is stereo 3D; defaults to off. */ + SDL_GL_MULTISAMPLEBUFFERS, /**< the number of buffers used for multisample anti-aliasing; defaults to 0. */ + SDL_GL_MULTISAMPLESAMPLES, /**< the number of samples used around the current pixel used for multisample anti-aliasing. */ + SDL_GL_ACCELERATED_VISUAL, /**< set to 1 to require hardware acceleration, set to 0 to force software rendering; defaults to allow either. */ + SDL_GL_RETAINED_BACKING, /**< not used (deprecated). */ + SDL_GL_CONTEXT_MAJOR_VERSION, /**< OpenGL context major version. */ + SDL_GL_CONTEXT_MINOR_VERSION, /**< OpenGL context minor version. */ + SDL_GL_CONTEXT_EGL, /**< deprecated: set SDL_GL_CONTEXT_PROFILE_MASK to SDL_GL_CONTEXT_PROFILE_ES to enable instead. */ + SDL_GL_CONTEXT_FLAGS, /**< some combination of 0 or more of elements of the SDL_GLcontextFlag enumeration; defaults to 0. */ + SDL_GL_CONTEXT_PROFILE_MASK, /**< type of GL context (Core, Compatibility, ES). See SDL_GLprofile; default value depends on platform. */ + SDL_GL_SHARE_WITH_CURRENT_CONTEXT, /**< OpenGL context sharing; defaults to 0. */ + SDL_GL_FRAMEBUFFER_SRGB_CAPABLE, /**< requests sRGB capable visual; defaults to 0. (>= SDL 2.0.1) */ + SDL_GL_CONTEXT_RELEASE_BEHAVIOR, /**< sets context the release behavior; defaults to 1. (>= SDL 2.0.4) */ + SDL_GL_CONTEXT_RESET_NOTIFICATION, + SDL_GL_CONTEXT_NO_ERROR, + SDL_GL_FLOATBUFFERS +} SDL_GLattr; + +typedef enum SDL_GLprofile +{ + SDL_GL_CONTEXT_PROFILE_CORE = 0x0001, + SDL_GL_CONTEXT_PROFILE_COMPATIBILITY = 0x0002, + SDL_GL_CONTEXT_PROFILE_ES = 0x0004 /**< GLX_CONTEXT_ES2_PROFILE_BIT_EXT */ +} SDL_GLprofile; + +typedef enum SDL_GLcontextFlag +{ + SDL_GL_CONTEXT_DEBUG_FLAG = 0x0001, + SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG = 0x0002, + SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG = 0x0004, + SDL_GL_CONTEXT_RESET_ISOLATION_FLAG = 0x0008 +} SDL_GLcontextFlag; + +typedef enum SDL_GLcontextReleaseFlag +{ + SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE = 0x0000, + SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x0001 +} SDL_GLcontextReleaseFlag; + +typedef enum SDL_GLContextResetNotification +{ + SDL_GL_CONTEXT_RESET_NO_NOTIFICATION = 0x0000, + SDL_GL_CONTEXT_RESET_LOSE_CONTEXT = 0x0001 +} SDL_GLContextResetNotification; + +/* Function prototypes */ + +/** + * Get the number of video drivers compiled into SDL. + * + * \returns a number >= 1 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetVideoDriver + */ +extern DECLSPEC int SDLCALL SDL_GetNumVideoDrivers(void); + +/** + * Get the name of a built in video driver. + * + * The video drivers are presented in the order in which they are normally + * checked during initialization. + * + * \param index the index of a video driver. + * \returns the name of the video driver with the given **index**. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetNumVideoDrivers + */ +extern DECLSPEC const char *SDLCALL SDL_GetVideoDriver(int index); + +/** + * Initialize the video subsystem, optionally specifying a video driver. + * + * This function initializes the video subsystem, setting up a connection to + * the window manager, etc, and determines the available display modes and + * pixel formats, but does not initialize a window or graphics mode. + * + * If you use this function and you haven't used the SDL_INIT_VIDEO flag with + * either SDL_Init() or SDL_InitSubSystem(), you should call SDL_VideoQuit() + * before calling SDL_Quit(). + * + * It is safe to call this function multiple times. SDL_VideoInit() will call + * SDL_VideoQuit() itself if the video subsystem has already been initialized. + * + * You can use SDL_GetNumVideoDrivers() and SDL_GetVideoDriver() to find a + * specific `driver_name`. + * + * \param driver_name the name of a video driver to initialize, or NULL for + * the default driver. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetNumVideoDrivers + * \sa SDL_GetVideoDriver + * \sa SDL_InitSubSystem + * \sa SDL_VideoQuit + */ +extern DECLSPEC int SDLCALL SDL_VideoInit(const char *driver_name); + +/** + * Shut down the video subsystem, if initialized with SDL_VideoInit(). + * + * This function closes all windows, and restores the original video mode. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_VideoInit + */ +extern DECLSPEC void SDLCALL SDL_VideoQuit(void); + +/** + * Get the name of the currently initialized video driver. + * + * \returns the name of the current video driver or NULL if no driver has been + * initialized. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetNumVideoDrivers + * \sa SDL_GetVideoDriver + */ +extern DECLSPEC const char *SDLCALL SDL_GetCurrentVideoDriver(void); + +/** + * Get the number of available video displays. + * + * \returns a number >= 1 or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetDisplayBounds + */ +extern DECLSPEC int SDLCALL SDL_GetNumVideoDisplays(void); + +/** + * Get the name of a display in UTF-8 encoding. + * + * \param displayIndex the index of display from which the name should be + * queried. + * \returns the name of a display or NULL for an invalid display index or + * failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetNumVideoDisplays + */ +extern DECLSPEC const char * SDLCALL SDL_GetDisplayName(int displayIndex); + +/** + * Get the desktop area represented by a display. + * + * The primary display (`displayIndex` zero) is always located at 0,0. + * + * \param displayIndex the index of the display to query. + * \param rect the SDL_Rect structure filled in with the display bounds. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetNumVideoDisplays + */ +extern DECLSPEC int SDLCALL SDL_GetDisplayBounds(int displayIndex, SDL_Rect * rect); + +/** + * Get the usable desktop area represented by a display. + * + * The primary display (`displayIndex` zero) is always located at 0,0. + * + * This is the same area as SDL_GetDisplayBounds() reports, but with portions + * reserved by the system removed. For example, on Apple's macOS, this + * subtracts the area occupied by the menu bar and dock. + * + * Setting a window to be fullscreen generally bypasses these unusable areas, + * so these are good guidelines for the maximum space available to a + * non-fullscreen window. + * + * The parameter `rect` is ignored if it is NULL. + * + * This function also returns -1 if the parameter `displayIndex` is out of + * range. + * + * \param displayIndex the index of the display to query the usable bounds + * from. + * \param rect the SDL_Rect structure filled in with the display bounds. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.5. + * + * \sa SDL_GetDisplayBounds + * \sa SDL_GetNumVideoDisplays + */ +extern DECLSPEC int SDLCALL SDL_GetDisplayUsableBounds(int displayIndex, SDL_Rect * rect); + +/** + * Get the dots/pixels-per-inch for a display. + * + * Diagonal, horizontal and vertical DPI can all be optionally returned if the + * appropriate parameter is non-NULL. + * + * A failure of this function usually means that either no DPI information is + * available or the `displayIndex` is out of range. + * + * **WARNING**: This reports the DPI that the hardware reports, and it is not + * always reliable! It is almost always better to use SDL_GetWindowSize() to + * find the window size, which might be in logical points instead of pixels, + * and then SDL_GL_GetDrawableSize(), SDL_Vulkan_GetDrawableSize(), + * SDL_Metal_GetDrawableSize(), or SDL_GetRendererOutputSize(), and compare + * the two values to get an actual scaling value between the two. We will be + * rethinking how high-dpi details should be managed in SDL3 to make things + * more consistent, reliable, and clear. + * + * \param displayIndex the index of the display from which DPI information + * should be queried. + * \param ddpi a pointer filled in with the diagonal DPI of the display; may + * be NULL. + * \param hdpi a pointer filled in with the horizontal DPI of the display; may + * be NULL. + * \param vdpi a pointer filled in with the vertical DPI of the display; may + * be NULL. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.4. + * + * \sa SDL_GetNumVideoDisplays + */ +extern DECLSPEC int SDLCALL SDL_GetDisplayDPI(int displayIndex, float * ddpi, float * hdpi, float * vdpi); + +/** + * Get the orientation of a display. + * + * \param displayIndex the index of the display to query. + * \returns The SDL_DisplayOrientation enum value of the display, or + * `SDL_ORIENTATION_UNKNOWN` if it isn't available. + * + * \since This function is available since SDL 2.0.9. + * + * \sa SDL_GetNumVideoDisplays + */ +extern DECLSPEC SDL_DisplayOrientation SDLCALL SDL_GetDisplayOrientation(int displayIndex); + +/** + * Get the number of available display modes. + * + * The `displayIndex` needs to be in the range from 0 to + * SDL_GetNumVideoDisplays() - 1. + * + * \param displayIndex the index of the display to query. + * \returns a number >= 1 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetDisplayMode + * \sa SDL_GetNumVideoDisplays + */ +extern DECLSPEC int SDLCALL SDL_GetNumDisplayModes(int displayIndex); + +/** + * Get information about a specific display mode. + * + * The display modes are sorted in this priority: + * + * - width -> largest to smallest + * - height -> largest to smallest + * - bits per pixel -> more colors to fewer colors + * - packed pixel layout -> largest to smallest + * - refresh rate -> highest to lowest + * + * \param displayIndex the index of the display to query. + * \param modeIndex the index of the display mode to query. + * \param mode an SDL_DisplayMode structure filled in with the mode at + * `modeIndex`. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetNumDisplayModes + */ +extern DECLSPEC int SDLCALL SDL_GetDisplayMode(int displayIndex, int modeIndex, + SDL_DisplayMode * mode); + +/** + * Get information about the desktop's display mode. + * + * There's a difference between this function and SDL_GetCurrentDisplayMode() + * when SDL runs fullscreen and has changed the resolution. In that case this + * function will return the previous native display mode, and not the current + * display mode. + * + * \param displayIndex the index of the display to query. + * \param mode an SDL_DisplayMode structure filled in with the current display + * mode. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetCurrentDisplayMode + * \sa SDL_GetDisplayMode + * \sa SDL_SetWindowDisplayMode + */ +extern DECLSPEC int SDLCALL SDL_GetDesktopDisplayMode(int displayIndex, SDL_DisplayMode * mode); + +/** + * Get information about the current display mode. + * + * There's a difference between this function and SDL_GetDesktopDisplayMode() + * when SDL runs fullscreen and has changed the resolution. In that case this + * function will return the current display mode, and not the previous native + * display mode. + * + * \param displayIndex the index of the display to query. + * \param mode an SDL_DisplayMode structure filled in with the current display + * mode. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetDesktopDisplayMode + * \sa SDL_GetDisplayMode + * \sa SDL_GetNumVideoDisplays + * \sa SDL_SetWindowDisplayMode + */ +extern DECLSPEC int SDLCALL SDL_GetCurrentDisplayMode(int displayIndex, SDL_DisplayMode * mode); + + +/** + * Get the closest match to the requested display mode. + * + * The available display modes are scanned and `closest` is filled in with the + * closest mode matching the requested mode and returned. The mode format and + * refresh rate default to the desktop mode if they are set to 0. The modes + * are scanned with size being first priority, format being second priority, + * and finally checking the refresh rate. If all the available modes are too + * small, then NULL is returned. + * + * \param displayIndex the index of the display to query. + * \param mode an SDL_DisplayMode structure containing the desired display + * mode. + * \param closest an SDL_DisplayMode structure filled in with the closest + * match of the available display modes. + * \returns the passed in value `closest` or NULL if no matching video mode + * was available; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetDisplayMode + * \sa SDL_GetNumDisplayModes + */ +extern DECLSPEC SDL_DisplayMode * SDLCALL SDL_GetClosestDisplayMode(int displayIndex, const SDL_DisplayMode * mode, SDL_DisplayMode * closest); + +/** + * Get the index of the display containing a point + * + * \param point the point to query. + * \returns the index of the display containing the point or a negative error + * code on failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.24.0. + * + * \sa SDL_GetDisplayBounds + * \sa SDL_GetNumVideoDisplays + */ +extern DECLSPEC int SDLCALL SDL_GetPointDisplayIndex(const SDL_Point * point); + +/** + * Get the index of the display primarily containing a rect + * + * \param rect the rect to query. + * \returns the index of the display entirely containing the rect or closest + * to the center of the rect on success or a negative error code on + * failure; call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.24.0. + * + * \sa SDL_GetDisplayBounds + * \sa SDL_GetNumVideoDisplays + */ +extern DECLSPEC int SDLCALL SDL_GetRectDisplayIndex(const SDL_Rect * rect); + +/** + * Get the index of the display associated with a window. + * + * \param window the window to query. + * \returns the index of the display containing the center of the window on + * success or a negative error code on failure; call SDL_GetError() + * for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetDisplayBounds + * \sa SDL_GetNumVideoDisplays + */ +extern DECLSPEC int SDLCALL SDL_GetWindowDisplayIndex(SDL_Window * window); + +/** + * Set the display mode to use when a window is visible at fullscreen. + * + * This only affects the display mode used when the window is fullscreen. To + * change the window size when the window is not fullscreen, use + * SDL_SetWindowSize(). + * + * \param window the window to affect. + * \param mode the SDL_DisplayMode structure representing the mode to use, or + * NULL to use the window's dimensions and the desktop's format + * and refresh rate. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetWindowDisplayMode + * \sa SDL_SetWindowFullscreen + */ +extern DECLSPEC int SDLCALL SDL_SetWindowDisplayMode(SDL_Window * window, + const SDL_DisplayMode * mode); + +/** + * Query the display mode to use when a window is visible at fullscreen. + * + * \param window the window to query. + * \param mode an SDL_DisplayMode structure filled in with the fullscreen + * display mode. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetWindowDisplayMode + * \sa SDL_SetWindowFullscreen + */ +extern DECLSPEC int SDLCALL SDL_GetWindowDisplayMode(SDL_Window * window, + SDL_DisplayMode * mode); + +/** + * Get the raw ICC profile data for the screen the window is currently on. + * + * Data returned should be freed with SDL_free. + * + * \param window the window to query. + * \param size the size of the ICC profile. + * \returns the raw ICC profile data on success or NULL on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.18. + */ +extern DECLSPEC void* SDLCALL SDL_GetWindowICCProfile(SDL_Window * window, size_t* size); + +/** + * Get the pixel format associated with the window. + * + * \param window the window to query. + * \returns the pixel format of the window on success or + * SDL_PIXELFORMAT_UNKNOWN on failure; call SDL_GetError() for more + * information. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC Uint32 SDLCALL SDL_GetWindowPixelFormat(SDL_Window * window); + +/** + * Create a window with the specified position, dimensions, and flags. + * + * `flags` may be any of the following OR'd together: + * + * - `SDL_WINDOW_FULLSCREEN`: fullscreen window + * - `SDL_WINDOW_FULLSCREEN_DESKTOP`: fullscreen window at desktop resolution + * - `SDL_WINDOW_OPENGL`: window usable with an OpenGL context + * - `SDL_WINDOW_VULKAN`: window usable with a Vulkan instance + * - `SDL_WINDOW_METAL`: window usable with a Metal instance + * - `SDL_WINDOW_HIDDEN`: window is not visible + * - `SDL_WINDOW_BORDERLESS`: no window decoration + * - `SDL_WINDOW_RESIZABLE`: window can be resized + * - `SDL_WINDOW_MINIMIZED`: window is minimized + * - `SDL_WINDOW_MAXIMIZED`: window is maximized + * - `SDL_WINDOW_INPUT_GRABBED`: window has grabbed input focus + * - `SDL_WINDOW_ALLOW_HIGHDPI`: window should be created in high-DPI mode if + * supported (>= SDL 2.0.1) + * + * `SDL_WINDOW_SHOWN` is ignored by SDL_CreateWindow(). The SDL_Window is + * implicitly shown if SDL_WINDOW_HIDDEN is not set. `SDL_WINDOW_SHOWN` may be + * queried later using SDL_GetWindowFlags(). + * + * On Apple's macOS, you **must** set the NSHighResolutionCapable Info.plist + * property to YES, otherwise you will not receive a High-DPI OpenGL canvas. + * + * If the window is created with the `SDL_WINDOW_ALLOW_HIGHDPI` flag, its size + * in pixels may differ from its size in screen coordinates on platforms with + * high-DPI support (e.g. iOS and macOS). Use SDL_GetWindowSize() to query the + * client area's size in screen coordinates, and SDL_GL_GetDrawableSize() or + * SDL_GetRendererOutputSize() to query the drawable size in pixels. Note that + * when this flag is set, the drawable size can vary after the window is + * created and should be queried after major window events such as when the + * window is resized or moved between displays. + * + * If the window is set fullscreen, the width and height parameters `w` and + * `h` will not be used. However, invalid size parameters (e.g. too large) may + * still fail. Window size is actually limited to 16384 x 16384 for all + * platforms at window creation. + * + * If the window is created with any of the SDL_WINDOW_OPENGL or + * SDL_WINDOW_VULKAN flags, then the corresponding LoadLibrary function + * (SDL_GL_LoadLibrary or SDL_Vulkan_LoadLibrary) is called and the + * corresponding UnloadLibrary function is called by SDL_DestroyWindow(). + * + * If SDL_WINDOW_VULKAN is specified and there isn't a working Vulkan driver, + * SDL_CreateWindow() will fail because SDL_Vulkan_LoadLibrary() will fail. + * + * If SDL_WINDOW_METAL is specified on an OS that does not support Metal, + * SDL_CreateWindow() will fail. + * + * On non-Apple devices, SDL requires you to either not link to the Vulkan + * loader or link to a dynamic library version. This limitation may be removed + * in a future version of SDL. + * + * \param title the title of the window, in UTF-8 encoding. + * \param x the x position of the window, `SDL_WINDOWPOS_CENTERED`, or + * `SDL_WINDOWPOS_UNDEFINED`. + * \param y the y position of the window, `SDL_WINDOWPOS_CENTERED`, or + * `SDL_WINDOWPOS_UNDEFINED`. + * \param w the width of the window, in screen coordinates. + * \param h the height of the window, in screen coordinates. + * \param flags 0, or one or more SDL_WindowFlags OR'd together. + * \returns the `SDL_Window` that was created or NULL on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateWindowFrom + * \sa SDL_DestroyWindow + */ +extern DECLSPEC SDL_Window * SDLCALL SDL_CreateWindow(const char *title, + int x, int y, int w, + int h, Uint32 flags); + +/** + * Create an SDL window from an existing native window. + * + * In some cases (e.g. OpenGL) and on some platforms (e.g. Microsoft Windows) + * the hint `SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT` needs to be configured + * before using SDL_CreateWindowFrom(). + * + * \param data a pointer to driver-dependent window creation data, typically + * your native window cast to a void*. + * \returns the window that was created or NULL on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateWindow + * \sa SDL_DestroyWindow + */ +extern DECLSPEC SDL_Window * SDLCALL SDL_CreateWindowFrom(const void *data); + +/** + * Get the numeric ID of a window. + * + * The numeric ID is what SDL_WindowEvent references, and is necessary to map + * these events to specific SDL_Window objects. + * + * \param window the window to query. + * \returns the ID of the window on success or 0 on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetWindowFromID + */ +extern DECLSPEC Uint32 SDLCALL SDL_GetWindowID(SDL_Window * window); + +/** + * Get a window from a stored ID. + * + * The numeric ID is what SDL_WindowEvent references, and is necessary to map + * these events to specific SDL_Window objects. + * + * \param id the ID of the window. + * \returns the window associated with `id` or NULL if it doesn't exist; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetWindowID + */ +extern DECLSPEC SDL_Window * SDLCALL SDL_GetWindowFromID(Uint32 id); + +/** + * Get the window flags. + * + * \param window the window to query. + * \returns a mask of the SDL_WindowFlags associated with `window`. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateWindow + * \sa SDL_HideWindow + * \sa SDL_MaximizeWindow + * \sa SDL_MinimizeWindow + * \sa SDL_SetWindowFullscreen + * \sa SDL_SetWindowGrab + * \sa SDL_ShowWindow + */ +extern DECLSPEC Uint32 SDLCALL SDL_GetWindowFlags(SDL_Window * window); + +/** + * Set the title of a window. + * + * This string is expected to be in UTF-8 encoding. + * + * \param window the window to change. + * \param title the desired window title in UTF-8 format. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetWindowTitle + */ +extern DECLSPEC void SDLCALL SDL_SetWindowTitle(SDL_Window * window, + const char *title); + +/** + * Get the title of a window. + * + * \param window the window to query. + * \returns the title of the window in UTF-8 format or "" if there is no + * title. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetWindowTitle + */ +extern DECLSPEC const char *SDLCALL SDL_GetWindowTitle(SDL_Window * window); + +/** + * Set the icon for a window. + * + * \param window the window to change. + * \param icon an SDL_Surface structure containing the icon for the window. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC void SDLCALL SDL_SetWindowIcon(SDL_Window * window, + SDL_Surface * icon); + +/** + * Associate an arbitrary named pointer with a window. + * + * `name` is case-sensitive. + * + * \param window the window to associate with the pointer. + * \param name the name of the pointer. + * \param userdata the associated pointer. + * \returns the previous value associated with `name`. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetWindowData + */ +extern DECLSPEC void* SDLCALL SDL_SetWindowData(SDL_Window * window, + const char *name, + void *userdata); + +/** + * Retrieve the data pointer associated with a window. + * + * \param window the window to query. + * \param name the name of the pointer. + * \returns the value associated with `name`. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetWindowData + */ +extern DECLSPEC void *SDLCALL SDL_GetWindowData(SDL_Window * window, + const char *name); + +/** + * Set the position of a window. + * + * The window coordinate origin is the upper left of the display. + * + * \param window the window to reposition. + * \param x the x coordinate of the window in screen coordinates, or + * `SDL_WINDOWPOS_CENTERED` or `SDL_WINDOWPOS_UNDEFINED`. + * \param y the y coordinate of the window in screen coordinates, or + * `SDL_WINDOWPOS_CENTERED` or `SDL_WINDOWPOS_UNDEFINED`. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetWindowPosition + */ +extern DECLSPEC void SDLCALL SDL_SetWindowPosition(SDL_Window * window, + int x, int y); + +/** + * Get the position of a window. + * + * If you do not need the value for one of the positions a NULL may be passed + * in the `x` or `y` parameter. + * + * \param window the window to query. + * \param x a pointer filled in with the x position of the window, in screen + * coordinates, may be NULL. + * \param y a pointer filled in with the y position of the window, in screen + * coordinates, may be NULL. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetWindowPosition + */ +extern DECLSPEC void SDLCALL SDL_GetWindowPosition(SDL_Window * window, + int *x, int *y); + +/** + * Set the size of a window's client area. + * + * The window size in screen coordinates may differ from the size in pixels, + * if the window was created with `SDL_WINDOW_ALLOW_HIGHDPI` on a platform + * with high-dpi support (e.g. iOS or macOS). Use SDL_GL_GetDrawableSize() or + * SDL_GetRendererOutputSize() to get the real client area size in pixels. + * + * Fullscreen windows automatically match the size of the display mode, and + * you should use SDL_SetWindowDisplayMode() to change their size. + * + * \param window the window to change. + * \param w the width of the window in pixels, in screen coordinates, must be + * > 0. + * \param h the height of the window in pixels, in screen coordinates, must be + * > 0. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetWindowSize + * \sa SDL_SetWindowDisplayMode + */ +extern DECLSPEC void SDLCALL SDL_SetWindowSize(SDL_Window * window, int w, + int h); + +/** + * Get the size of a window's client area. + * + * NULL can safely be passed as the `w` or `h` parameter if the width or + * height value is not desired. + * + * The window size in screen coordinates may differ from the size in pixels, + * if the window was created with `SDL_WINDOW_ALLOW_HIGHDPI` on a platform + * with high-dpi support (e.g. iOS or macOS). Use SDL_GL_GetDrawableSize(), + * SDL_Vulkan_GetDrawableSize(), or SDL_GetRendererOutputSize() to get the + * real client area size in pixels. + * + * \param window the window to query the width and height from. + * \param w a pointer filled in with the width of the window, in screen + * coordinates, may be NULL. + * \param h a pointer filled in with the height of the window, in screen + * coordinates, may be NULL. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GL_GetDrawableSize + * \sa SDL_Vulkan_GetDrawableSize + * \sa SDL_SetWindowSize + */ +extern DECLSPEC void SDLCALL SDL_GetWindowSize(SDL_Window * window, int *w, + int *h); + +/** + * Get the size of a window's borders (decorations) around the client area. + * + * Note: If this function fails (returns -1), the size values will be + * initialized to 0, 0, 0, 0 (if a non-NULL pointer is provided), as if the + * window in question was borderless. + * + * Note: This function may fail on systems where the window has not yet been + * decorated by the display server (for example, immediately after calling + * SDL_CreateWindow). It is recommended that you wait at least until the + * window has been presented and composited, so that the window system has a + * chance to decorate the window and provide the border dimensions to SDL. + * + * This function also returns -1 if getting the information is not supported. + * + * \param window the window to query the size values of the border + * (decorations) from. + * \param top pointer to variable for storing the size of the top border; NULL + * is permitted. + * \param left pointer to variable for storing the size of the left border; + * NULL is permitted. + * \param bottom pointer to variable for storing the size of the bottom + * border; NULL is permitted. + * \param right pointer to variable for storing the size of the right border; + * NULL is permitted. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.5. + * + * \sa SDL_GetWindowSize + */ +extern DECLSPEC int SDLCALL SDL_GetWindowBordersSize(SDL_Window * window, + int *top, int *left, + int *bottom, int *right); + +/** + * Get the size of a window in pixels. + * + * This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI + * drawable, i.e. the window was created with `SDL_WINDOW_ALLOW_HIGHDPI` on a + * platform with high-DPI support (Apple calls this "Retina"), and not + * disabled by the `SDL_HINT_VIDEO_HIGHDPI_DISABLED` hint. + * + * \param window the window from which the drawable size should be queried. + * \param w a pointer to variable for storing the width in pixels, may be + * NULL. + * \param h a pointer to variable for storing the height in pixels, may be + * NULL. + * + * \since This function is available since SDL 2.26.0. + * + * \sa SDL_CreateWindow + * \sa SDL_GetWindowSize + */ +extern DECLSPEC void SDLCALL SDL_GetWindowSizeInPixels(SDL_Window * window, + int *w, int *h); + +/** + * Set the minimum size of a window's client area. + * + * \param window the window to change. + * \param min_w the minimum width of the window in pixels. + * \param min_h the minimum height of the window in pixels. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetWindowMinimumSize + * \sa SDL_SetWindowMaximumSize + */ +extern DECLSPEC void SDLCALL SDL_SetWindowMinimumSize(SDL_Window * window, + int min_w, int min_h); + +/** + * Get the minimum size of a window's client area. + * + * \param window the window to query. + * \param w a pointer filled in with the minimum width of the window, may be + * NULL. + * \param h a pointer filled in with the minimum height of the window, may be + * NULL. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetWindowMaximumSize + * \sa SDL_SetWindowMinimumSize + */ +extern DECLSPEC void SDLCALL SDL_GetWindowMinimumSize(SDL_Window * window, + int *w, int *h); + +/** + * Set the maximum size of a window's client area. + * + * \param window the window to change. + * \param max_w the maximum width of the window in pixels. + * \param max_h the maximum height of the window in pixels. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetWindowMaximumSize + * \sa SDL_SetWindowMinimumSize + */ +extern DECLSPEC void SDLCALL SDL_SetWindowMaximumSize(SDL_Window * window, + int max_w, int max_h); + +/** + * Get the maximum size of a window's client area. + * + * \param window the window to query. + * \param w a pointer filled in with the maximum width of the window, may be + * NULL. + * \param h a pointer filled in with the maximum height of the window, may be + * NULL. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetWindowMinimumSize + * \sa SDL_SetWindowMaximumSize + */ +extern DECLSPEC void SDLCALL SDL_GetWindowMaximumSize(SDL_Window * window, + int *w, int *h); + +/** + * Set the border state of a window. + * + * This will add or remove the window's `SDL_WINDOW_BORDERLESS` flag and add + * or remove the border from the actual window. This is a no-op if the + * window's border already matches the requested state. + * + * You can't change the border state of a fullscreen window. + * + * \param window the window of which to change the border state. + * \param bordered SDL_FALSE to remove border, SDL_TRUE to add border. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetWindowFlags + */ +extern DECLSPEC void SDLCALL SDL_SetWindowBordered(SDL_Window * window, + SDL_bool bordered); + +/** + * Set the user-resizable state of a window. + * + * This will add or remove the window's `SDL_WINDOW_RESIZABLE` flag and + * allow/disallow user resizing of the window. This is a no-op if the window's + * resizable state already matches the requested state. + * + * You can't change the resizable state of a fullscreen window. + * + * \param window the window of which to change the resizable state. + * \param resizable SDL_TRUE to allow resizing, SDL_FALSE to disallow. + * + * \since This function is available since SDL 2.0.5. + * + * \sa SDL_GetWindowFlags + */ +extern DECLSPEC void SDLCALL SDL_SetWindowResizable(SDL_Window * window, + SDL_bool resizable); + +/** + * Set the window to always be above the others. + * + * This will add or remove the window's `SDL_WINDOW_ALWAYS_ON_TOP` flag. This + * will bring the window to the front and keep the window above the rest. + * + * \param window The window of which to change the always on top state. + * \param on_top SDL_TRUE to set the window always on top, SDL_FALSE to + * disable. + * + * \since This function is available since SDL 2.0.16. + * + * \sa SDL_GetWindowFlags + */ +extern DECLSPEC void SDLCALL SDL_SetWindowAlwaysOnTop(SDL_Window * window, + SDL_bool on_top); + +/** + * Show a window. + * + * \param window the window to show. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_HideWindow + * \sa SDL_RaiseWindow + */ +extern DECLSPEC void SDLCALL SDL_ShowWindow(SDL_Window * window); + +/** + * Hide a window. + * + * \param window the window to hide. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_ShowWindow + */ +extern DECLSPEC void SDLCALL SDL_HideWindow(SDL_Window * window); + +/** + * Raise a window above other windows and set the input focus. + * + * \param window the window to raise. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC void SDLCALL SDL_RaiseWindow(SDL_Window * window); + +/** + * Make a window as large as possible. + * + * \param window the window to maximize. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_MinimizeWindow + * \sa SDL_RestoreWindow + */ +extern DECLSPEC void SDLCALL SDL_MaximizeWindow(SDL_Window * window); + +/** + * Minimize a window to an iconic representation. + * + * \param window the window to minimize. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_MaximizeWindow + * \sa SDL_RestoreWindow + */ +extern DECLSPEC void SDLCALL SDL_MinimizeWindow(SDL_Window * window); + +/** + * Restore the size and position of a minimized or maximized window. + * + * \param window the window to restore. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_MaximizeWindow + * \sa SDL_MinimizeWindow + */ +extern DECLSPEC void SDLCALL SDL_RestoreWindow(SDL_Window * window); + +/** + * Set a window's fullscreen state. + * + * `flags` may be `SDL_WINDOW_FULLSCREEN`, for "real" fullscreen with a + * videomode change; `SDL_WINDOW_FULLSCREEN_DESKTOP` for "fake" fullscreen + * that takes the size of the desktop; and 0 for windowed mode. + * + * Note that for some renderers, this function may trigger an + * SDL_RENDER_TARGETS_RESET event. Your application should be prepared to + * handle this event by reuploading textures! + * + * \param window the window to change. + * \param flags `SDL_WINDOW_FULLSCREEN`, `SDL_WINDOW_FULLSCREEN_DESKTOP` or 0. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetWindowDisplayMode + * \sa SDL_SetWindowDisplayMode + */ +extern DECLSPEC int SDLCALL SDL_SetWindowFullscreen(SDL_Window * window, + Uint32 flags); + +/** + * Return whether the window has a surface associated with it. + * + * \returns SDL_TRUE if there is a surface associated with the window, or + * SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.28.0. + * + * \sa SDL_GetWindowSurface + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasWindowSurface(SDL_Window *window); + +/** + * Get the SDL surface associated with the window. + * + * A new surface will be created with the optimal format for the window, if + * necessary. This surface will be freed when the window is destroyed. Do not + * free this surface. + * + * This surface will be invalidated if the window is resized. After resizing a + * window this function must be called again to return a valid surface. + * + * Note that on some platforms the pixels pointer of the surface may be + * modified after each call to SDL_UpdateWindowSurface(), so that the platform + * code can implement efficient double or triple buffering. + * + * You may not combine this with 3D or the rendering API on this window. + * + * This function is affected by `SDL_HINT_FRAMEBUFFER_ACCELERATION`. + * + * \param window the window to query. + * \returns the surface associated with the window, or NULL on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_DestroyWindowSurface + * \sa SDL_HasWindowSurface + * \sa SDL_UpdateWindowSurface + * \sa SDL_UpdateWindowSurfaceRects + */ +extern DECLSPEC SDL_Surface * SDLCALL SDL_GetWindowSurface(SDL_Window * window); + +/** + * Copy the window surface to the screen. + * + * This is the function you use to reflect any changes to the surface on the + * screen. + * + * This function is equivalent to the SDL 1.2 API SDL_Flip(). + * + * \param window the window to update. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetWindowSurface + * \sa SDL_UpdateWindowSurfaceRects + */ +extern DECLSPEC int SDLCALL SDL_UpdateWindowSurface(SDL_Window * window); + +/** + * Copy areas of the window surface to the screen. + * + * This is the function you use to reflect changes to portions of the surface + * on the screen. + * + * This function is equivalent to the SDL 1.2 API SDL_UpdateRects(). + * + * Note that this function will update _at least_ the rectangles specified, + * but this is only intended as an optimization; in practice, this might + * update more of the screen (or all of the screen!), depending on what method + * SDL uses to send pixels to the system. + * + * \param window the window to update. + * \param rects an array of SDL_Rect structures representing areas of the + * surface to copy, in pixels. + * \param numrects the number of rectangles. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetWindowSurface + * \sa SDL_UpdateWindowSurface + */ +extern DECLSPEC int SDLCALL SDL_UpdateWindowSurfaceRects(SDL_Window * window, + const SDL_Rect * rects, + int numrects); + +/** + * Destroy the surface associated with the window. + * + * \param window the window to update. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.28.0. + * + * \sa SDL_GetWindowSurface + * \sa SDL_HasWindowSurface + */ +extern DECLSPEC int SDLCALL SDL_DestroyWindowSurface(SDL_Window *window); + +/** + * Set a window's input grab mode. + * + * When input is grabbed, the mouse is confined to the window. This function + * will also grab the keyboard if `SDL_HINT_GRAB_KEYBOARD` is set. To grab the + * keyboard without also grabbing the mouse, use SDL_SetWindowKeyboardGrab(). + * + * If the caller enables a grab while another window is currently grabbed, the + * other window loses its grab in favor of the caller's window. + * + * \param window the window for which the input grab mode should be set. + * \param grabbed SDL_TRUE to grab input or SDL_FALSE to release input. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetGrabbedWindow + * \sa SDL_GetWindowGrab + */ +extern DECLSPEC void SDLCALL SDL_SetWindowGrab(SDL_Window * window, + SDL_bool grabbed); + +/** + * Set a window's keyboard grab mode. + * + * Keyboard grab enables capture of system keyboard shortcuts like Alt+Tab or + * the Meta/Super key. Note that not all system keyboard shortcuts can be + * captured by applications (one example is Ctrl+Alt+Del on Windows). + * + * This is primarily intended for specialized applications such as VNC clients + * or VM frontends. Normal games should not use keyboard grab. + * + * When keyboard grab is enabled, SDL will continue to handle Alt+Tab when the + * window is full-screen to ensure the user is not trapped in your + * application. If you have a custom keyboard shortcut to exit fullscreen + * mode, you may suppress this behavior with + * `SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED`. + * + * If the caller enables a grab while another window is currently grabbed, the + * other window loses its grab in favor of the caller's window. + * + * \param window The window for which the keyboard grab mode should be set. + * \param grabbed This is SDL_TRUE to grab keyboard, and SDL_FALSE to release. + * + * \since This function is available since SDL 2.0.16. + * + * \sa SDL_GetWindowKeyboardGrab + * \sa SDL_SetWindowMouseGrab + * \sa SDL_SetWindowGrab + */ +extern DECLSPEC void SDLCALL SDL_SetWindowKeyboardGrab(SDL_Window * window, + SDL_bool grabbed); + +/** + * Set a window's mouse grab mode. + * + * Mouse grab confines the mouse cursor to the window. + * + * \param window The window for which the mouse grab mode should be set. + * \param grabbed This is SDL_TRUE to grab mouse, and SDL_FALSE to release. + * + * \since This function is available since SDL 2.0.16. + * + * \sa SDL_GetWindowMouseGrab + * \sa SDL_SetWindowKeyboardGrab + * \sa SDL_SetWindowGrab + */ +extern DECLSPEC void SDLCALL SDL_SetWindowMouseGrab(SDL_Window * window, + SDL_bool grabbed); + +/** + * Get a window's input grab mode. + * + * \param window the window to query. + * \returns SDL_TRUE if input is grabbed, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetWindowGrab + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowGrab(SDL_Window * window); + +/** + * Get a window's keyboard grab mode. + * + * \param window the window to query. + * \returns SDL_TRUE if keyboard is grabbed, and SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.16. + * + * \sa SDL_SetWindowKeyboardGrab + * \sa SDL_GetWindowGrab + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowKeyboardGrab(SDL_Window * window); + +/** + * Get a window's mouse grab mode. + * + * \param window the window to query. + * \returns SDL_TRUE if mouse is grabbed, and SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.16. + * + * \sa SDL_SetWindowKeyboardGrab + * \sa SDL_GetWindowGrab + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowMouseGrab(SDL_Window * window); + +/** + * Get the window that currently has an input grab enabled. + * + * \returns the window if input is grabbed or NULL otherwise. + * + * \since This function is available since SDL 2.0.4. + * + * \sa SDL_GetWindowGrab + * \sa SDL_SetWindowGrab + */ +extern DECLSPEC SDL_Window * SDLCALL SDL_GetGrabbedWindow(void); + +/** + * Confines the cursor to the specified area of a window. + * + * Note that this does NOT grab the cursor, it only defines the area a cursor + * is restricted to when the window has mouse focus. + * + * \param window The window that will be associated with the barrier. + * \param rect A rectangle area in window-relative coordinates. If NULL the + * barrier for the specified window will be destroyed. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.18. + * + * \sa SDL_GetWindowMouseRect + * \sa SDL_SetWindowMouseGrab + */ +extern DECLSPEC int SDLCALL SDL_SetWindowMouseRect(SDL_Window * window, const SDL_Rect * rect); + +/** + * Get the mouse confinement rectangle of a window. + * + * \param window The window to query. + * \returns A pointer to the mouse confinement rectangle of a window, or NULL + * if there isn't one. + * + * \since This function is available since SDL 2.0.18. + * + * \sa SDL_SetWindowMouseRect + */ +extern DECLSPEC const SDL_Rect * SDLCALL SDL_GetWindowMouseRect(SDL_Window * window); + +/** + * Set the brightness (gamma multiplier) for a given window's display. + * + * Despite the name and signature, this method sets the brightness of the + * entire display, not an individual window. A window is considered to be + * owned by the display that contains the window's center pixel. (The index of + * this display can be retrieved using SDL_GetWindowDisplayIndex().) The + * brightness set will not follow the window if it is moved to another + * display. + * + * Many platforms will refuse to set the display brightness in modern times. + * You are better off using a shader to adjust gamma during rendering, or + * something similar. + * + * \param window the window used to select the display whose brightness will + * be changed. + * \param brightness the brightness (gamma multiplier) value to set where 0.0 + * is completely dark and 1.0 is normal brightness. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetWindowBrightness + * \sa SDL_SetWindowGammaRamp + */ +extern DECLSPEC int SDLCALL SDL_SetWindowBrightness(SDL_Window * window, float brightness); + +/** + * Get the brightness (gamma multiplier) for a given window's display. + * + * Despite the name and signature, this method retrieves the brightness of the + * entire display, not an individual window. A window is considered to be + * owned by the display that contains the window's center pixel. (The index of + * this display can be retrieved using SDL_GetWindowDisplayIndex().) + * + * \param window the window used to select the display whose brightness will + * be queried. + * \returns the brightness for the display where 0.0 is completely dark and + * 1.0 is normal brightness. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetWindowBrightness + */ +extern DECLSPEC float SDLCALL SDL_GetWindowBrightness(SDL_Window * window); + +/** + * Set the opacity for a window. + * + * The parameter `opacity` will be clamped internally between 0.0f + * (transparent) and 1.0f (opaque). + * + * This function also returns -1 if setting the opacity isn't supported. + * + * \param window the window which will be made transparent or opaque. + * \param opacity the opacity value (0.0f - transparent, 1.0f - opaque). + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.5. + * + * \sa SDL_GetWindowOpacity + */ +extern DECLSPEC int SDLCALL SDL_SetWindowOpacity(SDL_Window * window, float opacity); + +/** + * Get the opacity of a window. + * + * If transparency isn't supported on this platform, opacity will be reported + * as 1.0f without error. + * + * The parameter `opacity` is ignored if it is NULL. + * + * This function also returns -1 if an invalid window was provided. + * + * \param window the window to get the current opacity value from. + * \param out_opacity the float filled in (0.0f - transparent, 1.0f - opaque). + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.5. + * + * \sa SDL_SetWindowOpacity + */ +extern DECLSPEC int SDLCALL SDL_GetWindowOpacity(SDL_Window * window, float * out_opacity); + +/** + * Set the window as a modal for another window. + * + * \param modal_window the window that should be set modal. + * \param parent_window the parent window for the modal window. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.5. + */ +extern DECLSPEC int SDLCALL SDL_SetWindowModalFor(SDL_Window * modal_window, SDL_Window * parent_window); + +/** + * Explicitly set input focus to the window. + * + * You almost certainly want SDL_RaiseWindow() instead of this function. Use + * this with caution, as you might give focus to a window that is completely + * obscured by other windows. + * + * \param window the window that should get the input focus. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.5. + * + * \sa SDL_RaiseWindow + */ +extern DECLSPEC int SDLCALL SDL_SetWindowInputFocus(SDL_Window * window); + +/** + * Set the gamma ramp for the display that owns a given window. + * + * Set the gamma translation table for the red, green, and blue channels of + * the video hardware. Each table is an array of 256 16-bit quantities, + * representing a mapping between the input and output for that channel. The + * input is the index into the array, and the output is the 16-bit gamma value + * at that index, scaled to the output color precision. + * + * Despite the name and signature, this method sets the gamma ramp of the + * entire display, not an individual window. A window is considered to be + * owned by the display that contains the window's center pixel. (The index of + * this display can be retrieved using SDL_GetWindowDisplayIndex().) The gamma + * ramp set will not follow the window if it is moved to another display. + * + * \param window the window used to select the display whose gamma ramp will + * be changed. + * \param red a 256 element array of 16-bit quantities representing the + * translation table for the red channel, or NULL. + * \param green a 256 element array of 16-bit quantities representing the + * translation table for the green channel, or NULL. + * \param blue a 256 element array of 16-bit quantities representing the + * translation table for the blue channel, or NULL. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GetWindowGammaRamp + */ +extern DECLSPEC int SDLCALL SDL_SetWindowGammaRamp(SDL_Window * window, + const Uint16 * red, + const Uint16 * green, + const Uint16 * blue); + +/** + * Get the gamma ramp for a given window's display. + * + * Despite the name and signature, this method retrieves the gamma ramp of the + * entire display, not an individual window. A window is considered to be + * owned by the display that contains the window's center pixel. (The index of + * this display can be retrieved using SDL_GetWindowDisplayIndex().) + * + * \param window the window used to select the display whose gamma ramp will + * be queried. + * \param red a 256 element array of 16-bit quantities filled in with the + * translation table for the red channel, or NULL. + * \param green a 256 element array of 16-bit quantities filled in with the + * translation table for the green channel, or NULL. + * \param blue a 256 element array of 16-bit quantities filled in with the + * translation table for the blue channel, or NULL. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_SetWindowGammaRamp + */ +extern DECLSPEC int SDLCALL SDL_GetWindowGammaRamp(SDL_Window * window, + Uint16 * red, + Uint16 * green, + Uint16 * blue); + +/** + * Possible return values from the SDL_HitTest callback. + * + * \sa SDL_HitTest + */ +typedef enum SDL_HitTestResult +{ + SDL_HITTEST_NORMAL, /**< Region is normal. No special properties. */ + SDL_HITTEST_DRAGGABLE, /**< Region can drag entire window. */ + SDL_HITTEST_RESIZE_TOPLEFT, + SDL_HITTEST_RESIZE_TOP, + SDL_HITTEST_RESIZE_TOPRIGHT, + SDL_HITTEST_RESIZE_RIGHT, + SDL_HITTEST_RESIZE_BOTTOMRIGHT, + SDL_HITTEST_RESIZE_BOTTOM, + SDL_HITTEST_RESIZE_BOTTOMLEFT, + SDL_HITTEST_RESIZE_LEFT +} SDL_HitTestResult; + +/** + * Callback used for hit-testing. + * + * \param win the SDL_Window where hit-testing was set on. + * \param area an SDL_Point which should be hit-tested. + * \param data what was passed as `callback_data` to SDL_SetWindowHitTest(). + * \return an SDL_HitTestResult value. + * + * \sa SDL_SetWindowHitTest + */ +typedef SDL_HitTestResult (SDLCALL *SDL_HitTest)(SDL_Window *win, + const SDL_Point *area, + void *data); + +/** + * Provide a callback that decides if a window region has special properties. + * + * Normally windows are dragged and resized by decorations provided by the + * system window manager (a title bar, borders, etc), but for some apps, it + * makes sense to drag them from somewhere else inside the window itself; for + * example, one might have a borderless window that wants to be draggable from + * any part, or simulate its own title bar, etc. + * + * This function lets the app provide a callback that designates pieces of a + * given window as special. This callback is run during event processing if we + * need to tell the OS to treat a region of the window specially; the use of + * this callback is known as "hit testing." + * + * Mouse input may not be delivered to your application if it is within a + * special area; the OS will often apply that input to moving the window or + * resizing the window and not deliver it to the application. + * + * Specifying NULL for a callback disables hit-testing. Hit-testing is + * disabled by default. + * + * Platforms that don't support this functionality will return -1 + * unconditionally, even if you're attempting to disable hit-testing. + * + * Your callback may fire at any time, and its firing does not indicate any + * specific behavior (for example, on Windows, this certainly might fire when + * the OS is deciding whether to drag your window, but it fires for lots of + * other reasons, too, some unrelated to anything you probably care about _and + * when the mouse isn't actually at the location it is testing_). Since this + * can fire at any time, you should try to keep your callback efficient, + * devoid of allocations, etc. + * + * \param window the window to set hit-testing on. + * \param callback the function to call when doing a hit-test. + * \param callback_data an app-defined void pointer passed to **callback**. + * \returns 0 on success or -1 on error (including unsupported); call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.4. + */ +extern DECLSPEC int SDLCALL SDL_SetWindowHitTest(SDL_Window * window, + SDL_HitTest callback, + void *callback_data); + +/** + * Request a window to demand attention from the user. + * + * \param window the window to be flashed. + * \param operation the flash operation. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.16. + */ +extern DECLSPEC int SDLCALL SDL_FlashWindow(SDL_Window * window, SDL_FlashOperation operation); + +/** + * Destroy a window. + * + * If `window` is NULL, this function will return immediately after setting + * the SDL error message to "Invalid window". See SDL_GetError(). + * + * \param window the window to destroy. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_CreateWindow + * \sa SDL_CreateWindowFrom + */ +extern DECLSPEC void SDLCALL SDL_DestroyWindow(SDL_Window * window); + + +/** + * Check whether the screensaver is currently enabled. + * + * The screensaver is disabled by default since SDL 2.0.2. Before SDL 2.0.2 + * the screensaver was enabled by default. + * + * The default can also be changed using `SDL_HINT_VIDEO_ALLOW_SCREENSAVER`. + * + * \returns SDL_TRUE if the screensaver is enabled, SDL_FALSE if it is + * disabled. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_DisableScreenSaver + * \sa SDL_EnableScreenSaver + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IsScreenSaverEnabled(void); + +/** + * Allow the screen to be blanked by a screen saver. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_DisableScreenSaver + * \sa SDL_IsScreenSaverEnabled + */ +extern DECLSPEC void SDLCALL SDL_EnableScreenSaver(void); + +/** + * Prevent the screen from being blanked by a screen saver. + * + * If you disable the screensaver, it is automatically re-enabled when SDL + * quits. + * + * The screensaver is disabled by default since SDL 2.0.2. Before SDL 2.0.2 + * the screensaver was enabled by default. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_EnableScreenSaver + * \sa SDL_IsScreenSaverEnabled + */ +extern DECLSPEC void SDLCALL SDL_DisableScreenSaver(void); + + +/** + * \name OpenGL support functions + */ +/* @{ */ + +/** + * Dynamically load an OpenGL library. + * + * This should be done after initializing the video driver, but before + * creating any OpenGL windows. If no OpenGL library is loaded, the default + * library will be loaded upon creation of the first OpenGL window. + * + * If you do this, you need to retrieve all of the GL functions used in your + * program from the dynamic library using SDL_GL_GetProcAddress(). + * + * \param path the platform dependent OpenGL library name, or NULL to open the + * default OpenGL library. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GL_GetProcAddress + * \sa SDL_GL_UnloadLibrary + */ +extern DECLSPEC int SDLCALL SDL_GL_LoadLibrary(const char *path); + +/** + * Get an OpenGL function by name. + * + * If the GL library is loaded at runtime with SDL_GL_LoadLibrary(), then all + * GL functions must be retrieved this way. Usually this is used to retrieve + * function pointers to OpenGL extensions. + * + * There are some quirks to looking up OpenGL functions that require some + * extra care from the application. If you code carefully, you can handle + * these quirks without any platform-specific code, though: + * + * - On Windows, function pointers are specific to the current GL context; + * this means you need to have created a GL context and made it current + * before calling SDL_GL_GetProcAddress(). If you recreate your context or + * create a second context, you should assume that any existing function + * pointers aren't valid to use with it. This is (currently) a + * Windows-specific limitation, and in practice lots of drivers don't suffer + * this limitation, but it is still the way the wgl API is documented to + * work and you should expect crashes if you don't respect it. Store a copy + * of the function pointers that comes and goes with context lifespan. + * - On X11, function pointers returned by this function are valid for any + * context, and can even be looked up before a context is created at all. + * This means that, for at least some common OpenGL implementations, if you + * look up a function that doesn't exist, you'll get a non-NULL result that + * is _NOT_ safe to call. You must always make sure the function is actually + * available for a given GL context before calling it, by checking for the + * existence of the appropriate extension with SDL_GL_ExtensionSupported(), + * or verifying that the version of OpenGL you're using offers the function + * as core functionality. + * - Some OpenGL drivers, on all platforms, *will* return NULL if a function + * isn't supported, but you can't count on this behavior. Check for + * extensions you use, and if you get a NULL anyway, act as if that + * extension wasn't available. This is probably a bug in the driver, but you + * can code defensively for this scenario anyhow. + * - Just because you're on Linux/Unix, don't assume you'll be using X11. + * Next-gen display servers are waiting to replace it, and may or may not + * make the same promises about function pointers. + * - OpenGL function pointers must be declared `APIENTRY` as in the example + * code. This will ensure the proper calling convention is followed on + * platforms where this matters (Win32) thereby avoiding stack corruption. + * + * \param proc the name of an OpenGL function. + * \returns a pointer to the named OpenGL function. The returned pointer + * should be cast to the appropriate function signature. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GL_ExtensionSupported + * \sa SDL_GL_LoadLibrary + * \sa SDL_GL_UnloadLibrary + */ +extern DECLSPEC void *SDLCALL SDL_GL_GetProcAddress(const char *proc); + +/** + * Unload the OpenGL library previously loaded by SDL_GL_LoadLibrary(). + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GL_LoadLibrary + */ +extern DECLSPEC void SDLCALL SDL_GL_UnloadLibrary(void); + +/** + * Check if an OpenGL extension is supported for the current context. + * + * This function operates on the current GL context; you must have created a + * context and it must be current before calling this function. Do not assume + * that all contexts you create will have the same set of extensions + * available, or that recreating an existing context will offer the same + * extensions again. + * + * While it's probably not a massive overhead, this function is not an O(1) + * operation. Check the extensions you care about after creating the GL + * context and save that information somewhere instead of calling the function + * every time you need to know. + * + * \param extension the name of the extension to check. + * \returns SDL_TRUE if the extension is supported, SDL_FALSE otherwise. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GL_ExtensionSupported(const char + *extension); + +/** + * Reset all previously set OpenGL context attributes to their default values. + * + * \since This function is available since SDL 2.0.2. + * + * \sa SDL_GL_GetAttribute + * \sa SDL_GL_SetAttribute + */ +extern DECLSPEC void SDLCALL SDL_GL_ResetAttributes(void); + +/** + * Set an OpenGL window attribute before window creation. + * + * This function sets the OpenGL attribute `attr` to `value`. The requested + * attributes should be set before creating an OpenGL window. You should use + * SDL_GL_GetAttribute() to check the values after creating the OpenGL + * context, since the values obtained can differ from the requested ones. + * + * \param attr an SDL_GLattr enum value specifying the OpenGL attribute to + * set. + * \param value the desired value for the attribute. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GL_GetAttribute + * \sa SDL_GL_ResetAttributes + */ +extern DECLSPEC int SDLCALL SDL_GL_SetAttribute(SDL_GLattr attr, int value); + +/** + * Get the actual value for an attribute from the current context. + * + * \param attr an SDL_GLattr enum value specifying the OpenGL attribute to + * get. + * \param value a pointer filled in with the current value of `attr`. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GL_ResetAttributes + * \sa SDL_GL_SetAttribute + */ +extern DECLSPEC int SDLCALL SDL_GL_GetAttribute(SDL_GLattr attr, int *value); + +/** + * Create an OpenGL context for an OpenGL window, and make it current. + * + * Windows users new to OpenGL should note that, for historical reasons, GL + * functions added after OpenGL version 1.1 are not available by default. + * Those functions must be loaded at run-time, either with an OpenGL + * extension-handling library or with SDL_GL_GetProcAddress() and its related + * functions. + * + * SDL_GLContext is an alias for `void *`. It's opaque to the application. + * + * \param window the window to associate with the context. + * \returns the OpenGL context associated with `window` or NULL on error; call + * SDL_GetError() for more details. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GL_DeleteContext + * \sa SDL_GL_MakeCurrent + */ +extern DECLSPEC SDL_GLContext SDLCALL SDL_GL_CreateContext(SDL_Window * + window); + +/** + * Set up an OpenGL context for rendering into an OpenGL window. + * + * The context must have been created with a compatible window. + * + * \param window the window to associate with the context. + * \param context the OpenGL context to associate with the window. + * \returns 0 on success or a negative error code on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GL_CreateContext + */ +extern DECLSPEC int SDLCALL SDL_GL_MakeCurrent(SDL_Window * window, + SDL_GLContext context); + +/** + * Get the currently active OpenGL window. + * + * \returns the currently active OpenGL window on success or NULL on failure; + * call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC SDL_Window* SDLCALL SDL_GL_GetCurrentWindow(void); + +/** + * Get the currently active OpenGL context. + * + * \returns the currently active OpenGL context or NULL on failure; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GL_MakeCurrent + */ +extern DECLSPEC SDL_GLContext SDLCALL SDL_GL_GetCurrentContext(void); + +/** + * Get the size of a window's underlying drawable in pixels. + * + * This returns info useful for calling glViewport(). + * + * This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI + * drawable, i.e. the window was created with `SDL_WINDOW_ALLOW_HIGHDPI` on a + * platform with high-DPI support (Apple calls this "Retina"), and not + * disabled by the `SDL_HINT_VIDEO_HIGHDPI_DISABLED` hint. + * + * \param window the window from which the drawable size should be queried. + * \param w a pointer to variable for storing the width in pixels, may be + * NULL. + * \param h a pointer to variable for storing the height in pixels, may be + * NULL. + * + * \since This function is available since SDL 2.0.1. + * + * \sa SDL_CreateWindow + * \sa SDL_GetWindowSize + */ +extern DECLSPEC void SDLCALL SDL_GL_GetDrawableSize(SDL_Window * window, int *w, + int *h); + +/** + * Set the swap interval for the current OpenGL context. + * + * Some systems allow specifying -1 for the interval, to enable adaptive + * vsync. Adaptive vsync works the same as vsync, but if you've already missed + * the vertical retrace for a given frame, it swaps buffers immediately, which + * might be less jarring for the user during occasional framerate drops. If an + * application requests adaptive vsync and the system does not support it, + * this function will fail and return -1. In such a case, you should probably + * retry the call with 1 for the interval. + * + * Adaptive vsync is implemented for some glX drivers with + * GLX_EXT_swap_control_tear, and for some Windows drivers with + * WGL_EXT_swap_control_tear. + * + * Read more on the Khronos wiki: + * https://www.khronos.org/opengl/wiki/Swap_Interval#Adaptive_Vsync + * + * \param interval 0 for immediate updates, 1 for updates synchronized with + * the vertical retrace, -1 for adaptive vsync. + * \returns 0 on success or -1 if setting the swap interval is not supported; + * call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GL_GetSwapInterval + */ +extern DECLSPEC int SDLCALL SDL_GL_SetSwapInterval(int interval); + +/** + * Get the swap interval for the current OpenGL context. + * + * If the system can't determine the swap interval, or there isn't a valid + * current context, this function will return 0 as a safe default. + * + * \returns 0 if there is no vertical retrace synchronization, 1 if the buffer + * swap is synchronized with the vertical retrace, and -1 if late + * swaps happen immediately instead of waiting for the next retrace; + * call SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GL_SetSwapInterval + */ +extern DECLSPEC int SDLCALL SDL_GL_GetSwapInterval(void); + +/** + * Update a window with OpenGL rendering. + * + * This is used with double-buffered OpenGL contexts, which are the default. + * + * On macOS, make sure you bind 0 to the draw framebuffer before swapping the + * window, otherwise nothing will happen. If you aren't using + * glBindFramebuffer(), this is the default and you won't have to do anything + * extra. + * + * \param window the window to change. + * + * \since This function is available since SDL 2.0.0. + */ +extern DECLSPEC void SDLCALL SDL_GL_SwapWindow(SDL_Window * window); + +/** + * Delete an OpenGL context. + * + * \param context the OpenGL context to be deleted. + * + * \since This function is available since SDL 2.0.0. + * + * \sa SDL_GL_CreateContext + */ +extern DECLSPEC void SDLCALL SDL_GL_DeleteContext(SDL_GLContext context); + +/* @} *//* OpenGL support functions */ + + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_video_h_ */ + +/* vi: set ts=4 sw=4 expandtab: */ diff --git a/lib/windows/include/SDL2/SDL_vulkan.h b/lib/windows/include/SDL2/SDL_vulkan.h new file mode 100644 index 0000000..e005ed3 --- /dev/null +++ b/lib/windows/include/SDL2/SDL_vulkan.h @@ -0,0 +1,219 @@ +/* + Simple DirectMedia Layer + Copyright (C) 2017, Mark Callow + + 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. +*/ + +/** + * # CategoryVulkan + * + * Header file for functions to creating Vulkan surfaces on SDL windows. + */ + +#ifndef SDL_vulkan_h_ +#define SDL_vulkan_h_ + +#include "SDL_video.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Avoid including vulkan.h, don't define VkInstance if it's already included */ +#ifdef VULKAN_H_ +#define NO_SDL_VULKAN_TYPEDEFS +#endif +#ifndef NO_SDL_VULKAN_TYPEDEFS +#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; + +#if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) +#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; +#else +#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; +#endif + +VK_DEFINE_HANDLE(VkInstance) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) + +/* Make sure to undef to avoid issues in case of later vulkan include */ +#undef VK_DEFINE_HANDLE +#undef VK_DEFINE_NON_DISPATCHABLE_HANDLE + +#endif /* !NO_SDL_VULKAN_TYPEDEFS */ + +typedef VkInstance SDL_vulkanInstance; +typedef VkSurfaceKHR SDL_vulkanSurface; /* for compatibility with Tizen */ + +/** + * \name Vulkan support functions + * + * \note SDL_Vulkan_GetInstanceExtensions & SDL_Vulkan_CreateSurface API + * is compatable with Tizen's implementation of Vulkan in SDL. + */ +/* @{ */ + +/** + * Dynamically load the Vulkan loader library. + * + * This should be called after initializing the video driver, but before + * creating any Vulkan windows. If no Vulkan loader library is loaded, the + * default library will be loaded upon creation of the first Vulkan window. + * + * It is fairly common for Vulkan applications to link with libvulkan instead + * of explicitly loading it at run time. This will work with SDL provided the + * application links to a dynamic library and both it and SDL use the same + * search path. + * + * If you specify a non-NULL `path`, an application should retrieve all of the + * Vulkan functions it uses from the dynamic library using + * SDL_Vulkan_GetVkGetInstanceProcAddr unless you can guarantee `path` points + * to the same vulkan loader library the application linked to. + * + * On Apple devices, if `path` is NULL, SDL will attempt to find the + * `vkGetInstanceProcAddr` address within all the Mach-O images of the current + * process. This is because it is fairly common for Vulkan applications to + * link with libvulkan (and historically MoltenVK was provided as a static + * library). If it is not found, on macOS, SDL will attempt to load + * `vulkan.framework/vulkan`, `libvulkan.1.dylib`, + * `MoltenVK.framework/MoltenVK`, and `libMoltenVK.dylib`, in that order. On + * iOS, SDL will attempt to load `libMoltenVK.dylib`. Applications using a + * dynamic framework or .dylib must ensure it is included in its application + * bundle. + * + * On non-Apple devices, application linking with a static libvulkan is not + * supported. Either do not link to the Vulkan loader or link to a dynamic + * library version. + * + * \param path The platform dependent Vulkan loader library name or NULL. + * \returns 0 on success or -1 if the library couldn't be loaded; call + * SDL_GetError() for more information. + * + * \since This function is available since SDL 2.0.6. + * + * \sa SDL_Vulkan_GetVkGetInstanceProcAddr + * \sa SDL_Vulkan_UnloadLibrary + */ +extern DECLSPEC int SDLCALL SDL_Vulkan_LoadLibrary(const char *path); + +/** + * Get the address of the `vkGetInstanceProcAddr` function. + * + * This should be called after either calling SDL_Vulkan_LoadLibrary() or + * creating an SDL_Window with the `SDL_WINDOW_VULKAN` flag. + * + * \returns the function pointer for `vkGetInstanceProcAddr` or NULL on error. + * + * \since This function is available since SDL 2.0.6. + */ +extern DECLSPEC void *SDLCALL SDL_Vulkan_GetVkGetInstanceProcAddr(void); + +/** + * Unload the Vulkan library previously loaded by SDL_Vulkan_LoadLibrary() + * + * \since This function is available since SDL 2.0.6. + * + * \sa SDL_Vulkan_LoadLibrary + */ +extern DECLSPEC void SDLCALL SDL_Vulkan_UnloadLibrary(void); + +/** + * Get the names of the Vulkan instance extensions needed to create a surface + * with SDL_Vulkan_CreateSurface. + * + * If `pNames` is NULL, then the number of required Vulkan instance extensions + * is returned in `pCount`. Otherwise, `pCount` must point to a variable set + * to the number of elements in the `pNames` array, and on return the variable + * is overwritten with the number of names actually written to `pNames`. If + * `pCount` is less than the number of required extensions, at most `pCount` + * structures will be written. If `pCount` is smaller than the number of + * required extensions, SDL_FALSE will be returned instead of SDL_TRUE, to + * indicate that not all the required extensions were returned. + * + * The `window` parameter is currently needed to be valid as of SDL 2.0.8, + * however, this parameter will likely be removed in future releases + * + * \param window A window for which the required Vulkan instance extensions + * should be retrieved (will be deprecated in a future release). + * \param pCount A pointer to an unsigned int corresponding to the number of + * extensions to be returned. + * \param pNames NULL or a pointer to an array to be filled with required + * Vulkan instance extensions. + * \returns SDL_TRUE on success, SDL_FALSE on error. + * + * \since This function is available since SDL 2.0.6. + * + * \sa SDL_Vulkan_CreateSurface + */ +extern DECLSPEC SDL_bool SDLCALL SDL_Vulkan_GetInstanceExtensions(SDL_Window *window, + unsigned int *pCount, + const char **pNames); + +/** + * Create a Vulkan rendering surface for a window. + * + * The `window` must have been created with the `SDL_WINDOW_VULKAN` flag and + * `instance` must have been created with extensions returned by + * SDL_Vulkan_GetInstanceExtensions() enabled. + * + * \param window The window to which to attach the Vulkan surface. + * \param instance The Vulkan instance handle. + * \param surface A pointer to a VkSurfaceKHR handle to output the newly + * created surface. + * \returns SDL_TRUE on success, SDL_FALSE on error. + * + * \since This function is available since SDL 2.0.6. + * + * \sa SDL_Vulkan_GetInstanceExtensions + * \sa SDL_Vulkan_GetDrawableSize + */ +extern DECLSPEC SDL_bool SDLCALL SDL_Vulkan_CreateSurface(SDL_Window *window, + VkInstance instance, + VkSurfaceKHR* surface); + +/** + * Get the size of the window's underlying drawable dimensions in pixels. + * + * This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI + * drawable, i.e. the window was created with `SDL_WINDOW_ALLOW_HIGHDPI` on a + * platform with high-DPI support (Apple calls this "Retina"), and not + * disabled by the `SDL_HINT_VIDEO_HIGHDPI_DISABLED` hint. + * + * \param window an SDL_Window for which the size is to be queried. + * \param w Pointer to the variable to write the width to or NULL. + * \param h Pointer to the variable to write the height to or NULL. + * + * \since This function is available since SDL 2.0.6. + * + * \sa SDL_GetWindowSize + * \sa SDL_CreateWindow + * \sa SDL_Vulkan_CreateSurface + */ +extern DECLSPEC void SDLCALL SDL_Vulkan_GetDrawableSize(SDL_Window * window, + int *w, int *h); + +/* @} *//* Vulkan support functions */ + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_vulkan_h_ */ diff --git a/lib/windows/include/SDL2/begin_code.h b/lib/windows/include/SDL2/begin_code.h new file mode 100644 index 0000000..2044e5c --- /dev/null +++ b/lib/windows/include/SDL2/begin_code.h @@ -0,0 +1,189 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/* WIKI CATEGORY: BeginCode */ + +/** + * begin_code.h sets things up for C dynamic library function definitions, + * static inlined functions, and structures aligned at 4-byte alignment. + * If you don't like ugly C preprocessor code, don't look at this file. :) + */ + +/* This shouldn't be nested -- included it around code only. */ +#ifdef SDL_begin_code_h +#error Nested inclusion of begin_code.h +#endif +#define SDL_begin_code_h + +#ifndef SDL_DEPRECATED +# if defined(__GNUC__) && (__GNUC__ >= 4) /* technically, this arrived in gcc 3.1, but oh well. */ +# define SDL_DEPRECATED __attribute__((deprecated)) +# elif defined(_MSC_VER) +# define SDL_DEPRECATED __declspec(deprecated) +# else +# define SDL_DEPRECATED +# endif +#endif + +#ifndef SDL_UNUSED +# ifdef __GNUC__ +# define SDL_UNUSED __attribute__((unused)) +# else +# define SDL_UNUSED +# endif +#endif + +/* Some compilers use a special export keyword */ +#ifndef DECLSPEC +# if defined(__WIN32__) || defined(__WINRT__) || defined(__CYGWIN__) || defined(__GDK__) +# ifdef DLL_EXPORT +# define DECLSPEC __declspec(dllexport) +# else +# define DECLSPEC +# endif +# elif defined(__OS2__) +# ifdef BUILD_SDL +# define DECLSPEC __declspec(dllexport) +# else +# define DECLSPEC +# endif +# else +# if defined(__GNUC__) && __GNUC__ >= 4 +# define DECLSPEC __attribute__ ((visibility("default"))) +# else +# define DECLSPEC +# endif +# endif +#endif + +/* By default SDL uses the C calling convention */ +#ifndef SDLCALL +#if (defined(__WIN32__) || defined(__WINRT__) || defined(__GDK__)) && !defined(__GNUC__) +#define SDLCALL __cdecl +#elif defined(__OS2__) || defined(__EMX__) +#define SDLCALL _System +# if defined (__GNUC__) && !defined(_System) +# define _System /* for old EMX/GCC compat. */ +# endif +#else +#define SDLCALL +#endif +#endif /* SDLCALL */ + +/* Removed DECLSPEC on Symbian OS because SDL cannot be a DLL in EPOC */ +#ifdef __SYMBIAN32__ +#undef DECLSPEC +#define DECLSPEC +#endif /* __SYMBIAN32__ */ + +/* Force structure packing at 4 byte alignment. + This is necessary if the header is included in code which has structure + packing set to an alternate value, say for loading structures from disk. + The packing is reset to the previous value in close_code.h + */ +#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__) +#ifdef _MSC_VER +#pragma warning(disable: 4103) +#endif +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wpragma-pack" +#endif +#ifdef __BORLANDC__ +#pragma nopackwarning +#endif +#ifdef _WIN64 +/* Use 8-byte alignment on 64-bit architectures, so pointers are aligned */ +#pragma pack(push,8) +#else +#pragma pack(push,4) +#endif +#endif /* Compiler needs structure packing set */ + +#ifndef SDL_INLINE +#if defined(__GNUC__) +#define SDL_INLINE __inline__ +#elif defined(_MSC_VER) || defined(__BORLANDC__) || \ + defined(__DMC__) || defined(__SC__) || \ + defined(__WATCOMC__) || defined(__LCC__) || \ + defined(__DECC) || defined(__CC_ARM) +#define SDL_INLINE __inline +#ifndef __inline__ +#define __inline__ __inline +#endif +#else +#define SDL_INLINE inline +#ifndef __inline__ +#define __inline__ inline +#endif +#endif +#endif /* SDL_INLINE not defined */ + +#ifndef SDL_FORCE_INLINE +#if defined(_MSC_VER) +#define SDL_FORCE_INLINE __forceinline +#elif ( (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) ) +#define SDL_FORCE_INLINE __attribute__((always_inline)) static __inline__ +#else +#define SDL_FORCE_INLINE static SDL_INLINE +#endif +#endif /* SDL_FORCE_INLINE not defined */ + +#ifndef SDL_NORETURN +#if defined(__GNUC__) +#define SDL_NORETURN __attribute__((noreturn)) +#elif defined(_MSC_VER) +#define SDL_NORETURN __declspec(noreturn) +#else +#define SDL_NORETURN +#endif +#endif /* SDL_NORETURN not defined */ + +/* Apparently this is needed by several Windows compilers */ +#if !defined(__MACH__) +#ifndef NULL +#ifdef __cplusplus +#define NULL 0 +#else +#define NULL ((void *)0) +#endif +#endif /* NULL */ +#endif /* ! Mac OS X - breaks precompiled headers */ + +#ifndef SDL_FALLTHROUGH +#if (defined(__cplusplus) && __cplusplus >= 201703L) || \ + (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202000L) +#define SDL_FALLTHROUGH [[fallthrough]] +#else +#if defined(__has_attribute) && !defined(__SUNPRO_C) && !defined(__SUNPRO_CC) +#define SDL_HAS_FALLTHROUGH __has_attribute(__fallthrough__) +#else +#define SDL_HAS_FALLTHROUGH 0 +#endif /* __has_attribute */ +#if SDL_HAS_FALLTHROUGH && \ + ((defined(__GNUC__) && __GNUC__ >= 7) || \ + (defined(__clang_major__) && __clang_major__ >= 10)) +#define SDL_FALLTHROUGH __attribute__((__fallthrough__)) +#else +#define SDL_FALLTHROUGH do {} while (0) /* fallthrough */ +#endif /* SDL_HAS_FALLTHROUGH */ +#undef SDL_HAS_FALLTHROUGH +#endif /* C++17 or C2x */ +#endif /* SDL_FALLTHROUGH not defined */ diff --git a/lib/windows/include/SDL2/close_code.h b/lib/windows/include/SDL2/close_code.h new file mode 100644 index 0000000..f991f45 --- /dev/null +++ b/lib/windows/include/SDL2/close_code.h @@ -0,0 +1,40 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + 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. +*/ + +/** + * \file close_code.h + * + * This file reverses the effects of begin_code.h and should be included + * after you finish any function and structure declarations in your headers + */ + +#ifndef SDL_begin_code_h +#error close_code.h included without matching begin_code.h +#endif +#undef SDL_begin_code_h + +/* Reset structure packing at previous byte alignment */ +#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__) +#ifdef __BORLANDC__ +#pragma nopackwarning +#endif +#pragma pack(pop) +#endif /* Compiler needs structure packing set */ diff --git a/lib/windows/lib/cmake/SDL2/sdl2-config-version.cmake b/lib/windows/lib/cmake/SDL2/sdl2-config-version.cmake new file mode 100644 index 0000000..7abfb3f --- /dev/null +++ b/lib/windows/lib/cmake/SDL2/sdl2-config-version.cmake @@ -0,0 +1,12 @@ +# sdl2 cmake project-config-version input for ./configure scripts + +set(PACKAGE_VERSION "2.32.10") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/lib/windows/lib/cmake/SDL2/sdl2-config.cmake b/lib/windows/lib/cmake/SDL2/sdl2-config.cmake new file mode 100644 index 0000000..7dc1a6b --- /dev/null +++ b/lib/windows/lib/cmake/SDL2/sdl2-config.cmake @@ -0,0 +1,225 @@ +# sdl2 cmake project-config input for ./configure script + +include(FeatureSummary) +set_package_properties(SDL2 PROPERTIES + URL "https://www.libsdl.org/" + DESCRIPTION "low level access to audio, keyboard, mouse, joystick, and graphics hardware" +) + +# Copied from `configure_package_config_file` +macro(set_and_check _var _file) + set(${_var} "${_file}") + if(NOT EXISTS "${_file}") + message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !") + endif() +endmacro() + +get_filename_component(CMAKE_CURRENT_LIST_DIR ${CMAKE_CURRENT_LIST_DIR} REALPATH) +get_filename_component(prefix "${CMAKE_CURRENT_LIST_DIR}/../../.." ABSOLUTE) + +set(exec_prefix "${prefix}/bin") +set(bindir "${prefix}/bin") +set(libdir "${prefix}/lib") +set(includedir "${prefix}/include") + +set_and_check(SDL2_PREFIX "${prefix}") +set_and_check(SDL2_EXEC_PREFIX "${exec_prefix}") +set_and_check(SDL2_BINDIR "${bindir}") +set_and_check(SDL2_INCLUDE_DIR "${includedir}/SDL2") +set_and_check(SDL2_LIBDIR "${libdir}") +set(SDL2_INCLUDE_DIRS "${includedir};${SDL2_INCLUDE_DIR}") + +set(SDL2_LIBRARIES SDL2::SDL2) +set(SDL2_STATIC_LIBRARIES SDL2::SDL2-static) +set(SDL2MAIN_LIBRARY) +set(SDL2TEST_LIBRARY SDL2::SDL2test) + +unset(prefix) +unset(exec_prefix) +unset(bindir) +unset(libdir) +unset(includedir) + +set(_sdl2_libraries_in "-lmingw32 -lSDL2main -lSDL2 -mwindows") +set(_sdl2_static_private_libs_in " -Wl,--dynamicbase -Wl,--nxcompat -Wl,--high-entropy-va -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lsetupapi -lversion -luuid") + +# Convert _sdl2_libraries to list and keep only libraries + library directories +string(REGEX MATCHALL "-[lm]([-a-zA-Z0-9._]+)" _sdl2_libraries "${_sdl2_libraries_in}") +string(REGEX REPLACE "^-l" "" _sdl2_libraries "${_sdl2_libraries}") +string(REGEX REPLACE ";-l" ";" _sdl2_libraries "${_sdl2_libraries}") +string(REGEX MATCHALL "-L([-a-zA-Z0-9._/]+)" _sdl2_libdirs "${_sdl2_libraries_in}") +string(REGEX REPLACE "^-L" "" _sdl2_libdirs "${_sdl2_libdirs}") +string(REGEX REPLACE ";-L" ";" _sdl2_libdirs "${_sdl2_libdirs}") +list(APPEND _sdl2_libdirs "${SDL2_LIBDIR}") + +# Convert _sdl2_static_private_libs to list and keep only libraries + library directories +string(REGEX MATCHALL "(-[lm]([-a-zA-Z0-9._]+))|(-Wl,[^ ]*framework[^ ]*)|(-pthread)" _sdl2_static_private_libs "${_sdl2_static_private_libs_in}") +string(REGEX REPLACE "^-l" "" _sdl2_static_private_libs "${_sdl2_static_private_libs}") +string(REGEX REPLACE ";-l" ";" _sdl2_static_private_libs "${_sdl2_static_private_libs}") +string(REGEX REPLACE "-Wl,-framework,([a-zA-Z0-9_]+)" "$" _sdl2_static_private_libs "${_sdl2_static_private_libs}") +string(REGEX REPLACE "-Wl,-weak_framework,([a-zA-Z0-9_]+)" "$" _sdl2_static_private_libs "${_sdl2_static_private_libs}") + +string(REGEX MATCHALL "-L([-a-zA-Z0-9._/]+)" _sdl2_static_private_libdirs "${_sdl2_static_private_libs_in}") +string(REGEX REPLACE "^-L" "" _sdl2_static_private_libdirs "${_sdl2_static_private_libdirs}") +string(REGEX REPLACE ";-L" ";" _sdl2_static_private_libdirs "${_sdl2_static_private_libdirs}") + +# Set SDL2_NO_MWINDOWS to a true-ish value to not add the -mwindows link option +if(SDL2_NO_MWINDOWS) + list(REMOVE_ITEM _sdl2_libraries "-mwindows") +endif() + +if(_sdl2_libraries MATCHES ".*SDL2main.*") + list(INSERT SDL2_LIBRARIES 0 SDL2::SDL2main) + list(INSERT SDL2_STATIC_LIBRARIES 0 SDL2::SDL2main) +endif() + +set(_sdl2main_library ${SDL2_LIBDIR}/libSDL2main.a) +if(EXISTS "${_sdl2main_library}") + set(SDL2MAIN_LIBRARY SDL2::SDL2main) + if(NOT TARGET SDL2::SDL2main) + add_library(SDL2::SDL2main STATIC IMPORTED) + set_target_properties(SDL2::SDL2main + PROPERTIES + IMPORTED_LOCATION "${_sdl2main_library}" + COMPATIBLE_INTERFACE_STRING "SDL_VERSION" + INTERFACE_SDL_VERSION "SDL2" + ) + if(WIN32) + # INTERFACE_LINK_OPTIONS needs CMake 3.13 + cmake_minimum_required(VERSION 3.13) + # Mark WinMain/WinMain@16 as undefined, such that it will be withheld by the linker. + if(CMAKE_SIZEOF_VOID_P EQUAL 4) + set_target_properties(SDL2::SDL2main + PROPERTIES + INTERFACE_LINK_OPTIONS "$<$,EXECUTABLE>:-Wl,--undefined=_WinMain@16>" + ) + else() + set_target_properties(SDL2::SDL2main + PROPERTIES + INTERFACE_LINK_OPTIONS "$<$,EXECUTABLE>:-Wl,--undefined=WinMain>" + ) + endif() + endif() + endif() + set(SDL2_SDL2main_FOUND TRUE) +else() + set(SDL2_SDL2main_FOUND FALSE) +endif() +unset(_sdl2main_library) + +# Remove SDL2 since this is the "central" library +# Remove SDL2main since this will be provided by SDL2::SDL2main (if available) +# Remove mingw32 and cygwin since these are not needed when using `-Wl,--undefined,WinMain` +set(_sdl2_link_libraries ${_sdl2_libraries}) +list(REMOVE_ITEM _sdl2_link_libraries SDL2 SDL2main mingw32 cygwin) + +if(WIN32) + set(_sdl2_implib "${SDL2_LIBDIR}/libSDL2.dll.a") + set(_sdl2_dll "${SDL2_BINDIR}/SDL2.dll") + if(EXISTS "${_sdl2_implib}" AND EXISTS "${_sdl2_dll}") + if(NOT TARGET SDL2::SDL2) + add_library(SDL2::SDL2 SHARED IMPORTED) + set_target_properties(SDL2::SDL2 PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}" + INTERFACE_LINK_LIBRARIES "${_sdl2_link_libraries}" + INTERFACE_LINK_DIRECTORIES "${_sdl2_libdirs}" + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + IMPORTED_IMPLIB "${_sdl2_implib}" + IMPORTED_LOCATION "${_sdl2_dll}" + COMPATIBLE_INTERFACE_STRING "SDL_VERSION" + INTERFACE_SDL_VERSION "SDL2" + ) + endif() + set(SDL2_SDL2_FOUND TRUE) + else() + set(SDL2_SDL2_FOUND FALSE) + endif() + unset(_sdl2_implib) + unset(_sdl2_dll) +else() + set(_sdl2_shared "${SDL2_LIBDIR}/libSDL2${CMAKE_SHARED_LIBRARY_SUFFIX}") + if(EXISTS "${_sdl2_shared}") + if(NOT TARGET SDL2::SDL2) + add_library(SDL2::SDL2 SHARED IMPORTED) + set_target_properties(SDL2::SDL2 PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}" + INTERFACE_LINK_LIBRARIES "${_sdl2_link_libraries}" + INTERFACE_LINK_DIRECTORIES "${_sdl2_libdirs}" + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + IMPORTED_LOCATION "${_sdl2_shared}" + COMPATIBLE_INTERFACE_STRING "SDL_VERSION" + INTERFACE_SDL_VERSION "SDL2" + ) + endif() + set(SDL2_SDL2_FOUND TRUE) + else() + set(SDL2_SDL2_FOUND FALSE) + endif() + unset(_sdl2_shared) +endif() + +set(_sdl2_static "${SDL2_LIBDIR}/libSDL2.a") +if(EXISTS "${_sdl2_static}") + if(NOT TARGET SDL2::SDL2-static) + add_library(SDL2::SDL2-static STATIC IMPORTED) + set_target_properties(SDL2::SDL2-static + PROPERTIES + IMPORTED_LOCATION "${_sdl2_static}" + INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}" + INTERFACE_LINK_LIBRARIES "${_sdl2_link_libraries};${_sdl2_static_private_libs}" + INTERFACE_LINK_DIRECTORIES "${_sdl2_libdirs};${_sdl2_static_private_libdirs}" + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + COMPATIBLE_INTERFACE_STRING "SDL_VERSION" + INTERFACE_SDL_VERSION "SDL2" + ) + endif() + set(SDL2_SDL2-static_FOUND TRUE) +else() + set(SDL2_SDL2-static_FOUND FALSE) +endif() +unset(_sdl2_static) + +unset(_sdl2_link_libraries) + +set(_sdl2test_library "${SDL2_LIBDIR}/libSDL2_test.a") +if(EXISTS "${_sdl2test_library}") + if(NOT TARGET SDL2::SDL2test) + add_library(SDL2::SDL2test STATIC IMPORTED) + set_target_properties(SDL2::SDL2test + PROPERTIES + IMPORTED_LOCATION "${_sdl2test_library}" + INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIR}" + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + COMPATIBLE_INTERFACE_STRING "SDL_VERSION" + INTERFACE_SDL_VERSION "SDL2" + ) + endif() + set(SDL2_SDL2test_FOUND TRUE) +else() + set(SDL2_SDL2test_FOUND FALSE) +endif() +unset(_sdl2test_library) + +# Copied from `configure_package_config_file` +macro(check_required_components _NAME) + foreach(comp ${${_NAME}_FIND_COMPONENTS}) + if(NOT ${_NAME}_${comp}_FOUND) + if(${_NAME}_FIND_REQUIRED_${comp}) + set(${_NAME}_FOUND FALSE) + endif() + endif() + endforeach() +endmacro() + +check_required_components(SDL2) + +# Create SDL2::SDL2 alias for static-only builds +if(TARGET SDL2::SDL2-static AND NOT TARGET SDL2::SDL2) + if(CMAKE_VERSION VERSION_LESS "3.18") + # FIXME: Aliasing local targets is not supported on CMake < 3.18, so make it global. + add_library(SDL2::SDL2 INTERFACE IMPORTED) + set_target_properties(SDL2::SDL2 PROPERTIES INTERFACE_LINK_LIBRARIES "SDL2::SDL2-static") + else() + add_library(SDL2::SDL2 ALIAS SDL2::SDL2-static) + endif() +endif() diff --git a/lib/windows/lib/glew32.lib b/lib/windows/lib/glew32.lib new file mode 100644 index 0000000000000000000000000000000000000000..e51664a0cb290057485bbc69ba584bee871c653f GIT binary patch literal 770808 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

l+3VGP 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 Kio$Kd9)JK~w#rKY literal 0 HcmV?d00001 diff --git a/lib/windows/lib/glew32s.lib b/lib/windows/lib/glew32s.lib new file mode 100644 index 0000000000000000000000000000000000000000..9bfe27ee5b0361d7823103e04341d8695720d9c0 GIT binary patch literal 2903496 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 z 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

O_<-Zs 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

&A6@m%OB9P5`M9G}mx5RU$vAsqFXFC2ZfOgMh7 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 z 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ȼs}|?pQ#(7D1$0DEA8R( zg$+Hk%{Nh$L6wJ#~K-wi>RmRkCQItVdfR(;4Ux`z3tf|$aD1)jXEB*FWyhO_XOkEU38B~Q> z>AVqTWQAd-eu<(Cs=}=F2uEEW?pe<#Kkjy(GN_8M(jG>r6x}m6N{gZls-jTqd6$-+ zb#Et8ltJ|mD}C4dapiL*O1Rq$QItUy$Vz)yBJ1r5rjCfB460(R^t=YXNn66yTTzrj zRh*T+r(FBB@~)|PC)^%V22}}GI(l!sYInm_peV|qD#=Q(^18auJu_QVQItVd3RL3W zxoTUjQKBe=sx&L@#?eHXKbu-BiZZCmuu36UXvO!Be@$H$MHy6OS?QPdY!ib#V&IO!4>3^OHqU2318? z@ueGkBL#-FS_ec?22~|i&W^Vp|6TTc34ASzGN>xE(y@`Q`M+1KR@_r=4=IDH3M=j5 zwQ84VnkpcQGN`Ju(lNg=;@@(nnu?+fs%lUxVWQ6GO-&F*8C2C->D+rW!98D7TSZX@ zRSi}Nq=%2vZS$=3Zi}J}s+v%%&G&_$tX9O+ZVxGgsunAqZLa5SvDQ=;QItVdo0WDx z>5(RvOw|!Z8B}#x>9cas{ArU+4HiWiR6(rto#@Zd$n8xn6-60Tby?}^t6rglhfN(5 zMHy7}Sn2i3QKo~Z^G`%k2337ldS0VurCx2dBA;c~p(l!=Mnd%nTOJMZ?8GN?L%YSDH_ zD63UU6lG9#W~KAS%Up{?O!X8+8B|?ZIXm8tg%s*wYPKlKpz6v>@8x6{Dt$L~SQKSY zbz`OXa?vV@Jl_vLh@uRt?yPhio;jIxq}57(!R;YsQ1xJ?<8XY35N9E#^I-*1ltI-K zRI{W@E}QBjiZZBrvC=ib-|$_7Of45h8C1PN1sq=W*wjT)ltI;pmEOw@%S82jb^I-g zGN}5p(kE=KIKK~At+W^29#RHXKTyN2rW$Cfk|@fc>d#6$|2|QRo~C+=q7145th9#% zGk#iZYKbVypc=?Z$KlsSj~p^T+7!duc_anD1&M+D?P%Zo%)qDmHLv~ zL&~5U!b;ZwecvVayjNBhMHy5>S?Skfv06PuQ3lm8R>|dF4jcFQJ5&FPq716x ztn>)~xq4}xsgt58gK7jTT{*-~)Ov)eccLhRY9uRX$6Mn*Z^xO6bJ^`7Wl)V`rJbJ= zYg;N)g+);Y)o4~aZ%iBAznZDmq9}uE4Ad&M@WB;R(?n4Q)mT!^%_ys zC)iXwQItV732Keq9e<9gd7>zTYBDQ5uPMztIKy9O?Bk*+gK7%YTG@SHYg3;^Q3lmi zRyqSb^K0JLRI;mX4=ICc8Y_KY?h_Oxzo}B9D1&M`D}Cx^4f@FC(l=J zH?>?8Wl+svrE7pSrNWdlbyXB)PzAHnZcN-#bF8T!q9}uECMz8qfBmvLH>h5(6xZAy zQU=v5P#N~NcxtM;D9WIk%}U>HrjJVGS=)>dMHy6cSUC@V-tOPMc*$z56-60Tb3x^5 zH_Z71^t>L3q715eth5`0qplreD$aGc8PpviJ}au1yHN<%-^2h zbLb9=|7%CMMigaGEn=l(V?oD8Z%y41MHy6!K~)|$*qP+ChhcBH-JlGr zC9HH7&Hw3scT<@}Q3lmgP_sfU_+hG!D9WH(2I@!EMuSWZ7eyIV%Ryy4lGQmWJ+BR- zD1&MRs0d{nr89L$6lGAYWTo@r^j8s`VWPDn-gJ9N8C0u44ZC@xm8o2!D1&M>sO2?A z2byXkiZZCyuyS_1)m`%-oT-VTD1&M(D}5)*TKJ*oJN9-_ltHzQm97C|#;=*iYCRW4 z8C3tV(h>FWOTC4rV%>6kNEuY?p_Xs@5mihT5k(nP8=zM5aI;UDY9op=s5U|^|7BPE zn)+81Wl(K`TDQ|)^*r?sh@uRt&8(aqZ{cF6^Ssf&7DX9UTUhBTWoo@~yX*+#-gbLP z8B|+Y>9aC(iV_!16%|DpRNGkTEZT79G0#scI*XzVs_m@w2&;$l`);)si=qsw9jtUj z)hS)Du&FbmD1&Mz)OvrVa&}YSL{SFSE~xdoSUJx+D#abQhm=9J8)}8_Jz6}sYrL-Zcql*0ajT={W~I+=SxLlQItV-kd+=`pMM(;vRYk4Q3ll^R?aldTe!GW zADUVwiZZAUL#@&I2d6M~Qxs)T9f4YYZHFH<74@Fm4a%T8$||oMVe_}?Jl88w6lG8y zW0gH7)jHXJ8q716jtaSA?sZzaOruvAY45~A%{H4~8q?;F+ zS}Te&sLn#IUs={T?F=n{#sg85L3IvltvdAmsj1ix+-^_?)p=Gr=D**)71>k?QItV- zft8N=%SBgu)`z`CQ3lmTR@#l@Wm9`b)LK!LL3N3heyQlQHQ7Rh@uRttE_b8u;yt?&$pERq9}vv8Y^A1&8SmtydB|6 zQItV-ot0j%>xK7?G<8)JWl-HX9hQpnA+ozaIG3tyA1oyeDoqD1+(= zEBz8!x=F97rV5Cn463KBoB_ex?&S@;m}(@7GN_)h(sB6liud>Qrir2qs^_3$%unWd z5*-jl8B{M=C6pt47}R%x9pM{MltJ~9m98q|huiSVRN|*@4=ID{6)XKll)lME=Ys3Z zR!S6QP=&D4BTRBF!dX*2L{SFSYgT%Mqt5$#-Yb`gq714xthDowb{s8fwa$s6463)R z^y|UXuO&8{`X!1osNS)1cD&`gD=3@{x{ETb5s;%P<>{lGg~PCpcYo^gDA?N z`U2|m6u%j!Qa*QkNEuXLS!oaVp8WL4RCQ65LG_K5&QSp^cK>IpuPDl(`p!ywn0tQ& z=Y>GW{8CYrLG^=`J{^)QDCPO4cU}}_Q2k`3^L(kpLp0Wl;TMrR&4H4@R}M zBg`&}GN^vD(j&ZlbyZbU%|%fL)gM-RFPH1oyt1k3q9}vvFDvcg-JTT&n>rwhGN^o< zOXV9%@8vB?S6?^vN)%;Kg<_@m^7_i@oaMG&ulO(B9#RHXXjaZ4@YbLazltC2+RL0_$kDHn#iZZCeveF)|&i1*RscoVtgDM;=y_XCBm|ox1 zLs67L6`qye%e6-4`DQB0E4PP~K@|bikX(&DZ`p-JQ3h2+R?d#Mh8KD}mrk!&2T_zk z6^WI0e(|yNYfS}CwR)G|?&K^23Q z-YLyvN#aP_?3&$|;I6s1mZ$*=9`7iQ7yy6-60Ti9k(_K0Sh| z38E;2Dlsd4%f1&TlC!ke8DNJf%AiUDYHj=so*Ce^D9WHp%1W>Df{i|&uf)mUx;>-} zs${HmL_I6t;=3JT1yPhi<60kRt6I5CMSk!0kTR$;fC@Y|*E7#&7eyIV8CmIhZ5Z&&`Q!Dx>WHEYssL6oWo#_| zmCAX%s2VJaGN>}Ka(29R-v9KVspX<5gDNvCeST%wGsyE^c|jCqP-S7I&y<-XqE@n6 zz8~BkQU+C4R(db*T-M-_sQ^)wL6wb_v*RuQ!kgDk)fPn=RM}bS5$0OF@3*NTq9}tZ z2PnRzgiS!P~~Lhe4gO#za^DDYwRncD1#~&D;*m{{`7uqwZ4d=4659$ z^qDeoQOlX8l74hMPZ?BsSm_b=%n<1O0eW5)MNtM-URK(}prfOIn(8QuGN|&g(%B~A zv>jPZ1&g8#s{E|g|1i~F6lG8qVWnf^$G)?ku`yE=Wl$AmrQKLN z!Ta}b91ukrRR2J&Nq5t4vLk#ciZZAISve1W-b%KNn9o$q&u$MXgQ^%S9liZ)R`_Kq zwD$Xi})Y|^>m}hLX5JeeOC7@Q4S8K{!ty!WdgQ_GeeUlpaIJW0mc~TT*P?ch( zD~D)BHhR_oKSfanRcTgwmEUxERKkuh^B1>=ltEPn)Qh{vj+m+`iZZCmveIYDq;bc; zn;IaBGN{V2($QOH{JfT?mWZMZs`9LK4UpmZy1J&$i=qsw3Q+57zBtYwpmWquQItVd zkyQ*C8#nxyzcH2etJ_1$psK`5JO4SnkLPJ#UKC|eRc594SDK1bJwJu%CWTW22~@d z^{B^^#-@$22IkIY>b5A#pz6p<@5&!t-1Uchnts3CZcqkQCsuk_mKrklv(?HkiZZA= zL#_C?t_GWGDT*?vy0Fr2glah6v#y&iiZZCWveLV<&M)upuIv#-8C2a^>0Q|~@~$0r zgbzef232=fdX?v2u2J1o#6NBiDTAs9)H;9gfM<>>B#JVqda}~%m49z_=M?n`+d>p& zQ1xP^PomHD&U<<|O%!EN^=75-gY`p7JB`s=M@3NvRUcN``Si7FcvhazL{SD+Usl@r z1FvH`OAW0R`LEkU%Ao4UN}uM1FW1{>DyJyQpz6;`NAIGeLw}lTB#JVq2C&k#@zvbr zJ@dwRQItV7kd@9h%R0UtVzoAjq714*P%HI^7#B?46h#?SgIVc$-6>ejqkMeA@=Z+{ zR6|(l{gvx}CC~3CWD-RgR6{|Hu8}&59bpYoltDF&m0quQJvMm$ON#!YD1&M^E1lVP zWZVDEYONGS8B`-!>4=&-HCiuIH$+he)kvt7BZ9AIr58Gs+e6Br8pXbsEd`8HhOc^|$iL9I-Tk^L4$yLwQnInoas3t+JyoK%tYv|4FIQ3ln&pyD)`@0n=}ilPjv8KAO7$Qxv}s*0ivs$fu^ z@}(?hs+B0ppqdG4Q=6!*Obrl48C0`CeW)9!v#DvKD1&M?s8LzpdVcS8l_<)fngi-Y zs84sT)_zfxK{Xdtq^dVQo4PEDGN|T(D%bR&XMTPuiZZC?gBtgF=whqo6UH4;ltHxs z)S1J0u2~ltHzcm9r4xt>%m_W2{y`QItWohLt`Uqdh+s&D0!GltHzYl^)@z8=pLHc1J`} z2Gu%N`o>skJahhr^~$h@uRt&7hVw zkN45k8&Q-&wS|>lM8B|+Y>75d0cD&(MtDq>#pxVYt-+*>@Pwe^H z+)NZ@P;F=B?0Bp7^J1{o8YPM{sCKZ@Bh1<5`zcc!MNtOTPFDJ6cOu+&&)e2bQItWo z3u^g}{J!66{S-wRRJ%bXJ9=eyFc)J zE$k$UGN|^k(iOE|zT4TX)An2u z?Ti+t)`+4Es?(s>?Y;5Z)MZhWL3M_ej`?QE8aFicOB7{Lon@u>*QgSyJU_uqAKC38 zWl)`CrSD%$hkop0wSq)Z2Gx01I%6OBx3Ba0N;}_O6lG9dU=?0Ezo%D)<)-F|q715w ztn^;?FVVrXa@Zz{GN>-G(y>u2@=?#vJ+F(R464hlbQ}(Ociy?x^t^tHq714lQ0r{k zX`a<`dOx@GltFcsm9E(`o}ZA*YE=|P8C2I;>0NorB^w_k=O-IrHJD8kTR%lv(mSK zBlAK$Gg~oHltFcem3AXe#3<*jRufT_L3Njvj^4wStCTl2Q50oR-D9QSks`h>Ji*io zQItV-pOs$aP*txv-(Pebo)twIR1a8b55JzAeZtf`QItXTkd@9ho9eaoe0_=$)$KfG zP(5O$^WoNQDc4%9BBCgR>M<)l!em<_-80ov6lG97VWn?~7Y59A{!zOzN)%;KJ!PeD z9Df?c_uR`1L{SFSGgkWUaB4@#MpkRTD9WIE&Pr#S6T|O&#{4r;ltJ}^l^$V_f^%zH zEx%}P=P85gB`bZ0-5mdnXPyrbMHy7DSUJOpw>v2gIS&f$VM$SxK^4MESIc=%rSm); z8jGR~s@JUCVO=Wl+6i zrFUhzh5J1}G5jQoGN|6O(x+aWJ-x5n5hjf8o-bukePE?yK27qfO-&UOMHy5dS?LVW ze(8XXrkaVO460A8^san!VCz^@BScXK)n`^Z=4%u#(cjcMQItXTg_X`5iR$j{X6lM4 z%AoqnO2=WU#PyxV=s5I^;r5U+sJ^k%5%px zd_A}*iZZDFu+nk3^!V-zR_m)M%AooSwe~KaJ=9eEnC=y!3@RUIS>qc@d$_z|7|(jX zkSNNa3dKstyzkBg&L6McXfBE}s6w;S73`8y13dHmNKuqQ<;zNs@PCw@2Yg)B@$bza z5_<2DnBEE4mTbTjTir62EnBuRby-O(X>Dm&XeBpl=!9TeC=S)sfa%4dm(Y6+olrvW zErb%no0&6nXXf6!B2S<9{10b--*e8L)62cP#ni{gXO_a3ChKA>MRBDAagXdA>sbz_h9B%gW+KoyLV+u8% zT8=1L`8H0e|5B;ROrge8%M&H#_55w;n;zg8rcmRl6^MdDqQ8It>cEpVt;?B0ji*+0 z)HAtvmQw0PrcmRlm572yMSqQzHJ2&1>{`KxsPWXwM6Jlw?PIrnU#TsbLXD?ZAxb>| zazp)tO4Txj8c(fCl$7${SG{hgQaPqjgK2txJ^jy`{yc&Qj_` zrcmRl^@x%c$9u=U_L@@HF@+jWtxuGAqvoVaGwQw06ly%R0a3C8Q#l6~0iXzfE3OlK zh#F6ANR-UJTAsP;DWyg;g&I%&hA8pIoHq|NwYP&Q)OhN*F0Ho0o2K75ktx)8YA8`M z7d@mtcd6#^uS}uFQyUQ_K3w_7)n8HSRi;qmsf~#eA8v3&`+TLAUpM#=HJ;jpC~3+Mchzf2i@)jzmd~+WX-x|De>)Orge8_(j;Imy#S_|MlX}l*%v_z8Y(L z?BPU7d37zjv8hqVGld$T)(E1cpMPj{*I}C0)l8wrQx!zX9AL;s7noV)Q%s@8Q$e*Q&!fguyAvhPbhuw{OEN`oy!zzJXKGWw90(T8WWVdiz(E2s(~mO9q!s^ z>pv;=HdCna)HtG~Zmj**nI)x`{cZ3eYCP3Q6#PSf3x8M(hE4HC1yiW;)Oez#_HOj$ z8w-^>fGN~?YEPo1eSP-vv|&me%M@xnHGwGjhyI>C>I8EyRn@fGp1}dG|C$ZET&N7sVPLk5Ke#l?7h&m)OczyqNK;Z zc-{@h^F^jmgLO-i})O>4lS&x}Pc3cxoRgJ&hA1hox_^FZdbabKLXD>mBuZM!Mo%v?qr*c?p~h2L zqNL8>^!O$lX%0VO3N@Z;B})3kQo|E>E49WZ!Skr`R2xy^jdhm1I!dY0Orge8?L>(; zn%}VJ%Lg!p8c*ejT8Ddpo6ft?wB_TNLXD?7h?4g8-tw8Q_+U2Iky2QY;i zPt77qYSe;{KEFlNI*}>Vc&eKy_=o-$T`~JjrLJQNHJ<7rO6tb=Q|Df%)T>OP##05N z#D`Bk@x&cU{mc|!|_Ue z&J=1qH9(Y%u$9NIZCc9en+G4F##6J2lKIB?5u3sCNc!GtrcmRlIYdb*S08=cr%Dx= zLXD^95+yBV_wFaZSL#frP~)k2L`mIPaNQPPXvz4@a>r9Nf~HJ&=y zQCEDo!3d>R-y--BHJ&gLO(T>`D-V56(m1PPw zo;rpoXhi*R*b93N@ZOjwmVRt5-eHwB^s3LXD@6 zCrbLLMKAx_to7F1D)os(R)H==`ly?kLXD?RB1-y=flp>Wr_|q>LXD>u5G8$Y z-JGl6RqDS?p~h1u6D9rpg(r4HW+jIkZyh|38c&@DfB&d+{Nq?qv!!p869};i-oVdFjJ% z&HC#NrcmRlGl-HJ_39>v^=n$+GKCsXok^7RqF+zFu|cV!+k`xz##3hz1;=vq_w^S0 zU!+tWQ>gLO*+juV^mlFTYM(2$KU1jj)Iy?U)Z1{?mF6gQJX5Ig)SrohsU-bPt=q(` zMsH>cHJ&<$s7;tEt#i29OZku~)OhM#qQo2TEnN0G&Eapi4L(GTr_Liv>ik~oKK&=9 zMlyvOPn}Pcw941!tn{-|)0skzr!F8$`lvJh{OW5;9nKVLJar*a8?!f_+-UCGN?pnn zYCN@wsHpZ1{gb)r^b%93@zg~`MeXaqi_h1zK4%Iwp1PPQd9ImHZ*sFzt8W+bfErI- zLKG~L>2IG4J~ORyC#F#2sY{8HUUbCl$p>j#lbJ$|r!FH(MxtA)?5{B%#1v{gbvaQ| z%8Rys*W8^ugDKQ_>MumeT(q#$!aX#HcQJ(;PhCNj^czQv-~3#qK4J|^@VZiC znL>@HZgOdLeX;M-N_8-W8c*F!)bgCe=a2fTN2#-!LXD@E5G9^}`pk>BRq95jP~)k; z5+yb2lFL8IDfJ9fsPWV-j+(UcDFvlIU7G#nJLtG>NcWa_@Te2 z);Su67b)e$00FRl^i&Jaq?A(gUnD_2eg&Dl&x{Pu)qBwB-e> zF8zQ~XEB8uPu)e7^rCw%`Ns5Yw=#tqPu=a(`uyC|nVQziOrge8_Yfs>o6^;PFyq&c zOrge8_Yx)LwfaMM-=%47x?}J>YCQEfqGS%ROXk#jm1l}37tx8Q|3N@a3lqkvJ z{UesGRI11nYCQFrqt^K2{+BDYfGN~?>T#kZhoj$LVCEZFGld#YJwcT8y^mgLzn1U> zQ>gLOlSD~de(t&RF=Xxla13YG0P$@Fu0+VhS~$`a4llqt2bblG(-j)rjCj)OhLzqGS#*w6)?3O>1+eP~)i=iIP!o z#j`ivTdA>3p~h1$5hXS1;`s|9Q!=I;z!Yjc^)gY?Z_GJo#U`bWW(qZ)dW9(IHzqze zWwq18c+R$D5-}Vw(s$=QUgq(##3()B{k}m3zj}Ysq>gZji=ru3jU$Lt`|RnC5x2T zy-cCTQ*RL^^|1fJ8ILOU2~()?)Z0W!JzVb9hmTZh#meAA)OhNjM2R=5Hd=JHQd=>F z8c)4Ll+@mtk9L^-s7Xwr##8SSC8OSk#r<#Aw0f9Aji=rtO8Tf<9z5ebrA}rFHJ*Ck zQQtgM`kPYMF@+jWec-5`SsyJ_>KUd`y8ZNg&I$NOqA4(`g<0hqtqCtP~)jjh!W3FUuTUUHJY1Sz}FohaV zeM!{DOx4fb(3}+iZdC9*YCQE7QScA_-Ff=)H);;EOrge8UlX+zQ@{DKKBv?lnL>@H zz9CB1dew*h%B;=rVG1>#`WI2s&;M)OP&0%5iYe51>RY0u?_G1%qb}1N{${7(4b*t* z-$coLIb5v zRi3)VJO5GY2BuKssUL}we*W`^>JL-uMW#^Wss9l58!qLWp4}b>C21)?GKCsX{X~?s z%GxDA&r@o|B8&PC@HV5ts z-|hCSQp@cUe25xPEkl%ee#w}XUr=gmrcmRlUlA4J95Upak3Z>BYCKb@@zk%05^t=u z-Wgjem1PPwo?4bDd9Lb9Yj;uVIHpkJspW{0+WXB5_tz+OIa8?d)bd2h%;Dsp4*#c8 zk1>TBPpv?dwDtV3pK4HnL>@HRwYV$fSvByu3M=kOrge8 zt2yf1t=|5twXTE%mQtRv*e25xPtwEHuuT|eJK_N&VwL4R&@zk0` zZOz{J-GWmxO0_bD8c(f7l@HenXVZMSFI= zZL(7DF@+jW{gx=1A70S@oEcMA***9WHJ%zul+?qXjkBXQtxBd) z2$!_}#uREiwHZ;;_YUj${sX06V+u8%+MFnv5uGrQGv4@)Db#ps3!-Gyo3z`ATQsfp z_Xy>M8c%IW)E4|)@6_27pIwUf7|xr4}eJBn9dYxJoP)Ge#_L8uWVp?fB~jZG`E+DfKy1sPWWrqNE;v@Wjvqm0E9X@F8kEHNsJI zzP+ScsnJZK##0qUNq_joxSyJp+K(yJc&d^p>22=3b(y?U$1#N(PmLr>Jiq3ol#8m_m)G_8>}1d6Tbq{;yK2R|g-W##3X6 zk{b2d12>sgIg%;Vcxo(BQp#5qTg#swPTC^IaBn z{1p}9ZxK_d@l=hYY7Sk)^Z*Yrg&I%Q5+y#IF|hKBn%1XGp~h2nL_ya{f87%&ThG@7 z&!fgu^+bseSA6G~)w3O*PbY+z~nJLtGYCKWmjqf)aW9GfrF@+jW?Mal3u$k4a?bfs&WC}H&nn0A4 z*XV!DG4=3krcmRlCZeRDUv5S}EF+{wty>$)3pJjaNR;?+@tkpID76z)sPWV!qGa~< z`#%iXPO1HvLXD@Ii3&M^uiO9Y0yyrF9L{D6HJ+MGl&m;1yZ!4PrA}fBHJ+M6lz3y> z$~#O^>aR?p##1ds$;{!3r6)hA)XPkv##2*?lAi6p;jPar^&L~F@zgY;#2ddpa8|!k z8`Xty)Ocz-Q8L1|jav+xo#Mk$Orge8dl4lo#5pHEVCFVircmRl8AORU_TJ-2v)_9P zQ>gLO-bBgX@<~@*w1wvITBcCrseOo&9M&zr-(gC<&J=1qwJ%YdbH7pX_}Ql_wNicX zA!r?(qiLPa6ly$` zAxb=-+i|I9lv>ObYCLryQBvpEd8Knxr5@HI*F1Vd#O`1cPaGgJ&7f~_?c>nm7-&X2V zrcmRlJWjZ0uN%YjqQ+CbM9D0r;o>f+Ch}ZEnL>@H4kAiC|A+5J)+n_LQ>gJ& zA5pRz-Q&&O%udDrOrge8B}e7w9MGw0Eno^Yp6VwGikAL<%zj`-qPv+wji&~PlDe_S zQ}6y zzUkSjnL>@H<`E@zWAVf5EYTdcF@+jW%_mCc0C%5w^R?Cx_qHY1D0LB2 zsPWVxM6Jc;HRh%;3lIPK2vex>)S*O4&-V6zy3f+IzGMnDo;r*u=sM|dwO2>M|CI7t zZO>3%sPWX{M9E0>r;XR$MyXwyLXD@6AWHiA`q~4HH}+!+HJcFHsl)8y2)OhL-F0Ja5a>g64F@+jWok*0d z+RobTu5GA8t z?e|?(O3h*lHJ&<|D0!~EzrV}$Y!@(v8c&@7JB8c&^0l+=x5=e>B6Qlptdji>(P(mL&`Z}(TK zjVaW4>I|Y}e)!HtpPM<`QB0x6Q)dz-GuU;PylCpiUzkFTr_LfudhCM^$e*e?e32>C zcTv3nL>@H77`_;{8s*ep-SyADR>?=p87LUu$ZL3Id9LJrc{P0)OhL~ zqGbK`^O@h@q}1t5p~h3^5+&Za|I8y{`X=@8A*N8{sq=`E-saklwZBp7bEZ(^sq=}F zo-N@HE_c+4eaFwz zv}Q1c8c+R&C~3>vw(j?sQgfL?ji;_4O3G`Mrw@j%QG9qgQ>gLOm5w@o&L#s&J;4-e zJhhl8_=o=1JLn)Ynt#m{YCLrnQL?Ll^`@t9s%dRBC3qe+p1PVSSy%4bdHmfx}GW2cgLOO^({{ z)ThjP`5>lHix$U;bmWlDeBI)OhNzL`iS6&kL(f z)U@7V3N@a(g(&gi8!v5lu~PpxHFzF1p1PGNDX&Z4Spys>KHQ8c)OhMPqGaAX_020^ zR;q<5)OhN4qNGN>w$Jpfm732KYCLrZQBr%q_~EF1mAa5A)OhMnN8Ntc=2MhMo+-ANs31^-3rN@y1t7p~h2p6D1?;g1#rAfeJNrTJSt-JarFIQeL;*Gv17_^-Q70 zQ}?>G`X@rwh|=n03N@bk8&U8N{Y_hAl(~I$GE=DW)O|$B3UR%MCVs1F-OdzhJas=& zG7?oy{c&lfK41zpo_c^N86D30p|hye3e$rRQRArxiIVnp;>z|rX1g$j8c#h$l+02- znZJdpQ3o)E8c#h;l=L>s9&qAUn!_WRLXD>$AxcWQYP0!fXK4{rsPWXJL`h5e?6C*U z2>UmtP~)k`h?3odWv-n5kmm3MrcmRl$BB}*y!`qdX4G4Aui$yqc<98c#h*lss4E1)Dsg)ZR>?##2ubCH>*B8@@0*frm4N8c#h zHJ*BgC@JN4m;0edb9g^fsPWXZF0Ex}Uh=$B?=XcLPd!JJ^c%P2?kOp?;*8*V)OhN7 zqGZK!%`5B7RjPt1)OhOeM8V>O{#LkZ+7?Q+Gld#Yy+D+BWBNfKAE(rrOrge8FS@k; z@lK7I11w<*HJ*BjD5)Dq-*>}@n$`zQp~h1$6D2-;dW9{`9AK5bgAY;TsaJ@SIrdlk zZer^ED5g;3saJ`TIlw&^{`i>Y@IanL>@HJ|Id)qH$|)vz?~(N2XBYsSk;gR@uGd1!jNaDyC55sgH=-nCszg zyPxp1ru8gSsPWXtM8QAwxB6}a3zYixe!+*R@zf_oiRU+btLZwWMlgjMPkl<1)TpkR zJLQ$yhbh!}>NBEbgkA2q8_rhhXr@r(sn3a$9{b?UGxL?YmMPSD>Ir@kag<~BQ?G5Zyz{%`-_L)3WcD@PSB>A6p-Etx`%r@kgi+Sls)U-y7gfc0( z=a2jL#THHLUreFKQ{NFKJzM2XD}Affx(5W$qsCL;6D57`I=5^D&0l(eJ(xm`r+y$x zeE6HIcO9)%fhp8@>PMoaEl*z1YId6W*~gmJ15BaDQ$G+y zQu{H58c!`nlz3zL^*23VsY97Uji>&PC|Rcrf9IuTm0H9UYCN?xQQ@hF40(6Sbz3O) zAXBLE)G|b^z`f|g=Z1c%)ay*4##6r{O4{;-_Yb{GsqdLWji-K16#PSfzq@;>J(b${ zz>ss)cxqXq#2f$lUE@YdH8F)6Pc283)cME0JKyB6k15o6YI&lheN}#JR{<9@g&I$- zK-6;lTw9;BoLRL!#}sNjwW6aIPCv!$>3zx+YCN?PQPNTld3_(_jb*dJhp6$?%0x+d zT|TSE^Z+B6LXD^J+loss1xGZc7wvDFtV)#h8%^gt|A|t^FohbQ z)@m-TBUYMBEik0Dm?_kFYIUNd_8#4L=Np>Vi%g-$Q)>{lB0ov}T0g;s0(q{lnL>@H z)+9>m;fII)aF0@}w+7Fn##3t%B|e-xx9UKpMlppNPpwUqk=g+(Q_Mo`fp9^Ql?Pjsr87Gz2#*Z&bv^l$C*Nnr`9J*a`@~< zSB+6>NL%nBYCN?8Q8H)Sbl1c8S88*nP~)i$iGo8E`upP3E{H%%xrr&%cq^3nWriB08^;( z)W$@?KlInX_>?}S-ew9lp4x;cS<$bv;>xv3t=b;S3pJkFl&CE@tta<8<$a}gWC}H& z+KedaH+tWH>JX*cm_m)GHYZB@!v&k&af4DPFohaVZ9!DXKm4BW{KHJ0zlkZ-cxp?c zq_=tFfx=Om)?-Ye##37nCG~LWPp^WalY00*Q>gLO)-J7af1N#7ssGD`oTJ85+Ylws zb@Ar^=um1XQ>gLOwl1yp_MbIOsgX>f##7r7CG~Lr<=g*PsmV;C##7r9wGG#e_Ye8p zlvj}{)OhN5M9FiVGvgLhH!fxhHJ;jmD9PdK57|2vw=snpPwhyQ)cK=Y>Tg6v_j0&`V+u8%8cvjq%PTJZ^K(kA))Af;HJ%zllswn0r4MdbYA2>p z3b_ue(C2c}$_kQzMBIAHIG3t*gJ&Em2Z8?%emPX-a*|6ly$GN0hXb!bO{OD>XD9JdYYr z)e{9SpufXEUDk{aW0*pXry7Wo9M0XO`BY77FQ!oAsd0|_@VcGNOz&`}P~)jaq9lj6 z-#h*|P3v-|P~)lbL`jW$egDfoSLz<7P~)jRiIVc#V}pfTD)lB)sPWVUqLyJFKDbLb z`3wKK%*^0<)Of0iD9Pb>KMgT+fDM>Jji)9OC1c8jkvqJpIULOtYCJWGDCswbt(E_s zQd5{hji;K4lII$F+mgR2HJ2&Wcxp0H;i-oVxn<=2RZ1;j3N@aZLX=2oRXVmw)B1@i)Ocz- zQBukmUVnlaD>s@Iyo4H0?M0N-!$($q(u_o7m_m)GW)LOM_2tVW9?=}OF@+jW?M;;Q z8=D(qr)Rip~h4D5hdPO zsqo-GG_5a~LXD^PCrW1KH}@|2RH?PPgXdA>sRLYEs~mZlsq@2_LXD>~M2Y8Xw*be3 zBK%Ed3N@ZOkSM9We}CYDUZqM*p~h2LqNJs4{^H&*D|H4_sPR;*qi&hg->KBqOrge8 zZA6LZN6+toWaYUYUN0ii!$A=y~N~z^~LV2OaQyq?a zV#3VlmD-Uh)Of0sD47xMb$i8PrKU558c%h(v|bq5Sgq9WnL>@H@7psmb)Ocz(Q8EX3cESf& zYFb66P~)jNM9HXk;L+zjrqnS^p~h2liIN_B!-FQ8-sV!KP~)k2M9EzAj4#4i6^id( zrcmRl`9z5iXT3kuw3H8-LXD>mc2xI!J@29-{4LuX$_q7~I>b?@)LwtSQd=;E8c!Wc zlz8Khb@`W-s%8o`o;r*u>3gdV8GX7^2QY;iPaRH_>_~rb;_81^>QJUoPn5LE^&XnKpHeR|g&I#CNtAe_YK8G;KEKpK!Skr`)KNr@!dJ?Z>DHf4}Jq<%Jqgok*0-ZF)92#&~{rrcmRlKRW7~zQ34N_B5tYwKnAB4fpZ}1i^&C^E@zmKw1rHAy^43l-&QR)KOrge83yG4peBR2{W|p#2 ze~1k=p87LU%W?^gIsFrp)^Mg!YQu}YNX`R9pYCLs5QScA_-Fx7(S1WZBQ>gLO1w_e6v~a^K_fhICrcmRl z3yG3eIrq5>29#QDAb1`%o?1kdw93oAfAB!1c3}!Np1O!AX_eBtp}Jwji)XnN^uOc-X_Z_3uJf=|NsjG;RUUc*iM?f`^ z{%|2vsPWX*M8UvMf2aO^>m^Fv!W3#ebq!IH!*}ld_*tc%WePQ(x|S$e1>AjcEh$3E zUonLmPhCfp)QxqIZ!#m%a&v-jQRAuWiITc;_;%MEpgA1I6ly$m15wf{XWqJCJEg`k zg&I%YNR*WFD~lWMSE`FC)OhM9qQr+AKi_a)twC-dIHJ62Bt@tjn=yqNPu)h8c)o6r{h@M6o!^Zq)OhN4NA3RZa;B79m_m)G?jTB@>y1oz zo2E6BDb#rCPNJl@S-j!mr<6L8Db#rCE~2Dv{LoZ)u~OGEg&I%YO_a=SW*@z4t5Q!f zg&I%YLzMXN!1|VlmHL<|)OhM%M=ibcRMT(#-@FhTYCQEfqGWW~zje6>G_CcSLXD^H zBT9TY^M-A2RccqJP~)lliITM59Q*M0N@bWrji(+UO4hJjY%}&HrH)_TGDB(gWPU6ly&6BvJ4W{arQvuKSdFo+;FL>M5e6@7-KG#N=;-6HJ*BwDCw~;e}0E{r4C^V zHJ*BoC>dezTXo^dN}agLO--(jCv1Q|nk16#fQ>gLO z3q(ns-*3^bif_2D{FP4AeC#7~`3N@a3i746OJn`ulO({=g3N@a3 znJAfWOr7xST1{&%Q>gLOD?~~AdT?mf-;_F;Db#rCRiea)Ywq+8R4(!S6-=SVQ?C&v zz3BauW|&s_2vex>)ayjax^mZ-$6uyteasYUJoOKvq@|2IdJZW#dWR_SVe#b6%sK2^Orge8?-C`?^{l| znJLtG>ODuTJ@vRlmD=dAP+q73sy){_(78E0!H^;E6V)4v)%?3dTi2}8s7ea?fHY&D zGG_XpV<6T{rn5UYXKHS4eZIRt*H=GKXlrR`Y~k>#(!4@jQ?_qbt`9N~MQp>$?X^ zT~o3pcoY*?eX(;wc3!T}=CdK!pB4VhLge{ucZz*N zzO$>pso0+D?ik!Udr)(JaBEq(Y@!`yk+MnU(-3*|w1gttU|?Eu0=g8jblBwb{E(eR<@sMm!Zl7YY#}qZ0U0uhK`oe`!>T%|H`hncYK-MAReibX zxxW6~+^W95?7Y&HTnV1L&~Mo4e4*V)j3qP#WAk;QP{z_&G6oY}b6>s)zRb^eIWhw3 zr>TakyU{sZ*;CBagc4?p^v+XE!@-#voSIm=!lvgGF6vN)`?7@+R@!pWmr>ay%1E#u z=Z7w*Fm5X&!5TSuB;|9WXqYze=-V=FqRcfKx{IyZ?yBzIu55i4Yi%nSIk|+beGps6 zAh!GE5*5l^;K zEoGrZUL&XihNj3Z<#QRg7%1+`e9Rdd{VyqhG18=)ekt-K@ym&bKdsZ!v!3q7gf{NH zK{6ee4whT!U}}oRzV;Cvo5()QIAxrS8&*;+oWm#F=Rkh%E)IOt0OQ zrW=%ul$EAN8`4aVM{EX!^*SyG#=*EX1*V*PHR8zKFrjX*%=Ee`Esc{VW`<{mCxb?$ z1f}UJlDf)d(8zeuh|I8LP$C-@NmWHM6BU_6W-Bs@d{rjns!YaJnT)G4Ew02fR%Q~< zSeY3m&sb4gKO@sK(A}Re(SpE*_qWpWz=wq`kW5>#rx&+dU^SGfpD{J^P*qcH1{RNn z_DoN{(372;fkiP)%p?vp3z}=sRMggF`a_Im6jf8pC<>)q-)vZ+%+6)nbG`jtmZvSS zOmU#Ucc9;ggD}(94Ud{B<$7VY)sK5aROv8h?S0ufnefo1@D$eCfy?b+wJytK+h=EC zN!MOZ8$6roEtX(eQY@6LuCuL>DRpJrbIwDZy#pMY>B@F@WIDQwS@$5Rf=oxQzs>o< z$e@)Ck4hb%)!Se*(D;F-lHIxNY$zhw&civT%QaP);4N6z<@=!dTD$;$%5>%mP%yX` zXideoHrRy2N^{Uau5Vr@Hyh%%0$6t9at0lm=_wZSvAWZnFBBkCJ-MD@-#o|l6+5AP zGOhVS7UJEfa#+-k@o7V9TzJLSnXw!XRz#&-wx=6vdZullHP@5v%|I5@Ds3pnOt!z+ zlW&7cK7jM_OtIH_jzzF)=`OnGWjkmYOvwy<3h zB;_tPc04<;8+V3nV&2>j^&;2Z4P`!vXm&m~2VI|mwvwA0MK-Z^%B05H;1FsNuyH*r zlPgsW&#DHxrqI15ygLz1wo7X5&THu=tSNnb6^ZhNQa^QHnJn$y__Qfceb7p=fcuJb zGB7DEe30`8|nDf%QjaK|wggd<9(7k5Ep@pRxJiR1_T zVw_0n*eaJ+sYn!h*i7$0UuO>Yl6~ToEGOYDeVwhD$`K=Cfl%#Q=Rs5R!KL0@+dy}= z54uV>!=Mb{(Ug}vP30r8-mBGJ+;< zFym^?LrJGl85XzU+SqYj-?rq~hho*>!QEObiJe?`7R1N5{sWV5H8jV7lZ zaFm%Gix8zLZ=w~0r45EqH(Q~w98|#cX+>mC$prKjz2L7xe_yfNX0FY42EG@-=*l@s zdRM5^Qnx}I!+C-2j5v~k{#<<4X)Lp|Fl<7j&2;t^2VkNMTj@TJFy+IEY_>ZCXBjXY zKp9Zg(%A>aR(6I?R_M-x-+bH^&it)OkLI<2;{>CE-R|E`(KpO(g`U z6c#*To>v+vMHZ&NP+?&B$Yk5vU`F6#HA{+e;jyI#J^)fO^A7bqG~PrMiTStC(k@(~ z9OP}fE)BB?o0735Yc00!e4*3or4H+A$5qUzCZ`MmRB+G} z@qq2;cJK&kcAZ|307k)lJ2qbMB>Z2Ue1jF2d)$qHsIw}5nbura zb~c|;6PraBg?=RSrZOh|kLQ0gf%@f-P zQfKgFQ7Un=)pGLCPr}5oAG&~)RAgA<2cS*mGzW>!?pbM8WHyiqlLJ}=#1q4I3b$xF z2cV&6hMVm^j>g$5M-0RD*r0Lb3$QoYo_Hu14@MGiEl^^9;(>mGHEXt~6?X(&nqj9b zIq@x}Z=vC%IE(A7y(!rv(iA{9n0ztt&Ri&m_#@fXGvp!K=7O5Vt&ZP=6uuo9oToIEc24k_yN-5SvQp}mw-hSOeFppxQfP9qE zz*cd*cZ||tTWqJsq>wAjhC>B6aTgd(kO5fWx_au&eZ^7@t+Hd5SSXQ=Tf!oVH;L#3{Ia3R$=EL@n9hgau1zo0(QP zQnIu&mS@BIc~m9LF4E{=#yzT7x69Gf@o5V9OLl>d%|K;wh2B?p*t$(m^z3cKm^mhB8nn&|NgxCd17R80g@f%4PQO znTgdbFd-3|22UhyQgCjYFLY?P3;Nzd$}t^;>mnh{RBSX{ImC5#4hbX%50*p0>_A@8 zuA?1C0WW%>2V}Ulg%TB-AM6asLt4=uynuPI4#b#44?(RdzR|C$Qa{`|?};i?ZBuiZ zHieed=2SOhDsJ<~j)5?=rZYCp!@#RQ-6hJQ7sdv! zR3mLa@GTQ5e-YXf9t_)i+Vo6+7S5ZZJ{Lo?(1lwv^~eB)wyUTAhMtQy!Fj}Rkv)N>BB zw86!X#07_7NFG{fc-kI)WSw2?9)LR`_DqXxJ@aNo11trUJ^x5pb(7J$C>)^R1KVTA z0QdC5PFA~XgB}exnm|%FwPtt*c58RWJwa*gUR&;PBP3P82eunGAy~$SaBlA-j30ai zLJxhN8l4^b5*r+jL%OrAx#&;{V+p}M^rD`Z(cd z=2BZ0_WaFI>r%{@X3{{|pPWn*o^n_c509poaRba8;d+JMEQ#!coufpeXp`CH7xM#C zPuO6PND}7c1lUTV?$9s!FoaWDjW279G&=?9I%loH-1xHqD3(rb=gna~Ro-PVOO6#L-Dj0u1p* z2RNwif<1V;`(_iNw!o{Ha5mz+9L#tKo`hi0M6a+WEj)4ZhVf#=!_B_ftOsLrhD?VmVsC>*hi(o96mGO63#lhxYQy>thn;3tO@JQ7&?LtjJkCmC0^u)N#6-9QLI>}#S&~vHrctCQT?a~1TwgE<-yl4N9p9v*LfB_=85&c!HW?)=L|?ks+jHIQXb#>gz)IQSRl z0ytK*7NcF0pn!vnHoP*$wary(=*&`&&4`@c*WZ?jcdUK%4t}}*9bcu*@PTf8TF&*p zgiCJg0$3zq$DavHac7~EIeXxS`HJTV{~MMpa4igq#$C%Hbz2V3JCif0QVzuJc;7g& z7%1UY;V#&duz86BWBr$gC;Bc~2c+*qQ091@A#1!a#<>!TB8l$ICG#83o!p5R#U8@# zuiZr`H^V7$A8_W{l>LEYt<4e$JO6V@8H6O7Cuw@SSS9iPDG1W8OO~ zgF7IdFeLTpj-ky?5#|?gK_ra~k4g7v`{9cj_)aQJMqy?I`&{$k=4?u~Lsx<4vT)Sy zFKL-XQ&g_^4r3Y&23hEFVSQDu^uo|m%Fs*MaJcN22ONp)ikQt5lM}IWOz|gzJwBXF zB%Tz)1Cek7e1SkZllT=0O4glvx#XP1y94fE!P3}nvN)2Dym*0|jdtTHK{*ebQ-m9D zdJ1T5xTWDDgk>g7@L{9KhPq)gedg#S$%#p7q?ArYtxqWouWs8FGc2W*cIxKr?){#m zC1s40sO{z%^yY2QKfy6NzO&(d_rK`zIB%Dno7ARZ_CU_&)nsilan2(Ik0t` zR@k_sYtB|(e7f0Nj(@CCr(i6XS?&83+23Y3edZYf~U{9e5PhTkN!b)BNvylxHaFvLA zxinj}rgC!y8=g2Da7MU`IAg|)v^Z0af$#(<6lM?XR=DLE zpRz_()lI|Z4j-Puvy#|YUO!&e3*m@0(@;~>GD#kzVM<+7UG3gs9~Y(*eb8swm)yh- zXHd9Y^edxr&A5h=9dNn&&;zW8?MxM@{;)xk+(>V0W8 z@+{Y%CpT6%!CRe)y>twwEep(Z*ckEKKqv@nSUA~+At)bB3(CuX-X+Fh$$gny zEGTgms~h(9qLOTEYAE|w3)<}Z47!6tn01R&QDOFAQZ|LGGTo0DNAK)Dcrbjq8@qn^ zKP9*mowXBSRGIa=jW)dmKrfCloe8F-H>)txvZ81OU{yHENAEgxz*}yxp#bX>dm>}y zJbc3ozIy42>~LTNkJE|AdEgb?1A+e;J=Da8DPiI7XCaLkPS=d_13lypMW)tGfQ2M< zM_sU$1vcEq^Hyj(`f7WqW%>DZr08{cCP2IY>{z;C2dy!oiniQqnyRY26?bCUv)+Ik z({v9!R`Dld{$ZG6oL`!gEwWOD%_Z&AR9ExP3lhpVN z_Jc?g+YP7%k78nQ;)1U>;(wXfu24WHWbzOg0Iz${dclT8F5&0H>T0gWBlbVt0#~8k zl)_Ms7{)2u8L^3rvuqooWmi{wRDCdtvbyg7QCEV?=g?XzqP>Itd(IA#?j$ScLm`m{8kjz|fry)MPh-Pyb8x?q8G3r+- zYS=u4eHwmBZz@-pT@vba*aL#MwF>QX^6)W0uc59a?0Zs6bygn1%{?i~Sa=hYqZeS} zbSMzIN04YBp_5PD%0~)ne(cRX8z;UW#0M$%jt+uk!d?9~cz~!GqXk|B!55aDz(z`A z34T1my@Nb)I#jUPbWt7d`Sjz_W#o3S;YE{hy9Kjcf|~<@jrf^#v`fJ#bgZ)1RA~8&P8As8(wyT#kZLPkUH@utAz3!rC34Xw8!Ni{-gw!w|CSj~(QO{63^6<{Jq@;#Vm;0G|`J4;~XNrb*H zZ9L^~YJ?YzTCoAr1_***&!pMvj24_~#$(RDQ_ugG_c$e3n7GXRv#NvIn+4#X*E01m{;250M zuUHYom(XbW1W)ZQx`7~U?*d4l^np7U(Fz%iv{&Kp=J`dBU7MW+yHO_SI5&`Z!~-}I&+#u1L){VTq0-(LqQ1*Y*?hlz^~olch;=WLhcLrz6su{pn{-HA9znaK1bxd@;JIujT(hkLBpQDD2LkHyW_ z?NO7Qd0)lOZo~sHSmQd+Uy?Go8A(%;$IoSD;PY8w;*}yun@mg6ku7=(SE)r7YHmv0 z!C*Typ?4liOKLk^DtWo zQy-(7-QJrW2ph%vHV5R;h1>Mq@c=F1Y;56!kyOdU0G)=0Gb!1cb+0I5${`N!@ycgB z$hdhX^S}o4`Cg5iZ7F#ZOL8H@*YMro~96)wrsCGoxp6QzN?rpxcmuH^2eEz z>RR-jDDi>|q?x_lwMw_bM;}Yw(PN<|w!bI$_iQ3TLfko4U)Qr=Yw7q94} ztoY8MQ$^pAT(2(h^;`psKl;9Qw-%$0PBpG#~ z&mZZ4tNXgVWJ$En_S1i~Mr+jMr7~yseP}S1`W4y!;lUSRSnB&(*DcUf1G^1_EbA0AVTF4R{6vDXgKkPy_ z_|yR0KE{Qpe4)-~F)T%*kF5rVmM5!B(3Q?d7v+ug+i^ZuXGuUD%x5M=~sbE`YxR5RH+On&8D? z`hp&uFhu@_K$xt$ugaqkhNM{F^eJJ7$7R?CYC<;DZVL@^qoKJ0-bu$deQ-}GY91IW zPi(^{*Gy^(uM+e4;=fu#WJ&ek*yutC$03|(KDH%Va4>R2}9%o zvcP&DE_(wA_mN|ZO||nRt^;;ZVKosgT}jYW#8o9sJL2aVWX0os`1HEmWVd@XWS4g^ z@CxFTo#8#%sN-fPJYkQp)00sv;Sr8KpWTZuI_+ zTeS|unVFmYyOiShEQ68WK@Ki7qYc^U{S!E|nU`D|lRX>IwjY65(o zcX(zPP2XVe!M{7Ef-;}z4T4<3zA?>V^j)5C$;+olwU!p5ZqGDe@P@iq!^|Dtvq_%B_hgygk>Sg>T<;2};^z z!t0*I5aPpZ>7?hyy!u0{u@e@X7{A}?c=J1MoSqUA(hmpYF=MD*wxy@WOx4~3+z1`71 zIoaS;9!^!DNAH3wcCw@E9tx|!S?L6d>OIfD;p@W#u-c2ot8W^@1H&8g?iCG=1b+(> zK2-{XNuN*B+~Z7-JvNgH@y&zU3v*Jeg}$N8pj(mn1yPp_+-{B?tW!K;rH4mxrl?{d z9*rj}JESu^n)y*&;qI5eXb=q04bWQJMNFLo{c;UnFrjiz*y-DZ(TpOBEPS6dp@tKf zwk}^Zm1ZkKp|$<_3wiVyi8*HowGBI3`;dt`Rk$33 z->;94A$XSwZg0VA6MsI`7Zlu)==3pRNHj^HxTDJ!T0St53Uf^N%msKup+uJ;T(F)( z>N7h5FQrGhpF*Id%e&86;B-zWz)8@)LSU^hVeyq5x`}xO_>miUb+JR=!zToMiyNJ# z=+K-(VOKu<>Mb4=>W2&2=2rt0NR5Ji2F4!b1{0k>ILF{@5{?{VpW6&-_^Ai4g+1(W zc-=P84=puj#20{l5PTClKO6RX%r7g2nB&VB3WdW(*-r3#C&3yKw%VviQ}Uk!ASRp@%Ik~w823z>=x4JFsXBm9uo|{W1QX?od^3X z1n{eX8F-Bz2Rpw#hlY}QE#JI@Lnirg7#L$ESqjIS!_=w3uG*ZsxlkYBu&B^a7fa`0 zSWB+Ig$^m};M+FvKU(mI9V%)kKrCdhhQXsIY>3t4Iy|&<_>D0U)PSG*b5(Gsy)BO` zZx;U#3ObxA8DaQo?7^aHz@M0=+wBd_)8NH8%?4Tq`e32i{|h{UHdP=o48GH6qHD^| zNSLkPWJ$d=1rEb&Ym5n>m}8aa)L28J&8_sH2C9Xp=qt`k8XzGKbcsyHU%^YN zr@+DpdfzmnrmF~_Hf_ckQ$4*4YEs8UjDdX7G5Z$;c`K-fiTl*t+(w+W8IJRlVu9u& z*{9?TgmKk|_k(M&yQJS-hd1D)Is_jMreJRlCYb=&G6u7!6u-$ry!eeNS^UQ6ir<9$ z;x`6c{3h5IzX^^PzcD3>-`LWN{}%-L*0kSpMaJxro?v=x>N=a3ef zz)XR@-7sRKOJ>l~W#^SM*1@H_ayA#>FtSBz1bw(SPIYIo^$|JR}OB< z&TUCeIT~)L6A7Jm9sUB4trMXE8HLFJH==YSHw|M<#LeYOqw|Ecl1;NjPn~9@=Z*|b z^cIiFa5W5c1u{>C?HBxg0As8xw3jnM)y}Bth5?{9Hyf_8PQ;g{ zsgc#rz(<`FezC&_hoCC@MG_Yd+l0wTaLmR_iGi|uXiqRiQ;E0W9^^RKhwXM5m`3d= zB@5FE_~uwzv^DUnhE$X-1Ff}iv(zMrO{h8t$Gkc0dejhVPE|(-eqm=`ZH-#O^umVJ z6$W}5dI!Q|mQ=~%rTV^NPg+c3R|3Z}>fz!pLn+-yH&&Ap6(vs}crxK5#fPhgOFQtp z32GP*2dZdjz#m}KV67K5`1VoEfDKZZcn%_iGEkUY{bG?-!B5k|@6Y6#=r?v1sE4ik zcv$3?nsCu(aPK&g$s*QVa-S1u%JkfW3Aj@jOcLdks+-0QZP1ilG90JD8fp`YKdZIH z5@~^pBRor*TBPJOO2|M{sSQUHI31PN41q1M4?Z1#k+)>RskYFZvjkAgFadw7HuSeK z>t5M>KTH-q!htQV9M4|#OJONL2rdSEDUWV%w!w-cyg?gGuuPy=BeJ~a2`@;o4Spja z%#vaKh%ZvZBdP^sf=!Xco4H0ot0`Q~qR_+6WZ&5>hvQ2ca87~i?XnWRH0@N7IIkh_ z)x>aer*U-XN>E-%QDYA*B;cMBt;J{&?IQLkIZE{guQ_el&Woue(I0h~e=XL1Cug zz1SG&Jr+1LOg>`?1`KLjwmDh`%t2Kii}c8JqmZb1=ds&e|E_7=rH8ri9{_eH7e=KdDSvu%YcZ z@qnLh!`%< zy}SueI`9dbpmQlhrI;+02ba{~wc+8C3<4$;4>TkR4Ni}uBVCL?fs~9QpDxDz=cKrl zDjt!V=MnAc;?z8kNYC?#)I5(!&+~}XJda4vGkt?2@qqB*gtX_bNX>IadY&s%^IVah z=Ze%kSET2;GS$zO>3Ob9&2wdXo-0%HT$!Hd%G5kpMtKffI5pbqqMNJn(gy8RvV$q0 zj(^X?hSkHH^DX-G9thVLJE?Ir<6T(#q>l|1uZSx0hXjZxqW^Y#OrV6;V{j_JXa6;+*DUDeB`)h-6WN z#J46SDUv5pQIvNLl3bgRL`+d17Kya~(x611wBJ%uB2U_1sVI>r?Wbs$jfyKIuh!0-Em;N~N5awi|K$@K_gvDg|lkPq!912XQ zSKLCDspsXiu+I$-D`g)x%ggD(w_yqzqT*Ph&}r~)AROYEVDeqAJ>*H!Kz*9`Ae^5O zx2Y!3Q8#*3!=o~Vpb%$58G^%JzGftZTAcG5D?o^s4biZzK^C_j;ttGIV{45@1&GLo z+XQTQluBdCmw00-JOw}11o&2!7oJ*e^#ubvSm_lESw!PT)MaD zzvaOtK)SZ*zhi20N^mgqTHb?Vt=_MX&8g8^uv9)D*RJ~lNc-RNZBf3y&l|C>{ z8jZ+Ss*4U6nwA0em6N7rK-Umf8V$cbFfFf94RO+_&AHID4Cp{>rIiz-S&|QqDu)k_ zW;{MPnuEoI)1IVqqK<7beR}liS(G`eiz2o1L`}mjg=QCW_tG>Ox6twz6CI0Y7GI-kH3SK7wF z;j=!MYi|vopQJejOg7+LwG$_8vC*mqzjtPrcs2NAhhaePkRH&6N&PZmk)utRRyc|r z#|VjyPow2O!*oIa3$KUCM;YBC!u+w^1H!mi9exQZpOFkgSea)AOStwVi9!HucZ!Bc|vM8aN@RR`Q#Pei-hk0HR7u~%t7sU3odB*at{?uW)B>iZ4gF{JwK{a z$_9*h&kKGeVpOH}Bi5_6@GEZN%gofR;`W&AhRIA<{N>hhF3`@T69x%rg8L41%L!-X zu2X3UZ$y>ox&q$CjW$al|An%f<7fn5*!^-0;?^CF;Qd}*XSlNozWD(MJ~i;x7Y<$FrY%NQ zYph|gNVh?SfvK+A;PEU9i$S%y(xIA^YcFG!f=yRpVV1X)WhX-YY!9Pb@JLJeX$kUe zcpspueRdYUCvLL!|Eo8xAk-z;5~HtYmEa02-B3pNf}4ymY8NpHW%!qLanT^D+Ex{% znb%xJl`QP?N)<~H#A~5S!u|$kiZ64A$1TJ{8cP_UnAsAFayDSHM)R;{c(bdi2p6u3 zeM<5si<(TjFndX5VAsop8vx417^rRK`fvuP>7`2anmU(mG8Vq{ZL2_1R5mMg2W#*s zNMa&r$>D3QgQfwu=}hIfwGVnNZXGSX*}jq~Del|LSffn{x-_I-n+hFGt~-2^t{z^t zvn6P4P4HV6O5s}$rv6t=gv&wPef>haG)mjC!XQS?J7(7EoFcHThQ}hC5#7+Wp`lh{ zt%ki=Yk(?Ab=`*PCae#2`=>Bu4q_d|Hh`mTc@*Y7X+|H)o3B<#Pr)t3hC}@5Yh@8VLqXAe3x9 z?9V~Lnq1ezP0&&og(rjg`m2#cnJ43DEG2koqKPnQFzJEGWa1Mqmo@w$3fM@8Pj3eq zJ-1c-LL)PegO_rbmkU9`a4 zgm`7qVxhp|q2$zfAY?9@jJjNb0kuA>u(2CUDlK_z4`!V!o6a_e+@&VmPq#(GP9h$= zS|mIacTIFAYpqbZ%9$EV#$uUztPRGN$c?dS+1VJ3AOZ9K153g?I;PZ9jxUTg$}@36 z+ip{aN^D~uKB%!{5OTy|na`b8(K5=8oBnX`o zTpEK{5RIAJT!=O)!1u093=@lmU(}=vTsmc=ajIlQeB{9E#*k-xV11x+3Vy2&T`~xr zFd58w8TPDfs!5vxvG;;Oz-@r?s*Nig6u$__z`R1fA`KzS|y(7Kb zk9`3A)(J-$3zg+qx-~2i;Ny21D^9Z5m+tNWhEpEBQ|!7u+7O6ZjI)LZ(v+-`cLX93 z3fY=*MUN{sJ;J_Fs!;mfO{+-1ziAcG9ZoFtWSy3057%KWXcDKZvessjP1rO+ zy7nIGpX_{xR&0Fa4cv(}!-skB8!6t%YbnVw#ct=PUd^M159F#A3+#)XD0nk>arWAq zpUcq9j3y?WH8+<@SZSISCf%kuXx6|yOy1xYc7Kj@+a#Y`!lnU@DN$W)cLR14t4`D0 zeru}2?8jPr;--%=`tC!LHl+)#M3eI@*-Q#sVZ8GhPoCO5PpX_X*StN z7-=dI6-HQu+qkvq!ZULz#R`E#X>A*2IO;AG^Ma_yP(cK{V=IncjcHkmtSRY6HkV|) zC4dv{$zI}IOZV$B!wK5>*t8;^0>Eznp!PD>D7dizZ-&#&3#yT(8kq?|d6BQX&>l^_ z=A!q3wuKt4Nz8=$xr;TpftU<7=h3w;&O&*CbW(AJ7HpX)roaa#LS-&1z!UCPd$}&2 z2v@%{5lG#~_W-TLHsTZqrI^ib0!PGgy9aP#wwTxuxkQ^#!lLabZjz;3B3x>3+#rWZ ziSQV}E{Mii)^l()#Kwcm`h>w~{Pkc(ZF!Jqtcjd(cp@wDmu3blo#m=k=MR*9?luZP}|K(us`MC&>CFo zm<+pB4sSy1iF;IWa^1Q9oJ~Y5CMs*@)Qpuoj;K3GnxY;dX^Og^q={Y(=j3qrJDGV1 zwONy#%Y-;S6E-pY!c5b~YRZ%|1H0~;mnh6K9B7052$o_=_O~V#_OZ6Zqzz8V%vwHa zCwFQDvUZY>)0p-Q6`QS40d+fZkTCU8R9?w-hb&W7B14Yf0*T*B&^$xNc;_j)3c>#! z-Iu%I-Ru?W+!ojK^->4~N!xi89 zCU$17YIPvZL-UpN)Wh4S{g?e<#dkZSl%7^`yWg$KugS=sQ~b^O?Hw+m`B?9jN!Tk%zTcF( z@zNLMy~!9T*JVIM%)*@Y$@W^Oge^99R1s3?jn9abxGH$m7r%k&#Uo5P9BFD9EGATlS`(YUgR`CvRFN61~DtI(MVh@1__5rNJ(w zNO`PgFaw2w5~z;xGfJ&af$2YAax+vVg?E+vv9Dt8A)SK3uNaYsuVM$*m0-3}W{wR9 z0&hK3GSn8_h=!^RwFNJRp(;ad!BK9Y%7>x0z{L+$8EOkoR6|vU+JeXBP?e#!;Bz-n z<>OFWxWf!p8EOlDUqe-f+JcH_{UMhKs%EKIKc?)|QHFW0E~){+fhc43rt1!k%@z{*9QrW z>ZFx?v*O@UdWdp-JW}lF?(=S}rfzxW0F_;}`>|zk~I3Yei-#(J6$A6{6yZJ&6op7-Fr}3K9ZE1YmZEbwqZE<|; z8X-z9ZG~9?GZcm|=+%RnUNBELg@#4a6E{suaofnNtSkC`<5l=tEtO@-gexG1n}`!O zTBrusqo>3+uzx6kdGZ{eF==YJlX(eZDS*=RZ2Hbm-OjTW0@ zH{|FjBG|Yd5$QEUj7OXGdbwZDml@*uGN?{dbsgId3FidROh)U?YTPzWsjt3s1gtA* z*608FlJJ-oLtvB5Xf_|W`^j=FXt+_t49-8orf_7N#_ys4r9C`#Op3{o`e#2nOy`q% zd&qE!CZafgm^LXZ$S@-FsDQ2JyG1*l*TBYKdSE$GaIdUoA$6?9TLd3c)T4oeBe;^(wyyRHr?&!%hER*2r(qC zBjfuca`@-d0M1P&V?Ek#XVc|oIn89C^@^b#&pLcVAeoq^9c?Fv`FKCceS1?B8ZN@) z0M>0HsF{sso9SvkUFFWTQ0K52kf9BiwjroY)}$Hj*38D;bdnnP?dm?}cpj*Y=W80F z-Dp3a9ah^zn``F`(Z`Y>b`U7j(M(6XJ%lV*VUfzRkXV@Kz%Ci2+=b(xd`)d;k3I?{#`a#$Pa+?W~zB4vR{|!1(*e0gN(jwxjuWwOp(>xo@aZ7`e( zXfc{@n%#1}Dl~Cmo=;tl!XMwnTu6=LXxXkNvu!zAQfnTVg(0+?WTqxmzyL92&?bjb za~LnSi)r4zn8af4O!(;M@65xH0+3{P15jl$O*n|#)pWa@amy&&hH4q2B!&vyjMM)yyZ` zeY?u-^_Y_4T^7&r_H9hNjK-twZrRM&W1X_Q>8E`=)j1XtP)lA+Qkj2vckv6%Lg!>T znr?T8+4P|MvN$Cx`}+1e&?bvgKdq^TTRAZn1ldHMNW)2h=(lGfVWCV1!bi=flf%Xk=+Eo78!IuX5_$C7bbXjLJKatKd1)6& z_a{kve?4$eYLg9d?6&jCYSoPAvogH@14KvTk}h2C%ozU<0NofbnSyHu=3u%oVTJ(t zZ}p&t;!4wHK3Xn!``LkYEZ11=LGmL$9Ru_8Hjr5s(s7IVez%PGA_bD2FZiaX4NHWS zzrZYA#~ph;S?;;@>+BOR)#Js>&$w>mDU{$!v_P!)zTwc4n%IswktdVgLRWr3A$uq+ zZr~4iH$fn%vhf9bw_)~><*MCqFo(`cNRMPkP~Bz%LO`TqlJPTHbFZT3zUs!xX~<=1 z&y}CES*Ne!g*2m)=Zpz}Z|)MXh*+%FEH@ISezjOH7xAQsP-Htu^WrYJ{wEyg-kL#{ zqh>N*ZKH%FxbCJ4j_w?(x|#s0WL<=9v8xYo3cKZU8Tq?F#Em%br+QIf{yAI+O+{`q z+s$&{Y!;>`H1k5pDUx?A6%fUfuJ`@PcGR?oW_#G_!cYRl*E%Ppk$eN0n&8)@#PqP> zoY`6qtIb}|Ud5_j^%I_opL$4>^=M6Mg!TNOOh!O@2x+^H*}cACh#OBIV=-!F%Utfw zQV3lWTbAnQnHR+{wv#8LNz<%0hnb<{>D%S;(MZPO+2p?yDU_lw*JtmDk;5L zTC1Yu_WxSul;F0;23+Me~=6vYL4x$Rf3*vUYJggA}mAxP#hCA@{ zakBU{{>MN5VQAF37DIHDb;Cy2F5B_Jt=$uUV{?{H_6RSM@{G{c7Y{)MW3#` zojhD*9))&BG}mMBORF6M$t|?W!4P^pk;JxMR#5?P9Rz>AU+>%f+HMAgxt4^ysX-=6 zuWiY0v^pFPy7 z@z~6s2$49KlPWw?lQK+DXrxszMc_AU$Ia4gPk&xrUOm|*n5qUvYpS^#&DPC$ypCcY zGHlI0zYk(-?q8R;@SJ~kKkY{YarJgPUhc-an+1Rm$9Hc+5QD+Z(FFqU?J6?R5#enj zqJF=$Vn3U;t4-uhBZM$&L#=r4dI9;tVZEI%S2~o`4-?^he7Nawwy_hVu|WF%e6*P? zCL5FhVNO&35|;~vZ~pX-l|Q)V!$s_7oALONzm0H-bcpA3I$}Em5bXidw>P8Zio{_rvEE15?9FJp-;ZGrbC+F-XLtJaLpa7dEsxd%spYVk)8!7eP3}2`h`UL*vTO5f zw3{zx>*Y?*jX?En&R^B5>RP-W?GDq~rWxyMle(6-3hYG(AzpC(PB=$Kux*j*DQ^;R zhG%TNML7rrUrjqki;_n!T~0W2(xw_t^C~@^{#=ZjX0}@+WJt4E&_!)NP3 zW)?G?=XAc`vcv0+7TY8kuNUNRXKEfps;Fb;ygIzG2it5ox^_#IkOwg2+0Wd(F78s+ zx7&Mm%tTt;tC7yZeNXPl_a%(2xSFL&gR+L%x|$#K_)*LO#Z%^au%RP;<}=coV4;w( zrlWQ-Th7LFJrV;JoUyK+L{bGLE(nL!Al}_=_KU6QxRg`u*HDG`N0_=^tTs~wMR^oo z?(S+giOB7STa5vjjrPm-uv~8QvZ`s-XjbW!HW-JbZds2I6Trem*%#fSYPGnlxb@*+ zV!tHrBahj1v|7#fOQe>mNk&g+Iw#gIbQ!U(2$|QL>2wj53Yn_|JWunJjN!t6XyBC7uxnmCj`mSlGc^6Sl4ZAK%$KyrFvYWv41`sS4 zV*EgZgjBzsZa3Wca`zbhV}hWk2kN7XJxr#}c9YkAP#x)Tb@Z1W#jyhL!jsKxk6>A^ z0n$4{N77{JnHbocM3V-PyzV!N!D^TLEqX`SBw5Q6FE!O4XwYKBp0Phn_IZs*U6>xn z`81q_WA4CK!C=9ti^9zgQHw%rh7@<2JLYu%J;WY7A|Pc$$eY*~2@W;@(~MD5Pq(Px z^FE)|5*NV+SrQWlad&E$kAs%hfm}A0hi18p+Eh9?1HEV%^@NmwblymWvkZbfWxH7J zHrssgB4zw0P3IUx;>Lg3QSaGg6G)D-mN1aEul9$BGhI)pv7&%uvm!S!~zMHeSA! zh~#f7S!kIb8hoP;m31kI0%oh_W;atam^dOC$#YXoR?&>a7-WeUMq_qZa|@s5Rb$1^ z=TD1CA_4$iI)1TCm)k|V&x`-t>EXxe8HJMe%Ew;qPjcJKpI?ud*ju_)WnlEhx6^Y+ z;c6g43&Q#hFyghF&Y#_=9gmxKJ3yfkb%9M+J=qc zR5#Pbl!1?v{oCE~{CNBHI*jn%AxzPg&X(zLhJq zKAYWSf?ZeaDg&lhe0P;c)yV* zWnL^DJfy!BNgayqy!C$$<}{k7AN6^h*CYfrg&L;!t!Av5*DU7%lUYNuBy<~$I1dbz@m3F&SnXNHM-tTrn`x07xIZ9 z+m?lOO$fHsy9EFbpaifT?WU+e*5&XKn}f(00`%=(4x&B;9_b099j!5DThF4g0DWR0 zoXEveUHzb#`L@lRq%7gPyAykOIOl_;irjFC7P&C?f}tch&VVIM?hdeO&=q&K< zsB3Po&S6<5JY~Uph((QrslXC(FUsx$`4jTus_DbD%v32}C6S$pn5WJ)k@Yv<$DVwLytNA*KMq$Z9C2#MG? z6Vl=0<$M|jV^uWk{cKSV1&kM;AKwG3>442I05W z;y}{MHJ6kdX@0i|f|k48Vwukgpwu-X8XP5}s>8;$2kWbhhMCy%uv(1EI(@@TEV-(5 zNaE@>KWujsw&^sPo*ph==&ZEIhHE7`$-gJk()x`^Mi9`9X8Xx{#m&%T5!5fAe$|F$ zm&?>PGZ+k`r_;Mi^DDVE(f3A|lE5W4IAHS;7)vZl@gF zmLhbhOW{e1bWU+Fu?w=&JR}t$N6>1t+|Ks%eUoRcGXj+3G|dg!3zgFkewT6HqtahZ z=97K1&YPe^kn^}>Mp%G6(~sF!v)wM+dET&+)pgpPJB?$usscR9dV-A43ewo2o9$%1 zT}3kxPW8CY4;m&`G0i$a^VPO!de-?qQANxH(8aUliS%jTV0X31Q#FElTgNWO+0e5Y z?GG6BFUv-eATV@9EB;`o6+o@tyd}_I+PP*Z9oFr5vn>4{4?~fers1cq?dGsUWQhG} zbC`?|yF=zDBNf*o^y%}-1q_^9;_hc8bh!KR6n?qezq)2$AIgzq$&oo_CA$bEmb=w@ zHt!N7Z2yUco9s4I^90~)iOg>3!8q1e z{^`wV7v?=v(T-sI+wHvE=wp2@t5>&Tu9k?%k<~?cnd@VF+F%kpS$A8Jj4ZwFDZ>++ z5kyj(Vpqj-Urx|epmWW8q4tMZ!AjR=P9;&~kc`6y+Qu0FkFI)a>^= zq;m7j&c=R;e5qdUk8F-rDB}l!oO;1BXlC7ZB_v}m>RM#XGEsOekV9>nNp~eB5txVy zv3k15ItmA6tj)KGEhgwvqd`~PxR~J}+<$wKj(%6n%{wTif5s!Y2#imoMM4ecmUrz@--ywe%hl06D|U#d9#IuTZ599fiV#3_kXH|pl-`;Y(FXb-E0RfwxhajbtXyJ zd{czWbXqStt@n%RtmrJ$4t0s0!flaNTVhfi%mjig37f~oqKGjwNU*c5jhpY-+%N>J zhZUmtb(XznC^a1LcUGlpB3228p_QF;J!cKi@_AiFIX>k*;h(45Z{MHeW?-PWIin>W zFPdH6sX96&Ps*`W0XSYh zK3{nhug@QkFh#|S>X4758p_kRE{apcad}xRria<8XmB$MUOtw=*OsV!| zE0_OnZIxmAcEkWL2}In#KNH+9xD^0Dq2~oU`7bKf{KxbU;TLA~jcn1nKC^|cQ70NxS1Ld7|lr7a3IYY}i zRt6jf`*Of!9QfmW{vjQzR9@hMiOvq1Dx zZdVCLg+kuyI>cS>(Snq|MG(}Ci>SN8C#<%*^9Ez%cYixx5JWHyjmzIq zhiga3QxLlrjb$P$@(9MjHo5D&b}dKi*?x@(Fw6Z5K)4tsVwk?MUuO5Oc~SWD0~1cH z?3u*9Eic`&g7Dp3YwD=(JV8HyXgQXeS-x;(692gU_rJ^N6)>^BxvLW?!4@zR!Pc-x zq}+D;&GlHGG;CidV#d2GyFlMPq>$CO5yA2l1tvy>1%P8dwj6?p!ZJ@Cp`QPI6p_l!@!dQ9e}}%_mLnqk^$fc-%x$82)|sjX-F`LQ$1P>ct?%+8AHeSG zp3z4*zuGnPd33S=v`ymvEAh~0;-QInCVg*>g7Fo#}T^M};36&SxT8&DJwL9Ka9~^eC;1H^Ub9ap%M;2Mksh8*HKU1}!Kj zZmKuck@&dtY=&qVw<~6cu16|A-XCF7!mXn^6d!lK5kzv>HPiiUtQQXuigr;0aMU{U z3sZq#eSgU!YWCY6U46jgtuSwEmA5FEQFAf-aWM5M5&{QyW1{>tD0<@@FU6Mz(U zy3QS&h%w@-`kY_dZQn(rq>y4xw|cJ8JG_N(>$(Kir>oXH%y;9O6F*gy%w;cWgL zEp{oxdbKDoCi7^cW&omO;KBI(dKlN!+~UWJ&1%0;;pO)im|-_CkLE(+7#oE>_ThqLN9sWq7kNd+PP_?Vh&;6C||y)fpt z%Xcs$T+IkjvkW^^sK7V`ceHqSO+w0>It&De;AeRyzJG(Y z3ke679@8F`e(F#4(>(oO;+Y10P$%A?rv%wnrUZ*Y%*4>m=2@apRhQ2mOd$zFl4T2< z0P7pqvcXA5WxZ);%u#RcS_v?@4d+McnY)K?w^t?rn5P7ULJ7fsT6WrTnFq? zz)S~7Xg5tu%$C3_6cVsWMqpALhI$BvgvAKcs%ADgN+qIoAZ|%1bEEh4pCKqTijUN?XWQfSS)= zAEpq3>F8#%V-WKQ1RTjbLKr~nRbN{ixYV!Vv{u{F13&)!J&SN`mGVj0fB1G}<$-Yz zq!0ShW(2zq4kBCGH{4-!zgvLfIgsYCMJaT^aj!U3rlt!6j7%QcB6_v$W zx9A~=LP0Yknn2Txr-60THgx@99RYSiu$tzR-3<4vLO=;sQ~fyA%g1T{YDPGQRapeG zj+A+4RbfK0dQ;32(V@wCrDAC_Iz9w3YXZjQ0XLsSOAxHhQ>&+^ z$LH^#xcr`iVl2a8&p~|M9s1!i@B;IO+iihrI~MIoa0zKUSsr|AviDLV2F7vv@WS3` zjY^47IN=24hU?mciUHHLM2?iM!>-$XX|luaJQ z$wndAfQjN%HGZ~4^<0f6Ga|`gWtaLs%Y5*v`cCMAY(>+> zD75cJIJa+>>uKhaGl*Oh!8qE0*#Ep0Ve{eP?B%EupNCl3b9Hx4?FbIW76sqd)G7mH zFMH_VcLXn5Bg5%6${{^w{<|RAi#$TuWrG%GyRyBLy<=@;MFU_-!N_2}KI~_E6?(=- zIRv%y%y-}dGTi1Iz#5OB*jDdYU;+ZY%eOHd9qm?N`Mn zzO=+m5;Rs=ToZmWvmwRRw?c!LkVv3(V(rZrnT;rwv$Jveu$v1Lah6*#JM#|yJ>{jPc>A662bwwoY7=;Fg{oeImV}pT{Fvk zaM;OJ33Va%-g(Ldx5U&IT}Kv4IC8kL7+WJyBZo^pD}V?khoR5~Z3xi5S2bORB6(1n zg_)=zpGZi(4(4Vx#v(KGspgbQldl6{I~YcnDYu<%R6CIAP@BBq#tS|KXU~6t!?mt?P9;>44*H4Fj=-2j|K)c^5%f~S5*G`=2h-&pHI)ebqyI0ut0pan5e}zlXi?u zDD6xgU-9GR!vkUFvM2+Z_Q88nPZEoTQfxBj4xvttLSKw>sW;+okYIAM4npBh4R<~v z3Q!`e7BKU$`;wHKH&c4Kzutk|&3~e}~;*tMPcXQG@>S9VAcG zo;xW%8tN+_fSx3xt)ytW6uFXI2`?X<*`S2^V^x-BdfE{BV&x+a$az9O;ox~CQF5P^ zzsjcxq>AhGaJJxmlY4UU3I~4&$h$Nj6%_c0KMIqgX!`0>G{gtTXv^EhN{cT z+7pOJTA8h{?|5kEN9^J=MmpBZ29wTwu ztO$_5E1dLMGWmSxQdO_)2p|wD9uF&XWzDq>5AMG1PA9o^uLu!SWd5bTdB3ifp4ZtrN}c3rMqC}?p*Vigv}LomiI?(0>R?=dOStICj*!uLf@^o*J|LfF zGUdb5Ls&|fh5L5hEO$K+aZ#d0fv-M(yL-s$Mh9l6HYU;N{3eHeG5LsHq+A&!5vn(+ z(5pk|r#W+Ii5i+TPMy~MB{0O$WlnLwSWdP(f|TUDKqQPam5VS+ZMXPr3-RwaNGv|w z0EuX;)?{Yj^yYa!-d;<*Od48iBEilLRTvX)@t`5$LZ^k1_aRJ07JN98JQsxr{G4d- z2&o2OB575E+$@Hio^Lxl5WY4y1>*`YPIVpO z<_DF~-n45?0VE61Ni6yr0uSXV!8DXmQP}I`1?aGJkEpc>=b19Z_?)6&lyr=#J#RFI zG*G6h@M{gxgch?b2a9z-Osn5@b7D^1`gT2EX&?>l3Kh9r$c?KG;66{<3c|!Tts3cC zgv-G=0LuD)baMhhJN(FYT67(;8CCP}gy2XaM9qTw+rqheh>ldjj_OA{K?qQ`!OeOS z6NcJ0B|921u;W&iwFe%{QbjEN2?zdov+Is6M`Ow6Y{4-0Y=01+^5U!^U;li5mu813F2Z&1oI|Nee6RGw zgKyC35XwDkVrt-|;>ta16f1uPo`68?a79~QgSYVx2H|x?hucBec6h>~QmcLF{Gqgi z>v4)U6|_vB(LmasA=2I)lSPy>oh`sklRDx)#6UD?C>_?UN|I6M>u9F06SBb(Wg(E& zuq9!9l~1lNg!e%ScY`2rwcqtPDXiZkHym1VGWfkdTt3m%BPS@+>a)1;ij|R+@;5lG172ND*=&vocl#120Xw z;`stKYIjNv28;;zyEp;{3htMDI+J!c&eFux(g@`(YgPRHS>t(G9Ep~>C02aV^<^BD zO2u4M*;TI**5peJq-~J!jGj(b2L`cw>?QeDkiUp8bD9|miZBgfdo^gxf(fS};hnoZ zB|$vDS&Z99GzF5F!B%Iv&1QrrEe4mVS@7Q>S8OIigvn6wMJz!r1QIBMtv1tQ?UW#F z6pI4$sK&b$D7prX`xxb6?`*J8HXsHw@ps+9ElC)%?q>68qaoiY$e zR;`c1=`dbRGnbZ{q*9a8m~0a|50OmXO)VLFf|a!E<+zyTCK&O>e0jR;2o4#aWMZmt z?;RZRDmgkaZtCqKF%(9*F&U(y2DhXUUVIut?e@;fUObB`)~f}>U~5eVPWD8|FGcZ@iRX6d5buvwZd|vaF(h}{9<%>mx9JsBq9op%&~O8&elW*fkaNRH7?;I(!LvhZ?-5;YjCjK+QaUch|el$k$B<*qaCiHr5 zqdNO=B45Pj^FD>@G7!*%bupeA{jLe__{N7m(bF(t!~W0KDW|$YL$Hd^cnkmA>u6DI zTZAt;w}Y*Zspoc$G}P?8eRE+UAXRsrD`5cElgTnhcmud-F>?r#4iV`v^D7S10px-h z-sWB4V)7qkpaUqL91;P+JsgM{lx7U4DZ}mgzSx{Z$cN5myFeDRk5OHvMHa&8 zpc+i$^QyXbtBTM9Q%u>(XiM~=Ur{zTIC0|TL-sYebEj|&M`T>~Lh`~sFbcPt>X@8#nwi|h_$ zryW4SLHs~0Kw6cC=jXe3M{x}7+_;0G_#`+G*rt%FT!b;rI1I~tm2@j`&-f@EnaQ8` zsV&0ZZ=+A0TwpB@2Jr1+GKqWB;?oS{p#M^ffA;k!SX5#*7k2Rb>FW28@d^GunaqAh zu=aAcpeQ6TpPH}K3N(S9F~UMu?e%g|PZ;LX^mKCpnHGuE0VFw^5^7YsX?YOQcw$u0 zdP{Qh;|~t6+~rNqB$HYk_AS5E7w9?`I095Z5LnDe88MRBdIR!4TG~r|OYumV&L-P6e>D$XiYdzVbMhW~|gw$31ml1udF(;Yt7l#<|t(|O-X!g1;KZQKb0qK*%YKy(-G;kQ}tTF2@(vt|3+56;BF%ke%xsLdhDH<=~X2g4NcM2S77~ZnS|KeVdFs&V&01pDDCZfF zUY}53Ai9uCsQh&%RS!FFt+@%)j|6<^Y=`Vc!ygEyv2C$1!z*k)nk-R%PE=SZ5Cbbe zuxojl`nF->zT@P=OFi{`n!Hy=x+?}i6{1qp+&+ichHzn9luo+zq3eGD>8TW}W|AUL z)Syh7njl5mm9r4u6peA@>ZH|)N z9Nf|D0lCLS5@&M$qaNFIN*#;#$ zZ25PLNWl>c;e@0CCr#7({e_$d=g#$dw$=?j;K5Ur?6bPR-~K!A$URisVWNAVO*hyA z1mV2W$F`)&9OK#uY)UpyaA7g)ea8X8u``{h!D$9f4A-&QV&D89N6Z6GfArvN@4=f) z$E3$qDS`rFmy~95!kFK|sBXytbGi=9or)sWucGKra7f)u@p0U$KvU5kQzoaN`^s#X zVGl)Hpn#S#;vVd<#UT5%P7fJZL{q`Sga9)>{ZAFma-3Xg$;vmMPY;1{Qqp4YM`>hG zrn3@qn+pT`iP_kv5Sf>#78(tis*q_1IIGiR!ouwPBwl&x@Y>!=lqlQW!-%k=B(2qO z5$olrm?1nzp18Pv4OvaQkYAM9=^=9am|)4WoNL&QHxRS)SrD6~Jd26cz(rX~cNn)! z39+XEDFm10A?+rB5VIuwGAVW)Xe73axg)j_ca>EbYC#M>*`=k?k2S7VcZ((e!Ga^J zQO&v3B_roaA{6(k7x<5@^KPZ&#R*$&&tWqOpXW z`~v+8S>-27j8gt*Xs)I3c>BqCMi%oRPF;WbR~k7zC@Y->L9Tg>*bW(9i!GWEw4Hq( zm!Nwv@>e;Rhv}pKO4yKrgYd86v=9s@&M`GNr`J;v?fAwJqN|yZC0>&n1Qd>(d^+4n z^pY&d7{v6glc3v}7jN|LRL9Jw4F)q$&(`B%4uH;j5-sg|c;`Pjg?_#bNK^>BbY`P9 zK@;I9QuhaE5SR+Np;QJiQ|3DllhW1dK>VvPO9Nq^M~}L&e3aE1>nTGKwn9F&QDsYj z#5@~ab(~}t%ABv6K!=8l6|G#Sv}XaWev)Mm8Yr}|;yiJBvVF&1KHu%oZljZobJwhN zYz@f^et-SP?e%kxtLZUeXS-rwg5K;Ab*ed1pz=8|p6nLLWCF`$2Bj-Af?w36%Fp#) zkZ`IqCiy}G_XqqaW;20R6OjiMXozmOteMV)BhcN`E67WyW9KUk;Xc#F4U*M_g@C1kbwz=BOV#0-cE?^hpPAd|Dl!Nog4EYYC>9Pp+#*y;>E%1!P zWs$|CE?uXqn8@W;HQ~^75wF}m1yw(fc!;c@FX+dI{Mt~cx zIVbH-#-jGcR6T-hv?prIlH$KmOok@8=QE8BdoZ6#SHm1Z$H}* z^MC$Ce%O~EmLxpBmxt|`ITm|*c=J~bNrKu2EBNO>EfCgZo6Q)Nalz?IJ4y$!$Nvdd>aX{iP$fl zleCe5XnJ`0esUO=DpoNe;V{!QvjGfsgASX&4S*S@lwjE&!sdC^jER%CEM46V>Q-9f zKF;lz;KbW#7)jq=pH5kZR4k^o_WtSl`-2%`q(;jF@gdZdH&iBwR=R$Ls7}5U(7f8} z+?bpBX1~-sYOe3(k@{uPw%VFR7r-A!tIy zfMz4%J_!^$O#_kve@IQQLrQds=)}$~uD1k>oJUn7O}e=h7EC1NkQJ{sWzUKvbp%B}%4MIqJ|I$aSET3(8jS9F;4=sx1lnA3HRx!R~$(DHgGe zZ8rgU$Ln^zR?{JAH<8td6G#+@!cwPC_hdSg5n+iN)^a+F5L>9EJaeycGwTi}P_F+m zMV?QWVi=Gbk&ptHUlPw6T0Hwkpv)CHbY|)_CoSn9uMVted?A)!A+@Hv4L!78>{PLQcm< zhjavM$m-S`;%}~1GbY_qNcdkOr_pr0*M;{mU={ZPky~%J>lhi^;~j4v|DKy=VfymE zW`sRLLn_^L^AoakpnR)D3$Dj_MQS)9)&h2?TXmv`n0|ohK!#C(3``$}dom|n*j&{O zK;8b3{M?-|cU`o2r}s05>)#yx4pH;tkYx_56C-W_&CMaPMIhPOVxdV>gfNlEBD0G@ zM0Af54QHB@1F(Kxp?#h0caxdsKmk^R(EYgh$%OC*(gS#A@gdmSAh{!^SmHgR0I+Z` zzaVbTP2B>*VlK9u4YKRlhY?WS7GlopUtn$|O}hncuug1n7R`{oXmFvaRblE!$GAY= zVX-}sGB07-?O0r1m^_ZW0Z_+FNqn$nOQ^@hVB1YT+H}~s?Qc+P4-&3>o5^I`5Xd`H zD^USd$b$VOm-MS*@%R>|BNmD1mXNxWEQlyIYNFqr5#y3S65W{Tg#j6{D1cg^hm)a5h6B^o1B5q(LKq5eqB@P6zekJY2b}`=I zMVbi~b)o2KR0X$SRDHbQdas5#MucY}dzu6UOJt7|d!e)& zc@Q~gBo+bgk8YCMqoH#0i7_LY)?zGtcFZ@zr3Lybc!8T<5$^btM(0=~s%ms;&MON|~Tuw2dM_~=;J#yu+fqrP){2%+#7<1ulb5;OWJiouv; zE_GuUz^%tAs?s(3>U>j9(a^-Ab^yVxJPCreT{cCpfB^2y73BCz$b)Q&)1krd2`yK~ z-GUstVTm5z#E15ZUhI zdQvAi=m{>WHYkJ#dhZ4Z{&%+~tzert@?eeW<$~S%jt;ycrV>?x<)a&s0pL1|*-m|s z-n&5}q$g9YA$g2N3488Pbw>rp{*wcdgYtbKP*L5pJFW3UglJ)bj(VI0g#o9t>-P{k zq>ylIy4tIO8lx=M9YG(BIslCnQG)7C`rrnJ93In2Gd=9mfzgM_Tcs!HgWJ>Tk(SIV zXvxb6#}%OR?JRN_7^n|+ps=rDGn44_X(^PTZMvY65;xoabcpjSOZ=|3gdIzo*Kn8Y zvdCiw~jHlup!qPVHV&=Uvnz(p((r7@n6TK>Qc`wE8~ z&d-4sdNv8!J@I4aW3|+iZgNnL4e8M2M+`QY#C+t6N|MV8P`S=^pxn@L$y||=z8PnI zLI>*c-QThNx4OX|oa-)>Ol%;NMOKD-JPw{A!c_cBhE#j}NzVKBKoW;eOC!5N(uyp2 z_jE4gya&gfnSHNAm6^HSL*5av_|i+|%k)HoGZ(4K&0v(Gah03Qe;|3LJNe1 zN&MvkGd-%ARTlSH7$*WjHnWmZv z5QOSaw?!4)gYiclx`t-5YF7kODE$(Msl|Qjg1KW3r+E|ySaGFYB2i>5cWq3d9-7;5 zxgrw#laS77mDJ#DAe}Cp<5XlbKpkJUupzW;rPPCS)a}VkwO+1gYGBE>P{VsIaf2e7 zz0TPwf&J`mj1^1Px+FMp?1`LWmWoEKBC)OwG#ow7^3Cb@S z?441t6Q3$w(i2feq%;8J*ABVC0cl%}s%tvy{_)}Y_jythQ(-)3dE$I2|fp(~gS){s{FokV8qj-^udp+Z)WGceZ% zXv1?I_k(pzY$3fzj06!iVTZ{0*+9dFyj=()(WejgYS$1eX_0t=XEFB)@`anz>H5+b zvl}#@y0VXorP-Lgz?j3P+0sL;_2FQnnKE1AV&YSfE<7<$Y~riV&(|M6{7sTRRXQ{h zuBYxTMw<^-vdpDpGM|vGFYlinZ25VM$mvHudrePR?6%(#VB^?C62>(Auh)+kFRBK3 z$d|JLygnSs2d3n&DUx*uSL;%R?jvDQi9~3-)_lUuqE{1}!pp1h%9GrGMh|0mP&90d z-JVRBiQVV}Wx7I=l>hy5da_n&swA0A*W+~HBm|8rA*?tdq>ec{5!h1(x*f@J5N@RKx6&ND)NkE&j-I3mmfL7JY z?~Xa{AEu10w(aj9-5Doo|5h8M^J(??@8|9WAkeNsGW-P*u3|ctD53Q>yzf{Oc&HAm zLTt%HJH{uZGsLk!@*b8zJSFHF##>C4v%1B%CZDeDxi=6q`jYS(gt$q4DZ;|z)y1Q5 zN@*NIwMK8@c4p%7NSvy943;KSJZAdyeEBpxCEBS3pGV9f{3JAbSFd&+gmA`fkxxXM zaZ3S_J#c!REz3YA3OWILqT_1?0y`O^-;NiW7iT~FTr#Yu_N&`xr7o(Y&0$4|>!5yi zb=AroMPveD>?WFwB?8$QiHx8@2~CRYFazpHN9^hE>|BVGyMl+}c(aDC^*U45v6xP= z-4l83SzCEsX(ov-$@f6U)4-YtaSA3OlQ|Pbc~UO(6C0vWLp430EXT^gqa9f-HDOyp zYmmivgZ6A^C1*YXXK1KWK3{mr(lQPNX}l;3S5g z!>FVohBZmOl<^#ncpWqiH;r(1c5q@WXU+DJaPpkCI2f;P$XyeI{3%S=YBbJcTa6Tp z=(08|H4~R=K_2`*uX`O>Uj_Nh7<-U#p~+QB;;=j$Y%R9!R`!|wI#{#iYUzfM8Yk;L zCU`qbeA2Js;Iqq?&#ou)4JPTb?eu^MNpdMUCGzoY5mVIG>pC=Me*2azV0kEl8Kxdj zL@rmSeoN^m3ElNJxj0)AK$yjp7iR#CENcP_T&1P7P9VNqq+Fb>)wfRCe$upjO5E|q zh=l|#xEqwnvbGz!m$nBY4{9v)0QHkN)mW>j;`(PdkhrBT_oGEbB}k%E$Ke#X|Xf0G{S;%tsieSrIGYr zM)OxBa|L_@PQp$R)%38+%kA6gIeAHRl#}VERk6XvU1&Mk5L!L(OM$AsHBqYX>^Sg_ z93xkXno+6An$)F~#x2*grx_a=iO$IEr&4&WDBceAN7lZinoiOJD>K~?y?vI)<3}*C z?@r`g*?ksqAu;t=R8Mo{Eu#k5?O+cZ_hN>VbeVQI5sYn@i{&AhxJe_*l<*8rLfS~+ zs4e>1JJ%=)cS^QytcWvN742{Z#5E52H?FD&Y&#Q5kou~fQyz}krb3C^z>z$)drlaQ zI3i7Y!h7;o)ctY^D0WkC;5njj7+B+|y;mkU0Dimt$MNag<;6d$7_MW;Ah|b*5{H=aM(#Asp99NZ+O;xn8OIC6I+3`n9C2FOF83@9H+tcNE!u#xo?=8c0^L za1*_~vp2T{5vH;q^f9*%B_EM_e1X z%_gtu^UD(sew^hvy~ZdWsbec>o*?|>r{r|qtD~e42IwQk#EN)1qWd_Av^YGqixalKoEmWye zpeBbmC`~jY*grZvHVp#U5t+=iGU5eIP3m-mWLm{VYr>I#h>7F1tF?OK{e?BLVK^pt zw>CzI0YenABpTEqdL=lp4hP!-=^0;=NqbHNT@vecdnxh4{>Z7}xo%<)TFPZYorEoE zLGb>BY6yKw>MSe0j~q#0XLU2RO@^~;NVJH?sY~cUFuVyox0!4fOYUE|bWG;GMvM47 z(IxoQf9(YK0_;}K?L^O zjh=E6!z^`pAHu6+u(X&H@C|8j=yD)XafD>N2?3F!0dZZ8UE~xi9j*hZG7^biZQHS( z>T6;zj`x~>Yyb6=P8U1Yd|X3U^+Hx*o<_u7Zmqhh*~+>9bgxaDHY)BngL+_zxLwUR zi)CD>7BWv{vJ?}1vGmQeZQX!N3KsV`Nv6C8hegZ1khI@od7Y2{_G~)YPCw+0Tkc5e zoG5kE?DMrP8MZo(>@y5$4sGCp|2LsqkN@>s(NKQF8n)<%El9d$nE-19Ld6bmy-`!V zfED9AVCtB<#55zW0ZR^&=mjaY7aD6kKw$WGF9r|70hq{LeVndIKkiIpaUIcM69MZQ z|8>Oj9jItHQAWp7G#|n0O6%ERpxf`4)0M{8?;+(` z8KJyYcoz)jaZCo|7_2{l-3b37LQ)cHJ)k@1)J>fpPmGY#L~y0dHj=1mT+4PV&BRpD zq7LE)<26{BY_t@46mk8jp`l4bh&!8TID&xo<3T=&xD~~pqYS9u&{ZL#=m_w!r6C^P zWUoo#0*D0I`vJ-~(h3qn#+va0^HoDh1O-gT{()GS9Iq%if^;)rJ;?|@snOu4e;hxR zgalov4qfE!!lJjuxmxx#hgA>vADj2iTd?iKHKZXaML5a=%vmobVHi`#pNdsL!LgSS z;=q!|c0&&I|1QvbN04Zu$#%HGUnRFo2uh|#X(mM~sBEc_*oxeTrb|uD5}K1(+wSCv z2p|0C*CK#M=WO<&EA%v^R(@m7?;Rd$^ml@7&!3u`6PQcBZi<0!TG`!-P> zAV&^UWU?T$klJVkB#j+)efoAmoRQQW9>b3h7U%@g$5t-fc|Xl?$T-eEzdQad2>4mj zm$xwWT}`$wMy9@_XNT|?=@}OXR#1U@_ZOhN?e`cDp7ne`SG!0>I^BzmqS_?VPTEZm z72$G0#)L58V`T}=DAA3EhN!b>;Qh#gO2&jR@d}6 zWD0Zlkex-`xHzL~6hC_m`NcD~^d&0JD@kVsqn6o+4utCm7~*C#=0+JiVmBp#&C>~c zx2uPq`o{ygIRY!Oowxgg8lZgsaI^+j-Fl7!T&yu7B-wbFT%Q*$Y9ooKBVpYF8&vJY zkCzTaZcnqrYN1MO1ql%iFykn`agGje=uBj>G2R}UDI(OrK0ROD-gT8R9SBDRhr(fj zse@*64a0b$rapC1~Oc`~;Gf)SVvA-J|kchDPSH83j>abF(5@cluygDs2+fg3Uz>In4~ zNJVH*WE^Dg#IG-tOr_72Zh;3_;(77#4VKDo85=^76GW51ewh{yNfGu|dd7lerqGMs zaDkENDnuQ1c#o{TPV1^*em}$8bTTEA_AYQap|c~%$7$+mV79lI%>A^j+96HH3~-}K z<7~y0qr!!&$ruBT;v9x+L-k%}UZkUv0I(0{8`ZMK<0m~+FMCIuI;ds=Wp%*NGqxl^ zS}(%}?W&tRPyH?-J}rF2s@1sIuHG4eWKpSq!XvCYSN22~+^(8NP5VIj7a}n7qok1t z75g7X{zYJqJ?WI=jEL3P2IG880Kuw26!CT_k&s}xB8GsS>S4*as!0lKtE0RNu~qVX zBqAiC%#Pm>9B?WU>(5+C?It$unW$kbyxU85xVk(ap z*oJGgmjWX8gH@o2q0(G)H{Ia>kHh^&`E3OX0q^vNs`2Df|3r{l4`I|t-fWbJX%|T` zGp|enNfVG9*84rqz80mV_31X19nONe z^AYF88Tm@~Z8~D<_l}smJ==!awLt)%Em3ZWiB?+kCx@BbYuRwkDQ^)5x`yy-lO_2l zl#>lTE?&Tow~v{Z?yK0rwFD6jZ;PAQ!E`UV`8pSV)>fH4=T|$p2f|w|5WI+U^V6S;2cMx89D$eCC zhNh-NGzz_DX{fg2!?aEW768PqB!#6WY6?^cYsq@J&w?3fk=6}$FfrjaMBGP4muF1i zPD2z;iNYE-LqnDa^Ic3_0+JUK-#4)v{|eExFlRQ7g*}4a4>b>e@55R$mIOg$Zr(%4 zb390r?{8w)%$US6TX4p}8~^Hi-gvTM7y77LhMv4&#>m2Nvh$Ys$wRT9Vbv;5nbVa1CFI`{QKA*NCqb15}c<43uWFLzv z7^P5p%Icp!2VIibBHK{l*v}b$()P7 zLoX!dIjo{)Lkk!AbJjOS^?4vO$k zXot(@=)d@qNRFRH zghnc<29ZXd91?Wpo}dFLY;JBcqcVWz`X9Q4;;kLrzibDmD_{*OJf3;ELAF&EBrn zj~9d%;aZ=T+#yAl2}xUFEhZ0ESj2Hp)(jGc88Yr}^T~|v^7Y|&YN>F*Qh=sYMx}UkPet+iH^9-k#Xh@-oF#LoQ5y9#1>wo;`e;%9B@oyMhqC+Kit%YIh&12ZF z9QLq+fU0XXZV7>9&Ia^C*SD|O#KI{iD#C{G8X~I|Lb_PY&G}+JX*8X&A~TeMP!bZ$ZU!>fRulE zXQyTNQFZ0^DrDNxpyasq6-Mg^bA=E%I{LE5jnM+O%@)PY(rfonjBmAVIkYj zfk#D^z}9IFnnX*C9(r+)TO>9CiI(81_n9EEme*yy5D8_x-l?7^j8MjrAbOpCp50&f zAQr>}z$TV_DQW2^1hQA0^UU)erXMct>_^!&!zMlp!b^8J^+XrK?ID~djLi68q%?_+ zu$OR}T;%<_gXFFzs1|qg*%-s+UW3jr5>mt&_;isRP1Dh8w%V`vnkzZnd{T_oExdjfZmX<)2I$Dw2Xyn4FI{-B+@cIvZ|iC2GEbM?$k33a3T8iCb7 zTb$+uFD9fz`|+Xh2>~VRdpjh&xCu)y5(EQVz%=R6215Tl>b z2N5Gk@rEGmc(B<|xC?SyiX9PD#K`LgE88L9@<;fp38!Xa=Th~f7}O16*r7m|G39^g zAQAyLH~FaS_Mhv0p>%s*~I6QBh+nzI!-BnivT0v>cr8TuEcyNUHe0mKwdl1rW z2{bTF2of!{`O~?&&q|}tgz7&9;dSP4K1LdF``HaL`E{SP~ z{&{g*y2Z3+FUr8p0TY(g7~OhOJ(cR@FFR=yerwnz6T2WV-d|^*J`>yQ`0kkRhMmfF zQ4_i7E>kmge`zza^TDkYJ8g*7u2q&N1VM zWf&Kq9l?-1M84OH6<+%Tv*#~8Mb`mlXM^LR20%(J|4=@!62{s`2^l`yY*bNMD&~(i zcVr6*+*L3rjG|#@xPi81*RJ*$R$Ib9l*wb--b4C~4~6T5?QGTTR(feG^yIN;Pxx=a zabIXR&Bo2^kELJe%E91CG7Xl~c6xC0@MD?FIuAc%uY;#d$9$C09M7?>(fHh{Assx}<4HmCZPV zBf5m1lLonY7Ko0UT^Qegw!0&Hw1~6S^e`dGK@xb zcID~!)6>8H^{=;}yfu~_Zp+<_0Gfeq2v|ubj=CfP{emE_Qey(~Gomso0Ys99+Hl%E zgh+>G#-__uf+(v?ABD9X1Z!;=#okk0*7}$}1ESks^|J1V>$M!5t1^B{dzxHM33#DF z%=BZj?ZxpgO;J82J`P+;qU^r^us!$cBc>36E1OUM_4q`?2bE9qIPQMBUiE|JsV>Iu zQ=R$wsnLjaP)tb&$&_@^B0U;h@7$^83p+Ih^DB`#O7j?R8(AeXS*cfTS?0jBFkG9n zB-46|$8yF`XQH^@mk-Lg>hmJ3>ek4H4_d(G`i&3CjO8{QA~_{8zOtVnPAXp=dc(}2 zpmd3fiBd7F8^c*EMIxv#N}5Pz4A<3rxfM}<@2SqS-eV?Kh=$cG_!{oFy~om>fs)Us zpb%49l;g?Ie?G^pK-W)tZW>P~>IZaEZ8RyXg2jTTr;9(`JKgbfh3|sszySoa-p#uT zw3fUds`7rY%7>vUWGpRX=m^sc2^GRV4p!-RIuVxd6;(OI@+}#UU`CWTLtmDxg9eHR z9y2SrR1Fu(x<)it@(TNp)=AaLFi=KHFl+=^M_fgoHJGQ!4$VT=XeMvJaa~8BiMPoW z${y6<_iophtK*-<%e-@Q)AhA0LFM(TG{%@dX4sk2xpYqS+~(}}09VWuS9 zulA4c`j6iCAAK;7{QN<)h%7Etx`VsmWrC)BNe{5M^PH( zpH-^9*t-7|T|&}F$Esn&{^v(ig7>n$l-e}B3JZ z?rZ1MU^%a&^ZA6)L=Y^PB@{2_n3xu{z=3}`Jz?G``3e`GP!3H0D;^=5$6^~8WM3ld zE!cuOJK+!CFD0h?LWw1aYw)t}vT3?uViYcmRoD#lp9^-UY3oRevt2ti67kO!86}Q83`1-nmSL-p9RF$Jgt&fPyTLw9n z#LG(eg(!uI+9WL%{<1&}z42OJd82l($W-g!FW*n64}aXB!&R}s_umWm(7*QTduy;( zFe|RGVIp@+sUq?3a{ltrjV-QZ3?kP<_tyoZmj3pG)Dj{TRhNX76yR zl*Cwz?fuO|r*5t%?yN&)Er!4%pna@KiTK~H}y&9 zHPRr5k1fc5_!uE2ntbo!_Tr~<-onygaPsse#NI!bUV!eTV!nAT)TL*)m1hVi;)_PP z9G~cw^%IOgKG4Bg@H&?0)U@TPAX{^3wfJ~~nQLE- zx(`*F$#GD9xk~egI?W%dG=Hem{INe=m1Z){RbQ^s{L#@IHfgRu z*CFS|#ho5pyRZL>^NvmTjnc8WEcH@imfE>I@Nvk)WfLvM;YgJ9rExP1@`~3=xrnmF zkouP|Fv&wh{`py~unW>}kCIho@%SRFdwERayx)ZUI(bqmx38x=QUUu)*4d%kD!oKI zHJ-3M1t1=Ol5c{|doFfnrLdzw^fliAMNL6UjJz@2V9=yjjZVRBE*Rfop7P}(8AMHQ zC6)(+EnzhBOJRr%UmQ)cMfxFuxBBm87WtQNhQSp3*I?wG5W`9Q*J1tZ?2=(9mC?*7 zJdUi;V1eUbbH(;-;F9RtlseR2`S#-Xlc~RZxc}8F)pGZdArSXc4`ztT&P^G5fyEf7 zQIFFeE-95P-;&=C5A#GV^D!;*?i!8+2!{g`@B;@3xw&LG^X&5}c(j#S8JPz2N~wk^ zz;no|5&=!EP!yzK<)NPb2B}-reIKSEzI`66w|)M$tfy2~eW+M(RqK3>86E+bn9H4> zGAaeU`t20%l=*3UHVrXP18V*)-E2wKZ|e4zUkVQ!4PTxg4xK7*9x7?SdbxZQi|_BAcs|f4^*|wbHoe3n_fz>+fO5$- z>R=S)_ixJg?PCKYWS5M}=6yXjOsxFeWekoL0_5kqkA#jdO`G3htNPuK1`_hlTTl_6 z7{ZAArR+l*!uU%5+!tah`B%6`#3;P4!FV~y1M>TPBc26;#mRkiUHWL~71J$Mh>vA% z50sa0)L$qoe4xAlbiy^}_SrFs8dNi~fAO`%GUeAJIVua;+>)p(7iAtdUf(MPKHO#H zg%D;lbI)<8Gw|?6=3WW=!XSvbT0hFM2{uK;2 z_x>w^E9N4SOLUMkw;ww!4w8+*MlR`Gsa{+@S1o_}MSV+e1>h{ntly%57b*}zF_V{O zr4hXsdLQY&(QioqjbDIN8{<(r&0&f}wo;5fb3c^Feon*=j8)!+JCz?>Q&iwO)$~SH zulLsX-Vc9IiiW;NNGQ4cRlgU?hAMs-t|vu<)!z6XLDhyUejNUu6b*fk`8n9WP*y6M z(a9ZRp7mdJ(CJOzhWOMCj(OI@^uv+ftYW$Wh;RCyPY-K!cKSNL>N?px>(S}EHNENS z3@7)8@3}AI?}8N`eC)jN@q2k8siDd%`AK;x?ANd}K?U%xyxMs_P~rVRh4+RGhh!Sm zc|Pz3(?D0jHdJ*R20A?`m|lTqUhNi?DwR$tkNU5fu1K%hUP#Z(r^};0nrU`=&9+#1 z5%bCPpdjfJ^SSh(`-=ILzS94YvixRt=!@xb7g3-0s7sIQulFd`*FTtp}_cB!6<}n>3DAIdL z^F36AdZ1qPK{7-S6%E$t#A3JD6shDAf?1pD`H!`7FKa$r8|Sxo zck&e7Ye(SYiZdQQ^p|J7WxO65`oPNWRFgfbf~JqFZ`aZ6%*mh7hn-2I58aH>N3SQ9w2Fa* zgXqsBsQ}-~h`ARRcYi*z%&^J!6Hi_*Wqyw3vVq5C4CPHd0}EFFJ9+Aro|cN`vDtL& zb0b!8kNxY>H7SUo)kxcQK=NGb_Mlq!`Bz^qdkP656nRl#`+d808597Sz2iF^bEHan ztP4Y)C7EM;|M>E3$0?CGxG8pC$l&pLSr`5NwD(H4@|W+Yd$;KhV)Wh|g!&5vWw7#Y zhRf~?t|y~yDIHnHAq0^O?slS6?@U+GpHv>pIOVBlrkH5!1*_Ash5pNm=Ve z0{LO7n;!WqYk6AUMA37`Hatimr^H{9T`+&n76z+VQzCL!Q3E03zIbB$WTg+5=7M5> zlOHkjFG)836lQ1d>Hg)JN!xpz`?0L-gj0%2BYS0~`};+u8j67n(RxtYu*W;=xTtv<=xMia{b2s3Dth{a(;d&x8nLsnN(H>@lDR> zllWK$Dn3l>g&g($@<)lfTq!Xtg%{*f9c-pEa^+)npjf-xHL1QcuMTH58$snO;c|Tr zhTXNdguu|aU*gr@v|r3`xWJ%qe$~C1v0}7>9E&3t$n;82^QLF#)mw$?w2lXj_(f*O zaBt7dMe?33#ViP2&f>#adEDVHWdX(IFWD1v1@8F6AE8-w;wb3V>NbFP;v>;0#h71e z;MS{)bm{5#vam|M7a~%5L)z1OE4NB-(!KIhU8Fy~;#?hmw^vx|;=KISaca#q4;L@z z({M5SCLz~{%fFIu^EWXq$bjLAOfOBHY35WYY4I%d?-E!=U-geMlZektLjr=>G@lWt zD3egFn_dZAWc7{saD0VavV$Mo8tR|^?fxl#yb4_0JiJltN%iiQ_|3IE6q4GeY^ z_lirbXR!whWTFP2FP(*(9-nLr{YmZWIrV0*q?~2G$en%tqJe5od**6+&89CJ{#Hk? z>8d%cTCZe)z@SXaBjanm(T7gk=4yG3rY{<9S4W@es?Et!c2QQ3?vBxd&rh8oZ0o$9 zoW(kilQypNm^o(nL88Fsu4&~G)OlM~U7d$ssnsdu^bNQE&STr&H;US7S?3`kAtEc6 zLqg<6$Zi}9^Rp<;RFOj26lOn(MvZt)pXayPaud3FmMoj{nOZe!%B4nUR~z`2yRA(b=wy9u;l5C(o96(rk(O8e+vxw}`N?`z-#>t?pZCnW92! zuUfeV_lt(BopFlDBh;-ZNey%1C-SCq(NA}U_->gArpI#~+cEEo^_hQMKH;91_V~vG zuNOkx>*xCG@9V@6|DZ~{5${@btLbsi>%_btAm&4z7+h?s#27KK{isz|x#x9a@SLfl zo9Sm!>@;!D>%(Lxj(fdM3@$NsVqPwXp4ThH6&DZ)A|L|{nc_apw)7-OLxjmiT!LQ$39eA^7d?qdgCoa+8b{f zGJ>Eha4Lj%VL~rSdnt`P*=+Gn`VcQ7mj&3M~BPuTE{UgTG7R)@vFIS z{Nplzl4D6n9G4#Vi0>Bkkv?lAi~Qx;ViUv*UoM`$oj9Z5!k#YGYL~bQh%Cq>9%=Wl z###7&T3!h5F*8D$%O&^o>G9$T5ml#Hlwt!#sb;Csb#N;s)lc0Hly{$78fsSlZ zNZve4Go*YiPLcAU&GVr=6W-7WpL~Js_)=0&L|@94wKSmTZkfe3g{F#qqtrGpR0bL* z)x2PEDX@6H#N;zCAClEnyo1%cMv}4Rz2WxNy=>vD@3?&8rD_YaUgmarZl6Z0`cepS zky~T%kV}=4fyY$PEj%&Er3QirEh>+KNTB<$d3kyY?GJ)mWyDLBzz3^LcmDM7L-bpB zvgo_->F=;VL{bWdi}z9t^=j{*p1(hs*J=V_^L;BGE^=P`LPrE#ip-3Qv-^YD#&{IP$)yI*YTuwG+Gj3& zW2sgv#}voC0Cb+nnDPvlxr%RowpZw?4t~%TbgOjdDKG1zaKLt{W+S-iHHC-$_VMti zc@tQvTkzt8-YaH9)>kaFKKa>2>3k@zcPHa^RYbfdtE)VeO*}G)B3Ua1x)qxuzxUM( zh-{@YHILPwoMy-H@X|Tx94g4cyIRgjNvIvq{&?n1pU_$-Pis@G z2jEaCtH2ehB*IkhzHl~Wv!9qACkbFOQ#bZIs}(?nyWd^Akxi@G<===VW?< zxYYhL1$jwlXZ%w9ncfUR90Lnbd6FQ)ORoH9DY`%X^Y;4rdoD)Grkq21!mktY74Le# z6Nc;`ohssPN}mTgY;JP&T1Ys0*2iXrAE_j;D-wIVJTQ5K(!);=vVPJpJ@1ktGe4C; z8tI43ulv`|uha+%^Q6eHJfYhX1IYBCuq=7pBM+0_VCnTzl_!XzB!ivZa8r{ROvgv}m?OZ2xcXAS~SA7HztjQe&uyh1Gw#|4?U; zT=Yohkzn;9_H3+yd-Gg07*9CVzXsC;*;~R~C+_6gy!H7c>9ir%zA#ii^gOFb%?rk2 zfYV1JCK7kTl+zn*giqvJ@AuST0j~z8_v6$c@i3il?m1r&=-WH`!SwF!k4Lg)P#9G_ zGHLQNoizVJ&IkfX(1AaB>-IVPHnSxB1|iR;{Gd#{^e7_gH~t78j+dut6Thra&20J) zo}B&&U)Fz>393cz+qCBN2cN;x`#;jZ8}|c4`CP(uIk_M2+^_fU*N6CvunbqPs=2}E~%2!@iCQmi9l7Ok`9BksR*Q=}KiA0^TPnaN&5 zRE)Q4oC6b1l5P$Dbnd@>TQ-{`J4#4Y-+wE7`FJh#azhDWiTW?yGeM8vPWQAL;X<6N zX)L5S9+G>^5slT;pJcv764A$bB0RzE9^<%2-=L;6NdL z1^Ko_a>U7UWYZ8K4q@%mDwbs;l*34~rG)GXAxSu9V|N_hJ;HX2%}kOE|6ts2$dt&a zvI%*(-aBSkYp>oWe;Cc|(;dSA2iMETLa){!o)fciotmJ|ZJl??H#H-*(c_<~(~fs? zMd^MqycXw*(p1B_k?u^8av19Uos1F-yqq+D9cE zTkW|V6dbU_bi|RrkSlads#e2suMIXTzV)cu=aBgoY4*cYw}(GXj7S!UH^BYcTMF0!>=dgDl;rtZy0?EWG2BG`%bza92* z{dQ&M+0yE%B%hI!ARQOSFnx4x4}5Ik&;ZG9miG@wm|@&+Yo}1>-Jx0V?eu^+g~R0> zq!b-KWem!%Jw>$F3-#)>Jx&uQ#^7xXr+MCC} z*Qh8ja0LH9&fayqZ6w+AJrA=VV3+MPYv$9CAV3l%0AkA3mv36KExR-&OB%_puAZkq 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

b_SyC>hSniciemnI|p7E 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%0A$FJs@0T4c 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 cR~DPNo{4Uy*Kuk{g1x+GXC-Z06uw^y#N3J literal 0 HcmV?d00001 diff --git a/lib/windows/lib/libSDL2.a b/lib/windows/lib/libSDL2.a new file mode 100644 index 0000000000000000000000000000000000000000..ddf64d957e188b7188ecde9f139ae972567458f0 GIT binary patch literal 15679018 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

qT4Jwr`DK+>FR^6LpQD57004L2PTVF)n=qdHn_9 zy~#io=w^?6c#L9w2+?NG@eknyHqMwiJn(oZ#>PXZ6#Lt-MS$zNV%PTf17Cwlz0x<~yIh!oj?P@`vE>1%7_e=r(CM=y?1mJ>0mA z_-v-319{8Tr(OE^M~quU-ZOgh2_$>-38eMr6HwlKu#=8==x8Sxl3D~3efk6fX?*(N zTbYSIeFD~}Pr&%}2_*XT!53EJK7CMCuTP&~=q%K!S1802J&p{%B;T~YYio-Wcv1|Q z<)bs7YW!ym$6q71-UPkRLncS&ky8p4T+Ha_O9Ti|bc5Ro2zj)*x21cu~4!<@QIU$=A>@r+%s9OHFB5 z32#9Q9e-*{<+AFU#ZDkKVR=pUoW+itnovJyQT3d9CzzU2v#4&_Qm0pH!qPbnOW`gk zrK0t7pz!iJ)n!h`nG?@(dY?IQqLX>%#7R!pnG+}D#o{w6GzBjipD}T&6Fzg|G&m+Y zW6tSL?wJ$IN}asa)Y;1#mM&fh4>`PGGaYAr_O+NoS?0R>n#J`sOIJ26pHpA8xM7YH z?;AF$dQR1{d7iFe6KWRCUF_)?mcF90evzkNSh{vPm0I|0sDNHut9!a(U_)6C9G$jtl8LPJx4w4EcHSe0sYM4$J%!4$x3Oy$S?}XYpvy$xj#^ zf+Grwaex=*$B+MDaXtr#h!dvt;7ETSgu5)EFO`7c&2fKI^}YzDehaC+Syt~N4i|D* zk?x-`TvWHN?b@LHP4zl4W7#`S8-7*#wnV?ofgQfV z6gCO>KvelGS}7rKYZ%W>m_<}|t#^WB^5=s!7-Dq>usSFgX>A<~JGG8tYcE!WCtik1 zwS!BLH<585nt+xSTL;V9>coLtns-Rg4O_=jo82H^f^866M6?$$=ZAprVk3*6grK7AAfk3K zyCZMgaC!95)w-aaxXE)qxKLPzpEE-lhSIwm1CuW?$r}|7xi9l1^J$IDt)?R28G4;3 z`THi>Ud#;Te2Ia=`MgHv=B!eN2+tu5OqNO4s5t(Iv4!Mq1#j)=202?|F!z1L!4hOH z8lcHEZDQ+cyH)gI_dLO@2*cG5c4N`1v8rTa9fBZgU35~jNQu&=N8)9*D3UFqx$MkN z92~fQ3p`X5O=WpMfuskp6^tNXF~0FCBDw6Hz5~&b9qMzjVptzGDNoTA*pxEE`?9m{ zLi{ppqgr$^llA^$%mUj=|uwboql5UfEuj0 z!>FMAW@M7WIK1lkL$fk7;ThuG%o%WaKw=-`*CQLL*~zK6qK>D9qxC`{+dV?Z)*f)5CK?g**MTlX0B+>z|| z!t1%iIH*8-dfadf^|-2_9ksU(?Yd%Eq814{oY{c~o}(xq8pU3x6!bWf)?G*3RmfUX-XJgk$Gb`?6lQ14Mk1OMHUmKp`0jgvI;>^5j@N=^GZhZ**7u#!^x<~Stb z41s`ivnQA?6VuVF$-lX6gJR}uTb`E_iqy*qd$1%n#|?#s zV|nZWEC%Ol>x|WI-b%M%x|_GjEowu;tiEy?cSa4?`{t1$xKb_iEz;|DxhruixrTPV zJDoc&^<62~aAWaZ8c-Xw4AWPv(3H^h8-J(xpNi-qWb7MieeDeV>F$B3vyZ}=0 zA_2u8;vZKBV`X(P{}2+|TsO2xMk2whU3URqE8ueBl{no(fuO)Wn1ERCiUsAtP#M#u zwtU@TLoiezdGmw6LMfp!QZaEU)^y|5h>YN8RD6eiym#%l+lZ@_) z__!jOO^Is{bKwzhYe#l~|Mp_z)k(*I8CB9R?p@=%EzRQI>dXsMSNv+ZMS6ci?}zJs zb$00m**J<#dX651`^M83Gu_0^sJ=s|m+SqVI$x!ZCoF39u4$f|xjeqamCVK1Mqvv$ z^YPCSIpFNK=nxR+lmX{{{PR{ozXEP5PB*_l0zJz1@2QhYBUt`KX({+lT^ zSG3D4Z6}bT9kjF~mUf?|9ksMySlY9emVQ-|In9Gj2VCCDAfO9|`n2Iwpq{`cc_haz z_~)1zr`!PwN69#ansR(pl+^V_oHp5eA5!W+ZGDmF**6Ymtb4f=|2UXE!Ta2sDQc~b zhXK&L28k`|7v=cplkUXul#b$H1rMKi^C@>?_??cjW&MIryHmp{O+xntk9_Qz!t}PL zpb+qIoJ$pD-jG-8i^!82@?m`jj=_Gxr`wt!sp@a2CiRg#5l>1S@@WbK`~8{L7fseY zYJCy=4Yf}URhq|f&<|x&T?&O~F%=BYCsQbNryl3w{i%P+qL;+GUz|Rf`={y-8!5^6 z>qwgu|K@-x-P;{D*x4= z!s_3Azi!IZ(&;KSzSgD+C-PCU!Bf}T>__YKNPA1)(!fQE^FOlI#j5oj^09 zLq(c3H00}x0V41(uX_k~ zxrl>|CrG}ewKhM4tO*=MJVElMS!?q*9NZuFQ;a-*C1287o1LJK&rv+)U-BibwV{up zJHVI2Ng4vwRq~S7+OP^0iMOj1Uz)Wxyz}V|(tb(bue$~eo4_|vmrIjZV66>5UYCO} zi-~Y_H^Yvv?xA#7u|j0Bl~H*y{E%_K1=%U zS4Fh@C49+j4n7F?)T_1oYG;X473w={)%#Z7U%B%GH+=Qy!HU@7-6vOMJOENKT=hWZ zHBQa$qhjIoM`Lxh-AAc*bSyp+^=|meitydN_fX{a_>8^wRX+B> ziNLA*OnmprsTq%++>Dh(>MK;j^*L^yC{12df=W1-^ABMswrkOGc)l$yJ7?mg$y26I zo8G*(1vfW9N(h5++_0^|{eSB_PI7SkXDt_@HB7LdaC!q2&nKL+!Sg@y^(HsOf_zEq zJrGaxiKyiD9{;>=IB{;^hTdnD?Khl$3tBM5nVXa2&dM2rp(n&;Q;vIHCL?$<@&;H+ z0DIFqcz8mhTjBSCBv*QPKT8`Z^ub#JK46cn4?&;B$kc~x?G-amfUR5ABp|TF7h%e^ zhEYe zKbTHh4F5|+X@AiuD%f4v`UAFZTFZ}!K`i@_sDSnZ;mu{z*>bu$$h6whwuCkt#1py< zW>gXfGceW^sdgC@QSGuO+}?SqYQI6_)*wC^u z+PY(DTV=!Sni_mCtN#GVjXy7BTMdzo`v+wB4Yt8GT9r|Hp9lR%_ox1=QJZ?%9vM6~ zC`oqp9DIxnIPHVS_~XTY@bdu4kNZN&Pxms6Q~%y{>d$FMX5vG{EczXE~^X;=%nU@AI|( zo(F=3CIOcBdYZ4vSB~ow9zEiLcVaygYKe8*o~M+UT@F@{`gDtPw^L)D@EPD*(7^TR z3W~Jczzv$jhdfITo0vI~r14X#Bsh*a*uJg_czVMd1Pta$6G#T$uTr4QG6R32Nq9me z4r^?8QY*oKbMQW`)8P2aK=YCf+^!n9P*=zA?6~rXZV#j)CiOHINKgbGfG*B<{$6fLr z;;@MrfjkP+x;B>mvA>o!P4C$o4X)O-kkbMGD@7y3VMF2Ro*}4G4x4yPkujApIW!^7 zF1ZvR@)-H%tOMGW#%kuE!U$mCYAqHAp@BvNN=pvoK#*s3JJnGfrb{OCKdT8Z>AmUb z=BCq5-K9*|-mBwhl4p9S={)V4-^fWWpYA6D&Rrn???2hq*AUP!;bE@yG#A6OS*WIN z%p^Y8mD%KT-J~bCgVdATmGCPig4u59YU$QZ1iz#mLkSu8(=C+0oPWOIdED`V>MHqo z6;E{O)C@l2Cb(m3+)*>#u`}Gh^W9O6{O4obK=2kN6;D*xNEc*cX3$@>KPYzLIVGH~ z$>+fCYM-ud#HOM159&5nS> zTN_j$;CvJRBPGJ0yo08mHFD~$o;7Ak#D7Jj1ci8;OrIUSkpc*QiwbCsOimx2bnp^aIQHphdiLQ1brMqCeTxzgcvCz?88c zNaf&{I~4kNi@sqIznR095Dq`ZqWDf&^d}&t^Jz=-<61=VF(psh#k8exjv=mcu+4_c z)QF{3TUyl8(mx^7!zH*(_(z_Q^=M{l0HYur!nPBea3UCDQ=fkE)S@`SB*Q=L>6hnj zG>nI*GKIQ?_|E%eif80^>N?ItbhnPGr(e7WeRd)PVh?Hx?@agw??0!8 zCpC$8b^U_(o>Rkfn)Go`zsyOVV}@VsOceskyP7JGe!=_AsVd>cG#UEf-!G_DY6xqd zk9+zxQ1jphIpkb}|J16Dw#BozFicIL%tP#7^XLb+l@jl2B;R}}DV6gFo=cK%TK!8j z_TFIQ#KwDft~UuA@d8?>e&qD`o;a0F$DQK{L;Q(T$sD{!A=@bRiPN1pg!sg%db(tA zreOE~=ZO=?x8$(XsXOX@dd>75*yx+d8`3>-BHxYRTQfs(@~oEbiBl=)Sv<%*A>9+F zr_u4t!FOG`Vtfd@iZoB0{sfz35AX;xd`VB7-o_B~rnwl>>{4EuCr&5FqaCUh6U3`> zlb$%S9s^3WAib0FlAbut#^6;0zNnVRky-L3J#pfl(d#Csk(cI))0-)Lsc(1l{GX3b zvR;?VIYe%~w{Y(t zyZ&edKzb}Q+Wnr=yZe!7_a{T$7v-GVfG1l&7y}_X;TWYCl;J_sLy=V%HeFD;`dIw! zY^{H^+n*witF)-Glp1|xwmjQKyJy36(kl0GB=rcDZ+D|YC@#Er79J{{tjC|xRz~(~ z>yM%J_dXWhbC*?9Tbk|hTvxx7v@hR2@6q<=L?GIeU~gr(SHgR)L>gbL&#&!%Fxq`m zR-1_+olOg~{u!qtQortZqdhycUGciUwkzr$x2vkxBm9KA<2*834i%{87}^d`4R?|( zt!XIeV<^7s##2Aqze2u_9`W>>IVZ0Hzj@+DHEX4ssuL(RyQUi}!ORK8s_Mt0(Vk3O zEj){4jqakXM{0W-;8fsg)DKVfDx8|`H)?u1P``Y1o0^{ap~};F%1&>0y>RN5{kpkO zjXkV}Qzpc=z{ECrk)3GJ?oa0UV*R2p zwd!%l)|Z&_qCKC4p8=b&zwERpM!E1d05=41NiaNockZ62V}r_$?tH&A)>peWkP4xH z-E=g3H#>BKF9PJ}6Xi(vf4n$}-VxwJ0VWz3zB{M;*}pF;vg+9S{n9G{kkQxnSJOQ? zXw<4snsusqzwV#070Gt!S%7Z$SnRyAr%&ZcdsV`v!{bsP>NS0O*UQoAn?hZGj`ko0 zkG_XQyQ^|cH{+OrK2yQNOZ74wcZH`;>`xxQq$)U$4uXH@bSJ#$1^|c)@A*2wi!)({ zAMm)9cB|=r2nvMv2pqV!QKv<_H)8zZG50Aj>i%u&wLPU?vkPnB5d)QZy|%lh@Wr3} zjfQ>$hh0tg(Hc6fFpZ0GCVKjWk+-iOC&6&wz}chj7vRtpMMA%kNI3PMnm>8`iZz>& zR*qChW2I3&JS8147@lx!+QCW=R43=lap-x~o3#Uovd5CND0@t%*LFXjl;H7)v0r(c zi1x@+P;~Fxu?F?TKiV@F2Yq(5TaKBkAb9xD;6n6;=VE=?54wL1)8;5TjQ*;vmKE9c zUDfE)F@@+Ibb6l?EOple+WmFDqw>joRiM7WgRklh7kp16N>wJLh-6>+zNGR%dJTmR6^(xdXdcYe!`C z$j;Gpkg;j&w&u-v@Y(|B0&C%#8~i`RJPD!@{*SFNP?O<*))E7n#{|2?;7w3GOAL6) z^gpx2fCc?4mKeC94^VQjS6~yW=D%0)HJ4tz(wJLWi3T5EEIO9GI4sy~*T`)+}1uR6S>I<+9qPT8JbqT3o*nZ`})7grqEnAAowe zZ*Y80Zwd>{%<}Vn+DsM}#pTXy(-Q-?XBF;8iW|Ba|5<#P-e(~H__eF}pQ#Mq*)714 zAxkpv>Z^!;S6@f;yZSn&-qn|pgm?8N#rv+lG=^M~Y~IzULfKWQLZKLvvlc~%&q72* z3brA^3G=E-49ld(p&a!Q`{9GgmV+9N!#dTCUx}38Moj{R%jr9G>-^?&k*AL7R~n7y8i3iXm~~s9Pm@=97m_)Yp;D0&tDn(%jkF zvZY-uB=L9nB;Pi}Cz%zm*Rz`cF)@_JyM=t{jaWuOr66uyml3thH35`|Vy4icw>6&0bdbLAM z9)ye`P{$EIF^Vm`A9xS8A+qE9#7y@5Vk8t|8zK(?pIAuSb4q+W6DSOBl%yf%BB27C zGK8xP!50hp2x?$^N9#5R4+~^{-vi}MY(v*+t=Ot}K_6Y0$nBag?I1l2RIXc>reY5V zd75O1K^+Eh@Vg=0gq8JrSXOHl3_Kg#a9OQ~Wvx1qYZbQPvQ`hvN^xS+iEV@w^N6g| zF6guk+lXe0epI$?HZIr$*ha`h`LSG@?kdDD$2Rm$tq!}%0T5J$2FsWE2jj*4ZQ%Kv z=HVejU*O;oQDbhWuf_YZK;m6R2W&)H*ws5DZ_@dA zl=p{CP)vrOb4wY9en%%$iwP>(7aHRXeNfYRpw83u7_|1m3=C|NCQZK#bWD*feY>W2 zqW7B>NCEJFTG8>&z|i5Eo#d}ra)dJ-2HD`F*pspHn+;xt6IN@pUbQCf@69tDr%Vh{ zwL_a<3)`qRzke*-<6hX~``Cu(gGJmwjk!KT{4H#%eIJnRwgVdQ6{XP>@TwLody;rC zD+byaz83UbaQp(>nA;JVjco?Dq8!wKfg>c09v^d&_OcemHiO+|gE(V#wbVi_T`@=8 zCF>-}dY0@`cb&~DoF!GiYX((!ycW^N^kF%~aaPH2x!S=L7vQ9#OmTQ5<$MEj4`VwU zCB?1=rA82)C&n?D0*=Q+3}X>)wDkKM*s59AdAm`?nGQ7HQ3-T`dpu-y;4C zYy)1vlv8n2|%IdB} zd>Lu7y6a_iKa2SF*aq;4BSVhbIqejvsv9e2b?LtQO>E=yH77^680w}Rk_^2?>&g0D zgUq_G41HA7X^bNt`biJ{9!&OP6~_S$Q&J)C{^*=L`%+q>4w z=fJjv%1sF|zvIYbnY-soJp6D8m6uTo&47Ob(M+Q&uO!-!;D3l{XpD|q-b|yhkK>KW z4jf#PlT1ktLy4S#gG+LiaW)W3%TV(&>IcH-B=(f4-&D{h-uG-|Wdb>2gaq)mBFRDn0Fzo5UwHT+@+WjGV8- zVY=9_0NjRS#3PoOdsWkOA{+kB^>17hnrRPafY_6Xuz8x?6tgl|@kw?`^6ZLGYqN$H zh>}$n>n#w2HL@f$ea$H>@p~3qrlTt;PG5vNFm=gk>H<&M4)KFD~iQ;kH;ubv|vW@c{(lWUn8Ev zqi|6K^(c_mqL9PlWr3mvCDpuFeD`{c0!0gE6rZQlQWl;5JKIXSO(ix;BH!^ync^}U zkqF*kV_l)K8w6gbq&k7L=7t;^OJ*7w&CLa$aX~b zN5;22X#zh&V=y>eYXY|@sa~Kwc~NCF>=oa&%GeBKl&3O|E56SwV}n4l=x9|D zsE<@8UGa_c7zN7H6eq%RKKwVcT``P2$aIWQd)sh5|nJcmdn)|w_aeMl9mXR zlHj=F+pCQA0?8f*Ijq7%?<1a4B&^3Pj%f{I)&2~YG$ z0w*geqbH*LUu1=?Rrz%SrDjo4rlit-WP0ML9m=9D2&5N1i!($XE$>W;!(n>`#3GydZzD{6N1vW?;rz)vVpqEBQu}bTbG(>+i z5P>3?FJ7utkx zw$~E6Fo9&Jo*Xn37`G&@JMqAzpJT6|5lsS`*q9LQlzohdG3 zP)zYf*es3Nm>IL*s(Z((@MljIfiiK1fr-FDnnqoTh4gZiTvkhv_&nIk6$xM)@Yls; zvEFaYLR6hV`2rACCvbpGkE>36Vm1_v0+**Sice?SoU9Ge)5b%h3a-lD0bdPBDvd=NBkzwb23viWZbq^Iq{S zQ=OIy6fKxhe4b7j4Hy&OR)b2_B;)>PLvWgA;XBIQDDZtH)ro>bRlz!eOO@1^sa?Mp z2`0O(^v`>#2$We-*I6#`eveCLLJulw`C6;PWvWZo9A}aL4J*Va%u-TLGCz4xd+r8- zv`B{>RZxH9HHrRpjb1PC+e)ev=$Dvzs~V5A_;SbVCZF@KZt;=zmDMmi4vX2d495Jt zglFUZSB`TZ&_Dib!1eTMo$b7)d=5x&#mpyxKHIL$n`+xNt1;Jd{v>d3iTNh5FckST zzIeMSly7W~E;EKkL*bu>qVTg3)GqUNU*J~u;>*ArJxi;104^}rOAEuF3JpP=;`yQB z%R=MnJGn?KbS9neFh*O+TI@vf;;X!qVVTw7;N|c{h9Tzk&=@cb2`_j+`HE8c28J){ z3C%$086>4SG!myAQlQq@h%F4yGN0{*!Yk-AI%Mi`lbPb+DwuH%o>|rwi_v$5m)&o^ zM=T~G<^#ph1aO-#5Sv5A-v|vPv6p~zffYB)u3@-)-qZUIvGTF9q(grP)okW+`9A!S)@< z#?Z31&`^`qW_ZKF!6>|L%9FpP3<^g^hlao)@V7(s9jQ?(H{8%;iZB z3X6EqqLvvUCz7ux6s^Ihkh9E(k|jiGhEf-rh~vnM=5qovHV_$$K^W`-KaLXz6(MLi z;~+BT2J?3`hrfZ~5G)4EmzM+49KtYfEDs@U-nUymk*x&ta&tLkuO06?SO&$c#bNI{ zFtvdcHts-kLzB4t4pW|P-HsSavU4VsDl7~C#OSmDiVO@zCWZ!cK24jX4^S7Psg;Bx z6GEm)nz`KX54qREIb`+Q22Z*g8Z(~bZ8SGEHTle)0tH0FLqbF7LYE61{Rl;~4Ky++doJno;GyB*P%0_9 z=IBf<0m5bgE;NlI1WKzB?S|JGl|vKgTi=DZhPR=(%e$yE$_>_)g?EIzVDWjkX(YMm zvZ$5jq6?!|Y3g!^UJYa@dN3<3mr}0jg-Svt3qr%kgRut?5evh?OYiSN=MxSNH2q#- zaB~@qQ#aE^9UL~(XjB+nUuG|bN;|O=oPyk}L-iLxiO47xmRlPtIUBOKF1r!Q+wK=x zFEokGL}Cl@fwk$B!_iRgicmqY8@Zx}-W(W!+a}$bc=_#?j`q#i)b26|cD+`0Z|K4{ zXB)a(%_nKJ9>QCM%k=KfRyM9jH#}lEe^u9-^~x@9w4K&XUD&s4-rTuo$4cidT5@Kr zV)BGb+c!;~lyWm43?J5PAH$^iwphV{$UZwd+K|HKy$hdHRD44qUNr35V7w@{D<@u5 zx-%3nD(?wb71aga%_}O$2h*kTgGI6UBd`|zXi@Q;CyOHU^8?lW1Xbf5COKN3Om4eP zUsfk%|His5@a-($SSRw&%R)WRq%f1kn`PAmWnl;8@1p$dr2O>cR25YQZh`U#p!`96 z{ryOh9Y9ezk(1d2tG4Pb{iZCS$s%__UaH^)`RSB7`8BC5cp1vcX1x4{`R|RS+Y}pq z#10V?){pe*8}{-`^Y|O~x%uZYu;EhP^6pF4^YvHW7iTHin*6FP)VL{{JvN>Fb|fk5 z>WAPCjPC-`+JGGAA)pF_ z2B1=zRsh7bbAUMRN+6E=Cm_ym0cO8BbUF}+eiVqM>`?SMMPCQvxDNtx2|WeGQr=Yb z7a-1W82vS)lYu51O>2NS#%e|Dl#g}>;~3W~`m~}wKpgjW=VG|Dvw z0@#W$N=p#+AJlmSjh%)fgNikjLO7I4fACR#BaXHYu%H5p^A$?npa~cYQ>Bup#3pAThTm4?TTndn)!ApqG@lYkp&4x|DotzAgXECnT7ggU7CQHZzT}h z&Y%}JjOb++hjuINGDTMbv6S1CcDtglY3Kur4k>z0(SWc>q4vzF(OWLopiB|Hfa1{E zN}H=Fp`lGmqa`6MWrc>eD{Z5q4h_9ZX|$A?iJ}WMv{h;CiZ%gpj%a5DMzkLS zBiiwR(N7fpNfF(k>AH5EVL;4Rt|*~sr6O8L%zWPN247a%j}`qEh|B67ATG&2Df)|s z=3?C(hZZUt1jKPiDvkC&V7{?HtifcUQ%!BrT4fHMr>IU*lcHrn9QPwYobzs_eGQ1y zy-(49YUn#kBh%`fT8^T@iiRl~3B>YBl{Q{c1rX~}qiCz5J|K>JGZ3d{Ho7zU{k(?W zp`mvw`VJ6FeqB*920bigu%h8WoW>ZXl`5K`p|p&TgD6g8wbI%YU96#3D7s0} z=M_D!=m-$&aukSD`@N!Lih>0a8Uf-MB}yBrXoQBIp|o*|%7Iw>dZjHO8c|YXg-|dE(c=1l}h`w(lAi7eA%rlt+&(9P}#a} zdv={zzx$7T((*t!B>=Yv$98CEVj0Re@Jkwblmnp91E)uM7L-^D<=3F>OQFy!nIkC_ zGSEp6dY&A5o3%fMLZwU(L(G$D?TKC;$a^3p0QWz$_Jmtgn)6$Nfl9D2v@MMTX>BnU ztqmOmB+El>+H;xKp31yHA8JNU$>BB)Ib{Fkpz-^E)>>Mfg9( zPE)_%kzO|gX3Z@zq7Dc`pdJ?j^o6p-}` zND4^*aP^;3rv49XNh$hHSiTV^zxNfd4b{(n$?yMCSYrFXGA0_z+4l)EQPR8{+B>`c z>it|MS4@u?N7l9Is=~LqxLi&*DAT%D3|9bc{QL*oTTovXbLv+5`%)7%%MYwq?Jry1 z*_kCMg|t13b*&gU)~0nCl}>r3zh5OG)ceq~t<&jo7>@cI;!EGBmm&IxpeLXbCc1b8oPB+bJRwd}yadoIfBQMQr z)>#lhW1Xex^3tqkQJ?ykVije8k(b44R({%@0QFWmF>Rj~8bOT%-$!h^R791qnq{q? zB%ipC5=$hXe}$4tz_`xHL=u)*V3w&4W_^NU6-limk&PADuX&Z&eP&dQl^)u31r~BD zYkPAS;yk^kH*V};g^o^Nn0yGoVhVW)h-!gz_y23TRNIW36kP?rXremzNAjK+J zVM-o4`n<8Wn&v9=)i8gsByw`0_E;Xj8w$h3bHJivR_Rz~&i2b&Td>9J=<&G-{@<`? z^3Skjk`oCH$XS651wY}=z{MRl9sHuj3#%83#~S|Nkn^nJ59?#YAI6hn_`^{AhChNN z*E9SP{7mr2REmL|mh(1jUe#4G&ES^RZ9p{8#0K)ii|ISw2)~!hIVt}~R4WnlNo>xD z6HSJrDBfK!1ltwg2f4t+E=;?91#ccXA5xDH1LdA~WAWb=L$IGg zQG>Xm3(VrJD9NbBJ(sT^$h9P_kD zNq#VLQiMJ(EQY22fN%d4`w^@8bP{cYKYtBnejyu{FJuR#f7hD1mkJ4?9na*0St~qW zznJuWi;A~P#9F9f_G?W3Qq|j6#YB-WUZbhp`q3nP=UI#oFzK^glc@cGHDzxVOB*D+ zla$~CO#Auj;Cy!p%4Y~u?ANH?C$v^IO%4^oA8+y(rNew*ybk98E5g*4T$(wyL10y` zK zV_~nrBfjYMd&MV0vwX6L<_#wjMGGi&&;&SUCu)MOv+Rf^dE%B?ik@8O1&c+aeu{tx z9mIR1jQ~c0U$i7H1o6=bh1`cq{511{v0k9aAc^&R#pg+^w^8(j3da8u>))ah8#*nN zGqlMRm$lYawgEEaMtp&K7jYT|N=MEmA->tFPNP8Si;mZB{0ah>XCQL;9z>vIIN)^Z-Bi*G(pq5gRB=>_YmuJD1EDL1OMQ-# z>)izTetu~2kL_8S?$4}W&PS|2{WKYgs8-Fok^nWx?6^0$GP8U;{%Z&I-Bb z({Ctzfn6fE+%9ID#p`2f9pVDJEEvq;lCowjS;P9-9cCS@JC#-sUKX<}$fPcV`F6*V zA&7zvM=C>h4X0U=hwVDBwsH^_krmAE;&p8U;RPAX$(EVba}fmQVnH3Pe=8y#W`}3O zn+LDk9V!fNy@Qsp74Co^i#p9pH8(sXR4^N{zGT+k6+lO`rj%B~owz7KOC!;w0Br3;wQ9}WE=9wC&MRZ{o;@~wRW?tIZ z&0$1iRSq4dF-9ngX(*+{F-jFt=fQC?eeaau;Qc{}kM{>T$NkuOzqPG|v_YFmVP(&YL4mVom zq9~cKP|+YD)`i}DFlyA$^A)XAbg`n3D!N(`846%2WQ~B)4>XkadSDIyQ_;(c$eJ66 z{!!7NfmljOND$T0K$D|l{Br286)ix!Vj9){D8m=i(B(>7sk9rEwp(epDeZQpWq;FU zds}dc>$bqWBZ4;B+%+K9;V?Xgp%1@zrcn04_l8n3-!;*#4Ta)!{`pb58Omo{J{HG6 zH;Sf_ohM^wk(ghE!Tvc>(t_W~$m6WX{uK+U)`Bk0h{|o>D9Q#lx@6jI%PT5lfCLANqB(E47pXMWd2v!9uA-m^TEBr}cyew}-Ix_e&--ys%`jg;G*mS8ctxVrX zB>G@3?+Wk=rHc0qqr|E^@QS{=V?FPOwqB630Y?qY;$0d3WxQU(*24E+LZ(2L~_fi+0tTr}leP;C!BwslCs_&)7?)drfrST=Y zdq8PT^67Z;*@ekRdfvwtB{buj=$o()r-i%TjqZFJfbH7fKMSx{HwmGQC!#yQ0UBPT z+&>;?ljV5y!6NKm59MCKW&n@cV(30QzWv;>U0pTFV--JJc;+9?82tRt0mgbB)%ek zQM~2V^?#vFEOtUE*zl#VM~*(E`<%#|DUY4s7@?f@m^>PtDR;Zxh8Rg6DFG&u4@@5QG!CP&VC;B#w z!B2?lygIqRHu?1Y-kJNo)R6iCj_$sY=xYw40bCuu?j|IZ=-EFw(R1Vt6I$CBqB~mR z%!7&KPtBGwU1MUkeQU>*V?zVxu;+!zBhZv~HN|cWG^VcYOSqgu@&Ky!m~ECnF|_;W z%4Jeb@=b2GluIzaG62P}JCS@18>7UR)7B`JAak@t63H7ipv*y0&hC688vXY)kyx*` zBU#!fB+*0LTO4z`@~A0recF7OVVb3GhqhEdrHS6cVFdBAaRheVzzfR|`8kS)b^i){ z6y>oH-2}){47+8+VJM;je=$G?<%HpNG5XR_2nN}5MA2ILJ|p0Vb6gz zGO?0RB%epq>n=H3D(%-s?ixB{Sohn>EjirSz4XkBSk@eu&`XKlA(VV_7_pjnv8;}H z`%39aV`DYx&FlW|!AH;Z>2Kb(a(ca$lwLWi6;b(m>ct0crfWN)*Az>7IGWPwV6esi zD8zS-P4rzcW_Uz0R9`(GL@vD^7eXa)Z_drH zUIwP#sxjkV-9p^|jr#LdoVE*J?|02>bg4<>Nj{zYac%Ok+T>HwosW_h?}ww;eGlN3 z$I%bWI1t@&Cp^L(-T5|rwYX%_xUu8Od-pq#RcrSgLho_?4usF51`@q?H$}X;wr`~? zO}8d#N@f+utxdj6R}r{y&$wz}V$GqNzNVsM+t1F6?!1lSayv8(3zKiglP_SOmEOV# zg6uWwXPEJNSFUthyA#(Oq)hT|Pt-l4BDW(Ry584O2{)yRe)agGkKWa`+g7Z(u3r7K z>1d6-M*|M}{pij*)KN`eRncFzPcMw_ngbsS^VPF)=KBch4;#%ijY-^34-%$}tVtfK zc$~Y)zS=PfLZz=XK{RbrG(Gi|JYB!jZLGuh)1{;lO)p#e%1Ij0tOQ8mr!Fj=|0wpY z;e;~zSw-r*p_rBbz;XC7M#zxgdmMf$#dLixJPtqgx9R-jvhiD$anGT$j3`UnZtBAF zWXqf+?xxQeFSRACs5pRL-1K>gHx3_jVr*)nkJFPR%o(uDwB~9l| zm~MV6rqx#SgU8}|^J*5&^Tj1dMM~MGqM~#9K~);Bt8=j5#^MGi-q={((Bw2OYiz;` z^7xXfn#Imi?8C9xX{cUQRo&p!EUH`5Ix;tKg{9NwN$z?+ zIiIlSPunv#{Ft-2vD&Gsp0i{gk~wd&bAG&Gku$fUrm1Ewb_e+o_lgaF!=B%@=MU^z z^rLRW?=trJDbB?xy`VgQW!{$Dy2$?U;hZA@2*q{;PR?qaqXVW!gLw^hXQ2INFCYq= zV|nO|1X5O}-~+h<4R)^};T@QZ7ldP+yz<HiOic zk-HN|AmEre#A2LjDL^S`)Yi76fs_N&`QLF=5kJoKO&=9{G0wAaP<>b8{52fS#Dg;# ztXm6A=da?}LUf$RVr;w(xE$xzICc{c&Y#0^Gw?o~pTMyX_%O~N;J6)_CIrUeAbsh( zm2z1)epU+dBlh_|!Qzx8f}Q+Br61 zt}77K5fFZDX|Ib)?T`*qiq7v zV#H|Mw0Q#7BDSyTnt+{=R&};-TIUoT_nn12VE?@q@la;P1zK9xZR%cwFU8H94ku^W zNLqFgjI^|@?rz`E)xJrC=Tt}^H=vPDIq^*h4A_N0q0!@Oi8nG}!{$xv zV&;{>hVwP&$~_W``rC_|1JC+0Gk~Llo@TbP6tEvsB3L z*krKXu_-`JQFd(l6QTu{P!dk?iGfdv4`u;^zZvv%cnczCRZ;Ecb#qsBwXWL?BLbYt zfXX7WCu$_uE}qviH{Mh|Z*jx27Tiv1(PcN)EMAl?nC~=hmUw*g31o)Y`%y46gl|zf znE`y)3S|b^8(BCrgzs$wG6T%*E|N)asK(uLX?0bFliPpbBqy)`z{yzELbZ`nej;{? zQ_z3lRHv~2z-id-qF=FRInn+Dr#r>{2hMN?_8(YLj(s*V5}muGv1#!_ylE<;ISbox z+KQH8WTnh?4K<5#mtWQ*V*syhXb=wzyr!W6W~AUX45gdFgV!#U&aKaD7aE`g4Q?5W zmMk>2V#8~y8}YIwYBI4oNbSDZB@)T&9g^V6Cja(O>yP&#iI9so())uaWShZx+=qz51dcQIaoDT+y0kZErhxe50QDabiBO$+07iyJW3Z&|c> zQMD~!KY7aJNm7n}as~Dkcd%U_H>cb>_X50l;&L*jmLZeNhRMwh^X5q1__#rBmb&qg z+_rH_w^ZAQj^ygW4?B;v>h2+t!MY3~C(1Q_0;**Tp*plRHzB8JY7@ zy{x4Y<2GkLsxMB7NHBpmGyEeXT@e=d|Ud^V^C!@94 zE5zj8vQL3asRm20m^yW8NP|6ZHs=I-t?o`8Lj7?Lueo-o zok(mXk-l|~Qe5|}AYrow9$t=ZXx-Yn0sAP6M>9(}V-Nl`Ka;ssn93G3BfpRO0=zfzM zl;?w?&|D?7Z0zo8-R8LQlF68N$OR+2aO96D!C`c3qA#C^)6hT6(j_m*RBK!NwpJ8C z)nNKiIyXqec5)`(H4-nv@z&VkqAy+0@x{AJwv zPQj29hhu(z(6cBuX9RWI?Q1q;%SL*5+q8~9rVAbpoI(!@^~6X;;QN_HNt<|`n^;F1 z=hDDP()1dNLy-p&r-?YyIg!#?vT4KSH5V_W^5!Uc|6yX>PBEzTnXNXB>1&4RDP=Ng zZ%s>l8z&x!W+cvKbuua7z1*c8E>9s|Y8f^+T^*ZJciik`nf1iy6@r)lRb89gZQj>2 zYlpDfg6&+}zOLPF*cQxVp3e{u6_h5sq1A4?7pxD&Nc?@NV(1gU^&K{)Wn42a35!ou z%J-0kpDH+=l%_dyqdh0*fBj8cg;M@YiN$2=Br2tPsdP2F4Wnw~ga;NYKA3+R9pT=?<1JlSOavKBlP9bkSIx0#p9HC@RwYqZxj{CGb zgyw_DRZ?}qxqI@_ZH+d{J?)-Ju`ugn+-TFAKJA`GRT~Fs7LL)TSAE*8r*7;j5H80t zW@Bq-=c;wBj{8G*B304%LA(dYX>Z`?NvuITeX|)tJMMFCl&+*PIA~S+83=dW=iOqe ztV?ig#Bq8Ts>^Zz!!0HY1K$AU--z1Y+1W)KQ@by?gQ&xeBB6X7rR!~;s2z^R^1L&7 zue{PuAN?Fl?*jj~ES>s-PD{T6vFZbz_-)Q53k=4cX?Ei~GjM4PyVN{uRUiab%Oq?rPD?KJ0CrU?2@CVkAi0XC0PUaJ#<7J(1e=E|mC{IJjM3<4&P={Tc|r!ZD_8BR(y<#+^@XnpQe4 zz%gbOJ`1|WJ)dq^^upzvI8N6KpvN`SL$q`1a2(@Ilcnh-$KC1XQS!kX_g{HBb&y*& zba%F33-*oJOVTZ%3xJjx{yPo|#%7YP8OYG;LRxEh`l?GD_d2(b(xr#fkK-8sU<}14 z#c~)S?!URGCGe7Yf;$S6rC|9vjtTFAEf;KLUuwcpcxWdRv#(3(ZxBvyG**SKL`13- zYV789JLq(m>b3MMsTzWLj_XyxR2z&Yo!n`x5fp<)C`!@Dw>r&ThRvlj)TxB}TyD$Up;T_SAys;v!0Ie>&m(ny z3Bu1+oeMp6mS$IHYCr0nzp6ua2(EL(cr-B1E1aiQn>zOd(q=MPCgNai>fCD5rUQfx zIJj^cJZ(+~kz8tpxl{Vlre;&yW?NPB+%Ua2A?Inc9E+d1Z04~x4@3TgI9Qu`tc{B& z{SQ=|8c&;dt-v&GCikO_8Dv{^&UM372dU~DRdvqgs;WoI3vsYI=Wdl?4R-vhGnBF&~Ds%;gEL=WQ`IllY8zioTOL;Tj-}oV(|D7)hPYVxKvi#6FHv z{2q>TOuElhQM#+}kXVo79FyWREfi@K3L%PPrg?AUK5KM(9fX$+v2`01ebzkIUV(AP z792Czba!;%bK(|xuEluO+=FRL+`oX~G*W3lWY6quMbG@=5Ynd#fzxrEM!LT;0)cF` z+5OE(3Vs?vKfp25+|*wgHVf)vyIA^W)|n++mMf zaC-dX9MRoBG9D41x8f-11rregi1HgtmqNhJ98WXUf>PR#*KWRP+KpAixy=H14;9?m zJO$vm-<(8MF&M2Qg5w-wa=#g;s<<8gJw(F++6B~dW@6}Fj$>v!_EbDs3e$EE*M?~o0J)8P z!c}+>Y48Pit(m-7fMNP<99(SIo<$Y(bNGLRV=m?2z25Xf>o8JTgJbN+tVkLpBBO34 zEV_6a#5Zh6Q{wV4ElVIbflp9kL=0D(si(`wn+~jjle)qrwHL|UfU^d~(A*kttkoGW+vcpyajWXet4>o9;K~t;Q zM5(ohw_Dybi51S>^I!~dWcM|ic5td&DC_1e{HnEUTVV8{122s)l{fiLusLW38^P!( zT*|A+KZ_dcd8?h^G7CGfW+-?;@LXcS6+*$)I>ol$4c!7lkRF}RYoVF2)>RvwzB)_FNe#+ax-v%2YiWT%bX-p0Bkll-3koK;Fmzniv2LpqxY!*+>kXX55QwA| zCgi+4{uihd#^L8E%Ih~cCd`7TbO`Q(I7U|1!M6rz6^@$K@L)JQpIGwrsc!GsDOT*i zqpL+5vBTTc=RO)sCg^5It5eABH@{TQMWc~y4T5$fk!x{OE`=wI(R%>L0*ds8jpVF! z5d-%@!(WNunK)(>wU#0+pj%_HeKc~n5c5d4U_vjb+rYS$n2B2XFQDv&?{hd7-UiP; zP+vb4nfwwwfg6{XPP0e^2D0lA z$Db^`QLa=jkY8Xd2rOcT-ZKYJh^LW_3zB`hEewC)8K9-_ z{$A?0adD>4#>H3(z>`giEa*8tb^r9x`KGES`1VgPLu_kyVpd$U*Zg#wn5E4~6_ZlrXWQa6tk$f^ zIsOzZZKgjNOPj^nw+2GaO)ai`F0R>Zj-+ymQ&D20#r;X*o~1jnBFXEz9u8M!%I$KpCSi#M3nc=h zb})hM6a@~pB+AXQz2Xx!!6;%=&tJ7!8>AAKmsv<(c$0%A3W1)uDx;4y($ zkB=NXQHxL#{1A4Nk1Rhj+5G?6+bkNOz}qo6CWp!qc$Xz{n-m|dsMKC4PoF$nhA~yY;nanat<|~@aQi1+t zmSst1X}WmR+$`}STQ4)L+<;TQSMVZDt4^RyEW6G{lI-iswL+n-FcRik?3M0C>H1(4 zW@R+0tgIK9iReOo95NF>Rio4ilo|G*bH&wr#k1Dq6U~3%kwi;9J9PqS=LK>>XUo-l z#dE3>JFea<9?4?R>9}eyNAiBT(ErO8w^xo!MH?+VXQ?DD0A66lYd{mzmZxj9?p>~|KK=-=h3Esz%4lj~n?$1KPvo=Y@(y+9Fzt!xGQC1%fy zO!O~Nc?|;T8vt_0Q%9o5HF~{35d(Du`Xy#pM`rp@Q+W*n>GOmSQ%9l?)admBMGVvt z=$DvX9hvHX$6jq{V*=^Ri4RjpqQ9ik>jjD!s3XuXF}pf4)&GdfYY<2ub$pmQ68$cX zUN2C@Kpla8iP_bWiT+Qkyas{vy~&5EBhjzX==B0c4Ac?mmzZ50JZ@M?366>$a97YgKXFB3@L3XwbBHOCzE zo2gg5=+&pPmkX3hZIWHTSA1sq7Gz=fW`PHM8K~bYKFJ6e1(Ib;a_Bt;N(R8iVaNN; z)W2Eu?@`e!1pbSXngvQGC`-+nr3aO9g+R#!Gm200;W{e>O5LF43G}kG;&_=6&6jHG z7YSUcq$YuqDb&4Wf>zUz11VF%j1~eeX3zdBQ~W2Y(7KTpj`BzXFH=%erZ!EP+BBuN z*KE%>kSQ-G9p=U`qE#)az*)TpWy~-J}SNx)p>$FI-_LO1POl6p!t_(zE(IadA z(eTq#JN`u^8P0aa&{!T$a#U+`ibg50&XR&or@L1?Ud|gcb8_7FEV(SU0Jj5yIzj9- z39PhSd^-@|=QM7Uz6G{e2vz)LNOn~nH(DPw~` zTG>VpiVLK#jL8MeH^q$g_qZC>i$+^jYLh_Gfg6qZlFC>w@D3$43G``X163ab7Fw!^ zK*h*gO^FIpY8>(nwejd1YjRnbTxY+X=K7&dcQr6~>aV+*elGn~sbaK4txP+H?BABSjcIGWr{2`DF|--ukE8 zb9#Dm``%~6CB1a{8*O;HeiHA)^jmCO`Z9Z_jo`@1Jo7MnwQaX&4)uOzeE=CKCHG5v z{#`%(Z`hXP*eWZw=SB9s&Yq>-S*rJoH*d!Mwfr)bCFikeQ(K;7MvKu*avUb!S8>O-}=&&5J&Ab_gn^6~L83eqW*03Sxt*h3ywsmq?ios`N&$-KsM8eiPs0HkA zzsX16g0Gi0kN^acaPuvc<)m-zS;AWSd}!5{cJ>h;@9}4%rJ0NVrpuO`_YQ{T<7g;% zcF3I(%54utoIsA-Om>ltwdLG!53D1T&F00SaX1&u3>7aAxxr{zTPy|>&A~3Rq3m+B z2w9MRkF7M5m|umea0-NLLSxD6(oYzspu@pSepM10jA%nI3=N(EaYLF(Tw(aEiH7Wk ze~!RV_-$B#Hg=|O3Jo=pZwlo`mW572U~c$rtJtTE!Rp-b z*Or7v!?1R^Box{b8hv3Xw1j?xNWRE~!%j9#eWMnFFFE&vk{f=tq@*M`&Lykew?c`9 zK*7l~yG+d?`9U)o%?!;!+5s2^r<1XpO;JdnTSL*uLxTu)hN7@8PUx$Uyet$oDfFn~ zAV$6yEZN-?f}M$+AgU%fkqh^ZLlkRf$i29ErjZZ`e(UPCP_&0VByN@!_v=h?h#P?Y z@ZeKd914XNnA&x}fGB%HCqsh~BpUX>w}!t*q2b`yTy7Kv$o~T+p`k|0uZ0ShghJm( ztl$$@xuM~~@3>u5v`<`hs}YF&EDMbQtNZovPjE8U$x$PrQ6xSLbLTgPhQmwM77U-m zi0hG>6k9kC7Pzq1 z4(%?xm8jIHmx-2W9D_r{JCKoyCTS`;Zlw!MR^6@5v2gH@&U~XscRzYmSUuj#q6cNu z4d%{lMq>_MatCTL4;=utY3enoOx%x=7LYd)J!jGZuROx2QN# zZm{A`hTzS0wK=lGb_>B%ccTuCS@_JVGkWa}2VZb*HF=AmX_u4?8ER5>gPl71hP9|~Vb=bRwS)d%kiBBv+hxS`Wbg$JLwf&vPH z-wBq@2Nmt+sViK%CaLe4W&5TJOKhu+;EEh(gr3Y9G(F1>B=Ii~L>7F{gwQ49hCjI@ z#y#sL&!c>ejr~x#-Z13`m(BM#X{0$KQbwh#NuEm5cXKb*j8eUk+iW=a&Q;Hw9HH>2 zv7ueMP4atTcrR@mP!f(*r1M-A3Tf!)|8EDXp23&hE~9FR7Ax%)5DM>0@w@xNoZS+$ z8$l@CZO(4D*#!X0n%8x$_inb%7G9oynWL+yv5IiRYWj4K?zH}8KLQz&nPW2)4xv21H~?xFLlLpO0AooTB0z0`a0@*9PN7 zv0XXwqSBqAcu{#zxT>gbb6!z-{6JA@{9sWm{s^`gc(kZ^&XYxvcz$46zd=^+4fcGe zJvZ1PE7JQ!U{2Anj|b-z#rksQ6qVjU>0KL+7fs(aAYN3tGZKek*W9Y2ErG}KiV{e_ z66sGz`sGN!6zRw2JXJJo&ePE4heeTv`Ah!_uJiIoSUu!nPu6Hw6;-aK-RWy>c%>Z* zS6Y3s(ZRK(?+uydv$DD%Tpsv--hueR_#<6I_aD~g<# zUq`9p+hEI=z8bfxs65aB7I~vvY=_XY?02S(S83_8CK>wfr26a$B4?X?8$`^{|A>Es z2+6NJls1&Yn&I}<`0*bb^V1Owr{Wc3zsL){=((W zZGYh_P3!Q!a)SOT`pHXhtfMy$;mb&WX)kx$_@~%#p&zz%vt-+ZVHKk@2S<+CzhkaJ z=i!$o+;W^n_^mRC-ghvK+8WcIQ`(zA)i`pTJX|@9=u>8vTm{52)&g-F&nVw7fhffs z=Uqj#`!T0h4m8h%HYjZ^5Xac8s1Ini;k!xsz5$dlw0o5AAq_pG=tn>`hK~$?RT}hb zp!o*90Tegrzkpb)5qOeXU}zOUOq&73sl|a`${Xx5h-PgrYovZbS)6) z{F6%if};Bsy`_kD_+b5LhYv1|VL;Tja-0j5b}7(lhIXBz8-O@RpHkYbiVgyeHZk5( z+Q6{mEH<=BK&vHiN<~!~not_m3iDBovQ|w> zYgV*eLsu$ot)lfBxcCVuEYUqBY9aMBkL!VUIVMWhs=nG1FQPB|%{gu*QQS_RIzM-@~D0)vr zaTz%iapXHcx1p}{JD{@+?bGNPW*9`DnKODXUrpJ(TG4tSxo+6ukq)X`D7#(wzy!rIrAyFr{0os9r-?C~cLZ4nclA?Ek zSeF?XXfvt<;xv{6aT+TXU81O4(Z_%|?jc3L0AeXemGAe8=yuAIa}*5+Vkt`%Z3JQ| zmnq+siaxIBlZyTgh^72W(FZ^*Wx#MrH(${RMKMKFfmlkXqK^U1Fzx;`K&<`0D*CFT zZzwtl#8PswJb}?kKr@V#Gk{piI7KrRRVrEn#Bo2a=q?TYj-nrE=m{rD8uJyMujmFv zUsm)25U2405NmZzQO*dF7X{+b5=Fx_bhOgWP&8f9OhpS7)hpVhs6)}EKvPXw^(yTX zif+=-uPE*7iXK$-u%gF+IG4{V`kkV8fjG7BNXccMq7p?z6~z>dQFJB{OPQp!X^PGP zVhs|CIuu>6=*x;8QuGr=#dxe{DN}*CK4vI77l>O}jnWn>YS7RXN?WC9v!YH#+kiN= zU5ai|bT1I!D-J0whR1r=V7#J>fLKbm(zXM!_B$0NHS{K>-K^*q4ZU4ycPP3Gh|~C` zqW6JVmq<)d2@t0{RMB`Kjyq3L9T3;$az(8`9JgK3CLoS`rJ{dTbeE#5z{Gr?#fhcd zqUg(tzM|;citbhP1Q3__b3pjV`095`3!EynkwBcrC`Drxl_@$4h^15laefzSXuYDP z8oCyUV{BB~<;r)Jq8<&sL20`ceO5!i0>tv3R`h#CG+^cYmH;u|SRl?@nWD)WN>AGp zP%in-GE5{fx7@herjFmK8LFgEa9ld-frlB_|ZMV`!AjT~Cz^8F%Dy>p! zHz;kl(!Q;@`aU(z+cZ||X zl~$#+gwob3ZN1WVD(!lu-KMnLm3B~Rhm`g!rM;rGoE+5;i1izxw3yQR*&Ed?UqFGV z>$b>sV%Y6c$tmDt@KFsyIG+5;?Za^=4igJ!7_-5#4~NI|WB7_ut{%^CK&ecjyaUR1 zh$J2az`0fjN{7=L3<}M+dpt2vFoZGT%u@ym2E0DX98hQ$-ix(@C@DN-(7ZB*=M$jN z9J?2b)W$51%m-@7z z`)B;l&fq(YoRUMqf+s#2a{;MJgZ`rBp&SL>CrPag_gl-8i;$p8dts7hsqP)ilLs>I z(Q64lwj6FE=sAhUG$UUqL-`0AQyAc({Vy|Ac22f(3Jp(lh72N{X?bAY33BKv%5+mK z57hv4M&8F}FvTqo1#pgNhi!38p&4{>Ou14i(gS=vgR&=sa#sfBp$y88GAJ)+Q2vlX z$DaubtXy8GTLZuLb-J-cgavZx7Qt<>F^fbP zEY{pP`O*xQi)fgK$}rB9h27dWw@GB!l(O^;Q*?71&u^NWD4Q}#lFMq~&c;qP@Jd8~ zCXECl=sE%$jjdW)Pl^#iOY_+|v=q+{qa}D|A}zsZ#?n$!O>J7DRXIh4ek?xQ82#9p z{)e~amKJP_ba7|b#Vs2vzol>@c(%pK2a8mxw#h9~ z&4OD$8Om*_j@LqkG&AysA;n%hQ8F#R6V)@5PCmcIaPnuE{w89k&2XZk?h>$Y=+$SM z)pp`Zv-VD;Ogr&J?e1#FQq|29V{qm4V;y7uoi=5Pp-!4MZ8`_9%v*ac-IMS^I&Qi2 zJV7HY{|JL9l{iN5ZGybU#j@1*9^3mte+PUYvwSp;FzHU44s?8H_|Bpk1<%C*zeB?Wz<00)_3q{?z$I9-})|~yUPV+cez07?s5VD?sCY0e|Nbc^)*{IU)tKS zxea^2oD`yY1aXpacTWzs3_0lp3X|p+vUW^I<`Q)!qBNOk*-XcI2I7LLwxw!H)b6s zhV$RsDL9DD5z<}e>_IvQo`+Um z{cX!*a@5Zg{r4>o&kSUy^(4aohVlA__D!u4AH!saCv?VKe);7>ZR=RIvDG~9Xt(}1 zr`JK_xa^5w>)ZL)d73g>Wh;b_Evoo!U zWE-b$0N?H4+egz$aCnjFWE-dc5SIy=!23F9*`c#3I5^!4~?h!0-s3ZM0>6Oy~fp) zZE^q4jjIRboR6jzc))!VryMFhyA!j)b|>Z#(alcGfd_+6fHBOEyg9*R#is_)40w)}B0SIK?bO-_W>w&PTbEusx@8Sr>2Ku$C;dyL-m5ZpE8g zFJ;0ELumHr97$MZuQu|nc5>c@)ev`JE#szeB0U#*IC33x^V?=m5Zo;|N^0&1roTsL-K{x{sZ275# z7@`#D6RF|xJ&}?X;zGaGVlqNpB&N-y8qZisPK#HZ@+^yZ1Iu8j*!QsOj7J%v*x*vf zz1J98=1(mOHpfXK;J^2XH<3GSr{Bjwd|tnydu=N}3Th9J)adFpU)Iy-_fVDmHr)8r zo)wQd{IED2Pj$h|@KO5IPywbi=$qkSNn3cf`F3y^1zwI1;ORSP6EvjFem^Mj3Z^1L zURn5iX%UDzGt6I4rtlWdw^V%4ia1EE%zj%egrb?@ABIBaqwP>Q{0H;M>E))S%bE8- z{G2fT`BMf8LQlVZg&wo@D}98}(|aMIS6Y7Q>V#fr>F8jL6Z%T)mp)qP=@+Tcw_AR> zc&(SlGyMF_h*~O*<@g&0rco9dkuVOWF%Hvcgu^JNp<|R*s%X51QW0>BDT=0R=uD+m zDyq`ZgwkpiQ4z6LO-gH4v|K}1Ds8Qz^%_b~sg$dH=QlRgb^ZuM`O9}gxH_;X4QRBY zF9A_LT!-FWGa{SXjA*ArMvo{OgxX?ShobK)A`N(ULQ33qZU&8GkRGSv;28#{QTZ{A z%8zNaN~3aN8s(SyD8Ed*LTTHTc9YV)bnj5woyvDmX@`{dqSB5iE&B|J_CVlcx7?ol zn*pKV%{ZuB3=a{UT{vPmJPK)DoOyI3wLH9@V=$32+%=YmT6WNV1HaTCc<$o} z|IitdRUNA~t;5#Wmhrzc4HGv*X&rfagJO_$yysCdIOQQ)3MmVtj)y%)jMvlS`iJnu z_~8!$8C+SPD*iW1taD4d**lwNl|FP%X;OJb%s6`Y$v5EFP}QSM1!vAFZ3n$7;5awi zIU8ymv46n3PimV7k*?oWW_kBX*DvjX@CB*^_q%L!R2Ah@{EXMbQ;4#=)22&BREaq%^N#d7 zch`P9OSQBy(eqkq#r{O{iTg;mqs5qxs&bs3_hMZq;T7rIyOTe-u4LCU-LEHl4whbc z(ShhG+rj1-o4*y0zd|_q#&yA6`@7$?9Bpl7GNaYD`!N#go0%dn#>h^1PN3Xf>Gg}n z#0E#_H8{{co4e4ZmPX%36Yc-%+>u_>f3Mji%DA}y=Vp((@jiI+Bs`e}N(V1PlgJs6 zL#N;aE=~NHX(KzGWU!r1GB0z@bW-ra;C~YT5+lb6{$>!Zr40mfTF%?Bc~w`%G=p1K zw*i@0jp%Y|ZHkjqS9l&+!*my@YTdBPZVMXv)XB8cV!#mmI1%rT!;4q!oWcX)Ew)Ca zBXRfKfe5+SD-K(;KX4j(Ftw8xIUB$yg;KUM?g&dur(d`Yve4 z7TK%1+Og=(alf8Riqp97Y8-_WNxBfwA?MD*vp_2%8w1b5|05zso9GvAF~k;Q>%nq7 zt9#jN>bT6OTV)=VzDr9h2eCSpV@VySgc1`c`n!7uQ&Pz9hs}hf&UWNvPK?0PS1>XH zy;V4M)`52b8^9ZxMN-3bvVrC?a?|G{@?;((KP7~>^D4;l*1a%w_a(cVRFQA*ZQC?hc72jk#aRkAW@&gYFL1V!8U@BJiQo5&Z(vQ zdc6skPMb1O=AZt$2`b-h1j?ive$?qITz7O4>vWa%ceQV9B`c5crp;dMx3gEl!I+%F zERwMs*oDcY=bRnk(Pk}%`mp@SO~jgWCV|F%N2|Z z)x_WsBX2%UcNun=e4F14345;IO_s%iFF`~>@ba$XM+pDMs6bZ7fYyzr60^T3j|v`+=h00g?24=S@Wsv<#*d zC>jF9acR~6FcX7ja+q(DqUp-FLlMQJyzsgZmhuezj3^&GZxmD76s1j9T9?wcDJ}c# ziSP0NCprIjNZHnp5YG)bNJ|&Bgrb1khhqy4rew}&P>+M_&*%R4W;CdrQ(fka#uzZ9 zJ#2t-w~a=n9dzl5iJp>D-NV+)GaCNYZyw)a3#p|BU3yZ=bU(8s(xSgv51Kh5$1@sr z>`D85&-&@HF6h$JQD$;EmPB(R{e4*ywLJ7h9CWY8FO@>78=<19-p9fBp-=S~_6Sqj zl*r#YL6S1m@Rj_T0Z&?urkYR z2JH^_{G*Cus-2%X|UhOPkGDiA(LJv`^Pe zx@of+SDp?VX_H;&1uKtw6~mV{n{hA7q7>yf@vrUJ`z{IeAIk}=H#9>pI@D{JnfTRYu& z9iAPDFO4sWH!V5e%$~$5jwO1B*Cd~;Nj|?Y`AA~d&$=2bes{DedWzHYn43txLzH+T z`Jaj23o8>n=Q`c5BzFC-Ye6EpqB7BYUL?`Gs5mj>P**`B`Oqtr1`!w}-{kYIpLKsf zo;)}HST%(^m}rSzcu~uW`11IQ_(ccWcGo0Fj5+!(Pk*afX`;6xk^EsI`CMYxyIu3W z@I>hf;){={Qu_~WUAnW2^y-b$wU z`6(qdy|(wZG5bjI4{_uiVtZfTPhRDE1h`nh%tS0-FPx*j9;zf3#h&6UhTzO4)}u;y^E#1S%Hej z)A@bvu;Lk`P^m3wNFw=sZSsJLf98Q*Kf5~Lwkpi< zInle%pP1+?2-mJTV5ySmPRg^BUcYGnXg!s+y&s)k+jntYqVM9S+P=V#Y^TMt9zA+82^~fs&^*52vKr zbwl)?xy9}K>8ttA{_&%cz5?5li1iRyF-@9YcibOD?{1v9aLvJlZ8Wc5j{2Z}gH^hc+R{!zU!Ce8V#hFrjmnPh{65k-HiX8NiM|ER_v37^vX z=+1g1*w*u2Bzn`s54}9#`o;lRV~i^@{Lp*B=rg61-t#u_5czz?dT z_f!{0?`e#*#UWy-Wr;+0-bx~>l5->R=skzy$^C8dYmOZIeOtWeJ=E`gwtnMyF&BU6 z2vu*@^>YW9>U{_`jOs;sl|%3YJ6BMehaX7;gsI$!80C8MCTkz zE?jS`uzIE8U5(`Y_1(L3jOp;a4(;ZnMZ3{7T$8IWqNo!+Gavr{nR^rPD68v#{Jt}j zFbN5n3`_`HGK5_alR#KRG?UC^CXi&ZLQrcGk^oV%n1!WoD4@m|g}SyY;K4}8fmbTmd!GC}H}d4C zv*#T?@4!M-G$Z5kK`74!ZjbTuhUEu)Kg)RV7bpVmkrpT++v(wS%)%^kUU9_aJOaN! zB@Z6FvNTy%?%gvGbL1SfzowqGI)3@!(`?}##A4Xj3V2Lo`gAb0H@ogfvVh%yV8!4c z*aU+IA9C+Few?t^OKgV)OQ}DZGHuw`69=Xf+yK*JmxY(dBPG$7e}TO?4!cK6I!R)8 zTd*YQDYEmhk5=3?O9Fp{Fu>Qvfp3u1H^qUe0|)gjao`nHOox59Tfj)VUnxYFpn$#G zf+fkxGSapj?4f|joV=I&p5OLYT6YVI=K-#AI-!30<8_kOBfndy3shZ87Q+J<0zfzOFtTT zOC<&!3gd%ANz2#-Nb5dGfC=ej6XQny^>0$3Sg45%1t zm%NA4NoVSZMnF=D?Av_=o{=-q0GTb! zyG^|fi{8WO+1eNwT~oXNBLk8;VEV~NS#S&@FjF+!NId<`lUhdF!40VZ~g~FG;qn1MnS)WQ8lu$61ot@>7YQ4 z+^SPBGDnxg;E+$2d$eu)skf&jWWh7?IZ9xxehrnTJuLh0(V-i;auFG- z0L#G;CLd6kRy-s%f!R0mCzuN5mIE6GL!ObjlxOBS8(5E4+f=OBpnl|cGM>F*h|!Kb zrtrvxhyKR75HNMMG$tcAD7xYFRa(x-r3~8vZ3QL@RFERNT(Jd8ff&sK*FwU`XDE<7 zLge~1@)MX^Y7b2oN=;^JO-3d{5)*T8JhBZzDmTfJ?gLY!k0GBBAN`e+a==8q2E;>t z=s41gqV$GD`PiMqTN8Sc00q81hf%G=4rC9sr7-t z!^kUv63w}UO2+dHmNarNa+>ws6d69ho+jz$;?2MqXtN30V4_~liNmPuL!L#`pq^}@ zedaxnG2*5FSlg)hCOlX zS&@pN<$;W!hBHD#8z+|Ls44p%GkXdkq}UeU}_=?)24-n!i#Bs3T0l45m z6;nK&B1+}0n%h`mIqjm`M(#&xqxJBQLWA$YFqdSFyaz~N-m{UL%Z+D3XrizAH2|T( zV-Uj5qUt}nW#u{kO2L`yG*MqS=JAkE|ylz@oN{=l6`pp1j?4k`OISxBK@J>P@&)7v{ zVOt~4i%QMNl*sW}9*9!y&QLK1PY3$1jjYHX_*>-Xh=uiXzPAS&G1AZ3QcU_aD*Yyn zG%;`okw#?vj9se%BOZS-dC+u#dE^82!F;sWBj>@V+q(;`bx^KcqthMyOxHoY=aPh2 z6&zU*ldJbD@Zp}w;OoJ`XLf#;k#WV1q>-}R(9}a%VaeEa8DLzO2U>xeIRZ78mo6JP zz2ILVqsB)vi;;|f^>2(|O5R8sPZ%mg!-SGBoD}|m5>vLU zKU1$WWAeL;RH0@~t!NHib0vjQNE-u#Z*ZXl63xg0nY1DJkPK`v&^kW!Cq0?$=-sjL z0_#VgNh0OWHI-u<_n(QS{AFmvfBrt{bGUyp{NGppaRvX2vam+Szj$U zu=6w5mXw&iTc3j#%`Qrq>ri9}v{nX*`yb{K;R|RAtNx79BswHYGBokyB@MG1Bk?z& z=#Go1&c6pAss(RHR}7sDD&+IW6~nXsg)CG3Ga>aX56kg9KKv2Tk-?`T^Zu=;*pcOL zWbE1maK&&DDP1}E@lhY8vvTNSclpj|-IcUbM5EC1p$w_Y@;3(FL7*JlQRW0};ILc* zM!#!W1pa#t!`5RVPw*M%jBj*83?T}KIKw+j#T8`;0vWc@kGRQ?DWA}d<=Nmr4I4%g0L0-4b z*nLdm3M7t;1#kx_w|2iHanDdIwR0sG65tLo?p29|P^rCzGCoyyY`e%Aj<= zE>9!hC%{nBekftKe`^0k?t9R7$ECnp#~&!A^M`zNX&bBU%ZH}%Y{xQT+5R$pYK!{81~yYa0$6U;flZ3y?A)Q|28GAZ4}1%b)7c()}`mJ3m1B2uc@u4yv;j z7+VzlR<>uB^s3xNa&`P+YkHY}@TtV~a({eIlNw&3-NDG>%$S|5XnTK4n@>};HTvhF zxcZSs8tI-KIerA=X&WCae_k&$$8(l*Jh8?M<%!2bd|bgphSsC`1O00tG#4N-u$Wrw zCK|>fiYPu8nQ?%2*d~VkO?C^j#1xfgJsz856)bAW!V_+ znxqb@yzTsO8EBeGeYDUtBldqV5s{(UGMpc>j=xsNjlWi4a$c`=9T>-~X>VGsbF7xr zTO^#jl$~!7OAFpI{(L%Sa@oENO`}whUC*$}@R~9#>s$X1at^5V5&jJ5Yc#?wj!RO$ zIixIjnU)4uH)h-*H=}@n{+Jr5A*ETqIUN!u^D&kfU4G_9WP&g&M3NT#KgghRLgVx= z<*$au*=9P@FpYSw-wiFPgFyM`_+~jr<0MV{98Q%<8kJu$I!g`Pa{~VE{{erZIU#?# zW2j_IjY~rsC3<898h9@MtRI&)KKL|uWI8aid@A#jadE6g9jb5uP4zz(&qTfdJL0(m zMa*nS`;$lRBYyVbd@;t&z8$EiSimYc@N=3Q@KZ7P^3lnhE^KF_O`ITC+ID`L+P^R` z_~eG=sRQqYb{*&+6C6x;A;!;>Fe^Sz%|qno$gpb%R*PJhp^3yk3G<|L(ZrvqNB~tL zRX-C!4;R$X;etTMj}FuJ zb0EzUpZ5)pz8upZ?Mra*Kn2=m=!X8Qe_ANx!QutM!3x@Wmd6^gD~!g*T22VSWtMD~ z;P6Ao;|f#rQ<~j9W2%!6xDGpx815wDE^*~Mn;ktyHR9k3u4jE({@CW!o|J0$f#k!k zBaUN=7tUFXDRkyLnvI?>rNgH!k_wG{!%9oKX!vM)X~#;23wueb2hw`a93TF(>NL(^K*YV{Kjl5@L~ zgJbxv^%h&`_(Y@STm4!G{igUOmiQWOeJdFNasJcW12-OyDuf?yHk=zSAFco{4Xzk& z6&%r4!@UPL0qz*wMiivEc=zD_E*jNk1jqY09MKBYp)g!Myw!OB26eL;{v&w*6uZUS z;6H$O)fi0F;jhNK2JUM3oAJI8ZV&wX@uov3H^YA~-uJ=ngZ}{DPr~hopMG)WCAe?H ze+2J8z}*Euoza<%MEwB%e7y6Z`~&32`$f1z@E^u|2O5G`;ivcbEbxHek9Qh9moTJ58laBKnuSI?;GK0w!R;4V=8PyaJ;kNisAR;T>=+`zZ!4< zbjTn$-gDua;m^nW1-Lf&5957n9^}ElAMg8Tz;5s#z}q_$ryk(<{{a4GyzhsjF~tGAKZJXlXz-pe2lj#Ak9P&!FX5-} z5ck6!hJOd%Pr$tj{{g%|gL?~pDioP;@51lL`zE*#;NOq;n{Xe(e+2L3d5{CY2k*6T z|A4<4Z@RPaDg3kg{Bviu%@YB-AK~vCSl_q3ufM(1-_hsq>hAYh`y`^z;w(wu7#xr@ObGuk8gIg5}Ysvf5BhL#V2BofQ_XtqjzQhGn8|nP@0jQc+hT z>f{TdN*SUTLUrrv2uCl3$Sdj=6>^M4g-p7rkZBebiZY47ix7Ab0xyf`(nz4HDpUbx zT}s#XHhvXt=HB*}w(b7zp7t&~lkS23o`HTH$X5O{ABAu%FZkkOyNpbUl8F|5J?*WUztWr1YbgnoF1K*+@a*vH@d%H{zr(-Bf2n`3dxu-Z z!{WmnZx5h2;DlH^{CoYEG7Nl(*5pO}K?4cI-K5ia&6nb8Jke4dhCv^qwb4Nq(OT(b zDf{35Tf0}^ME(EMS5~Po%8#t_wX*-MuVhf8tRMZA4CiNnxcbln(+4JIESQW&+eya( z|F?eBzc$Vi~3KL!eW={$!0{$3>bIv$Q0TW2T+zFQ`f+dTI!@SvxHGu@2 zluy=8avS(NW{iueA2n{nP>Vl*p+4fle)SO#{yr>!#KZNtb2|u~MD3z4c`OsI=Q9O? zenOx+)>F7%&ZMmXra&L(deiGClGil}dNJ3L%mPh9!S}s%ipBZ4CRwsrxc-t^t4S#M zPw#pJQ`~&j5luQ;%~t-+DB(J6Oo})uQS>`xV;A5L9r8{i53bH5qd5-$tj>mku2$iC z$;jRgWRm+5{7t_~69cdZ{&5+_WV7Vso*yFQAxkCWgSTX93`hu}Sp|ZMAXf-}LL4k&mE#VA zC)=(*LRN38t}Tzk;Om+yqHDhdQ$?e<3Y9WOHsC|(-*0? zP4Xub$JzLsPN!*QnP$FR95YTsbbso7o^j zq(yR8Uk84u3d6b7pE6)fR$ohJ&*t_%k@{d7>Ere_68S?MNCi2vG4b>&rIl~IzeI?zxDGKWPwIL(Mk`!gIlJfe>0GhmDsJ5vpS```vym(QewxgB0pl}iF zX!5K!CSaLPN@lAi@RY`s;Ktf;iOw4fHK2_;Z!F*dQOhRU$^_7W&Ke7KV@Vjzb%G{< zHtKA#PzQ)w<%$IiXaJ*9ZLwzKQJp%@$%MpNps}RcfdQ2=3)GS@3zRgHCC&~Es8m^? ztbMYn=4Ru&xX5iuIx1|mq28La(trxS2&F~#iZ<|KJhp65f zQ6VzyfJ))91FA%(9S{{>JD^&Ow*zX#1UsNs`0Ri>k!1(ei-~qXgUGf6)`&@Vz*;fc z4rmlp?0|J*svU5qm}UnQh#WhhP~_SHi-g|}SS+U70YxIu4p<^)*a1t$Ogmtim}Lhn z$HJp6U-HEqJD@gH-%wj6=GvhlWMp+n%(FvF(ALzU(uKrHc0_%kM9jB?B;5i#u(G_W zp-!A^2V!9?fR(6)c4$SYtiGg{8n=3JiXByp!Ig>2x8qnv41gn|z>Yva(NGs5M4=r~ z7pg2TjaEdf#3DNaJxpDFZL~TP5{vB^G_z|$qR0*`jaF6$#1cEOI)s5_P%O1W>sY~M zb|4I1R}n2;EtcEiWd-8YI7p#b5eHd>d!@E~E?X>C#zBh2>2Z)H;*2=RQc)ZSStbH; zkmaHz4ua;dG#*qSg7Kh25we3Y%C4%fE3FNMszjL`1!%OQg6$EuV|eT)B6eVTRb8mI zUXZV}%n(|;s)F&V+8!GC{t1H%thC~$Cy)_B& z>IziJwF%%*73PqlF#%p6)+N9S#hD4PMdGXk*kW;Z0<1`UB>}cXoRa`sDw+~t%kXpc zwo(t%EEg>auzayT0j6qZs~y3uM63;Ivtt9*)fJev)t95OXt$%PqibQV4R#>ZQH|S1 zJEE*$k=PUuS}Z!^K}F)+c+e7YUOZ^2*c=a9COYFm%SBfls4!o2$Abz)PdunloF5Nb zBzogPi$$Lu6lx5WHlR-R+rg1gMYR~P!zx2n4PuKOR)-o{S}(T7K{3G-+w8DFI8a_C zw%dUXRl%tEsvQP(#07DnX!SaAp&eFD%O~O@JFpD%5pl5{R!Pab#12~%t!SvE24=@- zaIXB9+A%03vg_EL0GEX)P`5ZgUtDg-qTvkHR&h}bR1}CSPJk^GSDpa7NDQ6;yI5Rx z0&I~OIstZxxcUUxrDFI5*k$6H6JVE%Ywg&IKvlRv>`4R`ioJ=zMdE9Tz{TRaL|~D) zJ`uP?+>i)dDsD^!E)zE;0+)-M?Z7|e*p1j9Y%1fa9TnL_U~+)Wh14cqjp9j%!2W;RGZNu^&l* z#zy3iCg1|%X9=(p@mK<^R6L#l3yLQaU?FiJ0ahlSOn^0_5FJc_$`10WM0lvS6k`qX zbOHw3%yr_K1aKG&v@|q%HUWdJ=};||3i0yz%bBad7Q zaB^7r@@S|)FeqLb4S~8)kLg&wcy%!P5-UsiwzVC|>)%zO#(Lox z4O3kkT7xgFjuMBK)^YM^6bvn};{(*AV0eI(9EYh41ad^Pa?cFgdIJsKV&ANN}|!#m4VvTb;28mEa6U}3QZx89mjtu8bi(ramZkK z9pz2k+VXlN+82jiT@oy>z+kmL8V*;4MAny}S?t6wK|*MD94fSmhV7H$pmi0YP_>vG z2gQ7^He-{6oj0(`{OX&c2182 zVmW}}c@mB}y1Cw2hh2J+NvphR_Zv=H&*m+;)$QAP+co`U&r#qqzJqNw&$xWgCs+Z_ z>T7N3V(hp=FD(fJvb|G`Ta@{A1YB92-ECsrV!5Z5HPD3}P=t%*Mw;*vr*TW1KO|DB z^{cvZ^s1xvJZzI?G_$ZVNiN#v%Q)Y7HxFM9XQJr3I&^cZo47MJccJ7IW|bWos;sWZ zmMu3kaVXjoHAX{F)o!R%i|}!g${NrcIY*1Nw!GHdx{ixf8EDjd*gApLIPcV3(Y~d9 zv&h))oQ$M#`s=%KwhW2)%=3)Hek#Mta7wDZmw+e5fZ_H&I-&O3#Sg%JVYn3n(z);6w z0j`aNFxhZQ2ufI>vAj;ROlFngM3hD`&cQk;=7%wztK)GNjcP{6L9yC+j8(t7(UDrs z`Y%PJ*g@Ndczk`dp)^vBv{U}9`7*3B?bbN#k5kZ=^PSPT2WqI62-7WrB9^D=-7lPD@PwK zJZ6~cnJ{AEl290nV2&6-8$mcFj0b+!JQtbF%mUZhZAgsG)WXZunDNr4dp#wwo_>9~ z4%;)rZ^fzez!GIhR5h#uc4!q)5yd4;j(Uy3Cbz0P7{JGt7=Q~i8FUKC?Zu~=aOTgq z1)Zn&5$^khkFEuHALW2cc!|#YGbgpy8FavVg7-XG!y23MSs4b0FP!6$K7)V4Uwd3OvVwjI6en{+0sa{Y4se>>lAI+1}@! zX%L-p1$4^x9`;N*N$dWyRgYJs9zMF)?tRs&!>_G6yk^zmb*m0<*mZbQ>cA=$3h!?? zI6-(x4exKA*ON;0i5|cAi02MdrFX0<{n4t@yGkWGvE}`fR4J>sy$46Eh4($HR_|N2 z`ao%QUi)?$$aqJ1m;=+0Z110)b09inA3Ep7-oJV>=WEma-Kxhwta|)Y>XFsoz72x^ zl}d5a=yVuP)_XtUR4&NEX{3$)n}qjM4(E%hbU1T5D5ud`#a!VfiQdngKO*Vbu!!G# z+;ao)9xhadA;o*RR5@hG<>9Px%8)xpD&R8se3~amX^>>F$m|@g0)B0t3d2;9Npien z4Cl#^lS@CtvcT&%JbyN&=Gmmqut}Y1mpaRk>Beq3C1keYyq%ctg`k<<`G)7R1v)7w z+n6r2F+D{w_0*7N`7)H|;T$fIAy3XW;VqO&n2>|ou}G(HTQ3G%-o+|)Ioml{B!hmD zNve347|u^fuSytws&|FqnRl|*Yo+8bq=`?LA!Xt-WXLV`Dwd%%&-0YjfWZaIBeg7% zq0F4t%^2qP32&(ccs*QUgEBOp5)rZ_qD&=1WRhmyu;IKG2FrZ|g=B%Z!tngnRI|#a zX4Ix;wN1?$r6$R$mHa(qusSVQ9<9d@xe0H*q|MIh!D;)BzV=4pZ7{~tm-nV>&^qB= zBSHS0&TfqJL9;A*x>-t8=5CQ8 zmo)HtV}dge?P^ZTwhoxERT?c#ny^iV(mmYhwad^r54U<7WGI6Vw0buhX@`*M9uM8> z@oqABlHwJaq>Z=3aQ>H6`#SWT;O#<5I7O@0V^i&Xn`*sUwe>i`D7<|()%tC!4cJuM zqEyR~#dNFEO%>B^G6>~JAMbX<`E^(-_b(`59`D75=T1|(9X91IwJCR*R&EnDfjhNs zbh_8OOY6qva7gRMM!Z_-CNfE&cNn<_dAam6OCImn49~25ZJO(C(r>Uyzfnn-)#4^C zoh$FnHtAotN&ki^odkMsF`N&O^j|~kG)y2p=b6&)v`N3qCjD+%^4ubmB6`1PII(Xi zaz&G#^rt+mmg~jZsw_*_W@%nO-s{6CNc8<#BgpSuKUqEP4GTqc+N(9 zEX(uHY+N6+aeZ8KmF4*fZ5qys1KKp46;Eo@aCttcOe4$lQ?~N_v{{}>8}BoQ^F>mv zixd33;rWfJ+6y+-UbLz9D_f==)|zpqy`(i`Jzv(Ev7WCe%|s>%^uB61J0LIjA=I}t z?-9e}FVu#4$0q%cHtFx0nMM)4e=?l!6PK64((nDV;kno3@}Z5(M>Z~h(dO-^*>z7# zoA7=t8K>oJ;K{Y{9+Lp>J^m`2G44J7CjHqS`hJP`@2brcnWTdEALtsPLGI(IlXJbF z8J-!7bgKSs)8`ADKL64B^tE^Ob@vMIf0Z^KIsooHZj5Cu9!-#?IH-^ z5doHINUGOxI3FVw=whYEo9yu1XR6?KSjPk@GNfA2R2g!6HW8Dt4(_5<1DYm7ssT-x zA=QA6lc5ZeNdmnY4rejs<&Ht_P%Pvc^3fQdHg*;+b%BE~z(k?EX4?YFdkIWlCj z!#fcmw*M3d_bl1e8BLY`sX1-vrKZV%Kc@|t92uA?b0$}Y=E@x!ySr&)-co=h@Ue$)@Ift!7*OruP08;awnwcyii;9erp)PnO{c)PpXRepdPv z>7VMkhK!W&;Eu)bp%dla0vXB^nWT-k(BW){GP$de$8){Q9G;!{#U>R!|A-rcOok-VW>GzX?1JXZJWReQr5{FYjgWS)M zPuboIhvyAbpDLR^QKb*^5clW2)eat2x~2VVB+?@?iI2C|;oL(^ry|Aq-bRP#)FnER zXWE#arI^ZY{%i*iMBTDle8n-AqNT}dagMAOb7i$y1q4@%B#}u%yiE@0pGe~OkO6LQ zo5ORNDRF~M;zlJ=WD==&lf$_dl)2q#GX368hvySBUbih?kJglj*yqcTJBJrSy}eTL zv>Y|N>T~e*0F)cdwlKBnm*H%YNpidc4(GKHli5$U+U}T^xfIt~D3F^1w8wjy!xIHa zmWo|AHFhgCayt7q3h(8P@kHpx@md$&nH1f7g~OSJfFD2OAeMQrb!2Qb&reS&QZ5^l! zH##QMbcI79n&{l*m`3xHJUQ#Q*^y22hP=*h`ek6@{kmf^4f&_@5cwO9$u!Q++q$Wp zhUm9ACee5{?_Aj(?sH_(urTjjIi&igBa4P&dFS#V=2nM~#y&s}^!F3v+Z@?69LYOZ zUd9yO{f=xJAyD*wT;PP_-*QZ%-afBY^1t0Njk@W)R?XrLM=o`ad99kow;j3EU*)yN zI*{);rc>vW*Q(p_?>cg+an5Vek?wR%rnWdw6WrzSQ8CRse}K$&w_`jN$vnCdgwcp& zJQcJ&+{)gHDd+bc6B>|ZdHuR~`hjCIwXAuas=5pB4;@pe5zA{cA@?|@QrnT&*4y19 zygzb`raubG^kt^H#`dT)&mvnC{ z?cUtoYgtepzk1xor=o<>Vsj;Sb8w8XB-)6RKNVP-vaI%g358tl`I6YY6xvk6$NSad zd!h(MWLb4SAvd`}hqXP|=wxzb-n$BRnJ^{iDkN<@`7w~gynd$t763BHzu$L>`@t31 z+vsQ$zMT`_#MK(%yO)SAA5YhO+*z&a#uDEL_6;(0uJ0KlxjO4VX9y9=>f1EXk80E< zeAn{*v1;7$qT9z{xrYJuSv@VhLE_uX;YJ^I&%UpXquYjOXKn57J+DdL`4+w#(&!3Q zvlZBc8NBe_%)S1mEWSkE#Fxl@w|M>p4SKTFWp3ZCna*N-{D7~$`EKKDZ#%Li=O%fZ z+;{tg6p&n*wW*`6jo5xSZx+IP_;Q@@E^g0mmOtIO#~1J%Sqa+&aY4GZU*2=-6TZ^4 z*O7XW6~%3M2^7BI*v~=f&Z_4d>E-zBfbfOV#^QGcJPH9)tOOVGeC6Z(;F+IQDlhMs^>%ma2&=}P0o1arvdsg1n-pI7 zRx_L8tkTWheeIgGf`O4N`n^jHt7KSpmi)a-4Xt8mV^&#jyNVrY>1spA=!>S&HOpog zC-#vA;j3obY?4}UXc^et&v(SiyEb$SU(MJyXxNig-P^sTqpiI!y0uH+hm&>_zBODV zwq-?H`cx9?)VCUZYZ-N6RN1`0EXH3g?*je}D?6f^TyATI84}tGl;jV@FrZ=B6&BTKLw>1vFXz zTe+rZXSEHWm=AOcUmM>&T$a^E%YDA~>BPGj!ncrc66o9DB){{0{K=q?y&Upw;`%9t zZq8)uWFg~Qg|CN0?yL^nP87c0N#`Px2RN!}=t!w#3f}-n-;XwkzuO@*u&=hgvwI6Q zE?YPg?#hxMp@_$BW$X`ZSbT1x3(9Zfq}-d;(S?s!$ao5~oiPvCBB3~Zb@EZPGY?rK z0D1vK55NXX(BCAvDdAp9xbH&er|>7a8*w8s$-RNG)W7h(-Rj675D>a z2g2xlPeisRP*IM(EvYWHyw}w=$!1P9p%bTiW+O8)@=-kIX6Jb5sx{rb#>_d}FE9FH zH64NJs=87)n4QO0u02@rN5`zM$!E{VS_r#k(>39Cd2>E{=6Jd(@5ek1{Ih2{XMlai z6o5QNp63|^d{>|(7&Eh|<-*|x`4JV%t#V`5I3lA_cNi?Z6xW#TycRI$^Y}BXb)dHw z`|?dKblX-KbF=@7N|NH-4|eoS>um`xk^C#O;CnBr7OE4B%r z2olDRHHC}~*>scoF)cfVhmk2}yv;NzHXcaMzLSOSaLQi-!>~y4nI`#Mtog`$^xQwjt57|lBc;knKQ<%rhazH;>e@T2 zyZaRNm`e>-^>w1ADj~J0YgfiZgN~lGU#aa5O6sICP}7GCG<7GLUn)K3bV)OhXqY3L zRplXs%kLN|;u%Ixtx0$iWl$+L&{=XuWy{~3^C?$nhCy#6;}4bi zH2OG2Tu`vA9y&MFy`fM{naWk9l;XwmgJvOU?6`WleqrQNFL54`&^JKjhd?-a_zY5e z*A_+hsgc_U^fg4sWtSz<;Jj{Nz5EuIq?~#?=kJ3=7)$=zmOi3YB!~Qj`He|3pYlQF zKv2@SXBxBVOB)MfS!At_x6GuP$ZDdhcD1(jwYPTmC|&zxJqt#Zt}^rZ3nw~8>n2st zTgk0wH>gb7Dl_TNEL;~nr3NQXPM)lp{yM9hxe9u4JFGJkeYs*<?W8eV}bcmYs+>5v~oc+#09 z_Zp~Ccoe89VC;iiv|rIsg<5RXra0+i#_}n;T;blrKn6JH-;LVEMh#vyi;Z=7H7<5+ z_2a!xh$Y;JwQO!3*sLcjb@WL%<5+UCF#@SeX_*M21vDQO%ZR*Aetc$4%jSW042aa1 zaE!N;$B?Cs+)Bjiq*!k!FQq;~ET>pim{4;6q3K^s&ZO~@aVlZUI(qx;=;tNcKUXGd zt9&6#ZU+Aq%>Vi1CCs7rG?KYNQ98uEX<++Ga+*vX3$4MjrOM|Ukg_L1zp_IZHzmu( zFfI?gc*4|*a!+zHea(^{Dvk6Q`#P)8iqW5E6v`0AB=2jIq z8sIn!J7J`aa77;~2BTzQ@!Jab(t4Ce`kW>`6wp~l3q7o>oY*Rjhmf}0AZRI;2ZS+{ zd@?Wf1<1m((XuA*^5kUth$lTW6HDLpYUn_JG|C|kr-IX0k-i|nMhOK=Yv85*`g}M}pC)$+ z52deHrSB}@8{ihvCsOG-LHbPnY^m!;>Y5-;rmj1AK`eE>*3?zg+Nw2q=c2t*$*YyJ zk$qpO!6&uBO&I4UPomc5$58H0N(5oL6+Kd)0+P+iNrl${O!K}KaA#bKfKfuY(p%tt z1+ZViaf#M(9io`*wLUp_21q!QGf<6F;1<#MW9b>i2xS*3+)~6sqvYsA4H#B1>gTDU z>U#sPn$&*b_Rq{;=srG~m~q*NrQT+|W*F~oFqFn?mgRjZr@uLQ8KqyAll97y+}2i=VxUjeoU@WM=`&V)W|2rC&XF%zbT5p1I{mppp$w5v#`{Wg+8K`lY?M&2^cV29 zzy@c*mA;O^kKp+}92-x^b>f?Ch!RcCZ3YP&?<3H>4_EZzEGcso0JjD;|@qulsipJ99iL~PD*jpTaOcBwT=t2<4 znuAJWJD1Aw^X1@=yz{C8#o-DlO%JU^j9n`;IA4UXRA8E8ohHFl1fh<*7)3V4IT3kC50y=KwFuv) zBGBSTGe@Z52#r*d*O4d@{i&j%)t2Z16`*C6@KvxAJtXe?|5tIPBKkcQfn(pV0yMHZ ztYU8g*T)r{%Js(*p5mOT6c^#&SfY)A(Wq7;TG4x!Xn>_S={&l8s%M>xrcagdF{V$W zjl87Pf@@&wK1G62CFS`kNvSV=1wF;jfI2-(h?C$7??E7MBIYu11vEo>Kt*!!SJVw} zQqptKs_?f!jmbuK!JSTndHzXz7D=afjK3xO3NtYh4gkLr4jEB$Z*d9Tgx8O<$!)&KwxR4FU zY#ZUJl_bs;o`JHqHS?gsVKA6+CgLqb;7-K3gW|40pi?P?+Q!cqqB;$T z--F_JaM1y)%0+D|WJ-ELMMQeXAewNYQ9^c>rXes6KMdf2tC@sAH85j=shf_k_a zMAun}4%msVGl{-uA^MY@=q8isNefZx*)|j0ViLV!Av(oQbh}CPFAGt@;? zJ!J9icA|SF2Bl!8h3Hm0(E}#Y3JcLwcA`g3qFM{l2X>-^ny9G5LS!j$&uId*f!|i8 z$*cplCbH&5G+Y85&0eYlBM5vt1p_*`+J7PN9mSk_8hQqZ>JuRHr=rJ)i~dkia05}a zPlZfL=-t&5zCg8zv_$q3@F8VoFSG@IIdGb)8W(fGeMCo>t?G5DGK>K~bT$qqCFP!@ zTGh4CrVfrgy8e+;W(h8|aOnv0xw6Se|8JC>Valg8j9|zRGb6 zL|Ljz|Hl%89*$(vpu(qGRN5wp22_C7|DtEA04HLf3UDHRqXJ~@k|wr6igUh7ya@l^ zQnEHmv^Ei~?n@K>T@mq!=l5!4LkzFe46o6&VO(0{hr0IfD~8myKcV2Xo_SEh$xyFa z3d0{XH&uub>qCX6vL>39_B1NvC)$Zo9X(`_@D3Fq$+MbeZbNc(Si%1Z9^u<9M5|&% z;d>OEQq>{hDb8E9pztw;rahd?B-)uO{37~-8Whn^O!z|;ASU-{ChIhl=%)(JW5P5w zX5mcAwhUn2PlyqXoj$cy6Tm|P+0)CL-{vjgz=thGHq(D#I}<#-go(EBC>WR7SYca#)vDE z<`9TTqX|j!S49%+1O}b=3|!|TQj;do zm%Z`SV`8t)MX8fYv^RqtWax6(l|fVnV^gJ;{>D zuV_m#EQ!$U4--0J9B@r0>T{+EaVDH7`$Vx`3o_YSi*S-+L2cWBgsU|oYQ4r=u-9p< zZ25rAv0(4hSlPDai?TTi`;0}}QU#;!^tTvJO=vWvz_b$|tx^HnSBb7w0ouzi>rsJ; zFo@DWdZB_%1Hqy}OH>eGMFKseUXW7x$?Ga~j83gT+~nf*2l|aCdJushW8azWFgty( z-?+&&lg^912qQiY7vlB$n_SDOB!4XjtpuE$D&OQPrGl^~7uv${jN}=`*$~>NLT>c1-zYHQ{|E3TZy(2O1sr#R{7M)_IonkhX*Tc&Bv zMs|@`p{Z#G8)I?IK9&V1+MiJ7*(S}iKToptB6ai_``+1rg#-E9H^w%XpOWqO<8$_K z(iYoX^9h(c9f$Yeq}8^$LS(gn0`NyTIqUwai_d>O1{n{-(KP)67f;ijNclej$}e(2 z<^{5aISAm-;Mlqk0!xn}v`>Zsxzv>!eMzCYJ1a#bdT7Mb0`;j3(E<*SRiaUag{fZbp#Oee&XO>e-KF}FTy?E+Mrv{OJqKuvw zRc2g`L&T`EqlTSn@kA;)@aF%Nk0ckC4ADlG#SER{LnS~`aI5PP;(&Wtu*1}1X zH@Wz%+_c%4WWuq@UspP~g!YZm+O)vr^vxG~czn{N?9WEstpa3;k2j8H4b!Ma`z*9< zHPfJ`p{fQtEw<9D%t2XT>37}e`KElqP*Xd!MS`-pu1A9E;bcn7REe7-#D8>3ixd-w z&_2aY7!jnj#+uUeRe)3a0~H{d?;(RY1&xM`%{8{#3}C&cLIp(8)0T)FsoA7MHLo`V zh!oM0s4Ho2>1x91P1TV!$%9t2T~yVz_W5eIdd)!c)`gcG)ESpYXR5^7eObFPG_!!PML?>C2*1c?tYx8G3H6@ z?geNFu7uQy@Bvt3flIEr0sLFI=skqP!|nfr($9gSCoBON2Xz-ulABiSlH7DqlXpSU zb(hNXbh32dkZ8L)^I+u4T4bC_+jWeN9ZWHP=H#A$ekqWi!!G$Y_C3)_YowBoT($d| zGnZ;(;YnC7f}`s5xRYC~+Y!8mK{)ZEe=*N^!pWFfdF3r-%hTye4x7r~Y60AU}d*1EA1ai7O_K)s1<6#{g5cDQjr3Fp}2oo*UrZub7VS=fAgrdiI5*bSy;++a%n7$-Q zfqAPlO}e#znCd@i0Ez= znWr>;7-`T$2bN}bD%;R7lb`VO3QY}cxkd}sQGqMZBz~)iNc3h&Bn@bqKm3J-HNBnG~4XND*1quJ2t;ENS;cIvCrLw-`rILj0c=EsSm?& zPFHcW@#ku(8~-24Ds0qK{l-u7sqI{S9^!guHlJo#57rIXIl$FkVO;NAPE|!zP@GbE zK%UhU#ti2K5=*~LO3z$nXk*`!UNntxL^7Wa$-ICH^mDj;T3Io0MwlpaPeHEr>33(@JT|nwbMsijJZy43OHkYEdB#<{x8V@^Cay`0GGq% z(|us$Bqtw`-3mY-Tx6h)4#OMsoxJ;TA3#4OTKZ8UV}X-@mFOq{@55Em6yoOdNuB6A{ha|%t~J_2F{ zuFQ{BYkFP;0oAli@VCZs5jO=Fqo^!U_;v&&9wqilEVk1Vl`qlN1MVBU(e7=L>}M5X z85u5mgQBEkthrGn`qmE?ZCMAhut z0lB3vjQtL-)zzwTy2`B8`CD|Y-tU-0wYmyrEdnQN_3aL>)%yYX1_7@?K{4)daIO9u z03X8Xy7z5)fwyE4#{F=z?tRC>b?;&TzDhu@(cg9OxZ!62JU~FM(RVtyM$f_YY!V!r z1o~-Ny4u%tUVD2_U&{s@cDqXwy#j*A;L2}B{if%3`4SWQb@lnP!$#c#4T? zXsi}?BuRNxsD7&=174P{;2$d(US(Md<^%x=0qpE~3Z}xM{D1=JbW~A_RrBd_PNsBB zSc0JfT=dt9R;FW6Wj>YKb}7PGB%;?SFqhifRDetET`F*0OrP+*3P#5GzJgywCR1>( z?{8R$4l5!wdS!o6@V`lz3vER*wUKhTL>2NAML{i6*?48s@dKtk%BCvVoER)T(~?1F zC^+eKx`I>k%jgIMJX4yxZjE{xtwp6Oh}p z?J}Kr0`M(3PG^?ljB|Wrkk0Ln+();nbbbPwzrqz=uV_X~XN$u93b9l=qn!#y2j*iG<&;FX`5p{rL=q*0OYtiZF4N6=KLA}E`yV2 zh}#??GTV&hunU|_{sx)+`vCYp9FJ|(7a;zF@W0{MBwLgU*g7VYY;fehxJ{X4_Nf># z!WFqrV3Oxl{C5zGQjMw+rrmCO=w`r}?K1oKy3r^!y8A@haXgd7*?(3-4Nn+&z>RQ$#~oHSIGV>umSe+Gd2;H06d9A#vvpR5q# zHaKahYH6r@PD4uo$A+qrUD?K!IDrkvhPq3sfWsDKsA@;7*nO}L_#$x^@3 z%Ff?Z{IOp(%TCy(=;><2DGXQ5kb8@^Q(1TK&WjFn4q`ksG*)HuW8JEll86fTsT)LLFN4z#8dAlmt)bW7l##=IuOB! z$K`cpF6Q!Fq%i(#Bv)qxkEa}(&|~cLUJR`_k@vsGd|K)1hO~`vAwCrLU*j~&jyC{! z5ib8!bX$gyMYp~L$IswoQVf}t)Kc(*)1$DhEqzV2$wD(FheIAa1NuU^@@7?Bmy;@Z zTo-}iL+}_=924pD8BWX=!UKwm()KaBdaBGk-d9ubWoS_|BiG747#^#L?^7p`z60*lcL=ff4|Bd`UYUbqs9Q@R$AdlC8p9FEfx*NIA8%m-ch zG2D)npPCX7<2^W*kR8JC3XUZ-!m|dBnO_9Y1#lv|NogymV=6#bOWpxXq|2FVWKzDT z92e1-6q?36>)ufT7bS(aa%x1BPBqa(vqtfi&K7*_LXC`j)m3)mn2~M}dMW4iF@wkP zOL@KXm=UCNi)dD{{Ck0281kTbojPiju&Jx!>62DySut@pPq936(f0v zkCeccxO}0=-FXR0*A)l?y_`1P?n3JK!waPMa6|36qMss z74(uA3Pfg>WS|QKdJGZ1LB*p{(#d8#5x(03FOzU*-(d{DeyR{>Dq_^M@Bsy*Ex@fN z6BaJYo>R!7ScIZC6pZrGo`>o>NSoDsSRONyjfx$xJXgwt#$3vdrM$Iv&^Ut@U*r{- zgGN1V4#})LXf#tb4RZB-+TbOUwZVswYU7Z>RVnE8 z4t8zZb;*%S<@Xrr$0Rd>K?*;{zAttlSGnliV=Shn^7JzF%y4q4{2rr(mdcv|SO+Ip z#qX6x={^9y52x0+?=_}V(fb0B&*7q{A|5@w#$9R&6s@)dC_Ts^QQy*r?-KC$In15n zyN!v|_Bw-?YE#~A6va$=x3MZ_%Dasbz=aht)r|2<0me)Tr?eZCX+;=FD%<`Lid=yY=7EL^CKOykvg0kwy0@uK;EzTm+{eHn+64 zcjEFsZXg*MbdKg3ARdDYFGOPLp;hQ#T&63v2%oCpbeiWK1xM`)(}7WX=$!3jh?Ln+ zts||TVaG?J39*h^2gg=F)@5+qR>h-sGx}o{ppq4)>qGQVph9s(4Om3yA?W!F;E+N~ zjA4BMhP2wIXx$MJzF*}e-Cx|J;51tOlY-M`>I0g0Hfc+Tz~q+dKNJnO{yrs?PH4Ru zV-y`ya8keM_bNbDTDCyg+W9*QNE5zv)zP;}l{(nFcY9M$H?EZSsXdf3H2hyNw{@%^ z-)T}i{}^qD~5kHuMrIMn;< zSH@J@&2c_s#+q-0ITkN5^8kiAnRrRFWfdxhO7x`47kZbH-KYcf5e8$nF_#$4f_0|D z#SZSzHdavGS`XkkaEoALesm5mMkzLpgL5plZxF>2n`fk70AaEP&NGU*wzrrOt)D20 zManVKQGobS`3;?8(kvfLip801q`ymoI8~F4lh{15IMz=u#Uf=H>60$kk+O{WaW++J z_pwho#bRbk)B2T~$?9$FyB7Rbuo9WZDa6mHt(2d+5=N#RC>k{c;p(4hM5xg<8s%mI z=OmvLqSZM}4`Kq-j0_qtdz2ujDex^*V488V6llqr*mtX9tlUO=2Fj~6mD`vXXR6re zuVPVLMtX@E#g!06UbdH+8HBilN(#i(>LTc7# z#;|?uD;DV(251{`+t}WJygP}F@d?;%perKp@?9yhkyO%8taQ=d+NOO#VMnNgHs=ng zEWO4wbkZOOqqHISE!2lw;G!QY8alWYHpWQGiX9lLf*YE_6z8Zr^dg*Tp}kYnHY;t= zO2szjMRbOurK3#Yr7A$J+1oneex)KeZ`@KI5{s%Vl&p$BfocaPG1Pc9D^jd3@nh_} z21zZv6sXJ!j8EVSsKIJibcR4o+yORHTZ!&Lpy;mi<#5q{MMLYI;&kGEp&9F5iiOti zT;g1Om4Z`K4n<}Gc1(d{icGu;0xE&}1k69uiu}`Ld4yO7jMNXcBK^pp&2Ukdo7l?F zLWt9edzymahBj3>G~MSC=isr1&$(6f-R?IaHXFj@B};$!ktB9t1>l!jQJ)?A;NgtI7yJ4OF%}~ zU8lem_9AdTJe?G1N8lcKz6V!ymf}PMEo8Brx6|~!5rqJ+b?DYpoMy2??`|nq;w&1B z_L$0OpGBFvVNzxZxF3bM_euUd1m@OYs~E0uDgy2Bw7?bZ{vRo0)(2KbA6dcqpd=`B zn__XYvd6s;e_k>WG{wcDtU{ZU1feH-Vk0#ghZX)_6&-EyFbV_Z=W7a;B=S*ZjejLo z0>k-qJ9NL55<@xoHax$f0OjrET6}s5j&ogON+>?(>A66yhhsBp{$or@v$YaW8+ET; z4K8HHL!f__Sdtn40?&sOATv&=!=?gU(dSB2m8U6AeUMsLZaPGcTs@&7=d0;dky0Wb zsWlB5E>>7-L#6>tb}D6F;%sh2BlAZ6i8A#=b7Pg5{qsgQ}vUI&P%Pz5ZDeyg|MI?!5-~ zqzk@5*s>UoulVkS=OPNw72lWOc>#{s5@#t61`f7BV_fkqB@VRSo>31NT+uE?Gs;?G zxJ=<_wtO~XQZ4Lz6_Hvj2nN0Z9lPl|_c4V*m%)#*FaKJIq+8rA5cd^0zTf?Ac)kJ0 zm%67lVA~FkmHwCFV2J&sG%j_2s+C>`nmV{ewW|D$qI4M@yQ3!!aw+fopzk~dqZzx> z7X{9Csk@t6qyvg>fn))bf0wim0`+~!y%UbF;lBsZyKsCBUq^C^J*iMwU&GH>0}I0~ z`tZw@#Y!96P5&GzE+%#A9!RB68*BiB^>F-ggKxoe8yrj3k({D>ETrm>8~g(Jr{NY= zD5j&BNNl8UMeI-nXP9Zdo21hBBBrm!!F4#!k6nrm{Yn}H;jYNaBy-@L-HP z%RPRq(>=wVX?VwYCSoc*Q;Z#ZIzVX1XN&UjSi{W1@7bL?cE#A`V=0)F0Rr+Q`@|e9 z$c=Fsr;jCwBr$+-&qa)>$j20-#Z*RdNRk}J`iwb~%EuFBS`v#$CkTbdQDQU38_scK z$Hw^K8!gUp2y*;oV2H)A7yxat3Mvi9j|cWNs5Su}H+g)D0TU2|EC9?j5n!SVGUL;c zZAltrlY)~tX-VjC*prS%88O}QF{c`aOyIQXNZ=_DkfS7;X~;EGsaX3b>SQaxbZfG) z9Af2wjjP3$B%Cpck~!0+isCZMO6SPN{bL1SO$ab&p>f6}HU~g+z=;w%*95|78aU4c zGG+OANqdqBW?BuNzff5D5*TOpOrS}NwM%Fr7Mfg`ITgs_?3+qhn^W)^L&`6y^TY>B zP*U@e4zpA^B&=YXQ82#Nc&H?)VPfOhbxCVE(+ZPB!FWZnXz(%v#r}qpNd-vd;;Syh z+JE-m5-3n4F$7*>SH;g$Ayn)30IYPp#{WgPfpk!Ps zaFN8CYiKkR5{i$DP%^376(c41`Bjz1fL*v0O<7zr)@XnoOBcti6SUeCs}45Jq>0O< znTSDHTZ{q`tAfhdET-1MW}!-3_9Jo?sZOz? zGO3hl)uz=buFQSh{T+)EA!%#LtM#d)RAWulE>-4XgH;^%HO3kw3S|k$Bdqi`9oL!Z zA>uRbM%U@NQ5NU3%-oBqO0mwCJTS1Zijhj4V+Bdcid)k{vvSOtM8&PyN=kfNtQ4l! z=!+F0S4AlXhcUR614NB{n~JF@Fom#2(S?44GMI|AaiKD_S${Wi4MfIu#8686a|wkJ zFPB14Y&LDfRd}qd!kr0FA-WbKrX@AqG2WEuo>&mA2z7VrX;%H>ZuK@qt@hI4bb4F@ z_i%30p_^ia+PmLIC?h5QO_WqKnxq<2(ru=s8tt`8s<|yuhK6WaT_%f0?bR|3QLVi? zX_U~$QN&k|Ccg21Aby7_ex3GenGUhHS^KT>*Nq~7-DvXHjVixSN!(^iZq!~aEk!u} z+D>tA!%2&C`g?Ht?GOdGX}{+05c#H}I#UQ1$51$vFg!5y=gIV&IBNe(YS>7z^=HUF zw7}vyqG3?j_3Dix8&Bj)P6kMSBuu|atoCarB(_yC>OY~_FVxu6@qZJmzul$ZBv$)P zCJ^gXj3%5=Y%FQbN`bBFjdW}8jV7pGd%vkbvi9oGohD(e_WsZW)obtlwzx435`FqJ zU0RXD<7kn;q;XD&yl%9}qqnTFRQP8~|3dXfnb+Pv z6I8Fg{R$)vqC>l5gxae=ZY2qI=#v|Bh=pSD3B!7p&!Nwwbz=k#O%j_Q$4d)RQ(AtDyG`6lY#DC>#p@6 zvj4-|o4{95o&W#$W-`}=B?J-{6*YyyZ;m28G9S&6~9^FMG<4n2MX)seXj~6o^w36ZuN>z&gq*SiB zHd`}RJ>~EvN@EoNL8(eH$KC!xiHe6%s=D9d>y*lm?j|Lj;+sis^rXXA0x3OLoE+k|$SA^3{i{9O$eyiGe31P!R#AIX2EOjSMZ*fk4=IgR z)IOHHx~FX(4vkfOm2F+27*q*&VN-tgVh~F{t?*1%xLPs7p*&7et7w9*=3ov+?l?uQ zj~MFSWgKtg6g#`xiJ|V*vd-fawK>F4_kIWr6?OE9q3#7^ah#%#Nio#DV1$lS)R8KN zx)+Swaf&~<@hgV9r=vL>8mFiuSPXS97|-JrbzF;~?ggWKoT83)G1R?apy0N0%1>!D`K(WcdbXf$m&9dkxgK7x%|KFpyusxeD! zJ)>#c=zufY-&|g8FQdh^Njp0ix|!uB&M@VQ53!=-^i-tBI*y;jLl;uwK?+G*K~EVHHi;LleEiC+yCF_^S`-sQc~D@ zUhn8;za)eI*CRxFW3_8FJq$22b#zC9E~6mn@=04K#rzdcvkv2qP(A5?%w-`@-;eX6 zq*9w+uR3s+)uQ!bh>#9;QE4cUl2>JwiH9Go5|1iKi3b&=#A6Cl;#7mG{X`uXvW^vs zLAA%}sWqtfxa4Y&ORn~~%xI}T1qpdkjl`@eY9>dP<~`l{F!$(`HI{IwBGI2Q zOAN&vvD%_%xfV4cCytzy)j-}Nmq+uW*u<=ml1jCL<}GKrxaXeauRPITs%jX2`iSEw z`?35qH?fU%+Y~K|$M-q=B|*N#cw_f}C|#N>l< zVr=P#b$Zq3Fl+Iso#N7%NZiRs7iuVWFUm0G=u>Pr(pkASWH3#a8_W2QJ`4BvLB4nc zslwH6Df=h4#cZn!A-#e~F#($;vgW*>i{X~^#H<*w>4~Mr?r+CR(tN&lTO8twE3j@d zAC#_m38gWL`p`sknLK8_?%hGdO2r2$B~2oxCpG6Uomp+-TOQ+RMaOcilOfP7#J$1yZfYKsC%7x z_jHV+K44J{+mBvSlIu{Bsty(FwGJOMvyUg; zIX+wC=SAhKlpz40Z2f8jexCoKmIY)p2=s?=~8aQM{8ZIYnX z-^S`!C|1*Zm7-QyMw9Mo?Qr$1cop+jC~7?AM%sY)@nRzE*D@#9KY8?8z> zRINCk-p49xJxpZP>veB+V5q27fjdR5hve10jX_?;dnr{b#?~tJaQ)HMV*oQ(C=PLw z7n(CYX<=l$nb*vpIxp%CLtHV7j?23`%nKyNBUo0`lJ&Zy0pP@~O*WfZ$0#;CsZYq$ zKP6b3?&&iv*QU3c=gjEM(!|jzYXyCR>o|I^RMdhIL*jv#a{*HKEk9t*<3pGLSqzGgrbiVgHorKlmu!K8Z{1r9{T z8<@93F$gH>1{MCw(AifqUy3yn;^yGWc7~b}4XJoMeN>#}urQDmhdT)adC7X+35u`K z%3Z*$V-#07>AxCWrV3h&KCu>GH(lg>Y6F_vD6##N%=*;Xk?grKiglDK6&E;3hLY~J z1%`@O#Tn|}p8`Y07bvA#qJ{ArS7)Fhm?|mHVdhGWMg9F$&2><;y5>NyE51c(qT-*O zBz4xkj{-wSNt@(iDzupQnEPBsbu0&k?gho1o8;dK$;DJ_G4HULa}?FFDFzE1XAl%~ zPJ6`|z1AhFe~dxJ3tSQgq2i^KDi!}oX{_RFlq!>>N&03K1Hv7=iLsat*I>-^GRz0} z$rP810%@$`QUf3QO2%#2OP?RNE?Wm!e_XosIQbz;oPR zI$>-pUP)=(v;!rMxo(SwQd~kw2NpvP8sA9R!)K>+`lZ{N22s{+m(T?vZ*sb|51Cuo znh-ibw5|yTxIe8)nXx9*10OKaq^Zs%sTi%w)vih=Hsu?f)+H2;kL_lcaEIG=O)x;g znsj%2KK4II>UFf++WN%@F9yNCX#qOY$NK7%g-!Iz7q}{8ouFO$s0+rJedt&pd22M~ z9xf(i)i4ink}*>r5SS^p#h7(*GjE>TnyiU6NOMC(hl*C{zL=rX*Hz?fw>5W|v_{%h z#0{jO$+UNKe0wPwbhc7l1mf%$kLJQQ?q;6n@n7gMTKEWr=!%|}kV!oj~X`4qTp>gNB%qxc@+Jf4Za zGBKZUXp&;NlQKf)@wpjed#_hTLxr*AivPF7`5eVcmMdybJ0|0E$=+0#XL^uVF(&Wr zOA_;%_R+khtjomYh$klIH2crE(vD`%ajg!u)D&Mqc`;?4!JJjeWhRYtGp%d1!Ls8>>pn0lFywn|XOxa2a%C6{qdav9^q zW5T~Ks;-Q#JkR0Lfs~L3yVtmi-pQ70=Kw5sHCf`eI9wEeNolO&+wS)4PaS}h|1Wx! ziq$%gqur?<3nInwPD&45aQl+=XSqEM6Nbr6g9pPpf0wX=<%*gU2Vd#~Nb^o$ER&K; zO*-V$WNu=~x4V+fY3w=2ed%$cdc+?U*$;;4;|?`IGjf0O^JJ3SDs{V@B~{(w@GiGC z0lnvVAC^8=pIMB*@pA!{uW|UxKvE21Og^gJN}ZwGhS5fiZ5HJ}vXjQ@lY-A={A0B$ z8b8i%ueemL1|-G(U96^-%33v;DQYc^nKJ&M%+-9X_R4L6bf-h@B{*XZ3Hm_kF!LoH zlj$LS1oca<7TrQE*=y4};Hjw{c6tZ4WUNi!e?2`q2#2)X*PQFU$z?L@1B7qiUtHnn zC%RQd>O9D0{3^g<@<_KYhOmG?si={eII9`w?!Zt{V-rK&)3Dk(*@Q#a zI!_t`CI>C@OBOO#pR=s)Qje@1F2g6xm^6pj@f_AiJ8R+STn!ixV74DfiY)vm4lsQT z^PTRGP?246rt|po!$pUVI{PP`RVemicvXt~#rUsSuX_V%SfQxTMwTI`dm{ovMSV)L z80y~Sz)*1pr7FeP+Wz!7)Y@XAb@kLr;tLnWeObadMXjL>G~MeT7%FPL;Z9L2EqQfs zc#v07n*w0kr;NkouhX?Y#X(+0 ztwg(d^#R=)e5xZ%Z@G9O4LsA8WUQ65SbDi)7fNHbej{UY?oHWp;Oe8swR{|A>S#R6 z7^A3ue`=oJVJc!a*#iN}R!R^JS z&>`z}Uqjgky;NZmR47Wwp!;Vyof(3OD2be@hK1Qc@hF#s6PuzIY#diNg?clR!oXHh zgMi1xLS@Ni)O}n&?G|*hqIL`JfhlV7|HnO~Egr;}bQ;x|^~vm$dAU7C@oh?D760la ziBR``!LwY7%Ywv$rqOGK;#-s|75_qMjG~ri%C1q9xw7w*SuxIefm;NcRJgX2;&a+~a-Qaxx8DHg!yax^(7%MNm; zIQ;Zs{@N|5<46}^%Jx$GgI$}Tj*3N2LLK!PhO8Jt^J{r2tCMV$B64x5&mnB+rWj@!vpqO@s1RfdWe5r4offWy6 zkmo3>V^d7^dff|(IVZjj@q5WdP0*sQVNv50wM|V?6V~hA(}AI)Mj?i}7sQlwuiVu* zwA8^8=hF*i{u(W{t0Huy>Oy=U%r(e#NycrAl2s6-dc-NxDah zcd0tBgPAX>uifoIM5I;L{xs(k$w`BK5su9IyW)E_D)a7IWK{? zNy*+O1uYg&TC+)vrCc#^Sg8*GC$LfsB2H==Q&OQTZkXF*UQ{e|k{Mg6uX!|cDKl3n z#%4}A-(d=V#{DS#O}8~IsQj_hy5I-nUY_%Be*T~d`gm_^5VKNBdCHUg`Y7#|ePkbX zRlJB&rJ_CpTdJ>n*93-&*E%V6JGl|c=W}a`F@*;Y;ja9zi*YT4jXtN_JkryAP>^DG zN|lQGd~FF{_YMmT6%TjPPuKD**A`l0OyR*3zAOLhVx&gFBftmcih^Pkr%|d@oZ%!1 zUH4uL4ApJ&R-ZL~I*lt7&!RL&QC*vYD%R`Xioj4&%NE1rVpY-NhtNf}qLzt2Q&Q9d zjo0cF#aE;%KKY)479KS7I2J!aQOm?BQ!%#q2`P%NPF4Jbc8}L{T%l7~c)8+qN@Fi} z_)ALVirUESu6^`j?^>sD=%=cu@tD?49ku$?28rpK*vzS0JUKImRcz+ebE!7HwlI1{ zQ5&fJu#+=$pu}cQ9d>f&F{w&U4%=Mu=#$yQZcT5l`nowjJ4Opeq)_U-1u60-Uooc2 ziz}uUH%}+|h)qk3L-)Ve!RKPeB1fx~O{r3Ab~vSS#f6lTPSU|s>$McqN?NjRQ&}a~ zJ=yB#YNtp{mc13;ue0weVrpxl@AgeTG@UPrD)iPcU3>DRfhWNfS(Xv$!Tn401vhQ<*XlM*Y zeTaQ~p`YxsoEBsa{0d3vTE>9DP*Htoh^IRfEnD?O$7Wxjp?`7UR#BgHpE`6I2Ks3I z>w@fxH#$j6*Qe+|n4qVMN*`l?-QP(Iyl zv$Mt3bhqv0p4QXXZ40_ddZF7U{xyB#Ljuy>Dfke#WuOl3aq;TYAatuwh0td%baQ_m zKiqBgxdh`~och3k#CQ|SOMG_3&)I8x{ahT?F0Q^Vp2WDcJ%6sf665uq-=8agw6jZW z|3rWKj0tT=wbw^eB-*!EA8qf%`XuJpc3I})D|F+m*liQ-uXlEB3FA}qC62$J9beAh z3iX#Te)l&2X6NTmZu`F5?r__q@d^s_DRA3Tw;k=aZ@caLZac@tBe{ZqwcdJsRwo>v zfu)c>yFj0MFgZu`Cbwj#Z9 zaUAKm)aRb)1Kkq+C0?rZax3=9ZkuSYdaFx6-))z+W52+CfuXuugR(}`W&+RAL>z7YUUHVS9&34}iCEDw+FZ7p9_c}ZMHAcDn35Ndu zVxrsE-(e*B)1P7K59<~=d;M9~9=ESQz)H-Y_^ZE5+|T0l_kD@>iNCAdfA3X6Z7Bh^rh}^Z}JWj3;mOpa<{L4Cz6=|A(wx;%Rkd?oBm6Gm%Dsp+~4?Ux%#&{ ziRC9=4b6AgFnZmSXs^%GzQ@^Za@*J3cDvi^Q@-2Fe^Y|JK8HKeUav9qg6cb$Pp>%& z-4b1|GDf+5z1m3hSMSnixvf6=yv^8GoNk-&=qBB=rq0-`@Jus}sEx+3xax zoUqkPlEip+IXiv&zHYl5A(pz$b^AY;KO-UE&*j%k6ullPboqxTZ1uV%vHZlB7U;_h z8eM+fM&16;<)5CA@8|OC#f)CL-0t%06-#1y`fi8UoZVY)`wzGM(rv$W+xGJ7yCJqa zyU*IOukR}!&Uf2O-S%>~P4u656;+;a36*HCZ@Z|Ka}8Sxx<;HO*5Sn)~DRvBw>AT>gOL@{cX(-_l&$-@Yd{ z)W5Z*xqr*_n&!Ixvl?bkn|I8-6OZrTFuQhU>(shXyZL|CfCco=&+qSE;M}gaSmXA~ zjJ0wu`_F5bJ+*OO%YT+BKOe7*D;_B?%FVAeEmhmtTvyv1&7W>AZCj#K@&0RJV`ukk zv5z)3`*qFDjm^PsO|)@VLrn6l)@a@QAXzG(xIf8cK(_^P(0xVV~U+s*V0lm zt!_$VOkJkdL~G`>*0q{!z69U0pv4X(C}>CYM_kJxi0RFBHB)VMBQecqg?&VbHq5Gv zX-{}$o4FQhjW*0|v00?lpc>Q7o62Q3)BVa89n@3FeW`ey3~v{i^)V zk%fLYSapsJHrqjdr%0BcIl(_LG6=awVArJ0@UyY)8kyktw)})2bKAq%B;`>hUgkzW?9Hn-)K+c7&#;zj{r$1s*TlFC z@(5q#YtS+|e&$F&=LSf+M~7=_p{Y2^A9s2F7xefnQ7|I@Y~5G zJ`5b;_rk8(`aO)VDC*VUwt5dK+H}fcFv*Pk*1FA%OtKZrjAU%}d)kB%er_aO=6CCk zh|opQOuW(xBdqbhWsv4Ric051^YZdgo;SPgku}RrMpVB`J{rl-_2w+wh;qD{MtdTh z5w)IjO?%~pdq$#uc(Cv5s529c`FJ%l=;qpX4O%wa%S6|D^P+=%U_Hv8fOfMU3v8o> zM^~fJ%*gO?4k|Xx&pgu)pH>a!Kpodw!bc$~Vt0<;!#Wu3cf_{m2?|?Ft zR*ZUj-3Iv`y*Z{YC)nQhGQ$&XE87+|`gAjD8;xz({K#2Xnao%G zX=Y?pq`Tj3IFd%i^dE|iT;ylId6l1oa4QfcBgaX)-`@7?|+uG#d`K5-n*eP z{{UDYUgqc5`$G}KpvYNQNyjY9Hy!iGB~dRkBYKxVxY~Bl7&8vq{J~~pj=nWH_F&AF z;ei9JbD0?j*iARdTQRn~=j8Y&N4ok&WqxVB-+e?hg08hq0P_yjvF48$^B#Ubgw(6d z-xmj4_eUdxkBLn4_w|}G^8Gv{bd6l&vZQT6F=^{enAu^SBOY0^#*R>X412#@vc*3@ zV(T1{0hWE0pF0kDPO~}sm_#@ho34>j{*f4!Xj(68ooRQ|V&19I9KQfH7+B^P)%%@C zVC+S_>%5JK2HlFCu6_mvW8~UtZ@lr_tLzxhz`=zie{S5~*=t;CKCH*MqjkOSUu_Ns zco=UAZh06Z9J5rm-)RF%pXMJG2`^iQ@zgQwM!XE(D zi;Ncup-tTV)$~UZSU7U8?>Cx??200E?;x4@Fr9jHVAe|xfXRM_H-C`dTN6~_)dRdr9;@n2O z*Y}Y|-HKxcb0dzV9~Q%3uAgB-iFg;Lnb~0eGTHwfTJby^y&t(4$3_m0p$C^Ns~_Zd z^PUYMpE-8C`<56FnA;;~Ia{yeMx_oLQJ1if?&=h|)b^EeWoFl&-sj#%GgEoLT7-u8 z{_NR61|Vr4%t}bfjbtp7#`e0I!UkiYcSE=J9PA%g>Sv$UW-_l|WKO1D9?G!8#mj25 z)Lq(kf3tbR?`bwW(EBTMACVnQ0vXeABE-NRM2MUZ&B@LCA<>4_@xV z=)hRn$DA`v@9e-h$O%gqoeG-~=%C}!L9T0F!q75{0Y8#~0S3s#6mcL%QKyU+#Ai4x z$3sRn(!5MFNTe)dU1FNR>%0;92fIdl4D;8aNU|qtGq>xB`npH_1C4puoHH`I<@={& zFAZx8QB9KVN=(zXga!NB%JvxScR$AXM^HUljK8zBd-i|bc4l~R8_rvHKJZpvU``ir zM51WoY^<@u-VfpYHWT^Bi#OT@L}ug>*KBM2!%>i%wmah_-!tNUiV=R0ckQANGO-RbYnIp| z&C0>FtC?-nC-fs_v^*grkiZ@ z;lV2z-JE`#(XF~8*s9$df!+Va=6^lV??{zD(VyXqP*|cTYPv2qw z`NA|~GtLEx?I?@1<$ixyp&jiQOCL}^+>qd zOp{)Rust6ANQLb$a}vN&k45S#0j_GsF>~+@?oPE7lLW9iV)7_Qx)gyNCfkI}qC6r+nW7a_=YTQKZ zk$U}-@FUO>VCKVq7jGzrj~&bP$wT?9q@j!fx#N7}){N<}cf1+W;ny)gdD~IL%t#Nv zR}=O|;N*qUG|0@zn|8z^_h0bTNE^7BA=1nYkr~;xyw$b%7C}k~4!Tv>xfpt=DYtRxcy}3x7ZFjm6<=uX$tj{q`i>eWUHi&XJ5yWpx9G4=q_1 z%v`29bT(bHT$<4?h`gcekhI%+N2ZlnVEdC%={z?lZ9!_QOTEUgFySEeh~0vv{t-~H z#53N}wk7sx#)XAF7QMC$9yS^50KPgcj1&1$n86M>2IdpYaz;jgiA_!hnV7yYbc{xj8L7LE05Fm-iTY$3MlGc_&zFYqKmZtR^UGq}y?Ab=?K#3d4J8L0Ui4!sb#D z3rb9>6@$&}I>{_F>_tiVi)yoM^bV4x1lEJqxIlr)1Y8p0!Wt)*GHbA(7-V9-!wZQW zz!5naBXCF^e2Sk}id|gz%7i=u1)d%8Zn^+PO}Ce$5$}1Ns^GMzS7*0yo_089*N7+1 z&A9jOL+hA%JA9Kp=w7f(MRzs%Q{_#FJRI?EF-^N4O3oOG+y|N_csE>a8(qD)0`U4tvU0>Ae_2+QqNjv1>1 zk@H{~cwz6Mw2VQv#F%S248ybhjw8+WTo;<=2C8;xqe*J&ehyp zGnz8X(3H5MHP87y4PV@cVnJuZvns{oZHJ@INR%U zbG$Fd)Y!#1GsE&4z0gB}xovCgav<9@$}&4Ub;gCi_lMX^K6|cxE>w1vy~10THwf1< z<{-&igHeQarrb^GeAXK8h-G(K=jNWv!ALR}a^?~UD~2*GOeXkU-(F*{e%%71JDREM zvk_buM!YDDU|1yG<1Q2r!pv=|Z|-vBdJC~$@Va1z?;e?G&nVrog4!30QRrB=bY0^v z^gcwP##i^q=;hdCMtb_4v8*#UX}mRy<&vY-Tqc-1O8x*p-01s7h)xz0%W?HEBZ^UM zE~o5VZjVSriLu)w>>p_&gxB3}VjgVU)n5Np`(u%q7WtDiGL~4MAs?=2GILC~;p)(+ zc0_hqX0P9HH2Mem$Jm_S=q*wvrbu1zPOz)Z&N#r$suL?@go0kjwQFZ@dVHYb1?w3b zH+;y#(40plZ{VXk;&l(_U=eRl&zRP&l`wBmfH?ATRGTqx$5=L=!O7% zX#09=<@#zLE0}9VZzopK8Q%4a>*XrH&BhYmXliSl?$b0JpPh2;dAL(VE^z(G^QJ0u zO-`)kF|V(&BR3P*9$C0J#R4-NnGwx5w^+QnQQP8SuS2vNw`1m-3x_M5)G3g>w#7J6 z!r(Iml!-vABNJ?tCPLHaUYBrN9%e366?2E+-?&aQ%m1J%|F%_Gws??Kr8=f6_F!1* z!I2p)Xukt-f_~NypJ00QmvS_jt9m=l*o%iqJw`e1S(&>+5%0@IW#%j{0ihfOO5hB8{pqGY%rV(* zasd|h4>65~nwZ5(8jd!5U8b_TOfyRjxs_$_JGmLH#{_?*N%&t(J|lB7aPiX@cX|3e z>h~>ya+=={KfRiYNy1*yij*ae!oHb~4Hq?+rq z_#EB?e)xDhKZg68p?CKZ%uVK`;YU8UJ#{Fu;D|h;4Hqk3<`@34#)UVp%r^<1+&DK& zExCo!Vr5Le)(o=EZW_z8vutO~vUWv-wjE(-2Ha`%Ge4E78tpx6OOE8hF@j5za&tR3 z4;{4sNI&lsWID}WGf83Iyg{xw8{-!9uUVEIZMw|PXqbWJl(E8Av71+!@vyysLHBo! ztjICf%2?8uAZMDl&|IL|t28Wk?PX}hTZ-$2R^#_V=`##DxhAhy*>=oc%eE`_+PWRz z?KrW+A=!63)^?yITmNT8+VK=PF%1>L-CV5DZ^uy|_VzOu?lQ4>ecYWyoWZ>Dv6IFT zuv{W@#<3W7Gwd~#={7$yTIL|jH~Rxk|5%=8PRlv&?nrb8EN|{%ligC@Twg80bekQ? zs5Ix39Qj(tE-5;DkK6l(c0vo|7O)h3CY)U3iq5rnT*Ie8$~a3HH)qFJMTA;6Z?sJj_Hv>)IcIybjKMFBW=>)~MQq4(-{frSp>wfzkpeoJMM|q#pWZBSoR9ql zW`C{hpY3O3-Dtla%{$Z;zRZ)-rB?bB%$2Z7-NJf!t%kkacs@1iPTZIiqvN z>*#xPPbfUWj9_n;jRZAC^|kii0=cnm7pd#~T->cd&UHCBzwVZmStLVlSeO|W&dgVt zgUx*d^ZjBEQ-C{+!u{(p;?0fpOLB0K8&DH)g=aUZbY41}auRT|{ z`Q1wqbf)dX1#)qeyT%XSXD-jYD_f&x2-P zfgy&keozwHT0_Z^`pR7iTVW{>Uvx|}We!D|-U8ehS=PGFmU@vb^}A?261_`0W|)PP zk4uGpy)RJ8UiIST#s#_pxiazn;+Ii;FBS2wKzNzf33k?W#5pwwO=#MyJDs=NOLU1Z znQ+t?rw<#aS6iolH}#Kr*LHN5EGF6=dmHU9mZqP@{NHcsGpePXoYyxnN&QltGy zqP@vFeP5j3s?m->v~TQHv|;Zz2-YqqO3m`)Nz z?SyNN1n)NF4i9lR#uwUQ{!UbexlO+{Asvl^o2EWa66RnIdp*`gyaO`i&W!o8H)?-F zfZu9#&lifwmqS?4njaS+;dpG)aJN1a6NWH%du7%5rJ4EpQc>&FhQ{LNhPidk zrL&r5;^$K}&C%ATN#@5wp_-X98|T&G_dnBXX5%MEA@f@w7|d!4O|6^TFg0W|4{2&uZH*9syE%tX+WsM7lp!{LxhfP+fXl;nfULCcejkBZ8jWcJ~HCNWnZfR@| ztVcDXtnt(9>S8=dT@iV0ofyuonb}$wvcIh=of>Lt#*d~xjAq z_NQ8bBEKJ-Bq7>DhqOkcjk5!bvGzAqq58(=Sv6u-xu9kIs97!3&|p*XW3_3=DjcUU zK;d{B2a0W3Fe}v3R99>FV=98S#!s|ng-okXnprnn<1UV=rs?P6hL)z8H4B2Uiklmo zg1xck_hr)jff(DS@>{*q;!ty46wMZdQK>-{BZ3O^^D>Ry+Kg(Q8EqIYKUWja(FIL) zHmTD6G%nOQC0f%kyKbsvFda9lG1?H@hW1x^ZlK8U2zoxYre>hd#_#V!@*6Y^(S$J` zvu_)yRJ(d?-TY|j?50*X#B2*o&sEA1VX9|yn}HeA#dbK`7RETNX^yX|9xszx6QhoG zVRGBy9*x#D$8?d2Y1q_;D27PTDH2q9b3iU*A3F4uyuQOnR~?ym?0{o1G6x(d zE82GcHGk{&BR=6!cz#}|eKIzfU)bW4_&0D)rmlZ8<9>EUJja zq0>9K?Nqnb-zi?}_J?F;Uy(K>tJi98NLJqE=|x$6SNcU+1s6q%vQA#HPf=Fk@{HoF z$!V<}vI>iy%sRQ~sjPycr?dJN{V6MN$n#mfhP;rKJ>+E0XT}RQ=S-Jh-)(TI`m1-FsDp${jB|^kFQx5v}=5SwS^lK z2CDU-`M0?Sy(h@O!o<7WE6!>QFX(`fomeEX{>R5d8*UWr-F#q5(0b~lQ%l{z#PJZ{PD{gS7bY~+C`7!%)k`0m{k+?6 zZyuc0A$cMk-f=_H!Se(XGhkz=QsijE^v9@p8uB}3wQFwg0SIDa}`^u2N0(k0

`s33e&Dk7FiQj-NBR_;`k*{Jj!+dlj)r%vCK(gW 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�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

?q}?D4MOYrz^Kw(S1NT)x!?U^NJ2C`asbYM^o+w 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

GiTvaMKu$UN4&fSK@Nc{Tn$uG5^PK zbo^2b?i_}rV+?!O6e^$bVtHh{Z?;i%naaLq1fJ(%wwf5BbNaMW%)xHSw% z&yzdB-Q;q0^nQzOaJMrY?XP;l-NkTp`}TwDayU#6k^X8B+*cWn_E*E;dKr$kcNE;C zF6W$wPJr9Za5T<2|AhHJhNIiJ7~HciS4rnp%D}zIaCBZO0d9oh=)7J7xK~`RijF&* z!A&q6ZAUA(w_GkkudB6#%l{(n4=NJ$dTl4TlNgR(U+4yRs>@Z=^Qc~Ma~Y1#NA!b> zyPR|1$RN1$7>@SO!{8bij?U+dg1gk^oa@dL;8rjky)P)|+nE1zIcHv~7~BmEN9XIx zz}>=dbbOxx*Wq$?&i#MjzQ}NN+};eX+u?Azhg^4V1@|Ds(d!lM;C3<`y&m5Q?z=8m zLC-_G!9B%r&ipgDXI##iZ|Vm(#Bk32r{G?4IqL;o;tTq(oR`}!Kdo$YcpPX7lk!EkhZ z-wN&mmvi>tc5sahN6#BO!CmHZ&T+pR+*J%m&yRY+t!6lST<8ba=5o$`*Ms10V>mkA z9R}CwaCmVZoqqv$55v*^c>>&ahNJs$&Lf!rb2;n9J!1bT2KNZV(filRz&-AA&U{G% z+yKMT`)L}${oLiM==J?(aKj8o=N((Y{l?`IbiCFMZj9mR{@V%eb%vvH=?3?v%Q@GR zd%@-1P5XnYYI9thZkEeA*M)|`l`$MWUXFsB?{d!d}y(yJg@mXE-|EO@M1*INI+vfcu2YSuf)A=U>3JGaTJ+t>ErpINHCo zgWKeAxNXUJ;f=7{3GP0Iqx1aT;2vhcBbB4p< z1{scypGUzx=W%pddl`;ikM9Kc3x=cP@osQ0yId8`=U#BXXE=J@svq3A%ULhx6x(eO++P`vj>m_= z<=jL21H1sxcwwZ_8wEGb<*Mm%bpl)o!_oaRrw{XgE>}axSH zaP=;?fZnIj0PYfoqsQrHaLq1POWV;3?rMgk+oK)a8iu3yDRhFn$>rSVKfvA2aP&Cc z3+^t5!{vB#9?%c2i{a?FX%O63UCx=W8wS_QaOR6x{QLv=D8td?)&#iSF6TV&obxZ3 z|6@2hZZ8J+tjkr=>(gc6USv3W{78TsVK{pHXaM($%O&XZ0nOkh7>-_dZUy%i!_n*A z?cnmiMEipp>qXmQdvt<3iQ(w}(GBiYmvgRP_JW(saCCe0gNwTy-mnL!!jJH85ZrkT zNB8q#a19Jc+c666QkScx^OzIhRxlhL59NFp^M5Yq%-5W_kBAGnuX&Y5o?1~=UX|CVg9d+ z?&k}t>3ws>;HJ8q^S+TXa5ET=-j|U8SIThoc+>#yY?oV5Q7!lK;632Y;1Uc+_qSGX z7q}d5jI{OI!8I}*y>8G6?lOj>{YE#qt6a``&Z`&PYKEiZ@qTb^4u{JItr~3UNH*p9+#`2*NG>&TzCH&ESSzEDcY=GJ;pq152KOezIq%;9 zmv=Ai4{DwHx_)p)3`fTsgWzVl+yZ*uI1H|g;plaoQE>Aaj$V(N09WgB&U=M&zK8ig zhNI)PVsOhCj>fMH+~qD;N6+&T;93}t9tRu1eZt{zJ0|V_z_l|R-5#yr?r^yZIuFtg zZWF`NdALq+_qm+)qHQq_>jw7#!_nhqFSu{Iob>`gq1O+tkKt&)I|%LxmrKy=N5kL- z8II1QkAi#7<*I4FF#&Er!_n*FIgexh&*hx!TgBjBWjK1gECcsvms>#Z(@KEz?xXv8 z-2!^OtO4BdE>}y(bqclkcY|BRaCATK z1$Pm{(etu?a7`}f%u5Y|yOQC|7xjvK9tPLSaCCe+3hqXibKXlb0d76R(d%0|-^cu) z%T>im|56O@Zib`hQDxxnXE?fFCcyQ$ob`*TA}$T!zRhqne$C+e8IHcMsukSRE>}(G zH`>ANWjH!6?gaM>hI8isz`g8p&T+LD-0vCAIsXMW&T!84H*kM-xdrA6Q2qP^m$QxZ z2e?atjyp%eO=CDZe?I}P#N}$~{UtfOG5^PK^te?F?i_|QUqmX}Q3kHYX=OYHeeU;(p`RXvZUYDz)`7#RbQHG=a+61`WF6X?zGv^1G|6@4X zj$&}nG90~sw+!5iF6Ue?OMn|;IJ!L=z`eq7bbo6GH{o*5^|DrQZ!sL*-`c_Dchmkr z{Bk^YvhXAJw@z>;x!eMJzTXY*REDGDmtJslUCw##sUKXN;pq5a5ZrkTM~@4`;2K=c z`hi%{-cfLuG8`SZPk>wDaJV0iTrbOc0`q?iN83>h?gp20p2sc&cMHSO>oW;(9Sld? z(E#p?E@%BhyNF9OxNe4{*SlN6J;-o$KWYcJ)8(q@JZmSo?=l=cZgqouis9&Sx)@2ogWz6bIC?#57~H7KIoH)j!M(3&{m z{V;&ozQy3CG92A*W#DGGob@7bp_c$x%5e0#m;073u-fz(W z?&l0g?KXoOb~)<@aYcJu!TpBesNHsOV+=>`jU?sCq3ecj;RWH=h$^LZ2+ zx8@=M_~WauZY;cUulVoBVg2gD8-8Rg8!9}}$4x{oF1+E#qI!S0CP)$5kW}g;P}~zD z%eKNtcywZJDMOBd98{z)05Z;ydqMt0k*9$Wn)M7h6tu^01CS;L*$+gv9!Lv=m~8;k z#vrEiKsp%2^cqMPgAjLn7=*an#~{Sr0R|!N4lxLEcZ5NRyWLfnlr2ywTbL5RCe3_{#(VG!bO8-oycI~atx+r=Qn-5v%Z?)EVVad&`0 zh`U1!Lfjo;5aRAQgAjK;j3ns@m$+NRAjI8L1|jao8HBi7&mhFzCI%tywlD~Bw~axF zyB!Qd-0flz;%*Ov5O@0+gt$AvAjI7v1|jZ_FbHvXoI!}YUY?sT#N8qWA?}tk2yr*g zAjI8z1|jY?F$i(Dg+YkBZ45%(?O+h%ZWn_PcY7FwxZB4d#N7b~A?^+_2yu6WL5REK z3_{%Xj&t*cxLd>^#NAQ`A@0T*gt%MJAjI7!1|jaYFbHwCjX{XJ9SlO;?P3t(ZV!VH zcl#KGxI4fg#N8nVA?}Va2yu6uL5RCvzMC(^-694d?v^qLaW~E&#NB!ZA?`LY2ywTC zL5RC;3_{%PU=ZSN7lROYdl-bc+s7cp-2nz6?hY{sad(74h`ZwqLfrMHxcNfdEn*Pj zZYhHhcjF8~+^uI2;%*az5O-T7V$Ma1DLwIhM9)pO3GU*;8-FC~$HJLNaB^-koYfR_ zcOmI3>|GX4lcpA6%sA-F5|BO`acsX@LZNrs{jNswBppA2!+5T6Y7rXjd1_anpICesk2D_dmjYAvQAJ{j6fLwquHn1=Xd=rRq#U8ZN~ zF%7|8*&@T;KGP7N3LPN<)Ub^`;>{8JbK(d@{6{hWKP?GYuiSGIU0C zJ4{1x7m=jN&}ACplcC2n#3w_aX^2mT0n-rNm7z1-9Wo8UUD+Zdx+A6`J{iVMLwquL zcs4`yFG-T2C`6JZLurWkT@c)rEi&AVn}+ygs5cGq$7KfGY!FA zCK)cpA6%sA-F5|BO`ac6OH2$+?DBV20{%WEz6IvPFiwEv6wp8QM%kd@^*HhWKRYG7Z69 z89Kw=9@7xql`S&d?K2JW$uM9V;*(*>G{h&vh-nD!%Fr3^j+=(yu56Lvu6L4gJc7Hj zMdo-nM3N*!X^8k;5T6Wj(-7R1h75P>O+#>3w#aa|$uz_#LyKvMPlh(r5T6VkrXjd1 zLua_#Wg3FJvPFiwJ*FW(8Tw2^d@>A}hWKO{G7Z6989Kw=5z`Rdl`S&d9XAc}$>2>l zjz@4;8ZyVbA(A8+N<+l&g5a(Uo#AfWGz530A;aBz(-5BwO{O6}8Cpz3d@{6|hTyIY zo#AeWX$bDh78&k#nTGge=rIlP$g;$uMpj z;*-IHadmzKcV*}dcZ)(KNivj%h~EYA$q+XU@ySqc8sd|o$utCa@fH5-3qUw=Z!rxa zy0S$^blXfrd@^*HhWKRYG7a&`&|?~cyG%0lnTFslzWOaP+#N6t@yRe`8sd{-#5BYw z!?^$>7Zh@+C^?$(=z;I3?u;ck;@h);$V z(-5BwZKfeU89Gcua94)TaJS1e1b1bN40n4>LwqvynTGge7%&a-$uMLZg1a(whPxxC zA-F4BWVkzS8iKpBMaIdGR}$n)l4K|fktE4b8X|ty!Ch&{a5rumg1fRshP(BqAwC(J zOhbG!w3vqYWN0%D!Ce_T!`%+k5Zsk5GTiMl4e`m)V;bUT!$X^2mTanlgom4=LyA8)2{Jc7H@kU8EBktE4b8X|ty!Ch&{a5rum;*+7? zG{h%ElWB-gh8EKhqAOcuM7PZ}1b3Na=r9fO$xcMW0 zclq+h&%IiX2WA%U_V9mW5V^*!SCy4EZhq-)f3t5Ki=F=#p1~^o!mqJj;p6RCw&lG- zqjB@EmTi46rZBx_Tizuq>O22j*tr9R)m@F7_tkg2bx!-N!ZSL=qQb}5#Tqy6iTRbe z0B`>9XR^Jwf7!VCr;T?Gv^Oo={7U2IA1!`+SbVFj-&EBYZ0NFuFA z2MRa!h%cWT6n?L~`kId}zH0GD_cU()OW(ZET?au2EgT+7a9p0LI zrcl{>ay|Z3{47}4vI%p(*|Fyb-+ueffm^p${EV*K0=I%Se{eZu{FsOKDLP=7IrQM_ zE*1SgEP!1+RDcFPhmbaI?k*Eb%QknGjr)J^E<23BzWNsbt}q0l^96qeY=B;$Zrpl% zS=>jKZEh_q|KR4|Uc7nyi4GqUk->%X##Q?_9{KDY)nYTi&f6z%!reKIn|~rAUW?Wm zD`Haw>ulb0=fL`wL(97EJaB8n=KYAe@HdFMpH~&XK+^nB#bGlx#2?>2S=^>XX{26* zu=jtB*wkd5y8pZRr-yn(o{p{hzqjB1Y3`fYQevC`aV83)emNdkE>&^*l@*NkS!j-5 z(}jF5UD^2dyV|g>Z*Oe6rFZC;;r2;UZ>Q4R1J|^Flhxa+^wy1gkIrME3DdM$WJE%0wiTJ*-y-voMZ{3RXj zZ9%^j=slbky)mV?JS}>Mm0osQ^cwMyM$q2J4yPl2Yn0xqwCJ_q#)ZJY>1okBj0@X= z-k$%Lj`n&*Qg2;a^h%W8oV4hPOU*%hU-)x6+FOnbF@fI3wCKf^UR7H3)+@b(|C^5X zZdZES(xNA>y9M!Ek`}#MOk4+gZ%m}4y<#3V(0e#7dOMZg^0erQN#MZ0?6m0ZR(g-U zk&gI@8R)>jRcX=NtMsO)MXv-Ck%51EUQb7ROO@WbwCL@`#8=?ooV4hb;6yjjd*M&% zXsJC}8^;#fxlhGHiv{Cv8UbEtm4t?=H9HqY@xqgc0r{X0!L0-(Ub>;c) zWa6>iKZ)tYsVZh4_WgI-;~`%DqvEkPxqgcASfS3prrWwQ9x3XzD7`(eT5*`9Uaitw zmlnNxr8g%ndW}l&g+u9RZliKmAFRFhA$nx^#a{aeE(D`_l`rq@(>}b~V^P zH>O1|U+Gn)MXyNd9sFZD+FPRZwxva{ROu~Ai=LP}4z|Y|W9evbTmcCWW()q=%CeZx_u_6 zzgN7=CfxqX^;3+mc-2mzTV?A`a{KRBdI$f@ii6afT>Jgk{e!kjtxIM=p9QeJ>)|L4&x$Wt{e_P)3d*C*ZPO{TXCTJDegb@>iXg~TX&NCPouhCv?MKh9cuje#(!At zo}_;}mEOZ?(c7=$x186TTt1D7=aqu}^2m!;yXp3xoPHeLT&TYzxqgcIBp&Yz{9a<~ z%I!5te|0<#{W57hQuKGXx?aD{);%_V_d_;}??PKQJ=mL|S8V@Vp5s&{Z{zjC? ze_Q_;kN;~_e$26TWxP||e&V^+Am3hi!HUBq^|q_~X*Q-sPrT@gjh*{kHBTw~wdW|2*6NRQ*%iXB)3)#WUjmQ{*=~ z+aV3AF(2Z-(_uc$v-OWL9~xEuzVI9yj}-TZCZ)GAEqZH|UKOur#WQk#wLvz_ zuLJ*PwVQ6Q6x+W>-H*D_)}3U3)u!~Sc)iKBe@wi;DcElhJe$t;ix)!$x*Kg>+5XA- zyGHvv&(@{eYjXN+T7TcZr16-X{(7yyHWT{(OUQz_7i2bxqgcK zW3AeM-uRj2x6H>B_3D-0!)eiLRC>#Ky~*X9|DwqtACBy`+D-SD6x+WSj~oWN58Jwv zjHh^)WuUh_EqY^0FFP%I;zgQ)e~t$U2e^CFc`*|sk0 zZ{*`;9J1l@V%IZP9B4jS@rbOyTfE;ki1X4+==*Qs4fGHFB&q)??hidGKepMrY`i1p zN4~!i<@n#$rTJmSJEFdL$E>;^@c^FsG@kQIsvmiK`meJL;=RGvPfxz=)W?h2$@Rsf zzy1@I=jY&_62Ad|Y25sxeGl?kc&gT~Y25sJa2s+d9{t39$fe>vbm9KL$BNUxh0j-7 z@sAvzB7MHF($-B+d`h(bksn)rC)JObKl$eQ=?+^zJ^2&YabIZbC-pya{P*hq?7)wr z$0xG>eyzVD6Z-xueS^H5oq~SE?K@`nKTi%=@k!72_1`xf_`lNDr`z|~_TR&LJG}8j zs~yL-|9ZOr*c-Z2s>QzgH2&|G?8$T&Vw(>)*r^_o4oVOz5|1{n?q& z_kUg}h|iP%nt}NEzi<@heiZpzJe2|e4{QA$nb7z2_Fb3>{d}!|;K>Zcr%3B> z$b^20)}NgT{Zg&}Xw>#xm(e!kwm1u5u9 zjDLw4|6To7e3EY8$nh`N{x7xl(-Z%=)<5)^<$qHBi1Fz#~R-}l|<@rkUzM(eN5g#KYY-%*eWeNX$p>t8YupL(soGzI;L`FYrXXfN!a5A|98 zrzbym8_z%4`bqOMqW}B-hm1o1=h^y6{g0?WV(Rbv=jic?s6S@vuT4Qe^8Pih<6mIw zCyjq({Zc(%+4ZOupQQRx<73|6u+-L1$MzjC^$&f=@;|A55m$7k2hw8v++`M#T_wthO|Ghpf;`j+K?I`sFN`dd=aj~xFY zSP1){dA2^yPj3H>I^WcSs|{oOzG=lL>3mbf{A@DwbFHmUvQpmx_x(x?R%)#@;~YJjU1l=eVuBHt)HIw3~Bv& znb5D*@!$8b6`!R3N6h~gsH^)e*4p|s|0kC}D|G){VCyIKKl1i1)$!T&^|Z%l09ON4 ze3sh!N#heS{(DXRL;q;`pAP*YQ-4eP_4k|l^U|+BV(Rbfi5{QG`I9ex?>?AMUu)~9 zDL=J-K_>L;wf?S$toWqI|3S-P#S8oMai$u)|KGOrobkT?W6>{?`q`P$ zFOm8WKVZcvUH+F#{Uw>vua)`-cSQEz*}S-4F!&t?x^?TJ9`X1L z_0tvqCaJ&YtC8cAO8&2q`l~Xd-zN35qw7cCzU!eLZr_K$V#Oz2+qXmdzr@y;+jnx~ z!!GUjq3xF6={bJ&==axc$%Ou4Tv?XqzbWWP93Qrs@AupH4_18W_|QK85(fT4Prpvp zw{!R}^$qVO?hrBR8e41Yzd)|P+xq?hD~0=&ck4K1+jeArPA-3T;tEn2|6TW6@kvkq z^lAO2$@T5{q!RxgVWVs8(3dU$Y5cADM9m-b`q~y-pXSeG^w(pns`I0HDda{}3#M``1!iKOOOJGW)kf z_eJ+V>h`trKL!2B@!74fAI-D%lg1~q{*cz+cdr$nr1}x#a~SGs|6ObAC(WOT`kp!e zT#$l(Clez~i^k=M8S|H$!=>-f*Jb(7|2Wc^yLzwaI^ zF6q&)*ZONSq2H+W3o@bKr1f`g%|LusX#J&`(C^XuhwjdR|6|7ZKL!1W{o5LNulmn< zwthPL&+X>>iuP@>;zRY1_56LOZ>t`^|7hEh=Xacb^z+j`sE6Z-Y+GOUZn}~N&&4N|`G-w1{s%W(?MP4jyL3A?+WN;9|K0lf%RF0`#-EE%^!(YY z?d;iP#Yg(j>8BF^Ay^3JKW+W=#DBl`Kik%q{#*GUvHuzIeeT2<9pjQ+U$Ejr`-jQs z*P74ME=|9Fy{UibuITbb{t+&)amt%Gka; zt@tFpJ{~cD`po#Rwe^$cPvrQt==b>**!oH1AJPAO|D|a%|2wVtq{sg?+W)1temeXw zG5tTZF$4aWYX7&``swh0x0yflZ2hG1kGOpYO#OYI&p>?k!a_JMS!?SjjZftKAJX~- znb6;_^>=;Ficfm{AJO_tGoe4G^$&Gq!2fZrza_aoH-3mdKB?8?t2wrvV>!Opn*GDR z&sy>o&!NvG^?!2XlM(zZX{f&?Bl>##&dY@UkbXb%zT1<==h*h&!@3=-Y&&xM z9-F?W`-kjI=;v$whc{SpN{{~~T7O9<^vkvW!P_$6e_ZQtPH-39Y$2t{MA}pKk4x$qP_?3m3~1A`jPw3d>x-%>!ZgfvVM`)Uz!R1 z5v_md(;4u8x6b=5DdG6MD z>#xm(e!2cVj)F|+muUT6H)S9`p4MNQT%Q{srZWFr>;J$EuD=}ol+}*(%sQY+&d1hojsdSSw=FHMZ2&Psjaf^=AGYy3z7K zJ@Hwg^L~r1PvbMW__t{Nd702(qxJXwy%nGI_`hE3ug!%1POV>%3H@@dzw3si@v-yY z-@%+6;Aq!h*5fEJw$#>7$Mu&E=&JLhLu)PnY5pIJ|C@yWTWtMw_`l!uf1a&R{kQh7 zh{u;PQ-9wllE!B;`s1el+Vty}oA);sq@W+U|BvhYTXtP<#V0-eLy>-e%hKffV*FDt zo{->GqwRexKgI zW@kcwlh%K-)rw0}|0C|dUFQC^($-J9e?`<^Vd@`QW%-{}Kl1*&M#pD|t)Gtgw3+@d zwDptvA2B|)rv8DCWgtHFIzAh0{iN}U9REhGKRXlpO_#hs^QNN?V_9 zU#|a;dOuSiu1by_X|eoI$9Qx*bk*^9hpkWjxB9n;@mX)`FHFCFhpB(y8Y@2O@PCu3 zzajnlU8er*p!{D ziVxL4*7@jsKUVeL*mB!Wdgh~xpdRiAZ(M1$LyrHC)&COd|2A7cJ^q(!|Ep|$>Hp;V zhq%@~aD^2Yx_u|7Uo=a_eM2VnJM{fbvooQ;N$WqkA_MX1()ueiq2HwSkNjP9|D*QL zP*?r)4qHEI{~5V|TciD7XzM4<&xroFnf@QR+=@?n{9mvA-(c&f!~Yg@{5;#%Pmlj= zU?J=`pZtgwpLF=&X8OO<)=!WBdrOr6N1CJiA2~lqwEm7v=#Odrg_+PF*ZK#RXCOX@ zwf=_W`rPpymx6(^~09Umk1KSgH$v(na0PyUbS{^!Vt zEx(iQzmfBQOzZE+g#NhJUziE~Mm;_`(3FArG->?}nb2RM^=Bv7Keqg@*LEKJkQFDH z|Hr03p!Pp+ChK+=h)hFIA0xiHrjU56R&*TjyajoAJF^Vo)21aN{|1C^?BtgUOzqC z+tYb_WSP|tetXL+ivEw}23HjE)~Od7Ha}x08Ll)2Ka}fVS6sXqKST9W<5vIb;&z12 zxVos`TJ7NV#Q@Gp zr=#4jHZFYc8rxy(()-mo|D(o#KYGitg|>b=x9^zHKkxx7E>ZNOZ{Hq$-|srx4j=zu ze~zx-r}d{t(NDg83%~zj;rI9Hy9XLEIvIQNA}c=W+`b(`f2FM-CH_(Kr$}tyBk#BT zr}{_h?@}9I#r1K0i)}BR{aqK1Mq~4AecB#we~X?^+x78oPlFY=^yF)))?bwg{U*H~ zvNNH-N#DQx@RAI~r%UTEiLM`Yf9MnY!=Vc;zoX<&RQ>Hje@o`{dxZYH6U;4?#R=oD6b^O|h@?6{p*o>%YVAP*?6JD zNUi@H*XMm(YYYW-E2(BG@ad)b-L zAJF;_Uyyi$p*^|3?eTYl61;n z=yz!ShZkCLN{|05bpN&_6Z&mh|KNF%{7)%AyC5IFr*&+jt)DDEqi^5s+W$GWezN#S z&Ho;#kL|0o;*#F}VW;+gm2D>-{p;O2=n0P8~Ed5`yN`5vj2_&{QgHU4XP&E!*~4m>EqW%+fF*RZ<~nEJX<%)_KoiU zVeS8(8Y@o8{Ex2h8Trrar)NA`r0pE3w%U>2@o1O+y}@m^on-Nfx|*LEeOx=51wnaBR%>9T7P3E^hK( zS8v8|$2m#km!9@D>h{gE?Pa2UO=kO^oR_qHTz*9FkGk~z3(IXg>FJMFX#F?Nw%U;% z{T8jiEt-Dv@!j|B`L0@HzN^aCKic>%CH;Cs|AqHh@j04)D&xCG$d7HXb?N@k$jqxORR zt#NC(t6@0sr#HmzevZFy1ux)vL+tA3U{^oeUK-S6_gDMfUOlc|4!Z$hWXBJ??Cq86 z{bBX`z3p$5TJ1Xad?**%xc|@AO`gxG&1b}6VQitTPy6@uZ2uKHPW#TV;zYMUw>@YF zaJ2cp7W~Tm*jihkw&z&%*9iTB)b*qHFKw_8?w1drZpDeur&RNGzt&%p3H=eRfAF*n z_&=`oH)cY=NIx$!ClmVn^>fjCPK_L&sQJGe>SJqd-E`*vkkBtkuFs7hf)3pN6%y5l z&qsf4^zaz11&gfFT0P!C9qt!fW;6ZxlWM${8T%`={etB7kEMS(EaJOsmX#Oj+NN=CDuE98VZQF}-ypDdnE7#A1J$8!KE_u95PkU;$ou#%NzCCGpUaJ(ZH0GYy+Bd^$XO!o) zqW1rrU~+7&txxmgSn_YZ&@V`?&z>(cr^~oMI5=HKhfmLz8?iUZ^Y5`8CtLBN*GIVi zBpveuO}-EHnE!zNBT|5KTdXcNbTuCW6rS@DT*{zf`6M`&;yU9oOf%2a6);r*^*H zDE7B4wl2+A_ISx$E>_QH;Bj_&+l+iZqX@l{>VIe3_Gtgh+C#unyFT5a2NiW@yX zAI+Zg0E&8EUp)_uSs~fN0o|`GoSePX+Bc@#w{Kc1?Gp(iUPs_GPi?=TdH$T2Y~3d0 ziQ0ZEZF^C-pJOm-JooDJ+CwL#(muaKO8tEc`T9J4LrV5!Je|#_;u*Z&!HQ=eww{V- zfo(5pJRO57p4|H+YV~t`JEr~(;yI@0Rpw33UTXO=p!4O)g15j(*>9lWJdT_8Rqh)ym1)OKtnb_58x2yh*h$ zHG3VpeH;E3_BLsI1(UOv+VB;&`&-!Ct@no~b5d_#iv8yr^qgw^ zvedR0wf{^lp1XDbav(eP_HhGVHC|%J^V;6pzlFWM+TM|@zd`$kw7o6K?JaH&&yY%& zZG9Kca>N_WmTmrRaD-U4`QMDo=(vFX9xU=}F5dh{a~vujp!n$Gt8nMaZvWU@?~P5j z?LHGehj_H}vDEsrTHU@~u~gzI$Ma5ls__JKezYFe)c&y0w)YPE!=&tWnD+L0R{Jtx zZrCqK z@!&EO9Ni8pE~#UBvt=e&+%6k4sYQF!LK7UN2TGS`xbWpoSIqRM;Eld z!u{-m)lJ_&XZbwD;a51*_s?&CyJ-9L^`KrKE^B>b{0eS*eUDt$`WE#1;DkRvd-Hx&EDz6IW|bNTO@+RqE_Dqi0u&dhQDw0V(9xuW_Z5R zs(fwKwAUH&zU+W&z&pUzWJ{2f(O!zZeM)n_4lKfx4sJw z;Pm>!@5>7NvuS33eml4D?OWjW5DlL%j})&@Uk?|&|IB~HFF9-z?g`c|9L4`1p0r z9KVN)*Eg^G%f+t0x|_Z_tZ&#;{5if*ckRaF_37(xj@P3LPM7J|qq>{Ec)|J{3b7W} z_nEUr`|}l9UukH4Z@Y~3E%^8aGso}C&lhdqC63=E&(90rza-_m1~czp?kHa0D|3D( zXSVOTe_6=(UFQ4G{+acC^lGdxHM72NpSi5DC`tFgZRnf1N-GS+vo z`wNc~`u38|Uw-!UiqB0H?N5EZ&-r~z-qUWVs0uw3@}`vm)9-uVWqvEUp<-qJ-LIK4 zKMe!qr_yAGpNdgBEtYyQbGa@tN_W{c(x=!)0DS z4Kv@jdfUa<_j12JkMPZb{Oj`<{<&y7=Xia-%+?KQHU^sdV^!e(s-& zwo9MSv%X#~`1Pb|=J8o`8jLm!>E`d97ra%e z3B6S*+(FlM+xcumYB$zOUtAe^ZJK$#zpJ=C1GB$>sVRJbIMWttkmm1{E7x^@J%1E0 za&xUU6VG;YT}y#!`Gupo#ZI@Fx)AxE!^UW>T>nMqN#8%rd7k`+YX9`!obB)Z7yWx< z_;Z4pzc>1}Jri%C4WaXz;{F4nxmY!B7HIaRd2Kew+Z7p%{m zCFTxs!D({o?=zIY6@cBTNZJYS^-xqC{{(Ru&K7LialI347KUuuqOYG0tKLAnZXW_YQ=4u$6 zdCq-f@%k=te&*MA!492XA3HSvM#VgH&8#oSE9ZSTeP12>^|Sw{XulTLXYbcdQjsQV zJ1sOF%JD7wr`L7=#k%fqgdPI;&yy~e)pft+~3ie*R9X~-K^U`%lY(m?lRJs-i0Ud z^!}#MKku{uO5SVp7|h1a?D7#ls+4}=ZkzY|?B_AFt#JDOGw1g?2J@@q{`1tyqV2oL z`FmyCm&iYiITIf)USHvSdfE4GkzOMZ0*q;wxo%IEU z^<6vf^HwJAWC>zka;0czyHQpO>+|L}7hTj}>j-Mb>v^`_sv<(3!Zmczv(b z{wytQ-?v8RyM0%5{JIM3`{aVwcbTt8<(!=Nnb+et7O(Hp`}6W%AL51W`|RIbmHipy z|JKU=<+iJ{zShF_J@vn@%J%t%^?ms2tS?=-fBxe$^WDDrT<>$f{-q0b3LY$8-=)t_ z{=#}0uMZxNi23{HwZ-eZ$o=e!uJ<&b1m@TGYfoR5{W((DpKmE%-zE0vW!_&BR3NbT zmoNNv(e}-`zAJjaT^0KM`#jfoh3|izLfyxwPZVw6^!YOP=Rp_S((va&g-;gd_&jJ# zzKbyPdC(oj?a-eG&GI}vbN*h&^^)RUR{s2bIy2wxubcS{%KYVbwpWts!bdC9&&B`F zo5{M_KN3sjzeJv(Db#-|ZpYyK-p^h3=PhITTHn0BJpGN?xBq4Sy-K#QzI(6E`jUn7 z`&(b1efxeg^oeKTGrGbjp6ebtT+zirx!9ThBZUJ!{S%$;XV-O``9f#BeM4LO)3s7> zHaqkEo4bnJbx0rYxv#&AUis7K-*mG${X*@@e^bVOBHJ7OKJM54s%Sr5aQDW^Un|-#7u>He z+&_h@%j}=|w`Y#Cx2w24H(p_T=D3rFkJt1&^Eq17#4Tg``!)~%Wzqh*`p2t^C&JM2 zdj42Zdlr1WUXJ~f|8tZ*pYJMe&jR+(%W{1Oh0pt*9x2){7rDNR&)=6}e>8;m#~sD( zxcL6KbrGjp-6IDp5_m&5?^Mpr{z)s>_nG(K^u^N?Oy?AT+FI9bXIFow%kLOx;>*KD z`(+;Ii@x8?_INaXzbV{+=YBYf%in5e?l*5+aC-{JYvz2p;BGwqdcdn?{?C_lzE;*0 z-amf!FN*fd)jVI^d>icb^XB4qT>N~=|Kj*%K0d9qCUkrr`SYUvGLQ46aD1j;FL~#C z!4X=>{kJ{5f4+URs6BfBL#{4&V@?Y_xKDwEUDf5Hnn?IcKEYGYe|L5n5LP_0*e4hk?e8(op zuhM+Kr()tAY>QdM%wK*(E3bI|Q$gryw($4+m-%=nqz?Yf_4t{miuUitkM}EhzpBbV zBvJozA??Xu4=?-q=Y^lw9{#hU{iDyn+WEZyxagJfp2D+i@ss`~-hng~KDT*psHlAx z{QdA^?W?ozkHYP{;63K#%|;qS=rzKr%2&iF$6X72nKwC+a>d#~_9 zB<}>wz6(A77QcII%Kr`D-hV%nF4})7{r+vX{ioY!_Fw*+H5W8+`u%00f%#X;OSCXK z^EuMDzgpD33*KL<_T~F^C_GU}JG;2q$^JVxd-K?T=cXSlqBni#ZiN>-V$~IHg@uRU{3k|cKKVo|zZ|Y$l&};roR7XOaB(DP@7}`OhJW z*L_>zn>n)Xc3!)>|2@C%?q`cu%(rkt&qI%Vsc8F;sPz~B9$HraVt&)}ZzC_*`c;LF z)};k;z8EC$OJwW$%pzDW4GbcfK{f`V@jqT^}Qgf{T#;dY^F1tC_|H!~ax4-Ca<;nZ5@Q3bli;)-2 zBu-KH!{%O-zh}+yIm-t_H!bsYNp*QMU%qU;eOi(Q%BOX*0&W*_!1#u%{WN|g|14~u z=f3vEqV^}%_4{gUe{cBx#*LR~{{^oX`N9nH#3%Q4dEyHng#2epFV6m%(uQ^2FY@U3 z&G+9lU_V!~e+AEfiBF!QWv|OqV19{w%rwUCa2=_>-dj{~5Lai|?O2SY7-E z%9kf!v@ajLzBJ@N*OvQj)k|+mM5a%L@csL1hl|$#)mLo&QX|=(isAL&aq;!5*RT8z zIFo+?GZ#qlD;TdIXQp30-%?Y@%h8+ z==aLKP|lzH(dPW=C(Cn3DnI;4#URd$)=Jhn`;Q0iV2o)uQxzUQ>blLG^5l_U66cXD zS>8<~@j}BxPavgyjyiE;ar+Od#7{#?-dqVuQlHo4Gt zxev|r{ORXsh{lo@R+0h7nmX?axSjqGAk_&CKHRE@L8}4_D;!exzawpE=v=DjMYR-jjQ7 zO&wcbC)3+cPd}BuY0vKbE!5bq+7T zRAt*~^7Q^LSL0okt5o(>u2DIva)Zh-mGd3fhL67*->R~&a=Xe2mAh09!uh5z)>U|1 zJl;(MJhj|3@Yg(XrR4#J6S0>Gv1E99a(_7UaF%9RiedTp$M9fyJUOlMh{_q2$5hU$ zJfU(<tDI7KQ027BBPwT99#c81@`TDcm8Vp8cr#yg{8f$=o?WH%hGq|C9 zj16(`k`HsH?|+H#^lV?3%0W2KEU$O2DrZ%mP&uda zl*$foIKumSE=l&T%&SS?P~ zRZgnhuX0M|L6y@gkEoncc}(T3$`dN*RGw1VF<;8w!(&DM^{+IXXU_i!gDt8!B1ew9-y52~D2c|_%m z%3~^LRi02er}C7_j``#6^!_MSIihm8%C5>)Dtju|s2o+fLFJgrO)AG#ZdKV=xn1Ri z%3Uf4D)*|KRJmW}l*)rDr^ETCFUmWbWAd(sTjhw1n)zcI&vWwrrz$j&ee089!ovHR zvGDR(NLJ+um2)ajsqB;%Uw@@4M^v^yLYzLI$gf}Pi6T^VR-te$_*;VRBlo^ zu5$hhdZFh@UyW}M=g_WZS0-ds(eYqlmzthIff-bne?9IEk7s03<$je@Di5lhR(V9_ zjLKswXH}k1Ij8cJ%8q;iHMIXqRgS1^iwn)158?51oX_UlYi9q+*T=%^t5G?sa)Zh- zm77$~f1x(CJ*{fIuX4M}36;B44pi<{IjM5L$|;oxRZgosqH;#%F_p6_PpF(zc}iu+ ze7R-%_?D_1QMp`YSLLd3=KAB3@ysC32R`v3*Qgww&Wvmb&rgo2+@x|`W&35F>Fx2= zc-#5G^!S7t-=%V(a<9rsmHSmrsXVB1TICUyGb)d%oK<;3<($e>D%;NaruRpw>D*&F z+s-VfbGaJts%$%loSxox-Z-6W)bvr68&r;|+@x|`|aa-edr%1M>`RZgiqsB&865tTD4kExthc|zr!%2VN7{Cp(EJT7=X zl9C(K=ZCqUN6etQ{PR(Hcs%!OSLG^|J(X)zj;h?Cviw?P~RZgnhuX0M|L6y@gkEoncc}(T3$`dN*RGv~FcRfW!rh%^!Rc$-c`9uWl!ZAm7^**s2o$dN#(f8tt$H} zx2v2`xl83ht9<7-ros@$Nmlv4<|uSw;&%B?ESQlPdSCoKksE<+REpDrZz4Q#q^hgvvRUr&MmhXfy%uqCspoOIi>PoI2S%oyJ>*WkOz+0kB8G{ zlDho!_DFboo_{kckExthc|zr!%2O&kl&A{t-%^z$DwnJ5s$8YAr*e(TQI#81j;Y+F za$MzBm3@`lRZghfrE;KhugXc4`&CYXF2}i>B(a%XH}k1 zIj8cJ%8vYSJM{T#smc+R%T;z&u2R`kxklxv$_*;VRFDrZ%mP&udal*$fex5N8WN}7kWlpGJ|a+O_`t5o(> zu2DIvvh6%$`gtOz#@o&rrpL$C_*RvDmD^QLsNAJ;pmMLuNtOFmPN_Voa$4mPl`|@j zshm}LLgidIzyGGM${#ML7?%Hgr2Rvt=^={OADc}NPUiI}B0rQ2-5<(Tc2%xY*;Bbj z<*3RHD#uiAQaP@2Yd9Bw{^iRk{rAE4xu;KDF#XK^xl6`{?$<#+vu}ID%OfXM?pHab z@}SCTl}A+0s63`}R^ir(NZQ z%3Uf4D)*|KRJmW}l*)rDr&S(NIivEJ%2|~sRL-e9rLto>O_;vEhkYT9VyT^{XFo=vkm$0 zxAV&RF10L zpmI#*rf|0PdOOah__FT0Pan+xZmZ$byQN!`M@^8jb$jwZ?)p-KiPmSw z9y0TEKlQ0}`{w7@vx)5QPd&G*jxX7F9F_K%UxBkPqt2?oZus=;zsfIDn2CSgPw~sy zm);~_RnSwL#nXMw(isNAHRUhm%5nw{c+7x zp~>&F)5}yGb|&TLm@_}r<@}#}d8OQT%$JmB9>@yQ+vVkdi`S4Zosn-7yV{o1n5ktj zpZ3J~My0tRi`&cgv5{-LGx_=yw(&C)%YHWPx9ypko}Yy9`~3XI&TD#p60o4@7cFpl zzB0U^<+DR(pZ?6lYySJCVCG-q-Au{9;NzTY;=f=#BEJfgY(3Ipv-QX)>~wbe%pQ|7 zpR&UrFrNJ`nGp0ghNJ(E+`gAbS-`F-QgdyHpV?Q(wC<_{T<+3~)e z-uyQ43^*f9QHpkYP z?ERtfq#d8L`#1VQJH7R+buVUyC#+|zyLLNbKVg?=J!d^?mz%Qdb?or0ZI5S%Pgu`dch8yOnJ(kO20Oo< z&(GNL)}tp(PFi>Dda{3GhDS&3cN$buhOpaSm*yRTHeDQzK zEXVx;!c9(lqp z$GRJ}^ZlXmgl%W)Ew;V)8IReVuW8M2zyB_PQV1NPVP4IIq$Rc+w;@=NjtsutaY!^F4s;M*qrJ#!y{eBQ+teO z?fA&2OpZ1g_ifG;++KISoj>?RGhNb7pDVZ>9<%H7?R=Sf(|*s6Pyd|BY2SG8Nwd7z zoyI+zJ$wCRH=5~EcD!$MX1f_4wXc)zN9}U$^%MCiv%H*LPV8DcK5Ca|b8wHz{)5Kj zcD{_gUUNIlaJO*03+=W0(f@C=o@j%a&e>@^V}}Pe=k7McBi6l_%zT0Mob_1YK4PcK zbej3nn~bMy`{Gi-fq#L$FF7{n?0w0#!@cLtbjg1<9@y-Ro1EHUm;Wy&Cq8D|*=9U< z-VBfZm+|y37?0TXr0jOb?S4wv*>>9Lz4zPY+5M5U*}vBekA2d3+&(`^n4Gkp zeuK%b9q-udHuZDUetNhv~S$qZaizJcYnkz-?zil)+0O2baCq`dmbe0d}%v8u-lij9Vshm5#uL_a)}wa2 za=&WU8{BU^XFayfaAv0alx^K_t%%f(w_v^-E<+j~6XSSFewbxJ9 z?)Ru&zw=%@pY@1co^L%_7;f*Y?k#pZt>^4|(ssQ$`&=0Ps9A2-P8YN1K~NZO-D@$^ zIX`HY>n%5)v+IrCXT}HCBVRT-xzbD*q)d)h+WBmb9WujH)+3)cIcwLGsj};9HNyjY zow)Y=N!a08>(0l_bnzB5U&2o3+vR4gdn?TN*jD3?U5{T_-xthslD56+x0>k!J3RI_ zlXEs_?Q#;k%<#CKK6co)`-{eN)?))Er>sW?P4=y4tb0$|`R)GCT95pR9d5THW3y+M zAAO%4Z#`$16Z?`G9($+VZrjdmyU8irUf(V+YmaBvF2}pgOqaAC*z>@vGs{g_kKJLW zi{5G6+hoSO_PIH-+6+$=+>Q^9nCY@MrwZ-;Q!_keJ@OTkJ=ZM9w>f2VrZE1iX1c&` zf8>9e=_3_({ni6JJi6ITpR}I+0XzL4o8i9ojCIeR$GJZ=<8yYt*dLjkvhMwv$=+tW z-utZIYla7Qe9n68DLcRQSlVXmks*_P>w(?Qob{}IPRiKjXY6tDn$3KXqjrAlN&B3f zvDy1`Gd{4Mv+l1q?T&oNxNAQTa$_b(|J}}KbJFIVJ%OnIYq8 zn`3`ra`wl~^!~8P@g|cq)+2U!?EjkaDLbEQw?AT^r=mY&#wTq1oqshsy1^_j`Hv<$ zr;W$0`+sF}#=7@)lY}_{{*Up*Ih*bIl`Z7E?E24|@o_tU+|HM_ z?*6@9j&=8^%zRm!qxSyhJZG0OJ=^v_Zg3U%D7i}T`kOaw`q@Wr^{GR z*x?!LZrn`g*z?A>Ic@LP=_xzjUT=v;vp(PExSh|l=VQ*EhZ(z^jNSg|2hDsb>w!HU zar^!}ZLcfuC(U$e>+V09^(U-ntw;aa43GY_@z^h#`Qqay=j{H@Hkj;uzg@0VM8~cb^f7))3J7K0vSWnyWDSI9G_PU5>?egq?Nf!J8v%I8zy$K5Y#qR&CU2gP@ znLla0g!eOx-s?CeHNl)ffY^7^bG>(6e35@`?3y&w zU3ZOh-8)OX*Zd0i!}ZrX*T44~uOvRpJ`InXiwno$QsWELUCP7Dxzw}^9UoqHmm&*3-{6E<7yEg?Yon=HkM%1)poWxrQ%fzQVLu>X&NErIvrG`NQK2 z%L)&hiwo0U%ER-|HSNWwnQdHnSeRew<%icbAHJOS=y}5HDU1sbn~N7RZFm_sEOKsm z=e6E7@e;ozJp7gBxz;<^@K?G$FW2&4uJ+$}opWRBHO}?-*w>|(t9`F6$GpxjbU(aY z$Mxk}?|j-bpJ^7_o>%kquUq82j%((+5AjU=YT$+LtMKs(^IXfB&opz*`<)sdZu4CH zood@$=geH~na}idO%onI*Yf8xJiHI*GySV!nk(7%E7{)gdas0E4g2ub(1yA8VYqGK z;}z!cG-004G~wwN%5yD$uHg$^et7!){<+q5KX>vEPipLt%1X~O#<%=1}Sc=|Ah z=hge|V&mrf`gO768eaY@!B={m_5OG*7e532|F%C~cfIqvch3ApyX0zb-*Nm! zR_SYch4z7b_x7FzF1zrZtMGA|ZCH5xtDOt&FL+_U6!NRR{jas}wR^;C=fG>{z-#Bg zYv;gg=fG>{z-#BgclI2((&tB+{}T&%E}!jpa)ma$+|Icr|0ZuY?)5ZRmiGfCv>)Gsq*RFfzWYfOf#o;ei}^iwIV`{Pz7x5y{MP$% zBqb%}_uele50>9*uSGSm{9gMp6or%c8PovF?^$neU_30p5$#6uQ+N3t=d&md%Wqv* ztY!bhQYUX0@?oh-cLK>zo~16`iXV5JJu(fx3+2ta1uX*aC23VBWIc zaq3{HgSiE*gMIu-v;menpNl`_I2&Q9@!5`(dg5*ntkhQm^t^l#*%i6(3=L$~5>cl!m3I<1sV>OC87MKZ(mUcn3NO z2l%sS0+w2ND;n8PG7a8=reqrYS+wX{romS=InEMTYU1rf<*?MdJA*1C;JeV zx^)Lo4Jk4c?5l!cy;S2(`mf^KAJ>_7&{m zyHEg2O|uiI7nXWqtA3h&13F%7=FnQellR>m&043>Hc z$54e#gWqxw`wf;lhg;BUSZY{2iPpeUzhddV>_eFb-;QE%0zZZ}!cv=K`6kXcSn8wf zLOz_pPoQ>K>Y%LJ%szyrHpxB|z*3*&4B8J%&5_&hV;{;icsF_imRdZ|qQkJ%aaqyA z{)DBLPX{_G)8Nmdj7)>CXysa#Y4BYr3rmfi6KF!F!B=cyAIdcNE_7a|!B3z?*D(#g z;%C{1u!nb`ayYVEd2OoMkLU#7uNp>|kmIMr@rAHq_{=>Q5~spVAi0Q(S@dQQ!#AC{U0q>zM{$ z{2=3DsoT|z%3&WLLKScZU%r$521~86U1$v~^}tS`I#_Cot$K)Ug{2y|C0#I)M(tS$tJH`wy17UHi}xSZa5jLnE-% z?^=(Zf#digl!epyEkDOTfu)w$b~FV`J+Eicq8peFU-dBi0G2v~`_M8tiJwDNu+)iM zk55&vT!LrDo!G)C4E+6KE4GwG&r;oc#(*{ltA}H!L+2&!H|@>L{*9 zkHS(*@eoSFX?$sd>kD@A?Pw5A;3v>gIE%09;8?*?d>=XqC-HM=0(L&Z^3e-$96yBQ zp)HLs|0MTqSZauNpk;7?pF&k|4zJzAw!<;}0E)sXyyR1CI~>8AQ4{RrLueD6!I%Fc z!(gdp+JSb%0e%W~!8yFPlWm8k4(b7vgj0A)7uya?9oA+v2un@XA#@bZ;LE#lSZW@3 zpp&rFH$H_XV5xCj`%7#)EOm|#AZIbl$4eez+hM6=+>FX$A0I*$a0Xw#mu16J1GxjO zfu#=eDbxT@{bFYA<{_z16ho$CV$uILd1xvlYX4DS*_z>CyOTE73zrylhsTtUf z_QO(N?-c5XrN&-u!2JQ1x_Adr8kU-PCHr`7f~D?VGa7@X_U{ln4NLvs<-f`@V5tGz zfzHDLehQVoj&XSHukri?OMSir$c3eb;NnMl-GQb4TQjPGr3Ty(s)IB5@?U2@SZd96 zpp9^VpF*v$)Pk%14X%Ay>b)I630P_Xmh^D#!x6k0^}F zW;famOFhgps0)^wm}`HB^BR;T`BC z9N?$W1f0Wbf0y$gj^PK8^iGk&7k?InBX~0^hoy%45UPNszWVZmEE|^E>>X$gEcN+M zp$1rL^w<6#=RYiU`VXKuEVcSeexLInmOA~-s2!FX{6lCDEcNi0_pv-!YP@%#{jk*U zK85;Wso7oI&-o8aUG4)Y4NGnAlE*p!VX4pEjK*N8(R~b^hNVvTia%f(u+-@8M(1Iv z(|rn+zMgS-?dLfEVX4=B0J(4qFL{FVAC|h^&8PVdN;RxQ0dSR*gHiQnsQul2|ifLh~{nm|+z*67v z6q3&4bNJdrod2-YH+&pPC-G9_aPj9k|6!?f*o>qzc&SY|gciMl<>Sl0zJFYlRj||?tUb*64@-T)11Jhh?Y@#f;rxfCK43Fyf~A(<5ZVMwoxtT^WEd>90z1%d zIKWS#E?8<5)(&v~!&0a407}AAtFUB{^Bg+A4k$jw$!*U`Ag1!SnAw2Bk2rVYSRy)MN3&ezWi&9hovT6 z2U-S8UAj}K3YOY*wZ}RCVW~@Z07YS`Ial&mod2-YziUQKu+;7wLYrWz-?#kh41=YH zUkBO^2ly$}1xxL{+HY|F!%~0m0Fq9orB9KP4Cg;A{faar=}cPspcq0&;S9d&1P)7I z6#LLgSo)(lhop08>62nTdI6UHFb*N-yEupNTb}0phowJ^U8o$EJ~5s}6|nS+ar-m0 z9hN>%_MtVf^fPe|HNet0#d@>>mi{RYp*Wnzm;MdsKP>%QY)9>|^l@*MA3`oHwfdHxI(*eXa(=;5 zb8a761}E`zs0wyYvwXA~j^l?=6i(wy|B3S-cJb|~2~OZA&?Y#Guli@sSy*c7?L)ia zB>p1mf}L^R8=^+FL?Bd&zbe@~QPoSf47GHIS^BgTOJ%eKQY{Bab8r7qsm zZ?f&M)Z*KRHo{5#MYI)`TAz2Kb~ug?p*^tl*|PlK*j`xrdD(}Oa1uX|+uk#r23#&0>tv4*9un(ZhHOFhdI=qxO?ELZ(I#~POUsE?sV-_7#z7f}S3dW`GQ zGFWOX9zs=c8ejSX+Y3uA&khuYrS9k{6oaMq=-U6w_QF#C^l{V*OKs1^|G{|vZHJ{lkSEb`SZYNseUWP%mVO#K&}mru zayWxtfOGiT|782hXdC`GS^}r=#oy-s21}nfTTlfo{cRjW9-P6KpXdGtdw4f$fCKyt z+5qS9+W(?mu=MTlINA!Q@Wublv4$h~7PJSJelCuo0G7TjR=mXh4VHc^x{-7SDt%d; zL5E@K&!W~Tair5v>C@tIbR3p`a!N`{9O>LMf;Xenu=I~JgrpNs>3d`OH6_k@So#6! zM$*fg^r>?S-3&{=9&4{Haa>sX_IMnvgj4v^MI}xR?Bcsn1DwE5pbc;qUv*uH6NjVt zV`wX!#9u`1uycKhb0^vZ$MHi*I?PPtx7<+T?1x=^7wU%-_z83v&f=>|*>+g!qaQ%W z;S^p%J@=Ea)R}Ka6R?jTLodKm?|sGVO1L=KcDx%cfu&CS8B`8St@iadmN*r#)N3C? zt6{0xzG_K{QwK|3^?hgqEH&IqUeETzQpbHe@?ojvehMXEspr1_4QwMUeN#M%lCbn| zam!65&J(coaj^?YM~(^nS#%W6;Az#?cd?DI^x?4`Nk@ta`~<3iv-qkvmN?R3qV!w#7+M2MA7|%~bc`tdD%^=Sz|t4P zD2l_EEILyGxud8IB)7kHXTw+2S&`9hN@2n$Z)mkDow;u=KT5 zTVCRfz*3L?t7r_C8u7PK5B@YPb>z3B9Gt*Up!2ZQi?972&gVBXFMa@(!zsMv&1^3$ zeP?Vz9_-`C&>C3!xL85m+6Gwqx9CP2-~c~^;&2XMOKse(u++{yfZAcHms>)u?me*7 z^6o?dEcLr@pyus<8ICujepu?^4xz)a)Wluxaz4XSH@puWhoxqC<#M)NhT|RRG%U5v z&!HUbd_Ttp$sbeW_z+qGXYks$lsL;^=@aSzS_w;kQ6&{zzp&IA-;V0w1U`v2z|LD) zCW^yx{1Dm-r}3pf!1lr}z6p+C<04e^xAjQepqVYA3`3S z#+Tnl`(deZzYoP=sdHbln)bs|vwl1BVX0ex3MF8vZNC18Xg@6dCJvz_EPcMLdKc}7 zrQeqWC=E;BFH5UwKP>&fbf7FOedN4|a0OJ6pt-b4H0 zD1HE?Vd;Zp>5tHUSo$sLKv`J&W;lm(u=E$yj2xHt<0nuAmi}F8qqHBEzFiI>4^HFD zYiU31;rmbwmi|Rb-b?#o>7#Bt@?q&$ZW1M6>07KB?S*~(1lkWvA1}3a-1lJV-{lZG z0!!ac%iqtn08774`_M^P`gAJ!u@dJjEd4@lN9SSbBkvSivYdT|udnBNhovv4A+!>f z{=rr?aDRiP53K`e9W4DyEnQpUY=ountq!ym4)AkmH|+d4?MHiIsk40o?T4l2eeE5z zAC~?Uo zLue%|b-P!6koLn;yZZoI2TT3#r7_wMOO5{yv=t8Ub7(j0tf&2GFD(57EdCJfhoz5z z?WiA?di$r)AS|`7@BA>YJFwJqA3|fW)P`TRf!A4B>hT{yQ?T^ywe};t*1U!NfFD9P z!%`D_`A_m%14|w8Luj=O$G11~`T|S+@-wIjmOkw6Y$|bDVd+2M7;1;54}sh7WH>r6!|`X)k_wI~ zzV@ft|8NX{60L-#&i;y@VgJKYTmLb%4wm}*i|=Ot!_w#4F0>U+;AhZoSo&nUGtT~p zm5QBu=H6~yOq~ySo(oEf!4v&m&={^bI*aLKetn8CoFx#Zr{dv0!#m|B@fU} zID+p(DL9EQ_j#U#rKbELGzO>f+qbiCVW~Yogq%v+jIZB8+hFN??i8wmrN6!{53)aD z>C^8Viowz^UkBO*OP_p8AL1N_r5}!eLwjNAqjmeoXd5j3;FYw|HaLRsLq}oh?_*Uv zZG)w6gcIm2Ed9W2-$mQ1m=|CAbF>YXep?QqDp>kHT>mg_gQfqbb0`K&pK<%pCRqA? zT=ny`4VJzPPN2Q8^aIiHab90w>BG3>7r3V22;PB?%5c0SQQ|x!!|@K3mEm|v2kn&M zcn6x2;dsd>IMyo|j(4C4EPagBev)$)mj3xl_HciYY49Pm4win9Yd=MsWg2`4`7#`@ z{YB1C8IG59(tcR_3mZZQWg5J@i*pi|{?2Nq7ATzSED94ir1r!a13umaX5~*piQukx1m-zfp?;w|UoLTOL?dtnFGI&+7q3Ja*u$&QGjJ5IM`LgdZ$u~IINpM?u#dN)({KXsL=$j; z_n@iHFa1^gchivL>u8a-h$$=kGG*s za02f{t#E+%psjEc??XPE!Uxb!IE@dZb~uB76YYj`_$1l`JNsxe>VhM98QKfGcqIy8 z53fd#!cn{)^};c{5$%WLcneCxKHi27!U?<+^}_+)gPwqs_y9`5X?z$B!Wn!N9f7m> zI7-7g{DxoUJclEA89ENTcqPif9$t-}fundm8iQkaBRUDk@fMVYeY_2wh7))vnt%hm z2c3nJcpu8aDSQCE0H^U`GzDkyQFI>8;^W9!Nt^LWvDcM$b(b(09p;F@nKX0XYf(9 z2F~K+C<^EBNmK{Rmw9hM4R8c6L+fA{uS7A}!>iE-IEvS!COC#SqK$AIZ$WX`$J@{* zIDvPfRye?W&{jB!_aPrn;R9$VoW_SyJDkBs(QY`4kD~;f!*BR?&T}||SE9YJhkpP) z3diskv>*2IHgph9;GL)+4)7lI1f0bCPzp}r1L!cE#)r`$oWV!Y5jcyFqcohuC(%*Z z`3>5JM&JluhK|E7UWqcWhgYL#;3!^?#^4y%ni5xfj7fnB^3MPLuFMmNJz zydIUqF}x8igX4G$a$z5DLltlW??hE_fcK!4a1!rB9-P7l&}ul152G45gO8#$a26j& zQ8hp9B)Bc*vH$@ zX*hv*q6s*_d(c@piGLpD;57amdI8Sj<7f)b;gje*?0klHBIoV26E8!HU>C1MrLc!r zqa|<@uSXF$hBu;{;W*xc%3&XGL(AX<-icf|zyoW%Q36`aBc&`LOs4LhBu-Z9LIkaZGe5e4K=|Dyc2DN z1H1>t;UwONHo+-;0JXwtd>CzoGx#X-;VeFmcEUM)61Bt5Z_#G78;;;*C;_{8CE5df zcs1&Rqj){q3&-$A6u@!31w9J;cpK`46L=@u4+r??P!dkz1Lz=}#)nZqoWV!Y6L1zE zM=3amPol%H^V_r;4Z;z;3>|@8yb`5h53fc?;V52@M&KCUh>pW?yai=oA8$j?zzMt) zjllulgHFOpybopJ6h44X!)bgNO~4s^6rF{$_&CbJIeZem06V`!`_U8}!OPHj*u^W6 z^A6gNSEEI66t736a13umOW-)(f+Dbwx1pQi1m20t;Q;SJ%itv5hg>*?e+gBHk^8GIBy0cY`Xl!9~kBsvT`zf1ekARNKV&=J_hD^VKu@M?4vj^g!b1did2 z=r|n5TTlk}@iz1foWMKL7#!d|=p>xP`%o56;REP2oW_UI1f0P~(OEc)kE0x%!za-T zu=82kkEY-VUWU%YE?$Y`$BiCdjTXUCydIUpF}x8if#Y}!ioibJhHi!vcqb}{1H1<< zgOhk4a^Vy{fGXfLK8&j13_glh!dZMAd2kM&M5|%vAnivra0D+yYhV|zL{Zqot5F>s z#p_W69K##YIyjEEpcw4qZD<3Wz&lYB9N;}@Bb>zhP#jL-185VR#)nZWoWV!YRyd1~ zBOlJ;lV~UG{2uK`?QjGyL%U%YuS5yh!>iFAIEvS!E;xqYgZ9Ec-i87=f&UVE6b|qn z)C(u^KC~ZB;R7fMr}1HQ5YFJEs2|SaC1M=V1@8M$RhQkJqC`a13umrEnZ?K}%pCZ$l9{ zfp?;t;Q;SJ}jSr&=ID?O(DmaUeqm^(DpF|$)^wWN{8jj#)s0McN zO0)*{@M;u=qj){4gJXCjYJlT-3t9*JcpHkr3A__+fCIb-HNi=|4{d}~_yCH-X?z%M zf;0FiYK61-INA#5@JZyu&f~Nn?SvzE8ES`Jyb|q(J-iwv;3!^?_P{Z`5p}_Fyanxr zeY_0?a02f{kHP`ogL>g4-iP+XDSQAW;WR#s4#F9H6!pVdd>lOi=kQ6Cf}KC0{pc_p z!OPGf?BbQ^2<+k2C=EyPdUO+(!{{`e!AH>qoW;k{SvZGJq8#jej`pJ$;0RuZreGJZMCV}-uSU*0X+K_%7Qr#R z5tYJmyag?ReY_1t-~`@@ZiWNA2bIG~ybmpdQ}_UK;WR#sD&P!0imKo&K8{wxIeZd% zu>6qv2DBQE;AN-=cJWHI2KMl36osRBJ*tCacq3|n<9G{N2m5#%ioprI6K#M4yazSG zNxTnjgj4tcioW#DYLtMZ zcs<$!$M8nf1;_Cgv={dAHWa`Kyc0bN2Y3(ag_C$6+7GAj0hEN(_%J#MXYf(f4`=al z^aPy4Cs7J^{)qOY!*B#ILxZr3SE3`ZhgYLC9L4L=Q8+7yLcr! z4|{kua&Dvjcs*JK$M8l}3divlv;_9?HWYyqcqh6U4)7jS4kz(GvU8XrbU zID?O(gK!ofNBwXPpF~f<&gW@AO2HAl3>}7Dyb=w<9$t-(z)`#&rQsOfh>pT>yakQG zKHi3o!wI|-W#9nsLC?TRybq1RDSQB(gwyyi%EB3Z6rF~%_&Az?bNGLwv#|4p66Xyl z2S@NS^aAYSm1qj~@M?4(j^g#mSxx)#Mzjcy<1MHZ_VG5f1Ww?cC;|s~54ssn;(e$b zPT>P+8Jxz4kqc+=QB(nE@o`iI=kQ6i5_S%=|B(kr@G`U-cJWG71ABNiS_4P%dK86Y zcq6KV<9G{dfPK6Tt%DPICyK!V-h(#4NxTm=!6|$IZG_YKFp9$&d=zbhv-mh_g>(2M z+6p^=Li>>qNANPV6L#@R)DC-iHQEhF@p_biV|XLl1IO_e)CK!^8`=ve@JV;GI0NM|y@nMvNGx#Vv2xswe)DP$IN%REle3AB}6db|J&|%ocE72hA;nnB} z9L4KV8jj(O=qMb=ThIvX<8A0ToWMI#1`hBZ^bDND`_LGi!UxbvIE@dZES$kd(P=n~ zkE01VhfkujuromWQ4WsaW#|Ri#VgSi?BUhuJRHUAk@G{eA8$m9;5hzKR0{j}!)OVd zz#l;oIKX?*&2SR$L*;M^A3)3CG(L=6ID?O(3OI|8qbfLuPokBu6pXn6d2j?TL#tsI zuS7MlhgYLDa1^gcQ8OC4o>2Kgko?C{|edwr}1Ib1ZVJ3v=PqY z<0ua2@JX}@cAli2s1=UjWoRqx;+4pUJ-iz2grj&pYKLQZBiaqe@fMVTeY_3rffINq z>VgBj2knKEcpnPj6h43+h12*j>V-4-DB2Ha@o|)dbND1W2s>Y*{iq*~;AQ9u*u^VR z3ij}7bQq4}^=J@|;f?4B9LHNw8usxvbQDhDooECO@E&v=PU3wi1E=r-^bDNFhtU|E z!AH?aIE#;?ES$q9(P`NEGVMnba0D+yXJHqwL^;^QtI-Q^6t729a13um=ixZsf}D5J ze!LAWf)jWrDun~Q2Q7hA63B- z{Cm+#*u^W62YdK?&}uk}*P|LZhBu-$a2#(zQP{`ZP#v7WJ5d81;5}#^oW%Q33{K$# zXak(ahfx!p!AH?XIE#;?IGn>L(I(jWQ`(PO;Rs%aw!$u6iG0|@tIpNxOC(&ux`6}&16L17CLuX+ZuS7Z6!>iE?a1^gcQ*aD#MCai+ z-h!NJ+KIQJMQ{S|M5S$7ccXSVj_*YYIKYpfE;x;!MFE_{mp#R~1iSb;l!RmWZqyGa@K2!>{NcKF zch}wdf!d!~`@XwtV{4~#Z0+5fx9!}qO9r@gyS6pozvW(+3EUrR-m>+f9h;ZaO!@b| z2OiqGX{*m3a zd6T>I0e8!`Ejza~Z{6~9o57u%cWi6kns3l1cCNqW?QZRZY~Gd!-8R{y?gMPlmwrpx^-f`cp&<{g{1?05%9 z=AE~`^X<32^X;p=cRaY`-glTyl;L;Vt-aTobB6o@y7hjR+V&2^G~@1ft-iGleVm0mooh-LZF=A#P8;XiyYFt<_Rzg|f2{fLty>=4>0Dd>y>DfP zMWuJ&EsNf{W!vb&dDp zg0k|xp2M@Z14@gm*;77&3_Nv{9&>U?meSXE>#U_zz01Er`JZ4I~)ruh%2QUfEuZR=_}NXL|+MG%ZV+mMn*?)^m%K&bhN1d68XN zMpp13&eB!%JUcKQa2&1(bIK^QD8lk(6k)E9Y{3x}0Y}w!gjFjj!u&aB8W9wsY6%sf zY;Oeal*yAQ_T>BIOAwPwRirN5n26~9)_7Y)NZ}!R*U(Tu`h5>w6X?P)T)!_Ln@uUPXPwz-FsVnuIES;Q1O69@Lr`z{9 zvQochXkfT=Bv}IqU7g+A#N@AJ$x4pB7B1&w3vrkZaN0na%2N8ehX!{bLnl9?1-CKR zcDMx{WEdk%&ra`lnU$?)VK|Y9#9N~+%^mSbYkaefS{;vsHwejDpNboZfp;4PITy@lT>jDqhTKzON@1nC53mV=LG0lIEvG|OT4=SH$ypZXaCO5 z-J>07vxY_xWTN*sZ>5E6+ME(k>2C-Z$VM;dZ}V_HT53P zlz_LtZ!kGHJ|Mg&FifeJ%E(yX(4g?1$WcPx!Q?LBomBB72%jgiX5vq_mozCRwY(>L zh>~?D94_uke;_n;4)*jXM}+r@z29V>_u%@-zW>3`&khv`pgjZvGbe`o1{;Tv#W}G& zs-A_{`;ds7uLH{`<4FEW95l?qQEm#sQG5!^kxuq%6WIWU% zyK439iqy5oqpcA=n<90INMwVaIc?2}wpa{#7^xML7^X3tXpO|sLyJq?lP|C>9a>llz>h(lxMehD30cyZV zSZiZ~Cbv%%Ik2Q>3E?;L#eedqgoQk{kCN1{IW=tb3hN5s_7-&1o z&S$hs;pSgUNCcuc~D@&-#d-@G&e z5qU$U)Wmwd{mI@jkvGgw0Wp1E-qxJOdm*56csM!OBl3`dRhn|j}LTQ{ifJ%{f(v-u=KR&n(W8p!Oclwk|Nu5G^ zhr20nRbU5@bepX$`8FQ#luT|Dc{L@sP>`1jyvS=Tc^Xdv@6M4vG?jU6C4a+XsaLng z;f0fPF_kK!i{A1&a_R2ddETvkJv~WCJYzDYX^HTy1^G0v`N=_=DG}LTQh^}p^*WMl6}}1OG*! z7k%({yuDCuYLRClRJyZ>uqPGCgYaqn!i8{mD_``&lmO z<1Jc?%I&*{ANEq&=ew8fp6l&4dT!s(OI86pP!y>^H1gf=A#Jlrt5mw` zFxp4S_dQfLCy&&iyY%w+hvR356a}>!gu++hKhgJgU@E!=bXv)tWRLLuMeiLko$2V+ z4fw7~pSNdp%%r`?v~2GPy4{Yx!ET6rKbMB8T=|6WgIqEo`b!ia--mi%iHDBv9mtZ8 zm@tDvI|eYx6~2#|5@HH4Q3ZUTFkU5f!blPf_h}KSx=<%TYEN>P@corJj}<{55>W8s<&k=oUI-=0Z_YFTWt%m9qGvoiw1@pyQ18^-dEbRc;h z1Avs{6i^3_y&MC;F(o5_)4WXNnuctU-!=?c9c^t2V+2zhiFY)&G)Hthrju7JUuM`b zoxF6}a@f(tjLE)yBNNzaHcVwqMcx#zuQu`~EjFl|jJ!!Bhbgui4yS{F8aA>fE%v7B zdW^o54bsS7kTP0v{ieK|^tnv+<_EAY>f4LZ!yl`B_T z@Q}f3x(Ep|S{~d>R%=OZ^ASz~uxu*ge!g zg!a~-&}R-62BB5O@Rn>vE%CQW?yUkP3o*^`Z&Z;B(Yp|4DPj8CrKgbubQa^n6aT0T z{JRj-66!SlP(QCHsYcr&2snQN4RCnMU8G z==mkokNS7ZDWV87*oyc-=jb-!KU%>TR@AHKW7KnLMYVc9Rz1(C2&?Dg)N`mJj=>?) ze!N1jtf*JdC#dJy71iqbMD;wUBCMWIQqOZM;-g#pFkbbatO)Ze>UF{?iZH*TS|^;U z2vrqfop72WEKmkLT^V#?1)*gtTR&UD}u zT7Y7vgV+luiW6ApIh>d%Ug2%^AOxBNztNduDM_(h8n#XH?i7K8nd-%8J#a8nb44+8 z#yuAh6mb_yOq2tGu0RQrLrV9gH6E@pmQXT6 zVJ*0<0 zW*UNurG_Tyv1${ox(=!%Ob<&Tq++SDN_s2`Q|M~Ak{)J7P_gzB#bn3)Lp;YI&x`k4 zhQ@2%j8|aIGV&LG2es+QsSSavP!)>yX+Y?DZf*t7Ii_wXrT{Oh!PG{sQ32Gbsf}Et z3cbU9W8HXc;*e52q9q*_Q=57I5aP+i)Pwn9o)-(9+c5H<+RBlaV1*0A{I34KF)Y7` zsqGwVHD-x@!yO~Z?lCd-5FgdibzTlXeCl=3BUVIxz|H9gthXONm=O32hs z&l~V(dx>+}{`(u{XKKIi09-c5V;3EVJj_I8Mq#bux$(WRfdLb3s!TACc(A^ zYuHPZX-ok}w|3CXM-=SG)Ld`RNFQDZ@-jxjTDDn06ccp8{+=k1vk1QUFw9d6I;KBP zguCFB5n9EYK&|wc+U5dp>`eC{~9`K!p$|2Mm;5p zRE_l1HE!1RRJ69{)+k;CwAAP`sA9q_c*%1z(0EQ;-&iw*mxx$UEqIOR<&~8*|K}-N zfsnozQS3O~^^I6|uI)%f4>1Ptpw!1Bk!D3x)&Z@$u`QxV$`~MVg;X@v0#UTKx;jh< z7*91gAlA0Dp<1gTeOO1-NUXI%#Z(OoXjlSmu0hh6Uo|P9hHGltno@eIM#QA2X{(wL zGbE+6n(>$cX_~7k4?<}5HPV8Q3{VGzXY@v`(L}f@W@w%ec@AMJMnd?EFen>or2YqH z-55=@VMWq!gkgn09BoEGH6{!+9}XBHsKKp~O|2bG;q~YT^vW#qZNX8jk($9%GlL`b zjiMlvh$2&;5QUlKSiFT^ok3z^gD5gW6Aj^bq@z8GoT+Jx$5E50aUs=2u@R>(9&XZe z6WvRFHA-zPj0_efMhqi0aabaph;&p(8p0c~{EN>v=+;feNJMCs(HgD8;w|;rqAW8` zb4!O>7@uZ@)HSw*TUB{Vi0Pt~3U@(Jdj5s-UwO(rv!uV0?aK-2CA}fq+8RM;qc1Y6 z;%^XZaBo1AdW@rR(+6=5vqdJY%?RMx}_D3 zu8N?lhGPVMy5kte>Z*#85zZkwqLj>3@NTx}O*93((9+O1)`~S}QSf>8>;a?aEO>`B`g&|D`AZAuC~pD7O+;iV7=XmDt-#*jH3q z39H3yD`Ab8V8=Ub`NDkrd>5fN3^fYxxeSYRcocnhsW z9&(FCR$}B}^Z^O6*h-~pSdAIThDfW}#~Q>H-w0b`4PzB)sDPWGsVOz{3`=lrXuJ`y z%o>o0VDA>D3C&`;H2{luiPm^atRW&+SVORawJ{=AT8T9+O-*63%1XpUD~g%izE*02 z6jg?-vRP2{QStizIP?qCkK9=Oxtq=!fP*#cqGbpRXK^c^NadEa4 zXSE1tP}Yd*3<_43YBEVnMQtW&nTS|Pc;(sLny8`Cl&G@?f!fm8$o8nWhVZgDzE@;X zGulj>1Vq$IZNQ6XvEE9Hh3g}2F|ol)twl$S7txJYD(3Q{$x0&jT3Quvw$fE+)M6!a zR}!<*nE7BU4f@2bl;*Z3N_!242XT?GhHZ#-)J8W(Ya{qjlf?)K;6Ygoqv1At5KVW* zMjJiW2y(lPjFC+wE;iZdOT}gzZJ9X4Mq4fpwb53H!)&yb;&2;nl{msi+gEhhXshvg zs!R*45uG;L647O&={2+48o;eYstxI}hK6IYMq?C~v;ZY6{0Vbv{D?ENm?bgWs>&Am$@uvs9U;P3}lklh`|ifvL#|DleAO}XOfnQ?U|(I zVkDEaLX28Tkxh}BHq@yxE4d-k7!%`GT2rLCP3*AJ5~z__e%hHq#Yhw19X+i%bCz;J#AWyhgpIgdTwo`z z5Et5sE5${2;wo{mow%>K#7#W4cCL&&MC88#vp#Q{yxJ3NaN^NauX-m)&RZ8#MtubmNHBoGqN`>EH4Og@G zn$2y^SfsksISfnO9DJ8G7c+5t|au(K(;^J{z2-c#o$cs`Teq{@*t!_*OKVb{Tf)a0ztHyBa z*S1hFr$>0w7D3G)p0d$-zVRCySwP^1ElPXkfum&6uljf?j~o1wYRqmZw9R?9Bst*Vrw!` zwrkoNxxd;gGpMC0hJjgJOvwlc*K{N>ovLXNx%LpAD(2bg)W8a#onF@xZx6?7h2I{; zmI~PE@d)-lWBnoD9#q}ZvY{y)-;fYfGXn8;11qG>XbO4kSl}9rA!lJmU~M!(d6U3u zH4E==KSf=i0DY=S{G9QU=j9|axiK3JYP}C(o zhhqu6a4t631d5jgZigMbqurg@AcW2Q#mlDB0y!wV2SoAm{3sqKc?X7iMDYrJhbw*H zt$3x{(<+Jyrg)WS8&HZb-W&UX=1+eT{xb4Uy8|ym)xvwpV&A$o#=`q%O!1oN4Nd~D zi?Hj<+;WdWcUnlaI)biOsMbZ9&Zm<1K(Khz1Ec4&s_yjMoAdmIfMLP2u=l{?h{!*a%rn z1}{0l^9*vJFadv{^uWMY*j;VKFFj}qJ?Q(4cEQX0jQpaQ;+C%SG=jucXZ_Ib(Xl?9 zKq+euUIwDt(rQvIaZuc9MOoWa!m|Vr`ADvM`gX&zZdtfiF9hpbpnSAuLx;m|S8G^3 z-sjN^Ia-oL$D+!EHA;I!1QQxnAgm$iaWIa+>r;r*--B5r;3Ybmcs+tD7S;&0^wPT{ zhGR3TTv$VqcoZqUR9J&*<7lEbprB6X46_F6dJ(MGAsA;!@Rki7Lypy?t-FVlqHNIf zGHg91YZC3hD%&pq38T)T(T6F6$NT1sEwxIL5g2KTwQkPL48=!hU^2|C0%-JrW-G(c zDy*&zW!Ym*iwbFv;w8TRnlVEO>_svT6d8ppHiW~@jmaI@C0MrGvj|Bme`FsVi6}c- z209Kv@uqExW!ULQ`|WYs9h=gCnt58@tMu@G5Wv5EDPqLzOSKp{k zJ6+KVp~e8R=}gII$4X0Rn?F7+!y8CK6>Y=VP=erZ%R)NrH?Ja*9EgAB@tF9=_SkRknS+idT+5lo;en06@oO$TpSFEZkg3>AmZ zc<3j%?g6!wGO+9d=_$qzovh!3!tDff932`F)0WTp4@jzs(P?SnXho*&&#lNb4{}}= z`e`G+=MU5ieIn9K{fMy_PhS#L#Ee(FipYB)^a8Fk*KfwwHoZehi_~G1=(K2{>AgpK zL}O=mdPFn}qL_4^cC04|Z8=f(C>pf;Wn`$Ijs;FXpz=!usl;c5O}iv)bf41?@-4&z z*RE7s=+t&*hHk2E*|dDs5p?xeo;inWT$VPOp>w1jUrD! z%0uv#y>pCaWco3hZ!0#Zap#$q97<$HgOV9aQ<_co8p)g#W^9SeYFm?|^O9}VP*IK9 z?EGw76~)%}q=R6Eyb))Q?2V5eN#Pi=_Hr>>Eyjl(nC7b?zg-&+=QRRb+oH?i7+hp* zZAp3zRb+fFYBWU?HB0qZyK@X zMN3m#op|IHZ^kmu1*o%y1Lz1!XRHY9hN9lS9$bPp^*GS!sKtzZ^+OfA#f;VJP({(j z3-DR&HT-~0&BQ!oKhOT)Rl^kQwZlb8FvQG-Y>2`_38>&bfkzRA&l3lKu5Vp`awcY! z_wfT-T8bCE-*W|`6*i(pC=5Ov*wA3`Jetn)OU2{u=^Gu!09XVcV}jR<(LZi)2tLjS zpmK};Iv| zqA(BU4+Y-{^kR8Pne)wbmEKBM>20M_(O&bw|Bg}!JJyGj=um@yN!RJ!be-N)I(fGx zchhQ4@O@tEfoVu~@B_~Wq{peNaRY1cv%qtv9-pV{@kP2Ge^+{VdFyuYAA1o`E>6sM zjzEupaw-=V-3Rjr|HThWM38Ry`7@&NLc=UkOyYuHdPYDh{IHfx@O2=*UZ2MWrJ6vA z5-w7jdYV+i`QlMe-U=msl2q6BROsTfB#SI9VfoqWX$IE3AS5_hdOn84^23qA3xgpU zxX~0@VG+5vMP#K_C?R1yj+P%oD2iL2N(f@yJZg`T>K-Tb&xJ%&UnsS;czJ$I5` zS=azOBe+%u{$lENfWp`9d!TyK?R$`V@+!U7si)i$8jA(P>I_>zX<4nF@+)wBqv4(@ij}`QpYo(p25!R10-nwXn=NX#Sk#PJ z)I3;MlVrseet-;?(B+miVB8mMRk2DdhH=&fw~}oV!8XY)-wcDaSp+vKQmA5JXq@A; zE09V>K#Wa_Fi(_{(!tHr^Esv9r#=+s;1M!V(`2OJNF`A>bfM?K}0a5I-wPredv=X%wXpKpK(ZjrhF_MoLJDOmwswyH&nsiKs$3HC|P zT`*_)NBN}MpbWfWsy1vEj=-)Q{IWjI}kix299Vp>~^9>IjqVoL~Ekk?PNnangs+;F?6GGeo#MknWv2S zZ9_LU;@P@xI7dmn#W`pTNcyWKB>e&zc-54CkwyB&7U`Gh(p81H)R4~A_PgpymwuT= z`sJo{5*WNfdbUAc`7laAZtw>(P|;$f{YH!Qn=I0ARwd6XN{KOei}butC{Lgm27*79 zfn6rbPc107TTt#WEZEP>Yr#9^3|czO6{Q3eyi0oa0Z#dobW$z&a~UXz8M@tXL4Cl2 z`k;ZzQ?=kP4AXF9@Q`5|&WeW(({OoyL^q8p&yQNl^DoWvOxgq=lb+K^wH%~A5PV7o z&No&2twpt`Evh|Z$+Tw;%{bGZGc;p8pEopPJ%6WbCQ32>w+OxZn6pHDlaw{7v~wOK7kc{9JGIL@B8d{6c!(CVk>iZeH+98Fz(lM8+=rw~w}q(y@eEETLr6%L8uR~U+ZhyWf5;B_5|4NA>3 z23q+R3`GLLY%MSpH*Dh7)HpCl0p%93D_7AVHMIMorASac{gbhwmKR;K0mVR-G;Ga-t6 znWpiGo3mlM#vM#4^+q$4e?~d>)>>5C z-%xFfKG}c?56}uu!-ylGq#mf^msap?Vn4P^8K(}yCk?t3w&vU z9%2DKR0mbP{b3r9OT87Ub{wuvA--HyJC0DbW1gxVIc<9F$P%R_CD@^Pt|O6yc%A1B z_Q0-)p-N`2MdTJ;q$s7R!L6F77%|H)no2FrfEKvZAt9EWp(s=#~t&9f0RY$2F^h&Lm zMv_%WsZrQfS}~2@s*d7u&(&HH4VMteZ?;768m*K@FjYtO@Fhqh_&u$Z1{K7P8#r(Y za`5|F84VDsx)uJl+Dz)%tGW${>$F+apH_7n5Z7z7sEez@{cc8|^8>A%`m3sLquIYf zn?=oeRj0vpqc)9N?#7+Q~D0HYO9nXDS!J-QP!(;sSu z)yS`^F{4AfRhvewaMgg`G>G7B+H`90s(MVykF*)o&Q$e`;KsJ#kF^4-<@4#@kl=&b z6v}aRpT?2!ai_Ddz}s*Tf1!C=Agyu^%C*{^5PU=P{TR`B0SU`lk&Uz|Qa#3SEuwl> zi!}8(s=~qO!w4bxj^-HvFP~D3(87g&TUYRJp3)Z)knMd1F27~_6dv`8jC=?o-FUsF z0o_<%w+Nj#!@Jpd9i-FB8&JUlq32~_9fG(REf~rGT=SLzc`sHhm;O7{nc z8WmHeN-eq+(rk`OZA?AQQ>jIdLSa=ZwQ==?{+$vSN@$)Uq_4abD{-}z-*K$cr5INVYlTJ{iN<$YF*RF0okQQi~NXw^-o{ixsZ6Sm7GO3ToXb zbgjzGUFK<*&l`1c9QcrVKUf!&purff3hi=h4IncZO-PLGB zLicEa#fKZIxKG8zXER`q(1S|vNfrH_BU_RkX~phg70+8SO4k;rhdiP}_7bH8A9_^t zJVUawXP~bOy@28C5r(Ya8?tB>B=oYyVy{>%_Nt1hmzzJSC%xRfp`K=x&`pS;x76S{ zXx5pxRdA@nxC$}!j-phkAy4QpS{|u1PucW+6}Uv%^aJ&@Oxg59^|V6S^dt4O3e6-H zol;6*=wr>Z7Pg#s$V%*T2(9$^Zv-^=?4i{jRl9J}G4dAc$DuWzQflg|RQ0Cjbw5uj zH6rurKH$(=PZ^cJsuA4bC_?*t3aPABQBB|)B0>jv$|&Qiy2o)V=zs_v=qa87aiWx@ zhYs?1=HrQ*Z(OO_q4$I3wV|g#=G$&lw z0dUfkxRtL+S&{zt1&L>thhC|^t%Yj_FfG){~kE1`=*Pe{iY)p(B`Ygp)EDo z*t2B_LoPL}*n6Gtzg@a6jV<-KiJ~=9-xA-9Z&jp@GAivY!RkHeGsb z84zu*Ye_2@CLKHIo72jLN!PFWHZ?T^%sZ@A$)FvmloCBW8cB%BqL>n~_mGFmJ=Z7H zik9)Q;qfu^e(Sx5W$DLAUAFggxcPZKMx~;SA%03X*DO)^ExaHJRPG;WKn%VttMWj# zB!ruwX;&ZKaaJD0t;QtvN~&_*RH~C+QB16rVGm(v5qse{>ba+~E^sCuyd$ErfftK} zcMH5e+Ri4uUGV0UR};k)y)x?AjM!Yao06l{NLCN+s-bHX`Ms;ks>%(%vyysNHQ}HD zPN-wYmAZC}FVd-xx8OLeTMWLtM&+iRoA=^$;4Xctj;hkTM#7c|U6R^^=@wC){fHR* zF>TS*j?BVO(LwqvHwA7)+Pr9=>FUVJL(1q8!$q><&*0^u9Nzg-?8-wuWQZ)H7j9mL z!ARwif%Uyc)^(|@E23$2Wq1Di5OBR?ePdX6sqE3O;U7>|7L`f0aneiOp1y&zatr5l zNY8s{vvoG1&r{kZy0<2==d$vsIWZ9FKE+n(nC*QO+7y#EmD@Z|ka`;t%w2X9R>S%? z_9b_U*^9VQpEevZ>ff9yU*Q%#%XkkfwvDuAUKEoSfK6f5VO-#Y!%r$N)535+kP)V` zFfFVG_ZijGO-m}zGD9erL@}u~XQ}5nC|>v`%H^iHErGkCotJl+&OMlIr7FnWI9u6E zhU=hp2#f>t%biEX+yn>aa$T_mwB{0C0HcRpCfCls9*j`twz1V?mY}Uknm~xT8#$~M zONx_(cpL~^9I%_5w4B@S34v7Djd@<-+`|HeTcPpr&?r75gk_hxNAN9_deIVdJNVX9 z6o}+5e7a$1q({s>l4D>`J0Z;N^gIu=EJB&~HbzUT^3Cn_?FNOLszf)g9BsnNRdW(w z$-v5H2DuU6c)-_jRQ{Net0^WbJYmk==9x|SAJ>`qr}~~Z@aeWS zkxsWMV5SKm7;)ox!80UrAv zwt6#2%sax91;H~W&Fjv21fH4LTSrpp{_epV+_aDR;JhTapEJ2-Ae?!%Qzc0;ufK?rNh4y!O!A%J^9HArV3d7|KX1tM z2A;UmD&$eUIc^vl+9u{NE?WzUO7*1!dI7;#*W+|c4F>;B<^70N zM*iZXrh;(z%;Sha{^En?fUte$xkMm8i*4;2NRHGPqr$4Irr(C(Z0{X#eN^~=1&^OR zEIN%RS}Urq<-LoA$prvguq;3epr}qqVdwLL6?!j(4@1%8N`90yIlx7a3s&(X$`G+G z*w^z4q!b>D+7MW{Adn!K{?5TI<1}txxJb1EXbkb)6AVBXE@lF{LSk6BkEa6hJvhOI z!)}dY(Fv@Rr?wq^i&%8dO!{O-7L19n>R=cx7F|<{vWpb**Mw+b9czt?#fxY2w}2>$ zBJ8u6Ze{o2`W_4eD8>?wkw@*C*k`T`(Dsk4UjaAUtK1ji&ufg~Y9F!BA+q$3>am8O z50@ox;CbQtmg*T>W?=T z-c65n;W+k5*N8>GoH2QTjFks>(ZvWVg=evtjCl*XAUcTBAto()*0UDmB07i#Kkug% z9y1Ejniz$cJq>&We6+x?T4x-DY%&j|q|@kBVM}{L=nXT++q874 zKHkB+27GF}T%B=Qx+2!J)U=p)v?=%~9k(%$Z-EhC7NYwy^|_4VYr@8AwY^h4Lji0F zRl7MA1sw4fR9*9A7LYbZH-@pZJ#{P#w3dW%DZS#u!Lto*LT$xVlnqUZ+IW+3UmGhK z$7aeF+{h@3$x^ev>v*}4*gt6!um6N#s>y=i&-yojmJk&X1$+t z8RGCjY}SXmoUJ|GV%A6bl)<=pxsMl6@R^HQAD2*>35Xf%X8k4WK@<9uDI}&!hdxaD zDM+ohKMfy`0}c{}J?k)qpY^6UYZ&tQ{mC@OW{^wG#z zv<}yZ;sJ+eBJ?#QoF9^>GvC>8dBOflcz8Cl*ntmI8=>tj?`4)>z|DVZ579R!N4n@M zHCmkc^{$Q`r7RdY&;w^#8S+NkF z)RK!M>) z<~8)-5e9#oX?qTef3}xCQf1GYczfN*&_G>GX#2}|81O>^{2C7Z{Pc|?KY#29?LG#C z4hZaQpTw?tzKTsa&I!^{*2^ux8bBQjcyniAm3($4+!B)IP~*>4F}1g zfm^osEsTooXi>b25!xoXHwN|D-uZAj;j7`{QI`u#V!SJXW32etlD3(7?Z^k?-DFy{ zL*(f!;%vD2mrelR-Z`q2I#k}n91p_fq2O;P;38>4JIuxO@#HW*ooRkJPH2bA!f{IQ zG`Rf5xYh9Z*)f+Mje~sVhvzJrj+V{DGd@J89U-?d>~^^MClTah*>I>dI~bD60e_1R zgMX!=&^qL8jBp3s9QuNt-LUZ_-j&%Hk90|T7|ZK@-K`_L`KxzYr_9?y2`_-_qnc3x zkDnY6waHHM6oO*!l8wwBhns)6$!b?pF|`fSW$8leW;VB2HDMfk>XA1v@~v=LvBwCV z9d5t5He`G0GktD2$P%F?>Mu!mZ?KIIhgd459VP1&EFNZ{c!1SZ6T1@`ZbP zgtmo+y6J`V#qgPG<{2~mLm$SUmnMT zP9Z^5wJsn*E=?PAs>(kg?_$3Dh>xN_Nqhw0Ae8x33oz(X4WO6)VLyv{LvqG$vIBNH zi5x<=r>F%V&0`*+4a@Z$I|i4P!ag(MHyz-Z-xjm973l`#1{((4&TYP3oM}Lg*i5IL zwGsIU%YB06l9sQM+*Gx&qnJt?9mJ^2I+_wX1+H(g4`U&CRM*Bh{KzTcyuo|HJSSrq z+9lNYy0kHQ7{hkK&7seM*;O%ElqLq_xV)GduYl_###`X=lVT1Ku}*Al(eq%3{GVeJ zkcwj@d8hmri})YheBUuTyj$68#AnLe!y7x|?Lylnmmzw#cQsre8Rbyo<`D%Oi|xd; zP6Qw#eYy>wj&rQIb@&D?fQ7bOp2?`^!p*;o5cwmCc8gWhm&iG}H5*%ncC>tm`5uSM zrS5a$Wrw~_r%sHsUe-rwL|=Eajq>b_=2X+KR@hNRvV5`&Tq=%%c8Uuc z`hyyLXryZhA6RdtuRds}a>Hqti)xq=^E6p{JeeQ}H-`rBcBY2T(F~^3WfL6Az zb|#V(Ypda}1Z!uw_Y)MU6Ymyi^*BKvFxAdUv2*bSVD0})rq8(74xaP#lq z6MPI;Tl&fXZ`yuP?fdd==KcUK zXYBt7fgKuOLwQ28<6!j8IPLseK)aTeut%#+Dr@V}u5*c|(!zkq(d%7eaX5{G(Bl0- zUU>>>cP(6gSAI7!VJh9iG%$k%LLCH?6?HP5ACKZI;q*cI%of_qOQKF*4xW zue4j_FIa=e3=Li&4Q^WFSk+VS-{Az}W@$^BXc&(KsY{5o+jvgoV0a4;4dI3MBl!ReeUyZf!q5M|gbMA)@_!64 z>2v_l+@Sy-mGnJnfPxSn8>227Q{11(IxuE?8wrO}f9U@Q$GCw?Xg`(bGR{SWa~&M| z8Ch{Ea&=EyrB|QZ-6l~MOX{~mX?M7EHr9-$RO4b4T3EyX3+bpX^|$Btg+0r``WQ zC?4z!?S6R!!`uot|7Qk-L(<~OZfxSHSLeEf_JDky`QC=ho%83!OULINcoUsFu%V&9 z7NdvGk=7)>uZ~^_W%5C}_qRCz;WEf-czD9=0%AoF+Am}e0~}=l98Umr+{_Jy=G#^j z=<$&JA;bLCfO(8yC^2p@SeR00Il%p}%TQNEP)jL~xU{`0j%srsl}o=(*4P)WuMQ6V zR70Qb{k!8hBE?Q^l+eLq^;H*GC&T4uNNnN`>jlMD6Jb1t`T6^ ztvIezG&-Y|7#kWkfPN?MW}y2Gpl2;WuIaBu!#Fau+kkmN{+D4q=b<1Kz)7Xa6#~7F zVmB5mUu0d}QjeKTeJ6GWXfN$4S{OUL^us&a?Q3dBT#@HaJWRqeA<`gwe>V zX!M2l#|fjU8!^+$;Va)Dx>~G%^&7;b>L#?;bdF)yaPihk5-+rWHv!-JS?G0JY z{0#>GVHSRef`lSOY6$Jm@;GKag;;6Sa)H6>z=g>Yahbc}v^V8_%>6Lj{Fe+)|MAe* zZDx$Asuklc#;_M&Uf!XoXrbPA85yHpHCl7TddH>LF``&!Ie&5KX^q&buYFfubpd6~ zb#Qq)a63G1lPZH%b>;8Lmzni-VkOglOspQK-|CWA+9l%{M@C&7;2_ZQonE+ z4H|J#oYXAr@ABr0$@D*l%d@aY;bGH%gA$3f3hf{ALq_vH zkpFPGg^pVw{Qt&)gdKp*- zaClH?|CWDZ)_36MtPeSjjMA9&b+@l%;iZ(yX>fh?&T2k9Zpi|B(@>Aj`5)QLoUL$k z=tBqgw4vWf#s9B7p5vbiH~&01eqwUqQc7}VHoh33{ZHP<%n!r$(f0zLB>?`4fL$yA zu=k$7H9#n|bzJ*e{)Yjy?*f4M^5O9lk~%_^`I_1QP%W&GaxLOx|2MHyD-t7imd_`U z+}KIJf{;=k&k&~)1aV$S5Zod;LO^ZBsY!Vcb3RC%#PD0Rn?Ns5yL!plWY8HYC&iEg}R9yF?kK8h2X*G;)-CdbyHofyLA zNV({860{sHH~-b}@E4#R3JlHRTe^;7o%fP*3v&(-CoS6_OPnqlO`PVbHEoKN*D>$S z2JZvJOCW9l^u{$MJXgxeSx%P0-c6Vnqu63Cj zbH<4CNaCa(dIEM-$rQU^%CngLJh*%a@oEFYSvYU>()s&nA{lTiLP(~*GZgy_@}>NY z<@^(Fe*Tr|YO*=~>!G!?NGP0fq)?kG1Qebgv(vnl&c_w9qPT1 zl&)SUr3om}hefeuI$SZ*4}PQ{F2nT@9B)XV(yf~`S5l`=A zN~OG$W&WIGlBlOiW~%RXM2IJ`oQF1vCF)3J3dtTHJC=vls?wl3`6IMxQdV6}DP00L zKLSU6`kf0ok45b;$YqOIbbM$Nr%O4;NJqnEo1H~y^xD9o+#&G}7&F|OF13>wySeBK z2ii=SltsNmqVleR0Q~&arz^+QUR733N4EFDeVsJXq3KMffscz*4+3DeHv*UOk05+@ zOlSn(T;>j_UdJ1Vv!pzq5id0mZy>~VYaERO0~?GXDW7Db!FmuU##*l}C>? z&n=d|%A`k|FJ<@lN&7yy`D1Y0lu(IIBnLW&w+`WIJ?!I`S2OGNaD8{cp&z#{!27ME z33TCUC<~-~n^8W1oBwx0AQ%TLfQj}1&^~@yaxLjR6D}KXAv_bX!G4N!k>a$QPRBO) z4J?-OXclpzA>txKgi4?zL~MwTjqWpnkd2-F<1pP4DgVIme2TT5 z7w>_ydIUq8?oKkp3dL+U6ltWgW2KaDF#cZ*{C^wxuBA|CHgjr~l$F<$L8{=gjy3Rb z>KMZb4-of_my&(v33v^^^m6#7BBqT(~-s=85|#I9cscSfH2fq zE#=*eazCL^$MLp-qPjuadFi)04jI8{twR}7gtkV?q90I#r^Ds4b09pbhv1&w>Np@{ zOgYr8(k-<8r0ik1qX_OQbOpN!&Lz#%h8mn}QU96qdbs&NCN5%k6BxrmY}`CY=UwDW z%=ao>-@glS0VwfOkL18h!`M_lnIH#9IsFE*LOEQ{_LcCk0)B#YK~g&KIcMb5fl?mH zAiW02sRTm&e)f@0N-=C9DsTcNgP2MkB;`*S?{2vH4;xqxx?p=pyuMm!>!f^>Io^ZI znVEefM6yGRAeL_`?d>>&Qcz)`g{52!W~_g}Wvq4=EJk(EibgY}Rkf7680mPp`BxDN z7b;eZ_sW`%D+&~jL4OdXf2lX5qUH~}tS`fwqMnP?D; ziENavLmI`DlI}9V$td{%V?0V2)C~NdFj7-uyAmdVnoBoeB*O?N!!@7PYUFNdnr$3knve1j!CYe;z8l;C1z~g5=H2Vy<#y+JX-(12P zZkE#XBT9D;Tu%2)cvQMcLx+T-tmt~BU=G3fmtkTCOpggedO5(Pw5je#;{k0@QVx~! z0>=5Sfpe>g^FXm9PD-6LoWn3XW1Ke(oG(lq@*%+lXE(Zfi(?jx!=MxTXV&V8xUU+p89^ zN6Ni_N_LnJmkU5OJgVtRHCXlpsnkFv3tAHS&uBa0=AUgMnT^XtdeN;}v=NBTqRM+1 z=0Uiu)bl13zYUl`pA^a#DgVbPlWvDHg>Y1|T!tDdMX(PY`%wd^txAsxq^08aDQRwT zfr}SRxRy*iO3I6&OSbn4xSY5a9OKXc$C4cE%`))e|?Z-q7F!T5~H4Bpx$DlTAT9;+H{pM zq-$COI4I>SjQnQ<`R^vOdqe67H6-PnJ1OZ4;d0W~!K0GSZK>UY3Wv9m(9u}g%l!QY z|1k!?gYi=;@Bo=k!*UID6GG`WhSDQaKFg9`G9-O!NJ@>TCzPqi&!bY7-bE=6!sQf) z;mN4v| zofAtmB0}OWCDAPrHABOA8M9l;w!6uAhr(s!?S@AgkB3vN+l0*&0Y$L%d$g3_W2hSp zsNcCj`QO(dBNl@5I);v}IYKXtc)0_qIR-5fqfh#ouIOBNl%lL74^8<^tZ(d~jqE1m2~xhw z%Df4ev*9aJh;ty-1Ullh4R)m?orwB>57&RVjIFALi^OPC6ug zG;x}*#vCl8*qi9~kdv|g#oX5$-1iXogc-t@zF+}#bc`WRk@C+B@vZ^!6+uiiXye5@ zI_Z6?lr!(8WbX|(hm^M)i&m#7?rBm+Ic^Kw{6pZVP3d+HDu8XPg?74>$1ul9aCtw@ zclN-AkA1EZI5aEoV7_~ak8bFGVh?=P%y*{Zb5^J^vV0jGpq0L#Q-TZO^7_`^@Jy7D zYUcZv;&X#uwSvyo%07l3B51l9@c2DK6W`g2&ko&=-J40W<2h13%E-SaCQCsP7h+M(F$5{Uak#ch|MFKcYYHJCldTi}bNTyj5|YZY7{ zEk_&ykE+kK@m*c~nDV(K5F1P^uop{t2E(31u(XnQCBc#dSr1QhN&?1cN-Kt<)57v8 z#(0h~P!2vI4AN1(kfleU(G{5X#L}oSO(iuKy;REJ1H@Aam)pJ7@F++|v*XZ51BP(U z{JT<)!1VSA7~*n-%kb*cF#@i_QZX*aD!yZkUbH!MCfH?L%NAVbIk-b;SEBuA?cXHr z>3HU6q`k|gn^B$XDk-NvNNFyG%V}N;PpZXMi}m(&ZO04uF**(`4`%juxcS?Om78m- zm+B6%(kx_yoxigS9r879?}PhBd-}G}o5}CF#~2;PJ^4cWzFQ1@Q)d`oBoH{r>+;rl z4Da@_LM^oG++qwQ2Vf{VzAIP%f~<5PT;9;s4o|9Q;-osH68zmXMEU{N|C#@Iga1;K zpZg}Vmoxvs5N#~GK>^t9ND^ob|3<8Tu!J{A0u5ijBnb>Yk%XPyqgad)+D%eUdx%mP zg3Ar#KJfT+oL7X1ixYM;@}Jq-4Ypxoqpv40ubW{QfOe_gq5$j(!^sU+?1$*bSi-%A zgeORXTd@WgD|V}tA28cr4Yr(z!Nzyf@o>b&;^Skzt4TD2+@?UBmFp(;e>6dio^j;M zk5#R7gcwPp+Wth!3!z!I_cFL#ZErFZbtn)}ZG0Fd_NR)=5w?FPBHTVfgzl|~a0k{u zA0fHUyGK1LiTZ;|2`=nVg4r!{y!5x-@QCh+B?UF z`siROAG^0(7QwjB@c}7k{gO;G8?J8>EV2Tg3F;bJP&zOw+nDQ6;vzea8C-t92mCJC zfs%qY8UVkL@)8EPk^sn(cYSjJ+Nb^y-hVK_YXm^H{Kq#3fMw~ps4RPoQa%eVk5^a2 zqiVw*(|~pVN2J`${2jzkmK(M3J6C0HxgVACB4)juSjkpDGFjbQxk2XrB^DW&_a%e( zQwy(K^9$2sPf3z79#it|Wde}~%~+2sN%mMfM$PL$e$2grvwH|5f+wW>K119{5M;-@34%NhChQ!gqjtYmJa*MO@p&SlJvmYEGCCtF3x7pg zPlL-M7sJCM-Q;#B`%q?n;|AP~)r?W>_@R@cjBQtq6Z^C~z$j|tGg98hirqnqeFY0V zLW+^c!4|zdqI%X1vbP`C{R{0mxA1>34348O0#C3#okp`TqpxKU}ut zE_jqB-P!=kz!%-bB70$nmy{jsMjYKvL(t#5arbrOZnKUdzB=P&DZgaZz9!W+X5s3K zUqdx6kS>)>vGbdII#nsxfFav^5L_bjDH+GSe6_Q4P4%VDhu?DthGR zg?vCKRkFPl)1F$T4=N=eRDK2TKf#mjeHJeFVxJJ0nIPqJ8RV#`9(JbaH#Q6HRkVLk z65K4fK6-(AFg$)<5TmS1t$ivQ2bhk7wwWU6@3$88aoXOZgUycpq;57XrKZE${APuZBE2K!naqE# z!GEKLpR?N`DVVmWK>i}-ZyDrw2FSZ62))5~;7?_F>XrSwXx4s9CYc78O|lvuWfJR) z9tS{LM^IZ5Qh@JCnPk9i2H;sHp!FS(17J$S)VucgvHy_)?>7LSH33OO2bh#zDVPtW z{4c|Jp4Jmu0*^|l`zw1rd1-H&K9n*7M%;g3;B=Tc?r)mxI3G!Q4&z*C;M{29xV&bf zLS(*-{22Mq{J&#<7~)-%-{oxsl^>J;6YT$ahSE_0H-B$9$`&rKL$SzAH)WdD^;0Pu znLQ4dYvMK&g7@`NVwRvcsR=U=6~oYB5#pxtYtnXRBZn(>O`Gpv6z%)10bRk7?@ zq$|~gGnTm=u9{V|`E|fIUIx)|Sh+v2vc1)C8TwFyrY1=3pmRyDfq>E7=Te@)5T_Xs z*I6OVM&Ch`Hd@W8?x$6uFQohx1w&Oy-Dp6`%=oUSVQ?dr4_ZM2p+Y#Nj_MCz8~R;q;Be0Te|;^`7fepd!vLy zp@Gl)nn*55n*zIVo$6X(`_G54t8VlG)pntIdHuN-6N8%@tvCXa9p9mUzEZj zT220o<^K<^k3J(+@*)z?jp2oO;t{BWPVpoyzv>`fq#s;JKU}UsaRMPU2Uge(8){qW z!|v*m30N>kbKg&!7E@?@Y4Ro(^&=8RcV0a}qNof{EUFHZ18kWV+7yU7%Ox_4QZa>= ztI2|wC{<-}eT(4GPu;V{^0K|V>s^5Got07Enw_V~O$>4b-26TUfCE(e43|A;U>tlp ztxqxgH1{p!Ml6_;KFq86C$J#mZ0zev>etP~27w78r^Uo6S&i=}vFpjP)V(%SHJ7C` zj-xJ|FF@TygJ{P=dT|DB1e*pdatkL&xtW^2QQXY78_6k}AUU-vmTIDl-I4<}^oZ5C zk+}z$C7R5CnewRwF1L{j;8EiRm;O@~Y#pZwn>Ybes=2&kNlB!bLMzkcNi6RSL*DmH zdEEKaBhB;$tTXIw%t?Qs)1~*faKVZ-w5-3^a=LEVwYK<5fHV! z-!Xt3lu`Ynf)QG|CV$4f4-hXI;vM4U#SSht8IH?HG#yl}M^tDs@Cv1_7%l_PhKKt@ z2c=N_ltwh3*;}Q@v8bq6B!XgAYI2-~9AgOi771}t(iBqH-?;@#o`y zO}@%v-h`X~HxfaXVk=FQ7@d8tCa1qjrYMKYtiG(Pw~LB6KqF4SbpYh<%FxcNuHQ6{Hx;smD#RPj*TjTh}voQk(tiL$F@CZVZs zuy0^|KtHvjO*M!(#^gp@w;rI$D_QEbB$Zn9`wXdSeSt_0 znQ7Xgex$PtM^IG(vP(8w3l;Amjc>QH$20M&N9g;@gZNms(AH^k&7a962f=0K67VRy zeg(B0^fKk8j9cWwXHq%ns zl?Gd*$!Tv=0z+^a_CR=40_hwm9|m zl8T{jGh!B@)wzwZF@z#GOXPaD$k;kdYwC@CT_c@zp=*QN*d7s)jj@rTZplY;< zs`1@M_Hu)`>LMZ&cKrnMBfGF`i{?LRCulZk^6IxJ53YyH6U;l{aqYnQi<-EsZ=|ma z7iZwKCd|(4Z!tSc#y^Su#ULD)x}(yUhS8+S^0!Haxp27{tc6EmxU7BvLk+C3usOz` zooUu&FN5?G$eYuJIEFx62C(37>fA;biO~E=Xf2w&p1E%!Zc_X~gWFG74)sJOLq{-5 zVN7$oUxzbQk8LV_FvdUcP|C~U=8z!AEJksl9r;|=_&YUmx6Tbpq5dXzb`JBI-5qrQ zL&9~Q#5!3cx4O>vfDBk8p>1x}4H{sH1RMR#L~hii_zNX68*Y9+95<8hFg_64uF2)h zvIZ_^N1WJFFB)Cm=UcD7Pks7vJP znLN8-^Twz8{-G`^nZ0QL-=hSF;Bq#vfJcdSX*}rlJ6_Lk(RiDJT?X&I*sAe{4#!Y1 z_qj3G;G3v8N~~X7ew4;{NZC=$9XU9Kuz*gZ1fR=RN7c-;85*PteMLWykead6qVmyk~Mg*&zO>OM4M81(@- zHL@Q<|Ib*zCM;rn*}!rrqkJMO4FiX>H2!>;JxM5sG&1T+?f%~G)`FT=AJs2MYZ$^u z?X^)&9`OMsvj=Ye7##l$ERIfKaed*VHWn4yIL3d>eJxxz(nEy61>Zcs;^%XGcIA!R zM)g*mZ=PsO?nt6!@6hBIjQelG{pVWL=MRC)x7gZ&tj!ir;q~ug(^P(^Cf9)(_rJmA zPq4HR*28NYyCp-ZOq5+%ux6CA35687VgeLurqt?Q8xL`erMul~>CPbu#xjMPRgJ20 zb2QffS*ZL-H*Y08s$Q7$)d^b|GuKn6a?{)=8HT;pmhmKVg|)7&5&d8%bV|rof@Ts8$qM)MsNQT|ZiS zf+kmk75l&8s!ouQ_<{wOnW;iT=2?+WbZe1o>3xUUVw|MOn_1wGNg&noCrBW-82q}{ zrNuC9c>a&E>wvSONZwmB zyUXSrF|A_2fKDSQW^z!#6%a7O0t+lG?6LtCOqelaLd=*kV>rdk88LJI4V)1(dUuMR zdgz_{|Gp0M-n@X`?-=LXS5;kIoqM{g^rls8P%v+4R7o%0?7f|V@n5HKiA&*8rVxIN z{*%eT!gO3du%!hd>aYSn6aBvy`xV8qaDJs&vsVa|qR?GCWlPhMR>$MoE-TPkp6vB4 zjnEfQefMfGUbJF=Mhw;s(>m!i=4>M;xt%1XY+1q&D@*-PtM##tDc9aw(3=QF=3yQlTH#7YI}i^^XFMY zt6rFn6T|xGA%~AfOvZG>dQ=^Jq_J_uFcV#xcD^2oKxG-w(CmKy#hzUL9qn;7p86=? z9eDW@wTzy^`EjZVz6(qUxl26RphbN_QLOyGQxvO!X-jjWL8JcF^jk`1Y;PzFXysG*CkNhP5lKi}~ zlkVQmpq4qU_=+{C6I+aP;*NA(?MclK%<8sy7V!|*P`ngBQ{x^j)$UFIjW9(88r<31 z3{M&zvD28>crs55UO>S-1alSz^CboU_|E3p4RfP=GuNiuo3X^~SZ3qlN)FwF-mJmh zG*AAe)BZP}xwLO`fmk648#mXdt1q!MU2@?*4myApnE(DrD^9~xx4x6`Vy0M?EEOL5 zO|OI*FvBg>8$7v7OS|7mdpVR=hLbwQgh*^Zyr<0=hqTCc#f|Bg?H6Ki!T#q@)cR~ZOK-rVSU+y#+ueLTfCqj*3dNP3bB=yKuAiGy z79b`(Nr~L*$rq54o%2sTb;HQ}4wPsUSc{}Q~I?57#!rq5}?w}D5!G#6<2GXy`DE@|`&@WX|TPkd?MHak{@n94kk z{ZE)1`=5B0mf}%-Q1_J9M^j0`{{+_mntv#sxnxbYc`8m!_OKvpY3?+hET8n`Y%S&j zJc}si2E3RVS{ieN%gIqVY}h=qVIfaLJ>|*kTFzUP!^Zm=<)m@B6%~Q00M6)5gKtV$ z2C~)|S;_f96;J^p2d3M|)4!uA)~2f@(J6Cm`fKKxb`t!enFJ>%Z+6=Hs@_9!ohsd| zys-;cZT~NwhWHiwy_rrw%%}8K-M2j1=2upZ9(We<3UhC~q?<}bb7jJj;jWS=4O+$w z%3xWZNf|l}D}8rpClh)VoucNrLDdO+$CG=sum_#6Hz-Wc=KoL_2C=dD!qmdUfa}u@ zV1@!U)|7=gKKA!?$Hx+=&Gi0VPsaX6s~v@B(HjS6WX!}%x><69h|w)`>)}U$!-0|Z zUb+t?35;&~#Z9^QJ$XxO@E$eDg$7^$p#~=4*aw~z|4!X2@hsXA5B@W{XXku%P^#u_ z6iM9D`_Pl4w4_N+(p*ZSGARl=%#1PkM>zkYnXe%;cPj2AGj-V#v$5C)PySCc|DDXV z|HePVoMicr@%<}9V2kbX)HOH2%O5HcUl5;Q{;NeyqX_1`{m+Onr*}T}x5~(XTcxz^0=-=9V$()X;O_yfcafE=c-;CPHhZSq@Ba7zV(aM1zFy0(mrZ7={9f0u*Wr8mTyU}m%9wtX(%=HZdTR<2(P z`w7Nxq-W=8jqus^Q@SP_#};Au5B3wzPnAxzOGRoCw#}ITLi_BTr}5Mk?~De}c3fwEx8f)Tc({@YEX3!Hd}y)^B<&&(67^ za?1kggAU^U=gGBN+)Ym0^PxBl>v6Niba#MFrkNdzq>8^96_bb67%7k6fbuuAe_XRh z`^QsfrY~MhX849*dQ@#WANn86)@FGwY`gf--!qQ#$R#n?)cM zU#FRlln&-V<-wp?%w#s6I+Hu%#bh$(s!nHjOOl3kL6+~!NG)rOlXXfOS;kkLt`TW` z)uFD(o&Pr-d!{dUY5Dh4e%&zKf1!LG%{y7Su_HzehLi!#xOYBBpQFg}<)51WdpvWG zMhT|o(o0?3O@OVlb@}6|=aK6Rz!wM*<$vazRD;uoRE5ZSBjM zT8H!SEWO&LpDrhE8j+OzHolG*oSeMlNKANJUw+dGXXYc}3Or(8MpEPg?AE!a{t9e% z5VrGWAQ%z<0Z(1B$5M{2!3$@mtWY$*af}})r_PsiwVb6+&ds45z99vQOU~Tka|g7V zU3N?}Ct$1`*Vs0vX)ZS1aZkcebN?v9G`I;N7O=a7;Bfk53(f+~)jlP5_*3jmlV6u- z%ym&Od;BRrBs+xhJO*NVI-`yEk8m~OPjNCu&5Fj*=va69Q>;jIVB^%5IgL)&ozt;3 zwOe;_z5FzHnVQ?!oBd+3J=9gtg#gH`{5RJ zjmdMNfA{ufp_X`xlej!8F^wOCWDRv}<32`Qa_c}_8`9R+(l)9c?ri${@{LaP2PXOr z8dXj)vcZ>hosIV9;kHfoNmo~_;|@o+Z#p_NfZ@XS3}zmA=qs`NQ9!`rR#W_ge=voviho;s^%;Ki&pn@|8LY7h5hjvO-*ahLow zS1mCCuu}=`g=Ckzt8aV`0hC#jz#fR`eB1h%bd9$4LYL}Lv}>K}N|);MOjYms{b8!ne4A~=ak#}`t^^PB_1#-@ZMU~Oznx_8noQHGLccib+dL$>WmmH32yjgZ6Q`za(gmgoL{vAWZ#B@VL zvz2g^F9WKWp<#FyeFE!_$4fdtd4>yekM^ZYvz_eNE+89swNeyuoM#p8V>Mtgc8st6 zt0d>l>=~gF4&HmPQsy&8hIgDV8+Cf$Fuh;#;6L+W3_G&3Ql)D4f=9<<_e}DoS2gpx zH=erij=@XZV)f5O>_HVZH#J;9c60x1GCKMXQ|S@X>x1ZqxFH=eGM-BK6sUexD&Zl0 zobajXh;gN=xpgKk=uS&F*(Al>PMmybOiwYTxnV9gbf%}Lm^v2@cX5#*Jw=yw2R$=A zNh>Bd*rspV0tGzhfnrvAiWzMP#fvKh=_p`5eYU_m~OTBGPahr#Pt96onk3&`g|zm!!6SH|0Cx@$pg*#FRq zeeV>@?heIx@VWSHe2z%b@S>wJI7vLCo{{}E4}%ZU`GJL)YRK8a0l zVzN50{@1e3bFyxxEIq~9lB}q9D2rH6J4P>mJAL_33;v9P*|}_{;4O_NFtA;lAK8w; zhx$7Dd|!6jih11~Po398@M79MH{MbiE`^u{zBFqwZ4^VsQ=OO;5?nuqrD_MSBz9r` zqq$d+`)zcz>&dN8oa@a74f*%t5BUS%pmH7d46<{0%qV?VX_6SzfDOTgzLadutXAQv zQ#lqdaj9siQ;CIdjr~pk5Ehx!;Tt&cO_w_CJ$~#$E>jlya-L55VwdzSVbVG?$s!us zTiJv$o}B2*TFv~LWB!!P+Lb2v_V!Gn!2B5d$=I{rhS@H}Q)hc;yu{dx52ZDe6$pFJ z5rYQdoZ)mG^W+p?#%WiA5$P?0T^8(>QkM z*oAYZv^2N#(=ql#+UZ;51@K9oOc>dXc>H<~mRTSwqn;%jeI$%Uka zVo+*q)1AUOzWiHj{xdZ%+zu-M{3~9=mcs{XLCxe;_NScb_{1@((F)U_b3m+n*n_1Ot!lx}01nc;VnNgYjd8e4cA@j_n? z(~^#Gl3GGZ7h!)uOWKk~<}=JizFeZkEO%n=OBR#Hy6ue}ljgR}ozje>t9k=-sV^UC zVV^r;KZnB7^eN0(I|jN*(;FLj;SjkrA@?pemP&2S8Av&i;S!UR)C~4R&!zbOu|3Uy z7M`US};X@PG$fnQUg?t9a_05vnDI5AiHQr&}kZG&eK8TY`87L&q? zW~eqo#pv>8TW8?uRi?I(OkBKCMtIY+Q?*#9i&neOlCi#xK!UdOZaT|CmQ>#?Ibr?a`EskM2bc7==6 zsW(Snz)P_{mXYR&LMUOVX&<-yvPp~h$%!c5IbK9DAyTMLd9p)?J-3qX!2TC#vHyi< z>5(a7qO$KxC)@QOB*z){blZE5 zEb`fF2#$t5;7dzSTCx*Q-QS;qmtsEf$InupuZ-pg#WJ+1Z4Lvihqw10#QG5z29t}z z>5+=*FTTDUnanio$Pt5aLcxwu5BakFuGDxJJWCJ6qqu876x)`*8Bqd1PCFS7`_iao z%*L~b?29OeGqe;+quq}j3pW+3x6m<+96*Xk(owjzquvAS?e@SP!}?#V@jca$-6Vtm zOf}BVIW6TLn7za{S4UoY0{cSX!2TDW`h?6d3eYpnG!qP19)}=j;B$0y(yg3le0}vN zxdgOJ54Sm%;XRwKGlg*HucLEXQ;Ttz@f_N}R&qU+WH0g^mDDRi?!2U%fkK$>mh90@ zdzSHeU+Q*emUqTeOY4gl9cDB|(Ln~g*{FyYe3`06G&vDn6p>~&qVvxC%Q!#pYwthF z_QBRZ13|us?-yF|(-h3}-|tbdJ_sK6FR8UOJsZ!2j+pB_g};>UGa_;oHYC(+W9FB! z{@a6wIRwwrAHNcgIblbxbuV3L2uXlXyy);?JWOH}m(wuReli|JR%T;^Q#4GUB0hsQ^i#Bn_ zUX#1aow=QpB%^Y3Z+y?$L8jr(V@A%{!Sv&W5B)vl8vG%r^0WTm4Z108Fl|ECd)RS?#zJ zQTZ*&2FVD3*2)`t0}PW^fUe4`dI1cVhXEE>{zB0cC95MNV@c(wWdKJ>KY*o`CvFFD zv`hk6Uio!Cz%g3N{aBSNniuhu5{VmTdu*fy#QuNe}D`L#!>c6nF^F6!3QNkO>z%Vi3AO#oF(4? z)kttWRhlikcA<6?yLAUTNlpY>CBf4DflihefmTcK;XXj8$UlMBNN^Pkd$H_% z5(-X&-k4N)r^;bK>m>O5en6+me4zCbyix;nx?BacL4wn2fzFU;fi_AoY#7j)@(s`? z3BEZ1=q%}hj&-vHn`ptaWg<|97xdj4&n0paP>vUTwKLE;atBa}7p&PA=v;XPsKyJ< zCOS_x0o8fIU+aL*my%OZeqK<83WYM3uX~rB<(=`y`XVVprvvd z&~Ps}>0qFX3QnT_$ylQGQ-<`9Pq{WiU{y z7mQ>%ER!yvE-zTUBhVFc4bWmQxMLfjUa+hW&<*l9&^j+TpS9pd$vhq9=LK)|1G-6e2io8T>uLF$Wem_pFF4i%x<$Hx zHhDqr_CUAFLqMCoU^4S}oBSIn!w){Co-3sWy?u@!yhh5~Wdcx%A7nGPcgQ(FHGXj7 z0H8bNO`tkIc-RNJOSU}|<>v<%vM${%#{mU?kXHwEk6aAY4^nmlx>w!+>hA|r*`KbG z^0QEWe(>8+p!?()pn5+jVNZ9z+zvF+5AI;uJ|OP_P4)v}D}GRN&qn$A!J+JX{~{BB zTK(WS@;xLs19kbqD9U_TegInR2UoCER?9(4P=0<;eIU>yaskj%KX`?8_fdHtXt^Ie z&EFoAJVTFJ+anVihv3R>w!ITWY_zp+$al8b<9 zGK0ftiI?R$pt{UpGq@3=?pvUqnL!`6=~t!h0+e57a13kRYjQMDzs%r;9f4k#Q-S(t z24h*8>tr3!@XTOzH=w`C&p`E=!MKBf-jKl;qWm(0yJ^q=lk)mS+YZGDq)8?oyOrX0Q`wzAycNR%Qm*?GE&TOaWSz8PEy8_o3Vgv^p~w#4+F_ zc?)PwX0S~z&<5H5Vw7KIFn%|nkL6gPb(z5f{OuFD1ZaI`aBNSYPvvc(4Vl50ES1mX zcc6`#!B(X}pG%KRP=1-geOW+X$Oxd#nL*Dgpf6QaD3V@aQs>UskZyAfRt#5KzCY z;5_nuD`x=p&kB0(3A9P>1{$6fJi|8joxB57pB0o+%J=yEfbz=WXl7P$S~<{Q1ZYKI! zP6Aq*6+F$B^NaiiXn9uf+7O`s%GW?EvV!hxfB%zRuR!@_1)c1Lf0d(vR%HeM;Q05O zTm-Z_D=1<~|1Rr*)?}#$_KF!IrOQ!(S?cFXKm;|b2V9q>?%Nv>_)@_2S!!GjAU5(} z1>BIO_NSyw1h2gkg_xzbW45wH`T%YMFKci%BDeu=&QkTPQr!@!3@{^G{k8*O4x;V> z=47i2w*$;YL@mIQZ1wN{fO#SVuR>8~tAPqIU*trI9TTOHXQuo!9p_Rm&*sbq=Bb%4XO)emeurHFkFSf8z4WEqyh8rPsm zvlVxpymFCa0Vijx^O;Zu;v)ji%vQOqZj~Zy0b8@x+k{o%y%xoqt;QV)SdHK{fQz%$ zJxr)ZchLoHx;k>3E9XRDXk0JcJ0upTE5m^nmDqCGk<7_KZem#meTRm0u!l%rzzx~zEEd_0B1Z#m%vOhZfIA`P6yT<8bu4>@oe@h7aC5dA z#0>5t@-1LSH&wkgU{8^%8&JO8)JgawRswP$U`aQ1e=oq@L^=R#x~cuB^X?*#0M>O= zdsYMPA@U<&Pl#edy+ro75#`%WeX$eZo``b|*sq(qetW>Z(3AoDcT*?OI03W*9NtYm zmj|dsz5%QU?>2zFMRvRi<=ah_9|X9!$T5JEyQvGd0_-DlIpEB0s^1QPeNoK-Tf3<{ z`0G9*zW{c1Q?uB$?u+P6H=}&JsRcs;`-z+hxTKrfz7B9d)Jedl-PDqO0QVO;_!g9J zH`U$)@Bop8fGeP6G2nqB_X4i$rXHlN4ifnX;Hqw_`2fI!Q7E^fe7mWV-hhXQoC~<7 zo62H+?l1CJz_s1f69PCuq~JD`Z#VTjTj)TM34rUnspVOKgG88b+N*iR=X!j@p$PWTz&gN2bgK8Ed~;OuAi(M9kpMU6sDax7&JcM6Fe6vJ zzAxZR#B#hJ<(sRd4`35a2UwD;KIT9$OQadFCRbfv2#D+14+7TZs$8bqjNS~eXRbPE zPrx}M;~qfy=Bjnf;9L|wV82{-2QArx#tzs&S8Y8EuoVfR6%5Z+BYFYi%J&I?^|`9C z8(^ErEr1hq)yu50?dWp=C+8}kooa{3fWM%8bJb{8q)w69fUUXe(IJ5I(NO?)<*GMm z*aadV04~l|hwKE{C6fIR$~RY?x_2`3TB4SN*~< zf>ii!24q$WtdVze_N90p{eXL)p2VgFXkaBu{-)0(h=Sk4I6ydFn~F zh4WBF0qgSATg?9XA}0g(%u|=quoqxh1Pt=jm)!v`gkb^u<*6CF0A3`r)nh2%JoO-R zv{d8}z~OnS&u)Mhqp<_l=c(6NMK6IUz=?V4%{>4w75NBoa-Q01Z@|k${Krwgd8&{V z>2d@~25ik!XH)|&6S)zvD^E>i8@xhf6X4=Jbz&dD6mWBiO54i711BOY>A0 zd9Q+<0hi~gtp@^LEpiRuiaa%wIl4yVF~F61Dua@*MXv(5Do?c%UMHfSMEU0R<}R9! z9eq8TCH}M~Pc^V-Ss`)};MzR3ig~_4RQ>V}(x1d7@+?1z&WevC$T^QizJasv9bsNS}z>It~v@hUFglY!N$yZMo z0p5;&b`8onU%fmO@D7nyz?yuul5O}-kxKyU^3{n<_b${Az@GVP^bUY`i{$3=+OW-<*U8(0G~%M{5;AxUtLoH z_=3p(fEfj^%$ALrnKokx_s_fv&_Zrg|&>)UQCj$G+!vkqZI)7pUn>dmW-D0}d}xBeDSh z2J->d8-6%4(jm}gEy~&a$;Cb24u6_lpkAbgZ;BiQIMYzTKbQ_+&PeC21*#W~^|r_| zz^(#STM76M3=O!rKy|X7trvL{a7lrBejwoAF%f~cgI_{<7pR}M0sIhCKfu)mY8iPyg6#m;6sW8C>jo6V z%P8*xRl>Y~EW+5->tLuJfS+KJ1-QOIeUJnAsR-jrZzxbL!vH@MVVvlV1?sxNfS;pM z0&Xf$_p=}RLgY5U%>`|3;) z*HPAm>aWy!69!Vi;f3lFR`>7F%K+9Fs$5#*djvdRhjK1dE7|J)jX5>o1)ry{gKVqB#Y%NqXh64U1!Z@*Ag=!Eb{|BQ1;Nn6hg@Bu(B;b-l^)Bn^&mw;V zTw173XL0|6f#nU9Z=pJ(6!5_lbzyJ7JWoymtSM3-vohp+!bp~NMQSoTodQq32JBg+KBVai5o_XY zly8xGZ-2ldPg(%`6{&an02aeF3t;~uwVGxx@#L?7!;93h)T$KDz5(lt)UtBGGHCS< z%C|`UmyNF6lLG)J7pcRx1+0LhM!=ax>WVtRN>45VY%NklsdE*S1neqO-}eHnhC4~X z#YL)!1zO_?Vx$G~tXDgD!kBpLi_`$ts~(;(lHGM~j-DI_xUon*QUkb?Ck#QisYva| z9PJEuwSb$8)L?40izkd82S=69QjMOTFcMr&vATqv`>viazFSGL+GYsgZm1i8HO1<8G#lhuGT zi&Z<#-WPQPuocA2{yqqK`Vq>vSbf2&vM;>Y11>IBp9o+-MDPGyQmlTaq^v5+XIe-H2`~-sNp`~D3m^6P@*!o z0~`%&e1`HZQU7BJ9*#(cfc;CS!y#TvBVML7nrRp>eLJQ&44RCm=dTM9D zMV`C@SYN94U~4(S6ULyJSgPjj4tOG569Y~zRWtSgJjoM=h?rTbE<{Ec%;9Ok)>75U z8gPmy4Cc^Ps=nM4a53@=xVTh3z+yYqlhXi~l&a_0vz+D$!zU~)RmZTUo$kqxfXhqO zeXMF{pl*GGGA>n*l>nZJZU}H?sk&}|z_UDI0D)Dds!vbAvpr!9fYqgH5k)OQ4FFtI zs(O(498c~8TwAJs$_G3bJt^S2Qg!uk!1FxWZWGG4RL#!=JRj)-ZYWh<)cFEW=m&pe zsVW`{cp@GL_8^{R%W` zzv~tz~KvyP@k5u^X_fOg&1&uJB}+A5p$#>ifQc zH^4GF8JOyBGNd++3y}F9%$O z(e7uMv|QnV#VF#B0OpjddCbE7m~#M@lq-*heE?bk)|9I}TJk|y60ojZz0@D@FP^*u z*t1++#UgtM1qv9HtK(U(9!5gHpnS{K5wz86Pxb}uU#{NR4e$|9#sdy7SKG0LK8gVw zu)bXV*d6dO)ONs$T3)Gv;yW-sNQ=6Zt#R&Kuapr-YmtB zJ)vLEnhNz3t@#PM`wYpbt57Rw>rXwQtIeJjs-2=fLl*`ZRH&b~1N__*y29*Nq0Tu3 z@Cy_9X73v<^>c5`A;ZVks3U%-S zfd4}l0GC#%34;KC^#q48GnQAVcR0fThAaTCs8Cz8rTq?_GbLkXg&MgdUP{+Ih&u{^8I|ha z>{yF@`5G{%Qa!X6V6iWIbrYOZQ#bbmEb)b&<7z6^s{;T_eYpa#u2SvBLAT5ox_j$c zsooh1SndlQw*{4|?{L5hIH3dVSE=Uo0j$IcJiz{y>dD@KRld9gIJ{Er%5nR=bqjM;>kB=VO|Dc=R|9tUg-*t1R;q2-p>O32-G#MQs$&lZ+}fAX zfL)bp2Xy}=CbiP8sL57V*l*bCVQ+)%0ZECUR13K4K)rRq}zs9-w4 zO_l0vmVR$vegfQFsm|uFdxN(KtTz&x&*yas;@tN}UY@dLw=LAK>0JRJQ%1yGh-4ljCEtE<@-j)P>t zpjzGJ1H#dS56=?)s@0q92`BqPM-%<4)z_>W4Y()`IJ{crvWiaeWi?=ZwPHLAZz?=p z08Xq{W7r0#`BGVf@~u|Ca&ps%gUf(3p(N|Zba>GKY^_#(31|3n0$^9Q>di8m34eNk zi>uZ248SH|)&MT4R@YF}EMGnWTneo?w9WP<6MhAjSF7g=09$<78E{3ldYP5K)faj} zSXr$G(pK}(n*pw>R%6+^+fZ`=S63^=N{DWso(a|<`|Juje4%fFwbiOE8?e(Cx(8TS ztPi3eLi~fZN7Fjap76&&K^bw2u7z{&V^N5Bhks|9dojas<_;DxA! zbtvB&^$P3NMYw(g*j1zU@t zQuNP&%WKs0EWyisxfpN-By*&@+?Ou^SJtT0n9wrZpWFfETcbYD1-t^|0^sTzwT2CL zxi2>XuBlP;`RkP!2LadCs8`utUj;W?Jy5uXdNdlg()d>e2BAhU2S z+V74iUnEooh--%X0B)*LTX9~9yMr?UH`l1)Ed3R5lL44ft4`k!@CHl+0CQ^95Ej`j z=r(sk`PQmz*4SI224GFCDq*9$&6f#)b+zgdj<73zISsI9t!m`3csnk>0tU6JmI>W~ zMz=G{w^qGDt?u-N_v8B4s-s!W?t&VC!)w*es7c=4zVL=xeXV+xTHS*#Xcv@kty;tU z-iw(G;N)60i*OaZz5>pyRr_oYc%Ls{0=Cww>p69~AH#7^ly9xNi&N7FaHbz{ajh!E zs=<2@9wq^o)T(3HoBhR?=Kz=1s*RizKIF?UfXi#unQS-@`@+jkD{9pO7WZmjcxP#4 zt(r~v2x=YRs#=x7{5}T1pMa}tRRM?cC*VzCHeBoV;e%)0GbMyv!6~O-8)$^QBzU@oy zo+#h$YB??WjxT)x>$|JZIl*`j*MR^hcF*wnp>^<4qX*QFm^7<%PU|Ec_8>!6`Ml|{ zcl@7LZ_CRL^fYV!7k8Or(vZ>P#vC7NyhsRZ-&D^%YBoa`*-^-zS;Al%{Xk^<@@f z_hBq8icse*{S6#Th@z*W2Q)xvs=GI7ETo-2T{LBy3sRO6wVkH1Sx$MC%2J}4P`9n8SR-catE)ir9WYCeR(33D)877a z{KAnx|M)>U71vvg?fyxX>hvlcl0bh z`WoiEYAWRG+j)*Y>0Y2^Kwm|MVPvQe>o9L~HBN896?5$xir3{VJ-Ry5pGx|K`-rhh z>h3*S9`u&ZfN3sLT0-=)A5n0s=xI75aaTDl3;OA!p-;gyu*EKMT3fk&FHeO!ecfRa{E7G#DSkifQh%+8;2E@CRer$Te9@fN_TxWUqEQ+3FW} zC)W~Uyn2a53Ab^zlmkBJbwfMw*@6-(2myykB? zFq2|!dY>F=FZgRIQO^UG9rH4>SIq$X93KzbFV5$HZg?@D2bK$yyFuj83C0{0q)^r} zU~EyEIH?o4AfI$~qGm{(D4Ne%VPLsv{~&UmjKRu-n^=W01fJyq?6 zeWH$NEgxq0%cl;tTM33!Z-=0$%JlZtOP8YJ_#jgm5X+%Wb8d+v6RhewJ*-nWx%qbi#SqWJCQo@K762dyJ z{X1EDES+aN+Grl5E~6~@B}V*8$5I@6&x$dp@K9yBFE-p?gxoPNUb^Meya|4?Eay_g zxmB|>3^N%^QhWO{v;B(<<)I;E3Jv3(gV_WwG;C)jv&D^E)KB{+vrHElriVhN6#1c7 zHSG<}@|^DrtJmk`VV{;DUXz=goM$L2=74eyvTGiCp%oToqR%&*$hp1@Ae;8~7Mj-i zhC@VWy)Zh*7ZS8a5-`0ubDF}Fon>5t{RfPudTvijy2Z0Uoo!4K{zRvG_NTMVPo|Im zQ~m9=%=*c7@<3Y(%Sr1A^u44vTW)XG_4?7UqoGDjti9bkdf2J$2u?ogKYS2TgO|KI>U`XXM3J90OMt~b*!Dn61TAmJ*=&R&Oa1?7Y7fCsZz1^@E z%yUWV32V&0agK9sf^CLlKXT~Gr(NdiP9hv9W_A|y^=s)`WAm~E zhr*Vi#U%d(g@tv&xDwX+ZEDxPiY@hQL;bO%HpWCyLb^+}G_wp%R-2U=($H_RrD-xW zyC%{Y_sf=OrXd=gNTj_uTbdb$rY(_1`+~MK(+$nCL>lc;+R`){nn#mq;FsFcOfxhe zMrqJznQkR?bZyD;!GzPb!ggD*w&pr=w;mtX)-c6#;EM}64hcD;wIDG8e6MM7q{b;- zls-iYld(k{WzmJ4;E~*_Gs)!lOETy_g;TlW`6s&WBz!YDbNy4igLEtDIDE3J!k%ac zB*j)>N#55j^)V*hBT3EpTzVE5do!t7kMEY{XiQVlr7a{2n|wTtB{|BFTtkvf&>9ls zkKU3@H2uX>Q7M|lQcS?dDDZw96%ywf-_ngYSt##BVjT3%BQ_U}dEB=QM;eAhA`C{w zq#-ia*IDLqhWRWqhy7e!EYlPnS3=kUD`+ePLEGmdf>LRLp2=uo!xmWnF-DQR`4L4Z zGL;alii{A;eS}GUP=wnsy6zf{&BTDPEcIqCFpn&;1yl-)X|JMY=5)B>xy2=8Qox4b z-o35V(PoPDH&Vowp0UzPlJA0ln0Omj$|z%u-4{4xyv;#ZKT<{7NKr`0?dVu!5gQ@I zN*`&Yw??F=vT{_2o01)7*za)csW?$Sk%`x#rhGniJjHtAl|pYY#?Agl7`Ep9KT5rB(X3?Hd8p5!3KFV zDcQRkN*fZ%(hM-#tR)TS+J+`B?2@HB$V}*dB%R)m!B#>1XM<>nC(Cr8FAVOaji)0? zO}9TBV7lLf7eQLA6W1h`Vt>>9P9}x!!}WldGJKWg*birANUdj9zpw%FVGDP+@4LH8o8BI$S|4R>$De#4(}gnTiY8)X@>!Z* zhUSHkMwfG9Xv6q$f0l7)TO}f-DS`@G@|{wVCr2-|)H|l4PK=RgX?vuiO%smMvh0wG zh2q1okCt%zSnam!wy})hHmYTsTX)qN`xTswV$l;v9cNM(25NU2rtJ*VfRITCxzr6j zu4%-@_q6J4i}Q@+3EM@qq9p|Lv`pLJqzFFG+)hSaIdwYG{uQbwr?xfD?vP3M(XnbB zkYYD4N_m;O9Qg!#n!9(wpgdg*4 zTwTjh2{k~XEx~@&){QWbuO+K6+D@U|*h)l)@QoV*;sOX;zH(pACy(yPbt0zEH<9ca zY1k5$`9hjUNF3Xzc0rLXQK=akJ|&UPSZteU%!K%T*%G5}w^Ko=qfhIkZ763etk`@b z-QUre-I${}Ch%cQVnRq;jv~X+9CGLpH;IE$sVzsLkHgCu85cPYCzOG&ElGhPdEAl2 zg}k;(Gq$!R&Nsv#Ib!n-mD2)7=(a?8_~3OKGEVJGf+Wzfzb!?svE$C9icJ_uh3X&1 z6}QAWCf8aSwhl(NGmeMj8cL=w3|ro%B@T7znguBXvLlST73Z6xSwl*_zZR=b`jgvN zI5%g$+35i4#s=6UYHZVi-K`YQNcm41Db~)KEfzZ7@`~Zz^K_?yPB+$-7_A+f(>ud( zO^R^Er^C>l^by?dIB;^ELYGB2;znYVj$?CNIQ~wq7b0AV=`dDWm=4a*ljFCLV~&rU zCFY0ekjmu%4Jkges@gljt!wEant+7p->HPLM zMp--$4F$C;4E=$5(lEp7U^U0m;k z8#PR>>g?2t#Zlra4o__LPeaLY5jG1S;o==EG%FP)ryoh0;|>sway1#4g?P=m__K0x zbBJV5lPp$`LW7vMv+5*IMmAF*4cEc5-yvu^O{Qnz8LL6V1NHVPj6OU$lo&|DK-Zi zKe4as?RrGqY76IJ(F}}gXl+FpARG*G<&G#jRyeN4afbH~3XfG3cs5ai(+`*Fs8-Rr z5&blY6@uG$R4gEc)-Z0oMU&N&HN-!`7jr~(pNa*Bn`o}_^cTA(GR8KP!yRbN7{982 z%FtgKrAHD+9XWnb%iQ^hhJr4NOBiGp=lxomJLCGSCq3aw{rAbuyqXNVFOEqfZ04RY zT(+l5PRWuzjth3@K`>J=B{+Rf%QR=h$BYdpkb=gHD`=8g8IKw}o?8#K;x)Z8>&}As#xtp={c&04b{IKl~umErKQc0JY+~p&bQiI5;%c! z6u2`=;k~02Q!!_2Z<-ORjf>!~C=#gUoh(C^Rf?MQH;l_a-0 zk~m4Eb7Z&%OR^UonUw?|JdOhQW=Zjn1PZtYaum2|ONzn^BAM4;;l_4gM4l5r$-pID z7RCM~zTiJ#)76I4>No~l+PL34C8X0WCXQyn{D!7xj-{3ucY`VT(vU$5j$_aVx-2p7 z6+a#lCQ3$Yv1GW7Oqt&~QZreIRi!xT^_`9hH=0SY^My8tvCq%OxT6~v#PQjbR(e8f z%p#M*G5+Eo(U%v0067WJ^leZPJ-c3O=sAb$-ET8#>l|TOpAa#`riJ_2RPYt1#T!q> z=kW13ADg(A(T3B#(wvsIg+uu@6McqD;ucS`F9K((W3q8uh;D3gY&UzcO~l0CaJyWm zIli-bcEj9BNSd=~mTlY=?nX}*GTl@goR-nd0_{ey%`EPM7*3jVA?d-*k7-?EDl^oRB-qA8=AR^ODi`&z>8dGK5x%q)C&)_h?P69Lu^8;VF*>aW9 zZR?A{8*a83y4V)O1Z$fsO>Re%n41U1++~OxV(oEjsAn0Ld-}9>CmCWnca@2?Mn|=D z#trAPSHL?9PDI~LKHYY8shPGhu%Qhz_qG93=XExkYi*iclK1D-lKYn*f`avxhzrsK6t7Z|3?{(xybs(XuTac~&I zgw{rR;>?^(QjIm9*!`8 zngcJGCpRsMn`)fq$?s%0rt0!@QuUZ)k>*Z6YTdmeP@Pc+2A6)puGG*Fj+m_n4}1j8{Uw-82;*45z!@|M15@|kwbear3N=luf@JPGf4YFI?uI$?F<;LMHEpF$$ z9gfk+y!9+wf5Ry#PjpRb#D*JsRQG{l9$X>S**T=1aUa1pF-^~Stwycz4tFI4vO$C; z5=RzSs4b@b%#4z2+IWd`O&+gwWM;~(o0%Jr28^HB+onGU)M&J3JZkJ1*4#1$!Sz}? z+Z*FY(q@zNM#>Cpkzoq!?eHdi1?XCicZc9}#gl_SMZBRoigAVJItSYk% z%W$$#Cqo#wK5H^-t0oe}ngIx`fSG1Nd=7t)Z7j6UYwK{Uvl&LholyxB8roXTF*}`m zD{Z<_=Y6e?>t>Bkrl%UwKB&2=HF_3mvN31D)lebUPYs?pYy_&~;hi0=o#?B=D}2Wr z>cOPe)$teCOieoA8PJZK3tV!TNM^39I@XitvNJL|$hmR>Y-Oe;oc5W^f~nb#F>G=5 zz-IPnqlumj4zm|r@$J2>X-a2Dqw5Zivh%v=+yirVH~V3m9^c^p^Hmfh(YsNgYqY-;H9f<2^RUQwIK4kf1t2n~33mRG@ zP4Gxht|XQ2%8ik51sMm*K*&*}Z9W1|o6Z5QhNz-x3L__>Vy7S)Yl!|unL0yGMRqsI z3$-!uLUgT7KCb1&DPlXdXx@(SgxN|ai{!1|bT3ZfQ4O=PjL}`B&C%gT+3Q0Mw5=Sy znH@wE9&HkS#c_nzU{!SW!Ac)xr2k6Vx3)zAv-XAzFkd3WNW-w_b&ercBT(nUrRLbq zR>nw2U~f|{hk*^*iGIsDeq`$YmD>``@wCWBQ;c`aJ6R+z5_>GTFYK zd>kbk)6mo&6}1l>LEh+ct}F5IrfE@+LVTQ(h8@G+o-A^d zrgTkb?8rwkBlzYM`}ElxE(Jr5*kG&KLc=GsDR{>V*;o(ayZ$gWS~rqf0Ee76S$o8F z{t2livF!z~h#_0L)Z#L=Cp=w-^yxAcN8ihnheG;v^6OjLb@X{#_x6Bq!H_3i8VNkR zd$R4#F8i@`Oo!{N7WaX6H`6tb3VC#AugSx*i6h_Dke?bMH#5wrg-1*czeD$g2hor| zwg(tC&~Z&2;U4-f<{RQWjy|E6i6`9|J^^oWIgM!@ipBk(8Lo5L$xNm9bo2>*sa_Vj z56?TA0sd&x#@5N9*l<&?hmm<&ROTRjZs@Shk78|6?qG!8OJd$rG77{KTf*%P;ddm| zQ?jrO&16->6l&=Z&}QqxN~$yZ?QpBLQ9_>WG7YP7_x)l!)74FM48<$fJ4Itv!7T3L zxVAN17lvFde|KD=&1_onTYTFXwl$6|)J~rw3&6vyMtnB{t3 zC=**= zS4{B--2q`QU~9#siR<9ydlbKJ}RjL;nyQUH&6 z8KMad*qzZQ!Ym1beLUny;udbu+K|CdR7+cI;}W4lSjeA|<#VJQs~B2nI1(YkNMHP1 zaFn;THA?>3fQ}%5xudc)8#vaer+Uz0{(5E4F%#vs< z3519s#M)SLuhS=1z-Z!Djl_@4h(bhD3<;TjxX0BBq>zRQk&MW+C}iSyYGbchN&}j4 zj~Vk8n+*g*BF{Y`4{szIo>)Q&Jcy@6o=-xa*!`neI{JKQEFFYoB2V2aX9a!pF?=MZ zn81zrPUJp5F@-J{Ifb2r|TIb#=72&^p_uH%xW& zV?@_#ak7mH`aW8O1_8OK!xd4wSkCHkeWxS*R*q<1q<+a!7ykmUt!C`td8B9yLL{(n z9HB|xj83tymvQTj4@}mE-H)t=Ejz9UV6vv&hmAL`BoYPN!a$@l+Up7m)ofZy>=6|e zC$9;M!TFPLfdxk#t*rNu8|d&lW$ATJ>~S>yZZc^2%!VX_sPTua2f#2MD=2;Z#hlpC z-a%qFL=0E_EfK_Hqn5oKZ@lz4PcrL8DETOoh3Xhue$TL)BlKG)ge@W!Uo1iFyc$Bq z@k7bgB;ZR(U4=On(|L5zQXpU+(>gSP0w)J80RrriV0M%s?)V)7@-d(1lOUF15Lf}P83A`C3NR-R zEfM1WF_pI+QCx0#@X%7dVyOP(s7!YBxkF2V=z^59?O&3uLNZH*kc6Z<#8Fu}ICW?V z5W^8 zI0TlYu`UVe*dpWTu&HXziinh)^8YnL8CScJv5uCIdJSUGg8JJnQg=GpPl=S^PSG|G zI~(YJ;cX}ur-~zfQsfi-a%ei@hK?3jhEJH>&32?l8VH(frXDwDIzLK)On0=ndk~1X z!Qy{}Bs4(cmE?HZM-A=gq-FLKY2lVMl>3OGEnN*-Wf#dLk(n@1fX- z4ed9kFq=?EV*gr9|kkz$O| zA!aKD7ChnvM(COsIC%*5O1iyB$Coh8&Q?cqpCK8OMAFtc->SdLkaQ-I#I6$DYe<$m zg~EiIaW>M5xyKA;&pR>36tQ8?ojaV`>Q>5k8;;HCIAG!C81-F-dgn)NW)tO;Iy}>O zry(9eVit)}7>6q36u!gIEFjGfuwDuuD{;x+Zm4hB5_OpTN<+Ms#IdUva~kKwx~$tw z^ZJn_QKzIvR}gb+!y5Ni(f1X4JO*k#^U*9vhh!<%x|a1uCZP%@`6j-lqhyxnwwju+SINxcHiV^;zldXnPPNT8oHV% zpjDU!TSemOmK(YQ9GxNI!fIwit2<0IDz-0vg~@Fz>Gf{M*N?kqf{DG^9?`5;-(`mW zmXKaAl4DHx79E$6Wx54ZmYNj?F)N{s`D z?9<1lcByG~gUGH|J{*&b9W?3480jU3bZ$D*fkQ%PJ{KF(D?`!*1xCh5mm1P%(~%Aw zqV}=6USvqW4M};FHKJ=sdZ8ih{*=pB0_lN(w!j{P3!HJ5I^RrKW;#lf zFp1)9bej|bAv+?-7RqC8Lp|%6qy?SthW{Qm5=cEGelT_^fY$N1TH|aan#OhAJ)>R z8-lwjMEAt8zR=LeNKZ4Q>q#1}S>r`xKg{)tryAPKzk)XGfebB9wH!Hj3Qh!C4+mC} z#ims%a_}a4NIWo!^b|un-I1D0tNPTawvas~Vh*H*o%zYw|0Rb$ffi2})#D^Y4tIi0 zS7_wGOLIHUSz2vR6nQTcW~{64xU=F#Huz33x^DfnP1$&G(<|{r8)^aOj=oK0kzt-1 zGRLmy>rG63MW1f*i&I_Ew?Y;gAy=jmVhd0w?lv^t!m!J*z8XyLK+F=GfgtRo_Chfo8!?G=$(a!|7=!fh#VV|r$`}ze7Z^DqL3v;3L{%);BHuR z+^8>Us&t;NU&Ej+ccAyyx_8vP;3k>M4A8N~&HuA@9^h3JU)aBUgJMHsK}11g1sg_+AOePF07WAx0c>|6A%c|9j9siK zHn3qq!HN}Q#ey0ucClhb#DZO{*#F<}-8r}HoeTJV&zI*p%A7g#zUQ2sotd32*YUUu z!5-tP@>(C{0(o4mv#EiMoCwQ#Hak_TtbbpB$N`u!avk+D{zdDr%;CxQFqa(r1(w(Xq`zxDORY0&4~G*? z9nnk^{QyhOt=)b>@N|YQ;>=DnF;DIA_H`tyR@a8NJu}UC=Equ$Vv)UiZ+XuihSVzvK9W(?AEJBW@e#!hD>)6VT~9W9QI)x7C$6TMi%M6G@td3b1;KS{65Z2`P+6UrNi;5|`)PNM6LbIj zY2&8Z&*)3$5-pcLEg@cGj($So4f|wwR&PBOBr3Q#;v=ufZ{f57g?wzRgW$+CpmQO@irI7t0`Z+KyX)Tr{HfGmlqiG@jABUy>p3Pp)Q$L+tM=np}ICHMytD=XOcv@_H z=CcxeyELC7+ih+n&GmEnPd4s!D|4}@WGek+)Jbbvb*Fh$u7$XJDXT%6gJ!19fXHOD0?@1WL^gCH!k*C%2q+} ztt_K$_l!f1Bw7XLkmSBP+rpi{JG@QX>|`GKMlz_@uj;>bMr?epet^WB9? zFB>#!Y%O2q)O&>*jqRC@%A7T--o)`*HghePtL28*YC_XI7(HlB zXBrTW8mE20^v%J|1NZS7u9m5F%kR98gKQQAdy>AUuZ{pr`+_d*v>+V?TWlHxp;`={ zO^fJd*QhVk!n_@9XVoS_aG4CFqw|#TqcHntJf;b6N-+Vshg(Nw-fS%n+!srn7kSUV zHVp!SElWdZ945p((~W~*qb0c>@Q3w=X(Bk8=fVb1+iS;qi3aJKcbRf1d}PQR9z{{0a3hV=4veRo1FSBvPH zChCv+&in}0D&sOu+>4v$(t55@dfd^4VD#~XoW*xz;(r&+Xf^Em6fZwyEDdN~tn@jV zoZl(z!B?0vw^`S5MAkl>80`Q=R0hz@z1m8)?x;>hfTNAn1x&v-k30)Al*o35VT7wrZ5j<3ocrv3>UWO7s|=(`wwp2^>VYIE3zj}IrtK>i9e zX0QJ~K+!Of21<93+>z_g=&oVpP3HR!Ip6gBBd8Ee^f`x!GHpa!VxPJHJ-TspM%viT z5MGNg^B~WvXobHpW}h=K=eNv$j{moa=$lwWmyI0Paz3H|YoO2NZ~cKqQNXc2$8nb> z_aOWd`PNTOG=?Si)qzN(yFD>Gsy_!YN4e~FNl9PG{1hQwnkJ9?i8W!RO@E9`A78C$ zPjZ*GT^ZSay;|EI$7hDrA0pFc9~L}_-e;-4kG@LPtFSeP-2Dzf=FQLVq6vQDYR$_F z{TT4Kfqqqbo*G3bdaUokp+plyjMDq5Hv}{3)8P4~HEx=EM?Uq`;o1U6V&-hUT-tH;T zV0kdGK!YeRBv1_u`IE@?DQRQZ!x`6dOqNBxTTo3=bPu8}cO>Gkh;HTv5odBFF6A$ZX?f z1#&^!drX-;egwl_X7h7NWZpAvo^u|!OwgvBRi^pyPGnuXT5I}9pOGV3JZV_Xe52{@ zsMRg;R#7K(9Cpp_S{l<^!8>vLoTH-z#*E*L2pWH4F?&G_oH8zE|3+lrHD(_z%yW;c z8}MW8UXR*Mj<VyG6T;!GD+u3_UZhWBjh93+{EBtifqrz*ybGK-0y|I7~GjL$vLVT zN43&Q4}J#vLZDN6sap7}k$#h04>H^5BL_D4G;JG=r_Lgcp8Lh4MGZrlF^zG54#CReHK`aOnx* z$*kMD_UO$+)ZxTKtGO^`XF6@v5E$;d?IQxMorG1GZ{E=X2&qQL>e`)U4F!=xv zN5}4F0Ytyxwi@awlPB||@w!`=yApaRP@Cmy94(y+H_lo7E{GPtTYiy__LyGj%==k# z(dIOMFpBlC|I#=UYfkeAqDU`R^EJ?_ffwiffm*z%rcs>HiYM-IY#Dx^TZYFiyk-5p zQO7D-0c!RXjJKh;3nyTsE5{MowK%_AAOqd zi#0_d?7S7`T@gpiFJrOyn-q`UPVhS;@B7AW7!~^d$WWYOuN-Sp&SvS$5wZ zwYx{{w77ReLYyf3RWswdEjoywt4-83+$o?Ppz4to;pFu1hTIxKZ}OFyIooKQ)PTU7 zH95BPBHIXPV0FzXwp=GheJ4F~-4Z>eIYe05e&hA7o1=l{Oj$)+dy#20cJYi`KIBco zoibcFB(@Z1?H<8ahLcC61GzDHr+_7C@hoo$5?{wK)2WFpofDSC>!TyQr_BF70~ey* zyvSFUdA|AFU|0d<3Vx*}vNg~-(UCb#mOl`eJDR#h5gF+V0@)i!*G0DVY1^E zoU5YrjY}KFR*cTlkgkjjFG(Ak^VQY0F}PWg_buEFsR!kWiZ+V3q z_oCl9G|I~(uywu#?3TtHh3v&*uGM8h`drA>UK$M&>6$^&&4+YxPTAUx#_ZTyI z)Zps$3k1_+bpv}JI;fYmIxkzpNYSg}uwH!Cp;`||I7b1Cv$I1IXJjFavm%!7zT-GY<6zX4qjgdA5mL9sVSHx>&Db|_-!`@W zz^B%8KUR8%+dOc0?RJW6B&ToHOa7Da*#>`ru>RJyNb$ryAX@Xn& zR(DFULXD$`AfkIwE%aLid1Gw4rL{RZ*y4v+o2+>>Dssy^(aAQkM#YK6M~!4&N&t>&!g(} zH#?6Hs!rfqM^>4)(4(J)Z+f^M^NL=nj}CZr!SCn0F4%A-ZKJO{XXl};u|;xRu!qdD zlNy~l2P}5&J|(z}Pvah$hRtkFNA@wx$&qE0W-VKC0F8E1AjcL8N?q5DcWqDPUy6FQ z?&PePCPo9*4{7J)O>{*(rE1i8cM7D({t3}hYxQF+-i&|dS#4xgE~Cg5{U;MCcS$F* zW8$!Lzj`!2@+La5qRO0)9*uJYbfnJNMH(CN+%BHjBF4ua6JfuVaXURYXM&7<@#xqH zH%fgEenw%`2o7jP=2gql(Q9xeKfxMJ_&IhAGFiJ(k==l_ox9_eW8AC9psevR(O7m` z%-Czea>X)S6M1->%%43jcCa%Jo8`#J^3}AZJ5!ty-kMQ$Wb}L5D5oPhOI$U}s>sjQ zKj#vA=Jqs#H3_386>73QzPhP2x^bEL8t}mCoTsEynMt*9{n5eS>n7ZQKm-|^_!otb z3Z9F6#4;z1jwjQ^96T~u2eZU4IM{g#_R-mtIi;MxIi2wc*BLAIXk6yulEb6LZAW2b zmqcnbXv%Q60x+^+!LW=`)ENYlZ!|PI9%uT71~Me7zcF6#o>Zi(_HN&MpV-9JH~52R zINy+Y^bSqL+nXQ77%>@BjaF4`1XsuQ(#s=?b$_KzG_XbI~l{Y zqM!U*Ami*${zY%)WPj~1YMb}bfZZdPzEC^n!kljgv~}l2>_g7GMaCQdmiAvkv~~S1 zd$ZoW-!<4*cFI(A`#Xv_Yut;s1ofD{S?>~5Wvt_8GmGItDr3=2j%gI= zeZshq$)-m|zeMnR&?I;alkVY|iO~}&qcGqHVfgrKRU%j?*-Vf4M6Y$@2fsl&2JA$z zVX{S%tCjVO^dL&~x1SF#Hw5x<&?M2tS)Hm3@E6Q(_IHpdBmRjeB!WkSE$fdC5^1b5 z-8`Kp;gk8%`>lI3f`|6>M?}$+`ra zi;%K0qlOb^bs~5=*ia|oVw5i;J&?p+e?nh7d14}XE!a%8+afKHo)y%VjW{L|ydJdd zgJK*q8tHX7Wan5ML81Y(;H_Y<-shpdjryCB-X~IEI!G}8Cwj`H&lPA|vU$G+(&t7B z$MTPAWdCywOWmvdDl4cnw!pW(!NBAc{(DIB6h3eCp4F-+yBeVR^u^BL{gH7g{jVLO zO59r-G`Sh9-d!lc+7K;K}<`bFDi3PS@b zBF^^KEJ&pP)zYkjl|hphe;May9JWo6h_eU(*bnJ8OojsIyRH!ZqWwZoH_6zv;EN7 z1$*Vxr?yIz?`ib?{vl9YQ?~PL`VBQ3jU_tF>kZ~BINh+9SYFL6zsv4t)cG67|Yv_sHR@Rv|M9qISE zvFhs<&VBsmoO8aojz|z2{g1z`5{Y%!o5HDC`S^DD`9V-&vF~oy!R$-H9@1vFs8-X< zuW`UkvRdc}c3{!jR?f4}z6X;VggIh|kU=-i&#uDUwS(kn({@ ze#Fgv;tu)56LyJ+8$9BF^N4SN;JQ5GPbhy-fOv(W<)pfOK5;dfBH|eyaUJ7JZmRd< znCyY%MqEpIG?E|j0-v~DKJjN|5pl{RUYSSS0KvjM;{Q?pqX6+VpP1oJCup{Ftzuh& zh|A1$+vrH6ntfUjkN99d`g#B|k3OuWy-1 z9Inxf1-A$i)}VdHr7v(Pmufw(9g;{sRog68G@Ax?oEfAzrAX8f1DLm<(Am29N!Pn~ z$k0qmLNjUd#OOrT*RO`aaVV0@eK}=queCig8jcMM#j8l(N&dZ2WP6^49-ZGue3udlg$B#Hil*{zCjCR%HK5bbZS0{&-Y=-BXhK0l-=h7mxA4f$y{B-h0Wl*b}57w<%I zJCf((3#)Tcqj~!19PwR;OxmV;X}c}QQw@1rye>kQ*T}mkvPD56N@sy4AVl zvi5tstS=4j5dM5pb+B{? zxf#`^NRE3&GoL^8=y!~@t+7sTluR6zb4W&VW(`LU{L~Cc+z)l9V*jcS#^n}ZWFoV*>fjzDMGecohX4tV= z@|ZoI*kWf>(zC4=JEtX5pY!Bw@`Ix2i*vQ+6GK4s7t9`p<)AP!(0$Cg1UwrF>&(*n zJl_DkvJ9LhMbSx@@^Ef291QxG@S~MryeFI*59hf(z+L?J%Yr>KyQEy8WF+hQwax9ESIV(gM2Q#Xwb}7L?hx%E7pA;V{L8TwLPj14mX-b7xsO0E= zsP;wV6)HJ;GR5PO5!D&8fP^c|GSjQ8cM#4?MM1sQw296OhNjtX zfH8tIgG$}0Pfm<7MM*EQ{s!7lh%#lW_N=z{M3gC0)lwXTC{v~)0mI(RdXb!&vi=r7 zn0=FVB}Fq!Sk6>W+8Xi~i-Ngcl>OItQBtXMQE8T2 zO7VRpygJL>814;Nr^nL(S{FJ=@_E-krh2h&x`B%w10CV5d6%_05>Cq^D=KjQCjR6i z*HdaeoMDE8fnEg}0>+`jsq=77XZ}e(=WtRU&JBixK?TR+axi8Jr^dtSyf-+{I-Cj* zXPXUOTo`ES@&*{MBFZbO=nhS@L}Eikc{P{=DfUIe$~aqoPKO_@G4q+Cpv>c~Zo$$q z`80!_SM`#)M5TUg{5*)x7C$bbnuqE+icd*}OQ`NbRkQ_H+EQ^gpt=uL8LF;G*lA5( zW=FG)Sm`Anb3LcT^Jtj-^j0A9h_e;o(%(srn&Tz4CE4zvm2PXO~gEpeQ(=QD(7K zH+Sb5!%)z~#fgF9>_AN^GHj_?x)n)g(yIPa$MHc1G^@`pMJIuz0gXyg*?>k#i>C=- zjzx3`QE6p8pW^MJdLf4@f4m}#hqFjbKHvt5xn`OT?@{v~13km~4S*|P54=+&o$0`FgbZih<7b>Cl~ngstNw^z~s}cqZ>8HJpmY9?piFxR^2M*eFOW z0^?~!F{9GjsS%TT0#VGS>OrxaRK#qmQz@Q^C}vYB=H_vC))w;{3|7fIoUaMb*Xzw! z48|4(iASMZATRJ$Z8#XeQ~X6Ld_|>*Iuia~hWTcZ2TX*V>zQu$mH!s z!OF*=;4eE;wAj>Tk4kaf4d@->!Xs0COYuvo@CcRYcVQvE6B4d6JX_kulf#j#X3$CA z=CZNOVec`^T(A0s&D=4; zKwV-MIG4(id2vU`@0t66bG{2&X3)-Gx)*;jGgUoNFCUg@<#F z;b5RC?=&z@5>BO$qbX*#!zuG{UNsyHgtHKghlEp}k5fIj4>;GbDD^N-=4PPwEvVFx z{Ri!TMbx2C{gvR06x$^d?GSY+QyoWfqEvJ!RJuZXkm9|FI+UrR=_T$;-(dK%l*l(#=a_yZzuQR&Po-JT74MBbWe zEX7e$;VmjnAGcGy1(CO=lDDn%z0JLsn}TD zRBh?9ioxaE28ru{y4o15%?A{hNJUmr@lZ`-%N_ZF2t-*$rB%ma6c0hdRYp;84zWDq z)fq*2b%pb4ndj9q^9lobbqT;1iI2EZ$%WS_z9bc1p^^(5?UYEYhlDHEI3(1!&-GU@^^CT?d%}GwGnmKQaw``zmEv6h+I>P? z5Jx0;?YWRnUgG?p>)~8!I2Z`$7cf>L@*ma3$FlNi%}paj{-cur<0y_s!g+DF_`Cx5 zJM8}@XFBc~9{1*3yBIJK_Z=Y46A|2~c1p7Bq4=3paHA6UPV7}}hlI1%!rfM*`V7ZC z)#E?qtV^-#NdN7do#hJg*wHa$aE|uciTfrugs*m5%o_6dR<% zD^&6-*o~jPLlsu8$ptd9!R~Nh;GoMq?vcigfi@JngW3fVH!96VCsC|J!t#PdF#O&D zhVvamsTpyLCHf0ye{BpHXkYgspzb#YQ~gTuN2!Pom2Ta)!|Aq2*ey$%vp2{;4{_Us z_JBh5%Kh+RdQni~Mc8&5mt88Gklpd19xLS5S!COC*rW>>=Q*=tFODk>2Lr`%Cm6RP z%9N?TqWHO>TVxi{6*T>4k?ScCo=NB`AUbk#TQs6NM4 zFY~HXTWAe`wmY7Sz3R$sT{jpL&*2Yg^p7|wDG z4Iab8#(;qs<^na_7*Of`&5tO)Cx%6*Q@SQ z;zGore+hSuScq+bC`45HQM5`Gk#OE>97z4V4h*Nd9MA9=9yA6Fv@d%ZP&14Hl}@DB zDQX3%K8;FGh-|zkcX^O-RzcG27>Tz$mor?|wtsV~mu^dr!*5+J_XNhQ9 zK_U*|pQJT;f@7%l7{+h!7%&jSvp_v*45;*t=42_ihNL1oR7bSr))1UHEa!Ho;SqX(I0ZCPs|ODZa}@ zQ84!W`zmfrX!TcieMP(u!d0J08zJlRuf-@AJLS9l^IiT)T1(1^@OYQjl$X|aJGiuB zptL?rW*$(&IB=+x*54@pBo%2z_3qX@4#+m>o`}+F$h8#5AWAE$rC3>7&49FqHUBT+ z6T%T1dg|PnRpEtjqJ@Bg{Jje=ZbQP#I2$GtOJ6t5LSr`0jMwE+y1 zT?{22!z0Fkfv#JZ0`)})zju}hwoL>#c z488$lg>a^MI3EgUq{FH8aJsc|`7whwo!E>(!a5JjDmB_f91MihvNM|`NZ2VKr}}FK(PUT@lz14A8U~fZ7)txY5S>S;1I^Tp3;MX0g$l#K zHQf409$6Ipvqg|t`EdR?y5nvxNf>Cc(E~5KA>k^sv_TV`4LOUFhr3iP^Kc$991QgN z+*83g5m72oDHV@WTp$&xFst7w{vs8rFsqIn&b^RuMcje-)=2h>xpND=8del6C$Pny zSL^KVqQl@XQalmhaROhG0S~n=yUAa)PJOr)P(vM5g9lY%P#AE#C2=n>^98ji59%x~ z*;1V}Zw+yz^&ZqU24x060rS0}7UV%iUj5q@s7gmV*Ms`Ppv<5h#%+;sULI8B)rlJd zHP{`&86MQ|JzTCZ(3SN>V8$Ujf~LBg;vG_P1W^qm4c}7y5(#Hz2n)U#keVaz!yNZi zkNX+p#z5S=uwA(mB5qTSq&OT2rxhe3=Z~o;9O@WqJ%(XzU33^|C3GWDbBqC%)_Kb) zekc{uq0+{AE7UCz^-n_{MsY9_))n+4emdgSb$p&N6)7?4GAj? zl4h4GQ?`fu5Z9>80X<(croYo#rB>^N4ayv4`9?mU>V+ISs zcnDF%sI=bxgW|7Jk!@5uhxYElJ{A%-kF&*xJYtx)KimV{kxqErr|#uqz(6rf0&zSd zZfjFd@lL7WHr00&zmkd`j!MtA@7j~y9z>H7DxC*58D&b*&C*P%G;F*k$Mfza=^DCd zW*glUjc$$-*R%kN16^DzAELltb{lJ%#f5?5s*!7m;<7e3QJjl}tE_SUNw-3gMyhA1LdQsd@D!en*REj4{g?Fgr-D4CV zM#B03ciyd_ZE}C--BfGJDmnTKW-l`DFi`IPgy1*v;vFh|_@onkpgkh*Of{KetyFkt zs(UEjg@l)Q-mS}q_Ii5kbqN0&68&o^{~F4_=$=b7$@X!br`FnLPo$ z0*oQT>Ez+`W`{G`!=qI{Z`70b<|%!zDz)!6RCRQZ+0O8)e>HY9cn0PMM3JM?)oO46 z_x^(fK$3XOV0(z^sptm+(QT$vg=uzp@`8yBb9vKoIyE^*yHE5UaxL)bb zB%p&5uooWCw8C06&gB0w^FRh1&Jo}qE$qrTHaKmWfs&=ptjxn%XI~eI8O#M^ws6Wl zoQ`Y*CHHhVr5?^ThJ(T8T&#Ws#(Rh|Vr{lMi2G-VGGeMq6(x-Nrn-#c3?%Fncfk6k zcLDW=wjJ6!uSz_xJ~gk*;B|ms5qRr3I9aOE;JSyyDfV!7>*}&(1{)vDEjT1>o{uxU zaa(Y9=Gj*dV|Z6~my$cNTm4}E&^i1nwc3%bX20sb-Kg4u;mxlazYbN~b068S+I$15 zwqsE7s!~_2M^%Z7bgoyuXEzrq2HLYafGEom9Y<6*Z5SlZrFfQtpJ$D|<@A{?Vc6C& z% zU_aQy*=au)Ee7)RE--ErPPvD3v(Cg84yV+^8EZHgyn{bqgYkuMI(ayi>YrOWvl0*I zE5pG+TS2V{a(@p|=1f&ZF(nn_3@TkhUr+H`By1gLiw`O^+htF4~btobRR9YWiPI0DGM29MR zor~hDNZ7a_X=Xd7YOGco&B!b`D<2>){AFj9R7aMJ$<1BjmwDC0d$`~+&}rNBQ0@XE zat)Psa1W%|S1MdXHD|pbaUR99k#L3K#m9<_Yt>8khkG+dIgj@iOGu_o-Pj<=y;TY(-l!3 zQ0b|VQz)K*gbU)(*;Dr>%>>0R({nwBD~$mIeYElspdJ+5yf_>YKdA27)b;Th9!}d{ z&QlD8vkHu#5qXMAyG8!bI2Z`0@e`hW_T4iua1T#&HB2GU?A?1APz^wjY`}% zQk)~AB?XCKXsO}kf63_lZSWW_HU=M^N)M%R5`xc_$CGd%8{`a5n6#Qi*o&xiiK=W`Hg}6eirH{|PiiU<1S3OeUx54a(YF{LrmhV>XyEq)LkJp9!Psd&B zaqn<|%NYjZJ{iR05pknZ&K{=tfK+gs>JN&)B4J%Vx1SO`sNMz-{%{_oJP(dF4=|7i z`-F@zNLUlc2InSSxc=^NDmUjT{HYMB!9=IK70k%HfoGIDZ)q2D(bT4~)Bo zQ|{puX?pt2;gotfy$*DlHG`F4d@Gzz9?oGU;QWw`K3iMj;jA;j;b5T8+3qo%o7{+w z5Gt)RM^hXr6-Nk_Ce?WqZeZ<9EnJ&_C{2h;ZNk=Z=T_srZBEUe~;oFVi_BawYkCTDZyFEB7lEHCXC)f=n4*s%NA(tBt z23i^&1;#MpG|tDVI&VL4zHt7mye}VT_#fL+{dqE2=2cZsDxvDLWU$z)+Uy{A9H`v! zf4rXp^DMD1F-x2Bh+=L>Fg|roHh4G}8x97-c^8bg5FJlcx@X#~ih&c+@idr$6c0ke zMRB(H0fPHC&G*Zb!TQ~Ks@>yWV%!*r`(hB!7wUpIDmd-S!1=_*FxSJ`_F$I_421JC z7|#o5o`=&;M|4>-x@AAZ!>KVG41}|OHA6HK&hl_R)N%RP_4lbB&fSKCfpGQ*qo;7D zc{szhW?bsbYCW7)hJ%3;cqSO938&7(8L$I5A32I@x* zC9XPQ)f+Qt=r5Sva-ee;0}bUrLh&7q`DQYDRIb5;n{9ArFc_$T zf?JdacUF@7$UAq!vscJJ0n~d?sdI@o`9d=K9L-#>y68}s01VVeuYlzeG0n>`Mfd(l zz=P%BJns@P!^1hqaLnLMFkTbRtPD;z0jd49qrb=nKh=Y}%Am|(v(fCeA>p(JkrU@L-n=GdK&3sfdCw)iV?u1l>9Voj&^6 zSN`GIb~kt)as8m!<9Xb8%%IU2&RRq~rs_?x3<;a(@vuu^pB9KZ$s4=E^RSC2;qmNH z>EbbivjCiGJg9V>o}t(vp2m4R`dmSDAwn>R=(s%ONLJqChQaJWbH0(7K`@qi&PYtv z164O9TxE^>W*!$v2NPXo9n~711&(K#$McTyn8E1)o+8i{9w;tfy%A6kI;h1S)OJH$ zUd-T0U>+0Hl0r}~mI3vEgKF@g#u$_t1mlQaP>TvdZLl9u_dBS159%$0GJ_sKbwkuE zOm#ZNQ;=|hhaO90ay@wNb3AiBo^6M^=*{3s03Q?RJP(vaPS_TxdmYpa4{Dl0nL#j~ z=z)^Urs{#J8xqd)&|@xZ-b&u%c&2(hZy1jmoDSeA0-ff8;_|}HfU0*;wH{QfVJ>CLV421J27z>2c zDIcf$uie49BN>!<7*h>{N@4s?`(K37Iv*qTpfGNCz7%^ne;W=4!s$4HtxH5543#d6 zCsG_I6>BVmxtro0NZ35i=3Q(x?gaO3jyvITAAf|)0|w&$7Q`<_1UD+(W7&nR_?-}O z8_Y!D>7Ka>h? zR3CxRiV3`h76Ys;t>G|=gQa5Az#7h?cquZ1Zy;Giy<_sH`M~0nRcHDOo7t!FcmZA? zj-_sB^w=hCqAwjWZ?C^4q0Dn>Tx>Ae`5|@OCRE?zsvErO-z`!M^!Cylc=oCsCQ?-A zp=vsr+mVPOMYRysffV~nMWm=!qB@V_*+{r38;D-ok012R7IyXP8rW`52KAmt(~okw zr&6D5jUz$84Bi8yj?1|QN8pl_X{bm zK*GAUa6h7$=Q{3`$6cCoabqCvHg()`M8u7%8U9vN45fk_)vOoz93#c+q^?;r_wW;Td?Wp;XEF?EMo99=l4)B4nvehQ(Zyv5~;`{ zs`1UaFG=w=sW=PFs`vzMGa}lyG?i^zS{n^M&Ew7$JZH5dAOFZ2xnKa~!&WY*2``3{ z;VuRYbPYTJH~Jxp!Bo>Jo`Zyq3wi)U8?7X-atC$g-T8~(*~Wl@?#nI$>S<#@r6&d& zorsHwvV=;D?j97oA>k^+%U#F9&;*)Ckk~% z9F-W>?F`PWWbouZ+#K?7b|2xggn_(!6pRJJS(1-4{ITu9xgr@fco@Sgn^1K*!>L!5 zI$JZ{Wy$E-!MR@b?Z%FQ_IQ4W`4_Rz%V$rObO7g4hcm;&`N?oFP!t_cVx@qDvpk%? ziov-AGmlQvVnp8nFz)>M14kWfWDjJ9a3>bQT^{n)&>;6M8autws=S8NGxdv z_e{5CQR{I(XxtcxXqS^&ULavz9F-~enKt0eaAqkFr|M^2NnPwhtnjK+P4}nzBDY6X z=2dsCb{W7x`&uLMV7R;}&-WsAybk(>4yV+^Im>V`5YCNY%n?o}59hcIz`4NTlz2EV z8x97-Sq8?3!fEZ{T+GwSNV#&oMj%)w}yj( zdd*v4EEdiR52u5A%`}Iz*u&{iCE8a$kn4F?0^90W#x z;VklS9@Uw6w(F+#9?nw3!9e5N`Cv>#bS7Gx=P5oT=ml|TJMB2%?%5ZHv)o)c*JHTh z7#A@Hx|CSwG&W8VF`$z3Jt=mVigVpmr%^mfD&{y-Eu{DmqB+h~HpfxY7O&>Gc?Es6 z!9M3<5O0n;}62p{jz&XtwnhFo+O~b)JIERB#i6{oOAxl?MyiCxQap-KP zzbFC2sg9w{W9WFS%Mu1U4sQeXx-pn)(=)lvfrRC&W2n(Z`zem0)MGfs7%&jS!9X1# zxK436axq~ya87nOB_7VlhJ%4{E&$_PM7cnvJFPEJd{)q{N?lN>{_$IyF> z%LN8vSobW95iy|pE5SZ8#r=@5c|Jq>Q3=9$VrSZ&=tvSC$x0)^KqO~^cAAl((sft^ z#f4JQElu?g#XqFt3^i33CcnKAouQ`E8QM7CvE1iJa>f<=u=yEH@%04f>&m+z=Px@a z4IJwdVg_~4O+u6qR1dV^ULVDJBwS^U!mt3=`Z$hmKzQR!fDG4x+@Yc@o?@;Nk2#&P9xYX5nLz8sRMR zaK79coGC7I^&U=x;h4d#VBCZ#bEwo=Kd1PKR2*efZ9k2n0?|=6)zK6WN5Tbh2jWY~ z>^{a=M!MuAb`3m_wi)jtqp~HpVrBz+rMU12m4?IjD84POc?G#xXHME1^a-xx&hQwj z_a*bmT1I=X>U1NgQe*KJ=W^Q+38%%GILu{zz!-01x`*?E;b0(~L0}v#oH`F@kh;q_ zcX(1BPM=zr3=D)b1B?q0B?FZ<^IoC&f>azHRGLgTIFB&_32WkP@nb=nM$kSv7VaYM zjd|Ru(WsMS9A=qU{hYamfd+$e2zw!N%~WSmoGL%c3;ID4cj^wqu`c*hkD=!T7d!?U zfu02FF=Ifr1*(53{wWo~qf+PCcRDXEBVnh4q}hq_k6qv%?YK)k?&-!Y1JZCjh?9ld zI*v*Vy*31AlpA)7J)E}<#|$0-;~wEO&)}qQ#BoPizbZI69LG1O+%33-2e;!yml8Ah z6{sHt*EkO@y36)MPduw}o~^tyf6N?jP-f8ae6Bo^aFtp1&D`xG$b&lpHPR((nFsZ{ zL7Bl6U?w2y3Z}Z3;(Vd6$e`!G!U{vpUNEFwwikO0Ehf3RG0^(r2cW(Y+>$sPI16_L z=O~BM;Ne_uI5Hq1yI;UY8zN6psUMG`SS=M@%2c;dya5Rp#o6-Dr_>)x_z}tA*>#z0 zJnoN-8-rWx5{XYi{8*?9;;5XLJ88XmxWk$2;Z)UaO7$=o;ta2P_{{C89?IzERi%nG z>JD+S*Lu}gPIgJgK)XUE7xK0MqU2bcBPk9=!a8g0&7yy5wyAUsDUV_EDUJaHT^n5u z)D^~HswEWPl#2AD($_^dzle=KB&;b&nmMDZPiP1CVD>mY-XX?I<#HT61hfG{tc)Xa zQo*;HpxJQWF>$C>hb zc~uL|SckYwCOqz{Z#JO1!ZEMB11|oEIQk1_r~cNwd9aIqnOD7aor@j=dHw|cJSsQw z9F>mU-xPnBn=7ob*99AG3&TOqda=ha!Wb|R!#*<-iH=CPBo4<&(pS^p0Ox6ghx4rA zVDL7_`#3NrBJvcKa(o}fy9K={4s8jA;kWHzIM6ZFdkn3Qce%ho3@d^9))=hK9y8f( zL&62CV|a207!H7eSmt^R8mTFAt&z&3(Bc+dNCHuL_cdA$Y zhEZT3ih01_D2i$M6sbQoaQAh|sP%BRI>99a1L1rI#xmj5<>L(Bkkx*&JQ<`sjNyB1 zNY(xf5MEW)u^p-E;}TWoRac*=VWBq<@px7DnPXI{KW%pjTXaa+$t<(mVRhOT@8tq4 z@o@T`=mNw*I7fjo3{ihVrQc$_hT<%#IA=}uF2%Q`Vj*s-W|y)DhJ>x-4#ZF6%tAbM zn`ZW&&Z}b2tB=hq4CK{7fDc0C6{;1V@GvjM^QFQoQ@u>_d8zQqRO?^HJ{1x+|8HLX z%K4M*;g&85&#Traxm;l&ul5JHr@$M>!8yYMZ91R!X|nDcgJ-gvOGSgnFy9z35W@nX?lT5d&s@dr z4T>wJ;y@eBURUs901_@LNSc|MQ%7wAcUQ+htqOBaJo2uW_UPr4F?0^df|?eGQh(4%&^Z~@dKhg^b&*mjj5)NwMi_M-#uuA` z(TUN}!x&>2R0`um+P^D|8V{pJ1J~XRn;u5JVNfZI7FY5X0TNbv7?U;!qa*7o591fZ zpi&rvX+KaHx^=rF<-i{@ihraPt=OL9s?+?uWh|p1KxiF35nNo3nnM$W! z0}?hbNSHalsz24DYOiFF@OaNLUMj^KT+PE?B7ql`u7SFv>Vk;ZR3}laL&C;u;XPeT z&{Cdcxh;Qa{nvP@6z@Zz-7gY&Q7PVEDgG!Gyryb*4Lf2;xXSP{qiycyAZLcY9hTga zH)%ZH<4$*Zrc%7)K|2-^FDk`*C&gQ(g4a}EQT!YUSFDA%4d;HcEhDtY`@Qi}Dc+rD z^B6rMUQ~*A1jVDJg4a}YDb7a1C2Qe5V^etd;10IOJMs({FO}l`2(tc$XS4mEye&v>8H$7nS0Do#HD}!E36GuVZrx2^Xw| z_leH%?#Aw*$2<5;7cZ6KJpi+nC+{rm?K#2%$R9cqqhiYFWoK=uWGnlT9cCpp6$IyX&n?Zd29s@C)4Ak+67*L7f zVTun(MRW%98^xcHa9Tmq>?rX}Dco(CPdwgBjF(FBwx7$FUJ&u3(%W;j6vrT8T|p8e z>)izO*3Qe6$MC)}U?7IOfVxd^HE}r3?R|QHvoo`ehtc_LmmMmF@ipzgK;$JVWvBJ^ ze0v26E90=45jyqomZ0xsdzv1@RAazE3{^m-1Xmu1L%V%5aCUTNr5?`nhJ%5Y3)h2j zt#CSdI6bs7+QFHXcsRx9xQH>3KTE-QUpTEjoISPmw7oMc_Hc$64hGsY-uec<34?^q zJ)BoJ24_2mlkjj_PILZXpmYxb<4{CL0F}X;6_*31YI-BjMk2Z= zWGcJ!Oi3Bjo#)1J=j<3-ch0#(e!(xx2&ABey z7>J?hCLZ5322|tUOC-urbw$D@t7CXZXJsqL(BLuD8UqGmI0dK^1h*&-M}I#<>$jFJ zu6hsWTf@OXo!}8L9z>K2RPuBc#h<03Ul>e>n|Wpv2^YlK;s+Y;1>3^CwS%7PaUXP^ z%aR#P0C6lLZd5uB^C{jgqIm_0VE9s7a$7lu86HEuF_^(OK&>zaRAOjz3lD1|;jGm$ z{J0GaEgZvCk74)eE(SBG78IfwOmzdr>!c!os6_fP#Sf5hT0zpxxS!g%2i#ja?plv~ zvT>V1%XvI`iG+1=RI>Eb9^f>0I4KY39m6q$p}|LRQjX33z$ zt4dv=%c)HraIshYggJ2!m87&y44({ za@0HQgX7#ea&VDZW&=%e+>;w6gFP^-_i#42&;^QtK9;ixjHeOx8B~hB(QQP7gbU)( z**^2hjxcQKtmk?R1C0R#G4ueco8acf;pp8Lsqbyz%w~8vR~rrna_dwuP880pe4MIF zI)SskGn?w+q`K}$^?Fp(L2A9~;3Ah03>J-M?;DB*qN&TLNxiQg)YzG&Je*Su2Lnx~ zzk~4$qQs)Q6zGn(bH5MKfPzZ5PA5_vhlDk8w)_FP`oNvxUY8}B$NQx5QYqfMLAyhU zm2pH)(O35ZV;$xl%*s5Rs;AeZx{<3c^{b1zQ(fdpO1$dSoUN%&x?@o6RbPFvOEL!i zq4^dEzeJQARM8tUcd*BUC^@KZSf7n?io=nxx#6wm+BDUxDcpg}Xu{)OZrm7%`$iDw z2(@t>l?2UJh#<*qtB2>D(8%A+35-y3uW>3tG`-1*Y5S=d#9>X`rfWhZPI18vt z1-B>;$BDUw9+Lb!2s&a`@8Ptc>7vCzp1uXfV&N>v$Ei9*OYOfL&Rh>Cb!Jbh{|us$ zdxlqiwb5W8noaIvI|vD9<N|>GNrhKtwQD{5JBYk8 zs~UTrscNLc>gyn13Ey!yp?RqA>5wRwesyt)$L%fyFQsFbU>DZVZhUYXUV_wr08BCk-% z_k$@OfP|g?n^(7Pf>%E~uSz_xre5xHg@L@f0N``QhgYcN)e97#l?ty6X5IUMMC27J z%~ZW8?uUe}|C?9qw*ulP=T))i)!*h72J&huz$c3juTaUW$0$B56<(o|3x87l4GEjC z$py}|OLV6F=(rOe_jgygjF>^E``OPy#BHj{6lV*og2;U9DPmjNv(BOx?HZj zIe#h~HOmET2D?4LJ`kdSQ7O7(C{{^Dz^1yH;`KWWNOwH!8Vv1jQjpxMI!R)h+gf`+MeRkGI#AE@mp#!L9=Ba*@D` zN~hU76yFfZl7b|3qr*1?{X4o56IFx9aI-OBAcoBr@J1^l22|?86%-Fd!bPiN_;_O& zzI7e7-eYKdm5TubFD|xC0E|IEJ|%!zg3GKn#r^ViN^X z45;)1VQ-3MNH}kG49R_A_}Ved@EBe)1`Nb-I#8z=11kME(c=^!5yPz2F?>b-lV3T8 zsb)mO=r5REdbP_E24eUNs8z;*O1~k{`C&eri-glX273>hgMIOikbLP#YP~R?GZG9$ zG6l2=h!TZLVcbh`zEpH$Q~f~k8>tvGOtt$X?1dmysY)K@K{g~D?s=7cQJjByzfN;+ zbKLvFxmV^TZIQW$f!sS1hM|buLlvIH^KBHbK*Dm5Sn1%fT-O_h&mBXl$IxrGO8^F9 zSOV0Wh#0KR<_pndpJ+danWL+1;uDEMk4YOm5#|giZ@C{e=yZ&6qiZG>29j+8n|FZv~V$%EnFz+ z46%hvrc^rOn8?!AML*7Nbwx89n0(@K#CJp1xQ>awhMZZ*J9|X~N&t`ZL_q*OjjDhw}2jcWWh$1%C#T3t%iil11GR5bmB4Sj- z0v^zKiVIvMob?|($E&7VW4-U%PW8O{)x5%BFsJ+e0QW@X6)Js!;Y^CBNrhLa^zM8E z#f4Jg6)OE8!ao%MKy)0;isKMY`wu?q0|NFE)N?)Y^*wj|Ydv4P-QY5afqd=qH1Ay@ zVO^Yrn5T3G=Ur!(@^I!D4hA|Bbzn?F6tk)Br&y1KHF4<7Xpw5s42C5^^fkQ-kKt=$ zFoPd~`c80_894V+1ow;+sXev>>YX5Z9IwoS>Ug6I+6?x3h5-l(%k!Z0rLO4xibFl(%Am~P9$@Z5ltxrKg@2^@ozPo* z=$TALKG%+~OC;ZPM8zJ_VK=!Hm_gfTd8G^yk*UT}9F2s{3lO;n85K~(HD)~5bZ)R30D+?`d|;BUUU6vu?KawL7BlgU`7jSNghe%gc4Dz36zRdOTg`xzw0J+vmvx5>E3#ae1N!{1+Tltp|0sL7BlgU`7k7 zt`Jl^^~&cRRLX-|Y*1z}ADG((RZ|FRwze4-xpASwgBp3O3lM|vIgh>v=4(WWM5SqO zH|Cwzh^8S_8n}<4SS1zH5UT!I-AwU%B&^K%koy{zx2M~lE5GD(&Z{!dtL5eu2I5-| z@KW*Nm8rIUkb)^H&A7W z7*J`+ayrFR#L#$k3?H?C;YoT{BQ79rAo|$&p18xsfPoku2kH@HKqZF1D6W!<{Grm6 z*!dOqGLUeU;jM04?w4M0Hw4jd=PdKMPd080#61PX35cRYCGLAE&X)>qRO0@D;x|aR zVlCXkx^O=c1jWoui#_h&jT-}T@BS)VB8a$AiF*{qYN_BxCGJ}&-hhNl*22B7j_Tt< zu$)E>9{1!sUCuEO_opC!EF!p3iM!-A_CgSGqZ0R#6o(?=qP1{O?+*84u1D2-+zX8x z194vs;uS(&5J#nF>IdVK3my4f52w*xE(Q#QvjmJcg)`5?S)^P%Y8Mn9&Q!y}Kpk}R z#q5+I%7wK#gyI0H$OS6p;v$OEk#JU=Eq>8Q44t=y`w_=I)#Lu#xG~U=JG}(rA`!uD zZPt68-3~ z?!PJij)Zk<;ofmWxF2%dDUbUXBucY%7#7*HwTW^c32fP}4A$57b^hWi{tvB$9K zJuU_e#4r%3gAm1lN(>iMJYNjWSI4l)-mw|d-aE;?|v{lVxdoE09iEf3lr?z(&AhlC5(!hLdI zxbJk_b3N``j2i=Sw|$pO2SnVc#CGd%9^jT-|I zeGcL$LY);yrBA-JKRCBLoT(np==)v%F!+TSwttVWvmlBAl|CVPG{wWEA_jw*P4P-3 zoEB&Ej@?rm!+o3MuJyRTFm4RQ{T_&KiwJI1;@;wYzM+DM+h7J!JQxY<*22BN`s}Ta zJLPe=eZa+yfrw^+c!5xB;;7{B@;2bib0bNGhjY8(V4xe{uYmCaq8LoI!3TU%1yKyB zw9+r9*b50O<7{63{^7|NxJx|l zZ5Ft=&EO{xzZVhQs5Ij5`4LyOh`3RSdkn>6kg)YyxQ}WN_l*vx*yA2)+-7hah&Kzh zc^s8~bJv#O+~9B$9?pEjF@rC_ST3B#9!~wP;9T!;R?a1o*qrj4;h4b=OL=Ml30IkA zc1{Vkg+ABeEc0->Kjd<11}QL(5YCExoM@vj9L~no9EY{o!jk>P_{G#~q%2XRJW1kX{R|eCUVs9i|uqGGiF~@8L z_iQ(r%=NgJ88-&vJ{!c-g*q>e%H?6pp5R;)1T#F09UpO7rBYdaiuR8SV^%&!>iFhh zT!u1{2WIF}d>2K`HT zD`h#??T9=@_4PvT0#F=rjbw$4?W95+p1yNSfVEYLbNea=7VKr5^WSd z)nhIO4AgtC1LJB$Swf|Yt`8_Kk%|~hwdH4Adm}oZO?4Q>LlE5zGnL(xq+~Z}!`5-< z3ZCn_HRiqj^_J$mOI?R3_F_2MV!%K*{x89ei{u?KpwdRcYZPBX!sZ1%AWN@u0F#$E zhJ?qk)EF=j!$zO;Xagb!RAT5yu@4e9UL8XR%@;Er!^%1IZ2lTY|J9w7vd7(Vz(5S= z0Ck2jpi%;#ruc*yR$1ftHX1S9-x7uyj$xU{aDy>mAcn*j><}0ODlv3JwGR@mSRF%6 zYZxwe42#WZgG>zTJ>g=&Kny1WbsVBBq0+CAEueUx7~c07(!Vc894j>5UgTIBJeG0B zf`M3m0dA$Spc2boE4X2ZgfFg%<+47oTS`X)E!@)o}bHKPpICUP* zDLa94t~+cg4`<&eU4AeS&WB*UE1Vh+=NB#Nra7Dn59dt7!9X}IzG8O+2`fFEKU;uv zjyu3*9?naKgMn}cgE3Gz<@q?({knm3b`X?$7)_sYF;OXuOKE?xFgoR9R3&?Wah5YH z@o-Xm>_PRJuDaN(o?$c?XwknIikA`fUsPI)H~E?eE0C~xoH;xDwbpoYhGR&03_lqI z23oW92Wo#r45-8~jpCVNXuLXx;vHc)-7&1ZE`Lls^l6tW3^X@A15|@Cm@4>&Jq$6d zvc}$+_~0fmOm+S&^B86u0|xqq^6tQOLBbVrI8MNG`+{?t!&&U%Z264y6a(R$1V$aA zT%ghyS0AEyzf{bkruvoQkN=0VGXamH%HDogP*BE&aa0`FxWc%if+%j-LKh%nlqG;s z(?Eb=NMZ=9farj@8yp360HdRzxS^xs;1(AIaYIK1cg76|H(US*x9|7fdpgzK75w|< zd5&`4d-}cSJ@;1Ct);86^s3z6au18F8{ce4-;-I5$NDX?erePz6p#9Xs~uQ+SuP_S zckK(uq##%n46Axfp_}jzBtW4aPlB5UUX&O~!iMIha->K$?tt zG-pIjl=>qpAf-^So+~MW$jWF=209)~5BseY==-&8 z`TSVlcTueG|5)DysPBm|j>FV9kox`??nCORxXF&_VTqO;V|)*tV?CU++}E4{^{^4D zZ>FkzTtdO5&SxowZ4bKSP#cP@6{2Y9@>1%TRkxK093>@AA(yd2z5qt3+`Mj-KNP- zBXuw6qT(pucdJ<6pIP4osPFe-d|MsSw|!=h@3?S*sc(b&g*RD-lz zY5iNtHL+VMV+B}H7)tdD8}_WR0dLZZ|C5;*wYlao1Si1gP)JVVtIp=-WQ?9PZPC=-Z%X8+eBWP4kp&{187uEv->R}U9-&qep`U*<>jhwS%>1A8$;l#t~VWjV2QLKmA zFZx;#pdK!OY9uBNK>F^+y|@bnF%AZOj=NS66V{-%o4DYBX~G($3A?z-tZbmNCagW8 zx@~82t?;?l*+*IbyT4#gkC%L|1Sr=sx=Ulq6-Z}Fx8lwdM6L#XfcuUhay4krA9zUx zrr!rNXaH_sEPYoj;pTkTVw+!gCujbZ|0R#I8@4Co^MhbYtg=sAwlpf+>tU}`r(_GH zmD;PgF9{-BgLe2I$2u%MJ(fq-S74Z#|JjXxNBBxr$NKK_vab{Y>iaYpLri@G{YX78 z!<{OKz71NA`z)3oo8NclZI#`E!Og$hYQvxO_+nYmo(#%^pfuL|t=2n@>V2EdJgk7J zcOZSetSjy*SbA7~SDByReWfGp!@a(uSPxsh;`I@r9xj1uvh@I@gUFM(kE(~_E%Z>9 z+=m{91wrQ+`ygYdQS3iK^MkPiDgWarVFxT7Zh^hD;#Am&`uy9)dU)1)AV58gfvN^m zg@Ba*KXLC<4;{DAL)i(1^iUQAg)#OMR{HADDE9Txd|~WBn;E>re&SgMOrvkm2;8Aq zx=oWEM*G(LJJatFudG$9??$utpb^dpVgvRR<-~3SrMSD{tEF$>W{2|lvM-nV}i&E zXv{=T&~g7Kh^&mcQzA$lgXy?rQFh8>0d~sM*yg^%(%5!vdhzd2llhW`&VJnQ!|L>> z*^G8N4Ql)v^4M1BJ;&>CE^H&_n@sE4nEIlID zgDo#8)Un&qNq^r-QB1}mZ+aO7sFU8Xoq&=wZe#QhhDokSrz-N+Sx~TYLvdhvLZlPg%F>LDJvjJpNcz05Lp@Y6z=1K$jYE! za5rP=WGt)STz{30JDK$Q`Sc27MH{oq7mWa=cl_2tq9dmCfb=EXak#aDNDoLmvWIZ* z7esmneT(}QroD(kTHUsZB^xhcX5YX757556uTP~_EZ5bRD*-wt9ML>T9D*rVAl>7u zz#WdITQ}J+J-ogbJ@oNCBw{^GTkWesfO@zSs@tsxAYI`46!$|xR0Bv?v-WQhB=*5n z4TDN?OE6W#AXTG9lUc>r`tF_^$&xF-WZ`>R|986LkMmXc7t9IX^2rjQWarY~jY@-Z z0BM}w#(h%|$r{vpn;`KgEWOG2a*xZ=B4$=Q`aa9|y(ZT8VC$Oz_1y=?B20Y)ja|sO zIquc!Xl;`nq3$+x6rAY^R>pd`%X%Q7MKT@TBG1zhZoN zEQ1c%E=Uw&DwaVi*4QSKj&H+uzW$5W(LH>wrLkP!w_FL(#iTUdor5V?eTH1;;oc;O zT!EzM9o$ud$Q4LuTf1!^BzDHq!+uA0teFdTAgk_l8q28Pd%k)!s;|C~o{1?VgRaB9 zMi3bRsry%OU%=AEztug{e8P$J+s#*_bFA;ztZxF;_jWr3iES|TZBTdIu7c^aKBUMEgCz|{Bm03wYaj`EU61l<&_LKp@6^WVD!3mK%;g( z?OO$jc9_%w=|w#k;Eoi;*a5i|cUx3mN{Qsp_*6JwIJDG?5>~k#={x6vG#}9om zY1C^vPNs+BvGlCm9vGC0&$j_qgE{_q^nAt%OhgK^NPEZgiFB=*PB z#rYhimmLE~Cm+^1#`B)>5TK2C2ppy231d9_7Q%C!4{I0Wx#DAAH3Hs5(=Bk!#Z)!> z%=@@+3t}t{+M{)lXpLzs4eF2E2h+~LAngn~=BCr+$m*0Ra}qE%MY6||3)@LyEZLr) z_+$x?=o{#7hSDHepv~m}8t%)2NES$^bUW@AB>sRYS%Z4wcEgmcLAKv*^xCG|{La+1 z_KEhpr6Y9O-qDU)F$LF~0s^Gqa*~*arCaBA##CI$PO#t@KPrhBPpeOTB?#F2AAFw| zj;AqI0%%cvBGK&6LE=|IR02r7bp|>COSj1FEq7Gt``G>HyMyn0{f(5Bzi2m7V|^2# zz9+#r9#h{y>U#<9!&rLLjsC;A$1ZxfTI$;S9@bb;)WZ_%fdKWe399czw>Fm!o#Ib7c-rsIaT-gn%I7KjRAJfFj{ zRy?y}JfG@`hr>P3lo(I(XTEdQTl*xV;}6pI>&fM84m#}(EvF5iYLtHDVxM5Rqz*{(~EH| zHVzuKEzRWf*NLNJK1XTmJ>h8U>rxow`PFy`5YNBictt#IVmznn4782sX%*uM*ZJBI zAf8rx1&Qsjbn6&TiN^aN&y$GpTx&c8i05=Tx{IepKF^Sob%WwSAGUsWkkDVWb11!3 zPjVgLyIB)!-e}!ez!h|Hsk&Kfk+v&h{w_Kep8dI(665IfxtC1i_FP6;#^;|A$Etje zAs6Yvn*DrOLyTw0y{roh_Vvw+V$EfLIEdy#o@lS3*GN;}VHe;5bn{vtm4Rb?&~m=a~}YnPNNy=)%%uI3{4)9RR&ac8}sN z7R2$!pdWC*$I{btdy5@!T58w0m+!ke)_0dLy#@kwSEs{1LE=bEeH&DRTPcXXft1dD zxOWNSsBh30xSwG<>KkN7{YI~CdhBndnsv67|4o4*f7V#;N#|??r7;bqD|9lshtI7j z)_j*qQ~;m;JG|Lk{b?P7gTv%U$~OhZkn%%3t z&~Cnm!dMS$tp@_s!z`%&W<416I_^sK&}Iug4Cx~ct$le~#d;`xGfDHVzEp`=^PI1J zc?r<2{g3+viS02-1kz)|y>NR7qPzxOi91~ovk*w*vK;qWEZw5XG;^=5QI>6$)h<4( z^|O%9U$is)#j+yc4|BN(yMK@fFl7a#N+oem!qS`U!})8mL04%FwKG==V(evlq_yBr z>>^`LW7qp~(D?FTZpPBXh1M~UKKB^zBkFk77CJ6_p7aWKV$l_2f5X^m>^Fy-xX^4c zb|BqxKIVWRaTJzbwk7uOHJ|>-Q6$Db>>HmujoK_mK~sgPXh2URXA$n*f*495jqaDY z{}seg0`=g72Ok(D4#Lulo6I49C_ zzq4}tW%saH>)0K5{wT)L_FFHSMseK6=j$AAFx3%at0HB+_^g6bH1 zg|X8ps=W^i61!vRvAI-a_{BDGY{zp#F^)yXL8Io+*?hiO9K-TCN|QQP{lSM7#dvo5 z&MUQm*>GHsNhy%V@(tWqMO~ar-KezmyUz5`()Z9g*26&SfdJ9%)Fw#mfThD+I=0?x z_JL%*+&z1Yv23&nam#kqJ7YyPHkx3iXBL-skD!tOKTPc z-MN^tGS+;nB}ahj_&kX%RdTB=vT?0edjHYz6!@@)7|%N6AwV59Z_D=wvGlSS&;NFT zCkTQQ2wN26IckG176HoVR5(r+&*B(QT5HFI537&yOfVh-)X@|;CW>c4K2OOGD&4Ox zsxC&;0L=i-N`7^!9*5yyVwn|V`MeV>zqqI=F_z{VJDTboLLvY8zcb zCD8WAl+Z>e;YPe0)LDxrJL8oBm+1E8hF~+B)A}3o_Z&-%euJZb6Qb9QeuJa`)1g6P zM=ZU`KAOLFDQWlv^xwPSH8J|c|9tkoy$GV7B3qkF#__b4#Q5!wl`)2rKkiD)w~oId z)>>-(-@5d#hWm2yFU#jIdFCWozHuyzVl4BGTE@=af@oEaQyj zE5~v%43oq%J;ri@s{5roI9A74o-md#9m^9iED_7t7|Rp7miR?*2e}kkBNvR^UofZT zk6zIiZjb&W44bfl=SD0AqY{mqXYmE9&gVfpYvy4m;~59faQ4NYyM794+(z)Zd(F?W zhX;xFn6}E#U13M#U4RYjp4H8aQtQSxK{k$?wYFd97+b|Mf7UWz=kz}S-MymRJBuo{e_eWC!}Gbgez8C{tL!S2R38A>XRcyvEF?PI_cN}~ zTwaGB5hU7T>9r9TPd%N5y0#kKwJvI9jAf3otaTZc!%!xcRWX+Pb>jS~%cUX4@}aSO z>R9H(aI09B<+BXkLpO^*aZ!t6EW_4@w0<1a$6AU@^q9;?L0zonnxB0|KXRFUM6VxU z+B1F>OfF3%3fl#VJuyv+kKB6p9C=uJR&I9rv!eK)+tTNU!IW5^1;6+{KXiTG1lLS) z(&vY+&sBK;7DAsNx;}S4GDx(-($jyt&ys#REd9svR>%77X8rp1GvPa3oMUr28S%Z8 z`5J!-B*wD9Sk|~+u7TkSOxb(n1-xbA9hS@6xN(-8s>Ry}j=m^Hzt69}I3GCrZH@{O zTVbO2NLRd5gixFhf(sa;OYkOR>Eb3kj5gB(4qgTCyUEiz)^C~h`+ktRlJ6P7_oz6- zTuzEJPiyq|980?x%Nk>O&$0Xj!w;CUf6qO`aNN;Bq64Pv-*Xor#^a5~(j9Yq%Dn0L z#~>1LpjMghx~>ajT_2Qa=2n^Sx~?CF@&VDd$)!cW`|Jt}-f=9gVk{NL@{VKq4u-GA z(mKYn12v1Cby@9L7Q!%JENf#dGj*Y1m19{MW0`9#s~pQ(7(T)@ zu>KPVbO;iKSb9}1Z#3&yYVh84^bIlkpN#%ZN1ul198C276Z7zH68*9*(a+T_?>8L% zq8RBU>1FK(~1%GZPX81=(O{ko&>3(1+7GJoAA za~<9_qF%5C>XLhOIq%;txGqM&OEaJOza9N65WQgZ{uA4EL(~;h_Wl!>;$0$y?e#Ucy*`8YB$l4uWQWnl+KY+Ii|*fKR#(UR-Fho8 z>s8lp;#i*2QZMxDKXD?+ahUpjHCS;qFGIl_gQds*AN}?|kbYOXeoJHh4zYe$x_%eK z_fPdgzbjoY-{Y-UFT+8M}OpTLE^shMjO1u$Rx_C?U zXSav`Wk=sRM!)UWzG^Q!`nw=nAhIx*j3nFZ%MHfzqGLI*Q;^sfOSg%!oTe-NFF2M~F_w3X zwUb=#)U1iI+-WS!9m}7O4-&gz>9zSRLpO%7EOWW6jIj*8stc{pxjq_VttGE_rgf=n zT@-6Qq=m1>Qpeqo-p^77i}N!m*>hi5o^>qsF_sIA#kczyevmYFf2mC2an{9)8$INuRzpB?^xxGdQw`yI@dD77r#pvHM z`X_^FjQg_?H5mPqjy^asNc=4N;w{l1s`>JSqwgG}--q{n4&dPSgd;l%vQAh!%q3&5 zaO0t{JnmT9#aPOW<#AVo3t<>5mX7%>#rNpq*keIqjA4N>JQnOWjrX2GdwP8kD4XMaxM+;&3e8I+r&Zix)K!mIMPhDP2Fq zZ|Kn(Iq2jdu^*OR6=OM_vheQi%`ER5Vl4gs z;On{A2_6i?d6)z*4u*5}qaJULc$ek!M)f>LkBU6(>RE3wQ9U0u`iC9;dl0>4^bb4w z-8%<~U9o}pM)c7+dQ{IIdbs@|r?f7nA=u7qc*s!}L)RNi&x$Cmo`Lr954xx+F_zF+ z9(2824?~?;rsuN^Td2!i{|u^Q3?;2piU-^lR2pktVEn%QRk&Xg|FC@il3z4l_q$_6 zQHw0Rxy^Xckqht zaV$Kjo%ls8tz#^Ub(VX#t4kura++xHA( zxyvb@2*WtBY_h;;wa{EAB?}$PN^9iigzY6>g+-U*7G^HR4g4%3D40>o9{c5e`TU(O z*M?XYt@-H+?f36=75f(%Jftj^MI^RWe56ZHcepGT#aPA|%N>qoBMjeS+CO;Y=u>&P z8A~tDw$+bE%U^+C|z7F5TmuQ%%3g2(#vlyeuJ za>hh`o4YVI1g{iJkKGdW8^=QZkDxS0{k2j5!%^P?$y}rUhogQU?`=^J+Y>XMl{4Y|edTw?Th8vQN7FPHH2GDI_s z{ucL4!)tgii$2@}eQ`@R0bbeME=Il8PCoN`m-&t<9(l%;dA-ZLCtf!!-Ej-lCC?rM z_04YF3uE*>jQ-}}Ylic3h^C3GO)eSpZU6mXndewq#aQk%mU)ilIT)VCl%)SevyexY z#oIcUw{gCe+{Ye;w;eP_r{z|t*p$w+cPZP#-g%ld0Ym3=q6!=HR5 z=Qx&0FpL+=CJSubM-{Kr8szW6nixZ!G5pOp|f1yAK<-%4d;nJkLWuI3vv@NRkozcf5eZwgFSVR zab{2#OR?kzmdd;-S<`V!taY*pxFML&5pd5QJW`CMr|0$#|31xOxjv|lF$}$0*VF&z z4lt$h);)A;cAe|JDBe0ri?JDgPZV!0)4jwx*V-=LI)eQSZ_agJ!icw?tJZ5=YpZzc zPF-oe+O;O)txpxwdX;Nke@*_TH*|VOTCa4iYvQd9YQ4g>u8g<-SBIj@U28+UwS&%W zE_1b76mMOx%RbZnM2xq7bv&(?I_A1~Yp7GqY3?XKCDvMUiFOiG9dmW8wVns$wGf%= zMtA_TqpxPjSPP7HH81W4%U^@i7{iCg@YmpQ&I4xh>FdNWET3W6TgSn0Nl+AHC_YNd zzKes-v6ho|^VwbOxc?3BE8-4g+&5{KP6^t@7>eK5G3BD5FxGODabM)PTb;%uZM=b1R%DT&?fJyGsbNCb)I!7kHluL6&FzOD`UO#s*M*|EZyPgM_$u zlWH~l54^e9aDHIce@d?>&8Uj%z|frOhbHTNZ8k`mSCSTgtE1)kVA0k2gOoHiBSbh)W*8)asMLT z@qsDBu`a_>yb>%utH};|yX@7v!9FIK5~H4G)MFgcTu5#d(ezv*rd2}k;20fT&yK7* z#`1!(jCKjW4a1va8Jo{C^a|b5t92};F_w}8PoZ^`<0y)?*6rnsFv{(YTc63hLogL# zl*_#jUXc)n362T8_5<%~Aq>+fH~25(t-v%){!<#J;@mX1I862}$dWVmCCwU_M(0?X zUt5|rE~!79#VbBArRkAwcwMk`*krF%xA}jImsAEY+?mPs8v8rX)S`E8dUdZIjDurQz!fU+a=om8(Ik82zvb+TJRue*P9) z@~T=!y0q3`mEXG4K3?2N$9qC=-XnsgH(6k`J=b)GrNTw6iLvxImI~L)co;^DWo^yj#J(FD9PLKsw!EXMn%5Dr1-xPkv3Z#|aYWc1Nuh;`4Ix#zi@elFDV zy(Cx@OQvL<7J6s9wdcxM>p2JbO8E982XMTNGpY#8?J6mb+kBAeO~3md%I2(%-Sv$5;+I(5vb1SU!W{W3eoV zvD~CP8Qp^ajp71SjO7Aj>E_-OcHltn?PKX#F_v47f+cjhOo_29HWuGL2!?aTGCiMV z*w@-WoElWe7)o~8o|dHJFO9W!KgerMx+!%t+<(V3$&ya}yLhXGFv*f`R{!~I?#N^5 zVYxZjtZv+MlpLd##R+biTNLZ}4(s=XK-V$*!FLv>eot`Q`QPxaRWHR&_M-i*1h)?! zui;$=G5TI@ysY-YH{9V_3DJv2-`)w`zJy!gm}IqgvU=d9gs|H%<@Da5oQ9696}FIbog>cSTLswRN2jZWaT-ou{YRAkzy)e! zEJ&<0?itAwH9yMs3;+VIq9!ygCdRk?%ARkM50I5-B$ z1+~NvD44;jBO|nHO-)rzw#vGT^HuKkmt2)IQF9HJt@3C54O>t-%NPq1^KXM>VaoUs=tds!?UxI_oaVAI*mj&DHsG zDc?T9vPZK+nnOF*l+IbkSdb|7I{yY?QvVJgvL@-Q0L|!JX1H`tjqub4!!x64Zlv?b zrgffPHfmIQSdPwC_StAWA2=*m=N$B0kM;kcg&Ury2lK+5L7b9;WosV+HVDhr-p%cK zce7p!60N-UYw0AZe}_j~le7;9l?WEhVOPVYeM*Fv)+SRb5kFSvxdakPe4M)AB`)I|5Oo zYHQq)klWyiV+V5=49iw}GyW{>@N+h>cCU&0b>LJ5T{XBE?$5IDSr+idp)5=%c2ct=RO*@ni8a-5czM?FL zpl5$LzLWZQ zxWSrKk1n7Rrn%kXQa@6vM@fXIIv8&CC^R>}9?{(PRT(unT^XAVE2rkqhG|DeHCf1H zn1-H7Shn~t@IS_K#GgKt?^45n}kN`Hs?Zdf;-esu1(JrOO{*x^Up3@O;UAkl2b z%E{-ltz>4*PQ&%uh9LCg!>e1+kv*bfn&`owTwvGm*KqKhj9XPK5RWz3+e@x|qpL#oF19$hmuJvd9ls%GxA zrL%oB((s;XAfQKKB5^`F@9V&vhLlC~!WPb>3kZ2Z8svoitxXzk1J(SIh7pEK!($Pi znr66Zm|$+MhHmLmTgd-S@@K!X<}+XXDF3+~{1_0R{2w9rdo%feYSBCisr(7KlIWzI z@CR#C{zE`B`M1oY~1M!?MtO(;V8Ly(jc?rCijb0nz5=-_v_;TnwY5uQ5T za2t%Ixi%PVQn~`gYpS)4oK-fethO5m{ZWyoSDOWO-Mo1=9;< zGR(L$F*hy?tsB&?L@gofJ2EbE!ll+G#m|FkT-ck1s|=Uo|3rA|XTxn=zBe~_T-Y%( zJkjmqE$qo$p?;%EuUM6;e3dS4tWwc&zDfjWueRq%egp$km4II3d6n6?*9f9YKq}nM z+~jGAsY*a9TpjMEg1ATnq$5~!I^$-MFWlYMGZ#|cq;Q1%g`Sgg!k4X0g)0Ef6mE^- zD%|c7p4z3_tFXc~H}|&-SE=dEE~lubd}O+2eDAV~vca|GRh50p#??l%>1Ds?sXxaT zD4OqI)4!YVw_6jtNnKat14;cOe9&--SZ2v;zArOeB0h-l)O&{8e0S+F(|lG=zp#-bOO0TuyN^f$6rw%hbcXRwd(tFVl zeCIX3uV}yB_jo_c2+-cI8v}b1=8roT%`fMSBx6EOB|0f5>~C$#dQVVg?T$N!E9>?V zo|^>?xRFYBKlHQl_iIBJ!6#6$ZX$uBtF&(M9>IK9*nwW9?ytOnvOQ zTt1?oe* z#GKIO#>qNmDMAT38qTDg@B?d;(Ct7oLccLwLJx@W)GqyeekOEVbDLDycxaDQF86!8 zDWCarMceDvCwr9yXnXyR-2a=&|5A%)rm_PmAmlscFDIOBZOZ>e%TwFyLc^8+#}S@d zYPjXU#9SMw%(}g-_AK_*UCKvQSER>xuN+b~E|Rd!?{W(5laYkwCV>FGW2>r`mswzL z2oADnmg|y0$iqY@<%GvtnQX${YL4GnAa zhvBNuei#TSD&)PvT;2v2RDt6{T+ z#WZv&8=B@6^_0;=%BymBn@hcfqS*HG*HgR%0(4zy*l2c&n6?)nJ(~3q?puP`UX13v zF+6pNxxwn+*UxcYd!y}zkil>!<%HGNCZQ*QN~m@iml!UgeIh({yWuuidV)ZICNzJu ziB`m?m5m=%m97~Q&AVrt1)aOO4=19d@Xkp)3U{?8wvlbfnc$@U5%w`$`F>$}Y0?cd zT={MViFAOcCK>MYZ9IIPQByvwyfR&JdfCXTn(?X8m2M@IwU2&=b?I4NTe(k?qgdNh z{ZP<&%SL|0g#y2dX()ge02PnrEh3nP0_Yx~f8#zch@%+LKY`8|#{&YG8=cM84M*>1 zP)bNZH%U3+F1>vUQv0^4(t@~+;Zpl;gr`n7+(xI1xlN8vy?*w0o70Tr}i@3ww=awva@-_XHyr;=KV}IH#BBbs%-c`QvV2V%gW~AsMm0@ z;mYRa2v5CaxMkx{<5+#BYN|%|uH`a&bn~lVakF3?%gkykd^B-yN%^5AKoj@G3A}#> zbF*}8<5X{!U$Y0Vnk)q>dl0KEwmUdY=XF(>g*<7C#4 zK_Vd|;Y`X2yIPxOM+!6}vDk2p$GH)nnr663tTb02o6%VkbuUC0Mr~tkJYy)UO_kS- z9Gk8w<7VC{P9USX{g7WYmj1_UjyB0Y-Mn-H^rFK>2%4V}HPoWHQe25BLXt!$<%Hv` zO``SyRd!?)USYUI9UbAR+YR@k(l?pQ$FeRR#x8?yQO|>3Pr_&-JqL96dI-=(gF`2B zUV^znYHrco|B)U-b|N|{C)~~2r04S}@9<#5rKcIurZd&maMRPt++01GkvXNdHa&QF zzw(;e(dmk=Sxdx!`l(dECVyByHyH#>ZOi2#B+Sdmm~YWMwlxwNguEpga>7TfO)?&c z(hXM_E*UE#JoSm;CgW{$o0d_Ot{omtsR#U)-ua`1`-_HPK@UF!1ZYYfFo{bfm>YtW zMYET$B6mV=AUY{0>~C$#y%N+)9gZ+uxnCOLscD8=?i0-2a_*_Bn!F|Y{a%A^ROv6$ zaQ&bs+M#HBT&1NADgbW}$DJR@yZPIWQXhy@fSsHpoc+7EbjA43XLEdi%q740FA|LR9ur$a*#!{EohS_BPn8*NO8T3dt7OoqvUJVhtj*xwX71Urc3eBr-^K2~x-zq4FFybT=-hi} zZqm2JbWkx!&sSV3h=U5yKp3{0!gWSWYg&UY!<{UMD>Fd5!SxI7X3P!d3Dz@bjH@UC zA)lR23FL(5S({4m6sQJG%iIeLR|(#V@YL;wTM1^HYbD4%3CUgNHm(T$^_gflagV?3 z((oT&m}ppEw)zmD#bD=)d0GH-nx3<0b`u&_LLMVJDJNWQZPIiDs5I%wv(9j7x+lU@ zTjvhzW(&(5*6x+H95OkTPw9OAl*%DJ%PX_)THVdmYetS-B+}o-UJHZ#{TY6c3FxpD zH<}Re0H#3(($(i9?wf)r573SW@qoZI9{$8!Em~SP ztofg(7KFT2L@nfm2UweG@c?M17RMN_TC9lh)H#M*EzUCcw`<`pMfR;^f#qgPG}jk$ z4`M%GgLLB*S!Xq%QR?)l#LJj!U{Ie+`5_2QH2{*}mAKDgPVjK!1g=LgAuHfa$_b}f zn*{#@RD!kWyv}e5el)^U4;gNP7n<9oU|V12ZX1!>JN>9P9F?#5-Lw3t6ClMsrw557 zCdCFV$9+N&ih-oK%Vk_C#+>5i#>r&38^we?24_-ExW?Mt_79p-{H@_``;YL{E=T+P zOmRzde@ijc_x73zkmd%IJd8=RK_^_!k^pl8TNnYClr^M; z%!ME+C*0H8BybF<1nR{7aKk0=ng~ywZnz0dnwu-oPI|kK(oLoAmDQtbdk?P~n{|e; zz$;s0mvy4E-(Gz(XTR3OK4=?q<^xInBmCZQ<$Dmp%GaI!8i(>dDZ*2G8SeA-H+N61 z;IMjX)yV3qQ9K2medaQs>qTM0{Y5!_n8|5_H3f-63DXz;YxKb+@61U`H=Gl z@m!7`Ig9FA-z?~CH#nm?@j$V!DUENkes~=zD>8CYjkiPVc0mpy^+YG-gvHh-IpaYy zbE4dE$(a%1scD9roN?yn&WYSbIQzJ>Mvp{CAFkLAWAPJ7x!Gsi`BOhPA~_fL_i_l( zIfcFwo5I}aq%4}f!v)A8q>AXIoUp&ONlrJ=jGPgMOHOHor=}ThaweGjyW~VN=6M-w zKFOESZGe|SfMmRggr_qyKDB60?j(bdV~9@534gFQ$=DGzBco-Oj5ZOTIxttp?oGiOkUM= z$V>E`loNhqZ7RlmP!&V#g*}RWwkpOG5uO@gxD}&|xmFCl4}3&0>I9^-sg1Z_2%=5~Rs4;I<}p{N6B_HZW+`sggy8e|~d>Yk4~2XkXJ%m_G-BVUEw0zpzvIMLc9Y67T4 zX-;2bxI|qS;i-EJx3Rj_+}yD;Z90ArE2}+^2UN?(l?^$MyK_1BIA(c$b-EtIU%C6Q zR!A?O=k*bA!#-SBzJXUXVbW)xnTLD5ASN-;_b}`}lM6GLCNYpmXX0LkxhmXb-7vJv zsRAJj=q4#Ae9+odg(;w_f@bVvUHel+6LJTfNjYJu zwMqHKpc&;ghD-U45uUoia8rJTxxYvG$aLjs9@VZLUDL$CU+?9w>_zhYr5oih8|38^ zAo-gSwH}jvAjuzd6FM=;2a^16aX%BRhjdpPC#U)i$R}h0oJl$1dTVp@A2cJsAWQ!2 z2u~fDD}VRjmfyITcNevyJ@nt21uILv!f2&3aj+Lkql8xeou{=iC*e(t<`CW*351Lw zIw>do%-SU3R8UFK4sNsI8o{$8Jhh9})<&?Uxi*4%vvp`$TH|$IO<8qSP1Z5yIzL?N zPp8=Y83%i?F+;ox0;FOc3f5p6E}(1A=RGQOxY~wkxPUZVAL6dYoYo(VGe~r9Kr12r z;7rO1TV)N`5ulmj+Rt!l4I@0&)o|0=$z0Q#dkU7Nd=w8KoVO+EGraV6J@chsQ0Ao* zAnE7MvNF?6IT`36ZK$6~X9+$5$C;eFC1b-6ggq#UyQchT8Z5rl-K{L_^ z87}F`2v1Ej+@$NpUHbdKrPrQUSyefxqH6H@ImfIzFT3%UWE{z98cexf-*^ zwWchc^%T>!UQu5idK+%113d4n!~AjR?e6P5=aC2H0~pq6FJT}`QYP- zBxH9ulXAj3Ym>ye<0chIJMMp6S>6PT#>oYbLv>@wAS*KfvVA2+wC=8 z^ORz*Ia+yi8}2m|Ak8P;!n4JgGy_TV65K_C&_oK60G@i!a4W;><~CV|+#5%###ml`kadae zYF~zg)iUkpG`p`3<-QCAs0@eygGWv=l>tcG@Iu^rL6iYVWjN?I9?-^|=536V6AKMJ zA-lktloJ+On>2rA+BEb>87|GuiOvkYUcRV5)7-<{CN*bG^Qvl|1gp-um421i)9`~= z8Xa}E8{q{Lu#oFVw<2RUCc!{&(*NGK^PLCGsas|QEG4F(j*#!9PEPoawMpHJrb1iq zmxfE-#}S^|`hPwdQC23P5EB{s{FNDxXEzke|dzb9x~hpX`#6`NOsL%`Daqk+R85Xxg~7393@{? z;gcsoLv+*vb|aXE$e^jXlQH+LlNLsR9vw0WN$MZr?uJXtiBL+5CfuQhOH1DfPjxli zYw^$MDfJ=#>B7Oo)0KQ}e{j|4%B(%+W&SdBp$U)f5NtKl?phpZO+4?aa`Sn} zTKM|kQS!}HTC8&{r{&vd_4uCxdIqI|B;N^=bOcV5d}9SCsWm^&UTRP*ue!-B{r{kWF$4lXAk(txdIFZ5lK+ ze>PmTULWD9T?&0Nwwbju*ETa-sM@|T_bNMIn`%;Xa&&EN_Fb;2UUhX$^$yiuH33rn z8uFH7+8BZKLoL1TWc`LY)ngk~H_SsdAsZ-LQciefmg<*5GaKaGEY+Vzcltq;#XC5j9>C0XuRmeVW`K!6XT2p$@Niad^dgbHoMe z0mBm9MVM20tZ}lexC506fio#5)UPD#Pb&8ZmC7;TgAA9-<0CvZ&2UpW!Q5Pxx$9+r zy_qYL{d$kD930KB30`q4o0rj^B00({CO{XPkGY!z7$(K`nFnz1z?{6+M!=d-+YBLp zfgmX-JjB{0uK+YNh$k8@dAmn=s;}WDugKh7dA6s>JTg@^vaGgd{8{O-k+kt%THzJG zxI6p*F+abm_0kBCw6^!K0>&f_Xa>(m48biG#9#uIFpcVQ=Lq6Nz?k2~T`h>~=s;8F zClb5e%SsZ{O6P;P7zem2tAGa1m*^&oylh#4R0E^K<=uvBVE!55sROU{ zHMD`*-CRDl)r`w7YR*1^8?j+l4qaMxYZSo z@dHJG2CDfY-t#D_3>1(C>Jp%Fm<9@H^&Y%!2KReG43sfXxSwf>X`q1KCu%+J7lIfl zi#qfHzIcGSvh}iLSYfPI>w?YKp$igvXbbe zoUog5Z88F;&s;FlR+g)tCYPBm#CQ$o;uNR z6Lplixns4ZRf>O~frja5s^O+tr(W`w?HxP)F5;i(OVo6z;^yn$%(zMVQn6gK@Isx)be$jE6HRCv0`N?@!v#0?laO&v0oU z5#gz>hMV?I=KhxUR7HB!@cf(iHC}F!O_gXGS6=Al5}*a&(};KklU#jf4^}phusXt= zwqhgTxTtANNM8t&a>DbiP1+6zl{Rg!lMI)(RD`E)Fx<4&nVYN4u0b^3k3FSgY8s4M> z|C$SH;y}=XObJfvAK`r_-1Cj{28_uMh zaI&>Y)-+HRU%QJs!zF8Ogr^=d+=@Tn+}z^l?k>tl4Xa64XML&Rd@r@o1}@rM{yN!9 zwSa>j<=QIdL>y$%>?}2d2)Tghq@1v$wMj$|P>Ik1y1U^LF(|@QWrmxG{^ptpJBabE zd%XlOT33wlY1hB)=T4M%r;B{r7H}&m&(5Sh-=ayooU{pPOLS6BxY*j1b^w}5`+38a z_Mam>^@-t@_G)uuY3pmzQQGA`?ame*rTvYiZ2@~f#tI#C)lOM7Q$}eM@`2Kp6Bb*W z(tadLFDy4)X|Ig%)HK5_?Q!Pjr#)^6-|f!Id$`YgjSWte_nlLGxh>!(a<0qd{i#K> z2UXsL%py7|C){Lh%DWmgQ|@iE^1dv>QwQeez1tS@9?Xl?qSq=H4D)GEiKSh7u}|9q zc72?0I$^Hdmo}!|N@)|)i|C}Ba8_2@Z9p?=-)XqYeR71SmKtv5e#G4Tau2FVSDqiu zlA$(B-pildtuOIuTflXsd|4*#ltr`eKcBP-*_!C2oUqv1RPFbp^ult(mG;I6PfasC zGfT|PPdi<~W%4NPGMgmt=BNF#rELK_Ji#d==BoXvMKcYQHX)BGZ8_m4Yg5`cfM%+_ zZC2X%M0o1J+_ZPwV%j;6Ne{6}5=(p9UwySL;0jWnl1cm0#|H1qGS+SmcTrdq?ZUnHcNz@aJ98b#J{6t!*zyB#OD#7+B#RnW(#W+ z;T|GsT%Eb+{c;tg`A(31C>nx~EqfZ3{V!zxJ*E`{kcMpnw_d6-Cuo=v1c_1!BIE@K zl5)ZetxbY%1J$T#)p@ny67*Pvr*1dgMy1|d6V!MuJ6BiJgHzg!pG(Xim?tmw14E;v zZA8Ntn4|$oTFp~Du!%WoEsTK6^pZx%d*Lbfx6{2a0(55o6$(DaBn;@;8+k$L z(+m)%RUXioiTn%~?z@7xqGQa1p5ZmRn6Btp)N0(<1#v~kqIQ0kieRoty(}3Hqi9md z3nY`26OOkwH~ye15*>$E8t%qF!c$8Pw<0}eZf=p9yrPr2URm3Pmwp_X|I&|hngu`a z%IWS0`4i&d%Y5Ak(3P-$i0YXU_NhfP*Y#C)LT)2EDJT5F+9YfesDx?B*m8~ULBei` z@YI2Zo3P!@HDR`7>|HgKcdOQv)eau6Z+ND&-j8{iwE@f8-$5l)E{ z@~#q>6TWM0O8lWH!SE}?mH0~$p4vV)@q)a>8!PS-j|yJw>scDh`_8L;!7bqA<-7?7 za|IvKn0K}ECgggelXAjIS$U5H&CHZ*v+|x6;i-EJw}RhhZmi&A2al@M%Wwy0znZn5 z-`Gog`;9&Ai_czu_SHUn0=DH?^#qweh-qUtsMGV@2g9_n18HM>824_>X&i2x;LoCw zka2J(<%CnLO=EK=s5I(a{yM`oHsukXddP6oxX@farnjav`Gh2LV`}?)wMAcenb91p zxW=m`Kx&U#!EFRgY7M#<_cqK)D>ecOK-LQB4M9>)SYd6Fb||Q%X&o}za7pVD;iS#jt@gfsv`yq|?-_x%3A_>qH&4XVE5`~yV0_jTieB3#L z7*Zg8(PY0DdAJ|b{@a-6;a-oqQna*g=!06(S-DdASoyO(c0YjgJ#Bm`)_@xZu}!Wb)exUy3pKQ z(M^s&tL-i5JjQJozokKxU+_skYgZ7$_f9THN-oDW`_74 z!=zs~X$0st&17`cVs5;e zTQs|>3UmKwUPirLe>k&o za;`EN1ZaddBVm0;#(awgIv*K?EG0TACw#=(Bx4?^hC?z|7%mwPM|kQJ!%fE9=H|-a zWwS>g6-}#N{`tCl-Mi zoN&L%Q8|}`s+>9?wKrVlTod7`(S}<&E6r`PoVibP$EwSC#-(_8K%!m2@g=pJ}Ocbj(R#Wdz(%nT&Ko)-g0mIpOElrkV5%sHAII^0VQR z{!WCacG={UG3l+$&6U2TO+HI(mdw+<%tbHe%Uo$P32?h+^i0fXdf1{_tCXUNkSB;v z$_bZSn>5V=l_qWYZyPR6_eFSWgW;xWow=r|NiiH@@*h#`;g2wNR*`75?w{>PivY4IKr^HDxZzTEd4#9lFx-@_ zH1~Im76NmhJMHe}wKIxHUfqpe9s!cK86E2}$padGDqnG1jWn6Q&(_fhh|**vWGn

FsL9{%cd6U;ifR3Wy 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%0DgfBa9CZ{1)(E5W#b#)2uX} ztXr39SxfOO#|k`sThPUX=WKYMfa6i} zoCeRlY;=+FR29H;0FKY$sU%L-F+id@*v11$^@Z^K1)e|QS#&czA~uZuTM+w#GydLt zKuMnJKOnqjBuW9ElGmmv{jNanyb>sgG$I$WiZf4C0UZb^nWH^~b+f_RV--KI?M1Us zmbLy$u%3l{QhgO1w}Jm5JR7cq=MbRpfwKBb@SLA(SzUOFZm$p4!x{PcdtnPI!8e2YFdi z!Ia3V1e;tj3-K4NKK&rXLI+q0Nni4WX4Lpyq?rPz?SFb#m@1{+DB#cN@V}@q-G{gc z3}5$Ay2v|VD3mlB|Gl;gF`kwf%#2^u;peI_&3GFa|I0_YA(4_87fe$IC&m|P;%$(w z^gUIFej$PFE|_e-k1kPH;@5n~{TN*6oMaoqMoXWTy7eMC)jnNM|*%2<5;c4}6KnCUB(z7k}QzQH^;`1EE`nlT^zvOIvuj ziX&PEN=ns;pQIY`9WYxQPwCkjmzsHK<-BRvQN~IC(6Tnt;Ab7uoA+k4wv= zHFW!Ja9zzU$hfrmG>f{DMp^a*)p96$qoUqqjWq;5`eZ-r@VbIc6`Nx6tW!u#R&(?7 ztaA>@Sj|0;XPuSQoUP_I=vk+g1}t@^O?%eqrkc6Fvj?ZO4D@-2TbPwKFaoN|=>4E+ zFtz!s4tJ{?uw}TVm)CpVbMlBSejM)@b=mrxw_rN6x2Ka%3^rqGSncY!A9O|#JNsqm zt_1v42~f#W0|I~F>Rw0nt+c7pq2r%@VCjRBEcZIxx4Iokaw{dv^uT1Ht_Sxiy*=nU z~tmg)2CIJ_Yf=TgIP_y=N&4iAkK*xKOe2 z;ZKsP)U_@egB4sn9HWcixPUy=Fn<+}L*$_tiKl$i@y4jm#E7R|YGN^c&O*njUKJyo zOrvIA&@HQXCUMok^CR`n45|t0sJ@~uX}z;BqeQY@gTqT)t2sFvoEe-)TDd3~NnTNS zE5y}PDPm2(dysMIXCIjQF#6M~cChTXLPaF~aYXv(c+@P-TcNW_i}tY?L*iK`+PoE7 zN!pA!0qq$cmD%17okEHn1mKH!+E}}{LuV5(w7;P3ITHGIXep&;Xn!G13A`KPnk{Rb zW&IZ<%hh`IyGr4uJcPbFm%dDg z3*7Gz@(Vm_1|`#(Mx}5Y60sZ4a$X|GDPv~>Esy^RpvMiknYQ>-*fa{GfzU=gjk_oc zBUJVJRRF$(r{ovVoPI4Z=P6JDRTDb$R>>&Dihk4l0vF80r@x}JMmPX0MGMq{Ec(FEu z1^8SI--Xax2q~}AfhMZG;LuFj?;Xv~HmtFGNq-28suu#S9`UHfQ(X_w1#oP` zQ~bUr=AO@ZErWWFcPIs%{x@9GV3rj-O^52Vv5MQZQFy-N9?gixtHp2nJ>S%c#33*F zJmvq<9x?>DraODGwdShTrKwi`u`By|m8)&aCM&sP@M4I^rK&CZONiSdYcmz&iUBpz zV%ZOcGB;|z-x13kpj@(wGx|fJQz%d019RMhXUn6a1GM@HuvoKGHBk44$|JT0i0ZN* zD51L~Gj5i>Pis!=K<BFEo`Z3)R$pCd5r$eFxU!J6h;83U6llY-mI?1l6P4&op>PcefcB*!E5)|3!$;kg2! zi}9>Dq@_h!re*yaMpG5v%n;8fzYDCl@f07{n6&n6t++plF8xuVo2%$1OvTbKp5jLn z=$=WUD>HOwg~n2?Sq_>~qWgOSorMaSexm12Lsz2cwtyx^bWx4TdX{X`TxhlWTF`LT zJ|cy#_p#}1L6)soFCuxqfHvg>fI92HbhE!FQZ1Ul_k7+r+5(1p!xKFd< z&u9;A4=BFb7gF++_RvbuN@2ApqU5nS>J3$4nnELTru&zVU-=j`N%WŶLNsO&_ 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

m7f9(g^vlBle8k7y$UFpp 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

ps}g9t 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≈aTda4!t!2>EcV9I6!}hUhpsj2oe>jEB&coJ(j` zI5ovbS9SbUCW}^MSE8mKowkybyM$9cvrh67UKy#ys+cPwU?qZb3ysHn_B>bFtlUPo zvfB`jBdJvmOUtQ3{YY9HCoq~qIWVhv5{70O!fHXP&;dmp=EMoxU91Yr`WSt3tGb&B z*d@`;>^I-2oKJ8R%oDsn(28a_cmul2;7_?TRKexw)q)Q)f_pY37ktP~t#!`l=neCN zzX-e;_w$(D&*S1JcnSL0;4c~Ra&cPvwyz_;B+FFv?BF{}*)4nDZrKN7S@2Ox z?GMGS+@aVY9@PurIXQq>+{sqL!O2M-II7`#Lc~}LjgpiZP^|o5DT#7`*7Ks`i31yOH!CJ%p zdoq&-;q!wHMxbtmWoDDZ%w~s~Ee{2i)viW{GZqz#* z>rlaVIng!6BCS!uRYD5+w+vwP51G}XYL*Zn(IJF+$|Tc+YYg{=NMPTYh*VziI3w_3 zJRa*LM4jASf~83UuQ&4AF>LnuySDct3A-iHe3FDcg88$!?TZO!W^v=UL9i@8P7aR7 zRB)r=dz6~LtYIoon+%@3W{YKz4wER-=2OY+p;4p5;GHyK% zHL2jR!?+QLaib37wpzwXLEWZp(*;ez)XQx;c1jWS75 z@IJ%+3TfSlMm8__QzP&|TUeb~|}W%}n<(r~lzh?O*)6~C~OhRgJ$I%%v- ze9Td%ACH%5vM2aU!+i+M@r`h{J!=G(;C*C?^79Vke&sOk1xL2MXxYZ??n{S zOTF;lb<2m7&lIcA4flCu&#TD&dBJ}ffm7r5eC4p`KMs4ow(P-y?_oSF8T_wh4IiQm zeq(q^Q6Os)l`1@Yl7liEQUSWCy$1{)7+?*Df(;s&seEz>Y1j9dy2mYUDi}V zLjE3brU^1jGHAMB^JM%JlHlg!P%?hOgI(?!FwFNF%F?{xTvuQ(6x#w9_c0-U+8|gc*bHTo zHNhg6`)M`}cFqfyxB`EOn^xv9?MR1d<(6q1^~w;EaH%VICnceTdX&iL`}vVG6q_0!- zF;$fK4>+w}e&A5Sbdyn{@NvDZv%y+440!>|K@MQBcSCHnUGw4=F@N(A# znvKoG6iEfIa80Dy*vwcDZe0hjbWNsN3u6(QZd~P>O4F2?GWodLl~2=$nOg?-8DWajZbv8{N(R|WUE@@bGj-bZkC1cu+>nnWG`%x=+tqiZVl z)HAy+6*sx2Q|~yl+fs3}YdUpUGrJQ#$StmesrQ-LZ8hSzx~5a(JhRL4ben53wZ$_n zf!kdZsC>>mVU&{Vd#+q6i!(7?Mi20PS1y&XnZrAVw_)aahb!-=gpOF<)19u#)TYkd zqAR)z{=jt*HD5D(;*=k{rckRfvu9{vPzCRD17A>>$Vlu99A)!?8Z|?kmLpa@|R_mMed2r$RC5bL zl)iLT5UC8!`ei^fYTRz^ZOE!sRbw@-D|XVIb>4?aP}?HWRrQh8^!laV^lQ$C3$Sk&>>lU@IQ%%7t8V9QAU!5SQ?~v|Eu6@ToS8_ z&bxWWAYzGK-wQ|tQ5(VeS=whGFWV=Q!1}rx?~R!2+`B1HDDh_Jn;SDfgCloC?+|)$ zvp0`!rl=sjgKHiiq~{>;A+0>KFLM&U&XF6xgw-FUJ8W8RfaTKE?2vgv=Gi2twGC@+ z!=!D55l=2|%Z=vJvps=a+^ZTz{X|*JT@U9Ze#|Gg3(hIz%+1A(uYO#Z*?JINZpsT@ zO?tLXrW;fFYIeZfk@=i0w38$>3gBc8z(WC?%mHLl04H+*<0*iXIRLMk6Eb7zKHTA& z`xv5QZuUNl#F%GY@=@lXmr`e55AJ>{bGw%kVJ_dlI>k#7RXLwx_*-DE57a_OuD*n# z%$|cNb@8wXy;WlF97ks2E;cPbnY*Tw>^u}^3OA1wn7iHNb~oaWRl3hL=xUiQ*Qwmd z!}eD3IsjJ+m@&53c=>SI%LiRw#dSx%({`czI0Ssi7x&U zx_~SEi%??n=?~Zjs1vDZ@FiUKPFV*IeZ_@6(mh=9Ncjj(nZ=>|XTl*DIFuggo~XsY z)WOeZl%MfR_xuBmTDoV%l6=T1$*7jR07W|8^Bqg_W2Yn+EvAtl2!>hwDNCHL=O#?d zcZ%mfLn*;#9TtM?D`?<9(DS9G;i54#FpccXznr-2O3)akyV1g6)UNskcue=)8lb8S6>al#fr+S$Vjyg*Tj;T4xQtqK}u9$=$hr z16;E^#vheQuQ<^=O=^4vkA4{G+@{8d^&pAfaM}cv69zj7^rRDiFlBrtO9YrSyt#K! zjjv)#UM{~bRn7YH2_bzE=E;Lm&=+BSvzV*($yLO8OcH&y>}NiQuwe^cq^jdLp$b@p z3H3}U!C;R*2{3*+hgrd|NsV8@zU$CO;1e1&YZ%|aW55RVSK}Lby`csD)%Zq}y1td@ zuf{iKld~25)%eCda<)mEU5Uq?>iONPCikj!C?z)_*$CpLqzIXP*pOWDl@G8CE2Ag0 z2Qr!NN6_QYPYd7{x4gh$T;Qi2mrOVQ@b561u;7@5#lKMVHCxT6ak9Rh-$=KVF@V8= zy_`Q!Td*EQlFF@GAToVCoL)_rl0_)EHf>r5Nxh44GgmuNheD$@;=O{Xgs&!6W$YqZ zx;AQs+Sj#1H0575Z7(so1{_Yo;qHEvb`~_hEJQ5+Gz2*EyaYczP{SWL5-INoE*AR( zsiGPs9=ZpHH;6#m^{(kuTRq(nAcqLx(-fA#eIjs(Q=qPExSlTR595w9_7Q4C+qkL5 z4C*G2Az|*GxW8c|yVh&V)4nmLasxm@+^7^#^y2F16ENZa9_qZc*59(ypOZYdY4NU^ z`)BE-S#hm{CAo-@kQA<3CY1~svm^?c#f z6E{~pI!c}{ayN64o3{a0a*^Xd^tzlx2{lfapZFUsI+a#QDy=1-REF}&g)WT7i&kaT zUc-HZo4WA4i}qP8KCg=Vq$zE(pDJo+6Mjtb^P0m?K6&In(oWS3#bP>09aOF{?O&Fc zgp9r6$oP#hZOTTdq4xpB2wf(enr?P+O<75z99?#C)kyc81v@y-VR{6>q5fs#Fw(q> z{IN8*sPZC>rOhtFRiLS=nNwj-^>gK9& z4*B8H4nK5NfY!vhihzXE(N&Wt@mk7*+E{JbfnuavSZ|H^$nAv>u3+Rs+R$5xmS^c=wBLIA`k;=-P2zb4dFDQbtE1$l zy#sxN+m9g<<4%;tC^PLsKVYG&;zAtyme`i=L7gdSVHYRc<0QgO09R*jOX9*?26a+Y zi*28gFv}$gZ%A}Y`&=Pf5Xw0oqP#N1+VEkdfg!EzMv*9vOBCvUxoUI>!xFr{)Ds(! z!KqG~3ys;70jz0cXtclE>YQ$o&S@8^N_4yNQbK)EJ%+n9@bIp8&!J?!gJctRWdmxp zw(B`#+Ec`&)R2J$zRp8KDdGFRnD!T9bH!_A;q_W#N)+RY+yf$$j~#GIxZt_9*=CZJc%W7QF;eUOXj9cyUmia_47OwlKNpU zHrLIfBE{jNunfmWbkgKYVflUSUfa@rcoRFjP#AykO-A$o1JKz zBm*1`pLanzhyDcl;Ht*~OY(@ksP-<9GUVB!V`S^W6CElSF6m2SBN6&)j`&WmmS`f0*V3&f2_I~<#qL>&9oD~fR&bSFNL5H?Vb%jz5~%S~Huv514OaR+ zCI2X6Z(BbWV(2jzh|Hl@FsNCJ4oB*!xI4;2%i9ZfqKUZ3Rr9G^U?h?WTb5(gC+arWv3E#)>%J zpo~@FtH1+W;>Au^sGG90DBI~n$@Du*{y_p##1>)E!C~i3*=1CYZh>-o^L!DO7?Su$ z6aPK%ehXOEO(RoVcHNwP1eI;0gETt|$1U0O$>+gnCk_HEgXScD1MyvZLd&{nh-_1O zt0;BtnODIXetR~*+H@+^Yyli~5Q^y?I(~);$VP0kESJ=fNh57VhhGrXv4}}5=*!&nOT^;6cr0Ss3n&)8Or`!!vG}o; zrC6LPhM`$jRgY`>wL+6vyse28izkF}z*u~4lTC_6HRpTM+lV>}?YgtMM56FR`3H65 z^$}zQ?a&zQ*>h>3^A$wlc|ZmCK&!L)J+Qgs@zHZY{j_s38ug&c(pa2bA5R zeZ^C!gHxwklc{9vhnjCoovXC0Ep_UtMCgS%Dc)E% z8F?(qo=4^R71;J9pyVMfONR79D%Fr@MG0hI(Xuq4KTTw%oWG|T6wGy+v1e0;s{7LB z1Df4LRAU)Wt6BI$G0phteMiHcozZfU1YAs`2mFk^72B;?xTS5`Wa5oQ!18V^SQ+Wr z{AA)6Ap8Ze;{J=oBQlVGE4M+CH~oys*;8mwt1S!p255L(i&D%~<2vNxvm}giql}r^ zK`KlqLT)SID6(SW#iG)!2B|E}&dw}f5Awa>-wmiCYSREHrCu#b>H8pbA{AVt_`A}D zbZR(Qa~o%IBuhuM9kgKksYqwKKSggqKRxzqc+F;PX`R+Ulb?eTAP@5H6AwT-i~`jV z)iRmT+B~8W$_{F3Rg0}G=@njGlztt^FiwHaN^VAe9hgJuu#%gPw*%aKNM1?_Y>{_P zwclR^GSr1)1`TKFXYBoQhn0c92=D+H*F4mpvXIg^#Es)9cz#tGj|KRR%)b!}5Ft-z zXjO(Pp!9w%ka;?&<&#dtXREWZCJ(3~PVF2}E(LZ0pmrgU_u+V(kZK@pIYnb2` zYMrK7r|^jjRl6FDiy?6?py6FDL5tlDzt;#YZmWjN?3gN9s8P!0yP)S=YEfyumZcWq zNs*-FVI^WdBA}*9|dj6qbsFhcCjavhLV>9AW$vJgvU?ElbX#W73 zz}o}7$q~hSs)O|QB?#Fxd5U7XCy&<}-wWjY7nJsB&!{!pzbC*iiR+=7gqe6SSZDaj z0iN}Q&KC>!$1}b0WGmB84shFJho6V)}*$h)2+vpNmC|_xmG)WU82`@~Dwi@fTmAW!{a4mEey+Y7I3Ku5BULDQI^e*22^Q{8K!ji)?sKlYg=v z5%^dmR00c;;@?sN%l>PVO)6E6@t?eR-P*NHXR%MRcsH5^`b|O}($CmC1I1Lj7hm8I zDs7`k)G$B>ApXESYB|1_uhf}Wmip?+csU+WOvj=?ETC+ejRr3rP)tWV zjI6+X+J@gT4Qc^POHc+tTq4;%ZyBC2H3Fi|wWna|L@E^lQRLcFvh*wx&kjr{ard4_ z;GYC?0&{6W&AsO-we%<8fWT94_nsF~1Vti3UYrTQtCT^3OZb41ci9R!Dvzdjr&nv-8-RWbZe(F@RzVa~OGB6Z}~xEuNxkpANpz6Q!=d)_>R09d^oO#%JL zpNiz<8R}0cAM#s=JTis@<|Dh%n!X9vb?|W&p!``Nufg#WArAw|!X)1dDE|?VdN?A4 z+zjM&ICc?o6_B67@c<#`0r?V+zZ0?($ihQWG6Cf$067+p4nlf>TnopQgscYgDjY8o zvI0oXVK|KgC_f5F0~~dP6aqO1j?(}&6ouLkLHRYXmjJbY1F~#B>IA_jI<7}gHdF;- zDHR))%_yU~h=FNG*C~=1aaP)%H&4kBZlWfp@7aIKN48t>lrrgH6~fA=d?Wc>R_mG;HNuMD_8g)9Fn6fhMz1*7Th+6K4U zM_IBXFyp_JC3k{#38HZxpzb*>V+|#__l{8A8%EaC4+D4d-5&^SzW}~p2kRg3`3|7` zX&{Fjjstyw@`r$&a0FU;K>1xj9w<=idO-P&Kt3tNnhl`*N+3f;c!e5JelCzN;P{x3 zlYwkss8m0od;rL2aQuOgZXoAj0DnB7d=-$d7oishlvBqyZ3)g;0cyz5+V?@Z1=xjv z+P?yMpafP%Ou*$2^YXQpd1hN~BlL`4QkjLS8 zgpf<^$eBP?1bGY2k)-=NZ6`Vm?V70*$jHq|FDLmD$S(%4rnPV!LkNWtM=12uK|Pf? zWY-VixC2nO&z26U`4rC!DCH43I<5c0N9`yI$%pX&8ld)6Am6P);RV!QNX4fXvE+o2h=_ST+l&@EHJiIi3zE2XL2z zPoS%#2%#=#Cmgg>$z9G*;rIz)Ep<6-sjFE_UCdhQTGmpRvX;7%wbX@h*YR)2eomgL z>u6kqSO99s6z)3q0=tr^)OCCe$A^H@N3_kB#IT5)Znv6vr zh}Z4{vK69(fZB_I{05F+6LLL}BaT6d0o2|JqzjHtfI5a&5?UrhEo#b|p8>&WYv-D$ z*zw}dT3S4~0)l(U=et1Y9P4L2A;L# zROFf4(9Xg?{oGjng$=J}WoMm(@cs+d=LqXhfb!3PjACdv0H`6cChzSq<3sJ$do$`0 z-0{MK;pR@17Nby=9&NMbZz6NRwZhA7vTS!eO2~)FNVEzBy&2Zk9t4EWjnetkvdciB z-;G0=qQM{=rFDH?*LpPBR5bscm2>s^D2>#*<{pRpVE}Gj8{w!Yga-6y z!*Mzx)Vk8)+Mg3b1Nv{^phLDipkLaFlmPI6ej6OagivdH9~?g-gj(Id!|@3r)cO{# zLkj`m0sUq;HWEUu@%P}kg%BFhzYoXn2%%PadKYGtfEtPdx5|USHUYR*ei@GE0HrUV zs`y8(ayDX_D1z|;eG^7D^oz5ot>wW!6#$u7rxXA^oIg;LjKoI4_1!_dmR4^ql&uDouG4jfMxsmM z1L<(UrsQ**EXyUDk}@lNs_pT#Oy6@e`X;1q$-j4SD)Yqhs^nl)Ny*8=rd5j{3Y)g5 zt9B-Qy_M|CIZQ6?(=7@`B;&%dA|kr*x9k*~Y*Ivc-zW({+A5#oJwH6c+fK745M;=@W_ zbojkSc(LIRf<*c2DaIeoOo~iY_B=k)JYd-C_{hv9bt`$3@J}XhK}NCl{;|mio}*ZJ z|JcmA%LVW2$;lUVqFv++5fvZp!J1)Oz-W(dE>Ol-rk}0bTu5$Sb%<^*BKHKbdKjPO z>4J~{Xu+^Dj4bg}sSKBPR$;l{a>93-xYyAjINFVOgp65Pq8p1Fv$7_W>h>rW@#bW4 zFu27=gO}*`9R*lhDahir6<~#o9ZY!!tcWpQbBb<U3 zgWxx2@rA7@66&U`iSz|=9haLOak)85;xf9Gg1b3O;xf9GLc2NZ2#%+=<(908^fjvX zmGt3c)io5u7me}hvL4(>g(<%@`IsIA_-ANu#@>JJ!MdFk zuqVt+I>&q`TAEt{i#99cNhxKj8=IscE#>`!r%e8GkI}J=YR}VV4q0fdk(IuuP0q(v z@X-K}mA+@pAl0LnL3oOYT%VpX4<_rIdax%5SVZ;eSyA>3@J9f}T)&g^{pq1UtMR9N zIsTjmKf3|tM*+DVj#~k13rS`U$>ihD^B_G7s3C2&=YjG$uulQCSCh;}G+Th$TY;Pa z#{ePs0=W{7%L#cD$b)b^K*&o#K85420Q!X`^9FF-TryA@-uY(Z%*QVd*M(n>mS# zrWD)T%#g;Y*xqK&wHMpl#XhSF-EMMmm6Iv5>tMCrdO`XEllL6<>EZA$Nf#_gKZg;n zEJ$Bq@d=$xv{>;ETJN}xfjzN zfUF>2Y|eZclGu2V1>}oOUc1H#j};GSd#bfPH$iSWRf0>+AjS7XD0vr9!ClE^QV>JO zV|5Hr!ClJb=47f0SkG0}MC7V)g-GrN;aUI|la+C$sH9_*kB}he$5kSD_-34{1XOTe zaw$V?AU0thciC)@{D3HUTx zhV&XZp2CzbM3Yq-Ce7msET*l+Sh}2kzJx^`Id{$;oiyCxFVD~z4(^^djgIe9OKRJS zpdso(PMtZPKvGSB;(|2P z@h|*yY5VDE81`L2@z2rCff%OyAJ-2kbqZivSN}#_ATs{ppG8*+Da#{ni2cLA^iqf+ z%a?7ycj$<4>|r4y6s)RChrmDmdNXSG&Q<9!)A*M^i`sYho=bMFr$dIF-L&aBgdw}1 zzjf%wqJnHIeC6lv{_lerRs$+p5n1CuLOkLGEad_k0~0WSzDB9_RJe-GEJ^@3)()g# zEi!W{9rr-;Lcn?|E{iRpM|Mh4St3HuL*QvZ1sC`dA!Z_l(*YGcN+~t-sK7@+2osS< zD`g_N3xt!1$R+JaAwCGg{{WV6>FviBN4c3rJ?qz?{9RLFP`NpQsIOrW;srnypE_n) z>4kx@%)ul>daxhARP^ArD76-_9#q7Bspv6c%i)KmSi?1txQeB^D2!LTHls4IEz+LX*VV+t7#t zc#^mRj(S392`(;1OL2ps_7jIDiPyq$IUzJj{1}dp2%$-0_IAun0X#{J`=Lo<8K}j? zp-JL}aGXmBO%k7k<1s)DMS&-YZcIYH28AbyEkGIorO&}+`q3nDF=82?y~wT)60Bnx z?4VzqMKe515^2Q(t04P!Qp;zQP^%|Pbp=KNHF>;FLX94H)a3Dc9QJ##Ys;&2i}BBX zp^mlNQ+gNzrypHhdx}l#;yoc%wperM&f5}0Q?V?LTYx)JHRQK14|#XCnKS-6B*_I} zU4ZzW11R4G zEs{uj+VYMk{ccWrY9lG}kvQkO;3%NBkupGL;*ZGw8D~M-7q%79ceHZsg;7$SYtE>> z4pE>P_v}-!?hPnYI;HJ1?(Qd_$B0fB3M1~Kp&R{-nP%p>r08>qt%Z_f0OfxGawZ(7 z15|0Q4w^Rp?}jYmC;jM3H{-}cX;4tNfh1!e%G1Ag1TjELPJ zbONjn_#OXDM+f|l|H#j#*gN2N{6||I@SW6=|5o~2*PeA1H=sfozw-yk#(mJa7qEVV z)&K67{@1mqWBFj5_^v$5 z3h`19E+Hb1IBxUvh~s_`enLbZaojGFzX9QGBJzmidqQ-dfrJD^WyJA)KaV(Q+<;NU z_x(K5I0XE;EW;y>@B4Y2K%)kh;qgHi_?-Yf;n;4$=1rC=WB0d+$3$ z-$$T)sHrT=dJjGmr)>d8(U#a}7}n9xz=zNA_i29)_r*2fR|B{&-V8@CA=DRN0>?#! zP+$BLIPN8c7Hr>v<1Ip{FOG{*Uu>L($qaF*FFp*&YykJgC&O_fA=DS&2**A`Xxl9A zhx+1YLH#9hs4t#&HcqSnxG(O2BMPV?^SLj+9N0ww?u*}r<2QiP|LS;Bhw$h=dxyXa zw&2#fN)ZKko zjEQ%52!^^lG_<9cYB9Qq|FE{1G8Ua8j41g)2T%RcZ-kxcp2z8lKc&~{qCxD;o4&mp ze9$JlXiQm4ttz9*4*kaH29qY9y3<=P?e>e>-)!-YcAGZ!q|;mPpF!>RZAh`30Mc%+ z_m@(q_W=m|iOB7Cw|^G3+XrJ>JQX1AcDH{i5sw4mXuvA&!D2~0*aqpru7ki;fQC=C zJv4r>ci4C;t&big7`FPI60yJFcrpAYL;f}Pete5%e~F*ZXVPKDmjT6VGEg2${fAL+ zawC@NF98(ul5?qlF|CN~xDZ=AfC{=@WgID{RbPY#4nPZV<yeh5G-1Zn&CNviV!qQ_joi;2wg^o?n($h7W&W3N(;-uy#O{Wrc zlhBg}Xrt-c{?Z3+vM-D&`>Yk!vX^YKFg)d6o~(q$^HQ?hq(ljyl8p1rhnEydIH z&!ytI0m-%sAlaMcKZFY1oIOhA0VI2~{CpVlYY;vLNcLt+_C9qfrWgRq-W z2$1Z}72*yMhKb18n_Z3a1>|LeBNzLCiowD~dp(kZ; zM?8DIx>Aws566^EWbeT?*`)04NgV06ve&A;O0w6ObUXHm?xK3BBsVMh5Vi7GQYBsa zHL~4sNs}>FYoH6uUwyoSwqKXDKk9ri_7;B6DlC8X@w(~nkqK`B z)qqtT+^0TX)4~{=yVI6F(Pk*i)ncjt%9r^Z?C0)u{FP{X0odM@ zAILvw<(s~5rOZn{ZY4Lt-Y7t-(aSz=C7Z57i~v%NUiNV-IsIxZbO5Nvyz1j+y|;nB z0w~SfBq99l4y3b0iB}+2(y5%1<(f;8$bbQ<5iX0D!L>HoqA_I?iL==z`+t!*y42jO zOU(u``Sp0(knz&Q-0R~e=7ei7M+QjR+~?yaW;GTAA^=I7`+VHQ%)^v7A3$mIKaw^d z0DTA0{l%RaWa*4B;;xBSu+RAX^$56p9x`duUbJg~@`Hd}2*>$=HH(0__EgkX;@^8g zxEoN`p*51xh`UbhtnPyRPj|w}f%1@0a_pLVB8^)A>aZ@Q=Si{|WRA3y=Sfp0E#-OAgh{Gg zAgMw-=iS(6zR<_31NMfKl+%Mw@nO{8yxerQ94n@dj+1|ly_4^;a^-JcZXmvg)Y%0n z<~0AicRuYEY~6=e10a>)?_S3 z2IRkhe?)>j_s;T}w99)BiuP@Q#=&f?3g0aiHP^@c@hgxWM*@})jtq6u>Uy3pj}&Df z<^KVCMK}W?PVnWBq76Sp{R2Z53W7e~EdS4a*wF;Y8o)$Rd-YFn-wPnq{d^%l{Xf`X z0LXNIl6cR25Np3b1@R&ZXtGG&1mYe*w0F1@PoNC)b;5(h!*cA=O!4K@>daXW;oJbA z@kK=Jn7a^*6L6xyH-&g34=dFJka_yLb#U?T67Y=ez97%jkNY_)0D$M|afIgSH-h>d z;?O+(w{W~g2+h-jk6@Gq;CXsE9A$*iJiP~wb%fA7J&w?tc^sj6`aX#4B{7<(zXiwZ zgwQ-a_zNr+0eGGs_d{#ut)MmlYRG(^r{4tZIsnhp(;vkO0g%$zI>kSlTlONSsd3~J zt-NNAp;E^iS|ZNj#uHZz=~xxc*d-?E7;Iz3Ru;_hm#66T5AH+oy@>tR0=eh&uZ%RT zyDkIsQx(U^kkbF?;Amv_nHa=DMXnn6Rq8N#3oRHY}|=w+I| z6ZETXidr>&7wCiCi2#nb(eJd;PZv4|T=syCL8${Js{4vb*yLC%ni8%eAz+=#mlOFh zGVBG2MIXi4SwQ)tKrVpeJVNdRat|DL0czg?@)tNhBIF|=b05QQ44`zH4udjo1~kUA z$5>2_FfxvwA*ElOBN@kYqBS%pk^%YAS`0H)6cyua-;C49Kw1gtMnIi_vir4+V?e%2 z6Cb)4Yln6V^x6YLD7~qRP2k4;WsynhT=%0O@UQfh^$FSkjwzeyTrcWQ$Rd6Rm@dWJ zaotNit();4@myiZzs6pQf^@D=dwDGLBgFa|fHdRJcn_r&=f@sL=>teJ{*0H$c`y7@ zshX8|<8d0txfkAc1qkm=H|gxK>W*1-TWU3$UGv*Axc_!FS? z-`Y;<)C^ci8A)dv`7xN%DJbsrqhdcvb4TIp2u-IMPl3=;8cM4)nd()Y79W9lx299~ zJ0kR?9Qr0r0#c>hZL<5ul(prMO*Scqx@0mN&mFo3F5_`!?DFziq>w3LKJ1o%jlCD5 zACN5C z;;Ap;_z^}7@VL%}YdYw5 zY0Y~LP7--1QQGW$4JRl7v_1~%KA}Dh%98-qcnN&{So`Y0nz-=)2Hu~wFHr9k>eAOS zUI3_urvj3f^fG3{8+PRPcI0y#QZ^-9{7~+r6s7IC#GpHRnY8!!e_;ni&6ykc_kXVkZ|-f_WCebk>WhdTSUcq6VhlMU=f{7oaL>cm9}Sr zKS?w?i#W?$N3@JLFuegRqH~M0ye&iv17AusI;S|x+d;Gwfo}&CbAg%VjnM$|RuH}e zpi($;-hPoT6Wo+~2tobQ=+9LGed*SJ7K>2JSZ^H2^A^AXpzr_|UpoaX^E(2vFuued2 z1CXcTcnnawS1YISKoQhZXF->eRvL@+c;F{mBF^D~9@gtSP_}VrDar@DOaHCQ>Pe`k z7imSb7=udi6!by+=b3!~ zK~NA8kwsAyK^B>DlzoO(XLm-~ca(itL}ih<`>NosK}U^7+%ZO@aYJ!SOd@U(H49Or zMvdaGG0N{gRp+kmr@IFx?=RmU-*tU+T{X|CQ|FvI=hR+ZU5)rF2!o~lbu6qA9L|f` zb$6%2){+@Ew2DWC26U7Ho}0+wJKgF!3gs;8kiUc2tatJ9bg(tZ!BS^3t*u?#;BNUF zYJXtY-H+0))`ey-ul){;hzQ26)`e#Or5f>a!HHe13rnQ&UXJ+1h7LBgE*v4acM$(8 zg0ZW0;W)uLyY>$3YOx2qB6gH7#KjYCZT&@oSzB*8$uobwkca&F8>PnBF7k^4bHBi# zzhV0y!H)P}791fX{`|MGl0&c~{+9(sqU7**(Cr}DX8d)5Sz8yri%&Tqm~H5RC);c= zkHC22w=C?s@-dzDjt0$8gi+Thjm~bCvzoV-~Fb(3-ft)NIMMECb_hyuY@ zh}R0n$rNxY5DO4&g?Qaoh^K&fT#%+;-(Fy5-#-BHogmHAtv3qH6maqT7_Sgy+{uHY8&~qKp?*AYK6t(OyhiO!e$v@x!4k#IX<`o)kygIMy%P z#PcoxS1JdWV{T=&y|BQn@`k|I0}*Vsy{O=5skRRR@e4tkYI{+^XldekJ25yR*y?z( zt&X)oR0`5m$4hK=+yKPIf;3J1QrpC{Kf{g~kW#_dTjpw@jz=h})vidI_=V6gs5??b zvo%%xd$Xnr{(Qwtk^Wlo(!_tJ_&qdnPGQ#BCN7`uk-vlN55~vkPt#ZHY!m+_blr?F z0MqAn1%ti^;c|7WYBNfO$aMi$n^6Uai8hm#c>d^uZt`t`NqE6=biok@ z#0!q23ywA*UT_>;FjPQmb%wIxJW4c=`&=F+K_15zbd`4`C68kZdKnOT99z)efXL(6 zf@1{?-aI^xr!N6{J_e zani~+q61xz(7y%R5|GCWa?sZpAQ1+vz? zFH|RKId?3`DX+F(L9b{2FdxL8o^7@rt#ev^>v>rSfyo_hXL1pcKM4|Ga>s(v((!x+ zxYP;>OsdB0Ub&WxN4C@ZA@rI5Ni{l|r9BZV7!YKt}&)<0WY)-DLQtv9>C zELtZ~)$D?SQr~PGDrOgqka&1yJi1{xUc(x>KtA`RA1Cp5*~^SkzfWHUCt1ezBRM!lmnnPcOnifzOg zJRCf5nGCr_k1PJ^Q*oft;?oTerDe|y4>#*ld0o7sXG6SeLcHHAUW(yPi;patgYmYN z`d4Tp)uqaIdZ;S3b7!ttgbTann-VyWo8Qt;{ei9G_58kOgf*wWUe7O;w;93%N{C%+ z+6(zPn@_O*3ToP4Akdb?3$~^miLJ;35Nt`jU~5|1$Gsjv4th@oh}xHcb$2zbyB52t zX=UNaso}__p~$FTXe7ZcnKg~BQQPjbHBBzwlD|=|rj>1@efQa#_AE^KC4#l@K3mhS zhC|Lnur=*|ThqqlduwAQj2fjf+iaBu~SY3XkTSmy}Z*<`ti$ z3_nMUwH3>3>B)>4$y#?0R3Zp%g}VEEe%JRQ*VNt9kn19ZQ6rTmv+nM%*t-tE`*z@A z-Tj&3#d*D8_ihTO_`wjZq1&#;W%Q${M5FOq>g<_I!d>(owkK_^&JKFgx1F=^$Ttr# z-hmOXBNPo%T2bxUJ*YM#MBB7#=xq{IyUEsr&860wNoth8@qw3E4{pjg_qd;qp?(3v z0Q>1&yc3^4M8=0U*}j*JFz7ETqw!!Ie+M^Ik+sjv9 zlsP!)3@7-AjDKZ*PPyiUF46q?8yCM!Yp%4`+yad^A`C#ayfVK;W^S!=d@l!K0P5zI z`6C2%8lsC31}zQgF3$sZQ&UFW6{6j3am00BXG>$-@mBA*oc`awLjBj}A1>Y4htTRx zQ5O2I%P*E`*rr_Hy9Pn@Uza~rQ1kL|Uns&zna>Q+uE_Vg?1d7!C_ldeQcFHT(!u#a zB9#0k9C-ZWP;{|!OX-~mzTJ4B`1TNO!~=u6XqwcL%dMP@T0$+QpWSTJb;lMv zHVq-cf7*i*KMm1Flo)D18W-|E4ua*I4O9O`)K)u8OvN{UrZy}xXW?4qn>l~Ac}tzhy)3d~9~7zIS|ixc@ccIU<^fl=nXOG; zv~b?s=_@_IEi*B@3+?jT$cKb#su$wE1rRQn+^}qs40Li4b(ehem^!-dte(1LHouAF zXXUq&S1J6g*Jxdqow`MqZ5d1tFHpZVuf4PYy~jI)`*?h0 zXE{dxb$Km)d1h|e*X120idHPmh6m2hGk2?0yeccPbMgx1UhInJ(N_F(^UQpy!b}j( z%iBk0R2A#scK`gmHgd~Q#X;B(^e?hx_7?Gs-0^KV&!3O1Z*W=9&pR^6dSN*0Md7R$ zhqGRiXDWo9p3Aq=)HT%$Gd=|6kG91lcY?~_bM^<5;WuALXJH&SIx{~8+b?-A?} zK00rNm{wc>goGjDmN9vU3)>|?oQq&@1RrNLNo^>vHGUXxbxv&NwKs^wmssB#@3~h_;SPGAi^G)iO*Vk5r-^Ah^d8*#@sP8%D{4 zm<=QF@`6&nJsmIB8OnNW;}$Phv{WzTU^arX^W<(!GXn~FQ0rq?bzC2--M1)w`SUj( z^ClhFHLt5Ut~Wjkw>N@yT-Ur~#BmF-K~RlguU7At*Gazdd0k82TZho!IHp_Pp)!2@ zvK0mygxa}Mi+VV3j^B(u+aI=LqHf+t7-}o@ulK^ci3sMC86WpmrMw-W^@ruPd=K>I zlNn!vW+y_aq?k`;^lt5YhanU<9%Z?7`eU|`y}G>>E6%a+@-%?VWRuctu*{Qej?QaY z`i5pR2LfjxluC-p=4QlhKp0mR$_9e2fZN)rpp;iGf{OE6|4an^2}y5)WjjL2i-_z3 z@PkC2LZmysZ_pK?#B zxdXt@B{C0@w*l;s$YezF_r@dz!5j1ol_lfY-bgV+!)YiV^H+R^nkLC6DNj?(^8khM zV=hJuRW0^B?epv~B0jObPkY-1*fZ4a^F~P(8fKbPhrC0j>I^egrbFI9sWLIarc-IH zQa^N3Tjw1v71T;?oi{R&+9vPdKx&)3enzTk36U?)YHN5U*B;9rYK@zNj!ypkji3F6 zt>Kki^Zkkw;K0EMwl%zxYhE;O*A`kM^j{!MujU>spOtNa!?T|V^7oJip?MwVWX-`6ZIh1@Ah9lAj^+6o5x1aup)&@TNfvgpvyoSq)&hM9xIya{xOe zvJjE2c=-JULaB%@dj^;v5c>|H{$)hu<${xU0k{##Q~wMS?_E?zJdEpyP}UNWg#hLw z%<729Hj%PFfa`#{3}M`P!>v2yp-Iu>8j*8{1&}7aFCKBrQ9>pM93pb4{Vy7zZ5)xV2`^oDEJ z)PH7xE7la9qGU1-Jd~k<^jSDDa}8dMz=@eF)_6tNE3MeH&Cr_ToW-{)o{lI$L53D`b=JlNB>2H+gV5bx7bIs?la`wmB3)C~)53J8MZ??SvS95a|cDVzcO01ltd6uuZ!i9@wN12G?jeaG51G-GKH2m$_bGFguION!14^+gDsp zszJ7|xXShw??d>X5o}*^b)>Jj={Rek@2zctmi=sQn_)Y&ub6lsnjk`{q?o?qTEs3# zD86Ti<#K(+TH9CjdKYCnm=ZUO#4Wk4XS@xG4=Yjb(VhhKGDoX?8}>Y- z3=3_#*9$JLf8Q92UgS#ypcnZ<$)p$gF++oRFLJo%B{uB~aiZr^=+IyB>_t{1%i;-I z$nu4D5Qch@q;`(RKL}?c@K>}z>zni@7nxiVdz06c>^G`Nyf<S*zvA!$E z%pfekJm0wxe35kn$uG@L+^_BL4G?D9tP>J5Xv4z zRAni98p!O!aF-3jxPNP^83X#O+0tKDL$dbkk(uO3rIN<5+EDR@8+)+QjRD2ul~Tq4 zaiuuSt2`h1cTl&_R;48pX4- zmnmTJA~pL_5NCGwdM4BxDRq0w0IQ$xZIOcQoZI@Vf1qIRL(*V)?-+!VTM$_ZV3|a& zM&uCy_e$hKM8@N!?r4Nk5m5FxFy|rm6NHmLLc}Y?kx7Uw`xucYfPD<1>^nr>1@Jb) ztQ3|PxCTy<1pDZb+ju@)ak zJUI_vZ%Df;sgz%>l439_zD-@qAwtIR2`@nDbF{!&to7S~l*(KGX9HZbrs!@Zks^H} zA$y@V%YbXJ40u)Lp3^rNHD1pd6D;bt=k$?Y(QXxN&oPI)?7;VC zjv4r-NOiFt{o6UAvF@FmjIr*MoX}YJX-;^o`z&X-W1Z*UuKK>}^u0Z&ccAa>Ic0&q zcjO!q=zB+wIZtl&z02xbVFv2EbIdw^iu7Gp`A5RaKboohvti|*%TWF|PI)s*;W3;J zQ8f)SmyDRYbgC|LZptwqUtX(Qf5o=_VyGJbF^8&~a?GCTNHn9N2*vj+?VbwSWQ>Pw z$r)d3$H*bEjNft@Uz>BNc=KFjx*DPX3>3J3ZO$N>f$Rk01JS18KhY*|gLxV`e&Gxr zdb!l9v-3#nfHBSwr~H$CxHRW5QRk#1@E$Zm|9xaabZO2op?DgIM-htqHB+7Jytg{z ze1IH`3tSXcYK>KDtty3yw)yinw)=!it+7fS*4y_EMzBh)$r&or=L0bv!L9|*$}#&! z?*Z{PLh;iowOPd&I4*i}Z<*DxPt0*Yb2=`wI(9$O_c|f;H=hhxmNQI_^j!kPxd_D# z%~Xd+0JT;{)tO<{@xMmywhx(MbGHWxXXFf(^MCfa$t>#;yDJ`8XuiXas-Z39BsH+N zb$(DY@_59=h(2S~!rvo% zYvCB1{UptHOwJ&4HZaog&EdnqtRgFB$`RJAlk5)~{+gXMtH{dz9dv&hVE_(47Fm-9 zVoA^&VE_&&7Uc{VD{n;f8bRTpVsVZ+B3W=0_B9ZS@7GNBWO$^)p*jh7?Sc?hEMA=Vq;Ao`J@pz$F&L&ZUt^ux9#f@pk5&KN=U=#Lxt5C#>g z#^Q`Y5RW-e4j$ClPYVI6Gf+LCdh=Be9H#`Uq+ZY!&F?)KO@_`0&~J3oRdPpOPlg0^W2szoSTJ**q#hv8v{M_# z6?axazlTvWGnR*LIC?VE{lx@;QK1R6YyPOqTpra zpr0F-cSK5*NjpMbR4+&uUcEJJcQ?vx%Yi|B62jCBue@t`DJp z*}r(_s6%~$?Gd;2uyp6=*k6C+W#6+$EXX#mB|L_P+K6C3FThsg#Mw8+W(q11d(frZbori$6oY0?e>0tda5Jpp>_$;%1k0z^O?V*VIiU$GKm(EsJK#z9#QL73-8>nD1!qJv2q65 zAI~3>J@6k8Gw}o@P8^1RWfSl(YdB_P2$ty$Wzt;%&)+Y*Rp)=jm<|I&PhpxarTd6F zKII^t`gs1Z?3Qc6Zbq|8FdQ#oA$W@aqD*@l$cipdhf1+t4_WZH-&cw-Z@o8glIr^_ zn_w!39GtdoYOnK^yNKZ9SohY;^l(nIK)Kp(E6rCMPmW#Gcau*gs(b-zT zgnI~+w`)##QmPeOk|#6yM<@J1O_q(Iooe!zzo6wJxV)lz*zE$0_3|o%~_B+x5>LnuIs-DQmIfz_~$dw4@Th-U8 zY#d!sXdmj%Z&kkp+7}Uwq^|*dDUn7~sO*Acqu#!e}Gy~iE3>_+5L78svRDpji_c8q39{-MfKp#S$j!tetXaNh8-ex z`{t}(qGEV8S+#K1(iQmBUxfE`%iHC6YsJr;F`axa8&A(VT9!jI$Dk!3*iETbS!Pq} z8zBCPFlGrpG_*R)to}|Ji-`t8(I6EnW5O?>8>}&7Lb||9dqp*xdj1^v(x&RbuoTB} zCTr?#sG~)fX+%y^|0_(2K6u<6nkaks#ZPKPH|!xW!wC`NA4?m@Z5d^){>Ck&2j{|g z4{5@#~urUb<~!$an#2^ zyozwj0?&UkZTyroWTkYzPo>Q&``Z(6z5-#49T>Kz&A{--a^L$Mg7NRumTz(ep0psG zI&;aAg;;{k%kq1VwHAyY(h6@jra(Vq362jV@ssqSH%-Mshe|w3K`5Fv&Qi*pW*7)j zCip_~>Kt$2*zq=Hn#H=ZkOkOsxOS$d%j;3#vgzi{C{v!^*jrTe2rI|?EUbr@W%M{7 zI-H9z@DU~6)S&ajKQ_xum(v@*TwVKqjzP4S={dd^w7T{j zDCCbL#lKhA{vduIm!%YI*9@Gmn}d@f(Ak#W@NfBmfy`5i|ELa@E>pTw*jh7x{;TQy7a+GJA2s)G*nTHMasFtVT94W^1RTO-(-! zQ=#ajivF(n4!~dQ@RFH4TC9`ar|46qk-qD}utMm&ihk6@f1ZL5*)a2+x(6n5M8dvW z_nrsQE=werdSVrS0sUFT4nW4f&N;>vxbp);f%zL(q#~q`EIL~w;IG+9JHqN3${?8du2v||y`?~^xARX29d zbApPLR{Hl{DoA{^Ata+4>LIFie!4@b6bE?4zX;KobeRU)zbbj0Gkog2>C5I}YqM(Z zeDgb_wrb^q>GG=ClI2se%eX1s(w7!tXSkcvgUuw|3=^BuH8M<8JP3LIowlE@o-wxp z=K@#ChgoIJxJ%LV@$d?>m-IfpWTZF8aom_Lmz9m5xpdA#ybW_j`he$8hPYkGQkM%? z*-@c-zLH#HMS4}WGndSrwNftOz#jFonWf7XOkX;8;R0O7cV45?%r+8NH!1v4T;WJB7_$hWBPCRl%AvNJ4SCf{>sEX8cQA>9Lw(>oarzXoBzoSAcH z&%q`}L)v@}^={y96TH28VDhYaQ)ff7hP2sy@oIeUUr4p%?b38_kz51hc!XokZuZjj z$WcIIuchccRYb1#?+F|VQpTW)>=vjH2cppts5diT>^qpLFHUygx6Uj6QTb(h1GZHD zF7Ti!!Xr|E*?Cf?Q-h1vW-b}I9G~Yraq80PF!ZjJx%7}N^rc+u4u9kAd&2=2PpqbgaI>!T{uhIVG^~o7H<$B*tx+yDKj@HsKb)vL>TO4qj|JMs;N`=rS=h( zy4U+&JB0B=kUATwxV>{ZUTx=A(&MSl^1R`XAo-n;?Eu*o1soWkNty3HOW$t?#%EI9 zq^!~#&R$~&#%D=!{u(!lAAK5W|!Fm?+mU}fjp*3{dndFT$Z_v5?HcNh6Qv3Wt@*DIT z-lRMkue2bP^g?7BfJq3`%^P&el=g-xgt>tE^M93BaJ>j<0MB)xzXkzUA}QI!U48G@ zR%1Kikv)|6)Eu6%>5tPoqFS!vF$I#M`82hUQR_)adRnQs+}taSU1=q9A**X|>T?6kQ9KaF=q#@2TM27la8yrPvXIpoP&%e474 z-YR5&2EvdBWa`|?B5wxbMug&3T@1H30bVg5E$#3FH(!|Q71^3>q<-v*N(@Wsan5Aww%Q_tR>efhZLGOcC(h+^QzT9 zox3|(cej~{FA5=yeNriZrIdel?(Q6Qcjt7(-3Lb9-6e2$@!Kl6`6fK19M*&n4ze22 zgw5Emv17(z)`WpjzrUF9gHqnFCdi9#w#FPDHR1562}eXt=p8blv)1tDo3K+=F(#Dm zM4PsX6sL9RhLxJBy2Y5dp`c~?HD=MAl?`$^(qwey$E3}d94EuBdW0Yi{rWMs?%V_X zCInmMOVVvKtNgL)c5pKs(e$1G>T<-vp8@y}N<|^**Vca)j zd=eRabfP62FbRDef;aX8)&B%l@XV(2z?<4LEb~QRyZ|9F54dNhCEE;=dnAwIR+@*c z3s@X~YZu3|e8y`|;kM|_!&KMKHF=Fk?bLb8W@0*cbE@Swj6w4Eh5f-S^W?Uu$Yu_B zbE= ztmy)8POX-2yJB8B?iUyY#Km{+8VWgGJeU>-pjb)U*`L-u+VhM5;WrsK_*$tk>e z{IdCWu5OiS(9OV$tS0_Yvk(|Qe@5BNg;*{uLHRCD*<+gWF=@MoS)A%+)-dKs#^Tg4 znMh8OuedBp9d^k?>=2nRx-LnXw;qRmB2$EhRPQS!WsrD$Tn&+$?zHrgXk!UZ|)K>X4r?quj%3L>O59v%x4KcPh zESbJ|*;GiKp6X@Jd_Eykr>92Bm((WdXVzz=dj3`v8!0BwNDY;1Whc$TT}~34(yI$~ zo{^dt=sY8JMxgVou+FoSboTrj)mUzov>Ml>LU$C@q|6-!!_226Yf>i$+Sa5Ni?-G~ zCx&yX)10QVF7S(TXl{izyKP$4--O-r=WmoRme?j&m@*f1WKH$GZ&5Sthr9|?Ws=+V zKwf}g@7yd*)vbVs&Yy-4f+LJE1=Z53vJkVC$q4p>omN(*UNdlB3&DP1c(2r6!u|yi zpCXLMhNssbYS^zG?UUM977oYG#IqIz`?aHeEpjaoXCjzy7`0ECPY->L_$NYW>RX4D z`SeilS$GzTFm}7H+3*~}{Jq`*+<11je`=pBpjLrq1%msYQKwV~xdrX7z`c%Ozh`tn zYG3JMM$Sf0f?&UA)H$`kSaB;5KNF;>`v+R&i$MHFkfz#qvB-nwphH5i-!nSMB1?f7 zAxQH*qpnt~B|w}a$QxuT+%47Vfy?C}FYMaO8yvT^k(Oq5}G6{ha; zYQFr*TLHPKDRy|qM}9*10~L=+cJWU`a)fp@c#HD1D#-1?wMuNP^N%*hc>}vC#hKw$ z-ANP=nD6EkPYlVCPFg-`EL#e$Q{rvyXm&sPwhxwT!)+`7(KoGZ7+RPlkCNVHn7PUJ zNB<K^9;5p`P_i-}bCi z%a_bt#QsCF!C6Otf9ZjxCz8J#pricx8|5Zc+jVU9i)CPW9ku5fgaPOfmabfcZLh8V zlxOR4zriV38zR`#pIiOq(i^Wh6%REKZ1?eu)h2r$Zn^@}b|24LttJ6kjxfXwNzeJM ze`t-DB!T!^kmh*V^L|@-<~(ga&hR3P90c7yP>r#pAo{-Q@BQfhSQXAe(o>*$9HHc7 zM1BPDEkdb~l`R8i>;mjsNLYu+1pv-Mm~|;4U0{9LdH_3t`2eA)yG|wKI@g~;zSK7? zDC?#v-o|AgMQS1H;W|}I7+wt+inb|UE~@)Dz!zVpf@E(&g$H%b+;Hpp_iH5(vu!1~ z-!~V3+uHPib#B0hv+Pp1=H#yDU#;Adv*o_pH%~MtO<#yb;nn^Kad?IC{w>&@9V({77!D=$LPL=`XIJu2|nxN{V5?x?#q9JxCjc`_6! z{+mXwo@>_c>4r_&C`Wrspt&H>E8b5F?P-#j8w4$-B?&u&lVHpwtTT9ECD%17(c3y> zhIPh8uxbs0b;c~~jDr^A$SuP7MR3MuuvllzvCi0vlt&PXChIUSLI)#g^%-}r;*B$| z3rFq=N1h5r2EMG3i=7;))6(1KN8NP3bb&gM~(8$)_kue7+(>rqsG`O|0ocf5sLOw z4dmI<31EdQ^u!W2r8;XOH>LXM3LsM_?7ATb)*=4hLVwUQ+~kNbX8N)vOCV@6`Fh&)$w)g<(oI(KocJ)C zuocKBf&@tHWfOh?@;ijmEhyV+ik)hU2u~V3zqfDR!GbC)8qB4YNBXU?vE~h4j!6=N z%&0uSk8fV-nghf%grXhlvE#8pxeXRc6_VYz<8&1iDgdm+M4nlR**Z}=Z&||}UH5eH z?a?7w*x_%z{Xq$=I*29E#W%NkKa70uLpV-0bYD|?>@vbIzpLM(`!H>N^Blojkf4a?e_>}FL%_SxETz9Ned;2!fcnag z@{32zoVIK>u93^M0{ve9tmN*Jysvh3w8u}*a?nSyzBuCJVhg?Is&PhOTm7> zrpVEROKocOp4f5!P#W1mDEdqzGOYd5iSvql)lNp)-v#&+k5ats02GylO!zDy8ds%w zqwHLbw1?ZQHBc5)&~fuH1(H9}qxb@ixSfTJhpd)R{x`^R(e+AvtQNAr@z{gmUU@y? zEV%YmgtCQ*%ss>RW+IqZ)9+9wG$3hB@3hW;Sqkza6xXewX+$WM6!U8O=ZJlRQ2e~M zC@m#%GS*h2gs&->?TNh4Tjvk%p-S{V6AL$O9rk zo{KyK`mG3flA}3Fn|awP96T5Kg(k8G?2n!7-ioW6hRD$xk+spl;Tq|PLXsL_&yzHO zY@DXZD;%Syg?K<_8^luCq#B|fuI>k*<7|*~En5_g$E)Vg-zX2{%vqL?VZ#Rqqkg9} zdX`0mqWa~hA5b3DD7p1>iyjZ`###8r#}9?54zJ?4-YVbgflz-GBIymA*3=(sfVJWt|Pry)6rAGG{0Yd zcB&@~`{cJc76f6RA(-n(T|}-Utyzo9X%LEjae&oAYVCVaBwlM@pdX9>5~4M9+nHqh z#E17?WN)V5L6!}5es2GrZ-SBz2PBiq+=^htzX#xLiO9+1Za={c8o`L40$_qfMEvytu0<%` zs#5nfsCW(X_SKdnqDG$73lcXY=}(aMs)&CKkuhgueugkzJkz?jy2L?Y6NW;-MDfx@ zb3|Lzo+#d!C~6jWQ{FwPH!5EVMN5>AzBG!mkvF;4YT_-bh`;gr!=dRPkn{$$d<~)G zEkrt>gIhKc%058k4gfz#7%9i=f2$I3!3IWM|J0m=YgF#`RKKaU-~H5HVuK za{#s?lnUALV#=t`l{GXNdBufCT5a~^+lI4VL&+ayiT|l>)8F`EZ{&9~k~*9R9KuMU z+q<8d=(R3@lDIziNz!#aAKpb6DHq}%q;wd$gsw3!f8!C5Hvvh10L^a^N+qRiE-*P4 zU_yvczZ?-WzWl@hx2&mOZ-C8fiYBQ*xvygZL`hS%qo_IVVml=~&bkGi(gvlKD_G7o zw07Zpt>VQH%MW9w%k{s%aq1F!QSJ19mY08~nD{r4^@Wm$B9wiC$dv#t7OlTW#9S_t zr|OsO1K@ikeI>MA5gC0U00~DTaz21_5sC`>+f2l!668Uf@YGQ+AK3(JDwIktADL~a z>RT=M^15`->vHg!Ue{G#SJ~i|-KyexB@G)`c`wwvMicf?tL}%Kvdu`i8+zP{P`61b zq)s+~YTV805}BBIqtY7NV`VCZ(Dfs2Hr+Hge`Cud(eKIZ3Nw7Orr4q+hdGivL1HFt z+o8@j1T&o*b`d%;1T%vpQ`#f67uhj`TOk4@kDr7776fn5pEVbm!Cj4HI9R7Y_^I$l zeW>Z7cGDo|e0C~+3dL{SzYm1VIiJ@c_%{ee{Yq`3cx0EA9huGs6N7OfTIdjZxzcNp z8`IZTSy^>1zgs0g8PVtckMB)EFjJK80emA78TE%>41*Agwko%1asl{E4jGGwK$Aa) zXrr3QXPLIuSQRk4H-G-d5!kUPS%IW?kk{)7C1)eD;o%JR8AsP|roHmaU{Vr!?S-{92i-4FTx0ZCVG zz$OJk$y>`y5uxcMm1$=Gw^<-S*eV1|#M1Go{vj6H*t z36)%-cFdDw&ljNml*~t5fu0MYZj_QkeLK|&jX>ix4WpoFf)VIFXfjd8(TOthlnUC8 zI1`jK)N*iZz9OZh_wKj*lK!6%ZPb+Vcd%<<*_>@r(0)zdS*F^4TNU8)!DMHDQhw47s{G-0x3>77*D`;(Fn@`pi?7CG4}_BU5qS>4GYDSMF3qkG6QhekD-XVKUVf|! z5`hmJbaWve^cRytv=L9OkS%~Nmsq8aus>Lrnmvfmk^hGXX5~Lo+qym6(cLR7JPs%fx(9os;fkz%y>wo2;W33pg%Zu) z3j_k>WckMx3TV@OpmKYHv{NCRDMYxg`(Wf;kmaZIqLhV(G6zRw+xqENg@urjT~sJC zTDG*=Av(J4AP8xN{9D;{$#yTKyQrkM_WjY=1H|3s2SMK>f!W*1gwB%ER%IF!gr}X# zRGaYdJKZX(;=Y=ZV`{&Tf5?6|s}9-5HT$)NE+tsmcQoc?d*1#g>+HZKoie0=;(!cY zfat6UYcLQ8DvLvOG16ON+Sfkftgc~FtXRULaCllv&IrOaF>Ucd=0LN9+h;@%QBmrW zo+?VChl=gu%ES7Hif8bCVtg+}8PZe-Y}ohq2k*x^a|mdJ@d$^6Iz;yF?S&~vw-tFu zW>N}L1oUxeWF!S)(S4l=BiD*J3R-ym9D}Av9Us!+>S0D)|LjmbO11yhFjW2lz)4j% z4pZE~3)cB)C!)d87h-9c>abxLqz|&_D~IjZ*HpeD8@G{SMsVfa0e;`MmHtD+vL*Mr z!usqJQU6M^y}oTVgJUxkf#~BLOHF$+49?IDL_^?o*9=tB(B5ciR(x#2u^s6r6+pK(;5=D!v-(b8#u(G3jBz$4TymH#;q^}~BkXz_k3daK$l@1?y>iK#a7Ive7m{c_VD;oTJ(JZ{{K0^6>zn2uN4UmT$)*vFx&2p*-V zEDxK*jf~X?gal_gR3*Vv9IA@oq6~42t#*W!1TS=`DuNpvs*>O}4pkL3GbtW7y@ICq zb&{$H(pWLQBEj@(n!eESRuH6RmY1;=0U<#ehs_{@R|ZrB13Rme?7C5lbgTZNND2N% zQMUY&m<2aPsTu+S1XpGVVC+fSZCdf7f1ad{rbNkM?PWHfOY|3BB$$(-VN{(k^G_Ue1;H?LMPm|kkoQH7y`JC(hbku+ zmRR3}#LRr|R3Wbh!U(>ms7~ly>PK{!E0#ueKL{Popza5)^bR`BJ7|e_P$Q|{3uLG+bwyuEaHvC75ghJNl>|p9%JzSZ)dqwFr#Vy=!RZ;ij4gD8l?0bN zR8@ir5!BiZ7IB~cqMIT3q(fB^-0D!31fN!vHHoo5280CPcBm?X?_}^Y_NgPRB>1&M zHDS^=-5>gk{=y7`e|M+~f~zy~jd;Y3U0W4*1^OUz?PE?+Zl~HM;UsRmnqP!YcOZRdvt0cIuLsb#nswi9XO-KyT zNXIy|Ym8e^mt;X*W88we1Pfv{f;E{XcDQPu@)~+lWojlk>T_9$E}FH_Mg1fB z%v2uA!vh4eZgmcewO*;SQBKK$th6#I*RU4rFSW7z^%w1*;G>GN)s(T9144qYWDqj; zw}6n~H;PJXgkh!1bz^p+{z55&4GvX7aG}ennqY%NRT5mPC~FO4XFI~`umXf-nsAlo z_=L;3ir`j8LOMnVE2&Mnm zoRpC9d$Eo6)L)bf!6O{1ieNuQS&uU|$`Mu)oas(ofppERk3w-j1;GHQ2iBsOqS zWs+`jT$hV1Zl(UB0T8_Ie{2#;kKoOUvJHT-yB%RA!CyF36~V_dco};oASC#nLsb&| z+@Y!ne&P6pkAj$HYyqpy`cH_ymG9R!pyGWb83VSV54MSwhBW9FCb0{A<8V zkj8L7YFcxDfFek%@bH@;O%em^8X5aTz)O&ZqP-Ff zRFAcQu;OvG>#6oemro7V{$+q7NL}$1m>?Auwd00vRTAuZrV~eSkfN+O#?A={32w+BWbBs#A;HHSs*>QNt6aVWUvQ{Og1=LgRfVxb z?dypct*Qtf=TMad>(6sJ5S;B$l>`?%R29L~9IBGwwHG>B7HHOgJ1l^db>}v?JJ{dYjf;v(|@PYF~`7*Lqk;s?e-@|l_jK9D#gO1=#MOo_@J4dlb8%90| zxCwrj!Ohr_uB)jb$lk{Yv`RGpf4nx=vo^CvLhg=LjJ)A$ZaqO(K|{v~Ya9k?f~-Y` zj**~qs3*uuWat=q%~id6g6vET9V5eBH&RcKC2r^#In`B@dV=gw3>_ovQeX$ckiU1R zR+;{$PZw$9#Rftb`i0Db%j8OoVT_379b;C>Vv&9)?lHu5DGAml9(fC|f{mS20@I2Q= z)>Dl)v{*zn!aukQRPI2nD|i~}H~JcB?f-JbESeecNww1TsTjQPS(IDbk=uOFC`X_G8KAGSXS|_5SiGNbl z+gP85b7#_XO461jVV^URb*m{Ana=(fULwfm6IGG;t6j4?nc(jf6=fm*M4f81fkRC- z34F>VPC?p|By1HE*^HaAis@|Au!YkQPIS6 z?1I(=*#}2ii01^TDQ%d}Sy4g(Fo|=drbID)mz!&yOt5z_Tl!!XBb;DGRVSXas;2T| z`kg8~Du?(jnx0@9lU`90IF=wMaOj9XSj7nEZ%wJh^aFH$XP6n`OfRY@@$9~v5+3h@ zeUHOujvGG9_fnAEAqI#zr^S$)EVvb;t#S`=0;drSCPIt6csrWb{7j~IP~r71lj#IQ znPkN?nch?;_%eqML&4ml;v?+`b6kH^(OSV^eo)avQNjG6f*n~fKd6Xh?Bl*>?Y%ji z``#RO5*($0Y98n8IOpuD^UP zUV{wrDadj;PRk!;+Z7BECug!VDU+Se;>I1-Q3ZhtuIgdML$JwibGWpWFDq0qq!s&FrHS2 z)Lx<@(_a3rMn)(USw}@C^qTVc+w;i74NdG%66A&^TtkqvDA_!yjIAEr-l44-q5loq zDREwd*VG7d*9AtOzdB*F<^0vr8I7TgPEQOnI!iFf=#&6?N2dUWj^jPYYtYTqag;-| zp<{%DDCjs&a_9q!AV)#N8uEw%;V@eY(FDZlGEOOR?Y@3(h zvTYt+M(d4CMgmt%CP?cI9V48YKu3a{iWoXZ0+&rDNY@!UM(8}qBN+1IwwSk?<44ZB z@uZ7j$dAt_`SJNAKR%!2$LF0NS=(UG^ByCtZ^)Y1s5!H-+KxF2g1{J6!7 z`>{5`k6XOBA8Ql*xFzmK*Q(iyLoRxERYH?}cU3}@eRowtlYMs;n{22k-;Isv{_a%R zo}|L|Bo($Nsjxjsh3)^D3Okcj*qNll&LkCfCaDmg*EH<~Ol6|Q093RPfQl9YP|*Sa zDq01a&KM1JN0RM3l5F3RWc!XJ+v9U9Ga9>E5LGZ3VAzT=?;;o)lY_@1tiro_EE07e zY+buL>Og~}3)w>&BqMCw|Cc`9_)n%m)d?>DHmQ1in^Zl%O{yN>y6QoH!nxnBVkB^G zH9>ZphK><-oOq}?Gd>Oac2&F&t&Vq>)d}6@xBo#$f!S!hl~zTo8K|O_3@BDHc9TFw z8v#lxg)Q&c-^Y>Zs%%uVpjMw{$uTz}xK2@NZ%w+95w;=F#Z8zTH(_$zgvm7FR<{K; zIa-XOTC^OIWwgi=W>P>!4aZGoP5yBtqaP&WGBtdb^GW&fIyVi>FaJbQKj<&kB5$8# z^Z8VNfg<>oqEH#XTy?2#DsFU}i{;m-FB+Xs$_dgj-k9AKh9bo)g%FEkGu*nErolFGp)>Q(Jk_s@oJD>obd? zDLSUJm=f${5=*ZsQB3F7Exb&S8@H$~|8EyJTGgT*cT@h2wt!rVNSt@D#y_RqtF$1( z&nON(0YTRGl()1sVNOC&W}A|B3pOR~7HmqIgKS#O+Q=$mWHQ3xPjn>AUcnGD!i9qn z5@uIn2pOSAg^)1ECPSFu%H6t=J`sV0L;krd$v<}``RA@A|J;@2pSxB!(?55uZl-_k zTHQ?l+@%#H@KPQwh_NwNEcTz`5yJdM#Y)mWx-}uJNg4&&S}5Nkn0aHURukT&xU`2) zdHh$ick`BJX8*>2H~TD36`Gm-oB!SHb8yp-`DnB}>QbH7XdWsLX^pZaOE0ePb%giiykziLzAkm_S*BXA|hEPyR?B z($j!VO7GQ#bc0WjZt%^P-nj|s2A?3^;F~SIO%u`$K0&&{H%~eWDC%;cqB0YT(Z}{b zdlPo{D3ov3B42j3n}R|#_^3)v$oQ}c83x}R8PaD)br4*0c(J^UvH}(3^na?h(Z*&G zB`OgU1ve&}nnaoC*r>WcuCbUlYwa(_9)esmLjOl~J@kTG7ghgR!I#e_V>OpbbKOa< z>QxHzfih%8XX-#jC*=tqvzdhd_gHIVN9Zp!Cm3j6^JGl(ns*fSozuJ~u6fN*Vw%U! z&0^ChuDLr6%LO5*!fH1SpP+`^CT$vj*tUK)rhV-{6csqR_JWwIwQ(oc##OE5v@%e& zmdjVJUFDmax_o7)4%AGo;%pB5LfiKZtVcDWEYk=VB+Dp{0f{Qw|z4z7r zxEy@n@BKr+>Ik3>fR3V9)ThE6b*kW^UKL!_t%8gCRdCk2;D1&CI*2Z%`^=_7)M*Au zudPt886+bIxowXMZg(85Zo&KZ1nDWm%1F@WE27>5YrHyEL|q3eXO05dQG}~H&A0QO zu$`<6M>spnX{WDt8lxE5&lz7%koFq79NqrmQ*HE0akFB_f^s5e{pW@E+ptlL{8TG9 z-e90n8OkyelvG{3r0Sw2W$cV7%;k+k|K}F`DQp2F_d5$F(t>-!#llEn!Nj-)6Psm0 z=7H%Rstpyv$pV6G67A&i$Q4Dov&*@=KL?&ivsOjl0AL7MYJy_o8(g?C}RgLADh00WpyGnIhCKVeDdsv7k$P!ntI`LBbn8xx> zR)MJlT#=O%WF<%v&NLP)bZVj$oldqMvlRK8Y;qH&7?G7x4v3&A++K!FW63O%xS3YkE{;D4Lx)A!Bho?JDFfg47=cpGBBOv`(Z1kw!CEC7X~&gN}EVauz`rok)w8T@%uxzVI?0rwxgf-`pl_&a4wjHqVXPj2r%& zFgYrWCeuD}Hep_rGiF}Ce%mvRdyZqq&7pCuoa(g9%9&)`oVamwXdHi=5EeIXPE2bc z=B>3@t`9I5=7NXIM4)1vI$0w3c`BtP?iJbKb?UawKdMK!R3p(BB_;cfL^E%4zbf3m zTdwA+LnFyCoq$-V8BrppYP6=UN=aBX$#L9Al(W|DF3jc9`CHvmK=p{_naDXO&KdW8 z0%ywW-xy^TTyt_wdHoW2`!$Of&#XRJ70uWnV>z3n%kN8Xjf^;9azfBSuKQe+W zLav}3OyvnuB(_qcIwtI{T5(%dvsayl7&0m#PDiV0Qxwh|Kqbl$e z5PC44UE)&^prWUg68kyv-+JRje3eswQ5Xd0`xck>RxNF01m8cTcNW(*K0K`!Mh2PUr-J%ny0@A&l=6nm@cFL@<9X;_;Q%c{xLJhO78Uiet7`IBou z@tS2Ph>fZub1Rz5EYUhCfo1>|<@C~TDT@3kkS=?s!c{}fA&TdR{qOgbGsii+f*_S> zgPlwH-hw{$S&6;qXm-An6EK~=CnnF^S2HD3!pl0Iw_l7XHih=nl)zu3b04SkhMqZH zqdKP&n4t6SnJDB&om>Cg&9N&9ru6bu+tV_(Z*Zk5!2>f0DLMKZ;Qr;0}Aw3o}N zf?znOrn~BRPIXB+)w!HHyPWC>hI6WmRg=Ir=JiMCzj}f$Pj5rHgF~*WPsqPMDgXF4 zN2De_94omdtPGU3P|C5=(V6lGf+V+{cz!8I9#jJ+Qa68zkuDhYm(!OK{oUc=SoJS}b-Fj5cIvU{9` z6$FoIpoP^0KXj-Xnzz)cSWS=yi61H&8M`7NB=|Fjsv$@-v6)JcHd=9vtz1FvY6xz2 zsA_`GI8+V67agjC;9Cw={dWZehgREs{#XCisjZyb>Im-bP?ZGfQL(eGk+Gwlk17eS zcBndnbh71T>@r7KNsz9`&MHB=-tsbbf51zS1p;1zbgJcL?2pc$l?2~(s5*jlwdG~( zYe!f~@Lvv9NAL$lSzZ@&t)MbX!90hmBgmq)y#GPD+69!BDN7BL9)kT{nbr_wDN0`T zu1uFX-_{UhK|&lsmZIfljHQOtjRaX_mXNW31ep+IsUZ`BY&({hF*YA$LXc%^2^kAo zP7Og8q$OmGPES0P>3cV*vQ!?U!tq+fRj%~Qqh)1hWbbK-e5~%z!%Vx6IjR_SP>{l2 zgmwfe(L7`z&0A)%R3+sNYK;0ta8X_v2>-XdIf=ae6Y@8j}@o1DY ziA#KhM zvAB)x+~sUJtdEzc{`UmFIi2Vw~O^H<){y;ZGz*!mRtcvDo;{J&4uOmpIp&5NpwQ2$pVJI%HGA^zvs^D&R2hLT!SWDnxf;1itj$oj2bv%#iu%ZIn z$sKce)m1iJOUOtduskj>v0;)U*pjH?q~3GmR8?FRE^+SE&LFvl_+FH*3E#EW_2mM$ z&a5Q3R8g`JieH2%n#Gwbl9-dXO5@CRNzBQ+pJeXk)UGEORy)3RnZhEtoig>)UpdG? zm@1&rM17wXVjUe~B^Iimrs7it~NVKkNWb9sNUM0bI9IB2W4YIt9UFB@4BzT=e z)e)qbmY1;y9bqNGUprJC!N(M3c^P}!5mpj>-l6IU(yf+vx1KbcNc1NCh1NpwRp-rG zg7lwAuXo=3vvXZ7LAns)2-1I+m$9H`)Don#EFohwEa}J$`t?s#hcBEixePGYL|nd89qkQjw%teRi{`auTSLHeDW6?U-ZI zV#A9P$?i&2`BVZ`Ji{DE^|EH%&bvVO6iy3m6-1@yCGah324BA8`$6-=d~x&YsQ7{; zvR}r?3c*KTY-h20QwhH1P}8Fsv~YaXBVn_`_din!tdNNd(l}9UW*V22ydaH=N-Eg6 ztfV>;Q$4Bb+65^y?V=3=vzZ;M8yQ>Vda81Q^oAvjx;Cy~^7RPJmeQJBkdm-Zpx>6& zjf_z#^j8Ea5&D5JrXMDg6d4qL9YHcD^j5MUjdNDUIb%~sql3>Lhpt7pMv$sweoQb> zBsPDS1t}F-tX?q-Qbq#a^0@hj=;*LYf8nOhNp6bLCCpy!tQ_YWwEsOyf2~Ny#sob( zL3Y@dkexM$f~GXGwlK3%L1s6uZe)x(pgs@`Wd_28%z%x%DX@zCs1i};*U?6yiqGW1T*~r-ZfRNyl3_`{> z1%w12bf`*#uQ*h!-kAgX8OBimpE~_3sMcU7r-I-_Md1`#&+`?&Iv^uR<;2X2M#k<9 z2njx;C`-uLwt$czZL)+J7Dz-MSY`ah&8mx=RhM8^ADVTuQ=*O_4G|^koLRpP2no^< zOUM{)!M-cOuvrOp+?d6Z;V(w$<2B2ZT-N0TSwczUxQO#9hQCtpH)-KNq`&#zVkx;! z{d+VL^^GPKYSIu%%y7AjLJ1MOIWR|hD9^f#*1JSQRooTZuXuj~h4fzfR(|NJ() z2(CF??vG(fFK8Y)$*APPQoQy)ivHbqlMU%E3gr{-O^e*r0EcpyMaFLQzsVD;pVmEFdKKWCkH)-v)#PbF_GnFTrjO6(34tjg|Vp z>GZFlT9>-qDhS@KDCvW?EBt;yMv%(c9)q!60U^PCR8>pJSQlqN1wqUM|I zv78`FDCudE>4PYSztRVNpoPCve?xr`QKK}gX7oXIN;)afjurS10g52~y}LeWi|RE` z*$?oR?ye7FNk85^a*|QW=Jr9Prv-b^DpqNMn5G)iFmx3xz=xcx;;lF&YKL}JqqPG^ zKS1yVMM*8JY-H@7fRNy?GYA=bG9V=QdgvdWyWp`2nkXVOUT$W z0U^P#TJfo_?=g?7l@%K&UdKT@;Yv2+{y}CNh54IF?O_*UO{lULsb!^ z5tf&+3P)H$kanPj5IiNIA{dyo+eRbi(V*{KvDFbgOa+Tlb&ZUTcG=Yt9FsxF*o1(P zAXT;!89OB)BuE1+VXPSJ*-4L{=Wo8(09DPLk*F+{UFeeVRt%B(n%GhkWkQK$qC04E zNNh}#1jG(K>(tkIw36UrhpHjipeV7lvXQZK9bqNGiyf+l;N=;-jNRl2D+z9Ls2YOz zI#eaW2OX*z4Iyr21+AnJVp4@OX^oR!LGU7nsv<}uEH7i%Il>Bpv;z%+;Qav=!N83J)TF_r_w5oBptLdNKQ z5E5iTSVHTO|KPtX6P8Fj*Cgr)vQ1&bj^NmUiXaOMR0LU4qFY@fV{Bi3jR7a4l3i%Rbd0Jk^*sMTE@C;XIbp%=Ppd!d3w&ECjIp8J8QU)(UmYn5f z>|)oT>Ikwt!Ame)wDD~ZKeLoW(QCC)4c9`F;gK*45YL4O)`rLkvjjoLV*B?Lo1sW! z%j&E?5FFv7oL|c6c{)SLqIF(ytn>?=TgnO2W7zkYLYV#$*8h*aHxHAms@BG<`t&ZU z$=K=6NQTY;1PGah00{&^hE51wRo$T)0))&UkdSl;AP@{7I6(p`ikJefI1w;7LZaR% zR|zIVA}6b z6BD1)+y3~;#|}Dh%h-ZrV?QAy8z;^KSHu<^Zu@g7nOFPcXU;LH4&1V2%I!~6aX*LF5E!#(Sk&RgfGpc`2HqN%$ICj?PnUf?f$Ih5E;UCM)eQM3f%zg4FGxHy_ zl3B`mem|j1X6ZksG$Uj8>1syC?vp>6vHzHr8QHr}t@SyIZ(CUc7X>chQEvSW&5ZU2 zT>&hS6|S%N%TqTv8A-{gKdloo=RLee#RTF!01^Yop$k&dtBm)rlImzW#}WSgBq4_s z7M-r-R4g>w#AFp(GUXsHnGnK8+u4~yOByeFusyNmO@m#n)F76PT>e3@J-&C``uAzQ)RmrA|Khk}iRi3_M6lhd@fk z7^GmdLrqfP%ZdEAC}Dam8QL#&OgN$t9-*Wtcg51$Nm@B&spm^uUP@bDN?Tq^TV8TP z!zY5C&o?zikug#d7YYX*R0J36w)A!3mtPgfj|JkNw5tEa?~uTKgm4hP9=DPemexvESc2G5 zV}&J%lRR)=)E0+Y~oEj^a2jbisE9;fmoV#jIuEyGxf%-4G8f(`C>fT(9Gtgr} z?1&mGENwTj!V<)eEY3+;#K~F2DOtqnS;W~{#5q~SxhbNH39V)cDq_Oguj^vM8cTRO zqQ(kK8xvMo+L*Ay62wWq`CmeuC)ZeE3C<~=$n_b-={2qjpYfY0n8eEGm55QtrQ)SH zA1f>&adeFpmLPUy5hr=#UxG}Su9buIaBfX!g{3u}6_y~*uCc-r#5taLSdcll#tKW< zovg8R-O1WfDgacZIBP7SYlJ7x4!TCySeX-u9W_?w2I8a|EAs?Dxsj<=>h;wVKRF&vr!rGERMT)b=ZJdjVo8`l2eDBRw`DZ$r%d7vK z&A9~^8mA8KafQY_<-S~K%t>y{g_hpj&Zz}!8l&@dN488$Y~l!G``(4bbiw{~*UU*7 zZfsjfH#pv~30X)?*VsPo-nNBwj{%nU#B`bM({68Dm~=KTf9fTlZ*G>2TXS<{ujljf z*EVEpg@2$Hi~aipSWYLPxmh-FF)m!iKL(83s`&1kyCghZAiUe}DKIC_Lm^|A zvY{nomr_aZQqY)tjxf_Eq2KQEX&@K|lpNW($Nk^_U_IU+7kUYKlE4!@j!lj{ zkO;#`yEo}3xRP@vNOY2!1QPRzT>(-oq855jif)?H>oTRuG^f?%t%Je2?RKHMvzaBQ zHKYC(ax3m^UVdjY>jM&W)<=2zD$CD0r@BH8^p$ruGiZz$<+J{mxE%1a&TyKX6~ii{ zOEC=b0G$G;mh~Y@S23K?I17=Tbta^;Cwq(R$u1+EUC4Z;mF&-dU*`IS{H$|0t6Ems z{bbip^@Z(aCIa%CeRinEv>jjmnKh{|H{s4^1rwX^Z01$oZ5b#%9=lFDdyY=9$JiC5 zvkMqI($m3nnUxNnqccdsYe)C)#=z30uEI&BVDtKhlQ>cHp&9A1rXD6`$b^$@pY<(K z5s++)IWXBYV_FRDxV_4{{g=s=+T>(eAzPEA8A9_e$3WTx{}7+S!_)9s0}qoeWjC7E zn!OuMw#EIxWK)p5sye{7oB}W@5;6_2@kxtIy$?mHYnD26zn0hv6F%!nCBmSiC#|E$ zNeZ8lg*5p&6=$EKvJwP#r3I$$tjbt#)!X=dfdI!;A=F3X9Xb zR=ChnN!~vw*H~-wjAg<_p0tFptFA3;7kI`p;Yv?hLb$<`%7j}y zX$j%mJ*iB{_un!SB>tM*z9Uj%M4G*V3L#@45h?kI9O4;Egq@yLA!H0(Th`9;j3q*b z0Rx@z(!fQ?Fo28j-GPfRL?oTlTvUBH(%Dg^!}JTIk#L4;!}LC#-YoMLR0-*Vdx?d$ zO@Wb+UN}b9=m-=O(kI90ttYT{rtE1?b zS{m7k99m=b*GfLflJW9434aO~u9_uph12w`^1qaszhH@JhvuFbJRxMVp;Im;UZ8AE zxlMh<3j^&^Vs@gm&9Wqy`*6aR{d^^m$wLMEVJ92yh0hUK?w#Xxo{1 z>?!{+mpr9#m>1W*K;gN82VX{91 zlc`Zi5cV~6&hg`<#GxKWQ;8kIA%yjq!DdwAL;Xgd<)w6%my&K}jsAlYrtfjPD)%RnF-h)cTs*x-Ufon_PFL>LI}z1uxugOT~$wI$2}7|t{ojWMC~B? zx%$gAlVtYSI65=2Io@OaeFvYXA$~CQSX>>+>d3#kHJ6c9@C|5Qb0G6{Q4 zgU#^(1%ym}w52Y(1FoQpi2RSL$V?{3d~ZKjKBpxPZG;2*yGuAp5Vk2vP7>uBYva6Y znTH0d__kM3BK(t*nsQgr_PUZyf8?812}4u;8R5Eyxg4AR!Z+BPlAn@r5;N!z5JeD3qwVy|zR-n!aW*uPFup6Oa*8%@~j zNlOS>M!Bmu*A@?Os#j~7b(;?yGgQpUUR)PjzSXzvN_v3T`Lwv!P7`q*G(oc*rz7%jaGfA!CaKNJUcGzelYn-+sQTmh7MXuzL#$?C@bA zSYl>u(z&G7FJ4`Qu@tUS3`-GrmpaWZ6;IiQ37F-5gSOR-wwZc^<`4R?mkDVMR_mlZ zkZ69gzWH&8vj8A)i}87?+s-mb6HuJhs4gfH2-T z{UfZ-ob1m%=Q{e)=eZKuL3p|+RR|X-$t4VHOFUzlaH}U(2=DTwGU5B{#Ig2pU?lvs zCshb{*R^HsTb{8@_!Cd65We6^Wy0ThQtHNUI&ciyD;hi`2H_cAPB$ULBta|HSlbpD z2^j##$l7NDBO$$YjI2H38B2u0tIVaP-ZOf2xR+BUJkyhU2z zvw@LtmnT&T>6&ZHTJS3Mj)QnKQ{^1v<#laV_|`zG_dV3uYQAT!uoW{Ib2lL~8N-H< z9*WK7)TETpF>tggYloe|lAU4$1Y38q{c8U*wm4J7&Y^V^g(k{<4d zJ?K$ngUKFai8Q`V&AdB!KuA?t$u8pZ6vI+Z3a_hM{Z$@+s1z?YkTg#(@rO$1jK;;3 z!3n}n-7Wr7OXMHnEBZ6!7~+JlE6L>_YXkh$Um+Z-B*)0w)q#=lHcu)O?)Ic~?#iHx z|Fd=a(CrN_J*Du6fkgPTm=C2IO`GVImI&u537IyB`1HU=*rOzIwN#^Dw**GQJL?!f zq_vL)M#2Z{7~}3*thXFebW2FbqROx^Cb&OC_+1~KD&g-uX$c|wSvc zd!=23v>IH=en3jv9-^Sd8ZQ~e#MdiLUrl0li<14TNhG{4T*!VkNydTuze`!4&=SYh zA1P$!gS1p#S{Ga+WT<6=WhOFu4G&flgg2-fCf9!6D`I*ul>1@lFr#_PxYlpeDuf%9J>fyjPUx)gk$$>JRA4-jZ1{_#*OYQv3ca1R|#nY9(@wVC1&4QipTerb6l-0 zY>o-ndQydOoswKXv36BpB)ry>%7oX|wPo$Lz)1M8C#5D4S^qE4%a>>=X-Z2dRcLW9 z1vljn(H4}DwNB(GrkGL_y?Z{CwgmEM2;%?}A>)9wC#1QJ(>^%Sp*KG!YY8!g3p}Zd zaG{c%WY#_(7zuaPF|zjcz)1LwI>umE8qrePg4`seA%3Wmu*oZ2Mo3#cFA1~=atUdi z=S^GXC~4c4XWAw=sA(IO;57llI(?09W{bwOzTTuh>7w2YWxYvdjxpOa>Y>e8raFk9 z@Ublu(tcq}3Y7Etx!Qz%aY%064fbUix${5vkMC?+_j=PGitlWi@JGanOz+c1c+bx< zy9WhH_N2aC?h6HQ#DIdO4@s>F zc-*SYFK9V1ca=7hRL^SR`u}-doBpOHQjV}$MY*(L?R2Grk#J!hV=}K;r>57vrV=4# zyZmBpf!9;|?^=%Xl~K z(cRd=B}YZa5We4&Duf?UlIs}Oei|4F|IL%iguke3%i13TBVm&dK!vcylgfmQe%7Wl z?jSIIyv^$>5z+-0S=K%t7zt^wV`T0B1V%!d>=;=a;2kIt(gDYqFxggbSLt_pEnQzz z_?L#QYt}Sbic*YW8+<^lb&g)KhF5RUiLQ6PZU-d#B5YAAN3oUE&10&(7o>V4$Q(aru z-sTxAgxfu-O!%lL=>%5a5AhluYV%D>gw*MR$l6(fk&u=+M%L~MjD(+1l4E4;vw@M2 z4mifRy$&CuO%C@>wQJL?mD2uE0pxQ^&~K zg@KW9O&wz}B8_&Q=4e0B5;;rwQzbdGSo>{YB>YPqBWni*vj_+N56miMnN_OMtY3Mv zN`y4Tot`L`|1L~+D8K;;f^}SbZ z%SzUIJ!6INygEkKF87RO!UsKRzY`*@r!iP)2x*Dy8P<;WvP*=t#4)nAIxrI6t|Z6E z+TDSXkPbLT7vIL8X&jhZr^h30b8 zRLU`4TEi8(-dk7OGu@Sc(h`9sJY8+(B)0+{QGt!ai&5BHK zEghNOjL7I2p*}wUuDLwIN57lW7}Sg@P##LKC0)dn#g;WMEH$d-VO_eV*BM&sP0wJh z4E-jxmK_D19D%1d)+yGeTXwM}L!a>uNmGuRhWatDuXqH*vY7O#<-VCp;j%+P(lDw!9c%LU#3F*98S*@}5sAudZ{E8=43E8QxEo&F~P;?VAaE_6+$mc>g zVLv4~M%GRZjD+#vrjH7Z!_2@kW#k)3>KLPmmx&1Df$jByeZP-H4?0>HN8Ne{*izy_;*Sz35Z0L|D|o zI!4wQV^DW)uCex9=mf&xh%hD{an0!qqX+j0gL~54MlJS{ojet4VPmYhu|^(#L!G6G z_yTXbW#)H!uT($jWQM^Yc|{&vr|sV6<5c$75`Zc9anIUC7_|C)`;;HCU4+4TeE}k& zAXdF$o~t~jCB`n{Pfm1~5JJLVDM@m>Tw|?pl4m4rSCV67?eM@z_=Y-0)=od!OLSo0 zpLF5}-iZ?7W!{N0AiRH)%kzlHIVGm3T;d zeMlKJv?gT4#Nu8bKSl_Qg!I}mvbM#$)=L<7ZC^W#_o&@FeL|EOu=jeYWx@|ANp=`D z#SaBG!mldH1|ygF*M$0gDXkTXdsy3M%*>IMlx|yQTk6LwMM!a(rpO|}gkvl*)zf^& zFyrSNvRf`mx6~J^t>yMZS_Z9?=G!X1Iyu=>Dn8XfBJmF+2 z?jfYRvMF*G!)M;d={!F$(}!{8rzsq`SnvpGiW{0V=9}|fOE41B7{?e4AtTDV%?owD zNzHS664rvzCBmEP7+GT{xZMY9OXgGUV#45v>^_o?xaRbQ0fu{o!M#SC7dk{m7!TCK z#u-CI?3}Bfg_akjTVCKis{eddThhr4gF&iqBeg$iyQcY4lP@VX+`KR+kD6~e!P-R_ zwEC1h*=K1NVQ_w*o0pxlo&2wA36lt?9YfU>!ef;r*;cNxRtb!R7uGSdwquT$=s@F7 z+VzsRt3){Q4U|$Qq$Ofk$=kKa+f^p~&tqL%$H>~>l!`3|VZobPCZzSQZDZ5*N^IEC znQ`9oD&YigV>e;knW}fDJ1`Pn;7L_NMp|sF)>!+FXY3{{#{yBUvDVLf-A&l0Bqx!z zF@cfrraDH}J`flQ<8eHY-2}d?rb)o=#zIfXpyA|57>{4Ck6(|EK@TB=262Rpn0VXk zkl# z`7ud-D^;&s23cFHRLlp2Tk9BEJH(G7S)N#<#n`MQ&20Ou58_6Za@#P+i}$HqyIXBBYTnTd3_FAqj9Fh_xL)6eU7BC3ma$lcvj0L>6WQYHr{Yf#eZ?quw3p5WqMl62K$z0^zt7(TNhz)==`+!T%1UgxAzDW|=9pw5C#)rc#ZXR(nk)!nmeV zt&yfzrnxJvUO<^}Se>b?O%05M$Ja3)xTaE;rc#ZX4)>Z$gmF#TKHZ@HyjM$P5#b9; z+IJ@-Pn7RAFQP>FxF=N!zZH{OsD5` z7h0mH2uFGQy9ke~>l4<>fsydsI>uzD#p^U+oEK6eoD>sMso+pOL!vwAbk>di8%H^Z#nEVK5J zL;frf@76fpsYfVtoTDPg2=DQv9>V99_gs*v058-!?cN$z<);@g#_4W|{ zL`ja3wO@F~GGWtP-Q83zN$p7qJz9OT1aB4lUb7)JQ3z(x3N?Ids!vZo}Zr5bBL^xe@- z$ewbHti9|RON8teC?P!BhowZwAcBkVr-6$wgei3jiU;U-n&#c!6nH#xmi#lf4~;t39bq_;ydK5Pr~; z%7hz_^0Ejwds3OO>i5*C&T-A%Ji^$G^|31v9_C5ijLIhOS&8sQPwJ*MH+pMIgm3qx zeXe3^S*)Oa=XqnQgft4T#1U@s##9OK@T4V#>?i59YK^sneWa^|>?&v=d~@I;q}$*k zq}$kL6aLLdUbMIcTF>U;e@B8j%Z9Umb=_WkRle!406FWVs4gPk2S~KH|K0~?) zLkPN0OF5SsNn$lEr_G!+FeefQH!5@^7+6UgSfPQzno8Q5)GUKP(xZ{MR7+V-7}I!3 zz7UggT7H9N@kvd%ABV&ve9@CGNGD##8v)~VTyUYtHune0^@^5RT(X+(KEk>93oT>$ zN#{U{hoKREdW5?&Y@{pEm4w5U~I0qjQJ%rAo+nh|^UcogIOZ zknwPgtT7~5GzsI;N#C1tn@slW@}P%?P#+``Qkhd7kE!5B5=)fG{>3w8!nnkA4~oR3 zg)(JOAX{fmBk{Huc<;K{lrCkgVENpEFy+bgkP2^Lgy*BnG4I*bC3;3YedA!R?~Hik zboa)EP1iZ_E-f(!65gXEv7lUI?cu;kxT}tlwJ!%o!o78jaWj%QZB{AEtdckDqh4Ey zkcPMjvi8-$NEkOOooI2>o*wRMf6x-qBK)(GT(npl=(Uvzht~yxwZj7=A!Fbq#?46L zjzx|#OG}tV_(4zVCcH;U+OJysbYLX>OdTU@j|ax29ie`LGM(<3y9n>_qzWy0Adm<@ z?nz}T-s4GKK~X?GdijFDM)^TlW=qQ0bB05|(Gp=KJbi(?gpDR)SxGL8thJow841UF zQkn4co|M{a+U7Drxf}2qx8c)fmT2ZpXHt952sLl2x4h?&h3;yPme?i{Uaq7;xy`v~ zPr>oY-z?#U^~%tiV3?S%@zV8imc2m+Sl+FdSPsfU1dkV z!*}#zcJy(+qZhNI|6AjL`%;8|^Q109MnDp|T4Rk?XWY|L15>H_Jsmfb)Hqr7h~MN5 z?joe&xEo2xWR;f0v%Fsw!a1H)=D4HF5JoslT@_)(^bTx zEYhJG??=YsEj|`AYQ!9+qVX2J&Isgl7ZNf6au1zue#m=%A>sX=)J4b$Ko}thrwHRH zU@{9WnZH>#?t_1)sny+~SGzRYoKdiOBIMx4mnUAjp2~k05|JUMJ(e#hb13@`eKO4U z?@%z#j4ez_#?G5SPrPhB{tulIuf8Z_g6T(H_lJpG@{B@B>v;|A#2;rCYQd@3aZb-3X()3~N_&jQI zJ~yl_<2K9tJ6#|@tYzk@L0HK6fHH~$#Gea|2Wk&7J2T`tg?ltpe(W=*O!%TF^%9QO zZPC7Vla%;#-@HUfG5A)`QsTJCM*C)p{H_;SC8QXLTtgfe+4$f>q0f4uy@c(4_g5ht z8uPrj#u_zYC2-+9kk41fIIhmIuEY+JaG57{6RuQ}3ps0V_Kao1k9tx!;io;ROnAjO zD(xnGizk%{f79W)2nUQOsZ989p43hF8&4_|ep#RYVAty;?Bg?XH%J+w$=?1FAtQx| z6EY?ep;C>twV^E`9Y$Ni&EEGC;c*k`XoYa*Bu8=@So@GtA&&5$)K|yI+Gl(ODufJ* zV@yUw=Ev-RMfHll|NpteIBn3#+~E7Yi;%+sYuYa-IR0CFC-<;BPxsx~^A3fN2GWle z9_0J7=P-rG2NHXn-J7|J=8@#m!_2OA-WH!n%qN-Msky&bQ~9JqW|OcH2i2)5$^K2S z+#dDhn_9{yjj~6oV4)=iW^Lxgjo+&IfAwy3Q_Og8a%$+KCCq8pHVg&k2*#cv0Etnh z+Zi*781hCHwpz=0@P6r?O+VzwY6}&NJDX-`jq=pl6`Xeo7CuG%L8_j)hAD&Lry7t# z8;7!6cBfmWq8sI@aj0s}upX~^>+E-jp9M2+ZEWmt*4(URKDWjZ;-A;)#jT#{qWEQp zzpfX5( zZPG|GLBW;QDU=gc%$K~liztrM51hI=CGMguacfjaux&+J*otJ!JP65_gXJewgP zPlUL?_CY~(GR={co6Fs+_IyW6{F$I6Q{FQ%0ucN$uex<#e`w@s3-o3X z1`6RCCCMsUuCexbU`(3EI@SEat0@s)B`vUQG`n1&f+$ zhBp}pGUrcPO)u44=+$%+#?|y@s7XyGqNGc2Oz#NytO*~fyJyV^$4fSTz&9=t#v3=< z{X0=lt0xB?>`5f}-Vcv6}06D`z`nvvsP5!0~9ODYi_?nxIC z(iE3VtkD|WYay)qwk5(r-mnV^Pf?N+$J(udk?`I+M%IF>7t)=5m2~y5KC7yP^bfDu z5Yjo9&#ciuFcMb0t5w3+J!uIcopa(?qkj-bNaq|QYr)lqZ{^VSeyV(eH=>J>zF|2{ zJJfxVHh5cTNcj1plP>2}+J3h0rY=JIAZ)b!fxt!!SvC>)@-^+6iE4tqEyPN&zAJ5g z7rSGq>a$H*IV>1K^J%N)W99C^M@T>7KCw4!TW`FA2qpbENc}iCw|;M~F#QO5+n9!O zz{am7W#w{Ls|1?y_x|xwNc^yhpy&Jf+rw3jLD0A{H}MAk%eVfGaPt&#Cv9>r_r8S2 zJpK@5LMljEEpxfArP`j)wyS;boX-xUkr_WMV;9Hhc@@WTDBEh{iJH|#{2j5)xzV!^ zt&wuSUOCuZnJ?Fp=GyGd7jxfFXng$tHOYmez7U zwY2%x=MpaPTCQ1B+oqME<=mu}W-q@(W89RRlk(WLVnn~~)s_j{wQ-c&v^U2JB^G33 zFmqB$YCcDaY?05Mmo%`+Gf`YqZgxr(gGGUiP`uN(d$UV~?CmIb#kDn7LbOUrW13UO zH0L(l+nh2-+8I@MyjQ!7@N^|L<*r(nRFTV#)T_ac)IM1n9jXM${H=Pr6JtqNfp9>QIafcbhgl?lJ)Ne8eUqD#xXStY`M_M|0*bV6Jzd6%9KjD&Q;F|zi1&sZX)AJ`5M z(hs~ALl|7z=U#x$tn+%Rgu6Ydn=tN7)jRX!z(`2*-Ts8NU{h)XE~hyhD^=1KEoDd& zQ#YnbLdp|1muBJ9PQ31~qvMl;*-_HsX;t!!H@}O9Ua9#YY{b|49O=44;XQ%Go_HeG zlK9EM7VN7>Rkh&@-j*IZ`IA7Rc~pj5Z=X}y3`NG>I2T&Hfu@4K>;;}r9sd?cX&vXM zb(~*sJ=UJ4ToYR|U@(Qr$Vg;c7i-I5i)n%|h^wTGG*ds|FO}C3(F4v=G%Y@8?jD*ql z*1V5s_V894s-a^S|U1xWBkpjZoG6T2Ql(Z3`9s%qyxAQjSQidZ{zL z`W{01g>{jTx?Nj(l`hljd#Qe+S9CsM+@fA@5q07>;|Qrfgv^d8xBhv<3bjPJzUNI^&*F4caNk^IkM%+5p=H6h)E!>2FxgVRbGB%Y<+Bqzd5{B{`Q_+v*upF6VNG z>P0difGyf0_k62EEkj%h+X%}R3ZEiPbw4s zwoV*tSGIct32*YGGT}Qtsp8lhe=-=8eK1Od&v{Ze-Jap?ED_RCiBGA<+E0~H);ZeV z>#gdh?bmryiIBECc}c^W>n$pOxHqUmm5eE#kP$Mb=xIV4<+?SgCcC~>t$oZ}T_#-O zhjxYVB2Ow4E>n_I%G$M_u|oKMPbw4M?@1NHhdilF_<2vN5I*inWx{WIQYFjNyVbw* zJzF4r2;9E_vk|Nb-&=03BRGF{blYR{le6L`)_5H2?vaF)?y+ArrmCyF}tga~xCa(TY%EZ-;j5|eTQ+*5Gcm3l{@{U1mr(XJO zQ2(+*nvu_~K1X%k5-dvU(j&i;f0O84NlErvpN2?i#GyBO2pK+MBM$EO5VEI)jX3mL zPtwd>ZkDP)+xJxJtcESMUZj1Q?^W56%#MFnTksFmCVPzZWVex?G}L|5ASoSbofHgG zQf5Z-%k=k~L!6R7X$dxV`ySu@sVTQ9$BRtW4Dqyn=@f@PrX`j%!iSXPhA?Yi3XFtL z)iF|XvZSWlynqrRWs9a#jkV7QM#8wJ#xFKd6CFWz5K^{is(MXd@tUfHaZQcic1~;R z&C=AHp{X}ZQ~F2Wkg|Ci&3L1a2p`{P=;MtULfo(?j5kh4Gv1iCB9esh#_0fMH}*cq z8}Hj^s>6Pqkd5)=yCa!otnWG6q1UuT$Ov1ex=SvtSsSZVFcKbF$4JRpCAIyR*H$9@ zo042=vsU!lN`y4TF|sy1FcQYiO81(WcY`+im~UJroOD3H#hNXoL?OTNa=Qs%Rg$xw zwPF4zTDu8H#tbOcSfg1PTO6^4ia+ZWm!DGjqd*eQ`hWS1mfdXmyl68 zV)rSYO#84NPnK2Euf3reQ+>{}u`3WmLiU5}mHOB;uI-uWuDzlqh6Lg7J*h$%&2rqL zqg-Qcrc%+C@ROcYA$+W^Eo-lP#xmgrvz-zwWQ5mxQkn2Qo>U>c-;>IO4|!6haSYs* zA!-R-hV#P6@-J3y>h@EXc@-%xRs2epJ*ggcew%wp|J zfsyd3I!4z1H82u>zm73!iqvV&Exz$GLN-1q_gb^O(4I=zxID_CFL-aAkd9b6ZE|o` zU0?A!mlM(#&r8Dh0xw~meIhq*PZB?^$H@_k-4%qLaEy{%*jbwz7zvNBV`S~*z({yT z9b?iIsneXiZ(JgbH%fM>dpF&*H$H@A&!wX+5(A$akH{Bps`uKS!VTSnAMwQR&OnBR&SPB`_3(z z_lgGLuyY&*BbIQMCshdFpd^V;xyIUQp0P~0*pn)ROX}LPcDZLP6JFy<6~bFQsZ4mA zC+VC;kFv|OpC$S^+e_*uq-QQYSv$oumI%-Bq;5ib=GwBh+B232=^PFagzpSogu&15 zq-Sn#HB8&k9c-EQVemq);ef@JDUO|s93c$iGJAn787|mH7+R(b5kJ|IiVj>SqqJ2$ zeaw4YCj63;TpF|Xt-wh5!#YORejXSJU#erI30Y;@tWuU)r5eq8!fPuL(h!$oti2c* z3FBsE&z?J1IU~QNCE`r@jFMcGvV39VulU9#!g%Af<|f>{{fstxN=vyvO-vIqxBtPC zr!RH*uUf)*!sg4|C1*TqrzuskNnyE;k+t5yNVv3)F⋙cn#J4OB+_A38TH_65-64 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�XX*=95r~G_7kjSixlj03 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

r)sK(cFU*NLU=mm%JRwc@ZQ&& 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

RD^! zT=EON>M`o7O>)V_K=l~arBg211gIXP(6gLFdpgtekm|V%uZw``G44I=cZAdUJfwR1 zZ<-aJ(uUW@`;r{ZL23#<3Gv&2&hJ**4iwWv;wNps9u;o zfwq-VXq!ivFPIcDds?*}hS!0>v>Epr_DjNPTRpAXdTyRex`Vv@(?QkqwCXtv?o^<9 zj5>UaTv7#8k5PMUNohd!7=@lZdN$&Gwe$Wt)w6ZCT+$Jk9^;+!{uX!D}68mqUFY{h6zc<%U&`)nSj5`N=hHyITHSP=S zRUn_|;$#7RSp$0Dc1#jLeli)_z%Oe+FN3=PXagHHqE9Z_7ifnws@?XvWG$cn`yUozCsPBV#$Rh@0Q-*f#=+xH0SPluOnD7IEW- zVGj{bBW~Qo*mr~8`*o2z_;$H%Jo;~F^gH+GGz9sCYqLiG4UK*^+`&MjZ`4f88A{Q; zjk+H5TA-(wQPk0MHJ6B8M-MH_uKNU`+ZruGl=aOZ>qHbKjU62PP z>c(7ywGdd;jr$z?pTcQBH*VKmv4KS0nBQTYFRX;ZxsJQ#k_~`G-TcnOo&_Z8UOv{x z;-&rEIJqn73M}fz{T};bkgwPv`uX2A(mz3dFBz3&Xr%wHk?ub*m-GS}X`?nCluOzI z?dL}Qg!vWFNE;=QE@vh_^kj?ldm8Dxch4nv0*kb9?_<9%oJQKX>-L~81BZ{@ zpIkBrXrzsL5A$uHkv57*=jTbQF^a6xDDS^7BN4DD8#fbsvTzz@iu#6BBHl#Tfk z>r?U4{%qW~2QWDW7G>kEz`hjZYYD(k?d7ytrBTkWhR_S(DvhpQ03*o=5lJq9mK2E% zS14FW=*VT!J}WA0n=X2BZmdsq)bIU_sO0QHhOSR^)UW-FJ202D0J=WWQNQ(5S;YkR zVDXY-^-DjiN9TBzocX7`>d`U2^RvTjDoQ)WSAO(Wk52K8AAQxMQ+(k^U-jseecwl4 z_2`s+-N#<_*fjgLPhb7Xm(Kc&FCE8lIstk8ql>Ot48|HD4EJ(fbj{*MtltSk#JcF3 z#q6=UT7$6Pxq(Rb5|`^#w3p#`T?$OSS{1tFP+16#HC|ucZ*x)mL@3I+mh=>N0AF zz3OyB!IoD)*c2YgPC+3nK!1Ne*3iedtw5#u=dj5+26v$7e z5Y@Aj>e*uw%?VVGQFmi5Q;Ikl)nzg>SfF~0LQice_rj+~e0EVi^YOYEm>%Qa!hTse z)w7H0Ir+p~ay-b({|r+-yQrRj!~GMe9;0@fMtFh7$EYVy$|Vl~)ngQTRuk$+Gd%-T z&%jf1$u7Y37&iy|Ea6no0M+v@_NyR2pv?6QP(8y=%_Ro_)nnAjnA4OZK1N-I`3InS zj6%;my5z_i5ud@T=SjRC1*XTi4W~030;XrM>RE<;Gsw@Qzi500tDaxregLY+s4Grm zDhxC}Ms0O^F4+udzc%U-%!dHF#?o$IXS#-{u78sC9xz?T?J$E;7?`dhs_O#mbA<0! zBBw1s5oa6II7BtRP5vuDH5zrx84O`SH5xU2W-d7qXv~a4TV*RAgP##G+fTI(o<$!8 zrp>rNV9ys$+i*YC)@yby*&5^*Q;5cFKh-l6?lho!jQSk&W2IiKhW{J^ir z$Ea23at{Dhk5TAZ!J*xe=^3tic0Z4C5ttt1&c;4nIE~M6)wA(jW{IG88Slx-XII-; ztcI($qsTuJs5YZ6#5`XqVrA5F%sYT;GYW0X8CnLtws-J)1(-JD4m_XRC1BdB zRNGSQ>p(t<@v=(wd=K{(P(4P?yMVhYpnb`xt`~9(0JOgwbuZ@K09|>Cd_U7QT6KL$ z)?2`I88`YO=5fGujaFUDux|#vt6E#I>h<^0sxi5ka}pobXw+Y!o&l=SsB11^#RO=~ zd`HFzik&h$Vs@Bnn{+9&LSWjATZR3;aN3@SskWUM8~T8}{4ZDS?}w?L^We?~s>i7B zFuzucHZ*Gdd}g;m^%zC0D$tWVGxUtJHpJ@{V0w%@@G{yEn4WRghS=AE{8$Q6J>yi* zf8o9Ys>i7N7vz%LfyT$ESAI{(fa)e=~<9Ixz#9^<~i{zN#9&ylKU z(864@Gw8j7M}YF#!#1YvNY!>R`4td9VjQyW)tWiDwCY))-l4fYj4=G4YCyNc&A;?)h^&JBkf3T#eo zewSfi1Y}Na%*R;oh?g9&b7wDNL;yCYHowoYKLRqRHfF@tTvSjoP^;m+Szv6BzX>=3kUz>S)wa ziy4sspPnlybIv&y@ktu-i^;hVSj3Hc6nnXFdKY8df@^chCBPzX+_%`D0g1RVqpo9x z5m>~HyBYg>;q)%XxF4~<1rl*%hF#A(Ik1Qu_bK)V!s)%DaR=SNdOVPb8}l&M{lFq_ z+<&mY5>6v-+z~hClF^`d4buwwd}|wz{v?h5b2vN&@(I^?js7H!ev2h^C3ua#QIA61 z12pc&*x!m~(VQ8#W0_I1K()Qww(y%I>&joIZ^=I_9wZrmH#e-%!nZrs4zI4B@d zH|8d+>w!hxxR0>k5l*9S+yS@elD$B_qGj~+X&UK!A@7uoN-{Lk(=^gw!hH%f(ncM9 zM=m)6Xrzt$2j<&ABW;vKx{}H8sPin+(>2luETg{wi?ngGv8M>9kv6VsIpZ;~NE`PS z_RBybZOni>bIDG?B5mBI*yjtUkv486_FF(AZA{<0m|Fphv~e$CKPQ|<+PMCAGg$`` zX=AR%x*Axdjr#}o8^UR%jT>@LE*S{&vk8KYDAP64%OG!+jOB5wFx?^z_Yu%Y8@1kj zERO(Uod`4!S?jN3Cc%EKQZdcdM=+}YSC38zsuZsddb0gJM64`AN| zB+ABoi}i(g>9}p&?hkPv0xZhLU50%LkSH7TD%P{&C8xG?$30B%0TyNRdkyMKWYPo=dC)BZ+41l9IBWTK8|g zqngc2(_LFjj!`KdExO^c3DcA^*@vIlTQ4nX)4DYd&30@p4z1Rtto3LvqT!OqC`3wDmGwCqE5W(xzDHda9H&Y<;gW z+k1lz(k(k!o$Z=w05(iM7Xpf|tZEWTjVe*Pf*wy+F2lr2dnZPVWm>d*^|e@k9hKn~CD=J~rp z?ZtVkD3CAl_DD4VevlQ~WZM*~=2w3Ted>jwN1;$Znx3uGgEo{}@{-_9sKTS;+XJmR zly$i`+0IL)jkfGiuhc$Xy|%fRx_v#4Big|a(VQUqdOd}E^>clN+>V8Qtc(`AaK82+ z&Y2p1$Gut7YdwkJE*;4jo<1o!hk^HirW1WVEsZiA_lQ1ljA%$;yMlyt; zYTm3cLWigtmZ|z8Q#Cr0g{p?tG}IDIXo_0Xq$-k8Cju5WDxj(n0ac9&sA^O|RQ+<+ zNY#-H^;G>WD-Ok<4LyLNl$ltgHOPK#+;{UV=#`O--RT{XjAQ2801@gpvfx%0>!@#6 zK5O>1zNOem?wK9ph)C}5l=ZK$#??7SazZ`Fux4hC!y|caMvbU1EUXZCV{_!5DbfC_j@zVk&LL=zLx#}@85`dM3oaGk`Yo7 zTU8U*pR#CHMKa=Nj$z%Eg{~@+5iD~ID}qDSk-Wu2XO3YFzb^t>70E;IH_9BtTHq`t zM)K!+j$zGuAS*GF-#TR_hSl%E%rTO;J7tbxyro`SjRbwVp6zi^{K4tNRD;N z+B&RBb&ip|sGeh3HFb`We59UZSkKfsM)H$-j$!Thbfz(qhdX5&!<_ zKvC3!uwv-LF_JOJnPXTn&fyrz z805?`tfkqIR~^Y1PT*#QB{$Q^VRkZ>(I=xI+7DJ zsw$GFIA!~W6=yF3*L;G`@R{EA*^KYNIBVhzNRtC^^SM=p&k8o;CD#RM*{>U&oOD|2 zS3Vo9b>{5Zvpbb-xp__a#Cfq{1K%l$I>z}B-JN>kB9&%+;J`?3@6?*A{y#m`5e*M@ zg#7z3`NUyRA3q@Un-8_fx5+~t(eO}5G;*j##nnaGL^k!eVXGe0@K6uBr|3{OPUhDp zzx7z#H*{|DU=M0|um=?%>>4X?>Nw?!_5bb@k=i!9y%`zFxcIb8=09s;$*w$c7sFCd z#C2|VjTsrqm~SKUy_-#dM@I4|rwY7d z{2!dnf=5O&X2S*Eaa|agO@&8BGOiB=-f?kwD!Vw0jAYD<3%uhB@kBP)9U0exx3XF7 z$ShfF4PH<{bfpeHkEK;2Il!p`@1Q=e^NwU(Mhd)x+AX`-jEv;IP8E2MajI7~B_0{c z)14~tj>}F=hS43#IesN7@Q!Owzifs&GLm~cRp1?$rRL9AxF|c4aeXQ94r)l9cO>JA zQs5m_-9=_(<0oORak?J+JHPPs%}&5kaihCDo8OI!v#jo#G%8M|I1~7VxHtp$&L&Qy z8cvZ$#bjvTtS^s>4m&&Ru%n_^F3x)8sOXiOWj$w9bf(%m>UB?kTSrAF+C1w-qoSwm zmQ6WEMFam@M@1`6$=ZBW+|gWDN5#F%TiJcVsJK;#83w_LHjdVVis^q{LyoG~He#gw z`j%hyvu!dxIX&5=ChWGJ-vYK`deWt)xDe?F@B76jCeiI!mTKO${en{2lr`_#Rxdmo z*Tl&j*ZZdYitA9jq(nFW_PRnCll-W52iFP}$;D2U@Ux{gVZ`hOzm00GuDoxdA{ioe zSMzG@Z*Q+*ci)!r70UseGpDEtX0I&gbk7OqWY1}Zx&@`SS8!)}Uc)(&U5ZbqEy5=b ztOsv5YN$_(shjy0Pw0$o*p_K_fQ=nhzb22$a^k4w)H^E63+{JyM^!ZaF-_9L!Y7)k zdondCKA=W-Zg@aCNYTrA^5qprqco?P8f&EH^mE~h52j3;NOIy(&i4`1m7uyNj5x?<9OT}cXB}~0SIiQ0B;#OO=;7g; z^?*nay&-<3j%^FZ2p&UiQWHeAJCq6CQyO5voT&sY#B(3ozfPO8QVtg;BqY^ zGq$u=aY;53hQlPUx*2B)Ef{7TUW;T(vY?cVAmR|oVAN@%%^&oGj&0WFK|J?A+gwz} zEH^IXO|@m*L`11g`4vY(ZEf?@d>(yaHlH3Il`g5HBKfsb+U8-z6oUr7#g8uZG}h*s zmg~H*dwpAX2?*xFEax=81O)S}=d{wsuuDL2uX>ma7Cu@L{%7efkL`i%O5tI+PFd;pL6oJSYeFM#riB3 z8`Tu6E7SPN_#E0^$h66bzHv?1^|Z-Qd{X1u>?AAJV0JJP03ovbU@TK8zm&pS{3jhE!<9t>I70C%sl_V$6 zs0pKPj^E&>k6r86>6Uh2OTX!d`iXB@(vD;oudOVZ>1S9lv2D&ccq*6Vu>1HP9gSbt z*1F1mZMVLqw(Z7$Q&_Ji-1@tFuc&~N&K#%fk{3lcRYdGMFe~EZoK6CMdl9i~1b5G* z@gkhfW*4TdNo7%7G!MmQBTC`HIs03SZP1S1hFf_6V%t19F_BqP*h8}>QNF2ohFhrb zm7L5K&PJI+)fC-S5wU9=I7MUw)o(1K_#ka8i!S>2tczAg@`H>zG?H=P&FNG!b`_Ut zV^EYC{iqqd!DTnZCn%f`X2Z;$@FY?x8}RD z#uVCc)0jfbX@ghL`375|TuOXu1swM(CBy$WAnyv(M5yF^X=g zh@z0$6XtpcbVGJPBP02?Q*yV$O-4=Fv2D(6<;fgQ*gs~6qkL0Z!mZ$Nva_=Aa45Q| zB8m@3#`0*HRj#5Ls=2^~8MU=wO0tFv%#J>X*tu>lv9Bkq>ZnM@M3gCZ!*f7H#Y3_v zqp7|fGt@X2n(`|?aIZ;N)WfNHG8aYn+i@8bFLp?Q+`%j z;ols_fnIvZW+6MoM!`_iz3h0uv61C&EBG=muEw`@SK(l;&vN1_9L&p}!{agf>YAqe zjn!h;#Kvl|oT%mfdbLiez6Pl zrdkurgfo(HNIcb9(@D-Dah0Fs57cL557rNfWW2SVCWppLil5hcMKT`4YhRA%)UmBc z#*^ztI=Do5M=yJVZ=344(dnN0KknchadN1a9NaqsqPR>6fa>mcRu(TSKlM_h(a6rf(bok$!VSwOsFx1wpVbEWD4!hBkTf&3`oD_ zc~G&!7;B65#q*$Ib#-HHXnP>jX3vAduBYvP-gy-3^1--RmYRk&(H&sMoWHhbk@Mm6sY~}fu+*M_^S18Z7 z)^JPI+}#TF*(rKPJl`^XYbc^vAAKYjp}si_^{_~00tt1aYoC-CyMOPyH^Y~^m@q?Z z_Q<1HLfA5c-{L8=w(~8gL?pM*s6*pD%j%3eB$Bc0r6)w39kH!P#!Gip5ei~kLLx3G z?Y)ksPKYSx-v8qhM^4YRy!4RGwJO9$!B97Q*>&#+HgZLaZ*#-~VVWEk#}nJ;dK0ae zmL%S*jNN4UM_v@_Q1gs`Def=6Z6n{|;rs0iN;lzc!wxmUf9(14u&G*ePWJ_)vwUlN zF3R={J|x!dIrUGb@mAl~sR`||ZQ+T~f3vG-k(|NFjl3Y@zJL`Nuq>FuvUnJvb)vus@OKL6Sy{ITs z{s*R0aTHKj6on6}xHzVhNfZ`)Qtu73iuYBrc<)^E=1{SJY?=8+vY^O?v#x0%r@?Dc zX-P_ff;h6+$`@#cHRyyb85gw=c4^T6_$G95$5U_Vcf5D$eK7>$U3_pQdT@2&iDTjy zZfYWZa$S=ynl-bi1qj)q1_#~P4<3~2N-aO%=LJmht@uVd3NJ}o{#p}8sHdiRzp17i zy(c0XTb_k9>^oJ((P*a8D9JR2R?!&gOY5Sscvci&pmA{{8uJYv=``19lx8(uSP+d! zN8uWcFbZl~&`3><|IkDn`o~_2EH5?a8;ve6wQ#rgzO7p=4Q5Zz`Ckt^8!O3XBp9Gx#g3KAVi6}juA!_=PQ$8c6F6pn<5#)*YMafzQ_~b zE8zaVLFX&DLal$N<;HIEC_pbWHJ-7=w|1GCn_Xstf7J8qE;GCNlf1#cwLKSPdj=m0 z>-LN#w)mn!(-$ZiDET?2BJriH;dZErLy7VWFF?gL*d7*w`hVk#QRjFa%%h9HXVcWw zI@#6tsoQr{u_&HKZsP-Z94%CR2{v@6S#g6iDPtlT$Ebs2!vY&zpkzA4orD(@rErOf zWI=)RX7z8Nu;C>p>r2xb9Q5eoKBQL+=|Wv2_B4Wpo@xxc9kB{pmeqA^K|CTI#cMpmxX2xuNJX-s z`imN=zVVAroLhB$>5!FPbd=Y~{YTR5KkgLUM%Eb97Lgg-Mi#nch>z?NAM~1Wlga&A zm_40d!&9dCYGHgmtC4}b@YW(8Va9HCW99w+IPg*57LVM)zwY^U<8P&ZBkW+`7LVM) zhs3%)<9lH7T&qrvcEo}|acdF!Z*~>gtw0cQU*5HS9NdTdK6U$!D%QnF{&R!kni$-pxKWvuF_DbJ)WN-BflUnV4GXMnq`-Nz zT0d^#s5{^_4DNG_4%+S?ihEkY_+H$}7_p0cSHbvR+_Ba$z84>!jPG%L$GJ)!->14! z5XA)z4th=Fd(?Ea7bL!sj>2_33!|W>xxc9<8Q+T|%V6HHJ2kw2(6%c{LSsZgG)DTY zx@at%71b1IT-b=lHI464*UW-=L^_Jsc!aUU9U0#vSy25&ja1+G_#W|y0gIc8ue|6e zuaO5$*~w1gTX%2f16$oo@fnll#J3g8oLMK!iPtxRY416OHzdJr=6SYEzj0021Dxlp zD%q-MlaD6+;Y4HV?WUzM^_J6^ddq2Cz2$}aicGzIjV0^?_5b^^1-CuY!Hd<$tKG%g z%N9R| z5Z?`Jq^0oZys{)z|i zjqK~6hedKT*TfZM?yO;c4L``YjAN0EqgB5K^)zp;^?dE+$Ckz7NJc#rS$t?rRmXUR zQ43zhb;wF%6c#~2%x$xZ_f@iZZ(C`M{bS4gHsvs$}RaL_k2IOsLa z6r$8$y}`vd(owix8N(>3Y2k0GNmd#oqOoPB(6H|`oGJK9V`z-6XpHnGb=bNY-&=VPYWM&=jVJ& z=a1wsPSrj73?{a6tvZQEi(zlz!)8b0n|f{;ZacYqub2d6-y`E0BR?xe(M=Umd?u$t z)H|RTvjZ9y$>v^Pa~>MX3!9mp@h2wJIGo_O%nnESrnH1x!Qt4fpy+TYx~U?H4@bt$ zXqoj~g+J;HGiqDI1vP$mr+c;v-Czw=E=C%=B&Lu{efCgy0ShLIYbnp*?D5?P?!3yk zt^M)biSlqP$d9uUq?pZG@ySN2WCoX#e7gQX6;l;98K~`R| z0I^T=N+0(vm!^mOS`bIj*ushyHLtkNb)a!!BpV%`Y!Fp2!JQ-11Fao$3xKq{+1@(s7Vn^^0XTdJ)pI zKbIZl)vj24BYmB7I_!o~SI@BDQjbJ3mlVf?i%>M{X4%uLPrqdj~Le^&p&GWWgGwp@uKdGMm3 z#zgXQr=)KUuLo;usf#U8<`~w)&f*x!jSEhLs+zE_$j+ClNX8jrC5AQNI;)2gBl!oX%rUG#*EvRV zgX;@5hPAJ=lo-iYHxxRCb)mC3MsoWb3mwC{(ODcL`DH!FuufQ#9ZV#<7M%Q5HDL|Q zMv1CO#<*Zd9oA2Ej*;xVv`}MMKRJuWNX7tSC5H9=Et$qh9(HSCiDBL1EG0&A;%$YF zVcqL2j*;wAFhEt+gf%)F$*Lkbzn)`QOX?gW`9wX(uwJiojAV?4cGO}0Qs)@S&UX|Z zOjw6G%fUqQ%6g7rEva*iN$pWd7Wb<->c^s z))#e-kt`f2tNgULIQ-xL+i(c1Zfppw&W6A=yG~R`vTz8j&W6DCvmvlLl5rK`31cK< z9F(q5T@zMZGWg;|Bx4*j$FO23#4(aF4w_?FF%;q$$ruOCF|4byQL#FbF%FtzSTPh* zVkBc6G{>-F(8Dp3F}#^$STVxk7|9sk%rUIfvcax8k}PW_5WR79Y&W5JyNXB4fj$y@kMAeau!N?rLdORDNsv{YLkvWDHBM&7;^2~y>xw?eatOleDu?d+ukNmIb-&&HyfZ;}|M`3}U0q#WRb5YaRd+xA z^xIGLR90!VO1sP}?J{q((k|hKM{91gT{6PHcFAZnyWk53TJr#-sTP!`npZJZCLwAw zm8nWY%`Xi#f6L5Ja#Oe7Uwwt%AlcM|HXO_w>wW+mfvl^593Xq+c{q|FP)d6IjY zmmddwwW3lv;4ZOw!1#3v?qU&t{4fQNk0>Sq9gE`QJcoU3K0l8A+4GQAGoxN?k$IfC zGqG5xm?iVzDld-RyMg1?N0Nr?CbsR8KSj&?UTNKGy+p~_XWG2gksGZ$$#vG0;1izi zHniNe*Dguua&K62s`aXH*O~k{v+9A`vbl!93$;j4fa?_HFE%BEhZ4GL^?BcHU11E6 zfbXkTHENx&+%MNOe%T7<3M=9G2$&nSB)#c0m*QRiKutYHS5o9{@Ol3r{&8(6BS=VF zZdBCQG!+!!78)k}1@>f!AwsvWHW^K7mI?Cw->;~I?`Y~?=7le1!Q5db94Z6zA6CNG zwP1dwCFvFT;Qmv~I8;WSw#fJHcHMoSLuD=Zucm$Q4mIsVNlp7ug7){RhC%yK2JR19 z#yw%=c>){B+v$d@hX*S6Mzdl1o8d2?{^B)=QOx zOW`~j`NZ7e?)rx7rrj_)Px}<94I>c5!scP*8vlEpHZc(|2ML`PekDa{O!n6gqhX!i zv+X1v2tl`Mk)Qy-sVMKy$izw9*a_NXG^zQspoQ2c{5wQh9%<4>07nfq3V4yCB;bTI zlwB~SE=0L|bje?$HD(8V(`f|ARw{XUJ|isp`rM;SRg85gI@+0tz(O^*pA-w&#&Z&| z!`#BwMtb;YUfBlhblGN|K~F@ue(V16R2JJKSO9p8p+*2#DJq=HbjM70RTg3^mJG4WS`dm{$)gG&?AB)^7uIp@}~ledda29pH=?6i<24EJ&GE#7jPqhGZp18O(wHRM6T$P zVcS9YZJ?Gw!OEm+xcuQnjN1&x;`=Q|Ch6?p~48>W(? zVrM};pbADs$50flBsOfUyVToiS`8N)Yr_uEG=3eNiyj!L(T15wPCGc5)3Ub7DTjv8 z91ZF#7^%mr?@!uJ$I*anehjtFF0Tdj4n^wkuJzzkTALC!?3$L@ykq>HZZ(vgDB%e= zamvjR@<*tqG)vwJ{9Hx-)^<1AfXHx5YPz8WqOgJibBdL)f&p`$m9Vb?<}xi|l|mjZWt9@7$dssYmEt37O}{XbYx;$f zntq`K{oZE!ogoW>SzYqzx2fniog2Aw?YQMI*Nufpt{J`ty)H1l!hKxiQ@uibuURcT zRL+YWWfAOXw!i-pQGjfNH~OQwS_d9wUma7g&D+J2!g^Z<9HzXZs%^xempGJDmH!Hh z4sAe0_Higqq|VXKQgIiW8I}NEqbOOx>v{qVse6QzGDjo-DXrmVu7Yoxqe1prCEo)9 zwisC9Uqtp{LDff<#i0!>RCAm72gZ$>WzQl^{4+~kq9Vn00)A0ZZmYvzTh|3cIxI7J z_oFi8*J+K}0pDaP$nI2fu~ZO{HK@-7ovMkYvSmWBNuBYuE#<>>W~s}}Qe%L(rk3*a zelVnN-tX?6@7o9=omuKO5*GO>W7Xrf7B3P-OVrm zqx1hK*?Xe}oF7?cs6~Lh4fGeN;oL}jkeuME9KIit#_`_bVHICm00uW{D@ux*ja=9N zrSha5vPTMt{<7XvTzSG_oiM80Im=x>K}yb3%BHzJ z4`hbEYAiYBR&x1)))~r|M#%$xRG%?T5)@!;&}hMK#!bqKv^wplkW>a^&S`K%3P~Fe zD!JkL5q&GmnNN9moUxi^)8|EiytwtxiRO^@AbELPd3bJk@{)e7iZ2ZggVWaIk+^QL zN;#scmgjkO=bCgP2)=rFh8{tmIz?((~|W2cyNEvvM>^7b;)n3 zhPUtI`z;c@nl%lBAE;>Aw=o2fTX@_llf=cU|PiSljBq&sR~FB z_fOS9xqxS_az)X~ zojhJyoe$ovOdl{SEdhLzT4}@9Il9IGL&_S1{L{3?6l)B~W-0j|2(UFq_{qaQYYeI` zQWl3cuu#oyJ~+j1DTc=w|2ng?8pBc#nWe@6w~v<6H3k?`X3peaV3z7TbB1i+XsK+C z5gOFz>szWOmde%`fyFsh#?ziT`w*Y?so$BUMggCjTFS36z>vBtn%#GalA5m=g^~R7UBcU@$|!St}{x5CL)>;1K1Asxp~EL0GyemwKpp1gxB2wK(0* z=47QU>D6MKj-#53`QfwYW%_y0IhuxRLgKB(;NPv~?hQ}4wRm&g+RhyB!2(v`9XWzN(Yg^~k(-xE+N0q%tW7 zOjxe&Y*eT-k~4JbIHg*xd07kHHw>fQyj%JEK3uPw+s%8Fd{LcuB~KmhAU0EtWwgfH4q_4=*H(0_e4g#CF~h8Jcw!A;n0srGNhGbRNUDFJ zP1A8ia`n!qv*%d3x;^yUe^$bqG<9?E@KyxOm#l;(510qFWMkPDUe)gxng(i8!UCiw zC6v^qgtDM}{OjisgSiyEZ1`TTuUB{@IN5qIj> zj+FcQk89&%-O*fI2~4Y1xyY^>t6)Yu#qqA~4iEj&8!gGr#uyPt%fyx)21aOqXv<@y9F8bay<74RmiqL^lN=c$@WTD-bwalb$X z*O|)5(E`KVyJj+pq?OZ>cz%chFB7-EEa+h-Iv5R4ZBa{8Pb5&gAR_uMYX1q^{NUOW3 z6p~ivqJtY!NLt-R%|F7e#M5+9!8={5MOS*IeyX!p)7-Ix|Fo7z_dHj>=y{H&p=NaK z;Q0b5*5q3qUMEFu@+Z%t0{zcdEzGfkpkayo28I08edih&zgz*A-$8|5sHr@)qjlO% z3n~vXaC%WucRbfioctRLcH_AsVGa+wgH4rDK$__tb;+>s{C1&m;9FIJoQZaly6*W8iqwkO~X)vhQIC6FqDCN+%ycYHpnL$ z%3@@Sqgj62G}n;#y}5oYdvfjKYZr9;o#_^CL?+*(o9=Jck7wmKa8x$o(sj`N?+-nK zYB54}barx~rg_u@zgEj*)H{A{;Q1y^L(O>0FZktJ9&0jxXDcjf6FA1dVIh=jZ_$nB zAR-Nkxe%)qxf|qOq_$>g3ukI73l6|hMTv{JwDTpM_J2iFp#!8rp3b-fcqz|PR?kLnLqov*1OUp<@ zwCrfR=}$@g14S2;_;>u;py-=4_0-|cUQj4liuFq3Ojusf^J`|8iB&{yYTaz>>y$6euN)#;nPUEf|I+8jmz%N(5rQuh1V4vuC zbwx)k7@m~-%en@xhbGnlhPk%}nMBf>iljZ1Pn6^!njX8&*jJPgeocoFcpIkV4{9pi zA8_{CAWVF>zF`GJ>b$+X=9c_!TEo3z?Q=&hWP2&OeHCUeLc^`SeOOR+fwHi#!ZH>y z0*4Qq0^`P)Y@xyNuguT~?^etF(k#>lq}?I9xi7S0)d2Y!xi>Xz?l(50fIF@Y#GZ`{ zd0jB1F5I3bh9>{wwJrb8eSRnSrgw&rVI}*dDYH@^7C}z>mwP;TDI|Bz;7Hw} z^SmE4gwFwM0WERC6FAyqN#3ej?3&@7z@V`_NgL;AflpVQj|*g?oJG@-;|!l0PGV&F z{3r59#@-(dBy}1B|AT2LlR(6vp#;uLJEe}zF%qtw#1_CX_qHH|B-uVI<*-@%a;Ga+2mzmTR!T_j zn~D`ez^zuKgye2itPld;Fc~!j{-)v_KLux>oAM)fxnhM7@L$hM3CV4Ie!vPL;Ou`$ z3CS&0tPleJM-L&nXTH@q0{-&_DMxaLU1)@WzrQG;+*1Mm%-f6%aQWLK8SrI_6a4`1 zxipZ4hevMoa^nZM_8lo9xnHd`LcoPrq=e*7RIG>wy!V|cA-O}}WgG$TS(Or!d*!>0 z5b!PUNeRh)U$G(@@D=Y(3CS%`tPldO=piI`LnH+JQ4b-xe_U-k0{%=|3yT5q1c8v;wdNNV1L6q+ zA-U_#FDwScKgfa{5cd%3lKUTX7K;IK4}p-}2hQb5E(XLs1VVCn2r&d8?m;=KM;J06 zuo!R$LyZFB2tr+QN10n#3^?CV3jpyBp)R@OFSeEd&QkXg2+94cIhDnLIFdj}?z84r z76al)0wK8{UuL2K?>5v3;2#tf>XO3`iCqD4LV=Ln_su0O2E+*kLUQjhm$VoVClmn+Jjwyx^ z0^&ykAvyep5CY;f0wFp4h7bbcGy);HHRsa%#{qE~fsouEbQU5U0aF(;(ItnI5JEsa zMBqqn%$&nGAWlO1Dj*&r)Fp?L5Fvngh(JgVCn1D@c!)qq4ksamfOv>NNbYf+oCqP{ zvl8bp(IvOD%~!?&aR-4TIR?6L1Z0#4LUOOPF+UE-C|4bIQo=wNj)08vKuC^}DTIKd zI&K3Yxj1yk|F(m)kRj-FYukWaX4C&RAVV+^l4BGKM?i*PASA~q6hc6T zU?3#NC=^0KhF~Bh$0!s+K!#u-Bu5|@LO_OKAS6d17eYXWpmNlhexxk`+JFqfKuC@u zCmaD8Z-I~;Lrw?*8E=7*979eB0U1VtklfxDaod0|G}H*-Xfn>)U2;d*IBNqkvVstD z*IE#612VD#A-NrGoV5Ydan|mVV{l3P02x_{+o z{M8ZcH1NwhO7Mg4q&3nZIcJ9DhxMYnap=>KD`u>zT@f0yuo_hQoxH8<>|=W z66pXF6WpfK@+PPGviVCY&A-{2KW}-cElUT$r1>{bw#(+sE* zK&;^Da=+`5xsMH$>PMN?cx3K7JrY03M8YF+b(q^D$>i18NuJWh zo%(ZdKaV!ue~fh=kPQF)@d%2C!;=scAYD^7gLyQ+u%|E|kf$K~`gUnH592lG24#h5 z{wM@Rm^;n_+kE!0cs4=>$P*H601vX6=X@U3OKbr;pWyXLTWZb+WU?qf#sJ7O7KuFJ z*VsUs4~XkX8w>7!3rq7^1@i2LDIg)oZN_JvL8#~o1Q$WEfpn|R=LGdL1?ez?DmsO1 zu6Na&kh%|p&uMMjCC|=>`+deaXUbcEoQdmeXDSosPn)$)lgqYOY~eqto7JV4vy#q= zbB;bQU(&gMtCTZpNK8P;pU(Ca^4?=9;0C%8Gt}y==#pXjCUoD`hxM>Mw55RP=BozA z@vnS4qrwi+bko)q4^OU|A%W3-926;gp_NK~v!)x#dq)X$t_rBHX_35H0;DwuwN|)$ z&E=@kHdovm?$g{cypCP5qqpo{JIE)Z!*e}sw=KF;Q#Ofcl*oVFD1vU)pjHd&M00bnfmkf}BH}(g;Be zyrL00Vt~JnXKn=d@${2*2$AA9$g?o+>o>lk`wXmUGRJ_Ag;!QwsO1peZ~RjEvUwpc z91;I*uTmBQK3PM{Q0uG}T{6TSsXCxdMGZk!L=TQA=Sxh&DBzWfn%i2jrTflvn@RWa zlMd!iEA85)FPSl8gAG*Psmcd_a_R(-)ZGT5gCEoPUC(1H^nggxjnKN4$`(0`bKMljCq!I_* zxKl?5md>+%TH0izT)G=wZ_zGC%IG4`bfR%|1wX~SnAecm00PbIY;*Vi)cs6`MQ*07 z$jcZMsyl=qfvmll07~#h%4Rxk6%^pc=LSwb_>y6MD0KM>O;Dji{`U>a`)o})V@&@2 zir>u-#4}slT+tgCPVep8F1q`xA*qLMyZidivrd;ouBppkq1s$++AjAOL6T3Txru<6 z)*Ba2>($pyEvi>pI%)r+Qf@bC;RG>xr2Sn8#a^29ZFjIrM}937`<`EyDgF4<+K)-; z$K;tAHumE|r+Mpzx+vs5e%1{^vnDC~G5r^L83QjQ|Ks~HEAZoOS-J!%51$!o$Wj}y zrL)zc*5ryVnYco-r8a6v)m*C2i{-+g~ALX5?dYwyUmC>aR zsdKPrNjD;Yf%0@mSq0zJjUao6l8;Yc1wY~Fd1`&+z(09z;z_5~)KZRHjZLfSU-jJN z2&fzV&r-|msj2Kb1HM2}&+?AiY1F$ql(FS|VHd*XT0vaJwxJ2V6_)ixkuKzf|HA;b3KDyAVl#FNxj^bt{Xd@0fWVAFp}a%*ptF~<a?yh=_{VzlrbBe}bcl-8QcYaBIptaZgC3E%(2h#X9&rsA~w+V8ja)Fy{fdG;wTOgn=(OOe)fk3%N zYlMz1TOir=dVO|5;B}w!Jj4$czYFqLaLu1)*tNhuC#x*kwYYl{Gmwfukio#N1=v4m z71_0jrA^U2mmcyT(t~&(u>*PYcxUn>J4$mjAp3jOYyXE-0`FcpFP!yh(1Da zyf<*n7=UK%lnm-kU0pPFDLT+Dao5MF(6?yXxO1_qn&&W0*|{KpjN)J5R~~NXqIV8= zdd1C#rHA_pnA+=&cwbyRz`(4SAu6h|q~6HN24i$Ok-X(2-1oh17TwGa`e-}Nt; zTdlKI*4s^H*vlZF$TaugyF8ZP-YddVpS=v<@F(f%*r(Vj*(JPqyyk*n8aZ19$P36u zXWnYvuTwXU;AdSEG(yU*$&pM>lw=HQk4xs5MKcy70iESc9!EQ0w3?RH&vDvbMXU8D zW&Cxs&nVy{iVC|Grx)%t+pU0{l-&yQ|D)`t*sXwUNS{vFt(Z!Bxnl3LTLJ6WsEDvz zvHl|5c$})%bk~*W@_N~ z(NVy+DJtE_=^co*S$e)>(r+W@0F`j8>17)^px$75jR2xox{=fS&UVEU-N+ei(Zeuv zpN$;%BRl7w8y+|x>q;N}fTBLBCr)Jk56EFgKmX@o9;xr6WH_o<>7(KO=c`o8*_vkE zkS@d*o>?*I>$RtqJ}5M+_wPXKWR*rkWEbe8$^y*=1sEGqxB_83_<%Co$qY3LxVNJI zx{aaDlndNsV+fEm*%$)#3avHu#t@W?w8r0JV+dZ?D9``RjUnvwe3c~|Lw8ML22$}a zGPu|n0!s&wjiFfDG;`?fMdX}|-(J6$-qXID9^*rbH@zni%7IrvPPzKcAvzbSA3kIr zGY?w4O?NJy6SU7%vDxUL_6}DD6|!O)5K}iKpQ5}_Qe1qg&C;!uB_DS*ZvK2h+1;rr zn?K|qR(#z2>D|ljziC75W7Np$=Fj@@i6)59PgS$WP4lq%Lq3sdn?JqN@mg5vzxlI? zwqus2;ZnU>UGj;{zv1SO>%qIeE3|xnO(g(uWcx>YPFn&1ARW&K0Qvx_@4;mF&Zi*& zJg)CIo~>fDE=uhc>(hg`R9+}4eY4bN>EA2Mm6|s7U|S-$S|3uz8<;^x0ryf=(93aIh*JG%Un z>J&DC!j^CECQvW`vf**7xL>{L>V-acs$O9esHRtCA7}c?RVq(c!|2@-$a?sfwSVud z`pc>W@F+#aO`u-)TH6Go4k?>J#1J66f#CeV~Bl$#%YHi6(z?~0p1Pe2Zv zKvPzo?vq2Sq;FZ&nNmn;2d7{4)p7ax#dI}HdQ=1lU2Jjx9@4(Gk@c++z$Ysz9QrAD z-R#g0gmj>|Z`2!idtYF7Atz4>$YJ;)DQAg<1J znU7whg0qKv?y zo1cqowfI(@_so?GkcPvVJPiSSGDt=D!!UBbZ0jzFTlHH)e^27+t^~}tv?RGH*_VTV zy}nb9HNl*yCCN?6z9x9Ik2N>aO~QjTH8pb+gsU0LR=v5kENvAM(yJLu8CofqA$jlN z_E7`uXP;Xx0DP;WWL>(d^DI?*uBP&-EFkUibcGx*WuCHvrPSux&b zWSCJ?-7mDb(^jD9VL}Z^r}EU{>SR!;T=|-G$X}g2R5aM#{z!{o8z1sjoi}L)o?^tS z3NutMh18$$g6lEL$X~grFwFf$h-4B;tEVN&U7d`DNo9qHrQs*2{8@!-AvdU4V-K^& zifE0iJFthRSmWx7j!oA>4x6Oqi8X*>?yW&4k+h~FseUmeP5+Hbk#`TzyCgIoeu65j z(Rzszt<+R@n%23UCbykk9{qE6cmH5bZNEV~M}6VJnrlKA>KyMKU=DY%A(e z`M`k>B6~NI{i!ETg~)}c`em*Ceyz+Q+?TaMQqV8`%O~`FKQDV(X|aPh=m{kAP7mc& zG!G5pw@Tohy4=RQbr;MZv?PQBceZm|Uk?80Wr2093Fb9g5^Aopn&8ns*5ozDcXe~# z)C?lxUkQ`;kG3sWMQ6wzvRik_aShi@`2@uW84$GG6`bZ83<9;%=!0UPQ^kS|a#7tW zV$un!;)$9{902^hqGT*SI{8Tz^BH?du>cTRp3ZCl;QMk%S;10zN8UE^B41SAFs$^U z0bx7Pg5542vKaUNMvmM=A_gcD`L`*f&hkTv7>BG@HIGn_hr)-;LzH zVSi$IZWk2&SEvE$vYy)Y>V^fJj=-Oa)>z$vJv_x4 zt1CJ-g{c`P>EnqtfMM>fK_-!OX+=^!OwshGpWz!QBW7Zeg7B+^DfuOjmRsfJwdcr( z`R)|SjKxF*j){K@Sia@@h@? zGR|skbIN*rcrHeB-$9qg@aH7^{K^0d{l938i#w=7D#p0kO#nhT1)CTnmQMdwQ+}0M zrN{dy<)+ZOoa4wN*O*#(0|8H0aE6OXAeQLOGCoxL5-_jTk`QG5&r3^2m*96ZMHnHZLbs57!6w|+_lSn44^I9z$%sq@2gh9|gSKt@6AP}Ag;Zpn* z;r8G30Md6gm2e9gn=khK1%Yl{+jY5ag|pCCqy=+f~9v z2)D3%ASw-rQAC-mIwivexqczsmJCNK3|DtPTxd9wGfY>7G?z5FTa&&ib_Aq5ZY2Hs zitsbnpy-c64M-RC)Zu5YL16=-&b1@l<_&h?mKOiFT2)NArn7-|0(g34Zias07D15&Dn(-JJ=t@thFfQj=cvm&L{oQ1fIIh3{zS#^ z({eAOB!;;)WAgQYpD40yTV~6)@T$l$g2DHc(Y~IMTLrE+tGsuI{Nc)YiM7Cm*;!rk zC?G8eQ8+u1>aUWjwBR<0kN#=}7$hwaMxg~VT}X`~XSQbaV^wRx>8keyrhoXFf_x%Y zUZ@ALeU{G2GjK7yemO*o3;ejFq~bgLXh}l#E_%Hem#kZ;0|8H0;Mc<-zNR(fsus-c zS`q@T|H)Qg6a0ttGP_t4%(Yq)YWg3q^EJWKuvn8-9owd+fBsO0J%Z-a2n*C8kdVgX zQpObV_#idFA)3l_0K8mL;(}Lo?$L$c{c-sVNP9e8-j)!L7b`1Rij=$+6082KykS`B z6K+cuX0%`Ae!P>{^~hYAuq8`<}yMaQP#J8T{G z{KOi-F!$CVlSo=qkyH=9H2p!9B9V5lb3)_c*A#rkxh_=FOEr~F4tS%YX6E>P)n$o;eLe;)K``594ngs0#BNy>o(WGWygOsQOYKqBbZxE+F42dH-Md;%ue^t^M=J=g8HKOqIJcB78y_Ab@&JzmG!w6LEI zO^(xYnw3*STKz^n!}HDl`a$qf?O+dUDzD)IH`PYT(3L5h>lVH9L_0K}bbsoQx}!*E zOZO*#pz?G_kp$n={UO7y6JCYdWVND%^-Z%&A4!=_B%9w*U)evGxm7ZyWVJ&@o05Te zquv$lXK{Wv1k6cV;(uaMW`4d9ELH=vxt4@!qw|fSCU{=N$C|wHW~;??%-cWH zBg!V}43H)vA)PjsGNza|K1o}@wWcyv13bb|N000FMO#y$0;DySM---vJ1U#VZeiX6 ziC!lv=g6)&2okn%V0WBpw*U}>NPNF{vSe87X$;D1eb`Y~PR5osi!XZ8y&Bp@D$_;U zM;8+mARTL1w&dK8F_NcS2`L~wX(J)^!FO&KRMd8H-g%fS(lAmtR|I~6+D;60*W`Yh zfu~32Ht083gzN6g$k77B+|Q24AW3Gr(~;w5iWrwvriI66diR+rq9Li%5cu$Di@PUb zkA`B4yNjOWESXz9{O<9vb*F<9TL8n{+ky;|WEXQ`j|EP{dJ0Ys69UejABx1S04`HMfG6oGjX+55$!#M9++00sASCx$#foUa;}?axPD9}96enbW=d14t{4BS`1kX_L zKQs-5ib{z=bEIgyb%Gqv;4Z_@njgKT;2T5k$Lc49BjB$MwGa@u5QLD! zGe})P+(IBEcjGbP*$N@xPYg8*h^Gj3$>A)dE+D=_g{T)f{MArO-5 znu{0*#3=+qa(kGI7ze~D1VVBju>m~}$PkvbFyN9moAm)tRa9U{E)M%*?=W!qTmEIZ zZ*0ST0+2C2&{_n@0Cx&cREGPa+Hjw+@Xr_*j(`mCz>yqdTnGUf;DM0b2Q2(A0%U+o z%-kH9m@oVQ8Qy`PpWtK*n+qLhd~_vKIj|oW*?rrXyQ~6eD|4ZDdb$8QBYL%q{|Clm>0cF;GQq zKt^dGB*#D%LO@1oASA~?6+%EpX&@xG$!UznMS$BWDiD&}D-r@SKm+05ax|8_7@v$l zIaLLi4#u_(#tUpN-UcMvI(^%f!Pu@1#&)+HjP2TBYT)oz0)yfQ*=3?m(Lsw*h~a zOk&$zavNFLYXfd)s4>7l8mbM*uncm^G4@2ka*`x*QBfQ&`IKS5@WO@rqHCTgsk{DP{%`0Y1_eWd&Xp*t~S zj{8D&+*BdYlq#u$aqrX#B2~y^>7)u>Xq|Q?s*uOCCslH{o)qzb@ZL#L?z)pA=1zF% zq$qdKNzs+Z1bZ`kN{Vt{ofP4#amh(h?vInAe5#Wa<<2=N!X1A`-EmUH1_slcqzK>4 zgeEDU{6|9zwS-=yefMbV{`qI!>&jp-@=;S{ekN49`j#}~EliR+|0GOz_jcRSlg z@B%u~KNSiwCl=q)JMe(DX92PE$cXK2tP zbw>l_%cU-P_DW|8c8=ViP;B($#eSx4fC`(nI_||WKa~j@uV8m|83q26oxqF%Xto4P z21&yrs233YDbr5;HJa>i8$n9|2Xzf7U#PF>lEHaN)!%7!m}$$BC4i{st41{fG}t;; zg`KOZd@SHTi|}9Qm9`DFzOA(Xrm4F`$(`OH|L=;I11^B*{F2skc?gp$IaxQw9l$Fq&U=K<`#w5D zcVwTYsdyVi{4k;b?^l%nX-6`6I;py+HU%{VRfx9RITkCkx0##~KvI9hoZK`b4*=9V zl-l1g=Zl&SPC$wB2ep>_V^`7#RwRAEU2GAbei#x>EMY~{m8I+GPn2b0pXB!`TdlJS z8;xQJQhy(17&f4;HXF(B2dA#(GzAoOJ(YwhRA;S#`;bxP>NFd62HQZ--H z392UgQRTduvg7_j@^IeOdo&+sr*J+4A z3LmDBkD@GAPtnclqNGdRu3d_hkV~FP-;~qKKkDLum;7130nIwKoE_5Pcq5%L0F6Q= zgIfOxT@&H#w8-04^f*H2oq_^9T2cNtVaddWPVvgT>0PZ@H~c$U_j+!zJ)cp)hZMDg z@1OoQsdEw^9;ie%-V2Y$%%WJXIqX!KU+oZnuMZG<=5%Oy5SXmyp8n;vrAb_(MwkAg`AM5D}oc=_` zg+Db;x}z641!xaFMzOaYr&!9~<<9mJ>1aUqF#G;=8vA6N+{!Et8Zl)oXA6zVWD4d}Q_&RN5wL`7bntlUGLVtGlIU6^egGNjlDE8M;!2#Zk z0cgf&$)MiUZHuNZL<8VxczoF026#f@0v-fGrE(iG`HD1`|@IUW5#c-dWn*02SW~+6L*8i%eS?2+bn6mTW?l~2nF#yeh(vm^YJO7K|*wm%yK)Ynu z0`9k2@6$chjGb;|Yrs8P;Kcc8~`{2=@i(Go& z@^q;{>K15j6-)jGW$3mK`YbRZ!-(njK|lHB%D#_~szr2dKdO4Z)@(8g_kszE33-<~*J|BeV_kPGP;xO&wK~;Ehh^*KRIw`gb;@>jz&Gs;K!#Pv*Gr46 zqxIRBsTuZtdQ##~c4DFp$nwwsNM2r-BPblN;4`4i^?~N}Md|uj{BgFTq@aWtpNYsd z3;9*r9vUHoCzm9sUDRjpW4^O^e>>Ph_sFWUm@kPci}{kMVKMJ6kvvRKJ#Z3RzV72t z=}~qFW+5O)ndD9NK$kO@q&-N^M@#c_)47Mr$%+G2d}eKGA8}f!oE7IB!|}TpC@++h zMHs5VPf!OcOO8Pas$}Od_ba={G))#Wpa#uCBY+1hDlFK~UatjvCtTg!Z^8Z~Wxu7S zEZE6!Wg3kFqET3|dyV?;kJ?CAb^0yXw^MPuYnm)AK<#ZBwE?3>PMfe`f4C>E^v(cs zjp_^b!2vohTJ>45yB|vA+pKuvY>ZRn>+}Vp^j<&?qxoLW7doUpNDgaNy1rZ7e_CJE z-K}ZXw>k3sN9g8Hbkyww!c2h%&IJF3_!OtWR1bbWf*V&#RBa*;}@&EiLOf=LV!s@k*Qao`%Jm-(aDsdoref-td`ESuiSF+lK0zM z&rsWJV;?Ea2RvR;@^#|M&QG;nKc{`I`37oJJzXKkOW8|V!BTGG%3C2H!~Yk&ZGW!l zQ|?M*n9+WbdvzzT>yf!K;YwrblgdXffCS!IQyIc+Ukob_-c8<^tJjIA>3p4b)rVg$L zDkDb=4D)a`TPbPPv?RHU>aZ}Wbe*y{>AU1;6RtEyM^dLF@ZxBVt2(extZ`LE$L5Rb z;Mz{C0St3*4Kj(O)fGwgD~)OTw^WL3v23bt3x18ei>E8$T219^Ot(~X`}&}+(;|r{ zfd8&2`FS{*dHOwu>^ED!{Qg+2Vvw_n_eS;=oLP6 z33~Ousaeji5jX49Z=>;JD)Sai#awO|(0#)Q>g%Rf8xXbjmp3EzMP=_>;oM418;v|= zv})LB6)l8;*hk&6k9z(mcfcH=B_UqAPOz;n2me})|FI^R z6SO4M^uI0OYl27nSd$HQK8-ask-Wj_{jW5aRAMX5rt68l0qJf2*LPee zoZAIOcN1zrdYGpUKP~_Y8&u}4{%KS!=wd4^zDKPpCS2WlNHg&C$lMIgv31a%)i0Eh zqXmY!k0xXiNtYG|uSs&T6$_I}Y{k;>6IA}J#DU1aA=42HI4QubI11KuU=L5R#+r(b zO|f-`N&0hQ4PcmiYmiAKt*l6@$5xuYRCSj?x>`Z_Rby-TX}rAl_942ub0*EdjtBqG zM{_+q`8&;!$~WFFP6tk1u&6XGIr$@WzqmSM1NR^+YP+E5zbbFsHA3wlN44)Q)b=lH z+{fv2P3K3I-oLEzMNKCMpiEjhwOU0h^?)KKBb9d;fTT%q2eq$yJ^eKXiTh2;LOEY+ z928^!S;<+;(|Y%=eWY(!PnS0{OfX)itY9fp@>U3H zOnJkw61vw09aj9WvutUi2XZ48*OT-|9G>hz8Cw2f5aJZ+>SO7sDw z?`0U)ZsVzK%sIavV}EtG#IUPaUQrGAM%>cv6_LW7;#NuhFbIu zKMOQyrd^vE7u{qAe^`yiaz%cjLAd^U1RgqMW^ECY@Dn)|&4(hhxSB>+n)_f&9Nz-s;)vPZ0 zyA=O-jceuFMt*pa)bw6)h4Q@AWQO0+BcI6R3_$ksKu$Ll2L$`SIenkXy3S;VH>c#0 zxqA$B*{izVMQ*=0r}@2%m0{VtV%=Kbu~X3k28gdIfsZkMI~mNkwIo@0`f~8|bgmm~ zf@y0>sOf*x&esIbtp%|r%P}@-P0ifLh81h8MY}$rN?Ke4LHjn6xOTgIi0cowL%Uc>k+o8$|ma<;W zn<2XvpH<#4Y+TjC?#QS#AXX7&KHe!A>SQ!(Iq1QX;Yfwy+RpzgH0&GgXfCNlJDN@R z6civmawB;kBI`*vi3UZN6ly?vp{EW%f(Hs42z6{|fQEcB(8?R^q8%+>5}*53o!4mw zo?_Rl3N!SJc1T*Nj2ta6%)NgnlSo=UElDogVPR77C|DYPmEOdv79FvG(-HVB(Hd8G zU=L5R#?=)ao1-0)PD`u-40CS{GKr)$6-o7IN7EltDH7VAuV?V!*AVT(Te>5Zc$KEI zcmn*2qMnz8yWStdTfT!oYTk281hq)rVF33lc;p{ZuI?~^;G0%RkR7a^d18H(u(#Is zYg&CI<>N;3dSvk=RrMduHY0$vCY+I|ZJYOoNNYY7ljSq0pQ@Otm(NgQoN@oJujI($Sz6pO~Ue>%5Fm~QaAT^%o zH88)^k}%J4TQuAHn&44A3LMZy9}8*IF>hK}zn4wYNeN9tLb^yVWi-!ZT3cxoj@49F zHd|#nRu(%!+ue$~3v<0>-(|Ogo%+_;_CqJ87EkB%b~1;CS(dRQhQ{-@P6PiGNQK>CNDf#{~6Qb%pe8HnFr z7_x?895(|2K0w)sq3)eLIOFM&xec0UATvzTzRJka0>j+LTryGnCDW1PrjVtPi=RNK zEpogqHZToozta$SG}_|fNyMO`*y7=$Cpk;TUKt>MS`Ds8Cbj^Exwi!wB)M*!4S|}? z2V3VV=esqX?eBD5!B49#i$AT_Y5Zw5tqLn?<=vBHP{|}4{8bEuN39(p&#p#TX2980`C6efC_}< z-lSL&0{GZLRu^#S;IuBe7b{j)Xn?o(5R!ZQA;uB#wTGr0$sP1^BLw`aqJrAwz847r zAMGI|chf73BjB~KOhuDB{754NJXY6mK{UD36f3O;d{+-4xtEU`N5IdHrJ@7e?=M|p z8|wk1E8pBV*wiS>?ofb@q@m)ySAJ4ONTG}Ju6v{j>phw0b8 z|LrpDhlS)9z5(x1`?&^Bbjh{NSQCJ$RVU1h|vN^a@U%@CIDailF;rzNN&>u z1J>!N-~l=k10lJEHa;f+ALt<@cic;jBOpUJa3r^@4de+xhHfAv_jn`(JXFVaAS8FT zjra*b#&{qk_lWudX*J-t4-0AsLUKnOZjAwam!bk8xo5x32m!ZDT*E|{+?e^02|(OS z;7IO=kq{8~5(vp{V$Nm)aCb!oLUJ#Sgn-BN5R&^~Bm~5b1&-ue>eR%JfOxh*NbWz5 zF!KOzuC6Z-lH11|;soFidkD$x_A28DIQyu83LMG3MzNwJ;KMzHeGx5a}U2;2_FP;FzCkKw?#v>u%rHTrKTTxTF8hxZghKwM`aB=>Z4q-{W4XCNep_Y{tRc*HdAs-0Iea?n!8}O@!ngC>Qhq~ncXoPLR z!8ld{8SkMkxtAMZ8}L{|O#m{^r5VA)Hvb*cIU^HB+1O>QF;WDzPzTGInm(g-#qNH; zjUNDd=BfU~ZWjWE)HVg7ZJ&0bVS-pPJu@(6fH8hVAwuNk7Ws|_B-Zs4-E5CgQd(tx zX_fg)N~^qZx>m^u`&uQVZM4e#(kk;SR>{~!(d%!O@zN^e$7fdA%6=v4ikri)MKyJn zStVsuF7GWBwvC1vFAX!E8>X-DCd&*o6(o52(y)%SVcBbz+w{8RiG|589p&qcqzHqv zoJfi=JmV=T%41nl#NawtqgPVIczcV+tE4E8P)QLnX?vaACq=|2miI|f9-xvULJ|}D zq$m$UNl`w3Pm1!0loSzz9@iL@6fxsv-JcW@kPgr}Zc;=DTA?8*DI(|`rE}4wh~R@G zPl}SBm4I#&vERQfwDWz!wg?u|$@a6w>_R$M^!y9yRCEv7%cfiGZqt~Bd3O*hx&hM+ zLGd6T)TNuCcz}D^;%OmI=T@69Ed05G$Jxwa;R*$xZ=ro5_WVmkVaH{*0$9kt%ljkh z76l30PF0Q3L}Nj1qH&fWD=4PgJSIUE4?#B3uUC&q8eU&++a>=+EuSebFXuG<;MGbc zVsvlbnsm1vY&g6xwFZu_}D#&#(hQdOSZI;GV^K*3BU zsPLd@FC}@ZG-uUdCMeg@jWzUxf#ZGDHa+4gdT|f$j40`;%%4T^| z?7@MV6p}W$j1e6-r1o$@u=UgYaEC-<9^A{v!ORGLB}Lu_pZ5=feZ>=O;X6T?xHO^w zf37J1Ajl9)#OnDLSM5P0x?HU6-mB>r;ylB^Jp&Ix(LWir3JqQfO8c!)H-9bOD4{l7M!3>Mw7}JdoN$C6aJm5;#b*z))K&56t!jR zj24mU)UEUf6uXp?4!4&3*Y4zR)7rBGzUg2TWVb8%0X1RLQNwSZgk_ez-EU$C8|<}s z8tf{qv+rDkz(#S1;Yo-%3*u&~O#2GObj8K4V~{+^x2fqqpsBpBzf(a{=M`4S@gwpr z?MCjhA;C9U)1)XMohFg@VUxG`Ckm3fFQR3()Fpqfmd_6O>B@7`=4g*5wLuJmFw#7T zT{t4_vNSA*D6<0il@z%-B=3f>AI87Z@XT8$`RZhju0r>+S4|^;`zUItb;@9u%!?v& zvP*__tMGf8S^@ zb^KUd&+~HnyAcJ*!I0`rMXupHYaMu$J%p7seW|3#+Y|B!7mAJ{1g&K1e69AKo2(BN zv+35*CCX}*HBhM&$s15eTA5f5%%qUCvCDGe6kevhqpI@|gI+Sk_f`If*ekhtfQZ~sW@mfs z;C^l@W#0qK1j+roMn&Fg)>#Vp4MQykyhBlGBw9{?r|?fov}F>mY)adulyq38dmT}f z{GdLQ*#X});e%{LB|o4h%;wK>pnb!gcN8&A>|isd>=sXhT@1$7I-8CMfsNvNo&*_r zBLAwU`;M7@3E;mQYGiX&lGKfNcW#;der7_CZ)!7glT=jrlFIq1$s5~B`H{K>o9kQT z=bAi^Uk`aA`flA5|AlRnkJx(*op#7{bt46tB+B%+K8xh#J3Pw4$Lx_|T2dqiNx<6+ zMMq7DDLOhs2jwgqoC-uv@~L`q9ps}rH|J=RTX*Z51JdA&6uGgzVOYe8glu8 zn3162nLP?*Lk?tvW;R?WY|2;kc#rQ$SMRiO8Jz(jZRu6nGW;=ZFI29h|Sq ztE}5%KLzB~R<)lxgKnq1QM0N4(RVli(?o}@V(R+op(=$&$|MnxmI&%<)gPs6Q^}!E zD67wFT3M5~HlUESx(c9>w6Z(j`zSe1#7RYYlz^n(&Sc(X?76>b33O}txTP6!sn^Siw zC1u4x{_|RUiWLK7UsUn~YQk*A5PtNn&x!#yn`lp2JPmen?QX5J6~hz!mAO;2H5X|r zpY8x&W~h-{6(nWFK>lGZcf0z1-jO7o0Z=-{8Cv<>CU4?)1xelE5m_g8$=_x2JbwLF z3~uP|q`NeG+iuMQP9!Zf)FME3nEWWEtCRL1IUG|Nx-K*k8MaaxO+ykkYo5^1-Bh`w zwj2vbSr`jyrSgvFcr;e=Xk5zaW_Igju%^Whb|3JHul8t8Hc@RuJ)W_3cOU)q zhtvMbG=KLP_*ZMWd#BR&C4;(4v!SM;roS@HmxD*eSaVxlaV^j^YU7nn{)BI?TP^f| zhH5cWcIB44d&fc0FnPHl7s&V`P{>a|$j&t|eu->AzcKn5J%N6MokSl698{g;BhHIE z&(|jHrKvnmKw9hRU~Z|Ga+`98r7VQ^jHZAXl zmA!Otdl@Nt^W4YBwC`tXLowKz&V8CmthlCVbnTO3u1!PIk9pwoku)&O{in-h5=kqk zCCObRgGEVYl~H!5;(*Zx{vi!jtg(k#`I4z>V=F-$X%n^$2EDd`g5T3?1#Q(Ey9R*h8P^w?V zYrRjkXldJJc5$O}qkd(=5gzspMcswDwz84&?SkFHysw1#0J|?JTM4LuG+tct+D^%^ zA%>LaT7cK4=z>xF}W#njqVeSJMnMBg1(~{)8RcY4ZTlmV(837C(v4GPN z_?~EuH66qxIu^U<@OCl|-xgIzZu93t&TME77?& znv0&?+JHh*_qrncH!zbz(&{IDd}F}}78Tc>E=_m=O10=MXX=+3n`xRaO~CK0<wfW%QADUAZS>!Gy#SD)P3g~7{6QrmtUbm zf1#-?1>UZ6Z(2}U9RyCRin>d4y~N4CuV7a!G=rmt-5OJ66p&{6#YV}n!BLkCM=A_g zcdjcmEV{S5L^>>mZ_gSX78`j_OBNe>Cll|R_pW5Ik$0>N zV#PH@qx<=4BweG794#=+y>}v$NLo29NzPa2mKDcbcBjV020CH^rz7yK(Hd(zh)Hx@ zThX!ES0m}mi8X*>?yW&4k+iBJsqU+3I=)F9^I__Y;8*k2VPyKhuTb*&npTz@6ipZj zuN-VDPtl1=QmjZQm{fvvKi9ZWc!?76%7OgH6ra9wpz=9QpA?+0l`c1?{a-oM43aHe zY6i(jFbLAqR}QG$rSL*iE!-cSJRSu%Jum=#+fuovHeIK@`6YpzYB9V#LmAE1Gz7c2 z+yK9~mdB9w+=BwoJv0q9{T0uCp#mNiV@>Ar?1n{c0>}7w*n_$D7Mf@dBGP!43$aR( zyFq><=2ErMJ2aIUKj4oPC4TYZ&LcWO|C6Rd2S|fFopA^7Qm$22u$0<)D`evGWQ{E_ z6e_roy4V6U+AnfH-pT8FB(+GxkNi=eRNff_CM?$$EGzGpTp4G-mPk(POnF#Eu=2g0pA!O=~bPtXeMd&RYjwlL){E}5T8>adijwiH=uSbZiQB!)A?ji8X*> z?yW&4k+h~FsUGTRdh9l1ZS6_$YYKJx=J7-&U#Y2FsR8&UMb&q>C?$2jAneW@lD}1J zyI&CQ^U4phZz*~84Whl!a{;aInM2sjQips@?G0kauJQ)a|16?WNkB zuBNhDyF)=z_x?_PU9e03aV>XuR||f+@9$)Goyhx;$s75Rf~0QZATRd2f^;=CK+th*$we6|C8JJ|RId?+lLA4Y|A@G{(;XYXfa@@e_Ds)z43LHrEVh^2ofo z&GB>4Bn>MgM+*#dA2G-vN#;t^k>j4oKr6SY#80}$J5;csN&{6x>X0doNu1KaQNN|7 zewE1SBhn0G`OL%)z-aI7Kqks*mvZWHGw-dn{JJ>-yX$r#l|Tx(WP4Cc0UuYC>!V{` za)<3`gn*YCY7FovhFS`E=1!qvU`Os{&oOoe?vfG?Xzr5d8X@58o|h7mJ9`f!1YD!2 zAe!7JdmAC(uM`ys$(^>35dywTQGt-$H7_(mz%MH*5R&_ZUU1y_+9U7@e|c*A*;5+@ z++i*P=K=DZoWN0gYBP3#a1`*>hMEV+0}XY_we4As0{+oZ^8jg5sGI8l|0j&?u#Pwa zz(>?}PT`3zIXb@(0;U$7FpIv}%r^mu!2(Be51Xwf0O|aJklc1V^Nc0{U-s;P3WVe? zQLN|)_*f4ixwqKhnlLaKToYXe*Q*pO909-4LrCuNNCJl6(5|jS%qniVB3}w%gqZ0k2V1ASCyjNC>!j;!-BM zn`0h#0&vg7<4$zRy*LsA zp4>x7ZdoJ*{9z9vxnD;@z-Opi4~-$WlR5hdz*Bn&$xTK=z|^b$Z{KRWZcgYJI7nIG z0pcB9!`kL6H?lcH8!+{iZS$3{G+)^UB;?4X9T0~Zgpeb?h&F&Y%s@yEpDBcZILtsu zZl$@;HXsf&5RyC3+-KXs#4ENd?z3HUpY1O06YnTG0^$dQXmYqhAq2z^210U!<`vt3 z_`yI(4p%4~0da4EklY{4HMIe8MuCvr1$*I0+JHEtKu8XMB%%RvMuCvr0p@YqfHHhR?QHZcbR1y>*ljMG)o9z)wN~_E-tulYI zv`Ti1YqM1{!g!-<#VQ$XqgCdYR+(S1O2#gVUVp1BD6O*Kg3KzFD`6YV()Y60+%6Ti zjfPoJ8fHOmn7+cBEaSG-rus);+DS(mH_ehKQYF{X5VYQ)VJa!Y;3sNeN{TQ%<0&c1 zBTZ7o;3A+TMT|E>NK%wfzmp;&#`ZdSPKt;e%&U{4JbWZY1PtcRNl_jmk|L(cd+H20 zDazwTQbdIKhDL~_=x#-ArPI}D8;Mq0>Y{JyS{go?+$SFLK)da`nV z8mYW&*>9(#wh0&I*=;Qp&oZ*pYGf22sbsT6=T(F5QrQa6Tp=GI25JiJJw1ggWX%dy zh;xN-6sYtRZPgZX&N`eBG5b)2owg7&W+W7$lKUJuBcW)X3X*dsV!n(h*K%lp&O^2O z@pu_=>(sxK+9h}(?p6Z#eyRDw-KXgCh*eNIO7KkZD=G3;_`Dwhlk+pgl;VAAl# zd~k5?Z>@dNA;G3wYhQ(|xqTI4+V?GM->Lqieez}dN+ze*kLTepWBWd&LZZjCwoybI zqsKH7ifG>!^1Bnk85#*ix2d4iV;T{KcUY6_hX&nwgeBTdNo{0;V2aQ@GMyQot4j`+ z9_6@W9Kf%nu+fkLeq{10f;~0ah(^$EI=2uM;0qPyudOB%C$7aFwp2|eCa~Bi{QF03 z-bZcAZv^mTh8hF>wW79_&u{bDz%siD7%I|X`S{#jEJgl4 zivb@g9)0vCrf(N2Qs;Bsy}#rKv@ru4&19pP6}6zU~6I^U~vOJ1bP+;WcY z_UxsppaAz#RJhSuGcSrrxzSlO><>xhKj<761uN56xzSnc(atHiNq7;tiM?`cvz_z4 zhyr9=XQ*{%{VqN>7~oM_k=KH}^(!eVb{5p1br&NlI))ImlF8<^x^r}sy>u)W0-pbF z+PJ+n?VWqtRm&9bZ)E9;*vKe8Rmo)TS;Rmi&f6E}R-_dtG%!pdX=SQ8xFLn4we3T%KF2wBRR1T7ZFWaL7*T-iNmL)*kTA@5!AoPa z{mEk~De7k4R<((Wj-e=8iJ8aLyi59++4vu(ERWQ*!AnuRz{pl4D`Xo%6rZYOeZ3S! z=O{5NWb*%{cv&Ggy1FS>$hG!W98|4+6|&~`RfuWdnby8=cO3b$eI=7ASIDgvEqsNF zakr9&)vY}iifCoUhf+ifE1sC5GgMI3hf;W+HF~+<79dZfw~z@qyPob|A-%_Ky zHB_I^S|A%%@hsQT9d?4GYcpMd>w)hLy=yP`;?8?V6HCrA>h4P6$ z4jGT~D88V!{;}D7(bKirr0%kD_sInLzcVX(e3KQk@vhlV>AK;1dkZ?ktLz^{6d>!D z#>>WesS1zM|FE#ZQb)c-v=)%3xw-tW}K^RG3PPmnnVcB;Ki zUIfUSet$b6&W^MP$wAD@{T*(K#S6*XRBUMh7|d5MTT+xZa`E9N<%p{Cb_NAuDX5nz zSB`;J-r)rHGt>whYuYfqqIe4T$}d=P9D>vj2{K={`9k#qVA;n~?tB?jc6myURm!GC z9^HD?dJG=-ZPfzWr;Uk=j+N)Gw z%lWfs>KPTzx{E*KZ0X1C_{t(cPPX{xL~}@ckeqI5@MoM@+Dc`Vj}8Vydib=Y$XhPk ztAg58IijlA9|d74s7LfEaR^;dB|9*$QkDxeZSZLnFEX;~#umkADp_Bj2GIpd%#xA( zhZVnFAICW5lCjpliaV>duR_+`z6vqzJI~q|-Y}9c+gCD~#*&d1j;WY<4Ws!=ifCnJ z$w(0`toUt;&QU>Ck4xd(tkL1Z6Y@0LEg5+i+puKp{YirRb+eCSmQGZj$dPmnoK;kX@kU zhxQX{%grh8V~5@Ml{SanqFFs;m5OO~tcuqInlvwk-l= zyV-jpMmuQ_k`uQL(-bBVcdOXaW5Hn6dU!173-3^ls45c>6ojRqE>^DbKyYQ6!uLvS z!&mMgOs|0CJT%qf#TPs4XP~=knqL74{%|dK?}x+f^gmO~Jv}w!6_DUjF{!Cbli9jd zkJ@Ctpfytw=)a}Pn%P<=y-My60YSs$MJ>0}gF=3KN5{`H4UAu|faKj$y!Ao-rtHJ^ zZP_T`?-b>)f_Ow3|4CDMo`AI0(-m^Ol+PoaV%eQ0@+Y%_M+_Cc$LWYQ?vK`3+kt(eNV`N@%0|xQ&naw>AjcNY!@Cp z)!YFue~H#^b3?%kGz|g%V)>nqaLE?0c@4H$631SxxY07;Cbx%m-G@0e(0r z=l{}#8?-6mT77b}R0|8$AZT$C`az*t8v4=gts0?&6mn>6QWE_P!g6Kj z1BE(eJQsD`oI^I_)GD!s^YT9E!?WvxbGv!>lklAPJ5TMp-P~^8mM78vF}e33~cT|6yGgH^K@*Y;En2yLJjgrXy< z(-C-vJ}|My>JCpY(Q$P}$L3%T*OqeimQxt!-Wp^QNtae6)q^=><_P61k^A)u!mk$0 zXS`F1NUJ;U6p~gp(+4-CkhHP_Yqj!=Dk?7p`KhnYH86fX z(nH2Cpe|9tmuV`l6!3?Nl3spsXQ?hwj?+}=0BNnKE97`7Yn2r&#o6br5Y#Ek8-|sT z;N0av3wBpWr2#RDD6_UxGAx3^pjWtLI8tG_s&j6kVd>UwnMPwt!!j-Jm)=*0-(bnR zr1;OhZR3;B*B3ZnVal4(t;h*Hm07yN3T-A3xmmG~%4dlzc5?;5^_qHc{Jc-PUb{rUTBlkJuFuyy z5BJtIg!&k;!5^vRF<}3lezLj0rlDs1odWQD2_0*)&R}0OYGdO{0TyiNzlCaHp&0}X zOF}&;DuKhnhG5tt?d))zoe{SDYf%f z$in>1x#43?c7nQ(b(C+q|Q5@rw%`2koUP-T-OyFZ6S4W9e7=Qq*rzB(oE9mtBOYVi|cUxmNIg*z%cib zj7%bF^|U0pxQ<0hC9ao!r;O{mVnat#rz7xv(Hd8GV4vuCbw$VKxDMA}CDs6jxwi(H zMADjyq9{Qk;-{$ZfL~Kw*EjR;Rq{`2D%~IOmx}7YH3}7}i_h+&aPogpF77pa zpS$@XdtAxmd*8}_ti5&($Bg^1h22i-y-(@)8a`vod*6xzf5nd+$ns9zPvb8)1F^40NK{U7!Sa&qnOG4_4b-5bZ zRiiA-Xp!u>lr^irWKh-|d1)cD45ij{w$P^2j1Wrmj=?V(AmitvHYVxBS#DTXT|yGKqksrG#xo^%OW?NM9T8{H%3Yt zNa{2M-b5dXpW-0~4L!2du{l!0b*6H4lKwyT-UMFDs@fla2j16%Oy_V8ayW48C=NI< zIHN)WqT+m1KyXAE1Vumu0X0C>au!pI%!IT|OAGU_nN4V=WZt5i8JQM(y`_~!RyS?@ zt>L@Yv)}zb&w0;ry7m9u^MQA*J*~a=+H0>ptmoN};YM6!VF9a&P7tf>NuMWmM7(>y zhl4atwuYY0rjP#U>U~2W(vu{5y7s1=;e%z}E!hm+wwsn@O+Rt1h1wBI^bCDKy~;Vw zXrYtY?$RG+G<3S!D`d1#?>f(D=tJE#N;m}mcR-?N=#RG5Y+A8}PU_+G3?0@p%xIy- zh$V`K9^EULy~c zp=J~`qlJF!CStOoW)w7|g|2cFG1*Wv3YyVE+xdW=Y^V)k8a;-7FUe)-i@~rzVXcLd zVL$o38}LW@aGzqRjd420GSmh*w|`2?a6c_=xKHuv-^MsmG}H#TQnZkbamr|@4RFn9 zp*OK8pp1svaHl!5-f)}qDVw1-yp^7XY|f{QhT2%xj21f9r~lIowXv)jEo5VtC>m-5 zS2J4Z4J-;MqockeI4NypPgz?%vQJAJ*;Cfq$o_?o?9&Xj;Y{PuP#eq2poMHW6N84@ zSk{ad`m~SP(+ssysu?Y01C=NmYNJ#$TF3?}Wi-@Asb;j04OGf#sEtz1XrW8mRN*P3 zp*JB)Gg|1bB%`4=KsBS%dAEOU1k!%N&~PwL^}+Zxtj{TeQ%XqiuYQw_bz zqfRt*mXETjhT5>ydM#vQkLs-+ayD}%nW~Nkw9wfodp;n!saE_>C`QCmOm5>nO=*foWQSw>9cCy5bp@9fCXNrK^4zp@f$$%!FE0NAGkk$ROWvzwHc9ZXOV@{tp zFf;yj)L=y{Y)h)3i0RFC&>JgaVUu)F#8jvms$@khY?eJJ5}WlP$vViacaRjD?jR{P z)3(z|hWhX{=`aC$Pdha)>s$1yT z{TPg1gX{^rC^u-Wh3%}A{V{F)%4JN%tk`ZKWCeQ3w?39Oh)Ei_)}qZS)blCs;O1Mp zc@DFmb`ls7uxL9HtR@h1CgGwg)u9o0WUq~r>yboJhEBpBu$WuEe60n{cu~G_nD|ci z3GfUjTQ#{$a$P!!`p+KHb8bI^ZnZv9)fuCQ5$MJ zA4(0-`)rnys9X5Dyq2BycIAt5b!|Jyv7934kV&%eQXVooPLh&DBAu zb*yuB0r9otS_@Bbu1+vCg{wit6+h)ej7<#XBW^w@Owgm_Q76r0}qaMY2ZDy5fkWXPMijyU8rzmZzd`JLK00THg|3 z>)W?SxT<%{pZfk$P>9Rh2=To-J$( z#SW)u?xp>)nY9N4A|0}5+uK&JC{6jyiyaZLXk)0FK$@E` zY_4Ntk=+5+?eAp4&T^KbOTK9Q0W|4vfb_(pq1OLM(gD2{!XEwpMh)rIjPv3K`_Hy^CpcXW?_b6C^%sL|ZnKQP2rBd64y0MJEsgSru6Y zDV^}nR#epq)Bzi?95QJ0m4$67lR01Ua>({<=0b|58r#1atth#QEsl`o(0N#wUJ6K$ z4_Fm0w#gsIB8O}+s z^hY+%wDZx6TQm#VB}46;w3xf3`c8Y@3g>cm7H3a~MH07YtEPJHw_`ec#w#LV(UWnC zS4|+jsh3tY^$g>|+C_`hv7mZ_pAn|6TXVTah-XK@V1sW_d$P3y*cKPB7HC8k2A(Cb-hnRn9j)1$N@d>nK!t3Sh7ew5T(k ztEq;ja3wbBjS2%?xz&rg$~yA0o;S|YkGw>YnxWW(0BJl72Kt92%1}FtPaPtBEPt)lB(vMU_2WP&YUdj9&b*qGbhWL(i|Q~bYko$6P4=) zJ>|-poU59HqZVV(ARV+AYA_gK7WK3@$If7~>b0CH&EWwU9)?$rK0VsWB3soQiCBV% z6fg0I70)y$(OH-@=|M+B?Q}Txt14(<&YVs5uyr(sEZVB6oa~#h_TI#b&fYeN6v?8knrcO|X~3RNj|f<_J=j`JAYBu!;-sl(8V}Yk zItelABYnc?@NndO$nEnkzo~|9MpUquVr7i>Qqk#%6*6e2BNqM{h}JkAv26c^?7?2D zCJ)sI1RWfZSOx7+mK&0t^INE>;*6w2LHU}e#xY5%D#$+g8i?j;Kr%Uo{uxn0&&krT zauHVPby{nM4D!Z~cflTpg!nDd4mPJ{WHW&VJy(;5>Jx$vDoT|M&Is;=03LGLoM7l9 zh#Ho3G#jDN7eovDDrfOpEB9BF->b6xO)FP~$2_Sdtf;{ zN%)j5a}p_E2j@L$LVgWTbsX#4vmHZt?$hD^^M1+iC_BJ*g`_M}L)d9+RBMVM@> zb6AS438E^}T9wPajCNTgXh6j^QPgdy^fTEreIaMOC!{9Eb*5!XITWa-lyNA)Ztai2 zmtaqg)0>F)0PLOqz|JX#+GAJbP0z2rq)iz#SP^N@a;L0nc=={efviULk+iM!S5ZZj zto4S!JP}_3TE--8;EXk+M^WoR(jM8OsE|;CAB^T71sH6EEb1heP`jZYLDZo%Py^>c zr#Jp9^udyjHvVU#ikX16@wf0C=jsGQjjJ&US7KQ^I%xJ050=CYy*80gh%H2ws{n&- ziA8G#3@u*WHe+Cy}r z@%Cns!HP(G$Sh?Tu*&A~VBQG8NYCw2?XO^A7A1#0V0b>)3R=b_Dfkyq-dLn4LlXw8 zhXGs|H-O-m0qHR+Lk$LF!=k={+_eu0EN6cR`mjVvJF%1L@*% z-ke&81ePZMw*Ft059}+ z0Z+8YJ*W8_5T_VwkAKRjGi5ed5&0$tLCR3%8Oa_1J`>eOW6eqrZqtz#CEM^zAP?`8 zK+BkMBc#_H7C;tQ0^afcw z2(WNUb*$duq0!hvJM!dBhBN$X^;sGPwn_b2Kh%c_yyFCcAu z66ewOjt;GV?CJ19kN_P^8EQ%*$5OT#Hz?X>0ecrGMcY_2ZbG$>0Y>U%r7!KQ;b)rn zgO)K#cdb-&bNXzMw7Dha7F|1y(h}PKbTeeRj`^jD4A>8ci+NOiezE#iwWw_yORn&PwMeCf-PYc{#(sxHgG}i-? zCK~z(qJo~2UGO_S{?C>`w=;7rAUs zFmxHBh9w;xZ}!uk3}0*IzKZgDRhGZ0@*pLZgcUVtn|%wv1k$avK%zr{tj)e*8jg*VFcQ7tHx*0m-}?`bCdA#ZZG{NiFczB%i&3Gcegm8*0vEDY~#t>%Rz) zRNv4`5GDCESMtm20Gq4r70bvn+ax^;bfV;hmSOz-$tTbRYZ5&bV5sp;QPV-vSWJC( zz(kOgn`AW^Eaa*)RhW3dr`=)vEYwi&?$o^si!A#GmnMQF61I#rz#9dWmZC)eDQ?A6|>3q{WOvik4jG-^;LgYgkgU1!p=Z z06PEHV1synBWDe^xBIstH~gjCV2iN!ae_#~BCPW8p111iLCvZSpg6+Lfo#t87qccB z`VgY%jm*_6hNC@u1LkuR4Yj69zJR`>Qp@EaWhAL|+zNWHe|#i6$`zC2yH|~vwV&#} zXGL6ABIDA0_iDk*8y(t_8XAziy^18|iwWk7qPL>E);5E|^$eznv=%hfbWiSA)h}XL zlqnzOHq`V@a>m!AgNBZHcgJDq2JFaRdqk}XnfzFNaIs0jC{c3 zr&4&#x?`^FHQgIX!*C-m(y%~K)0&i;(r=lwrVnb=7Sr*}6re^g^OW*2WPA;f-azGT z9s39@>Mu_A1VeX$RXnots3r19$Ze(7eht6wbb0Nw${(Tb9|M+i3*{v^3;(zC)^4cr z790b~!mx4ywRC6korEvS#C&yhVEG2>?E^uO*!U!o-`}*T{z#%7kDPG&>0c)*EMn0TZ z;|jDyOr63q-Mxu~zX8&^$IuCo3YpfGE4~4C9|xp-hFVJ`UsXL)OK*@elC&3(n?UaQ z?}4@vOxdwBoqW#7Z3nW%jG-nGnGdQ7RxRqZ|EdYLrx3hl#S2v&b~w*ka}ClwYt1&* zBi0QyZR?&}oD++*<64U{b)(#dnubYk{hEnInG7g*+#S*zDH7y))>^!4((h|l3`f9d zl3dqRi6MKQEqGrI1|iOCxDl6`#R5T1*LA8Uo@Y(M25Fu(NgF+iilw2?t{0t0lK}H* z_?Sc*x34hrMw6s*dkT+P^K3V-X;dH$!;QE|!vaA~t5a%9pJ%P4y}ZqgV6JSkf(iH17ULN?Oc#q-aU`$h4HSc)L9$DQUNR*mE4t zW-J2RQ(L?2T0Y-XTZFZb6XesH7Gaf#bANU9HTKjW!ecep0Me9U=zk)LhQxI%K8pSB zZN8_TWT-V&^2N>6MaDXiGLlqF+zN`i6SR$B%Jjv1Y9nUtr+PoNA}%YDF*Eu-6Dx0! z_R59^B-gCCw~Cz(=Xz_KL7MBWji!h+0~u<%*PRYf=*WUii$$68QEo#`-y}Dy;f`x9 z%2-aB-E>c#2+Uf^bG_jYB%OTwiZ3HzG)aiJSBascx!$PW4?>*Ra3e0Wn+1ZJR(Gl< zp6gA*2C3;LX``2N!eHN|G#(8ykA^>$NMqd!BX2ZG8tYPc%%1Cw>Jx!93^(E;4GRP{ z-I7vM`dn{K-yc?vCibO3jb7?ppUd5gY~KVl$ESsd!}=Z6;odpzfL|R?S^mf$puQKq z-UT$T3|wpBlzLP4#q<(v)q{u~dtP5heFe0O{W@H)g{|IwllIo!^mgQVjqj;U8KRXt z*b6WzSV5mWETTUyq?h?d4p=Rw6)C|!RMIW}F5H!sl(d+8k)kE#vt3fs;_Y^Zq@-=n z>;Tu=s?0<1E73*PZ6Lo9bzP9T^i`L~_HNo~2g6mfFtKzUdZg6;-Y|S-DGoLlv)RUqNHI3{}9s=4* z@?2(7rjnG~P}4%mt>5;tD3bx@j=8g4Zros=`K-kcC;k4Z6<n#w}w5C%v@yuruHb@r5ByIFkw8?h4#-mAqc{Kd{i8St6VdRY_N#mXr z9T5A`J@!HQk<4Q~JzjO+Umx({bvhK#g9;%%>i_+mQJsFF)1L1{lQ= z$y6Y3JkZf#a9_dFovMyz*IG$~Jjq;0hpiSq43zod0gBJsF!7xH{7@K=M1B>rdBtVaZm6|rkAyXurYj%zuRJ4mF<9YXYi&_O(d61&Ys+au zI;9JoRLiI1gMt(h!4dpZh^9aICU3T(2O%m@BUw?sORH1dq?OxzTe4a~Ut3tjSHjJ@EL1G!>qwDLpwYL? zB+()dhF>dL#aPT(r0DvGk8-r6#hcSRDQQk*+iW|Jv5u(qt8Nk&E7l~dA>7DU*O9%# z$<0Q~9{{A?&umQL#$(EcNV#2JRrZvaFFKo9UPbPdxUqTi;O28i&LHjK4Yg*{Z1TqP zYJycq)$|gGle4lkyH%Gwy^59K%Zsxb~p7F(+{i6t2;L|J_PWv}TI zfh-I+;vx$RSWT?P(GW+)9z$XEloF}qfJ5G)z_KtNzCXj1Jfax``ve| zx#XA`h@K62KHvp_cLUxFcpu>B0XO1=`n!Pjxc6v#K)Y3K62folDmeFdK)Xb`J2t6( z0owrW664ue!rEnmKgPssm$OdAyBv1A&H}t3ZP%@SsGl$GK7Z}?myoaM5cJrU2DGV0RbTn~gukFq?uGD6hh^-b3&tB>}$%_!!`m zfKLPd0MPu6=BbM5+pRRU^wO@A*^;3*^%?pS-zaHz<`LMJ9L8vz|#QF1e^=F0B{kY?bNgC zvv$OGcQbAtwR^{6J8E)|`M1xPVB_*u?-t}YyKH*CvQ0~T6YxpEO@Nx3 z{C)xYVIQ&FfUvzPn&ec>U!cT%vj%$k7~r=7U&+u{yQDmxx7smZEx z@G%7C<4cF*{8mpqPi{qdt0$f(t)F9hYf$b^!1&&}IKN$763;^m;GD5>9?uhFGUT}% z=CctIw2KGg`mLUJET*o)Jg^~SK6nv))xl|D?j3Vd#Ps9*??<^~0Ve`Z1w0LK8sK!m z^8gnBE(SE8Qda%eE}QqJpk3C^m|t5|8hi$F`3c|)fG+|58qgNjF+H1S<8_7U^?KO% zc%5K&Kc=?|^Y-cp+C4pSe(T4qbxhW}#rTTp*?V&%@H&?1;pNcB4*{ATh|6!my6IKG zt$_BfOq}29S%5b<;(D^|%$PQ%v=A`M4#xF;0PV65qd%Lxr^pIcZkCIfVtf?+zoK( z?i$`3@Oi+W1HJ_KGT`GQH2;%;zXkj~;GY2h47lT7ntxZoqX3TwTmZNZP;)20ze0O* zXpg~d5bgmu-_nz!f|;Bzg1j#Qyb|!LVOrpg;R;{bTVdNi3gh3uAb$?|>j2vTj{y7u zU{}i@hjJ$Zo>hZh+%D6jM(ERcz@q@??x7sb16&BW7_b-mtr75U$l-HFtp*&fB5)V=ykV#!XD`EYMpJ!QDY`7~n`7R}q10 zFpk<`FHCMWE~4!88o$O20X!CP7qd5Ufhhk(gr@+W3OECB0bmwA<1@?7)kA)<9WuGb z>|FuAS4Z%p2!9;#cYtwuv#Y&eU(K$W9=1Wx&jy?YxFAFSw}SsSB6x0wKJSHk>tL^q z?(Lwz4sc^eeSJ|bo)0puK@kk5u5~iaek|3 z!%$6WhdsXvFwXxH=)3~BE6RNguvY$I$hSA(*c#=HFPoQb9yUJX`dTp`?+Z8;@B*8s zqXJp^t=zda%G)|2o+oWwj70y%^PXdi@Z%Zd$@(d4Ue20lU9Tbr9z?%y zir^13^x=z`cVF303AG)la3WwtK37J*`Uw6I;W)q1ePn-4iS1;T9gF#x27W#X_~{J( zMxvfE5&Sg5F@MIF^>bD|pU>1hfQtb?2)G(>_92?@l(7oW1l$VvN5G+nYWm)QKL>mf@Hc?J z1AOjC&Hr=2-bZP;0k9unf535oM*yA+I3I8|;08dYmi#`2_H2pZD+vDv@D#K+DXEyr zc{1dED&S1OHAiT^X0)g67!6MWjOlGVL1X#@o(%XpV6FUTBHwhtS%BvPUIds$FK&nF zO%eLCFW^Cd=Zsg5&IcTdcJ2fCJ+$+Ofc3{}{w;tPwrhA9;KuLpG>+CEt?{n_#`#BMoQ(w>4>$pEBH*_HuYnx0nU^aTC)!67;4-upac90Cxn8%P+(@8Uy=aa_$9z^0mkyNdTPxx6JW2b-dgjF^>bX`U%*Ej=ouW0@Cd+tGT;G- zKNv8kezJ3IR@&Dn;2sAUIDFJk&11pU0k?D``a^V#=6=RX0T z1N=GQYk)b>+ZFJ0fN}j@r8gXO_5s`<@F2j$0ki6}cG^5{^R~4+=5GY%`y&A70A2>z z+5A@S;u_^`T@lZ_HqK^azKG{pn@3`Pj=}hx62XTNj`Lf;XU+3j^S0@2Oz*!;k8C~$ zELu1!@GHc(9j^)XCn}r>I0bMvU{pLe@;Hqd6Tu#!7w5Nnwj$l^Y-|^^__!B*+@HbE zMWDMff-hz8V|-XYTRY==9?qz5Kj_COz(WArBX| z2Ts#)8{povHGBZz*?{K&UITa|;A4PK0B!-SpQCi*-W&m5_5R_uCQw6ySdVz5uud@Zo7%<5vKCoulDKz$?$w@U?(-b2U8je1#hp zD6GFg;XuG001pK`67X`ss{!ue+PId%Gb*O zKgj=2z->>}5>0^p0pABW7;sm>;ec87Svz98d)4V$&q~NQwxcHZnE%_+uJsXo1mUj& z&IkRtyw$rJ>1LNr&+9ML5+?zk3^)xirZ)|CeHP#Xz(X^}%LAx)%Na^($U=oD08Rp2 z3K-Y-D$2$4R&JW+Y=b=Gd8-}qF})#}_nrlO4)9liaek|3pw$Ps4$$g}=Sl15nBD}G zI}va);EjN}=S${7DY0lh5|{QFr-FaEW9>_PF7m2?Xr2#<~eI;%=O9{ z8e{MZgs%o%4R|Zy9e`T^V|qEvv+=sZ^m+{X@lZfpCz#!j>Fo`AVZ!*%E3PNY&TIl71=zVP zI~dou%Y2R56L2Kpn}BhC~|H9QtDf4zpc z0o)yMDBym8BLU|C&Ih~`@E*X8fNuaQ_2l;F-jjJ{M6yWy&Hvvw&Nz=D}Sm8+@Rd_Ps<$zZM zt_R!#xE1hq!2bb!190FPrMCm1hLYdwQUAIK{s8(R~$ zfHA$Bk^c_By8$-<{u*#9=ykRHA5gw@jh5^K*a)~C;6T8^fV%HyHV@e z3>fpf%VLe$6L4?9g8|ZwkAxkH?NU9)>uQYatZ^UHn-6+dMevu)H0M@8dW$>tZ+F;%N6fCFUraCKLZ3kX zdjQu1ZUB4@@Mh5KYWcsTeBlFHvIJNU*a)~i;0}O01MUtu0&pL|EPkxrv0ZOlsr64m zf5dj#`YCSTYu4@+NCE5)*b8u5(2vVoy}Kjb?7WSeF|bpY0bU8X8Zf4J=nWck4B!;N zt24&maj16#<};)FWzhc`;42yR-GlO$c9W!%UCk z`u>7-*4A4zWz5GEUJm#nz}0|p`7t+Z%+Y|;0KW%%KLmUhFfMQPuKb9m#CA8!E@tuh z4EWrf!SCo>wVuNP+X1Jc{+K`G%lh5q5ZCi!Mt$RNQ;J6eUJZC7;2R&;^uGaayj{aT z0W5z)!#x3;?$Gc+z?}g113Uz93*c?*H2*rlwoht!C%~QW)bJjFUjY0f;MV{*06z5@ z&A$ooAAtFLG`<8_2Y4XhA%N!sE&yBuxDimPB)=D;9V;Wa3gHg|ZURh7DrR#22;}{7 zz)u5i{j}yAf_A)euZG(`8&lHosdp=!0eCB50p;UTasCHtA92^9A2;ext(ctq?z&p^+y8t%-P2Ye9lOMu@5%%Z;%_1*>;+sPr2Z*0d*?lHfg z2b~QO{3gOr0ye<@=Au8d%R`ZFcG2|sDvXn-0KW&gC1d>bHG3Ap`5EKk1mg?#-stxH zf-+hUI1(^oKesK)#q-KK#6JSN6VD@CGwkOWl=~pyHGnq)#`Rl0wdS#A*h8zg);wl< z5ZCuz@bSwC{>u16J;e;T4dQzM#`JeYd@Z|P|0yjw1$t1+&YB*@^&OA;rbO_K4F0U% zk(fu@VXs#L#`Kqg&sBgA05+j~t^7~d$Zveuyl(Tj@fFj*1@+zmxDN0hz;6IP5BOHg z8=W83pl9olc%HU#vj+1?JTKck6Z1C-<7!$2@6H%+)^Azsf~SWeZhT7X*KN3w=?X`BgnrYf~TQ;%#YC>0y)NZG|SG#d~5a(Uj`o= zBiMxcbD|+h^2wKIkq1yaaG%1TRN8uK!Zdy$&TH2ogHuK{ibd&;B$am0P8j=y^(+#N`42T9U~&RH^Tb^t^-U; zDi+KAWyt-PfF}1vkpKOF4+0+ksM0wG@DpFx@H)VI06zyf>~T%s7jPP2^EWkq?za^# z1iT&aPQVR-TLDW?X#O66I|1$vsHw^CwWx1R1dFIY$*Gv>VJw%ekk5#(X};BH-_pl4 zydE&7w-)*D1^hhV!+@^>o(FneEnh;ptny6{C`B7r_26?%2ER`s|0cjKfWy)MF@I|^ z^kgW;=W6s@R=>vd7H5p}l^DmHYK)th-lswDkqDj+dS?O70gTH(ig7dz_QK?5{T}Dv z^I?rS5b*tghXYOkoC3HU@F25C5y7s~y9V@b1pF}IZGd+JX4Ply%(9bfAph8oS-(W= z=Wal|)gCum`J9esu)@im*~oeh);w zZvYzI{{a0T0KSn?Ujg$(Jg=-r{1C`9o=2u3KH)^MF(~&@z>fpo1sLbIdTPyMLtxLX z-dgjR=|NoIPr=8V5&SE{^{A(B2HXzu0{~>uUMm*C=m%+Pr1+l<^(c_c-|Y zHsD6UX8`{K*bnp8TP<&N`hZRrJ)381tut&KO~ZT>uPbaGiuwH-=Fg20Y|0pa*3Vh% znyht->1AC1DCkXl1W(M+rya3w8SyQpH1bJ>^8jP|3z2_i1Y1x(&Tn+LB0aXNS#~ex zVpSqo>(SvdTp@yF~vbnjvN>^*F+ z5yLNBIDPoSne%4MTsZu~`Lh-+Icwp}-0;O0QfM}z!_S{H@0=w=m+Zgq@Hz9Q&s{u& z60<1P%#c#m@L|LF-$ip~%$%Rg5o2ebJ(rl7J7?a^VbhuM3m46pGjGwb*?h4xCrfxb zg^LLF>pn1uo5Mf@v2k~W|`iy{Vc#2}_HsC*y&whF(kOsBQ5Utb1-r~Q=c zUYBe;bG8QNs+F7ETAsqcUZR09`DtQIe)>zC@X^3*^uL3PFfVis1z{}R{!G2;Ws7TK zs!d!$e{N6zGA9e2w(c{g_NMSKN=|`f(GQnSOJb1tlcpX8nl0=M=-jd#8N#@GPekYNRk@a z!uq2UlAZ}f+ss_cIBsU)^%Z4d3HIYM64#Fhg5>MR>?;symm<`xeq*R3wjX7P?H z(Woo+n)Uu84=(i>RqAyN{Z63xn@Gy}QjgI`9$ngY8riW@kK)3kDE{)sQfUC0E+Udw z%cOZLy63}zI_9NsiX!qnx1(M}K=zAq>7NGfng)@0gG48zuc6FCw4uzsETgrd%uPl# zlhC~7I#x0zR4yFKJ&BwwjfS!qF=S=w)k{%kry-4=B-fYgNZpG2^5`oztfn?;v(!?u z>YBNHuT5mH#BNE|t#zz}14MRRvzDV-Qi<79OpJAFVMj?5!AiXLjhIWihlh%BrHYA= z`KL)bN>b%V`a0=OHKtI{rB54FfZC{ra$zUYY$?k>rl(WbP!5u5qSSpQ>1)M|kgsDM z*CE)4TUg{FP?ovA4|n1q5&l3%TeYfKC3IS7m1&`s`AafHlYv;8fy`X1=%Z)}J?BHl zN`6=x5^QEN16ibMthnt1*{BVaX+cQH&mivHK_ZAj8)-nE%X?7|3b^ zJ*-^pUZIvU)JY*1G2ew^PbOAh*+w#SEQ(~n!Q`n%73k|gVIs8W2h4n~(q^}dvDOM2k(oaTG3lpL~U=~{Hq#)Dmr>hVS z%LFI0WMA%anP!uTG?+Pq`LZull}u8muPCx=qzIR*(CJ>fBA7#2aby*uJ;U0UI*01i z5p)mprp+I~{XF31a&c$wC;Fpc_A;6|&0I!z7i=s6$)+j33q%un67-5Ao)5O5F_F=i27??u{V^z60Hx@(1nuKLo zLkujhYB6xZPVLv4q;q<3D+8rd&68i2B|YltqT!~Pl(;FXekvu&8>-)^NFu6Qk=#_c zqI#lYV&a?1gdr041Kek z7mMBG)O<7lh}EoDW#Oa-W>*&hBEZ;MOB=A1l}0zn4n(sFuMHVXhS!-eRvpM#(2Xv) zRtV6W58MYV^Lkd7e7SfYC+4LlY!zkpRAVn34q(ERQ)dD0DLP(Q#FX-whO~{6xgMD> z7P82!fit*-DuJ@WS?Z-`+DvewEWPqFrl<pctPLLN+qHjY7MTHB7?PGqTFfOSk5Qas|!|<)ya; zOMaxo@~oOfL+qPo3kh|u@C8XW6xMD{>WVO}T1F_dMwj=Sm`LT}%xu(1dbEs2ED3sOv0Ja2d&};M{ZdBHsqF6!Fk4yq~)}iN(CY z{ab$@uiWU58DTm_?WcgcXsz_Enh0JDSM4lB=NdSx?G2ciR;guG=X|rEj7lbO&Q;33 z4f|?l30o7T%c>GILdU8!f{WJEp;WP6cEuG-#)@qQ_eGHlmPK;dW-u4JÐXtpVq3 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

cb@?%K25Bw)p*&}8&zCkMc zQY%;XPwG*X=U~ax*mY(9luMPRA9gPwz(RcI>I$O^A0q4XEpOy$0c1i9uhQjpn1~DJ=VGRUcYQ zqpeXN(0Du6bA6sx_kQ1moN!hP=;=y|>sF9fW7idWdO20- zTcp3ht}FCR9Nm<>FdbKb*r`I#stP@V)Gq9)cl^&PggLf+Y|4I0hoh;9X(-g_Q`D$j zh2vA|Aq{&@g$l%{W>MSNMan;rq|b{b`hzg`FO{^lMj9>()n?x{cLPiNrSgwGM~Cn) z)nggQPzicr%|!>mZvR?67&C7wE^4q_i_v|c$IPIM>7;~{0fzU7dx`(G8d&{H(evO}UOa@AEH&ZVwm7nQ34^5MlaKH8;9cE?Xi*$?(w%+mOH*Eb^dK^3hm^}!3YROJhL zI#`}jxm)=m$wuVFH)z!jq2wu!!j}N$G%AYx?-dH9q+YBw-T+X;WAursjz<*>8G$?M6aW= zuT!(#;nOi!#-4JIsTz&fJ5eb$AmcCHwy{#)FuAl~^n}U92%LJ<(0RFqMrG>%`q?{a z)oSHEx|dAbQGI~-2H<*G58c(udl$o!McB3Xs+ISCiu9e>D=%)u`ovOI6W_M-O8t3W zTYpy6w{3By{ywi=n?R53__i&n)F0@zYX@jTZKeJ~uU&hFCe){#)lHj1zp8lfI;wOL zL{p`=Ev9vXZA;WT!M0i)hWobFTPcf730mOWt4h$5Tj{F|nHIv*H<$#imZfhq30lBP z*<%u;79-M7cR1O-Y_?Jln{2xK1XFBW!(0q!;`!*XFXq{^l{4*Xl&@0b%xvYmC1~f_ zlPRp1)B;T>RISE^A~i0kKC2(+RNofGG_RLw2y2M62(4h~(JNa`%Q1TCH{jXXv*_oa zc99-yW-6KEF2J(_*p-=?c&8OT?(ROcmZE-4VRyftEloL}#ujbW`AR}bwd#QBeQC0W z=%=Uojuqw9Np|fU*~R+U-dE3*cMq zML$7es*!uPk=qke(_Ti#dD)n?VNWeH9Q11z>Roixut+USm8v;WnZE};yjn!7EVYIg z9#`9PNSpl;GH~bT>Xcn3*Mg)u$RTO^2BUt4g?i@WhKHUtqI^8LrRE&SdfSr)9W~S! zkC>drS}UAGcQB@;BC8TrD8oJ_3yI$Y?5D(qNTkfb)8g3EN|Cr5;8yIlByMbXBgZ-d zfWV#1(&%LhA7EF~de6i?0PITIY=BwVXHtv^jK;nCV{CeE^#B_wK`NdF*hdLc zZsox=N)#ZGfkYa1W&M=^tBG&}a-INq413NFB-jjAKD!-6jA5z2?QW@!?xetV=E9wB zNt6N?sWEObjd4-ihHsAo>(ni#gt>9uNePh90QG&=;IoT{*`1%JO#_+U74bIqv^*rn z&cdn&_O!W3TnVt65{r>|9N^cKScb&s0QA$;v{gvpS9w-C_OuO1Tm`U-5|yWfFJeHB5*@7K8`HH45C$27wiSfIric)RC_f-4Nr7H?TK6<|C77sMXNH%-D`3K9 zV(ye+hx`5P(>f%FnzE){hncb_Ih;H|Dn?Ayt)PXhabA<>!F7N1$WX(GUvaPYB;cl&q*eOgi`rSHRX&C2(HMj4y$EPEH z$A_D1XcIt_urRcV;e63GhH)xb&bxk{ZTb3bn+^lc*BLiY@2~SxnGwG$5Ti}K zI~X^45TwnqpP23txiqHCnXj5`iersSFh->4+)v$u?P!S zBr!K(VtJ&t({{zO+;Ihm7?1L`xw{KVRfwZJ?`- zJrd_KGdx2`#SFRmY^#Vp#HQL-A;Xz&!LHOYoqxY|qq$r}ATgXRH7aIUWJo#~I8`Hz za~LiYQZd6zJCxx9Dw+$aWkLeGX| zW@DGzRxv~VeVlG$uh*|Ol3fj0f{WZDg+YEK3#IoO;xp!m;A42ukh(I%Eqp)<7cmSk z?De%@^fJHSy7ZWl((!P}BwrUDa~S^Jkh(UIIghx7-!+g6qr!&bIqNT^J&HO>kEMdrok@iwCvyW&mVaSGQMozglm9YNKj$WI}*rtDpO>-HB+f*ht z^%a}uGGr^rrZRDzYt!7$Y#|ye|4Nh>veH4Krm)<=OI#8|*5R{g?bo|KX#^iMN1wII zV(cm{^%i6bhtYl`;0$Y3{B|3^i@Vesj2}BkCk<_~@Tvd}&umNzoY~H-&zT~pTdS?E zxtZ%FQ4q$BNIWZQdsKu1W<6wzjIbJ`17}5;)p=1a@;6g-R9I1z*dAqS(s^li3Lj~J zc7Gtsjfwux0m0oHB!=9W6f1MuSyK3sehfgHD{mglgb+Ss_Ramx=BohO8T0 zT7vhlS8XY)Wx+mcTO4DSY+I!aSqZUu%j9qDBv2(;{7kPbl zQJe8q!RcC#ZCzAoAXf(@uZ|mWg+tqG=Gf`jzTLyrNfh4hVZst%$IZ69OkED!<9h4D z51At@%cgti*e*3kknS=xQwT*(<!p=9+I-g7cE$^Y zHqJAU>r;c*oG3KuRqbriBc|;&l~ZgSE*%-Notjab;{E%LX~C6lFOD`E*vsez+-=wh zkhqV0^6&e~zdSlhygEv}I!e4cy67u@WBut;i&EAw+U+Y0xnig2E72Z-3%mjsbRw|p zz7jMdT~C*@NHz!^!|R1|uNS)PD_$M*ygKH2bxB zxWFrLK_>#c?km@Nyim>}*&y^4uNTU_Ug)x~cy-M4>X_%%G0&@`i@w5d6>vShkTtM3 z&{r68#k%Y(te2MPX`}NBCPv1q4IZRP6U`B%spiVwy<(iFdECF48Oz2mN8q2k>IH#F zvo)3bJX@}*k;ZFkr2U%8Rbb;ZRg7V93j1uUHqtndA}s?c(kzf7Z2~FMAduJyIiAv* zICsv#ia4UAhQy8>iMR6?StwBx0&~)rdw)Q*|go?=xOM6TR+6UK_z(*!QZv?4}^up&kVu_Eefbp4l|z@5}@tsLIY6?W?Z zqPHF(dg}oq*TXd#L~bVTh)R*S9^mxW14K^^P8ncJBWqw=OT7WMG}3x-McNJ$Th9Ft zB#$)_gigE~*O^!2I`e8=XI_o#%&T#oc{Q%R6R*Z~=G8c_SN}~tFjRUy`~Se;9AUP+ zz2+-fIxJ)uW6nnC9Y>{SyMYd(H_$

8&8GFTLm!zE}=FN(-b!ZD4LoWX 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

M22+(9>W2^C z@=d)8M5_hLh%0myLt>Qli~Y*etrpYc#b1)ivaWOLApSmxP~@}}h~X+v&ls3SjK43JI;ysW>#%XSOZ z@jnTHYx)aZ^Y0A2vcJG9`wz@d9nQslQreJe4fTvMrctdSy-rWtw`2rsyo5C_)9_DB zE!WVl@i@8DkH#9U@hEFNO+&lJ<78Ps8dqwKAG5~Q8rn7XpO2TTKzDH93JpJGs!HZv z?3Ws@4*7%=m2-(|E1c58>u0GH7b*sUEp1CSeA5^}?XnqE0Buv;6eGeKz3 z4xJ4mF742HqBS_IbU4PV+ZQ?Nh^pD5;KfW;XsDl0KY#THUWM4=&W z*@z8N8se^&*!r(~x<^py{O^he7MP|HbW2m{P9SYCTtofH0H=Qq^)rHgb5Mt)Hw=_2 z2@-$xBZH~x&JglO!;6`!*04)aGP|^kz6zub=1GwFJ4cC}%%T+G z6&hABRjr>?(6_R*_1m$b6I9-*>PW_EJdJ}UR9>l*e(MxGOC8Y?HN2duDh+!TC0n9) zT^AG7@Op=!aySn9-hDR*uF(3fj8Tpt$8qdY{A22fBxu;B@)~`FhF2&`CPBMyWWh=e zZ(*uhLw#dghSjd8V}cqUP?XEKV9Rdp(09~jXze-_3w@mQ+2}nA>-1sHJq^2A&uJR! z#8HIHc5BylEVxX=TbVjdL!CGoR=b{!32La*AqBN7ma5Zi<{t+prm9A#Y8ywmTtl4> zim--L^^Y+@4ew>DMnjzr8CJWVVZr4Z>U2m!?TV$UzpDnNML*!tNiYpg4ZnV4EdQU1 zo9jm`?$dPKx(IPer=d>i-&2|@-LYp}v6OQ|jKyB9W7lm3ZBs+tQvU0j&2y^CeW{M< zMm78^Q&k$$%X+jyO2ZDOs48a&a!WS$tKW{hSq=SfSI1wdW4^kU(eL&hR&IUC7tZa<1Q%nV9T1!^$|-@-DP|o|Tq$3W!e2T2X)_LgcC%<+}9()3Smf zgO)V_htDi)QP4{BnAT*>TVi?#TIM`YH=LG7E6pQpdBKe&ksWX@w#LF~{-VYTthLO% z8qZZC#B0(FZ#P6PaHW}+$8{z&WqN8nu5qT7A%wbwsJ4-a`_*G#!HYoh`R>lkZ-1|bsfmMF3EaasoosRT0h8<^dZ9R)5UL&6 zoygA}1P36eCz19BONb$BmUecD;O0YCM#IIHndw3HE;=2?nU9ocPtD;se+3>M+ zqDHM01(1#`8U!IaT7w>>d6+$i;z(6N~c=wYNm)>qjN;e(GWS>*NIe8m8T^7JiC>pE3FZzPs3Nh*l9uF z0oKT~tr6{TmRkc{t#_fUgH~o4(jy}o;8|i>XIkmAt-&bn9PqBT9BTq}Qg%{RSwF}O zs>pW#LX_`Bm09V}ATtXnTXuFKfTaDF?@UB7v;#)nZCR^uKzT)RSh>;~O?v;y;~Mrc z@+*ifOK2WM3aM7P#@=WJT@PG{1ZM_=)-Z?%Tscu|n5!y!C(_+XE!g#}K`C~f_VmB0 z_VGK*+9niP9`AId9>J15uHFmQK~1KrgZ;H+)E1BHBNO%^gyp$OCG+NB(3|I7B&_v$ zUQ>~*{!7prh5Ynwutpt4{8xHv$l}#Is2g!zgZ^c->xf9jZY$Nbllq%X(ZdL_4-pHc zKHalBD7zdF$xy-z=;ve7bs1)G`j}Ffez7p9(+VOhQ_Eo6qRc_$aW1qLFZ8Su9m2p> z)?f-d7yfzHKmO}Q}8rKln>+TLxf9JQXhhfMF1VpxvQF*vp)DV=^Jt{L-3R8uhRMi)W z+_XHkRNp9FR;p)+HTZl52U|m`0hfR!-_=41S-v9_%ArC(H@Xvz#MOWf!Zjktv(kf1 zS%dD_GtKf%MV(G}`J$a9aW*QZD+Llr_}Hk>_7LJm1)6J(#95-<8hK?6qL?>`4GqCJ z<5k46Q?x&7Ty%m+$C29Q@ZDD6Bqs#TtX8 zSqyWG*pyZsn6;;Vy<87WDu@kMu+RX$TcbJDL_|V|9M_OB_W6bu6c?Wq%EkgIlX!I$ z9>x;L#7^^L;(qq#P+GEgkGjMd?~sa3_!ssEx{^x#xu^RB;r*DvkiyfZhcarUEhhUT zzL0*f=@)_#v5^Pg$ z$ahmdZ*ztHp)NONc1emqgv`!DW(QFA-lEiICqY5AK7CfvcaTuOt{{DvkiKrJU)!jD zb$Lqs6-no&pf>GCZF(FEpFj*xqBcG6_by1~hg0!i_d?%xs;^g&zDr17H|g6(^|dRx z#J|-{+KOtrABrD`;wPZ^NmSG4q4)(VQG8k@H&F`=Bcz;2=qmEp?NYzGgmWY|3R%?FZUPi2liO_5>G29jZEjo!sV%dPBtH=`GUWZGT>Diw0?u){&@?eHSpQ0FqX%V6Gl$iHLUtbF?z6jE%lgm*_@D|H$Yr zMn7lt9HWpF!w$XJ+yNhe_}4l(s3jM$ z!;GE+Dim@rF!viqe`GYogF6vIZUm4l-&29A1y{>x6VQCY-3CODCEUi(fatM{+c*G3 z9lhIl3#djQH(tv_SY~;_jD}8w(`m^57#|?cHc)B|`33K+=|FXaR+S>jsJlv=u2*VWC;( zP(2X6Y2`Nd0!iPaKy5O`(Fg2%l(|nBeZjt{u*Nj(sm6QC*EBu{ znj^Rrw_I>0)yQT&UP853Zsi7&Ra?;J)YjG7r;2P8v0!sxz%vhJG3(?HUySAeK@NHtz( z^cK)8!F|o#F-BgDX{ZI@qZlA5mklJfOkp&Ox{rN-$=suio&=Kd4#%f>63qjWHisF}$9j@m!Duy*jCTWb&5Sm& z@A=GK#OM07>78j0%8G6m@MrbGI>i21usu z1xCMT^e&^rKr+3bF!u$czp}3{OY2K#G!RIJ9m{Asqf=O}h*1@z6^vE`$+R^wx`fd` zF!}|fw;6rJ=xav7p<3T$Mhh9$1I-ofcO#I@p-qg=X5WjMyM$3M`(DS~j~V@x(a#wD z0!XIqX-2Oy`hd}wjE3VAZW&@8qlJvlX0!)L_F+#jdY4i9aGlDbKr)ph8I1*!ag;C@ zVYG~WPY0SM@@g%k4eWa^khGweeXjlp1}^h+R_@<$mx%jiW$F9S*Y-e&YAqbaz1Bz=p4WZIShNzIjvRN^e*u!#f6mAk z(p);Dfj~0ENan^cIsr&pHG@$hqb5dM8QsKaAEPH2{RT*u^daVah(N{>!a>?{B9OFx z8l#y&vgOTZZXu(kK={WfV;!Rl82u1P#=D2PLqIaNql~J?YVK+v8RF+a5P;?v869Nw zIV0~l9byEK3^4~trsHHrC5$4B76Zu;wT#YV-wPOB%BYvo)r_uZbSse5cMp)vwMW=@ zKcnXv9bohZqqi8n10=N^VeU_iz5tT3nd3DY%IHKO8MX*W=Ei(Ri&$8xr+;5pX$lNE)eZd?}$s}zK0I75^M^}a_UgkD1 z*Z*qC^05%!%Hge3A=3yMw31AJ+cuE7*hvN%fbDARh1g@vZE#UJ!g#T(Rg@eukHfXc z!Mp<3)7WF7{s0%1T1@j-V5odzObYzz5l4&}3#QMZC!ZLH%u+B^zhZIKf(gMH(?e6! z(nE?E^8+wjk*hI=Y9ZZwi0Qc<%v}!Vmtbg%$r~T0ov2UBu#|?52kg zF@{#=p~nX?W-b^5Z8OGHf(bd8^u6C>t=rgfm0nqIkpvqk&Uo!4?v=sB&S$ zZ5Of`Q6`!+K*`{y3S=H7@q}%JlELg+kjYH&Ct{+K!IVjmxfktWa)R7UC4;)BQWQyG zRwXd{JE2&p3ln6nOki$FVE#FQc{G91UpmF&(jOGXn7<~3qNf*f)9D(Uz|2Wt=vjs{ z)ENoPrUd5F1m?~JM!!cJv-w{WWZp?&K22aOt}Z%VSqV&b0z>x-o$12NA#qG?0&{Kx zbA^Ms39kRd>gw(FE$bUQw1&TDeRta=ll0n!eZDht(_D38##1?a8c}k>w47P`#SNa4 zP0928a9TLFu7%cUpZ$(F`>cE9UeG9~hK#o+am@<5v~4;PM$Df8Z5PH}5R zkWj)Z6GW=j2-%9n6)i|g+D1BKYt*sFY1zj;S(VBQ^6%wJy>{VX1Zrh?RB;{BWMhBzvbyRW@mK4V7I8*j2 zZlsWkXw$~V_MFyfA#Azyqc(}<@9dc~1v@=Af7Tp<>QWjmp>YGA{o=uFfk1A?2E}%d!8KhIF>A z(8w*ck1ok8f;}5!tW%1lARaIoLe4hAB%c8GHX8ofHrQ7H8;e zg+`!g8Wvx(Zx+tmG`*&M6LK?XG&|Ds&jfXV#odRZRqJ*@;Ayand){8$ z+b}*m(%qM_Edtw0d&490o;i{c>8(J>M22EXH!%El6s4&(o2f4akn=*(y0?PWL9faVjDVKSVE|_B>j=J+olavqvVAzVe=4 zN;g8k{|43>FPZd3xaV;p-Sa3p=04tW0L!`e_U?t0;NPD_>yh_}>_V_3JM#LlW_P|` z&^&x*xOTq~l+lSSv{ovNcgc{hd1Ry!oe=3w=Qx4kXXL#k z6i1%2z9AVBcM3gC)Kk_i?EumXWj))~=rRILVYFCSrI-e*EMCJ-x+Vy{Tq!)U%p zyV82(u8h%JK~RMeS!pY>_s>Hjb@*`g@)aVDD3p175CBQ-`Le9%mGYh^M3j;3OSPdH z+x{Rlj@(Cw?l&{GeJ0$+s6k)aD^YLi;m47O2|3==k=5fW?^)}O^qdt?+82fLUNWET z=@=p04{&)zs9QoK*-ugQ)OdScJsxK^%0lRwuX8ujGb>gtRX2>Hx>qQGePrfHa>tm#;g z!s9YLMM=449k>*akun`0IMlh@Top-uS{9ZWg-P@)k97Zp^0xxVuds*61LJ|$v1bDw z#BmkIO>|2{6WL)ihKC6x#}nH6V)Zf73eiWT9MUUJNV$t5%t(Owb#?QCf=+ zV-44rU~H?*4@28?dGPahtTO+tYsx#9lc(4$?<&&o{_j~%{@=TV{BGDlE5^$ekbc*i@-zc~Y)$!(NH;AakA+~}2M7F( zoV4IPIo})T*Rr!`8tzXAj)v3g_0eU9zBCnI%($`mJ3W7~ywBn{WiNhyhdq@5KDi2WQq9HD(R_MC7tTupl@4dT(5^tZ73D% zp-(}-^sVcX|F2mOoh(k9Y0~@MqLsv!EdPJ&q3f05#WLCRzhgagk&zMe8J&^#70zv| zX4~oSTn}C7tT1o$>cX+DD{j+iU&{RdN9&=B)YX|wd@6Oe)yQp$v$6kY)!JHY@{A+aL-&snUA9~g-9J`z)`6ho z%Dh{E&-r7V!q#>f7r#8s-GiZ3i;(`mSM~kVdE0tYF954UG+*&9uz;L_v+fniufT z7H6Q4T0?wN7Dbbd^T5L}A$IyU%*ifdY(_1vZ^PQ;Qv$TsR?My(Wf$FFG^Ytqy*_#F z@Si}G)+Z0+XnCvf8;gO|nRzZEhaA8o_AR)xrOvB{IcESl4PhjuK3^E^mC@q#jHQNx z7egZO|1tM2@KIIQ{`fhQNtlqpBoHtnN+KZ;9-1g9QP3Q6hRnd^K@uRe(tt6M)Bq_- z6cvRuN#)$>Al};6-rCys+FSdQ_SQmMZA(CT*=m5QAj-=ZLli+RA}aj9YroFC60rAo z|G(dSGMRPuUTf{wT5GTUID4xQai`x6X=@RjIkXN}lh@ZaFGlI74_t?!tfBnUzoH?# zP<1~VO1-{r4E`aao*3GUYdmr5A8tlu1^5kXs;0&kT)$V$LjEvxG48a!6ZiU>EGL_J zx-FVs!s2(Jcopyx5?%kvikbyDliXwCf9VKxG^-I;fKa;v*yYW-H{lPU7(q?X+Pao? z>9{iKaZuV9$FMt$XyvOBjsbjFwhWL|nMIo!*ag=yYX+`YE~j4o3N(5O)d@$7T5WLs znjsY{Bz6sS)XK^L+^bBimJt^F$2_h?7r8Pl@v!9*TnSCF-zHr0Klz=};foh^wKjPb ze;^d**|N)=?KKv*bvFFC=T``0|UqW7lN{v|sT8A<{p{3rQ-wy*heTXF&56rxhM+f$)VAwKnMX z>s0J~xW*~uGp6Jt`zgav3A}2u28*WQ)iO*UM1`hl7W&+a?9oSml%kjNZbVtMVQqo-N;ajeo7-#X9m;*KGX4)RftPys0x3MpdaHq zo|^qj5MlZ_Bp{wO{W?8!FczwE<%Wy{RNk?=i2nyvB^S|Db=U?t7B^0@57qBYGCWHg zi`#wJhjewG3BErMdoW` zwJwe07VUu{Eb{qRw@j%6R&(7A^{UV&Qn}~)I#mjw5gp=9Jm50q8 z1H#xrV#`pr;=5OU=me&K}?A1g!y6U z2m`7%QMo#_A4AhmBYfN7;!(_c&^%RsY- z^!WwzX@!*cWnf}BK;r3$WDf7dv2RRCi^vZt#}~Awp@A$e>D;A2~g%KT5A|T`RnjhVi7>v{8(f zYbUd+UBasN-|@T_-zmzKYGf@p6v9ZS%ulInTd@MIsOev2;q3?`HJL))K6zTTOX|s4 zyMx8fg2dc}uN~XExDi*XH?i15haiJ})abC*2+w}wZwIWlNEx!w4L&#bkLD+tL zCo>ba^b!i2je47o@08o>n-=4y*`>^`C14EBMH7x8lU0j3W# zS1jqv7kr~^_a3Em_|9V*X^CFyN?NJ`? zeCP>W9WgdjBtrV}M?tYl>c?ymNo2cKq?YRtnIWG`yMbg@c3sNJ(JKe(`Ka(4nKV`w zP%m>MvmKQ)XsB`(@2abr=v+l&sOi<0P>eQ>^g~LzOJqTRbPARcrgtMM%mmy-Z@1pG zAOCJ9qD3NK3V1`588bjOJ(Ts9NV*)-b@7)&#@qur92s$iU;21Sx=C;J~(YNP`J0vGa zCU7TIDcB{0{N}+)A`hb7v8hwubx87bbtFmDJ%iYTV_y$SEmdG&*?3LlHHQ&*5X##m zS(>84CP(n%bulG8Gx8!yRnG9c1FsLeAag3e{IM|X2FDx1GsDY$W8@8o(;{vXB$1iU z=us%#B1xAP-mDUiyq>Tqf|45s`#(B+`p8}5I2KxhH6jWJQcLho5yTJImQR+AD8WBQ zAj&6N2&NA>a=`viSCYt~RE|KS3n3(&uSlzGA_dX1J6<66p2fmr5kzHpR7Cg0e!9YYECBAyGeGiKaya(COkBSA zfwRvgcuFOHiv(qI{Ooi2BvaDaQ8}?`AS5=K8kx-dDw%l_l#D5vn#bgmoy@$rX&~@Y z!RsBxvnpLw!z5KhRT7-0f+{3vrx7DUGR;+jHyz7FAIOCS?POIe$UC!uB|$rl7=_~; z!~ahZ4=@1|93eau=!^tMiXf-fcKH6sMc4yAU>P*F-+{HG7FWHAfuARcG`m&KI7Sbr9g_6X$` z33iJpU0WdYGD>A&o&?9KpoJ2AQU%SE;1&^-psiZ;SZr|?$daA5Ne75x$dbmnF%hOi zncL`gBkLpEuv?X+T7t4fgeGA-@#@&bt7Sf<6vZ=dP!1Yje8EgD>@QPl5TPxUpsae- zhy?AdFO1Fl!i&i|ucEg^P01$GwOZLUk_m#Oq{*s4kf5`FMBhU%8PiAp!XnT+#`Jk# z{31w#b}=faisrY|sNiIg{~h9v1&6jku%rDB^Z{E5{-+3XXm@7HjL6?4sK9D%uf)6bFMV>Xrq?b60b z9`w{sh(qLo|3S#$b|tfwH1$uP_w67aVE@;(G+}r~N#~cnKVf44nusrFA!j^!bolaF6(vQX?C`N0e8}c{nY>Qp5L&h(qF68e8$Geq?jWN{en~g(v_y9VchtWM?Za ziZl}MihN2nm-BM8_mDo)hVdu+zZ=!$)aVuaFM7=iZQJ`_y=8?GxcaKA#C0ndxMn31 z`6BOTi6T;$v{3l}{Eim3K#$8$AgnYMx%gkcvIVZt7rL?qHjom;ra`=k1H{*3W3U6fSZq@C+4#j!=pl0`^{1C_5 zKY(NV6LvY+LH2a{M@GV?`)ZJvosL$H#I9|iGxZUHyAyO=p^(tB{zh<3$Zbs=jZ^y5 zlkQ|`(OnyPV3D5W&%h-RYZB9MqGT7-XUjkwJ77 zz%2Is*y;wl0OCz#J7F4C9o5e5xL9Bm?yCrA$XL}x@)?3#I8vu44#f=yNx0%6F)`s6 ztN#QzBPrpI8g`Ef?jlHdSHpcKtbLkWBYE;nUXrk~;YN|wR~%PGCLyzmHw-2rf!RZG zi-Wp&#x)HWEF|26>nuiy3nCtS`W1FrNpjK#x*`ST{2I_9ydY|LP}0u$DB%8;rxWQ~2f9w>&#QMNCgR#6b=$|AxTPX>QzNRuv%PKQ3(_7LCJ6j z#t#>;tfHDuX#CES+lNAv@C<~+$*oBX_+2>c+M^^A!TE_(ke~zCMzAobUI)9nWb~I3 zQ@!A6-+{w#7Mb%*V)9T@&4gvM5{6vG8;mYT!o4+}NN6a(5a-Tc0Vm;Wtq=zHRY`QQ z#R$saJ+3SW#6yXL<|jRbvO?PKqenYG z-T|#u6-q>wxRj(#sK!IARulb+nKvNzPTWj{yQNl<{3Q-^4a1vXs8_n0R`5zn=%#D2`0Ysg0vzS7>vm^_D?I8JFRQDk zZGm`0p?(E+(X*a}-@`$OVm-J{?%!7(kH#>!G`7{IYK>@5G;Db-<5vjiW%;3MZ8<(8ZNE?h{^^*(Q0kmZbC$3r=NbTI;dcWNAd zomxHq=P_tI{*PzSKk%RCUz}P797n1Zr&a=p$Nm8jk9}J~^p?vchBp=tDUU4&L@S6+ zts2l(460LMOBJ*N(A6yVZWXo$P(BNLK!yFgg6JlJ0v7v274}mF{Z&Eq2F*1L?|BvW zj)LA*u^+0i^9rI%ta8 zEG(eHegKHqIGy&xbMPdf42Jh7K-V#d&iUc7dlW=>6mZ(ZD(o#lJbx+h2{}a?pz9fz zOH`OoL1loZvRFF1hv&W#5U+y{h4*g??{|QBx?5H3E(Os!J)GZrD(rJWT>g^a&GIyc z0pj_asGtHsTsln^<^xp7^7myxT-NRY#BC=FC{V(Hm zQ(;94GF2=x&)(cj(cTiVx<(VUS@@=CB$HP%=$wMGQ8*qpNkMZIMDoXDY3YSSRmc*D zey5-}6@+9&EG=hqyj2R?i)tf@(6w|F3d&N@R0UNiXo-U8tb1Of?GTloQRIH%e0ddK>LqW}ec<%32VXGBH=j3w=Iwzk)zf{l$1?^PO-xc(Zf_fG7 znSwNIgya0MPe(xXA`1_@6cEoK>rl`)6|`PK-v`7~dmIp_{f!FSqM+wh>;XVLwL=Ozrl5BfbP5pXcUFa+ zQ_ukHr{P>u6f_(V&&w!4oOXf=o2np>f~pjBhk`m3^aBO`NkMxQbPf=2nStnhI5Y(i z&p{<1E~j5rVJ!-J7!c3>BMSPlf_|!?UjX9#HYw-@1szb(F$MioK@RMs;y*dfm$;BZ99D+r;n2geCN^NO;PpwndiLO}K>{Jbm5OT0XXpLNA@sQ1_m1QdSG z6|w|A{#cx5Hgsj-a4Uf0#eZ}YVV~F&RFlJEZ7?K2Y%2yII^F6?J5oUZ6u;!XCFrzO zI`$*WOQ|I2bgEVCXRv5Tl8yvDAOCr)g=1bWaNzO)2MrMCGeLw>A_+R3WEG2cy$Hho zQs7j^;ey-b1P$KWiE3AraG;Fn2qhH8l8D+~s(Z?)uO!XRDc>d*UoHns~3y*^E4qeRagf^;rEm5G_Z!=Or z^lOk57XKYeim_k448w~$xH9HlJwlE9vY#Enr9kb}r--QcPbnzo%~cBI)rPjWn?3v; zQbGxP>6D$?Sn2mHuEW$O9o%@KQyUAW7UWNvl7$bQ+L*@F<})Z+5rg8K+Bgeu_(7u{ zy_YN56yRn34^C}l$wd8IL#I22od-_Qhw*im5@dghwAfP{pF;GTzunrTH&j@~G z=owzrsf`XqWXqQ_1XG3==hVj0^uA-*r-)9yj5@WEB&ryA+rraLBfM)#bkxU-`l|w7 zkH90Zy@*bCoXgKY^9OFpsqxa$XRmm0hSxf3XJ6ehZ{TubfurU0_tKmTG;!O9(jC4fJ&hcdb!!vr$$i2tuY24nUgr8^Z zeHVzmGu<0=vMGEF0_YbJZxX_IGx;cS&uuVLsR9ys`JFnY^dL%D~BG zn;qW5=iFV3aPC-f(5cCT3323}W}jV2C0t|#inBi6=e1t+S}$FCy2!opG%GF5PnXsm zR;4Y~-xQ~oneI*1i5g1mq(Wv;1~Ykyzc!3zt=DvKoXCp{ESItOJ<1-dmCtpO{eget&S_^i9DJgNeW zuWY5W?Wp8lI;zupnU(fQ*0yKRsNL^4WH|#FNz|^C+i^yqkqXIknPXEK(Ck?}K9~QD=V%jvw)eQTyZz{>Gn&?YB+ckP>S#X#`!m33KYAFx zZt^ZPtCf*}LOH#K+udEaqEIt}P8w3MmfhN5pAFcs{{P+beHK~11S%iK7GJP@QSuw6 zq4d&sgobv%T}msVyVQsfV5XeogmPXADTVfa2)v1TB*V~NCh*W+lJwbQJ<0EKX_>(F9dgXn zS;+AleakT^GMXHUe0@}t8@Ct>A#MRHOS{l#Efs0x?7Uue4lgoR$k$*!Av>dgSw_sOOD_!@ViJ`*51xL-som z5#6vp`ZVIeg0#}WN|(=i!DqeXx3>GO7mU-I!`)SkzS9?&Sz!i-n}IT?5omMz1B)`f zf#q3&`I%6Sl5}6kvmd$qZZX0X_W~Ld19+$iGC-98CffAQ{V@3L!v&igzlyJ>iXWLp& zpe@x~x6Ko{5A|@&+kM#KwLUkk)|`pHyv;L%sW+L{`BH1U*ZNh?dXxp{^BUG^>vhxe z=VbNP@Y6m`>jUegnRmQvk9!@>6Xo^b4Ai=p3wOB7ySp~uf2F@}v(@7ZrheDVJ60yF zvG);Q(AkL-fsauYl?HPjHS~X)h3~o7oyIfj#t9E$Q)`ZcD$CHH^I9LGNZIZ|rR>*|9YCv6BtvgVvzlO&94Jw&69;gBObIzmj4#>vq zECyL<1!NeN(n*EFY02HJbaW8vuW=wMKP2~Z$|K7U&X&&d)xBiqg+e_DTyIi<)oWU( zJ#>h&sBvqD&+6^H4)ScBG^~)B*MmB3GV;2uvuHS@aJT6$-{tArxq7J?%=tB?Yv{*I z^>@v}z4woj71@;IC=E8{peDDV1~-;k6utV0udX=LV|Dwj*M0i-j;5T6y1OeKS@Bzk zLSIFWW&3XN)on5J_SlKt|1E0^ge0r9ZfC(x#8|iFjtxXwwHc zy%DG$3?&+wYV}x$te4y0(9UaG`#b0HGlu@PAEkiq6PbBu@?Lds*yi5wa`!P;_i>kg zMt?O7Be`b~N_XC{oT=W9Zl}L+XWQceWCAWqP5=pqK1J41PmpPsx9(-gbgEb1Ep--Fb>VjHCyz#U;ycz2mVy^9wn1cm5aBHLcrna+v&o z%G&LH1g-6dp9!(^2S=8BgZ{aYlUJFX zc!Sewp#`48_ucEreRpph;NEzb?(Nv_P#W-k(ty`PpP(;Z@2i`iX;^>r>Mt1`??P}F z!$s&Lmldo(2+QALl<14*4|$_3B7gUfj+eK`kT-YdSCBQJtbW~Voi(kuO&r9YV_Khf z9CgV0#PQ@_{T0(X(mS2$fpyYjy=vy|;BvhM=7b6M9tidxPuHH+OJ@Y9{Q&vZJo(nEiS(*G;%<~Q6^iAp zE6FsibMO+Vzw7z|+B~%CV~ADzYGxxz=34K;6El#l&48G7Y;7P(yiE0POdgAgkmPX+ zlgEwD9Qa48a&+|DWVNI`mIo)_tYpy>A&cFVACZ~Pk4{t7zSo;B<^2r=fd75hq05cK z`v7FUAKuTw2Y|WZZb0u~-XE1(uNj5=?^`R|%B0Tm7HX^RQfmu_xvj6mET9Vx`bp;@ zug*E1Kek%>dGSL@zpGY*?-%@&Sbi6$Z4h|Y;TlcXSTUPuUZSgIS-W_U1b3|k@m1oW!To)!xu^HTNXVC6{`p>7-gE;v_)CKa{ zD8xp}%!ed1-haYFu#=DUuiM{!1SJUI^nU9F%go90T6_K0-~Co+&Pgg6^RsDD!5g^W zWhepeWP5!Q-@cyEn|$ypIT{Ht;Yb^(M>!Gc#wZFJRyj4>Kn}Q0zpT zEi2fw=92{U)zqm!P=x<$K0&8QTgm(w^yRPl#L+g3^*0dEG#FursnhIJ#d-8G?#}ly z+gB1CIRt^suItH*-w5fvIq}3ya}x zKgEj0i_{Lk1S*XztaO2-B;DQl928|5GCCJooaS_Q{vO@-GGBC_A z19zmtvoSq^l9AR9I94@YtdCST@{*w`}t zJQ8$w4aZ_z`zOrBd3baCSq^M*^|TE#+R;rB%7<99qYSP=2Hl-6V)Ymaj`O2m%tz;g9n~$dH=vEG+lchDnY_z9`aTRYKwk*yz{ZZA>WeayEtf0(oDS{J56sU9 zltVyEMw)>tc=gFUAdf-<*J80*NZ|Ql5HBHko24j5O5kgRq9kxtHkUwepeYA;1#PC= zck)qvS^mJ|tVJM_y{W4Hz1AsA383m0=-%Mhq-1tY!UiLntL%J@JgLGnZSaT89O_|= zj^k*g=MW6$y_=a?pneAS0N)zOH#Z6--wy(-l)Befl_7Wqh5%y+H~}yQyD(qYnqxv! zGXi%&VbP@qoxg`JkPeSTXCAmW6$7%XjO1=#-APJns*$|YYdw{-1~>%=e0e90cKCAV zp?SYV+cK>)tlm-@e!s=!0{s*8ZqqDi!xkqA2JR`ULADBe-9dUm&lV2a4Qg6DNI2Z< z9z_&pM$N)~5Dy5(R$p*3u1 zJXG$&@%})@Zp2NcxLki=+HR{Gk40v7w>dh=+GTx$sXtt91l*kT>~3SUXCwmm?>%nf z-!bbGkYx-p0PP3l98iL>xNZiLJfl6BdphRHI|4ieIvu8a!{0G+;~717q>*_)~k281SWNI6oCQFTtI{9P@t6KVtl8B=7d5lx9(6k*W9W zJw|ysj288>S;UTQP9MG=tL!r`Zg1*(6N3sE&1_t zq&hS8=b3>b<#czsK^&=|n>*guTQ7rdegyMF{vymk*K!7T57 zgQ?)XoTu!M!S`V3eKz)A!?F@6P6cbT05eyg2fhpojK*aaH<*zbbQXE*j`{LJm{l?1 z&sjaHKDZs8$L;WT<`ooj6XIS+yDyl&oh4&@4T4RphwB@?qg%K&m{D0CoOY?ZY%3cv zP99ELMz704%bJ*$75SlCHGci1m-=j`ZP2kL&_U=~C(|=O9#)zbSJm|p^qCI)o2TPn zxx*WnLZ$0I>Oz0$36#>5?!vs}9{dc)YKWgNx3TB>I-CY{Uc^*Nen5DVCz{Ka7x+0{=I>i*O*u8O@1FD^AWcL`PR$LK|Tc=3j zoKPiH@HqFz>R}qGqhZl;mUDTI)+d&9F(PNtZoi%?RJ-UEG0@O5lYVENLay@#1{dXl?IQMs`=3blnX z^sFua9PHEF8=nPu-dJ05j;XDWRQ1QCs%RDx4dz!Zf|f3U@^2?*mW zye~z67^T>Fcg*(Vz1Eo7uepc~;)7YhfEy;L{hr!mm zV!RBd7w%2)Gd3-Az|Uaa31$<%hu$21#?5wDLjJP!GsdAC>BrGvNik;wChgZu^TPcN z+{VZ46R#iPZbcS?v2aY ze3-tK?y93#Td1%85Ossf$SU00b|5@auZ~`qc{#g*QE;I5&x{YvKLw^!eoL*-49t3? zsq;P7F89U+I1{sxz*aaD7zm=jU4ra+3b(j}`-B0&WG7jGd?c-UTzX3$E*Z@fjT}nG zzpw|b>IDQ>ms^7GF-zcuelMZf)}XVPtUxnafeO?5CewZs{UNl!Gv}Mgnu!_rH7tw& zl=I0@(CQqT7WZI^)660LZzXp<;}r{Y0vm71$rJr+bk>@OW|Bhdxbh% z#vvEF?+;9-057`OQ*6mCbqHo7ax%#@WN(4Gjy7|!_RjlW=ps5zs2r4qx^`z0={+n0 z2#mZPr2L-jU7peY98&h~aAgNo$V4lSW2DewG7y6eOeO0(pz5!1_0B_HH@rwX4TE!- zw4G@+%s<%&>W@u*2fF0s9#0B6^Dr1*)fvM}L>+oNo`ak8oTI^Gc`ydRLf{LmLq&a) z<%e2}I!30U*1T>>*Qu_d-pL+)7peDFvkw zoDX~C1a6o_U-gv(lHu| zIWqDvUfq2EI1G&}Ouc0!VLWLRZl=C?9444))KprxnN<;W2IKttY5h|+UiwjZbFuLf z4HqB4d=y%%gSAK7%b~mQEb0@Mqz)S;K0vB@`+EOlJ>?_DJ{QH&3PQ_Vf5Gex3i5TkJ~4m(V(4cG7Uf~> z`Q`BT>d<=2&6drX4sRN-R3j_NYW+=owf_vRVh@-wJ@KnwkfMjX)U4_T6rkL+8e-6#t z;(Y{0e4IBpIjlTppdf(GZi|yvi#*oHG{@EcHf3`R{WJIy6z1?~w$;o#>B;-tyxP+2{>Y2>=U~vfG^6{l3v*j=HWtDLZJe8zyanrN-A7z_C>@_n ztNEDng_oa9PI_ui@(zUO7}?MH15R?)i%jbTIq&G!>5-@~qMl4J2Jrj$o-nQ5DEP#D zT6D-qg7Dm*BUjuyL2)}VUPkQoKn45BNf@+eV{l8>56@26Ta3%hyv-(De)Q*HMvgyq zxI3xiAHX_vs0fAvdyjkaj%oSuBzd@?3gTr2mBu1m0A#d(+n(9(@PgH`5>VIk7F_IyT+3^dzlRY;M~}W{M`c zy>(@nb=t+nsT{F1>+~nv-p&Y4W-c^|QiVbDJ|>COX)m5hq^>DAP2JQIFSRS;npMAz zi5hBuGtid7geYMC20K)kY)qxe84?IY%*`Xw7!T4cBj9|Bi3?_Dz^=#}$kId#-n9@dKy5LGTK8!I84sN2Sjyejh>qcPciQ# zr^rYn@d5UR=P)BoaFz*%5FZ4+#63VK{CLzb%qz{UjYCx48Dxfu2t?>Pik)ieACLpO zo2Fv;1Wl2lpGoe4fN)ua&_G_W8{jDnX!Jrfhx@@J)ZTz7-5S$+pZXpq6cxeL-=j$| zXM(y#WV4~4^yxc8vq4Z2OvPo<*vjD3Lu{Sgy{Tyq&Ad&XgPs>^h{YTaHd$inhs{2F z^nZ$lAFTJF$B4h&gN(8D9s?UKek~`Y^=+ZA_TpCUW0a;Jm7cd5>0+vm&C}_pLZM^* z#kOD=L({Qc`iaQV(Hbfn)>Yk`mZQhpj^Q1)30zJ7=PU1B$p8F3Fqr=-{6W^K`NfDX z#*O3yJ$RD6KZhrUofY4vr2W<|=F`cd`1S5kBfL~wogn*6%h((SNrlJSOZ`{ad@j?k zjmhqfck85ItC)T{FpB2-H3<0>`t^*^uX3(mz35)we>XY3HJlphVtY?kzNQaq?yifSaVxR+6H}k znUpOLcKC&CI1w8?U zqvY8XNj{Xz)Xy5-y%tv8rjQQJbTZYJwn!&T}GsZcT-NB>1v)MHJ2h?bPe#Qel| zNB6;Z3e}=_yMRMki!qn&P#Rc%q{``c@nrznN2-^Ybr(@DOG0t$We$Q_y@cCZ)NJ2& z7H*@kv*cGs*jWUGEm!wtXYWJ>h@r=3?l(eo$Ol^hf3TZYi%1A*$i&>^#{fVYG5pv} zGq-f$pwG!S0SDSQUJf zxCUopW%+cg&kWY+1v^O(HaTaZ%sJ%-b{Sx2RQ6%)sy>JT5Jn~R(=a9*bDSR-yN_eB z0SZ`7dpP`s``fnh{9{qm;ES3VYd~?_UE@*4NYxRGnn&JY^&LtEg7RM>xNX})+Yt3c zLhJQdTta3pp;bWIVFo#JSluwnW_C~e5uU3zWUfqo|L%~!qroaUXLOv?-QOs4u>ziB z!)Tv%cK0!CYNFkv{vg&r#r{V#fT`dsX#hqGSRU(nZ29tJA2D|K?hYC4N3vbnE^Kvq z|K9iSZ9hW)k&3DBG^|;l`3ujsbyMSwLq~%R3pzDI=Vvf17(=3yb6Z;sYghITS$(V) zsroQwwEH+!-hdFz{}|SZ;@~v&PCGn#+q`wq*n?=b554-wm=^ID?CLn0fS$|U`7Yt2 zy+RcLq|jiz`v0Q5e9GkoKPa#>MqYe{&;JYZ^4quil$Y-y>caBEa`nbRk*gSa8BTi} zf;0bT^5V>PlDypa{(X=a{QsBag=O@pozedj@V5h|X!egbu3^B7|(BOM=JK0@NV0<8*<}yf~ zXwTRQGyC|MbLY;H0imDvqc}|!b3Z3{AJcmbYX;^iPPOe6(-eljpQb4=!RaT{LGSy7 zn+}YYSfBf|H%Jn8hOS1u=yx#@j`8+7M8M;l8O#VG|In%Z*s=+?s&F5cm`n97Y-<_4 zE`+5vj2{aQV81>Maf@_+(Cg6mvTl={MQmST8$$MD_L=LTyYt@=ZUif^7wQG|;=Q)`V}`O?Z^6Jnj8B*R~6;HmYE&U*AE!dEuw-F4|;8 zd&c>gY(Ca%_VO{=(?`j_2vsAV+Ui$$gsJG=Zk+Ch5q}wZa&Id129cdjMQ{Nc9o9C( z`Yij5(autb)mHNUwkNpg{O%L_$p%X|IzEGmq{RtL))_%F=N$Gx?LHP<0t@*T_)Htm z?Rmgq25#c>Q`?-(DL7|>`R@0O-6x>hB<*jJoTGK=2i+lDJ8LFd^=#W#qvK88tN$I| zl)ICxJhO|X8g@y(!0aM&X6H};fLD=63%yPj&f4X%p7qjptQU=rGuQ(-4;*@*p&>MH zJxqKwQ2Tk&bcVhctFk&Ix0BYFi-RN4eh2*eR-d)sSFqDyJsw-K2+le`E7e#3O@go|r_%kZz zmX3FHzy4O&d3R?DYrZ7+riE}hx~+rR`_Ma5#%#C1&`%k=Ls$iAu+WCDq7A)RMY48U zuRydq&Y}h9Pz(N%Id5V{Y-fZwo7k}4hfRy_O_&zjRO9dko4JW1zYXhLzd1yH+b7Zf z?Dr51Ye4?&NT&7$JFz>?r}t9(V#R1J9NLM2i?Bt`068;-&#&GUW{&i2y#b%~N~jEe zIsFdDh!GYb^bRZEE1^-eEE-nd^X)g4 z9IeLdp~LM6r9mD=|H0Q)Tg1BRvuYou*V>1Txn6xAn0wvkKFp2_yHCl~iDa-$@MdcP zy?}!8wn-UQd1YB=qjl_sJKsZ-eMAL~8>paJ+8JrsqCdd>4LWSZ+p#hWgGoA@1g%~X zFqWKt784S~@oa5_?}~}SR(Dq>9--aP?88`6hSYXlg%HxcuFt{O49v>HL#ykFGv8 zz%h4kn3)muqYJCs$)v@L7rIFB-vR?wu;4H-!eUKDmI?|KxdP4Mj};%kjM7XV-P}ap zGIq9LL+W3!lmaf!EhL>qk~UD05m=IjKI1_*@=Mbz6(KrdlI+G4X|03IKqbnH4M_VT zHP9{UqiHsv)tx3rdQbNmcixVm>EN}K+J$`&K#r`SXAvkF@|x+pMkF4u z6I2SX0;p^2b~4wf9CH5XNKIB9Uh7Q30or&+Q&duUBkKGkWX%g>g_#W`k*7hiy?Ztk>NeKBb&v(0d-Q?0Btn z){DJE*D|)cE3wv9!4f_;Jg7XLc)a)I2!{s3OBjpOg>Mg|b-G`>T><~vyL&40o zHTqf?xhSP|TmAI55tac;v2Tbb%xjpWvy}mC)~5-c8r0iXQ$Ii!VuzV`$lXcaD6C(N z-+IfiKC%w>7P0!<1~mw-bbvc*++VkqSs3&Ic%w%@2s`>5D&MQ~Hy6PhT(P*UpUFGa zI^8Jz%=*-Dm%T>0Y}@F;l%iGRz{?*~!O_{ff$=ZclXt4Y%BNSBS?Nx#elK)6#2;@< z`K))bEeV?k*}erR4ZIqd#xqP}==I14KW6(5o?)^LtR^pB0)tRAqcOZX8jk#>rx^|e ziq{pLzC>lHfPqC;;MCP%E|Xh~fQC+TvQm~nS=JLScPGt$a7!W3I#2QB^ggRhYI}6SmbT+Wo^`7bW zK(!!;CS-a^=;u^TWSLmyY^Oq@d#`bZ4#Aqp{Mh!Rea)J1`vGZsx%4L0BU zDjq`taBNsFc5GjRu{lzrzJ%5nhsYb&dlVKgT|uSD3=$HkiVs~$%F*CwF< z&ajH{?r2G-RZN?#M_R?H_{p-0(}*-@Z87bFDjBo3co_ZWt}VuPl8q%}*A`zwzvI>x zXVP!p+Tu&;cl_Go5%fD@ZSiG+JCVcUk%84|u-G+T9AH3}ZmK`9IE!Zdehb4YeZB_w zvME`}5cy(@5I7kytn;1@w9dN!MtuuEu5M4D4fE-x6HIHbFPQPLw8v0QjMxidaWa8y z1{_BANm>wVKSOZu_QJpvFHI?!g|A>gE%N0F zBt&p%#rxPV=N&ZuK&bC)Ybc6eTX0arLBP`n8*@66++zOj(i(oNfgRohLOmLB( zR#lAiFO&5xBJa%0Y%k5_wIfBu0tFs_6Z$lIryQL@?^Ii#Z99yYyhu^Az}T?%p=vu} zjt%{F;>}F&!PYCEra}}RbeA1u`QCzI3)x<>yRZnZ-lsACfgU0)m`j$MB~+mg&Lm~W zge;o#D4fwA)~Iw?H~izU_ACvK3~Ntn4r%te^4|iva)&$D^qXUC-kh1U} zsKpQpYlt3(y<~s}KQ2roUh@y3*Ky#bW7byT4fRq?L$xlX7mU2DX{foZL+GEO)YL;Z zW1JrPt(Bx^p^-AS%Fy~EcG7eaM7vb&Rprkr(mxj?;ecX!ZhVani z-rYUO3}pQ7t_TJ?6}x#vds*i~H?!?;uNc-R1$g;?GpqsG55qbex*;-##1OIc^6A;o zsn4-kd@i&HKP2L!g^L`aJ3)l~S*6w+1*fqDw~^ju&aTdx44uFZqz`}(0mAE;e}T|w zPt!m5#+}9=2r&Lg|H)K@Mu3a#6`P%*KcG!m;X{W3QSSiZrrk!)h=7&ic5p!wAbk$ zK8NXx#M8v@?_efK#W&;kTd3iDz(2z8uh3yk1Nk1<-iFTg7J~8Hif%_ZWs{p6rxBdp4DF?V2zrRO9zXH4&zfH4n z0V9P2pFYH!KE#(k#FIX-6dIX}zCOosh8wbuk4rBpo10Z!aD7(6wUco1)V0@SOX{qP`DF_eO;-|H3S^f0e>zCE9XspBI;uUpErmviO-K6U#XHB~Ow!0RuXqW`3 z925=9mQQMF1zPK*#Z8TiTN;<$uBBexy0rP~*2ODsYg}uL@oAGOy_o^%(!Ecn`MRPm|aWv@BV^qBSd$(3wc+&O3;`lQUrqodcrqc+!!9x=TH?Ogmi8+m^T8 z+Efo-&W5Jti;;SoljTf?I}&*=SR#6oC<8At<#{S{oRD+r6UYxML&0?vkbCJ|8F1}2 z6fiEMLk8e5N(7A0r)o+Z;G}Tp)A}OlL=v^uOv7L05pZ?oTo1H2fx>THzPw3u{w3iC zASTSElr`t`=^qpI*JMz^b((YkkOA@$P3C-ONG2W!xLmGZ;5T{TaWtGW(W|E&$79M0 zEpe8fLiAe7?ONh&4(lnmYKeXhJ5m;FiKQG)&{By!u}n|+B}fK7h=%_i)A;DJA^*UjCe! zGJ`*_;?E;f4E}r{f6hv&Y+Bxe!r#wR$Vn;T&#U?Kn3Ng(c@2NgO)>a$JAWRVQrWVk zu>mFfIu96^QX&F6ctBpt3=z=D1IDKqBA|;0OyITo4PKiQQ5pNsi#yv%&hbnrl#|lne!`s z)gH|uo~k^a*;)d7m|Ipgx1yrFvf5*6P8Q-fs;WJemF1OMA{T0Q&tBc~+v>HX?Y=s15731a;D#<4Vc41UFk~zvd~m*2vH8GOqc^g zCs7Z15&^EFkxu|lBX~{nLKj^Wl73rDtCn0lt*4o&5x0bv}Fuk>@5%G%$ zXJQX`S~@${I{DU=pCEUc>5a=8mTSp%Lw1#DS{5;?6=GN`B|Q0dCg3a6VTxlTm$1lH zS{ijQi(K9`4T+>TG%dcpMRUz!k$B{y?wUQEVqGY(%g^$bh620%tiT!R&5f;fcr0Zx znRtZMgGm|7X;yk$OFciB)HR2Nj7x7?UUvuXq;gd=iv0AZMr5A~yL550=9t78(@Y|kz9)tsEWDWqIz^S zT#`qHa9xf68PtHK0EV%DRS^(yh}7kxL>&%i?MyPuFl+?Z-r4|Y_`Ex2QdM0ySsOU# z(jj?h5(HH=HrF>bE~~FCoj!!TELkyJX(%+6rHV$L}li)K*m+ zC7#-AYRk&YJleq4OUFJAjJ{E7XL~EPfo=VvRhL)Pmd|7<)Xwl#YXk4(*m~S_qp&&u zyZWOrD~VpE z@dDI5{nZ!E!86bBX)>*++SWpc<#Vf*GX9$&b;eD#A5xxj z-~!~ONC=iOOi{imC|rFc7)`;`3HD26_;LARrBPNjQyPGE0zWNoD$)2njR*UsiR8cj zqH#Izhx)~zQC?kLUK(lY|6NdI#VtWB1yAQ&{Ze_$tAq`HSl|`K0V=X{k|WiZmV(_;5Hcih`%|J)3GoymX4o zD;9A5{||}DCp-GZ=Dfdu5fqi4s&fB44^QGzn*a`n7B`770-nkbE`n%=-zQr6hc-6+ zsrX4qY|j6&i=Zg>!*232{K!Uk^_74^=PCU7B1qtpM7j(=v59EzCvIIu5%JXi^CAd^ z%K-yf>6=03D$G}T+@{a!E8)KBc^-ax5j-j?J++l=Fys4Dc+W1x{l9D$MSW$XUlu$k zKZ|4&S99k1Oiy{O=_xKZnV@pYClsZ#A1Y5-B-PIql`Ae4x2fforL{9X9&?6KJe$O- z)>8vl_ZNy*k4peeXHO6t{m zT6~)5bXev#N}`KQh!Jg)L}~GDVAb3i6$V5(tS!BBjrks*Ht-LU6f+imnUHXDsZEmp zj~7AjE1Oqd%tf-4>Xw9A(*Mb(N2eXXqWX{v*)4Oqd|EL|i!0NmzT(RAQllbF7g*gr zqv(p__8-OmxipznTRhi~;e3QX$TIv{vA|S9A7v=7sP+}ZCe8Gh&sW;~7e$zbnFXV+ zuD+!uY)WCPm{NG{5l2@+vAqu(bkjED9UO_x9fUIuL*m?a#zTzhMs3EsI6j*(P>lP;=V?42k7jO} zZzgp&HtWA}G&WP9SVyCAj(?Ab%6)|}<8QNmf#b6&0mZsce4fUO@o0oL+njqi78~g+ z&QVyL-|l`e**q&3i9H;Rjp3siDm2bkPaiX2qe{g&@Y*(!N#OG8YrOiLZt;_7ShUzN03lj2F_kS_suu{G% zDA`#3!pSO1p6-FT)M{93m+m!z$VTWYnHWUQ_4WRdRUWi~2L&b@lE<=Dn4IsSxY%r9 zYUlK@Kw@KL#WDhkb34*EqDogAcvN7qL2)EIg~j>35f>9H8s(TAv-9_+Kw~3e#V`tu zb9_spQlA!$s#4bmzAf;?z_(9K&h;G|oBBM3Eo?=VQCi{mm|;0SCJF3u?}dnXN}-D& ztS-mA9>zJUCpvBu$suq|YEeWywcd*-46D0$Z7Mk&?khP(#nXGQAIgXUlPnu2J7JT_ z;jv0Ef-EYz_iZ{k+>N3WBdy5fPTFKy!o`bE7M0v7o303S5fT_@h-OnWzv=@;&Bhoi z#WDN~ z3a2FQu3elK}QVY z3@8;XOZ2QH&We9~| z`=OFF+K4dV(IYKIDTgY$O}qy55yZm!&mf;41D$GPhTpcz+;TZ=avH5gkgEZfN|e=9 zLKq3GR(uj$A{dP`j3z6JCSo9^lA`8J45NY}k4Pzk%1({QlETPfj%n4Gt%%R8U)o<(gXAajH2RZD7`ju@3;9jjAq;&uclmUmDT# zg{5&N$7chq*fgT?c^acHp2ol;gs+&72y!?X8**JBDVvO^IHo^RIkdu>u*Wauo()TL zIT;&?#iZC58BcL+f238SUSd-m$H~|LEhfdj$aso*UzpUcC2in%PR+(|7niV2&C{RI z9|tiq7Dk0t?nI8y26!Iq&QH#gDX$Gkt#Y_GojATrip{$k`w;Cb+Z#*52^!(`QZ(*!;nRmP+kjnB(C{o-g;E8ZmV*+8@JG$LB^ zW=TW-ehf|ArYQB5l^Qi%^@;?!7>IsR2E3fc1(=lj%!+a!oT*|j&FPAMS1gLnki^^r zkI6wl#60!l3owYRg9XJiiZMG}UIuenMXN4Cu7#8{t6)lw+_#U((ii2(^Xd7Yajo)H z7;K3OyS&QFs@Pf)*Gi4HdHR6kA{K84_l9c?jfOtWNSeDL#sxJ(g=@zTw{K!T>PY8KN=mOa13=EJL) z?1f`<{-qb7C@#l}9ww&ZsePHGUBgC^F{$-U%hN8u0KIhl*pOqsuiA_4Qqn%M;#Noo z+M4*LQ#hP`FyOhEV>6-gOH3(bF8B~8UN$Nf2O6QVQP3CW!t+vfF`UFyAs>x!{{~A- zuq?hR*b-JT)ixhFofn&<3-aN4nj6V0Zbe5-q1l_-ID>hL0h^YJ$w&mTSuul(z$xb| zN;V%AL)ph9X`*o@|&SH_xLQVk3u$bX5$G#WL zFBE&_nmZ?6Y!k~_;8^1F8rhG_JlLtP2`@5o;=ku^F`B*cb36~d%&hr)1mNeQCr?Pv3^N8Hvu6UrR6(mlzGmNUR zJzVc|qR1`kHj#&BAjzcrFdHb_@Fb^UGZpGZ2SrnCRImv#y!lY=tHQpAu!=dwDcOue z-<0s}J(YY57j|M*VcwK&9|`000q4U;HnDtW8d#%6|6|990#thD%*AUBVSAxI*6@J84uGzi{>- zSR(3}`~{a{6}c@?WhHjGO=Tll(bD$38Ep*>^(*GKgunL3`uf2WxRY`3&D_Zl6YO)V z_+(d6EI|BBL14 z+eULS@z@`S@sb1Y5TiI$%*F0_JN>FKSk|M;%LK_uV?9q4C)>WWHyYwqEECO%lFOQS zjitDRS0$sHBthaMkVG2 zg2lWWSmqI9P49v#w&hz0R8_IpW6s5RphUhYtTyBqmt*??Q;%B4YF+WPpMnczp|pPK z@)dWR^>xdaHm|_;a2#t6{v+?iWfWc04aA}v( zNg?$sn-?#;t@hTtaV$pi823Gh9$AxoQ!<@aK<5!?$wjF|#~y0$(vl5v?8#6^RPI6Far2_7{45TP6FpQ zlVOZwL7ZO+3z^6gZCHwv7rgA)gM5a<0(>lBYI^HpI2%gaW%^=(83b1G6ANbG!~!2X;h`+y zC#by3N9wmal3(y@8aqTpzs(^|Op%9(==F{iiq^#;B6@>^rR@}li0HTTXPiyK4h_+l z@aI%9TKA7!JmhTLqzl@{ybb9BBC$l&zHzUMD%4mAX6S9 zqA%wGm&!v#^kyC~LLMTbe~kxR#!m=2h~hAra%jVGevnz;(#m(=X!;6A!XZe~@Z0NK zaoR*}L))@CO@H4x#Eml{oc{!!%QXyO21#iSfMN6xfvfR6cp%^#@MXLcH0OB0S8z`C zEt-DHIf7!7aS93lj3R+vTEDcVzLmCH`88*zV-y|2u@-2<2pC4fI*g7R(irm0#-^r9 z99+TCT>}y>CxlIePDgzVYo&jbH;!KAD>aQK9E!p5Q?ead#PxN;AF7yQ3d_cEKCiPZ zB;gn&o&}bA7G1!MoSEhMN(Qb6++4!#}%eR$R=vfiWSROaPp)_Sib8C zfsSF}xm_Bbjh#FjYYD~9!Q5qZ!berxiiX8?A}hF2<)zAj_(-l3QgOEbgpPUV*G@`AA#O zOB#;pWo^Qp`1b^OJdW=~ikZ}bkdt^ii0`EJc=$as{#$$}{QwW|1L&oPpW|TyYG4e$ zlYWnf`vI(^hri+BMF7v!!y9-Q1i>fapL7BbB>;-?z3Njuq=`&jJ*W&v#!%`AoHQ5@ zbQtq}_+EV(9@Zn~c|T&Z@Q{az*wOgr9~H#Tht{r6LX|jLPzyDV`|*E)^Px2ebKI5X zxDUlBxC(SNI2(;V9{!_Ex*CD4V6=jmtrxM*haMqjm1z$>y!v6MD=Wv9m3vLjo!XUl z0;^&Z&~gJJGt_E%8^yzy@xa?k({jg%KvFR68YWdnQ}dF=n!Y75eG%$PzZn_2_As^8NJiY$EFvrqIzo`g4hcmLXx#w8S|D$`MDSgj{aS(~|RI1M@E7}nEX5w%<>r1FvA_mq4LDNAP$e zSTbFZYdw%9{pX2;uABq;y%JH?Nt!kb--#46>1u?$hNm6)PP!QnZz7Ms!FQ4$4=0l~ z?Kr-ZzJ!N4192uJzLV(3dQ+3|Dx9`1!=KH@d-}66z&r@^X zbLv#psZ&*_mV5iQcLYNES0H-h=hZtRq<;>$N>6buk1h@lX#G4>S z?%{ctWDxT%h`L=c$Pv;Xf#{4E1bPVN-+)*Rv9wp~c@Kbd3qpD)5OcfX?YIc(-9UT@ z@U{?pfmqQUuf9b{j|K4tz{?1e?!WgT!Ml6K$x<(_! zOE0ke)SB%`jIkc4qwE9{FORT*2 zvRGj{BKGY83521Y_P0?o=SfzJ@Lya6M&iBN8Dtt7^2!t|XNW&*wlc*Hxo(<`kpVmO zRwZO^Lw0b#=viZDVg}QQ0&gqKoVcZMr@vRDXH_HWc<6B?LaD^0=YX>r)RPG5lR#kU z=S@aPF9Y!hfTx5w2gITHqU8*P^fe%^23RM=uR)}GdEO^NJPqO<5L*z^e*$q!Z~Q6= zLi#TtPKOt1K}dfMVmrV`2qU^3jxN*R^WI0-Pxk^*(-&PI!5c9c)Eq?3h3@I0Al?A` zcL?b*AYR`c3L>QU1<`~?sFk5|5Qv8X9ulG!#9sm465znzE#@e zYeb|5K?DJ>b~n;yEhqWOq*qyh;pPn)Utyz6SKh30rYmp9Adrvg%FXD)@(Fh3p=VFA zOj-QMlvRc~3hsECy!{Xx54ZmLG-Y1VmZ+-bT=i+HRJ`!m`6nEG(?o>MHxH)m?Q0;m2n9Xre?Nwc^adla@`UgEQ)d0C-Z#C)E#3mWtm+w|L$w!?s-OPXf0>i8nSw`&^9 z|EJ?G_|bwzC!+5pJInIKbDnqSi|Ic=^M+OAZ~K(d@r$I zs+TNaya_U9r3cld%))3a`e04UoD7UbKdV(PdS7kI>@Cc?ZDy*EtbE4GsYT-O)Go3# zvVFfUWxC3E+oyh%GJS81=~F*S?IvB%_R$k;%mndOcHuQQWwwmkPv@rk`2BQls=p9i zqFtOPd2vwkVwKd6`+KX6uHwWhb^&LWa+0N4z;P8P4ZNQ&Kc$DiW*c5!c`Tn#>;)Zl zQaxP1S?e8cj}bHxVX!gCYssOqSG^OATM(vUq`j6LCB-G`_P-CgBwkOJi1ico zgPJWlNz7R|7%YT|$6=7zeoz5&lCWgynluaNdqLicP_bV1`nl>Q&H7fdtLZJr2<&0t zkpg=OoQReBTglx74ljYXMVM$_Oz9=wPIi&Od=*%iBft)(_lOmqu~v|mK+ESgdw~_E zHP8yrB>PB(KS9b55UdrRN$x48IbaB8Ed;T`Gs%%bD?FPlk!sTl&nAr(ehuL}5yT45 zSu1qj6OJEY;!$2=v$eu$AeSRlY*D>r{*cc^Sm6b0g-;N_O_ISHFIa0-?uE4p!bDi* z1#6X?LEb1VSmy<6osL8CvQh-UJLnJUF|+b4D{#j+lOeL_t! zcI;R$aig`xM$}6_&)W-Zv9OW0xG_0Us(lY~xDCPD;>P3%F;J&8mIVl6iyM;@g0}c& zG9Bz2zf4vLxdOsV5yTe1vbMM%97-?-V@qHH);83+~csa|VTFXIwXdG;G ziM7#I?I*sCE@`5TF0nSMLJo%@SQ}kpZS-?6u0#+UU6OC3OY?1XskPCrSom~95F1@? zZ8Q_)_k{%;t+O_I3gn{*6~!?&y3*Qc(kRRi2x6lvt&J`Pd6BSSqbseAJ_GrYuwbJr zt&OTjd){FP)|B??Xm} zk$$4w^BzQ)2oLr`fmwVVJPCUfgo#+&yii~kbK5{}6&4mYf3Q+_U{AdcVY*qmzF1(E zS;hO}a1k4e=~x6lw+%x3e1Y{k?Edy7sB_B`teCv@gJ2;90Jwl zg9#BEzat>N*e=1}Eifys8q~J}p)`Z|iRN(XF9l|~)N=+n2qhbFeSHpM&606jfmwig z2Vl2oBsLTy9-n^p;&qThjA(&9T|XG22O@Z-tMSi9?QEkKf_;)ip(MQL+I+sT7q96^ zRQMQiD)37cp15@)0YmjC&DtJHpVbwFG-AA}5^4 zY`tV=)K&4~gKz?cQ1M3N9%0C6XlM!S9D697&=!*z;;A<(bfUz0DeoACnc;*jisae)i^@l<^ zgwlvcR zS_+wprM5s~6M|Su%c(vLWg%3o)`a<%f|OY5I!NRYN;6V0ETw$;1(46c7fUHi4)0bY zSW9Us^_8#!g8h`phV51KC)=l*lcxK>g7{4crQ#N>r8MSnc-w;!O12{ABUsp43bA6T zt%!LAVd#B3+3fTBR2SE$R6Jb`QG|-povrw}s+F}Aq{NT@2ogU)5KC#ocR+5Hgi|#k zW^41YeF{=ysR=bWWk9Hyu2SMBqf*_OrJ*&zn(Q`6SH!j>Ldu`+?vNTZez;GjZ;MFzkE~+W_QXqoVF*JGDwgV^;-=r0zlOMxlHzrMl@M5lQ2suMxx)QBz;odI4k7(d z5aZ_nAe6N`0Y~fYB`0in?8QqLgZYa&IKM+k_WLlBi94n-J}>1fMWbIRSljgle(a3KWFL@4hJVw-Sx2G||#-$VL9Ul1z* zmLil51#wbmo7V!ZQ+jVO??mkFB0e6(y8v$sQ2}Bg^zDOCb{L4&ns#5N&476pVo#A; z%>t1+7WxbELlBpMI1j;o%I`!+?Vm#2eE|C)lp##{t^9id|H|LMzl_Ac3Ggd~%MnKW z1OHZodmJ)Ke*$7LEOR_Uc>@17iF^UT*9hAY(mUhd!6=qU5l#qM32Vxnus9>P1KSyUF3Zhg_3`f6V ziT#fJ9tg9BT3k?KVr0}M78i_{6`nadTVfYd6J#iiIZ9$5w+p2)Hv|b_7o+#|RBnQ_ zf;~$DN9Kz0W5xxf$9xhX++otUi;ma(mIY={V9&geO6HBRm@l;S@nhlffn`=03s0|b z45lhWh(7i+L42vL;ctUABq34>CA5Z0O^^XT|sD!KGw~J~GAt=iRTSE}6 zp=M}m2+SHPv^50b*KoY8-BWg9ZQGB8shtv9JEbOwH@CF|Cr~>kHMLX1)$ZFxwRR9R z6*5ag5@2NV0rnAiY6T8ChFJr7yQgHOg@55eE{JY=PlOFZueMA&`G z!wIu_Nwr|dy&Oz4Bp$B7n#U9&u%Fvrqmt8w2KLAO1F3KA=O+j<^Uiff`@LHj`h@F|gJN^0PIxDR?U zVHSe5Yv3vo>>BVT%RKi29GxMQtVW_Y;mhnA@PmZekCd$Sya5Pa$s9x{Bu}%C_|Qf- zBWjjJ&p4oulnn20FJ7q={ltp?3}P3FXvH?wo1!+y&#l<~5V=ppyppNCpb%X3M0xlv zkt#3;;k#ahjT+)hx*(S~P>5aXqW0nv>wku4*brVesG8~m54EsnMj}aGQC-*JkQ1SFj>O=QMw|5*@Ma;{y#$!zcfSJT zZ^AUYU1dIVh3DOmFr)tjTa{5-rDCWin+(W_%UW}#=lv8xHW|u#3FIFTypr`OeL}u` zDu)P!fczmK4-obYZy#HTUc80*X)lJ*>io2Cg4`-;D-O{_Wj2eTj_ucDk%SN^^H7in zBgm&@Zf`8>=7%hP>Uylq5b`YE?JAr}Bb2U3l01u_4DLLMk?}0sIT%C6;BUa&h>&OT zK3C(|79r2#mx8edVfsVRiMH%=4R$;T6ddwb}0%cvt|zE7^q7&&roS2@%I51my1md7H@3 zm^xlcLMOBr@A3S!Uqfhne%gbu=sQ3beic8}v^tFhb({x*6A=Ps-VO3jNr%sj%_A(> zWG~*|!q)#QB)3Wi=J-v!%CR@%NfLz84Z9)6Oe}~IZ~P>Uo#F=yT>hfU>LzwTNd`mfpLT| zS#4o{0LD8A6+1uoE{RF+!k*_kg@ZSorx$8Hv&cg}1^}3J<@@N8Vq-dkbOW zkv{Jiw_$!om^j}KM@d_9J2tQg6OZwE&w&1o@Q(C(OYeXaL6FakQ-@d}kBQ1BcXG(G zN8br&j*w^BH^JC~P_bT<%ddaRC$B@zx(f?Kgo(+~od?Q#zuTSN$2_D0ZG3ol^VhwsHHE<(_a zSuM|+Pk{RvLdE-~$coL6FakXEn`cOMB-m4b||OjW`TO$gANV4`We{P`WZaDo+IWIE0G6BW#ZI zHRHgjyaDmoAmr8XD=cv26cw13zN&w%?F zLdDdfHnYPu(|{EY{0(+W2+j)PhOPkPB4N@B!W{Tp97G{hEYaL{VQ#(^E=By$5CT?s z1muIl3izhf6X;yR3yh#&f_FVaa0Cth9g0N=j-cZ~A1S^czVK8<+|Vb~=g9(@L<-U!3a0kHu6 za~8s|EQp<70ONTO3qb7q3hrGYluFj=hrn6!N37TohCdDB4+Cw{!`}jNMGqyu1aa{o zCAy!59}DiML@9{5y5Jao2#CwNYs_&V?xEOx5bH;4%mpAO4pHJ35WnlM#FHTYij|0b zhQAHs`mstBo{gKOgOwNvVtj8)jJO5F*7k68EvU~OAWnT19tk1+u%rR_Scqppobwvo zCPMm;AU+28J3{$;Af|Qz_b&kZzmCUq5XwITu~N9716&BsISA?0IcSfqp7#ZaDZ79e zLL14J1D_Fv=VGsfbcI=ncL1>j;&TzwyMovX@FK#L!62rT;a~X_{PQ{@eqVr^H{iDr z$`1iCRk()&tOn<7gmeRlZ2)f~OgRQb`9l0#DRPSdzIfB~{(_KR3F6K_!)qXlMHfQw%02+KP}8Vu_0s#-w6&zOuRFQn-O)j$o2)X|9hS{4k0}h#M1!35n>#O-T&fw zyCIZM1F;?%q$>cb!8ug8l_0#Gz^#&KaMmHDn?bw|@Djq56F`(N#lOr>h*}1)?_a?| zNS^^>DZt4>Tma%)fOSITKotEA_dyWKZUT|fAu`=m2NJ&mvkI{XA*AmCu?gTw1oIiO zVhuPuVOnWL^r;{k-bYVCNS_blR{+-`Oj!qF$_@Beei!~t?Tq-l0XqF1wniv_48&aF zJ`OM%oDm4=%^>Cj9FH*Nbr9w6Q z;zNMH2=Nez`fX@1gz~3B%-I>--vj&toU4WV3W)W>{Ug8^;CzUXeh#fTO`}Mo1q3;!%LR5vJ6FC_fVaR*T#Z0BSx#B82owAT9tnSBT{x-UfIT zp?npH{=0yC7Ql>8F%Kf7*Mc|=pjC(*hz9}g6XKU3_WBI!<(tiYT2EcLz^O=15YTS6}V~KmPB9PAwr$Y2BL`>U`8#4&$i$OdBaF-C* zfH>$2EG7`r8$iqh_%TBH10XU|g$DsH181#pp8~N`xK9K84V1ZxC~Kvnp36>^0p7%)cP^&j{%f z5c9u8yCS4Vg4pdVd}$dWJqg5V0IfnC0HXM7j9r9u4T$Feo)TgXh>~w`mWPl&0mKS` z1qkLd;+*p_1iPY5PDAu+5HEQN?gO19-yHh;ng6dw}Q9>;3kAAe+N@@1R!0Dyj}gx3opT?%43z{x_42k|Jty+TX_@oHhh`vXGyFc7~jN_Y<= zq-TLRsa?W53L$+Ah-0x6oQ;rP0HUIO!kdU-K9eV(jZQGo5}WMBt3MrD?2m||4iG~~ z9|ocxpi+oN5cdMyEyQsk-UN6Jp?ooj^-_hC0s3@A6%fi#2eC=GX8=qCXEH+i0uUDi zoQE(a2V%%3RYN_%?q96&QTha;pHgZMqb;|Nnu12KdPEjp*+7obq2 zd*ckG9Sx$QbHba1ke&+SCV;CErW^`lN(26tAA^6ZrJ!R0`tO|Z`XZDs07V&36jKvy!C_?%b5WfL

6RxRCGmc5X@)9@6SVJdtjXX1R87x@q0u) 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

)&I9< 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

=n2_0tAA}LaircvgyLh#PPC(36kas-$42;@J6 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%0AoIck_o)yXg6@yAb?S<4e6Dy?ZH-vNq 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

DYOs#*JeAgcmSkO~(m6tgKiplB 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 tP^q~;9KQ2 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