From 49b4d5fad80234ac0136f06881197d24b5d70d74 Mon Sep 17 00:00:00 2001 From: Timur Gafarov Date: Thu, 8 Jun 2017 12:33:35 +0300 Subject: [PATCH] Asset manager fixes, activate/deactivate FirstPersonView --- src/dagon/core/application.d | 0 src/dagon/core/event.d | 899 +- src/dagon/core/interfaces.d | 0 src/dagon/core/keycodes.d | 0 src/dagon/core/ownership.d | 0 src/dagon/core/vfs.d | 0 src/dagon/graphics/animmodel.d | 0 src/dagon/graphics/environment.d | 0 src/dagon/graphics/fpcamera.d | 0 src/dagon/graphics/fpview.d | 60 +- src/dagon/graphics/freeview.d | 8 +- src/dagon/graphics/genericmaterial.d | 0 src/dagon/graphics/light.d | 0 src/dagon/graphics/material.d | 24 +- src/dagon/graphics/mesh.d | 0 src/dagon/graphics/rc.d | 0 src/dagon/graphics/shapes.d | 0 src/dagon/graphics/tbcamera.d | 668 +- src/dagon/graphics/texture.d | 0 src/dagon/graphics/view.d | 0 src/dagon/logics/behaviour.d | 0 src/dagon/logics/controller.d | 0 src/dagon/logics/entity.d | 0 src/dagon/logics/stdbehaviour.d | 0 src/dagon/package.d | 0 src/dagon/resource/asset.d | 40 +- src/dagon/resource/boxfs.d | 4 +- src/dagon/resource/fontasset.d | 4 +- src/dagon/resource/iqm.d | 7 +- src/dagon/resource/obj.d | 186 +- src/dagon/resource/scene.d | 129 +- src/dagon/resource/serialization.d | 0 src/dagon/resource/textasset.d | 5 +- src/dagon/resource/textureasset.d | 4 +- src/dagon/templates/basescene.d | 10 +- src/dagon/ui/font.d | 0 src/dagon/ui/ftfont.d | 0 src/dagon/ui/textline.d | 0 src/derelict/freetype/ft.d | 724 +- src/derelict/freetype/ftfuncs.d | 758 +- src/derelict/freetype/fttypes.d | 5790 +++++------ src/derelict/openal/al.d | 348 +- src/derelict/openal/alfuncs.d | 510 +- src/derelict/openal/altypes.d | 504 +- src/derelict/opengl/cgl.d | 892 +- src/derelict/opengl/extfuncs.d | 4208 ++++---- src/derelict/opengl/extloader.d | 13270 ++++++++++++------------- src/derelict/opengl/exttypes.d | 7452 +++++++------- src/derelict/opengl/gl.d | 2096 ++-- src/derelict/opengl/glext.d | 66 +- src/derelict/opengl/glfuncs.d | 2718 ++--- src/derelict/opengl/gltypes.d | 2530 ++--- src/derelict/opengl/glu.d | 244 +- src/derelict/opengl/glufuncs.d | 292 +- src/derelict/opengl/glutypes.d | 408 +- src/derelict/opengl/glx.d | 590 +- src/derelict/opengl/wgl.d | 230 +- src/derelict/sdl2/functions.d | 0 src/derelict/sdl2/sdl.d | 0 src/derelict/sdl2/types.d | 0 src/derelict/util/compat.d | 384 +- src/derelict/util/exception.d | 310 +- src/derelict/util/loader.d | 302 +- src/derelict/util/sharedlib.d | 492 +- src/derelict/util/wintypes.d | 484 +- src/derelict/util/xtypes.d | 176 +- 66 files changed, 23927 insertions(+), 23899 deletions(-) mode change 100755 => 100644 src/dagon/core/application.d mode change 100755 => 100644 src/dagon/core/event.d mode change 100755 => 100644 src/dagon/core/interfaces.d mode change 100755 => 100644 src/dagon/core/keycodes.d mode change 100755 => 100644 src/dagon/core/ownership.d mode change 100755 => 100644 src/dagon/core/vfs.d mode change 100755 => 100644 src/dagon/graphics/animmodel.d mode change 100755 => 100644 src/dagon/graphics/environment.d mode change 100755 => 100644 src/dagon/graphics/fpcamera.d mode change 100755 => 100644 src/dagon/graphics/fpview.d mode change 100755 => 100644 src/dagon/graphics/freeview.d mode change 100755 => 100644 src/dagon/graphics/genericmaterial.d mode change 100755 => 100644 src/dagon/graphics/light.d mode change 100755 => 100644 src/dagon/graphics/material.d mode change 100755 => 100644 src/dagon/graphics/mesh.d mode change 100755 => 100644 src/dagon/graphics/rc.d mode change 100755 => 100644 src/dagon/graphics/shapes.d mode change 100755 => 100644 src/dagon/graphics/tbcamera.d mode change 100755 => 100644 src/dagon/graphics/texture.d mode change 100755 => 100644 src/dagon/graphics/view.d mode change 100755 => 100644 src/dagon/logics/behaviour.d mode change 100755 => 100644 src/dagon/logics/controller.d mode change 100755 => 100644 src/dagon/logics/entity.d mode change 100755 => 100644 src/dagon/logics/stdbehaviour.d mode change 100755 => 100644 src/dagon/package.d mode change 100755 => 100644 src/dagon/resource/asset.d mode change 100755 => 100644 src/dagon/resource/boxfs.d mode change 100755 => 100644 src/dagon/resource/fontasset.d mode change 100755 => 100644 src/dagon/resource/iqm.d mode change 100755 => 100644 src/dagon/resource/obj.d mode change 100755 => 100644 src/dagon/resource/scene.d mode change 100755 => 100644 src/dagon/resource/serialization.d mode change 100755 => 100644 src/dagon/resource/textasset.d mode change 100755 => 100644 src/dagon/resource/textureasset.d mode change 100755 => 100644 src/dagon/templates/basescene.d mode change 100755 => 100644 src/dagon/ui/font.d mode change 100755 => 100644 src/dagon/ui/ftfont.d mode change 100755 => 100644 src/dagon/ui/textline.d mode change 100755 => 100644 src/derelict/freetype/ft.d mode change 100755 => 100644 src/derelict/freetype/ftfuncs.d mode change 100755 => 100644 src/derelict/freetype/fttypes.d mode change 100755 => 100644 src/derelict/openal/al.d mode change 100755 => 100644 src/derelict/openal/alfuncs.d mode change 100755 => 100644 src/derelict/openal/altypes.d mode change 100755 => 100644 src/derelict/opengl/cgl.d mode change 100755 => 100644 src/derelict/opengl/extfuncs.d mode change 100755 => 100644 src/derelict/opengl/extloader.d mode change 100755 => 100644 src/derelict/opengl/exttypes.d mode change 100755 => 100644 src/derelict/opengl/gl.d mode change 100755 => 100644 src/derelict/opengl/glext.d mode change 100755 => 100644 src/derelict/opengl/glfuncs.d mode change 100755 => 100644 src/derelict/opengl/gltypes.d mode change 100755 => 100644 src/derelict/opengl/glu.d mode change 100755 => 100644 src/derelict/opengl/glufuncs.d mode change 100755 => 100644 src/derelict/opengl/glutypes.d mode change 100755 => 100644 src/derelict/opengl/glx.d mode change 100755 => 100644 src/derelict/opengl/wgl.d mode change 100755 => 100644 src/derelict/sdl2/functions.d mode change 100755 => 100644 src/derelict/sdl2/sdl.d mode change 100755 => 100644 src/derelict/sdl2/types.d mode change 100755 => 100644 src/derelict/util/compat.d mode change 100755 => 100644 src/derelict/util/exception.d mode change 100755 => 100644 src/derelict/util/loader.d mode change 100755 => 100644 src/derelict/util/sharedlib.d mode change 100755 => 100644 src/derelict/util/wintypes.d mode change 100755 => 100644 src/derelict/util/xtypes.d diff --git a/src/dagon/core/application.d b/src/dagon/core/application.d old mode 100755 new mode 100644 diff --git a/src/dagon/core/event.d b/src/dagon/core/event.d old mode 100755 new mode 100644 index 3e1c8e6c..194868f5 --- a/src/dagon/core/event.d +++ b/src/dagon/core/event.d @@ -1,465 +1,472 @@ -/* -Copyright (c) 2014-2016 Timur Gafarov - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. -*/ - -module dagon.core.event; - -import std.stdio; -import std.ascii; -import derelict.sdl2.sdl; +/* +Copyright (c) 2014-2016 Timur Gafarov + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. +*/ + +module dagon.core.event; + +import std.stdio; +import std.ascii; +import derelict.sdl2.sdl; import dlib.core.memory; -import dagon.core.ownership; - -enum EventType -{ - KeyDown, - KeyUp, - TextInput, - MouseMotion, - MouseButtonDown, - MouseButtonUp, - MouseWheel, - JoystickButtonDown, - JoystickButtonUp, - JoystickAxisMotion, - Resize, - FocusLoss, - FocusGain, - Quit, - UserEvent -} - -struct Event -{ - EventType type; - int key; - dchar unicode; - int button; - int joystickButton; - int joystickAxis; - int joystickAxisValue; - int width; - int height; - int userCode; - int mouseWheelX; - int mouseWheelY; -} - -class EventManager +import dagon.core.ownership; + +enum EventType +{ + KeyDown, + KeyUp, + TextInput, + MouseMotion, + MouseButtonDown, + MouseButtonUp, + MouseWheel, + JoystickButtonDown, + JoystickButtonUp, + JoystickAxisMotion, + Resize, + FocusLoss, + FocusGain, + Quit, + UserEvent +} + +struct Event +{ + EventType type; + int key; + dchar unicode; + int button; + int joystickButton; + int joystickAxis; + int joystickAxisValue; + int width; + int height; + int userCode; + int mouseWheelX; + int mouseWheelY; +} + +class EventManager { SDL_Window* window; - - enum maxNumEvents = 50; - Event[maxNumEvents] eventStack; - Event[maxNumEvents] userEventStack; - uint numEvents; - uint numUserEvents; - - bool running = true; - - bool[512] keyPressed = false; - bool[255] mouseButtonPressed = false; - int mouseX = 0; + + enum maxNumEvents = 50; + Event[maxNumEvents] eventStack; + Event[maxNumEvents] userEventStack; + uint numEvents; + uint numUserEvents; + + bool running = true; + + bool[512] keyPressed = false; + bool[255] mouseButtonPressed = false; + int mouseX = 0; int mouseY = 0; - bool enableKeyRepeat = false; - - double deltaTime = 0.0; - double averageDelta = 0.0; - uint deltaTimeMs = 0; - int fps = 0; - - //uint videoWidth; - //uint videoHeight; - - uint windowWidth; - uint windowHeight; - bool windowFocused = true; - - this(SDL_Window* win, uint winWidth, uint winHeight) + int mouseRelX = 0; + int mouseRelY = 0; + bool enableKeyRepeat = false; + + double deltaTime = 0.0; + double averageDelta = 0.0; + uint deltaTimeMs = 0; + int fps = 0; + + //uint videoWidth; + //uint videoHeight; + + uint windowWidth; + uint windowHeight; + bool windowFocused = true; + + this(SDL_Window* win, uint winWidth, uint winHeight) { window = win; - - windowWidth = winWidth; - windowHeight = winHeight; - - //auto videoInfo = SDL_GetVideoInfo(); - //videoWidth = videoInfo.current_w; - //videoHeight = videoInfo.current_h; - } - - void addEvent(Event e) - { - if (numEvents < maxNumEvents) - { - eventStack[numEvents] = e; - numEvents++; - } - else - writeln("Warning: event stack overflow"); - } - - void addUserEvent(Event e) - { - if (numUserEvents < maxNumEvents) - { - userEventStack[numUserEvents] = e; - numUserEvents++; - } - else - writeln("Warning: user event stack overflow"); - } - - void generateUserEvent(int code) - { - Event e = Event(EventType.UserEvent); - e.userCode = code; - addUserEvent(e); - } - - void update() - { - numEvents = 0; - updateTimer(); - - //if (SDL_WasInit(SDL_INIT_JOYSTICK)) - // SDL_JoystickUpdate(); - - for (uint i = 0; i < numUserEvents; i++) - { - Event e = userEventStack[i]; - addEvent(e); - } - - numUserEvents = 0; - - SDL_Event event; - - while(SDL_PollEvent(&event)) - { - Event e; - switch (event.type) - { + + windowWidth = winWidth; + windowHeight = winHeight; + + //auto videoInfo = SDL_GetVideoInfo(); + //videoWidth = videoInfo.current_w; + //videoHeight = videoInfo.current_h; + } + + void addEvent(Event e) + { + if (numEvents < maxNumEvents) + { + eventStack[numEvents] = e; + numEvents++; + } + else + writeln("Warning: event stack overflow"); + } + + void addUserEvent(Event e) + { + if (numUserEvents < maxNumEvents) + { + userEventStack[numUserEvents] = e; + numUserEvents++; + } + else + writeln("Warning: user event stack overflow"); + } + + void generateUserEvent(int code) + { + Event e = Event(EventType.UserEvent); + e.userCode = code; + addUserEvent(e); + } + + void update() + { + numEvents = 0; + updateTimer(); + + mouseRelX = 0; + mouseRelY = 0; + + //if (SDL_WasInit(SDL_INIT_JOYSTICK)) + // SDL_JoystickUpdate(); + + for (uint i = 0; i < numUserEvents; i++) + { + Event e = userEventStack[i]; + addEvent(e); + } + + numUserEvents = 0; + + SDL_Event event; + + while(SDL_PollEvent(&event)) + { + Event e; + switch (event.type) + { case SDL_KEYDOWN: if (event.key.repeat && !enableKeyRepeat) - break; - if ((event.key.keysym.unicode & 0xFF80) == 0) - { - auto asciiChar = event.key.keysym.unicode & 0x7F; - if (isPrintable(asciiChar)) - { - e = Event(EventType.TextInput); - e.unicode = asciiChar; - addEvent(e); - } - } - else - { - e = Event(EventType.TextInput); - e.unicode = event.key.keysym.unicode; - addEvent(e); - } - - keyPressed[event.key.keysym.scancode] = true; - e = Event(EventType.KeyDown); - e.key = event.key.keysym.scancode; - addEvent(e); - break; - - case SDL_KEYUP: - keyPressed[event.key.keysym.scancode] = false; - e = Event(EventType.KeyUp); - e.key = event.key.keysym.scancode; - addEvent(e); - break; - - case SDL_MOUSEMOTION: - mouseX = event.motion.x; - mouseY = windowHeight - event.motion.y; - break; - - case SDL_MOUSEBUTTONDOWN: - mouseButtonPressed[event.button.button] = true; - e = Event(EventType.MouseButtonDown); - e.button = event.button.button; - addEvent(e); - break; - - case SDL_MOUSEBUTTONUP: - mouseButtonPressed[event.button.button] = false; - e = Event(EventType.MouseButtonUp); - e.button = event.button.button; - addEvent(e); - break; - - case SDL_MOUSEWHEEL: - e = Event(EventType.MouseWheel); - e.mouseWheelX = event.wheel.x; - e.mouseWheelY = event.wheel.y; - addEvent(e); - break; - - case SDL_JOYBUTTONDOWN: - // TODO: add state modification - e = Event(EventType.JoystickButtonDown); - e.button = event.jbutton.button+1; - addEvent(e); - break; - - case SDL_JOYBUTTONUP: - // TODO: add state modification - e = Event(EventType.JoystickButtonUp); - e.button = event.jbutton.button+1; - addEvent(e); - break; - - case SDL_JOYAXISMOTION: - // TODO: add state modification - e = Event(EventType.JoystickAxisMotion); - e.joystickAxis = event.jaxis.axis; - e.joystickAxis = event.jaxis.value; - addEvent(e); - break; - - //case SDL_WINDOWEVENT_RESIZED: - case SDL_WINDOWEVENT: - if (event.window.event == SDL_WINDOWEVENT_SIZE_CHANGED) - { - windowWidth = event.window.data1; - windowHeight = event.window.data2; - e = Event(EventType.Resize); - e.width = windowWidth; - e.height = windowHeight; - addEvent(e); - } - break; -/* - case SDL_ACTIVEEVENT: - if (event.active.state & SDL_APPACTIVE) - { - if (event.active.gain == 0) - { - writeln("Deactivated"); - windowFocused = false; - e = Event(EventType.FocusLoss); - } - else - { - writeln("Activated"); - windowFocused = true; - e = Event(EventType.FocusGain); - } - } - else if (event.active.state & SDL_APPINPUTFOCUS) - { - if (event.active.gain == 0) - { - writeln("Lost focus"); - windowFocused = false; - e = Event(EventType.FocusLoss); - } - else - { - writeln("Gained focus"); - windowFocused = true; - e = Event(EventType.FocusGain); - } - } - addEvent(e); - break; -*/ - case SDL_QUIT: - running = false; - e = Event(EventType.Quit); - addEvent(e); - break; - - default: - break; - } - } - } - - void updateTimer() - { - static int currentTime; - static int lastTime; - - static int FPSTickCounter; - static int FPSCounter = 0; - - currentTime = SDL_GetTicks(); - auto elapsedTime = currentTime - lastTime; - lastTime = currentTime; - deltaTimeMs = elapsedTime; - deltaTime = cast(double)(elapsedTime) * 0.001; - - FPSTickCounter += elapsedTime; - FPSCounter++; - if (FPSTickCounter >= 1000) // 1 sec interval - { - fps = FPSCounter; - FPSCounter = 0; - FPSTickCounter = 0; - averageDelta = 1.0 / cast(double)(fps); - } + break; + if ((event.key.keysym.unicode & 0xFF80) == 0) + { + auto asciiChar = event.key.keysym.unicode & 0x7F; + if (isPrintable(asciiChar)) + { + e = Event(EventType.TextInput); + e.unicode = asciiChar; + addEvent(e); + } + } + else + { + e = Event(EventType.TextInput); + e.unicode = event.key.keysym.unicode; + addEvent(e); + } + + keyPressed[event.key.keysym.scancode] = true; + e = Event(EventType.KeyDown); + e.key = event.key.keysym.scancode; + addEvent(e); + break; + + case SDL_KEYUP: + keyPressed[event.key.keysym.scancode] = false; + e = Event(EventType.KeyUp); + e.key = event.key.keysym.scancode; + addEvent(e); + break; + + case SDL_MOUSEMOTION: + mouseX = event.motion.x; + mouseY = windowHeight - event.motion.y; + mouseRelX = event.motion.xrel; + mouseRelY = event.motion.yrel; + break; + + case SDL_MOUSEBUTTONDOWN: + mouseButtonPressed[event.button.button] = true; + e = Event(EventType.MouseButtonDown); + e.button = event.button.button; + addEvent(e); + break; + + case SDL_MOUSEBUTTONUP: + mouseButtonPressed[event.button.button] = false; + e = Event(EventType.MouseButtonUp); + e.button = event.button.button; + addEvent(e); + break; + + case SDL_MOUSEWHEEL: + e = Event(EventType.MouseWheel); + e.mouseWheelX = event.wheel.x; + e.mouseWheelY = event.wheel.y; + addEvent(e); + break; + + case SDL_JOYBUTTONDOWN: + // TODO: add state modification + e = Event(EventType.JoystickButtonDown); + e.button = event.jbutton.button+1; + addEvent(e); + break; + + case SDL_JOYBUTTONUP: + // TODO: add state modification + e = Event(EventType.JoystickButtonUp); + e.button = event.jbutton.button+1; + addEvent(e); + break; + + case SDL_JOYAXISMOTION: + // TODO: add state modification + e = Event(EventType.JoystickAxisMotion); + e.joystickAxis = event.jaxis.axis; + e.joystickAxis = event.jaxis.value; + addEvent(e); + break; + + //case SDL_WINDOWEVENT_RESIZED: + case SDL_WINDOWEVENT: + if (event.window.event == SDL_WINDOWEVENT_SIZE_CHANGED) + { + windowWidth = event.window.data1; + windowHeight = event.window.data2; + e = Event(EventType.Resize); + e.width = windowWidth; + e.height = windowHeight; + addEvent(e); + } + break; +/* + case SDL_ACTIVEEVENT: + if (event.active.state & SDL_APPACTIVE) + { + if (event.active.gain == 0) + { + writeln("Deactivated"); + windowFocused = false; + e = Event(EventType.FocusLoss); + } + else + { + writeln("Activated"); + windowFocused = true; + e = Event(EventType.FocusGain); + } + } + else if (event.active.state & SDL_APPINPUTFOCUS) + { + if (event.active.gain == 0) + { + writeln("Lost focus"); + windowFocused = false; + e = Event(EventType.FocusLoss); + } + else + { + writeln("Gained focus"); + windowFocused = true; + e = Event(EventType.FocusGain); + } + } + addEvent(e); + break; +*/ + case SDL_QUIT: + running = false; + e = Event(EventType.Quit); + addEvent(e); + break; + + default: + break; + } + } + } + + void updateTimer() + { + static int currentTime; + static int lastTime; + + static int FPSTickCounter; + static int FPSCounter = 0; + + currentTime = SDL_GetTicks(); + auto elapsedTime = currentTime - lastTime; + lastTime = currentTime; + deltaTimeMs = elapsedTime; + deltaTime = cast(double)(elapsedTime) * 0.001; + + FPSTickCounter += elapsedTime; + FPSCounter++; + if (FPSTickCounter >= 1000) // 1 sec interval + { + fps = FPSCounter; + FPSCounter = 0; + FPSTickCounter = 0; + averageDelta = 1.0 / cast(double)(fps); + } + } + + void setMouse(int x, int y) + { + SDL_WarpMouseInWindow(window, x, y); + mouseX = x; + mouseY = y; } - void setMouse(int x, int y) + void setMouseToCenter() { - SDL_WarpMouseInWindow(window, x, y); - mouseX = x; - mouseY = y; + float x = (cast(float)windowWidth)/2; + float y = (cast(float)windowHeight)/2; + setMouse(cast(int)x, cast(int)y); + } +/* + void setMouse(int x, int y) + { + SDL_WarpMouseInWindow(window, mx, my); + mouseX = x; + mouseY = y; } - void setMouseToCenter() - { - float x = (cast(float)windowWidth)/2; - float y = (cast(float)windowHeight)/2; - setMouse(cast(int)x, cast(int)y); - } -/* - void setMouse(int x, int y) - { - SDL_WarpMouseInWindow(window, mx, my); - mouseX = x; - mouseY = y; - } - - void setMouseToCenter() - { - float x = (cast(float)windowWidth)/2; - float y = (cast(float)windowHeight)/2; - SDL_WarpMouse(cast(ushort)x, cast(ushort)(y)); - mouseX = cast(int)x; - mouseY = cast(int)y; - } -*/ - void showCursor(bool mode) - { - SDL_ShowCursor(mode); - } - - float aspectRatio() - { - return cast(float)windowWidth / cast(float)windowHeight; - } -} - -abstract class EventListener: Owner -{ - EventManager eventManager; + void setMouseToCenter() + { + float x = (cast(float)windowWidth)/2; + float y = (cast(float)windowHeight)/2; + SDL_WarpMouse(cast(ushort)x, cast(ushort)(y)); + mouseX = cast(int)x; + mouseY = cast(int)y; + } +*/ + void showCursor(bool mode) + { + SDL_ShowCursor(mode); + } + + float aspectRatio() + { + return cast(float)windowWidth / cast(float)windowHeight; + } +} + +abstract class EventListener: Owner +{ + EventManager eventManager; bool enabled = true; this(EventManager emngr, Owner owner) { super(owner); eventManager = emngr; - } - - protected void generateUserEvent(int code) - { - eventManager.generateUserEvent(code); - } - - void processEvents() - { - if (!enabled) - return; - - for (uint i = 0; i < eventManager.numEvents; i++) - { - Event* e = &eventManager.eventStack[i]; - processEvent(e); - } - } - - void processEvent(Event* e) - { - switch(e.type) - { - case EventType.KeyDown: - onKeyDown(e.key); - break; - case EventType.KeyUp: - onKeyUp(e.key); - break; - case EventType.TextInput: - onTextInput(e.unicode); - break; - case EventType.MouseButtonDown: - onMouseButtonDown(e.button); - break; - case EventType.MouseButtonUp: - onMouseButtonUp(e.button); - break; - case EventType.MouseWheel: - onMouseWheel(e.mouseWheelX, e.mouseWheelY); - break; - case EventType.JoystickButtonDown: - onJoystickButtonDown(e.joystickButton); - break; - case EventType.JoystickButtonUp: - onJoystickButtonDown(e.joystickButton); - break; - case EventType.JoystickAxisMotion: - onJoystickAxisMotion(e.joystickAxis, e.joystickAxisValue); - break; - case EventType.Resize: - onResize(e.width, e.height); - break; - case EventType.FocusLoss: - onFocusLoss(); - break; - case EventType.FocusGain: - onFocusGain(); - break; - case EventType.Quit: - onQuit(); - break; - case EventType.UserEvent: - onUserEvent(e.userCode); - break; - default: - break; - } - } - - void onKeyDown(int key) {} - void onKeyUp(int key) {} - void onTextInput(dchar code) {} - void onMouseButtonDown(int button) {} - void onMouseButtonUp(int button) {} - void onMouseWheel(int x, int y) {} - void onJoystickButtonDown(int button) {} - void onJoystickButtonUp(int button) {} - void onJoystickAxisMotion(int axis, int value) {} - void onResize(int width, int height) {} - void onFocusLoss() {} - void onFocusGain() {} - void onQuit() {} - void onUserEvent(int code) {} -} + } + + protected void generateUserEvent(int code) + { + eventManager.generateUserEvent(code); + } + + void processEvents() + { + if (!enabled) + return; + + for (uint i = 0; i < eventManager.numEvents; i++) + { + Event* e = &eventManager.eventStack[i]; + processEvent(e); + } + } + + void processEvent(Event* e) + { + switch(e.type) + { + case EventType.KeyDown: + onKeyDown(e.key); + break; + case EventType.KeyUp: + onKeyUp(e.key); + break; + case EventType.TextInput: + onTextInput(e.unicode); + break; + case EventType.MouseButtonDown: + onMouseButtonDown(e.button); + break; + case EventType.MouseButtonUp: + onMouseButtonUp(e.button); + break; + case EventType.MouseWheel: + onMouseWheel(e.mouseWheelX, e.mouseWheelY); + break; + case EventType.JoystickButtonDown: + onJoystickButtonDown(e.joystickButton); + break; + case EventType.JoystickButtonUp: + onJoystickButtonDown(e.joystickButton); + break; + case EventType.JoystickAxisMotion: + onJoystickAxisMotion(e.joystickAxis, e.joystickAxisValue); + break; + case EventType.Resize: + onResize(e.width, e.height); + break; + case EventType.FocusLoss: + onFocusLoss(); + break; + case EventType.FocusGain: + onFocusGain(); + break; + case EventType.Quit: + onQuit(); + break; + case EventType.UserEvent: + onUserEvent(e.userCode); + break; + default: + break; + } + } + + void onKeyDown(int key) {} + void onKeyUp(int key) {} + void onTextInput(dchar code) {} + void onMouseButtonDown(int button) {} + void onMouseButtonUp(int button) {} + void onMouseWheel(int x, int y) {} + void onJoystickButtonDown(int button) {} + void onJoystickButtonUp(int button) {} + void onJoystickAxisMotion(int axis, int value) {} + void onResize(int width, int height) {} + void onFocusLoss() {} + void onFocusGain() {} + void onQuit() {} + void onUserEvent(int code) {} +} diff --git a/src/dagon/core/interfaces.d b/src/dagon/core/interfaces.d old mode 100755 new mode 100644 diff --git a/src/dagon/core/keycodes.d b/src/dagon/core/keycodes.d old mode 100755 new mode 100644 diff --git a/src/dagon/core/ownership.d b/src/dagon/core/ownership.d old mode 100755 new mode 100644 diff --git a/src/dagon/core/vfs.d b/src/dagon/core/vfs.d old mode 100755 new mode 100644 diff --git a/src/dagon/graphics/animmodel.d b/src/dagon/graphics/animmodel.d old mode 100755 new mode 100644 diff --git a/src/dagon/graphics/environment.d b/src/dagon/graphics/environment.d old mode 100755 new mode 100644 diff --git a/src/dagon/graphics/fpcamera.d b/src/dagon/graphics/fpcamera.d old mode 100755 new mode 100644 diff --git a/src/dagon/graphics/fpview.d b/src/dagon/graphics/fpview.d old mode 100755 new mode 100644 index 33e30738..2a18d93b --- a/src/dagon/graphics/fpview.d +++ b/src/dagon/graphics/fpview.d @@ -4,6 +4,8 @@ import dlib.core.memory; import dlib.math.vector; import dlib.math.matrix; +import derelict.sdl2.sdl; + import dagon.core.ownership; import dagon.core.event; @@ -12,7 +14,10 @@ import dagon.graphics.view; class FirstPersonView: EventListener, View { - FirstPersonCamera camera; + FirstPersonCamera camera; + int oldMouseX = 0; + int oldMouseY = 0; + bool _active = false; this(EventManager emngr, Vector3f camPos, Owner owner) { @@ -24,22 +29,46 @@ class FirstPersonView: EventListener, View void update(double dt) { processEvents(); - - int hWidth = eventManager.windowWidth / 2; - int hHeight = eventManager.windowHeight / 2; - float turn_m = -(hWidth - eventManager.mouseX) * 0.1f; - float pitch_m = (hHeight - eventManager.mouseY) * 0.1f; - camera.pitch += pitch_m; - camera.turn += turn_m; - float pitchLimitMax = 60.0f; - float pitchLimitMin = -60.0f; - if (camera.pitch > pitchLimitMax) - camera.pitch = pitchLimitMax; - else if (camera.pitch < pitchLimitMin) - camera.pitch = pitchLimitMin; - eventManager.setMouseToCenter(); + + if (_active) + { + float turn_m = (eventManager.mouseRelX) * 0.2f; + float pitch_m = (eventManager.mouseRelY) * 0.2f; + + camera.pitch += pitch_m; + camera.turn += turn_m; + float pitchLimitMax = 60.0f; + float pitchLimitMin = -60.0f; + if (camera.pitch > pitchLimitMax) + camera.pitch = pitchLimitMax; + else if (camera.pitch < pitchLimitMin) + camera.pitch = pitchLimitMin; + } + camera.update(dt); } + + void active(bool v) + { + if (v) + { + oldMouseX = eventManager.mouseX; + oldMouseY = eventManager.mouseY; + SDL_SetRelativeMouseMode(1); + } + else + { + SDL_SetRelativeMouseMode(0); + eventManager.setMouse(oldMouseX, eventManager.windowHeight - oldMouseY); + } + + _active = v; + } + + bool active() + { + return _active; + } Matrix4x4f viewMatrix() { @@ -51,4 +80,3 @@ class FirstPersonView: EventListener, View return camera.invViewMatrix(); } } - diff --git a/src/dagon/graphics/freeview.d b/src/dagon/graphics/freeview.d old mode 100755 new mode 100644 index 355bce62..7eee3a55 --- a/src/dagon/graphics/freeview.d +++ b/src/dagon/graphics/freeview.d @@ -44,7 +44,7 @@ class Freeview: EventListener, View override void onMouseButtonDown(int button) { - if (button == MB_MIDDLE) + if (button == MB_LEFT) { prevMouseX = eventManager.mouseX; prevMouseY = eventManager.mouseY; @@ -65,20 +65,20 @@ class Freeview: EventListener, View { processEvents(); - if (eventManager.mouseButtonPressed[MB_MIDDLE] && eventManager.keyPressed[KEY_LSHIFT]) + if (eventManager.mouseButtonPressed[MB_LEFT] && eventManager.keyPressed[KEY_LSHIFT]) { float shift_x = (eventManager.mouseX - prevMouseX) * 0.1f; float shift_y = (eventManager.mouseY - prevMouseY) * 0.1f; Vector3f trans = camera.getUpVector * shift_y + camera.getRightVector * shift_x; camera.translateTarget(trans); } - else if (eventManager.mouseButtonPressed[MB_MIDDLE] && eventManager.keyPressed[KEY_LCTRL]) + else if (eventManager.mouseButtonPressed[MB_LEFT] && eventManager.keyPressed[KEY_LCTRL]) { float shift_x = (eventManager.mouseX - prevMouseX); float shift_y = (eventManager.mouseY - prevMouseY); camera.zoom((shift_x + shift_y) * 0.1f); } - else if (eventManager.mouseButtonPressed[MB_MIDDLE]) + else if (eventManager.mouseButtonPressed[MB_LEFT]) { float turn_m = (eventManager.mouseX - prevMouseX); float pitch_m = -(eventManager.mouseY - prevMouseY); diff --git a/src/dagon/graphics/genericmaterial.d b/src/dagon/graphics/genericmaterial.d old mode 100755 new mode 100644 diff --git a/src/dagon/graphics/light.d b/src/dagon/graphics/light.d old mode 100755 new mode 100644 diff --git a/src/dagon/graphics/material.d b/src/dagon/graphics/material.d old mode 100755 new mode 100644 index e6e06eff..58255a7b --- a/src/dagon/graphics/material.d +++ b/src/dagon/graphics/material.d @@ -9,18 +9,18 @@ import dagon.core.ownership; import dagon.graphics.texture; import dagon.graphics.rc; -enum -{ - CBlack = Color4f(0.0f, 0.0f, 0.0f, 1.0f), - CWhite = Color4f(1.0f, 1.0f, 1.0f, 1.0f), - CRed = Color4f(1.0f, 0.0f, 0.0f, 1.0f), - COrange = Color4f(1.0f, 0.5f, 0.0f, 1.0f), - CYellow = Color4f(1.0f, 1.0f, 0.0f, 1.0f), - CGreen = Color4f(0.0f, 1.0f, 0.0f, 1.0f), - CCyan = Color4f(0.0f, 1.0f, 1.0f, 1.0f), - CBlue = Color4f(0.0f, 0.0f, 1.0f, 1.0f), - CPurple = Color4f(0.5f, 0.0f, 1.0f, 1.0f), - CMagenta = Color4f(1.0f, 0.0f, 1.0f, 1.0f) +enum +{ + CBlack = Color4f(0.0f, 0.0f, 0.0f, 1.0f), + CWhite = Color4f(1.0f, 1.0f, 1.0f, 1.0f), + CRed = Color4f(1.0f, 0.0f, 0.0f, 1.0f), + COrange = Color4f(1.0f, 0.5f, 0.0f, 1.0f), + CYellow = Color4f(1.0f, 1.0f, 0.0f, 1.0f), + CGreen = Color4f(0.0f, 1.0f, 0.0f, 1.0f), + CCyan = Color4f(0.0f, 1.0f, 1.0f, 1.0f), + CBlue = Color4f(0.0f, 0.0f, 1.0f, 1.0f), + CPurple = Color4f(0.5f, 0.0f, 1.0f, 1.0f), + CMagenta = Color4f(1.0f, 0.0f, 1.0f, 1.0f) } enum MaterialInputType diff --git a/src/dagon/graphics/mesh.d b/src/dagon/graphics/mesh.d old mode 100755 new mode 100644 diff --git a/src/dagon/graphics/rc.d b/src/dagon/graphics/rc.d old mode 100755 new mode 100644 diff --git a/src/dagon/graphics/shapes.d b/src/dagon/graphics/shapes.d old mode 100755 new mode 100644 diff --git a/src/dagon/graphics/tbcamera.d b/src/dagon/graphics/tbcamera.d old mode 100755 new mode 100644 index ade75da1..041b3544 --- a/src/dagon/graphics/tbcamera.d +++ b/src/dagon/graphics/tbcamera.d @@ -1,334 +1,334 @@ -module dagon.graphics.tbcamera; - -import std.math; - -import dlib.core.memory; -import dlib.math.utils; -import dlib.math.vector; -import dlib.math.matrix; -import dlib.math.transformation; -import dlib.math.quaternion; - -final class TrackballCamera -{ - private: - - Vector3f center; - float distance; - Quaternionf rotPitch; - Quaternionf rotTurn; - Quaternionf rotRoll; - Matrix4x4f transform; - Matrix4x4f invTransform; - - float rotPitchTheta = 0.0f; - float rotTurnTheta = 0.0f; - float rotRollTheta = 0.0f; - - float pitch_current_theta = 0.0f; - float pitch_target_theta = 0.0f; - float turn_current_theta = 0.0f; - float turn_target_theta = 0.0f; - float roll_current_theta = 0.0f; - float roll_target_theta = 0.0f; - - float current_move = 0.0f; - float target_move = 0.0f; - - float current_strafe = 0.0f; - float target_strafe = 0.0f; - - float current_zoom = 0.0f; - float target_zoom = 0.0f; - - bool zoomIn = false; - float zoom_smooth = 2.0f; - - Vector3f current_translate; - Vector3f target_translate; - - public bool movingToTarget = false; - - public: - - this() - { - center = Vector3f(0.0f, 0.0f, 0.0f); - rotPitch = rotationQuaternion(Vector3f(1.0f,0.0f,0.0f), 0.0f); - rotTurn = rotationQuaternion(Vector3f(0.0f,1.0f,0.0f), 0.0f); - rotRoll = rotationQuaternion(Vector3f(0.0f,0.0f,1.0f), 0.0f); - transform = Matrix4x4f.identity; - invTransform = Matrix4x4f.identity; - distance = 10.0f; - - current_translate = Vector3f(0.0f, 0.0f, 0.0f); - target_translate = Vector3f(0.0f, 0.0f, 0.0f); - } - - void reset() - { - center = Vector3f(0.0f, 0.0f, 0.0f); - rotPitch = rotationQuaternion(Vector3f(1.0f,0.0f,0.0f), 0.0f); - rotTurn = rotationQuaternion(Vector3f(0.0f,1.0f,0.0f), 0.0f); - rotRoll = rotationQuaternion(Vector3f(0.0f,0.0f,1.0f), 0.0f); - transform = Matrix4x4f.identity; - invTransform = Matrix4x4f.identity; - distance = 10.0f; - - current_translate = Vector3f(0.0f, 0.0f, 0.0f); - target_translate = Vector3f(0.0f, 0.0f, 0.0f); - - rotPitchTheta = 0.0f; - rotTurnTheta = 0.0f; - rotRollTheta = 0.0f; - - pitch_current_theta = 0.0f; - pitch_target_theta = 0.0f; - turn_current_theta = 0.0f; - turn_target_theta = 0.0f; - roll_current_theta = 0.0f; - roll_target_theta = 0.0f; - - current_move = 0.0f; - target_move = 0.0f; - - current_strafe = 0.0f; - target_strafe = 0.0f; - - current_zoom = 0.0f; - target_zoom = 0.0f; - } - - void update(double dt) - { - if (current_zoom < target_zoom) - { - current_zoom += (target_zoom - current_zoom) / zoom_smooth; - if (zoomIn) - zoom((target_zoom - current_zoom) / zoom_smooth); - else - zoom(-(target_zoom - current_zoom) / zoom_smooth); - } - if (current_translate != target_translate) - { - Vector3f t = (target_translate - current_translate)/30.0f; - current_translate += t; - translateTarget(t); - } - - rotPitch = rotationQuaternion(Vector3f(1.0f,0.0f,0.0f), degtorad(rotPitchTheta)); - rotTurn = rotationQuaternion(Vector3f(0.0f,1.0f,0.0f), degtorad(rotTurnTheta)); - rotRoll = rotationQuaternion(Vector3f(0.0f,0.0f,1.0f), degtorad(rotRollTheta)); - - Quaternionf q = rotPitch * rotTurn * rotRoll; - Matrix4x4f rot = q.toMatrix4x4(); - invTransform = translationMatrix(Vector3f(0.0f, 0.0f, -distance)) * rot * translationMatrix(center); - - transform = invTransform.inverse; - } - - void pitch(float theta) - { - rotPitchTheta += theta; - } - - void turn(float theta) - { - rotTurnTheta += theta; - } - - void roll(float theta) - { - rotRollTheta += theta; - } - - float getPitch() - { - return rotPitchTheta; - } - - float getTurn() - { - return rotTurnTheta; - } - - float getRoll() - { - return rotRollTheta; - } - - void pitchSmooth(float theta, float smooth) - { - pitch_target_theta += theta; - float pitch_theta = (pitch_target_theta - pitch_current_theta) / smooth; - pitch_current_theta += pitch_theta; - pitch(pitch_theta); - } - - void turnSmooth(float theta, float smooth) - { - turn_target_theta += theta; - float turn_theta = (turn_target_theta - turn_current_theta) / smooth; - turn_current_theta += turn_theta; - turn(turn_theta); - } - - void rollSmooth(float theta, float smooth) - { - roll_target_theta += theta; - float roll_theta = (roll_target_theta - roll_current_theta) / smooth; - roll_current_theta += roll_theta; - roll(roll_theta); - } - - void setTarget(Vector3f pos) - { - center = pos; - } - - void setTargetSmooth(Vector3f pos, float smooth) - { - current_translate = center; - target_translate = -pos; - } - - void translateTarget(Vector3f pos) - { - center += pos; - } - - Vector3f getTarget() - { - return center; - } - - void setZoom(float z) - { - distance = z; - } - - void zoom(float z) - { - distance -= z; - } - - void zoomSmooth(float z, float smooth) - { - zoom_smooth = smooth; - - if (z < 0) - zoomIn = true; - else - zoomIn = false; - - target_zoom += abs(z); - } - - Vector3f getPosition() - { - return transform.translation(); - } - - Vector3f getRightVector() - { - return transform.right(); - } - - Vector3f getUpVector() - { - return transform.up(); - } - - Vector3f getDirectionVector() - { - return transform.forward(); - } - - Matrix4x4f transformation() - { - return transform; - } - - Matrix4x4f viewMatrix() - { - return invTransform; - } - - Matrix4x4f invViewMatrix() - { - return transform; - } - - float getDistance() - { - return distance; - } - - void strafe(float speed) - { - Vector3f Forward; - Forward.x = cos(degtorad(rotTurnTheta)); - Forward.y = 0.0f; - Forward.z = sin(degtorad(rotTurnTheta)); - center += Forward * speed; - } - - void strafeSmooth(float speed, float smooth) - { - target_move += speed; - float move_sp = (target_move - current_move) / smooth; - current_move += move_sp; - strafe(move_sp); - } - - void move(float speed) - { - Vector3f Left; - Left.x = cos(degtorad(rotTurnTheta+90.0f)); - Left.y = 0.0f; - Left.z = sin(degtorad(rotTurnTheta+90.0f)); - center += Left * speed; - } - - void moveSmooth(float speed, float smooth) - { - target_strafe += speed; - float strafe_sp = (target_strafe - current_strafe) / smooth; - current_strafe += strafe_sp; - move(strafe_sp); - } - - void screenToWorld( - int scrx, - int scry, - int scrw, - int scrh, - float yfov, - ref float worldx, - ref float worldy, - bool snap) - { - Vector3f camPos = getPosition(); - Vector3f camDir = getDirectionVector(); - - float aspect = cast(float)scrw / cast(float)scrh; - - float xfov = fovXfromY(yfov, aspect); - - float tfov1 = tan(yfov*PI/360.0f); - float tfov2 = tan(xfov*PI/360.0f); - - Vector3f camUp = getUpVector() * tfov1; - Vector3f camRight = getRightVector() * tfov2; - - float width = 1.0f - 2.0f * cast(float)(scrx) / cast(float)(scrw); - float height = 1.0f - 2.0f * cast(float)(scry) / cast(float)(scrh); - - float mx = camDir.x + camUp.x * height + camRight.x * width; - float my = camDir.y + camUp.y * height + camRight.y * width; - float mz = camDir.z + camUp.z * height + camRight.z * width; - - worldx = snap? floor(camPos.x - mx * camPos.y / my) : (camPos.x - mx * camPos.y / my); - worldy = snap? floor(camPos.z - mz * camPos.y / my) : (camPos.z - mz * camPos.y / my); - } -} +module dagon.graphics.tbcamera; + +import std.math; + +import dlib.core.memory; +import dlib.math.utils; +import dlib.math.vector; +import dlib.math.matrix; +import dlib.math.transformation; +import dlib.math.quaternion; + +final class TrackballCamera +{ + private: + + Vector3f center; + float distance; + Quaternionf rotPitch; + Quaternionf rotTurn; + Quaternionf rotRoll; + Matrix4x4f transform; + Matrix4x4f invTransform; + + float rotPitchTheta = 0.0f; + float rotTurnTheta = 0.0f; + float rotRollTheta = 0.0f; + + float pitch_current_theta = 0.0f; + float pitch_target_theta = 0.0f; + float turn_current_theta = 0.0f; + float turn_target_theta = 0.0f; + float roll_current_theta = 0.0f; + float roll_target_theta = 0.0f; + + float current_move = 0.0f; + float target_move = 0.0f; + + float current_strafe = 0.0f; + float target_strafe = 0.0f; + + float current_zoom = 0.0f; + float target_zoom = 0.0f; + + bool zoomIn = false; + float zoom_smooth = 2.0f; + + Vector3f current_translate; + Vector3f target_translate; + + public bool movingToTarget = false; + + public: + + this() + { + center = Vector3f(0.0f, 0.0f, 0.0f); + rotPitch = rotationQuaternion(Vector3f(1.0f,0.0f,0.0f), 0.0f); + rotTurn = rotationQuaternion(Vector3f(0.0f,1.0f,0.0f), 0.0f); + rotRoll = rotationQuaternion(Vector3f(0.0f,0.0f,1.0f), 0.0f); + transform = Matrix4x4f.identity; + invTransform = Matrix4x4f.identity; + distance = 10.0f; + + current_translate = Vector3f(0.0f, 0.0f, 0.0f); + target_translate = Vector3f(0.0f, 0.0f, 0.0f); + } + + void reset() + { + center = Vector3f(0.0f, 0.0f, 0.0f); + rotPitch = rotationQuaternion(Vector3f(1.0f,0.0f,0.0f), 0.0f); + rotTurn = rotationQuaternion(Vector3f(0.0f,1.0f,0.0f), 0.0f); + rotRoll = rotationQuaternion(Vector3f(0.0f,0.0f,1.0f), 0.0f); + transform = Matrix4x4f.identity; + invTransform = Matrix4x4f.identity; + distance = 10.0f; + + current_translate = Vector3f(0.0f, 0.0f, 0.0f); + target_translate = Vector3f(0.0f, 0.0f, 0.0f); + + rotPitchTheta = 0.0f; + rotTurnTheta = 0.0f; + rotRollTheta = 0.0f; + + pitch_current_theta = 0.0f; + pitch_target_theta = 0.0f; + turn_current_theta = 0.0f; + turn_target_theta = 0.0f; + roll_current_theta = 0.0f; + roll_target_theta = 0.0f; + + current_move = 0.0f; + target_move = 0.0f; + + current_strafe = 0.0f; + target_strafe = 0.0f; + + current_zoom = 0.0f; + target_zoom = 0.0f; + } + + void update(double dt) + { + if (current_zoom < target_zoom) + { + current_zoom += (target_zoom - current_zoom) / zoom_smooth; + if (zoomIn) + zoom((target_zoom - current_zoom) / zoom_smooth); + else + zoom(-(target_zoom - current_zoom) / zoom_smooth); + } + if (current_translate != target_translate) + { + Vector3f t = (target_translate - current_translate)/30.0f; + current_translate += t; + translateTarget(t); + } + + rotPitch = rotationQuaternion(Vector3f(1.0f,0.0f,0.0f), degtorad(rotPitchTheta)); + rotTurn = rotationQuaternion(Vector3f(0.0f,1.0f,0.0f), degtorad(rotTurnTheta)); + rotRoll = rotationQuaternion(Vector3f(0.0f,0.0f,1.0f), degtorad(rotRollTheta)); + + Quaternionf q = rotPitch * rotTurn * rotRoll; + Matrix4x4f rot = q.toMatrix4x4(); + invTransform = translationMatrix(Vector3f(0.0f, 0.0f, -distance)) * rot * translationMatrix(center); + + transform = invTransform.inverse; + } + + void pitch(float theta) + { + rotPitchTheta += theta; + } + + void turn(float theta) + { + rotTurnTheta += theta; + } + + void roll(float theta) + { + rotRollTheta += theta; + } + + float getPitch() + { + return rotPitchTheta; + } + + float getTurn() + { + return rotTurnTheta; + } + + float getRoll() + { + return rotRollTheta; + } + + void pitchSmooth(float theta, float smooth) + { + pitch_target_theta += theta; + float pitch_theta = (pitch_target_theta - pitch_current_theta) / smooth; + pitch_current_theta += pitch_theta; + pitch(pitch_theta); + } + + void turnSmooth(float theta, float smooth) + { + turn_target_theta += theta; + float turn_theta = (turn_target_theta - turn_current_theta) / smooth; + turn_current_theta += turn_theta; + turn(turn_theta); + } + + void rollSmooth(float theta, float smooth) + { + roll_target_theta += theta; + float roll_theta = (roll_target_theta - roll_current_theta) / smooth; + roll_current_theta += roll_theta; + roll(roll_theta); + } + + void setTarget(Vector3f pos) + { + center = pos; + } + + void setTargetSmooth(Vector3f pos, float smooth) + { + current_translate = center; + target_translate = -pos; + } + + void translateTarget(Vector3f pos) + { + center += pos; + } + + Vector3f getTarget() + { + return center; + } + + void setZoom(float z) + { + distance = z; + } + + void zoom(float z) + { + distance -= z; + } + + void zoomSmooth(float z, float smooth) + { + zoom_smooth = smooth; + + if (z < 0) + zoomIn = true; + else + zoomIn = false; + + target_zoom += abs(z); + } + + Vector3f getPosition() + { + return transform.translation(); + } + + Vector3f getRightVector() + { + return transform.right(); + } + + Vector3f getUpVector() + { + return transform.up(); + } + + Vector3f getDirectionVector() + { + return transform.forward(); + } + + Matrix4x4f transformation() + { + return transform; + } + + Matrix4x4f viewMatrix() + { + return invTransform; + } + + Matrix4x4f invViewMatrix() + { + return transform; + } + + float getDistance() + { + return distance; + } + + void strafe(float speed) + { + Vector3f Forward; + Forward.x = cos(degtorad(rotTurnTheta)); + Forward.y = 0.0f; + Forward.z = sin(degtorad(rotTurnTheta)); + center += Forward * speed; + } + + void strafeSmooth(float speed, float smooth) + { + target_move += speed; + float move_sp = (target_move - current_move) / smooth; + current_move += move_sp; + strafe(move_sp); + } + + void move(float speed) + { + Vector3f Left; + Left.x = cos(degtorad(rotTurnTheta+90.0f)); + Left.y = 0.0f; + Left.z = sin(degtorad(rotTurnTheta+90.0f)); + center += Left * speed; + } + + void moveSmooth(float speed, float smooth) + { + target_strafe += speed; + float strafe_sp = (target_strafe - current_strafe) / smooth; + current_strafe += strafe_sp; + move(strafe_sp); + } + + void screenToWorld( + int scrx, + int scry, + int scrw, + int scrh, + float yfov, + ref float worldx, + ref float worldy, + bool snap) + { + Vector3f camPos = getPosition(); + Vector3f camDir = getDirectionVector(); + + float aspect = cast(float)scrw / cast(float)scrh; + + float xfov = fovXfromY(yfov, aspect); + + float tfov1 = tan(yfov*PI/360.0f); + float tfov2 = tan(xfov*PI/360.0f); + + Vector3f camUp = getUpVector() * tfov1; + Vector3f camRight = getRightVector() * tfov2; + + float width = 1.0f - 2.0f * cast(float)(scrx) / cast(float)(scrw); + float height = 1.0f - 2.0f * cast(float)(scry) / cast(float)(scrh); + + float mx = camDir.x + camUp.x * height + camRight.x * width; + float my = camDir.y + camUp.y * height + camRight.y * width; + float mz = camDir.z + camUp.z * height + camRight.z * width; + + worldx = snap? floor(camPos.x - mx * camPos.y / my) : (camPos.x - mx * camPos.y / my); + worldy = snap? floor(camPos.z - mz * camPos.y / my) : (camPos.z - mz * camPos.y / my); + } +} diff --git a/src/dagon/graphics/texture.d b/src/dagon/graphics/texture.d old mode 100755 new mode 100644 diff --git a/src/dagon/graphics/view.d b/src/dagon/graphics/view.d old mode 100755 new mode 100644 diff --git a/src/dagon/logics/behaviour.d b/src/dagon/logics/behaviour.d old mode 100755 new mode 100644 diff --git a/src/dagon/logics/controller.d b/src/dagon/logics/controller.d old mode 100755 new mode 100644 diff --git a/src/dagon/logics/entity.d b/src/dagon/logics/entity.d old mode 100755 new mode 100644 diff --git a/src/dagon/logics/stdbehaviour.d b/src/dagon/logics/stdbehaviour.d old mode 100755 new mode 100644 diff --git a/src/dagon/package.d b/src/dagon/package.d old mode 100755 new mode 100644 diff --git a/src/dagon/resource/asset.d b/src/dagon/resource/asset.d old mode 100755 new mode 100644 index 9ecbc3f1..63c4e92e --- a/src/dagon/resource/asset.d +++ b/src/dagon/resource/asset.d @@ -20,8 +20,13 @@ struct MonitorInfo bool fileExists = false; } -abstract class Asset +abstract class Asset: Owner { + this(Owner o) + { + super(o); + } + MonitorInfo monitorInfo; bool threadSafePartLoaded = false; bool threadUnsafePartLoaded = false; @@ -30,7 +35,7 @@ abstract class Asset void release(); } -class AssetManager +class AssetManager: Owner { Dict!(Asset, string) assetsByFilename; VirtualFileSystem fs; @@ -42,11 +47,12 @@ class AssetManager protected double monitorTimer = 0.0; - //float loadingPercentage = 0.0f; float nextLoadingPercentage = 0.0f; - this() + this(Owner o = null) { + super(o); + assetsByFilename = New!(Dict!(Asset, string)); fs = New!VirtualFileSystem(); fs.mount("."); @@ -57,10 +63,6 @@ class AssetManager ~this() { - foreach(filename, asset; assetsByFilename) - { - Delete(asset); - } Delete(assetsByFilename); Delete(fs); Delete(imageFactory); @@ -152,12 +154,12 @@ class AssetManager void releaseAssets() { - foreach(filename, asset; assetsByFilename) - { - Delete(asset); - } + clearOwnedObjects(); Delete(assetsByFilename); assetsByFilename = New!(Dict!(Asset, string)); + + Delete(loadingThread); + loadingThread = New!Thread(&threadFunc); } bool loadAssetThreadSafePart(Asset asset, string filename) @@ -197,6 +199,7 @@ class AssetManager void loadThreadSafePart() { nextLoadingPercentage = 0.0f; + monitorTimer = 0.0; loadingThread.start(); } @@ -209,7 +212,7 @@ class AssetManager { bool res = true; foreach(filename, asset; assetsByFilename) - if (!asset.threadUnsafePartLoaded) + //if (!asset.threadUnsafePartLoaded) if (asset.threadSafePartLoaded) { res = asset.loadThreadUnsafePart(); @@ -220,6 +223,11 @@ class AssetManager break; } } + else + { + res = false; + break; + } return res; } @@ -251,16 +259,12 @@ class AssetManager if (!asset.monitorInfo.fileExists) { asset.monitorInfo.fileExists = true; - //if (callbackFunc) - // callbackFunc(FileEvent.Created); } else if (currentStat.modificationTimestamp > asset.monitorInfo.lastStat.modificationTimestamp || currentStat.sizeInBytes != asset.monitorInfo.lastStat.sizeInBytes) { - //if (callbackFunc) - // callbackFunc(FileEvent.Modified); reloadAsset(filename); asset.monitorInfo.lastStat = currentStat; } @@ -270,8 +274,6 @@ class AssetManager if (asset.monitorInfo.fileExists) { asset.monitorInfo.fileExists = false; - //if (callbackFunc) - // callbackFunc(FileEvent.Deleted); } } } diff --git a/src/dagon/resource/boxfs.d b/src/dagon/resource/boxfs.d old mode 100755 new mode 100644 index 4186371d..5298c6f2 --- a/src/dagon/resource/boxfs.d +++ b/src/dagon/resource/boxfs.d @@ -98,8 +98,8 @@ class BoxFileSystem: ReadOnlyFileSystem if (filename in files) { stat.isFile = true; - stat.isDirectory = false; - stat.sizeInBytes = files[filename].size; + stat.isDirectory = false; + stat.sizeInBytes = files[filename].size; stat.creationTimestamp = SysTime.init; stat.modificationTimestamp = SysTime.init; diff --git a/src/dagon/resource/fontasset.d b/src/dagon/resource/fontasset.d old mode 100755 new mode 100644 index c06e6d13..4ae698bb --- a/src/dagon/resource/fontasset.d +++ b/src/dagon/resource/fontasset.d @@ -5,6 +5,7 @@ import dlib.core.stream; import dlib.filesystem.filesystem; import dlib.filesystem.stdfs; +import dagon.core.ownership; import dagon.resource.asset; import dagon.ui.ftfont; @@ -13,8 +14,9 @@ class FontAsset: Asset FreeTypeFont font; ubyte[] buffer; - this(uint height) + this(uint height, Owner o) { + super(o); font = New!FreeTypeFont(height); } diff --git a/src/dagon/resource/iqm.d b/src/dagon/resource/iqm.d old mode 100755 new mode 100644 index 8b6ea30c..1f7660a0 --- a/src/dagon/resource/iqm.d +++ b/src/dagon/resource/iqm.d @@ -15,6 +15,7 @@ import dlib.math.matrix; import dlib.math.quaternion; import dlib.math.interpolation; +import dagon.core.ownership; import dagon.graphics.animmodel; import dagon.graphics.texture; import dagon.resource.asset; @@ -369,7 +370,7 @@ class IQMModel: AnimatedModel if (!mngr.assetExists(texFilename)) { - auto texAsset = New!TextureAsset(mngr.imageFactory); + auto texAsset = New!TextureAsset(mngr.imageFactory, mngr); mngr.addAsset(texAsset, texFilename); texAsset.threadSafePartLoaded = mngr.loadAssetThreadSafePart(texAsset, texFilename); facegroups[i].texture = texAsset.texture; @@ -641,9 +642,9 @@ class IQMAsset: Asset { IQMModel model; - this() + this(Owner o) { - + super(o); } ~this() diff --git a/src/dagon/resource/obj.d b/src/dagon/resource/obj.d old mode 100755 new mode 100644 index 96830b5d..a25cf2a8 --- a/src/dagon/resource/obj.d +++ b/src/dagon/resource/obj.d @@ -11,6 +11,7 @@ import dlib.geometry.triangle; import dlib.filesystem.filesystem; import dlib.filesystem.stdfs; import derelict.opengl.gl; +import dagon.core.ownership; import dagon.resource.asset; import dagon.graphics.mesh; @@ -22,7 +23,7 @@ struct ObjFace uint[3] n; } -class ObjMesh: Mesh +class ObjMesh: Owner, Mesh { Vector3f[] vertices; Vector3f[] normals; @@ -31,6 +32,11 @@ class ObjMesh: Mesh ObjFace[] faces; uint displayList; + this(Owner o) + { + super(o); + } + ~this() { if (glIsList(displayList)) @@ -75,9 +81,9 @@ class ObjMesh: Mesh int opApply(scope int delegate(Triangle t) dg) { - int result = 0; - - foreach(i, ref f; faces) + int result = 0; + + foreach(i, ref f; faces) { Triangle tri; @@ -90,12 +96,12 @@ class ObjMesh: Mesh tri.t1[0] = texcoords1[f.t1[0]]; tri.t1[1] = texcoords1[f.t1[1]]; tri.t1[2] = texcoords1[f.t1[2]]; - - result = dg(tri); - if (result) - break; - } - + + result = dg(tri); + if (result) + break; + } + return result; } @@ -116,15 +122,15 @@ class OBJAsset: Asset { ObjMesh mesh; - this() + this(Owner o) { - mesh = New!ObjMesh(); + super(o); + mesh = New!ObjMesh(this); } ~this() { - if (mesh) - Delete(mesh); + release(); } override bool loadThreadSafePart(string filename, InputStream istrm, ReadOnlyFileSystem fs, AssetManager mngr) @@ -137,7 +143,6 @@ class OBJAsset: Asset string fileStr = readText(istrm); foreach(line; lineSplitter(fileStr)) { - //writeln(line); if (line.startsWith("v ")) numVerts++; else if (line.startsWith("vn ")) @@ -157,95 +162,95 @@ class OBJAsset: Asset if (numFaces) mesh.faces = New!(ObjFace[])(numFaces); - float x, y, z; - int v1, v2, v3; - int t1, t2, t3; - int n1, n2, n3; - uint vi = 0; - uint ni = 0; - uint ti = 0; - uint fi = 0; + float x, y, z; + int v1, v2, v3; + int t1, t2, t3; + int n1, n2, n3; + uint vi = 0; + uint ni = 0; + uint ti = 0; + uint fi = 0; - foreach(line; lineSplitter(fileStr)) - { - //writeln(line); - if (line.startsWith("v ")) - { - if (formattedRead(line, "v %s %s %s", &x, &y, &z)) - { - mesh.vertices[vi] = Vector3f(x, y, z); - vi++; - } - //else - // writeln("error"); - } - else if (line.startsWith("vn")) + foreach(line; lineSplitter(fileStr)) { - if (formattedRead(line, "vn %s %s %s", &x, &y, &z)) + if (line.startsWith("v ")) { - mesh.normals[ni] = Vector3f(x, y, z); - ni++; + if (formattedRead(line, "v %s %s %s", &x, &y, &z)) + { + mesh.vertices[vi] = Vector3f(x, y, z); + vi++; + } + //else + // writeln("error"); } - //else - // writeln("error"); - } - else if (line.startsWith("vt")) - { - if (formattedRead(line, "vt %s %s", &x, &y)) + else if (line.startsWith("vn")) { - mesh.texcoords1[ti] = Vector2f(x, -y); - ti++; + if (formattedRead(line, "vn %s %s %s", &x, &y, &z)) + { + mesh.normals[ni] = Vector3f(x, y, z); + ni++; + } + //else + // writeln("error"); } - //else - // writeln("error"); - } - else if (line.startsWith("vp")) - { - } - else if (line.startsWith("f")) - { - if (formattedRead(line, "f %s/%s/%s %s/%s/%s %s/%s/%s", &v1, &t1, &n1, &v2, &t2, &n2, &v3, &t3, &n3)) + else if (line.startsWith("vt")) { - mesh.faces[fi].v[0] = v1-1; - mesh.faces[fi].v[1] = v2-1; - mesh.faces[fi].v[2] = v3-1; - - mesh.faces[fi].t1[0] = t1-1; - mesh.faces[fi].t1[1] = t2-1; - mesh.faces[fi].t1[2] = t3-1; - - mesh.faces[fi].n[0] = n1-1; - mesh.faces[fi].n[1] = n2-1; - mesh.faces[fi].n[2] = n3-1; - - fi++; + if (formattedRead(line, "vt %s %s", &x, &y)) + { + mesh.texcoords1[ti] = Vector2f(x, -y); + ti++; + } + //else + // writeln("error"); } - else if (formattedRead(line, "f %s//%s %s//%s %s//%s", &v1, &n1, &v2, &n2, &v3, &n3)) + else if (line.startsWith("vp")) { - mesh.faces[fi].v[0] = v1-1; - mesh.faces[fi].v[1] = v2-1; - mesh.faces[fi].v[2] = v3-1; - - mesh.faces[fi].n[0] = n1-1; - mesh.faces[fi].n[1] = n2-1; - mesh.faces[fi].n[2] = n3-1; - - fi++; } - else if (formattedRead(line, "f %s %s %s", &v1, &v2, &v3)) + else if (line.startsWith("f")) { - mesh.faces[fi].v[0] = v1-1; - mesh.faces[fi].v[1] = v2-1; - mesh.faces[fi].v[2] = v3-1; - - fi++; + if (formattedRead(line, "f %s/%s/%s %s/%s/%s %s/%s/%s", &v1, &t1, &n1, &v2, &t2, &n2, &v3, &t3, &n3)) + { + mesh.faces[fi].v[0] = v1-1; + mesh.faces[fi].v[1] = v2-1; + mesh.faces[fi].v[2] = v3-1; + + mesh.faces[fi].t1[0] = t1-1; + mesh.faces[fi].t1[1] = t2-1; + mesh.faces[fi].t1[2] = t3-1; + + mesh.faces[fi].n[0] = n1-1; + mesh.faces[fi].n[1] = n2-1; + mesh.faces[fi].n[2] = n3-1; + + fi++; + } + else if (formattedRead(line, "f %s//%s %s//%s %s//%s", &v1, &n1, &v2, &n2, &v3, &n3)) + { + mesh.faces[fi].v[0] = v1-1; + mesh.faces[fi].v[1] = v2-1; + mesh.faces[fi].v[2] = v3-1; + + mesh.faces[fi].n[0] = n1-1; + mesh.faces[fi].n[1] = n2-1; + mesh.faces[fi].n[2] = n3-1; + + fi++; + } + else if (formattedRead(line, "f %s %s %s", &v1, &v2, &v3)) + { + mesh.faces[fi].v[0] = v1-1; + mesh.faces[fi].v[1] = v2-1; + mesh.faces[fi].v[2] = v3-1; + + fi++; + } + //else + // writeln("error"); } - //else - // writeln("error"); } - } Delete(fileStr); + return true; } @@ -257,8 +262,7 @@ class OBJAsset: Asset override void release() { - if (mesh) - Delete(mesh); + clearOwnedObjects(); } } diff --git a/src/dagon/resource/scene.d b/src/dagon/resource/scene.d old mode 100755 new mode 100644 index 2f708034..d205cc1e --- a/src/dagon/resource/scene.d +++ b/src/dagon/resource/scene.d @@ -25,6 +25,8 @@ class Scene: EventListener SceneManager sceneManager; AssetManager assetManager; bool canRun = false; + bool releaseAtNextStep = false; + bool needToLoad = true; this(SceneManager smngr) { @@ -35,9 +37,7 @@ class Scene: EventListener ~this() { - if (!released) - onRelease(); - + release(); Delete(assetManager); } @@ -60,7 +60,7 @@ class Scene: EventListener text = cast(TextAsset)assetManager.getAsset(filename); else { - text = New!TextAsset(); + text = New!TextAsset(assetManager); addAsset(text, filename, preload); } return text; @@ -73,7 +73,7 @@ class Scene: EventListener tex = cast(TextureAsset)assetManager.getAsset(filename); else { - tex = New!TextureAsset(assetManager.imageFactory); + tex = New!TextureAsset(assetManager.imageFactory, assetManager); addAsset(tex, filename, preload); } return tex; @@ -86,7 +86,7 @@ class Scene: EventListener font = cast(FontAsset)assetManager.getAsset(filename); else { - font = New!FontAsset(height); + font = New!FontAsset(height, assetManager); addAsset(font, filename, preload); } return font; @@ -162,46 +162,48 @@ class Scene: EventListener void load() { - onAssetsRequest(); - - float p = assetManager.nextLoadingPercentage; - - assetManager.loadThreadSafePart(); - while(assetManager.isLoading) + if (needToLoad) { - sceneManager.application.beginRender(); - onLoading(p); - sceneManager.application.endRender(); - p = assetManager.nextLoadingPercentage; - } + onAssetsRequest(); + float p = assetManager.nextLoadingPercentage; - bool loaded = assetManager.loadThreadUnsafePart(); + assetManager.loadThreadSafePart(); - if (loaded) - { - onAllocate(); - released = false; - canRun = true; + while(assetManager.isLoading) + { + sceneManager.application.beginRender(); + onLoading(p); + sceneManager.application.endRender(); + p = assetManager.nextLoadingPercentage; + } + + bool loaded = assetManager.loadThreadUnsafePart(); + + if (loaded) + { + onAllocate(); + canRun = true; + needToLoad = false; + } + else + { + writeln("Exiting due to error while loading assets"); + canRun = false; + eventManager.running = false; + } } else { - eventManager.running = false; + canRun = true; } } - bool released = true; - void release() { - if (!released) - { - onRelease(); - clearOwnedObjects(); - assetManager.releaseAssets(); - - released = true; - } - + onRelease(); + clearOwnedObjects(); + assetManager.releaseAssets(); + needToLoad = true; canRun = false; } @@ -219,12 +221,21 @@ class Scene: EventListener void update(double dt) { - processEvents(); if (canRun) { + processEvents(); assetManager.updateMonitor(dt); onUpdate(dt); } + + if (releaseAtNextStep) + { + end(); + release(); + + releaseAtNextStep = false; + canRun = false; + } } void render() @@ -270,56 +281,24 @@ class SceneManager: Owner scenesByName.remove(name); } - void setCurrentScene(Scene scene) - { - if (currentScene) - currentScene.end(); - - currentScene = scene; - currentScene.start(); - } - - void setCurrentScene(string name) - { - setCurrentScene(scenesByName[name]); - } - - void loadAndSwitchToScene(string name, bool releaseCurrentScene = true) + void goToScene(string name, bool releaseCurrent = true) { - if (currentScene) + if (currentScene && releaseCurrent) { - currentScene.end(); - if (releaseCurrentScene) - { - currentScene.release(); - } + currentScene.releaseAtNextStep = true; } Scene scene = scenesByName[name]; - writefln("Loading scene \"%s\"...", name); + + writefln("Loading scene \"%s\"", name); + scene.load(); - writeln("OK"); - - writefln("Starting scene \"%s\"...", name); currentScene = scene; currentScene.start(); - writeln("OK"); - + writefln("Running...", name); } -/* - void preloadScene(string name) - { - scenesByName[name].load(); - } - - void releaseScene(string name) - { - scenesByName[name].release(); - } -*/ - void update(double dt) { if (currentScene) diff --git a/src/dagon/resource/serialization.d b/src/dagon/resource/serialization.d old mode 100755 new mode 100644 diff --git a/src/dagon/resource/textasset.d b/src/dagon/resource/textasset.d old mode 100755 new mode 100644 index 9153066c..533715fa --- a/src/dagon/resource/textasset.d +++ b/src/dagon/resource/textasset.d @@ -5,15 +5,16 @@ import dlib.core.stream; import dlib.filesystem.filesystem; import dlib.filesystem.stdfs; +import dagon.core.ownership; import dagon.resource.asset; class TextAsset: Asset { string text; - this() + this(Owner o) { - + super(o); } ~this() diff --git a/src/dagon/resource/textureasset.d b/src/dagon/resource/textureasset.d old mode 100755 new mode 100644 index 485f3ec7..244f057e --- a/src/dagon/resource/textureasset.d +++ b/src/dagon/resource/textureasset.d @@ -14,6 +14,7 @@ import dlib.image.io.jpeg; import dlib.image.unmanaged; import dlib.filesystem.filesystem; +import dagon.core.ownership; import dagon.resource.asset; import dagon.graphics.texture; @@ -23,8 +24,9 @@ class TextureAsset: Asset SuperImage image; Texture texture; - this(UnmanagedImageFactory imgfac) + this(UnmanagedImageFactory imgfac, Owner o) { + super(o); imageFactory = imgfac; texture = New!Texture(); } diff --git a/src/dagon/templates/basescene.d b/src/dagon/templates/basescene.d old mode 100755 new mode 100644 index fd3aab82..0d27f0ee --- a/src/dagon/templates/basescene.d +++ b/src/dagon/templates/basescene.d @@ -15,6 +15,8 @@ import dagon.graphics.rc; import dagon.graphics.view; import dagon.logics.entity; +import std.stdio; + class BaseScene3D: Scene { LightManager lightManager; @@ -39,14 +41,14 @@ class BaseScene3D: Scene Entity createEntity2D() { - Entity e = New!Entity(eventManager, this); + Entity e = New!Entity(eventManager, assetManager); entities2D.append(e); return e; } Entity createEntity3D() { - Entity e = New!Entity(eventManager, this); + Entity e = New!Entity(eventManager, assetManager); auto lr = New!LightReceiver(e, lightManager); entities3D.append(e); return e; @@ -60,8 +62,8 @@ class BaseScene3D: Scene override void onAllocate() { - lightManager = New!LightManager(this); - environment = New!Environment(this); + lightManager = New!LightManager(assetManager); + environment = New!Environment(assetManager); } override void onRelease() diff --git a/src/dagon/ui/font.d b/src/dagon/ui/font.d old mode 100755 new mode 100644 diff --git a/src/dagon/ui/ftfont.d b/src/dagon/ui/ftfont.d old mode 100755 new mode 100644 diff --git a/src/dagon/ui/textline.d b/src/dagon/ui/textline.d old mode 100755 new mode 100644 diff --git a/src/derelict/freetype/ft.d b/src/derelict/freetype/ft.d old mode 100755 new mode 100644 index 8905c487..b3f37358 --- a/src/derelict/freetype/ft.d +++ b/src/derelict/freetype/ft.d @@ -1,363 +1,363 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.freetype.ft; - -public -{ - import derelict.freetype.fttypes; - import derelict.freetype.ftfuncs; -} - -private -{ - import derelict.util.loader; -} - -class DerelictFTLoader : SharedLibLoader -{ -public: - this() - { - super( - "freetype.dll", - "libfreetype.so.6,libfreetype.so", - "libfreetype.dylib,libfreetype.6.dylib,libfreetype.6.3.16.dylib,/usr/X11/lib/libfreetype.dylib,/usr/X11/lib/libfreetype.6.dylib,/usr/X11/lib/libfreetype.6.3.16.dylib" - ); - } - -protected: - override void loadSymbols() - { - // freetype.h - bindFunc(cast(void**)&FT_Init_FreeType, "FT_Init_FreeType"); - bindFunc(cast(void**)&FT_Done_FreeType, "FT_Done_FreeType"); - bindFunc(cast(void**)&FT_New_Face, "FT_New_Face"); - bindFunc(cast(void**)&FT_New_Memory_Face, "FT_New_Memory_Face"); - bindFunc(cast(void**)&FT_Open_Face, "FT_Open_Face"); - bindFunc(cast(void**)&FT_Attach_File, "FT_Attach_File"); - bindFunc(cast(void**)&FT_Attach_Stream, "FT_Attach_Stream"); - bindFunc(cast(void**)&FT_Reference_Face, "FT_Reference_Face"); - bindFunc(cast(void**)&FT_Done_Face, "FT_Done_Face"); - bindFunc(cast(void**)&FT_Select_Size, "FT_Select_Size"); - bindFunc(cast(void**)&FT_Request_Size, "FT_Request_Size"); - bindFunc(cast(void**)&FT_Set_Char_Size, "FT_Set_Char_Size"); - bindFunc(cast(void**)&FT_Set_Pixel_Sizes, "FT_Set_Pixel_Sizes"); - bindFunc(cast(void**)&FT_Load_Glyph, "FT_Load_Glyph"); - bindFunc(cast(void**)&FT_Load_Char, "FT_Load_Char"); - bindFunc(cast(void**)&FT_Set_Transform, "FT_Set_Transform"); - bindFunc(cast(void**)&FT_Render_Glyph, "FT_Render_Glyph"); - bindFunc(cast(void**)&FT_Get_Kerning, "FT_Get_Kerning"); - bindFunc(cast(void**)&FT_Get_Track_Kerning, "FT_Get_Track_Kerning"); - bindFunc(cast(void**)&FT_Get_Glyph_Name, "FT_Get_Glyph_Name"); - bindFunc(cast(void**)&FT_Get_Postscript_Name, "FT_Get_Postscript_Name"); - bindFunc(cast(void**)&FT_Select_Charmap, "FT_Select_Charmap"); - bindFunc(cast(void**)&FT_Set_Charmap, "FT_Set_Charmap"); - bindFunc(cast(void**)&FT_Get_Charmap_Index, "FT_Get_Charmap_Index"); - bindFunc(cast(void**)&FT_Get_Char_Index, "FT_Get_Char_Index"); - bindFunc(cast(void**)&FT_Get_First_Char, "FT_Get_First_Char"); - bindFunc(cast(void**)&FT_Get_Next_Char, "FT_Get_Next_Char"); - bindFunc(cast(void**)&FT_Get_Name_Index, "FT_Get_Name_Index"); - bindFunc(cast(void**)&FT_MulDiv, "FT_MulDiv"); - bindFunc(cast(void**)&FT_MulFix, "FT_MulFix"); - bindFunc(cast(void**)&FT_DivFix, "FT_DivFix"); - bindFunc(cast(void**)&FT_RoundFix, "FT_RoundFix"); - bindFunc(cast(void**)&FT_CeilFix, "FT_CeilFix"); - bindFunc(cast(void**)&FT_FloorFix, "FT_FloorFix"); - bindFunc(cast(void**)&FT_Vector_Transform, "FT_Vector_Transform"); - bindFunc(cast(void**)&FT_Library_Version, "FT_Library_Version"); - bindFunc(cast(void**)&FT_Face_CheckTrueTypePatents, "FT_Face_CheckTrueTypePatents"); - bindFunc(cast(void**)&FT_Face_SetUnpatentedHinting, "FT_Face_SetUnpatentedHinting"); - - // ftlist. - bindFunc(cast(void**)&FT_List_Find, "FT_List_Find"); - bindFunc(cast(void**)&FT_List_Add, "FT_List_Add"); - bindFunc(cast(void**)&FT_List_Insert, "FT_List_Insert"); - bindFunc(cast(void**)&FT_List_Remove, "FT_List_Remove"); - bindFunc(cast(void**)&FT_List_Up, "FT_List_Up"); - bindFunc(cast(void**)&FT_List_Iterate, "FT_List_Iterate"); - bindFunc(cast(void**)&FT_List_Finalize, "FT_List_Finalize"); - - // ftoutln - bindFunc(cast(void**)&FT_Outline_Decompose, "FT_Outline_Decompose"); - bindFunc(cast(void**)&FT_Outline_New, "FT_Outline_New"); - bindFunc(cast(void**)&FT_Outline_New_Internal, "FT_Outline_New_Internal"); - bindFunc(cast(void**)&FT_Outline_Done, "FT_Outline_Done"); - bindFunc(cast(void**)&FT_Outline_Done_Internal, "FT_Outline_Done_Internal"); - bindFunc(cast(void**)&FT_Outline_Check, "FT_Outline_Check"); - bindFunc(cast(void**)&FT_Outline_Get_CBox, "FT_Outline_Get_CBox"); - bindFunc(cast(void**)&FT_Outline_Translate, "FT_Outline_Translate"); - bindFunc(cast(void**)&FT_Outline_Copy, "FT_Outline_Copy"); - bindFunc(cast(void**)&FT_Outline_Transform, "FT_Outline_Transform"); - bindFunc(cast(void**)&FT_Outline_Embolden, "FT_Outline_Embolden"); - bindFunc(cast(void**)&FT_Outline_Reverse, "FT_Outline_Reverse"); - bindFunc(cast(void**)&FT_Outline_Get_Bitmap, "FT_Outline_Get_Bitmap"); - bindFunc(cast(void**)&FT_Outline_Render, "FT_Outline_Render"); - bindFunc(cast(void**)&FT_Outline_Get_Orientation, "FT_Outline_Get_Orientation"); - - // ftsizes.h - bindFunc(cast(void**)&FT_New_Size, "FT_New_Size"); - bindFunc(cast(void**)&FT_Done_Size, "FT_Done_Size"); - bindFunc(cast(void**)&FT_Activate_Size, "FT_Activate_Size"); - - // ftmodapi.h - bindFunc(cast(void**)&FT_Add_Module, "FT_Add_Module"); - bindFunc(cast(void**)&FT_Get_Module, "FT_Get_Module"); - bindFunc(cast(void**)&FT_Remove_Module, "FT_Remove_Module"); - bindFunc(cast(void**)&FT_Reference_Library, "FT_Reference_Library"); - bindFunc(cast(void**)&FT_New_Library, "FT_New_Library"); - bindFunc(cast(void**)&FT_Done_Library, "FT_Done_Library"); - bindFunc(cast(void**)&FT_Set_Debug_Hook, "FT_Set_Debug_Hook"); - bindFunc(cast(void**)&FT_Add_Default_Modules, "FT_Add_Default_Modules"); - bindFunc(cast(void**)&FT_Get_TrueType_Engine_Type, "FT_Get_TrueType_Engine_Type"); - - // ftrender.h - bindFunc(cast(void**)&FT_Get_Renderer, "FT_Get_Renderer"); - bindFunc(cast(void**)&FT_Set_Renderer, "FT_Set_Renderer"); - - // t1tables.h - bindFunc(cast(void**)&FT_Has_PS_Glyph_Names, "FT_Has_PS_Glyph_Names"); - bindFunc(cast(void**)&FT_Get_PS_Font_Info, "FT_Get_PS_Font_Info"); - bindFunc(cast(void**)&FT_Get_PS_Font_Private, "FT_Get_PS_Font_Private"); - //bindFunc(cast(void**)&FT_Get_PS_Font_Value, "FT_Get_PS_Font_Value"); - - // tttables.h - bindFunc(cast(void**)&FT_Get_Sfnt_Table, "FT_Get_Sfnt_Table"); - bindFunc(cast(void**)&FT_Load_Sfnt_Table, "FT_Load_Sfnt_Table"); - bindFunc(cast(void**)&FT_Sfnt_Table_Info, "FT_Sfnt_Table_Info"); - bindFunc(cast(void**)&FT_Get_CMap_Language_ID, "FT_Get_CMap_Language_ID"); - bindFunc(cast(void**)&FT_Get_CMap_Format, "FT_Get_CMap_Format"); - - // ftbdf.h - //bindFunc(cast(void**)&FT_Get_BDF_Charset_ID, "FT_Get_BDF_Charset_ID"); - //bindFunc(cast(void**)&FT_Get_BDF_Property, "FT_Get_BDF_Property"); - - // ftgzip.h - bindFunc(cast(void**)&FT_Stream_OpenGzip, "FT_Stream_OpenGzip"); - - // ftlzw.h - bindFunc(cast(void**)&FT_Stream_OpenLZW, "FT_Stream_OpenLZW"); - - // ftwinfnt.h - bindFunc(cast(void**)&FT_Get_WinFNT_Header, "FT_Get_WinFNT_Header"); - - // ftglyph.h - bindFunc(cast(void**)&FT_Get_Glyph, "FT_Get_Glyph"); - bindFunc(cast(void**)&FT_Glyph_Copy, "FT_Glyph_Copy"); - bindFunc(cast(void**)&FT_Glyph_Transform, "FT_Glyph_Transform"); - bindFunc(cast(void**)&FT_Glyph_Get_CBox, "FT_Glyph_Get_CBox"); - bindFunc(cast(void**)&FT_Glyph_To_Bitmap, "FT_Glyph_To_Bitmap"); - bindFunc(cast(void**)&FT_Done_Glyph, "FT_Done_Glyph"); - bindFunc(cast(void**)&FT_Matrix_Multiply, "FT_Matrix_Multiply"); - bindFunc(cast(void**)&FT_Matrix_Invert, "FT_Matrix_Invert"); - - // ftbitmap.h - bindFunc(cast(void**)&FT_Bitmap_New, "FT_Bitmap_New"); - bindFunc(cast(void**)&FT_Bitmap_Copy, "FT_Bitmap_Copy"); - bindFunc(cast(void**)&FT_Bitmap_Embolden, "FT_Bitmap_Embolden"); - bindFunc(cast(void**)&FT_Bitmap_Convert, "FT_Bitmap_Convert"); - bindFunc(cast(void**)&FT_Bitmap_Done, "FT_Bitmap_Done"); - - // ftbbox.h - bindFunc(cast(void**)&FT_Outline_Get_BBox, "FT_Outline_Get_BBox"); - - // ftcache.h - bindFunc(cast(void**)&FTC_Manager_New, "FTC_Manager_New"); - bindFunc(cast(void**)&FTC_Manager_Reset, "FTC_Manager_Reset"); - bindFunc(cast(void**)&FTC_Manager_Done, "FTC_Manager_Done"); - bindFunc(cast(void**)&FTC_Manager_LookupFace, "FTC_Manager_LookupFace"); - bindFunc(cast(void**)&FTC_Manager_LookupSize, "FTC_Manager_LookupSize"); - bindFunc(cast(void**)&FTC_Node_Unref, "FTC_Node_Unref"); - bindFunc(cast(void**)&FTC_Manager_RemoveFaceID, "FTC_Manager_RemoveFaceID"); - bindFunc(cast(void**)&FTC_CMapCache_New, "FTC_CMapCache_New"); - bindFunc(cast(void**)&FTC_CMapCache_Lookup, "FTC_CMapCache_Lookup"); - bindFunc(cast(void**)&FTC_ImageCache_New, "FTC_ImageCache_New"); - bindFunc(cast(void**)&FTC_ImageCache_Lookup, "FTC_ImageCache_Lookup"); - bindFunc(cast(void**)&FTC_ImageCache_LookupScaler, "FTC_ImageCache_LookupScaler"); - bindFunc(cast(void**)&FTC_SBitCache_New, "FTC_SBitCache_New"); - bindFunc(cast(void**)&FTC_SBitCache_Lookup, "FTC_SBitCache_Lookup"); - bindFunc(cast(void**)&FTC_SBitCache_LookupScaler, "FTC_SBitCache_LookupScaler"); - - // ftmm.h - bindFunc(cast(void**)&FT_Get_Multi_Master, "FT_Get_Multi_Master"); - bindFunc(cast(void**)&FT_Get_MM_Var, "FT_Get_MM_Var"); - bindFunc(cast(void**)&FT_Set_MM_Design_Coordinates, "FT_Set_MM_Design_Coordinates"); - bindFunc(cast(void**)&FT_Set_Var_Design_Coordinates, "FT_Set_Var_Design_Coordinates"); - bindFunc(cast(void**)&FT_Set_MM_Blend_Coordinates, "FT_Set_MM_Blend_Coordinates"); - bindFunc(cast(void**)&FT_Set_Var_Blend_Coordinates, "FT_Set_Var_Blend_Coordinates"); - - // ftsnames.h - bindFunc(cast(void**)&FT_Get_Sfnt_Name_Count, "FT_Get_Sfnt_Name_Count"); - bindFunc(cast(void**)&FT_Get_Sfnt_Name, "FT_Get_Sfnt_Name"); - - // ftotval.h - bindFunc(cast(void**)&FT_OpenType_Validate, "FT_OpenType_Validate"); - bindFunc(cast(void**)&FT_OpenType_Free, "FT_OpenType_Free"); - - // ftgxval.h - bindFunc(cast(void**)&FT_TrueTypeGX_Validate, "FT_TrueTypeGX_Validate"); - bindFunc(cast(void**)&FT_TrueTypeGX_Free, "FT_TrueTypeGX_Free"); - bindFunc(cast(void**)&FT_ClassicKern_Validate, "FT_ClassicKern_Validate"); - bindFunc(cast(void**)&FT_ClassicKern_Free, "FT_ClassicKern_Free"); - - // ftpfr - bindFunc(cast(void**)&FT_Get_PFR_Metrics, "FT_Get_PFR_Metrics"); - bindFunc(cast(void**)&FT_Get_PFR_Kerning, "FT_Get_PFR_Kerning"); - bindFunc(cast(void**)&FT_Get_PFR_Advance, "FT_Get_PFR_Advance"); - - // ftstroke.h - bindFunc(cast(void**)&FT_Outline_GetInsideBorder, "FT_Outline_GetInsideBorder"); - bindFunc(cast(void**)&FT_Outline_GetOutsideBorder, "FT_Outline_GetOutsideBorder"); - bindFunc(cast(void**)&FT_Stroker_New, "FT_Stroker_New"); - bindFunc(cast(void**)&FT_Stroker_Set, "FT_Stroker_Set"); - bindFunc(cast(void**)&FT_Stroker_Rewind, "FT_Stroker_Rewind"); - bindFunc(cast(void**)&FT_Stroker_ParseOutline, "FT_Stroker_ParseOutline"); - bindFunc(cast(void**)&FT_Stroker_BeginSubPath, "FT_Stroker_BeginSubPath"); - bindFunc(cast(void**)&FT_Stroker_EndSubPath, "FT_Stroker_EndSubPath"); - bindFunc(cast(void**)&FT_Stroker_LineTo, "FT_Stroker_LineTo"); - bindFunc(cast(void**)&FT_Stroker_ConicTo, "FT_Stroker_ConicTo"); - bindFunc(cast(void**)&FT_Stroker_CubicTo, "FT_Stroker_CubicTo"); - bindFunc(cast(void**)&FT_Stroker_GetBorderCounts, "FT_Stroker_GetBorderCounts"); - bindFunc(cast(void**)&FT_Stroker_ExportBorder, "FT_Stroker_ExportBorder"); - bindFunc(cast(void**)&FT_Stroker_GetCounts, "FT_Stroker_GetCounts"); - bindFunc(cast(void**)&FT_Stroker_Export, "FT_Stroker_Export"); - bindFunc(cast(void**)&FT_Stroker_Done, "FT_Stroker_Done"); - bindFunc(cast(void**)&FT_Glyph_Stroke, "FT_Glyph_Stroke"); - bindFunc(cast(void**)&FT_Glyph_StrokeBorder, "FT_Glyph_StrokeBorder"); - - // ftsynth.h - bindFunc(cast(void**)&FT_GlyphSlot_Own_Bitmap, "FT_GlyphSlot_Own_Bitmap"); - bindFunc(cast(void**)&FT_GlyphSlot_Embolden, "FT_GlyphSlot_Embolden"); - bindFunc(cast(void**)&FT_GlyphSlot_Oblique, "FT_GlyphSlot_Oblique"); - - // ftxf86.h - bindFunc(cast(void**)&FT_Get_X11_Font_Format, "FT_Get_X11_Font_Format"); - - // fttrigon.h - bindFunc(cast(void**)&FT_Sin, "FT_Sin"); - bindFunc(cast(void**)&FT_Cos, "FT_Cos"); - bindFunc(cast(void**)&FT_Tan, "FT_Tan"); - bindFunc(cast(void**)&FT_Atan2, "FT_Atan2"); - bindFunc(cast(void**)&FT_Angle_Diff, "FT_Angle_Diff"); - bindFunc(cast(void**)&FT_Vector_Unit, "FT_Vector_Unit"); - bindFunc(cast(void**)&FT_Vector_Rotate, "FT_Vector_Rotate"); - bindFunc(cast(void**)&FT_Vector_Length, "FT_Vector_Length"); - bindFunc(cast(void**)&FT_Vector_Polarize, "FT_Vector_Polarize"); - bindFunc(cast(void**)&FT_Vector_From_Polar, "FT_Vector_From_Polar"); - - // ftlcdfil.h - bindFunc(cast(void**)&FT_Library_SetLcdFilter, "FT_Library_SetLcdFilter"); - bindFunc(cast(void**)&FT_Library_SetLcdFilterWeights, "FT_Library_SetLcdFilterWeights"); - - // ftgasp.h - bindFunc(cast(void**)&FT_Get_Gasp, "FT_Get_Gasp"); - - /+ other - //bindFunc(cast(void**)&ftc_node_destroy, "ftc_node_destroy"); - bindFunc(cast(void**)&FT_Alloc, "FT_Alloc"); - bindFunc(cast(void**)&FT_QAlloc, "FT_QAlloc"); - bindFunc(cast(void**)&FT_Realloc, "FT_Realloc"); - bindFunc(cast(void**)&FT_QRealloc, "FT_QRealloc"); - bindFunc(cast(void**)&FT_Free, "FT_Free"); - bindFunc(cast(void**)&FT_GlyphLoader_New, "FT_GlyphLoader_New"); - bindFunc(cast(void**)&FT_GlyphLoader_CreateExtra, "FT_GlyphLoader_CreateExtra"); - bindFunc(cast(void**)&FT_GlyphLoader_Done, "FT_GlyphLoader_Done"); - bindFunc(cast(void**)&FT_GlyphLoader_Reset, "FT_GlyphLoader_Reset"); - bindFunc(cast(void**)&FT_GlyphLoader_Rewind, "FT_GlyphLoader_Rewind"); - bindFunc(cast(void**)&FT_GlyphLoader_CheckPoints, "FT_GlyphLoader_CheckPoints"); - bindFunc(cast(void**)&FT_GlyphLoader_CheckSubGlyphs, "FT_GlyphLoader_CheckSubGlyphs"); - bindFunc(cast(void**)&FT_GlyphLoader_Prepare, "FT_GlyphLoader_Prepare"); - bindFunc(cast(void**)&FT_GlyphLoader_Add, "FT_GlyphLoader_Add"); - bindFunc(cast(void**)&FT_GlyphLoader_CopyPoints, "FT_GlyphLoader_CopyPoints"); - bindFunc(cast(void**)&ft_service_list_lookup, "ft_service_list_lookup"); - bindFunc(cast(void**)&FT_CMap_New, "FT_CMap_New"); - bindFunc(cast(void**)&FT_CMap_Done, "FT_CMap_Done"); - bindFunc(cast(void**)&FT_Get_Module_Interface, "FT_Get_Module_Interface"); - bindFunc(cast(void**)&ft_module_get_service, "ft_module_get_service"); - bindFunc(cast(void**)&FT_New_GlyphSlot, "FT_New_GlyphSlot"); - bindFunc(cast(void**)&FT_Done_GlyphSlot, "FT_Done_GlyphSlot"); - bindFunc(cast(void**)&ft_glyphslot_free_bitmap, "ft_glyphslot_free_bitmap"); - bindFunc(cast(void**)&ft_glyphslot_alloc_bitmap, "ft_glyphslot_alloc_bitmap"); - bindFunc(cast(void**)&ft_glyphslot_set_bitmap, "ft_glyphslot_set_bitmap"); - bindFunc(cast(void**)&FT_Lookup_Renderer, "FT_Lookup_Renderer"); - bindFunc(cast(void**)&FT_Render_Glyph_Internal, "FT_Render_Glyph_Internal"); - bindFunc(cast(void**)&FT_New_Memory, "FT_New_Memory"); - bindFunc(cast(void**)&FT_Done_Memory, "FT_Done_Memory"); - bindFunc(cast(void**)&FT_Stream_Open, "FT_Stream_Open"); - bindFunc(cast(void**)&FT_Stream_New, "FT_Stream_New"); - bindFunc(cast(void**)&FT_Stream_Free, "FT_Stream_Free"); - bindFunc(cast(void**)&FT_Stream_OpenMemory, "FT_Stream_OpenMemory"); - bindFunc(cast(void**)&FT_Stream_Close, "FT_Stream_Close"); - bindFunc(cast(void**)&FT_Stream_Seek, "FT_Stream_Seek"); - bindFunc(cast(void**)&FT_Stream_Skip, "FT_Stream_Skip"); - bindFunc(cast(void**)&FT_Stream_Pos, "FT_Stream_Pos"); - bindFunc(cast(void**)&FT_Stream_Read, "FT_Stream_Read"); - bindFunc(cast(void**)&FT_Stream_ReadAt, "FT_Stream_ReadAt"); - bindFunc(cast(void**)&FT_Stream_TryRead, "FT_Stream_TryRead"); - bindFunc(cast(void**)&FT_Stream_EnterFrame, "FT_Stream_EnterFrame"); - bindFunc(cast(void**)&FT_Stream_ExitFrame, "FT_Stream_ExitFrame"); - bindFunc(cast(void**)&FT_Stream_ExtractFrame, "FT_Stream_ExtractFrame"); - bindFunc(cast(void**)&FT_Stream_ReleaseFrame, "FT_Stream_ReleaseFrame"); - bindFunc(cast(void**)&FT_Stream_GetChar, "FT_Stream_GetChar"); - bindFunc(cast(void**)&FT_Stream_GetShort, "FT_Stream_GetShort"); - bindFunc(cast(void**)&FT_Stream_GetOffset, "FT_Stream_GetOffset"); - bindFunc(cast(void**)&FT_Stream_GetLong, "FT_Stream_GetLong"); - bindFunc(cast(void**)&FT_Stream_GetShortLE, "FT_Stream_GetShortLE"); - bindFunc(cast(void**)&FT_Stream_GetLongLE, "FT_Stream_GetLongLE"); - bindFunc(cast(void**)&FT_Stream_ReadChar, "FT_Stream_ReadChar"); - bindFunc(cast(void**)&FT_Stream_ReadShort, "FT_Stream_ReadShort"); - bindFunc(cast(void**)&FT_Stream_ReadOffset, "FT_Stream_ReadOffset"); - bindFunc(cast(void**)&FT_Stream_ReadLong, "FT_Stream_ReadLong"); - bindFunc(cast(void**)&FT_Stream_ReadShortLE, "FT_Stream_ReadShortLE"); - bindFunc(cast(void**)&FT_Stream_ReadLongLE, "FT_Stream_ReadLongLE"); - bindFunc(cast(void**)&FT_Stream_ReadFields, "FT_Stream_ReadFields"); - bindFunc(cast(void**)&FT_Trace_Get_Count, "FT_Trace_Get_Count"); - bindFunc(cast(void**)&FT_Trace_Get_Name, "FT_Trace_Get_Name"); - bindFunc(cast(void**)&ft_debug_init, "ft_debug_init"); - bindFunc(cast(void**)&FT_SqrtFixed, "FT_SqrtFixed"); - bindFunc(cast(void**)&FT_Raccess_Guess, "FT_Raccess_Guess"); - bindFunc(cast(void**)&FT_Raccess_Get_HeaderInfo, "FT_Raccess_Get_HeaderInfo"); - bindFunc(cast(void**)&FT_Raccess_Get_DataOffsets, "FT_Raccess_Get_DataOffsets"); - bindFunc(cast(void**)&ft_validator_init, "ft_validator_init"); - bindFunc(cast(void**)&ft_validator_run, "ft_validator_run"); - bindFunc(cast(void**)&ft_validator_error, "ft_validator_error"); - +/ - } -} - -DerelictFTLoader DerelictFT; - -static this() -{ - DerelictFT = new DerelictFTLoader(); -} - -static ~this() -{ - if(SharedLibLoader.isAutoUnloadEnabled()) - DerelictFT.unload(); +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.freetype.ft; + +public +{ + import derelict.freetype.fttypes; + import derelict.freetype.ftfuncs; +} + +private +{ + import derelict.util.loader; +} + +class DerelictFTLoader : SharedLibLoader +{ +public: + this() + { + super( + "freetype.dll", + "libfreetype.so.6,libfreetype.so", + "libfreetype.dylib,libfreetype.6.dylib,libfreetype.6.3.16.dylib,/usr/X11/lib/libfreetype.dylib,/usr/X11/lib/libfreetype.6.dylib,/usr/X11/lib/libfreetype.6.3.16.dylib" + ); + } + +protected: + override void loadSymbols() + { + // freetype.h + bindFunc(cast(void**)&FT_Init_FreeType, "FT_Init_FreeType"); + bindFunc(cast(void**)&FT_Done_FreeType, "FT_Done_FreeType"); + bindFunc(cast(void**)&FT_New_Face, "FT_New_Face"); + bindFunc(cast(void**)&FT_New_Memory_Face, "FT_New_Memory_Face"); + bindFunc(cast(void**)&FT_Open_Face, "FT_Open_Face"); + bindFunc(cast(void**)&FT_Attach_File, "FT_Attach_File"); + bindFunc(cast(void**)&FT_Attach_Stream, "FT_Attach_Stream"); + bindFunc(cast(void**)&FT_Reference_Face, "FT_Reference_Face"); + bindFunc(cast(void**)&FT_Done_Face, "FT_Done_Face"); + bindFunc(cast(void**)&FT_Select_Size, "FT_Select_Size"); + bindFunc(cast(void**)&FT_Request_Size, "FT_Request_Size"); + bindFunc(cast(void**)&FT_Set_Char_Size, "FT_Set_Char_Size"); + bindFunc(cast(void**)&FT_Set_Pixel_Sizes, "FT_Set_Pixel_Sizes"); + bindFunc(cast(void**)&FT_Load_Glyph, "FT_Load_Glyph"); + bindFunc(cast(void**)&FT_Load_Char, "FT_Load_Char"); + bindFunc(cast(void**)&FT_Set_Transform, "FT_Set_Transform"); + bindFunc(cast(void**)&FT_Render_Glyph, "FT_Render_Glyph"); + bindFunc(cast(void**)&FT_Get_Kerning, "FT_Get_Kerning"); + bindFunc(cast(void**)&FT_Get_Track_Kerning, "FT_Get_Track_Kerning"); + bindFunc(cast(void**)&FT_Get_Glyph_Name, "FT_Get_Glyph_Name"); + bindFunc(cast(void**)&FT_Get_Postscript_Name, "FT_Get_Postscript_Name"); + bindFunc(cast(void**)&FT_Select_Charmap, "FT_Select_Charmap"); + bindFunc(cast(void**)&FT_Set_Charmap, "FT_Set_Charmap"); + bindFunc(cast(void**)&FT_Get_Charmap_Index, "FT_Get_Charmap_Index"); + bindFunc(cast(void**)&FT_Get_Char_Index, "FT_Get_Char_Index"); + bindFunc(cast(void**)&FT_Get_First_Char, "FT_Get_First_Char"); + bindFunc(cast(void**)&FT_Get_Next_Char, "FT_Get_Next_Char"); + bindFunc(cast(void**)&FT_Get_Name_Index, "FT_Get_Name_Index"); + bindFunc(cast(void**)&FT_MulDiv, "FT_MulDiv"); + bindFunc(cast(void**)&FT_MulFix, "FT_MulFix"); + bindFunc(cast(void**)&FT_DivFix, "FT_DivFix"); + bindFunc(cast(void**)&FT_RoundFix, "FT_RoundFix"); + bindFunc(cast(void**)&FT_CeilFix, "FT_CeilFix"); + bindFunc(cast(void**)&FT_FloorFix, "FT_FloorFix"); + bindFunc(cast(void**)&FT_Vector_Transform, "FT_Vector_Transform"); + bindFunc(cast(void**)&FT_Library_Version, "FT_Library_Version"); + bindFunc(cast(void**)&FT_Face_CheckTrueTypePatents, "FT_Face_CheckTrueTypePatents"); + bindFunc(cast(void**)&FT_Face_SetUnpatentedHinting, "FT_Face_SetUnpatentedHinting"); + + // ftlist. + bindFunc(cast(void**)&FT_List_Find, "FT_List_Find"); + bindFunc(cast(void**)&FT_List_Add, "FT_List_Add"); + bindFunc(cast(void**)&FT_List_Insert, "FT_List_Insert"); + bindFunc(cast(void**)&FT_List_Remove, "FT_List_Remove"); + bindFunc(cast(void**)&FT_List_Up, "FT_List_Up"); + bindFunc(cast(void**)&FT_List_Iterate, "FT_List_Iterate"); + bindFunc(cast(void**)&FT_List_Finalize, "FT_List_Finalize"); + + // ftoutln + bindFunc(cast(void**)&FT_Outline_Decompose, "FT_Outline_Decompose"); + bindFunc(cast(void**)&FT_Outline_New, "FT_Outline_New"); + bindFunc(cast(void**)&FT_Outline_New_Internal, "FT_Outline_New_Internal"); + bindFunc(cast(void**)&FT_Outline_Done, "FT_Outline_Done"); + bindFunc(cast(void**)&FT_Outline_Done_Internal, "FT_Outline_Done_Internal"); + bindFunc(cast(void**)&FT_Outline_Check, "FT_Outline_Check"); + bindFunc(cast(void**)&FT_Outline_Get_CBox, "FT_Outline_Get_CBox"); + bindFunc(cast(void**)&FT_Outline_Translate, "FT_Outline_Translate"); + bindFunc(cast(void**)&FT_Outline_Copy, "FT_Outline_Copy"); + bindFunc(cast(void**)&FT_Outline_Transform, "FT_Outline_Transform"); + bindFunc(cast(void**)&FT_Outline_Embolden, "FT_Outline_Embolden"); + bindFunc(cast(void**)&FT_Outline_Reverse, "FT_Outline_Reverse"); + bindFunc(cast(void**)&FT_Outline_Get_Bitmap, "FT_Outline_Get_Bitmap"); + bindFunc(cast(void**)&FT_Outline_Render, "FT_Outline_Render"); + bindFunc(cast(void**)&FT_Outline_Get_Orientation, "FT_Outline_Get_Orientation"); + + // ftsizes.h + bindFunc(cast(void**)&FT_New_Size, "FT_New_Size"); + bindFunc(cast(void**)&FT_Done_Size, "FT_Done_Size"); + bindFunc(cast(void**)&FT_Activate_Size, "FT_Activate_Size"); + + // ftmodapi.h + bindFunc(cast(void**)&FT_Add_Module, "FT_Add_Module"); + bindFunc(cast(void**)&FT_Get_Module, "FT_Get_Module"); + bindFunc(cast(void**)&FT_Remove_Module, "FT_Remove_Module"); + bindFunc(cast(void**)&FT_Reference_Library, "FT_Reference_Library"); + bindFunc(cast(void**)&FT_New_Library, "FT_New_Library"); + bindFunc(cast(void**)&FT_Done_Library, "FT_Done_Library"); + bindFunc(cast(void**)&FT_Set_Debug_Hook, "FT_Set_Debug_Hook"); + bindFunc(cast(void**)&FT_Add_Default_Modules, "FT_Add_Default_Modules"); + bindFunc(cast(void**)&FT_Get_TrueType_Engine_Type, "FT_Get_TrueType_Engine_Type"); + + // ftrender.h + bindFunc(cast(void**)&FT_Get_Renderer, "FT_Get_Renderer"); + bindFunc(cast(void**)&FT_Set_Renderer, "FT_Set_Renderer"); + + // t1tables.h + bindFunc(cast(void**)&FT_Has_PS_Glyph_Names, "FT_Has_PS_Glyph_Names"); + bindFunc(cast(void**)&FT_Get_PS_Font_Info, "FT_Get_PS_Font_Info"); + bindFunc(cast(void**)&FT_Get_PS_Font_Private, "FT_Get_PS_Font_Private"); + //bindFunc(cast(void**)&FT_Get_PS_Font_Value, "FT_Get_PS_Font_Value"); + + // tttables.h + bindFunc(cast(void**)&FT_Get_Sfnt_Table, "FT_Get_Sfnt_Table"); + bindFunc(cast(void**)&FT_Load_Sfnt_Table, "FT_Load_Sfnt_Table"); + bindFunc(cast(void**)&FT_Sfnt_Table_Info, "FT_Sfnt_Table_Info"); + bindFunc(cast(void**)&FT_Get_CMap_Language_ID, "FT_Get_CMap_Language_ID"); + bindFunc(cast(void**)&FT_Get_CMap_Format, "FT_Get_CMap_Format"); + + // ftbdf.h + //bindFunc(cast(void**)&FT_Get_BDF_Charset_ID, "FT_Get_BDF_Charset_ID"); + //bindFunc(cast(void**)&FT_Get_BDF_Property, "FT_Get_BDF_Property"); + + // ftgzip.h + bindFunc(cast(void**)&FT_Stream_OpenGzip, "FT_Stream_OpenGzip"); + + // ftlzw.h + bindFunc(cast(void**)&FT_Stream_OpenLZW, "FT_Stream_OpenLZW"); + + // ftwinfnt.h + bindFunc(cast(void**)&FT_Get_WinFNT_Header, "FT_Get_WinFNT_Header"); + + // ftglyph.h + bindFunc(cast(void**)&FT_Get_Glyph, "FT_Get_Glyph"); + bindFunc(cast(void**)&FT_Glyph_Copy, "FT_Glyph_Copy"); + bindFunc(cast(void**)&FT_Glyph_Transform, "FT_Glyph_Transform"); + bindFunc(cast(void**)&FT_Glyph_Get_CBox, "FT_Glyph_Get_CBox"); + bindFunc(cast(void**)&FT_Glyph_To_Bitmap, "FT_Glyph_To_Bitmap"); + bindFunc(cast(void**)&FT_Done_Glyph, "FT_Done_Glyph"); + bindFunc(cast(void**)&FT_Matrix_Multiply, "FT_Matrix_Multiply"); + bindFunc(cast(void**)&FT_Matrix_Invert, "FT_Matrix_Invert"); + + // ftbitmap.h + bindFunc(cast(void**)&FT_Bitmap_New, "FT_Bitmap_New"); + bindFunc(cast(void**)&FT_Bitmap_Copy, "FT_Bitmap_Copy"); + bindFunc(cast(void**)&FT_Bitmap_Embolden, "FT_Bitmap_Embolden"); + bindFunc(cast(void**)&FT_Bitmap_Convert, "FT_Bitmap_Convert"); + bindFunc(cast(void**)&FT_Bitmap_Done, "FT_Bitmap_Done"); + + // ftbbox.h + bindFunc(cast(void**)&FT_Outline_Get_BBox, "FT_Outline_Get_BBox"); + + // ftcache.h + bindFunc(cast(void**)&FTC_Manager_New, "FTC_Manager_New"); + bindFunc(cast(void**)&FTC_Manager_Reset, "FTC_Manager_Reset"); + bindFunc(cast(void**)&FTC_Manager_Done, "FTC_Manager_Done"); + bindFunc(cast(void**)&FTC_Manager_LookupFace, "FTC_Manager_LookupFace"); + bindFunc(cast(void**)&FTC_Manager_LookupSize, "FTC_Manager_LookupSize"); + bindFunc(cast(void**)&FTC_Node_Unref, "FTC_Node_Unref"); + bindFunc(cast(void**)&FTC_Manager_RemoveFaceID, "FTC_Manager_RemoveFaceID"); + bindFunc(cast(void**)&FTC_CMapCache_New, "FTC_CMapCache_New"); + bindFunc(cast(void**)&FTC_CMapCache_Lookup, "FTC_CMapCache_Lookup"); + bindFunc(cast(void**)&FTC_ImageCache_New, "FTC_ImageCache_New"); + bindFunc(cast(void**)&FTC_ImageCache_Lookup, "FTC_ImageCache_Lookup"); + bindFunc(cast(void**)&FTC_ImageCache_LookupScaler, "FTC_ImageCache_LookupScaler"); + bindFunc(cast(void**)&FTC_SBitCache_New, "FTC_SBitCache_New"); + bindFunc(cast(void**)&FTC_SBitCache_Lookup, "FTC_SBitCache_Lookup"); + bindFunc(cast(void**)&FTC_SBitCache_LookupScaler, "FTC_SBitCache_LookupScaler"); + + // ftmm.h + bindFunc(cast(void**)&FT_Get_Multi_Master, "FT_Get_Multi_Master"); + bindFunc(cast(void**)&FT_Get_MM_Var, "FT_Get_MM_Var"); + bindFunc(cast(void**)&FT_Set_MM_Design_Coordinates, "FT_Set_MM_Design_Coordinates"); + bindFunc(cast(void**)&FT_Set_Var_Design_Coordinates, "FT_Set_Var_Design_Coordinates"); + bindFunc(cast(void**)&FT_Set_MM_Blend_Coordinates, "FT_Set_MM_Blend_Coordinates"); + bindFunc(cast(void**)&FT_Set_Var_Blend_Coordinates, "FT_Set_Var_Blend_Coordinates"); + + // ftsnames.h + bindFunc(cast(void**)&FT_Get_Sfnt_Name_Count, "FT_Get_Sfnt_Name_Count"); + bindFunc(cast(void**)&FT_Get_Sfnt_Name, "FT_Get_Sfnt_Name"); + + // ftotval.h + bindFunc(cast(void**)&FT_OpenType_Validate, "FT_OpenType_Validate"); + bindFunc(cast(void**)&FT_OpenType_Free, "FT_OpenType_Free"); + + // ftgxval.h + bindFunc(cast(void**)&FT_TrueTypeGX_Validate, "FT_TrueTypeGX_Validate"); + bindFunc(cast(void**)&FT_TrueTypeGX_Free, "FT_TrueTypeGX_Free"); + bindFunc(cast(void**)&FT_ClassicKern_Validate, "FT_ClassicKern_Validate"); + bindFunc(cast(void**)&FT_ClassicKern_Free, "FT_ClassicKern_Free"); + + // ftpfr + bindFunc(cast(void**)&FT_Get_PFR_Metrics, "FT_Get_PFR_Metrics"); + bindFunc(cast(void**)&FT_Get_PFR_Kerning, "FT_Get_PFR_Kerning"); + bindFunc(cast(void**)&FT_Get_PFR_Advance, "FT_Get_PFR_Advance"); + + // ftstroke.h + bindFunc(cast(void**)&FT_Outline_GetInsideBorder, "FT_Outline_GetInsideBorder"); + bindFunc(cast(void**)&FT_Outline_GetOutsideBorder, "FT_Outline_GetOutsideBorder"); + bindFunc(cast(void**)&FT_Stroker_New, "FT_Stroker_New"); + bindFunc(cast(void**)&FT_Stroker_Set, "FT_Stroker_Set"); + bindFunc(cast(void**)&FT_Stroker_Rewind, "FT_Stroker_Rewind"); + bindFunc(cast(void**)&FT_Stroker_ParseOutline, "FT_Stroker_ParseOutline"); + bindFunc(cast(void**)&FT_Stroker_BeginSubPath, "FT_Stroker_BeginSubPath"); + bindFunc(cast(void**)&FT_Stroker_EndSubPath, "FT_Stroker_EndSubPath"); + bindFunc(cast(void**)&FT_Stroker_LineTo, "FT_Stroker_LineTo"); + bindFunc(cast(void**)&FT_Stroker_ConicTo, "FT_Stroker_ConicTo"); + bindFunc(cast(void**)&FT_Stroker_CubicTo, "FT_Stroker_CubicTo"); + bindFunc(cast(void**)&FT_Stroker_GetBorderCounts, "FT_Stroker_GetBorderCounts"); + bindFunc(cast(void**)&FT_Stroker_ExportBorder, "FT_Stroker_ExportBorder"); + bindFunc(cast(void**)&FT_Stroker_GetCounts, "FT_Stroker_GetCounts"); + bindFunc(cast(void**)&FT_Stroker_Export, "FT_Stroker_Export"); + bindFunc(cast(void**)&FT_Stroker_Done, "FT_Stroker_Done"); + bindFunc(cast(void**)&FT_Glyph_Stroke, "FT_Glyph_Stroke"); + bindFunc(cast(void**)&FT_Glyph_StrokeBorder, "FT_Glyph_StrokeBorder"); + + // ftsynth.h + bindFunc(cast(void**)&FT_GlyphSlot_Own_Bitmap, "FT_GlyphSlot_Own_Bitmap"); + bindFunc(cast(void**)&FT_GlyphSlot_Embolden, "FT_GlyphSlot_Embolden"); + bindFunc(cast(void**)&FT_GlyphSlot_Oblique, "FT_GlyphSlot_Oblique"); + + // ftxf86.h + bindFunc(cast(void**)&FT_Get_X11_Font_Format, "FT_Get_X11_Font_Format"); + + // fttrigon.h + bindFunc(cast(void**)&FT_Sin, "FT_Sin"); + bindFunc(cast(void**)&FT_Cos, "FT_Cos"); + bindFunc(cast(void**)&FT_Tan, "FT_Tan"); + bindFunc(cast(void**)&FT_Atan2, "FT_Atan2"); + bindFunc(cast(void**)&FT_Angle_Diff, "FT_Angle_Diff"); + bindFunc(cast(void**)&FT_Vector_Unit, "FT_Vector_Unit"); + bindFunc(cast(void**)&FT_Vector_Rotate, "FT_Vector_Rotate"); + bindFunc(cast(void**)&FT_Vector_Length, "FT_Vector_Length"); + bindFunc(cast(void**)&FT_Vector_Polarize, "FT_Vector_Polarize"); + bindFunc(cast(void**)&FT_Vector_From_Polar, "FT_Vector_From_Polar"); + + // ftlcdfil.h + bindFunc(cast(void**)&FT_Library_SetLcdFilter, "FT_Library_SetLcdFilter"); + bindFunc(cast(void**)&FT_Library_SetLcdFilterWeights, "FT_Library_SetLcdFilterWeights"); + + // ftgasp.h + bindFunc(cast(void**)&FT_Get_Gasp, "FT_Get_Gasp"); + + /+ other + //bindFunc(cast(void**)&ftc_node_destroy, "ftc_node_destroy"); + bindFunc(cast(void**)&FT_Alloc, "FT_Alloc"); + bindFunc(cast(void**)&FT_QAlloc, "FT_QAlloc"); + bindFunc(cast(void**)&FT_Realloc, "FT_Realloc"); + bindFunc(cast(void**)&FT_QRealloc, "FT_QRealloc"); + bindFunc(cast(void**)&FT_Free, "FT_Free"); + bindFunc(cast(void**)&FT_GlyphLoader_New, "FT_GlyphLoader_New"); + bindFunc(cast(void**)&FT_GlyphLoader_CreateExtra, "FT_GlyphLoader_CreateExtra"); + bindFunc(cast(void**)&FT_GlyphLoader_Done, "FT_GlyphLoader_Done"); + bindFunc(cast(void**)&FT_GlyphLoader_Reset, "FT_GlyphLoader_Reset"); + bindFunc(cast(void**)&FT_GlyphLoader_Rewind, "FT_GlyphLoader_Rewind"); + bindFunc(cast(void**)&FT_GlyphLoader_CheckPoints, "FT_GlyphLoader_CheckPoints"); + bindFunc(cast(void**)&FT_GlyphLoader_CheckSubGlyphs, "FT_GlyphLoader_CheckSubGlyphs"); + bindFunc(cast(void**)&FT_GlyphLoader_Prepare, "FT_GlyphLoader_Prepare"); + bindFunc(cast(void**)&FT_GlyphLoader_Add, "FT_GlyphLoader_Add"); + bindFunc(cast(void**)&FT_GlyphLoader_CopyPoints, "FT_GlyphLoader_CopyPoints"); + bindFunc(cast(void**)&ft_service_list_lookup, "ft_service_list_lookup"); + bindFunc(cast(void**)&FT_CMap_New, "FT_CMap_New"); + bindFunc(cast(void**)&FT_CMap_Done, "FT_CMap_Done"); + bindFunc(cast(void**)&FT_Get_Module_Interface, "FT_Get_Module_Interface"); + bindFunc(cast(void**)&ft_module_get_service, "ft_module_get_service"); + bindFunc(cast(void**)&FT_New_GlyphSlot, "FT_New_GlyphSlot"); + bindFunc(cast(void**)&FT_Done_GlyphSlot, "FT_Done_GlyphSlot"); + bindFunc(cast(void**)&ft_glyphslot_free_bitmap, "ft_glyphslot_free_bitmap"); + bindFunc(cast(void**)&ft_glyphslot_alloc_bitmap, "ft_glyphslot_alloc_bitmap"); + bindFunc(cast(void**)&ft_glyphslot_set_bitmap, "ft_glyphslot_set_bitmap"); + bindFunc(cast(void**)&FT_Lookup_Renderer, "FT_Lookup_Renderer"); + bindFunc(cast(void**)&FT_Render_Glyph_Internal, "FT_Render_Glyph_Internal"); + bindFunc(cast(void**)&FT_New_Memory, "FT_New_Memory"); + bindFunc(cast(void**)&FT_Done_Memory, "FT_Done_Memory"); + bindFunc(cast(void**)&FT_Stream_Open, "FT_Stream_Open"); + bindFunc(cast(void**)&FT_Stream_New, "FT_Stream_New"); + bindFunc(cast(void**)&FT_Stream_Free, "FT_Stream_Free"); + bindFunc(cast(void**)&FT_Stream_OpenMemory, "FT_Stream_OpenMemory"); + bindFunc(cast(void**)&FT_Stream_Close, "FT_Stream_Close"); + bindFunc(cast(void**)&FT_Stream_Seek, "FT_Stream_Seek"); + bindFunc(cast(void**)&FT_Stream_Skip, "FT_Stream_Skip"); + bindFunc(cast(void**)&FT_Stream_Pos, "FT_Stream_Pos"); + bindFunc(cast(void**)&FT_Stream_Read, "FT_Stream_Read"); + bindFunc(cast(void**)&FT_Stream_ReadAt, "FT_Stream_ReadAt"); + bindFunc(cast(void**)&FT_Stream_TryRead, "FT_Stream_TryRead"); + bindFunc(cast(void**)&FT_Stream_EnterFrame, "FT_Stream_EnterFrame"); + bindFunc(cast(void**)&FT_Stream_ExitFrame, "FT_Stream_ExitFrame"); + bindFunc(cast(void**)&FT_Stream_ExtractFrame, "FT_Stream_ExtractFrame"); + bindFunc(cast(void**)&FT_Stream_ReleaseFrame, "FT_Stream_ReleaseFrame"); + bindFunc(cast(void**)&FT_Stream_GetChar, "FT_Stream_GetChar"); + bindFunc(cast(void**)&FT_Stream_GetShort, "FT_Stream_GetShort"); + bindFunc(cast(void**)&FT_Stream_GetOffset, "FT_Stream_GetOffset"); + bindFunc(cast(void**)&FT_Stream_GetLong, "FT_Stream_GetLong"); + bindFunc(cast(void**)&FT_Stream_GetShortLE, "FT_Stream_GetShortLE"); + bindFunc(cast(void**)&FT_Stream_GetLongLE, "FT_Stream_GetLongLE"); + bindFunc(cast(void**)&FT_Stream_ReadChar, "FT_Stream_ReadChar"); + bindFunc(cast(void**)&FT_Stream_ReadShort, "FT_Stream_ReadShort"); + bindFunc(cast(void**)&FT_Stream_ReadOffset, "FT_Stream_ReadOffset"); + bindFunc(cast(void**)&FT_Stream_ReadLong, "FT_Stream_ReadLong"); + bindFunc(cast(void**)&FT_Stream_ReadShortLE, "FT_Stream_ReadShortLE"); + bindFunc(cast(void**)&FT_Stream_ReadLongLE, "FT_Stream_ReadLongLE"); + bindFunc(cast(void**)&FT_Stream_ReadFields, "FT_Stream_ReadFields"); + bindFunc(cast(void**)&FT_Trace_Get_Count, "FT_Trace_Get_Count"); + bindFunc(cast(void**)&FT_Trace_Get_Name, "FT_Trace_Get_Name"); + bindFunc(cast(void**)&ft_debug_init, "ft_debug_init"); + bindFunc(cast(void**)&FT_SqrtFixed, "FT_SqrtFixed"); + bindFunc(cast(void**)&FT_Raccess_Guess, "FT_Raccess_Guess"); + bindFunc(cast(void**)&FT_Raccess_Get_HeaderInfo, "FT_Raccess_Get_HeaderInfo"); + bindFunc(cast(void**)&FT_Raccess_Get_DataOffsets, "FT_Raccess_Get_DataOffsets"); + bindFunc(cast(void**)&ft_validator_init, "ft_validator_init"); + bindFunc(cast(void**)&ft_validator_run, "ft_validator_run"); + bindFunc(cast(void**)&ft_validator_error, "ft_validator_error"); + +/ + } +} + +DerelictFTLoader DerelictFT; + +static this() +{ + DerelictFT = new DerelictFTLoader(); +} + +static ~this() +{ + if(SharedLibLoader.isAutoUnloadEnabled()) + DerelictFT.unload(); } \ No newline at end of file diff --git a/src/derelict/freetype/ftfuncs.d b/src/derelict/freetype/ftfuncs.d old mode 100755 new mode 100644 index 41826d0a..dab442fa --- a/src/derelict/freetype/ftfuncs.d +++ b/src/derelict/freetype/ftfuncs.d @@ -1,380 +1,380 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.freetype.ftfuncs; - -private -{ - import derelict.util.compat; - import derelict.freetype.fttypes; -} - -extern(C) -{ - alias FT_Error function(FT_Library *alibrary) da_FT_Init_FreeType; - alias FT_Error function(FT_Library library) da_FT_Done_FreeType; - alias FT_Error function(FT_Library library, CCPTR filepathname, FT_Long face_index, FT_Face *aface) da_FT_New_Face; - alias FT_Error function(FT_Library library, in FT_Byte* file_base, FT_Long file_size, FT_Long face_index, FT_Face *aface) da_FT_New_Memory_Face; - alias FT_Error function(FT_Library library, in FT_Open_Args* args, FT_Long face_index, FT_Face *aface) da_FT_Open_Face; - alias FT_Error function(FT_Face face, CCPTR filepathname) da_FT_Attach_File; - alias FT_Error function(FT_Face face, FT_Open_Args* parameters) da_FT_Attach_Stream; - alias FT_Error function(FT_Face face) da_FT_Reference_Face; - alias FT_Error function(FT_Face face) da_FT_Done_Face; - alias FT_Error function(FT_Face face, FT_Int strike_index) da_FT_Select_Size; - alias FT_Error function(FT_Face face, FT_Size_Request req) da_FT_Request_Size; - alias FT_Error function(FT_Face face, FT_F26Dot6 char_width, FT_F26Dot6 char_height, FT_UInt horz_resolution, FT_UInt vert_resolution) da_FT_Set_Char_Size; - alias FT_Error function(FT_Face face, FT_UInt pixel_width, FT_UInt pixel_height) da_FT_Set_Pixel_Sizes; - alias FT_Error function(FT_Face face, FT_UInt glyph_index, FT_Int32 load_flags) da_FT_Load_Glyph; - alias FT_Error function(FT_Face face, FT_ULong char_code, FT_Int32 load_flags) da_FT_Load_Char; - alias void function(FT_Face face, FT_Matrix* matrix, FT_Vector* delta) da_FT_Set_Transform; - alias FT_Error function(FT_GlyphSlot slot, FT_Render_Mode render_mode) da_FT_Render_Glyph; - alias FT_Error function(FT_Face face, FT_UInt left_glyph, FT_UInt right_glyph, FT_UInt kern_mode, FT_Vector *akerning) da_FT_Get_Kerning; - alias FT_Error function(FT_Face face, FT_Fixed point_size, FT_Int degree, FT_Fixed* akerning) da_FT_Get_Track_Kerning; - alias FT_Error function(FT_Face face, FT_UInt glyph_index, FT_Pointer buffer, FT_UInt buffer_max) da_FT_Get_Glyph_Name; - alias CCPTR function(FT_Face face) da_FT_Get_Postscript_Name; - alias FT_Error function(FT_Face face, FT_Encoding encoding) da_FT_Select_Charmap; - alias FT_Error function(FT_Face face, FT_CharMap charmap) da_FT_Set_Charmap; - alias FT_Int function(FT_CharMap charmap) da_FT_Get_Charmap_Index; - alias FT_UInt function(FT_Face face, FT_ULong charcode) da_FT_Get_Char_Index; - alias FT_ULong function(FT_Face face, FT_UInt *agindex) da_FT_Get_First_Char; - alias FT_ULong function(FT_Face face, FT_ULong char_code, FT_UInt *agindex) da_FT_Get_Next_Char; - alias FT_UInt function(FT_Face face, FT_String* glyph_name) da_FT_Get_Name_Index; - alias FT_Long function(FT_Long a, FT_Long b, FT_Long c) da_FT_MulDiv; - alias FT_Long function(FT_Long a, FT_Long b) da_FT_MulFix; - alias FT_Long function(FT_Long a, FT_Long b) da_FT_DivFix; - alias FT_Fixed function(FT_Fixed a) da_FT_RoundFix; - alias FT_Fixed function(FT_Fixed a) da_FT_CeilFix; - alias FT_Fixed function(FT_Fixed a) da_FT_FloorFix; - alias void function(FT_Vector* vec, FT_Matrix* matrix) da_FT_Vector_Transform; - alias void function(FT_Library library, FT_Int *amajor, FT_Int *aminor, FT_Int *apatch) da_FT_Library_Version; - alias FT_Bool function(FT_Face face) da_FT_Face_CheckTrueTypePatents; - alias FT_Bool function(FT_Face face, FT_Bool value) da_FT_Face_SetUnpatentedHinting; - alias FT_ListNode function(FT_List list, void* data) da_FT_List_Find; - alias void function(FT_List list, FT_ListNode node) da_FT_List_Add; - alias void function(FT_List list, FT_ListNode node) da_FT_List_Insert; - alias void function(FT_List list, FT_ListNode node) da_FT_List_Remove; - alias void function(FT_List list, FT_ListNode node) da_FT_List_Up; - alias FT_Error function(FT_List list, FT_List_Iterator iterator, void* user) da_FT_List_Iterate; - alias void function(FT_List list, FT_List_Destructor destroy, FT_Memory memory, void* user) da_FT_List_Finalize; - alias FT_Error function(FT_Outline* outline, in FT_Outline_Funcs* func_interface, void* user) da_FT_Outline_Decompose; - alias FT_Error function(FT_Library library, FT_UInt numPoints, FT_Int numContours, FT_Outline *anoutline) da_FT_Outline_New; - alias FT_Error function(FT_Memory memory, FT_UInt numPoints, FT_Int numContours, FT_Outline *anoutline) da_FT_Outline_New_Internal; - alias FT_Error function(FT_Library library, FT_Outline* outline) da_FT_Outline_Done; - alias FT_Error function(FT_Memory memory, FT_Outline* outline) da_FT_Outline_Done_Internal; - alias FT_Error function(FT_Outline* outline) da_FT_Outline_Check; - alias void function(in FT_Outline* outline, FT_BBox *acbox) da_FT_Outline_Get_CBox; - alias void function(in FT_Outline* outline, FT_Pos xOffset, FT_Pos yOffset) da_FT_Outline_Translate; - alias FT_Error function(in FT_Outline* source, FT_Outline *target) da_FT_Outline_Copy; - alias void function(in FT_Outline* outline, in FT_Matrix* matrix) da_FT_Outline_Transform; - alias FT_Error function(FT_Outline* outline, FT_Pos strength) da_FT_Outline_Embolden; - alias void function(FT_Outline* outline) da_FT_Outline_Reverse; - alias FT_Error function(FT_Library library, FT_Outline* outline, in FT_Bitmap *abitmap) da_FT_Outline_Get_Bitmap; - alias FT_Error function(FT_Library library, FT_Outline* outline, FT_Raster_Params* params) da_FT_Outline_Render; - alias FT_Orientation function(FT_Outline* outline) da_FT_Outline_Get_Orientation; - alias FT_Error function(FT_Face face, FT_Size* size) da_FT_New_Size; - alias FT_Error function(FT_Size size) da_FT_Done_Size; - alias FT_Error function(FT_Size size) da_FT_Activate_Size; - alias FT_Error function(FT_Library library, in FT_Module_Class* clazz) da_FT_Add_Module; - alias FT_Module function(FT_Library library, CCPTR module_name) da_FT_Get_Module; - alias FT_Error function(FT_Library library, FT_Module mod) da_FT_Remove_Module; - alias FT_Error function(FT_Library library) da_FT_Reference_Library; - alias FT_Error function(FT_Memory memory, FT_Library *alibrary) da_FT_New_Library; - alias FT_Error function(FT_Library library) da_FT_Done_Library; - alias void function(FT_Library library, FT_UInt hook_index, FT_DebugHook_Func debug_hook) da_FT_Set_Debug_Hook; - alias void function(FT_Library library) da_FT_Add_Default_Modules; - alias FT_TrueTypeEngineType function(FT_Library library) da_FT_Get_TrueType_Engine_Type; - alias FT_Renderer function(FT_Library library, FT_Glyph_Format format) da_FT_Get_Renderer; - alias FT_Error function(FT_Library library, FT_Renderer renderer, FT_UInt num_params, FT_Parameter* parameters) da_FT_Set_Renderer; - alias FT_Int function(FT_Face face) da_FT_Has_PS_Glyph_Names; - alias FT_Error function(FT_Face face, PS_FontInfoRec *afont_info) da_FT_Get_PS_Font_Info; - alias FT_Error function(FT_Face face, PS_PrivateRec *afont_private) da_FT_Get_PS_Font_Private; - alias FT_Long function(FT_Face,PS_Dict_Keys,FT_UInt,void*,FT_Long) da_FT_Get_PS_Font_Value; - alias void* function(FT_Face face, FT_Sfnt_Tag tag) da_FT_Get_Sfnt_Table; - alias FT_Error function(FT_Face face, FT_ULong tag, FT_Long offset, FT_Byte* buffer, FT_ULong* length) da_FT_Load_Sfnt_Table; - alias FT_Error function(FT_Face face, FT_UInt table_index, FT_ULong *tag, FT_ULong *length) da_FT_Sfnt_Table_Info; - alias FT_ULong function(FT_CharMap charmap) da_FT_Get_CMap_Language_ID; - alias FT_ULong function(FT_CharMap charmap) da_FT_Get_CMap_Format; - alias FT_Error function(FT_Face face, CCPTR* acharset_encoding, CCPTR* acharset_registry) da_FT_Get_BDF_Charset_ID; - alias FT_Error function(FT_Face face, CCPTR prop_name, BDF_PropertyRec *aproperty) da_FT_Get_BDF_Property; - alias FT_Error function(FT_Stream stream, FT_Stream source) da_FT_Stream_OpenGzip; - alias FT_Error function(FT_Stream stream, FT_Stream source) da_FT_Stream_OpenLZW; - alias FT_Error function(FT_Face face, FT_WinFNT_HeaderRec *aheader) da_FT_Get_WinFNT_Header; - alias FT_Error function(FT_GlyphSlot slot, FT_Glyph *aglyph) da_FT_Get_Glyph; - alias FT_Error function(FT_Glyph source, FT_Glyph *target) da_FT_Glyph_Copy; - alias FT_Error function(FT_Glyph glyph, FT_Matrix* matrix, FT_Vector* delta) da_FT_Glyph_Transform; - alias void function(FT_Glyph glyph, FT_UInt bbox_mode, FT_BBox *acbox) da_FT_Glyph_Get_CBox; - alias FT_Error function(FT_Glyph* the_glyph, FT_Render_Mode render_mode, FT_Vector* origin, FT_Bool destroy) da_FT_Glyph_To_Bitmap; - alias void function(FT_Glyph glyph) da_FT_Done_Glyph; - alias void function(in FT_Matrix* a, FT_Matrix* b) da_FT_Matrix_Multiply; - alias FT_Error function(FT_Matrix* matrix) da_FT_Matrix_Invert; - alias void function(FT_Bitmap *abitmap) da_FT_Bitmap_New; - alias FT_Error function(FT_Library library, in FT_Bitmap *source, FT_Bitmap *target) da_FT_Bitmap_Copy; - alias FT_Error function(FT_Library library, FT_Bitmap* bitmap, FT_Pos xStrength, FT_Pos yStrength) da_FT_Bitmap_Embolden; - alias FT_Error function(FT_Library library, in FT_Bitmap *source, FT_Bitmap *target, FT_Int alignment) da_FT_Bitmap_Convert; - alias FT_Error function(FT_Library library, FT_Bitmap *bitmap) da_FT_Bitmap_Done; - alias FT_Error function(FT_Outline* outline, FT_BBox *abbox) da_FT_Outline_Get_BBox; - alias FT_Error function(FT_Library library, FT_UInt max_faces, FT_UInt max_sizes, FT_ULong max_bytes, FTC_Face_Requester requester, FT_Pointer req_data, FTC_Manager *amanager) da_FTC_Manager_New; - alias void function(FTC_Manager manager) da_FTC_Manager_Reset; - alias void function(FTC_Manager manager) da_FTC_Manager_Done; - alias FT_Error function(FTC_Manager manager, FTC_FaceID face_id, FT_Face *aface) da_FTC_Manager_LookupFace; - alias FT_Error function(FTC_Manager manager, FTC_Scaler scaler, FT_Size *asize) da_FTC_Manager_LookupSize; - alias void function(FTC_Node node, FTC_Manager manager) da_FTC_Node_Unref; - alias void function(FTC_Manager manager, FTC_FaceID face_id) da_FTC_Manager_RemoveFaceID; - alias FT_Error function(FTC_Manager manager, FTC_CMapCache *acache) da_FTC_CMapCache_New; - alias FT_UInt function(FTC_CMapCache cache, FTC_FaceID face_id, FT_Int cmap_index, FT_UInt32 char_code) da_FTC_CMapCache_Lookup; - alias FT_Error function(FTC_Manager manager, FTC_ImageCache *acache) da_FTC_ImageCache_New; - alias FT_Error function(FTC_ImageCache cache, FTC_ImageType type, FT_UInt gindex, FT_Glyph *aglyph, FTC_Node *anode) da_FTC_ImageCache_Lookup; - alias FT_Error function(FTC_ImageCache cache, FTC_Scaler scaler, FT_ULong load_flags, FT_UInt gindex, FT_Glyph *aglyph, FTC_Node *anode) da_FTC_ImageCache_LookupScaler; - alias FT_Error function(FTC_Manager manager, FTC_SBitCache *acache) da_FTC_SBitCache_New; - alias FT_Error function(FTC_SBitCache cache, FTC_ImageType type, FT_UInt gindex, FTC_SBit *sbit, FTC_Node *anode) da_FTC_SBitCache_Lookup; - alias FT_Error function(FTC_SBitCache cache, FTC_Scaler scaler, FT_ULong load_flags, FT_UInt gindex, FTC_SBit *sbit,FTC_Node *anode) da_FTC_SBitCache_LookupScaler; - alias FT_Error function(FT_Face face, FT_Multi_Master *amaster) da_FT_Get_Multi_Master; - alias FT_Error function(FT_Face face, FT_MM_Var* *amaster) da_FT_Get_MM_Var; - alias FT_Error function(FT_Face face, FT_UInt num_coords, FT_Long* coords) da_FT_Set_MM_Design_Coordinates; - alias FT_Error function(FT_Face face, FT_UInt num_coords, FT_Fixed* coords) da_FT_Set_Var_Design_Coordinates; - alias FT_Error function(FT_Face face, FT_UInt num_coords, FT_Fixed* coords) da_FT_Set_MM_Blend_Coordinates; - alias FT_Error function(FT_Face face, FT_UInt num_coords, FT_Fixed* coords) da_FT_Set_Var_Blend_Coordinates; - alias FT_UInt function(FT_Face face) da_FT_Get_Sfnt_Name_Count; - alias FT_Error function(FT_Face face, FT_UInt idx, FT_SfntName *aname) da_FT_Get_Sfnt_Name; - alias FT_Error function(FT_Face face, FT_UInt validation_flags, FT_Bytes *BASE_table, FT_Bytes *GDEF_table, FT_Bytes *GPOS_table, FT_Bytes *GSUB_table, FT_Bytes *JSTF_table) da_FT_OpenType_Validate; - alias void function (FT_Face face, FT_Bytes table) da_FT_OpenType_Free; - alias FT_Error function(FT_Face face, FT_UInt validation_flags, FT_Bytes[FT_VALIDATE_GX_LENGTH] tables, FT_UInt table_length) da_FT_TrueTypeGX_Validate; - alias void function(FT_Face face, FT_Bytes table) da_FT_TrueTypeGX_Free; - alias FT_Error function(FT_Face face, FT_UInt validation_flags, FT_Bytes *ckern_table) da_FT_ClassicKern_Validate; - alias void function(FT_Face face, FT_Bytes table) da_FT_ClassicKern_Free; - alias FT_Error function(FT_Face face, FT_UInt *aoutline_resolution, FT_UInt *ametrics_resolution, FT_Fixed *ametrics_x_scale, FT_Fixed *ametrics_y_scale) da_FT_Get_PFR_Metrics; - alias FT_Error function(FT_Face face, FT_UInt left, FT_UInt right, FT_Vector *avector) da_FT_Get_PFR_Kerning; - alias FT_Error function(FT_Face face, FT_UInt gindex, FT_Pos *aadvance) da_FT_Get_PFR_Advance; - alias FT_StrokerBorder function(FT_Outline* outline) da_FT_Outline_GetInsideBorder; - alias FT_StrokerBorder function(FT_Outline* outline) da_FT_Outline_GetOutsideBorder; - alias FT_Error function(FT_Memory memory, FT_Stroker *astroker) da_FT_Stroker_New; - alias void function(FT_Stroker stroker, FT_Fixed radius, FT_Stroker_LineCap line_cap, FT_Stroker_LineJoin line_join, FT_Fixed miter_limit) da_FT_Stroker_Set; - alias void function(FT_Stroker stroker) da_FT_Stroker_Rewind; - alias FT_Error function(FT_Stroker stroker, FT_Outline* outline, FT_Bool opened) da_FT_Stroker_ParseOutline; - alias FT_Error function(FT_Stroker stroker, FT_Vector* to, FT_Bool open) da_FT_Stroker_BeginSubPath; - alias FT_Error function(FT_Stroker stroker) da_FT_Stroker_EndSubPath; - alias FT_Error function(FT_Stroker stroker, FT_Vector* to) da_FT_Stroker_LineTo; - alias FT_Error function(FT_Stroker stroker, FT_Vector* control, FT_Vector* to) da_FT_Stroker_ConicTo; - alias FT_Error function(FT_Stroker stroker, FT_Vector* control1, FT_Vector* control2, FT_Vector* to) da_FT_Stroker_CubicTo; - alias FT_Error function(FT_Stroker stroker, FT_StrokerBorder border, FT_UInt *anum_points, FT_UInt *anum_contours) da_FT_Stroker_GetBorderCounts; - alias void function(FT_Stroker stroker, FT_StrokerBorder border, FT_Outline* outline) da_FT_Stroker_ExportBorder; - alias FT_Error function(FT_Stroker stroker, FT_UInt *anum_points, FT_UInt *anum_contours) da_FT_Stroker_GetCounts; - alias void function(FT_Stroker stroker, FT_Outline* outline) da_FT_Stroker_Export; - alias void function(FT_Stroker stroker) da_FT_Stroker_Done; - alias FT_Error function(FT_Glyph *pglyph, FT_Stroker stroker, FT_Bool destroy) da_FT_Glyph_Stroke; - alias FT_Error function(FT_Glyph *pglyph, FT_Stroker stroker, FT_Bool inside, FT_Bool destroy) da_FT_Glyph_StrokeBorder; - alias FT_Error function(FT_GlyphSlot slot) da_FT_GlyphSlot_Own_Bitmap; - alias void function(FT_GlyphSlot slot) da_FT_GlyphSlot_Embolden; - alias void function(FT_GlyphSlot slot) da_FT_GlyphSlot_Oblique; - alias CCPTR function(FT_Face face) da_FT_Get_X11_Font_Format; - alias FT_Fixed function(FT_Angle angle) da_FT_Sin; - alias FT_Fixed function(FT_Angle angle) da_FT_Cos; - alias FT_Fixed function(FT_Angle angle) da_FT_Tan; - alias FT_Angle function(FT_Fixed x,FT_Fixed y) da_FT_Atan2; - alias FT_Angle function(FT_Angle angle1, FT_Angle angle2) da_FT_Angle_Diff; - alias void function(FT_Vector* vec, FT_Angle angle) da_FT_Vector_Unit; - alias void function(FT_Vector* vec, FT_Angle angle) da_FT_Vector_Rotate; - alias FT_Fixed function(FT_Vector* vec) da_FT_Vector_Length; - alias void function(FT_Vector* vec, FT_Fixed *length, FT_Angle *angle) da_FT_Vector_Polarize; - alias void function(FT_Vector* vec, FT_Fixed length, FT_Angle angle) da_FT_Vector_From_Polar; - alias FT_Error function(FT_Library library, FT_LcdFilter filter) da_FT_Library_SetLcdFilter; - alias FT_Error function(FT_Library library, ubyte* weights) da_FT_Library_SetLcdFilterWeights; - alias FT_Int function(FT_Face face, FT_UInt ppem) da_FT_Get_Gasp; -} - -mixin(gsharedString!() ~ -" -da_FT_Init_FreeType FT_Init_FreeType; -da_FT_Done_FreeType FT_Done_FreeType; -da_FT_New_Face FT_New_Face; -da_FT_New_Memory_Face FT_New_Memory_Face; -da_FT_Open_Face FT_Open_Face; -da_FT_Attach_File FT_Attach_File; -da_FT_Attach_Stream FT_Attach_Stream; -da_FT_Reference_Face FT_Reference_Face; -da_FT_Done_Face FT_Done_Face; -da_FT_Select_Size FT_Select_Size; -da_FT_Request_Size FT_Request_Size; -da_FT_Set_Char_Size FT_Set_Char_Size; -da_FT_Set_Pixel_Sizes FT_Set_Pixel_Sizes; -da_FT_Load_Glyph FT_Load_Glyph; -da_FT_Load_Char FT_Load_Char; -da_FT_Set_Transform FT_Set_Transform; -da_FT_Render_Glyph FT_Render_Glyph; -da_FT_Get_Kerning FT_Get_Kerning; -da_FT_Get_Track_Kerning FT_Get_Track_Kerning; -da_FT_Get_Glyph_Name FT_Get_Glyph_Name; -da_FT_Get_Postscript_Name FT_Get_Postscript_Name; -da_FT_Select_Charmap FT_Select_Charmap; -da_FT_Set_Charmap FT_Set_Charmap; -da_FT_Get_Charmap_Index FT_Get_Charmap_Index; -da_FT_Get_Char_Index FT_Get_Char_Index; -da_FT_Get_First_Char FT_Get_First_Char; -da_FT_Get_Next_Char FT_Get_Next_Char; -da_FT_Get_Name_Index FT_Get_Name_Index; -da_FT_MulDiv FT_MulDiv; -da_FT_MulFix FT_MulFix; -da_FT_DivFix FT_DivFix; -da_FT_RoundFix FT_RoundFix; -da_FT_CeilFix FT_CeilFix; -da_FT_FloorFix FT_FloorFix; -da_FT_Vector_Transform FT_Vector_Transform; -da_FT_Library_Version FT_Library_Version; -da_FT_Face_CheckTrueTypePatents FT_Face_CheckTrueTypePatents; -da_FT_Face_SetUnpatentedHinting FT_Face_SetUnpatentedHinting; -da_FT_List_Find FT_List_Find; -da_FT_List_Add FT_List_Add; -da_FT_List_Insert FT_List_Insert; -da_FT_List_Remove FT_List_Remove; -da_FT_List_Up FT_List_Up; -da_FT_List_Iterate FT_List_Iterate; -da_FT_List_Finalize FT_List_Finalize; -da_FT_Outline_Decompose FT_Outline_Decompose; -da_FT_Outline_New FT_Outline_New; -da_FT_Outline_New_Internal FT_Outline_New_Internal; -da_FT_Outline_Done FT_Outline_Done; -da_FT_Outline_Done_Internal FT_Outline_Done_Internal; -da_FT_Outline_Check FT_Outline_Check; -da_FT_Outline_Get_CBox FT_Outline_Get_CBox; -da_FT_Outline_Translate FT_Outline_Translate; -da_FT_Outline_Copy FT_Outline_Copy; -da_FT_Outline_Transform FT_Outline_Transform; -da_FT_Outline_Embolden FT_Outline_Embolden; -da_FT_Outline_Reverse FT_Outline_Reverse; -da_FT_Outline_Get_Bitmap FT_Outline_Get_Bitmap; -da_FT_Outline_Render FT_Outline_Render; -da_FT_Outline_Get_Orientation FT_Outline_Get_Orientation; -da_FT_New_Size FT_New_Size; -da_FT_Done_Size FT_Done_Size; -da_FT_Activate_Size FT_Activate_Size; -da_FT_Add_Module FT_Add_Module; -da_FT_Get_Module FT_Get_Module; -da_FT_Remove_Module FT_Remove_Module; -da_FT_Reference_Library FT_Reference_Library; -da_FT_New_Library FT_New_Library; -da_FT_Done_Library FT_Done_Library; -da_FT_Set_Debug_Hook FT_Set_Debug_Hook; -da_FT_Add_Default_Modules FT_Add_Default_Modules; -da_FT_Get_TrueType_Engine_Type FT_Get_TrueType_Engine_Type; -da_FT_Get_Renderer FT_Get_Renderer; -da_FT_Set_Renderer FT_Set_Renderer; -da_FT_Has_PS_Glyph_Names FT_Has_PS_Glyph_Names; -da_FT_Get_PS_Font_Info FT_Get_PS_Font_Info; -da_FT_Get_PS_Font_Private FT_Get_PS_Font_Private; -da_FT_Get_PS_Font_Value FT_Get_PS_Font_Value; -da_FT_Get_Sfnt_Table FT_Get_Sfnt_Table; -da_FT_Load_Sfnt_Table FT_Load_Sfnt_Table; -da_FT_Sfnt_Table_Info FT_Sfnt_Table_Info; -da_FT_Get_CMap_Language_ID FT_Get_CMap_Language_ID; -da_FT_Get_CMap_Format FT_Get_CMap_Format; -da_FT_Get_BDF_Charset_ID FT_Get_BDF_Charset_ID; -da_FT_Get_BDF_Property FT_Get_BDF_Property; -da_FT_Stream_OpenGzip FT_Stream_OpenGzip; -da_FT_Stream_OpenLZW FT_Stream_OpenLZW; -da_FT_Get_WinFNT_Header FT_Get_WinFNT_Header; -da_FT_Get_Glyph FT_Get_Glyph; -da_FT_Glyph_Copy FT_Glyph_Copy; -da_FT_Glyph_Transform FT_Glyph_Transform; -da_FT_Glyph_Get_CBox FT_Glyph_Get_CBox; -da_FT_Glyph_To_Bitmap FT_Glyph_To_Bitmap; -da_FT_Done_Glyph FT_Done_Glyph; -da_FT_Matrix_Multiply FT_Matrix_Multiply; -da_FT_Matrix_Invert FT_Matrix_Invert; -da_FT_Bitmap_New FT_Bitmap_New; -da_FT_Bitmap_Copy FT_Bitmap_Copy; -da_FT_Bitmap_Embolden FT_Bitmap_Embolden; -da_FT_Bitmap_Convert FT_Bitmap_Convert; -da_FT_Bitmap_Done FT_Bitmap_Done; -da_FT_Outline_Get_BBox FT_Outline_Get_BBox; -da_FTC_Manager_New FTC_Manager_New; -da_FTC_Manager_Reset FTC_Manager_Reset; -da_FTC_Manager_Done FTC_Manager_Done; -da_FTC_Manager_LookupFace FTC_Manager_LookupFace; -da_FTC_Manager_LookupSize FTC_Manager_LookupSize; -da_FTC_Node_Unref FTC_Node_Unref; -da_FTC_Manager_RemoveFaceID FTC_Manager_RemoveFaceID; -da_FTC_CMapCache_New FTC_CMapCache_New; -da_FTC_CMapCache_Lookup FTC_CMapCache_Lookup; -da_FTC_ImageCache_New FTC_ImageCache_New; -da_FTC_ImageCache_Lookup FTC_ImageCache_Lookup; -da_FTC_ImageCache_LookupScaler FTC_ImageCache_LookupScaler; -da_FTC_SBitCache_New FTC_SBitCache_New; -da_FTC_SBitCache_Lookup FTC_SBitCache_Lookup; -da_FTC_SBitCache_LookupScaler FTC_SBitCache_LookupScaler; -da_FT_Get_Multi_Master FT_Get_Multi_Master; -da_FT_Get_MM_Var FT_Get_MM_Var; -da_FT_Set_MM_Design_Coordinates FT_Set_MM_Design_Coordinates; -da_FT_Set_Var_Design_Coordinates FT_Set_Var_Design_Coordinates; -da_FT_Set_MM_Blend_Coordinates FT_Set_MM_Blend_Coordinates; -da_FT_Set_Var_Blend_Coordinates FT_Set_Var_Blend_Coordinates; -da_FT_Get_Sfnt_Name_Count FT_Get_Sfnt_Name_Count; -da_FT_Get_Sfnt_Name FT_Get_Sfnt_Name; -da_FT_OpenType_Validate FT_OpenType_Validate; -da_FT_OpenType_Free FT_OpenType_Free; -da_FT_TrueTypeGX_Validate FT_TrueTypeGX_Validate; -da_FT_TrueTypeGX_Free FT_TrueTypeGX_Free; -da_FT_ClassicKern_Validate FT_ClassicKern_Validate; -da_FT_ClassicKern_Free FT_ClassicKern_Free; -da_FT_Get_PFR_Metrics FT_Get_PFR_Metrics; -da_FT_Get_PFR_Kerning FT_Get_PFR_Kerning; -da_FT_Get_PFR_Advance FT_Get_PFR_Advance; -da_FT_Outline_GetInsideBorder FT_Outline_GetInsideBorder; -da_FT_Outline_GetOutsideBorder FT_Outline_GetOutsideBorder; -da_FT_Stroker_New FT_Stroker_New; -da_FT_Stroker_Set FT_Stroker_Set; -da_FT_Stroker_Rewind FT_Stroker_Rewind; -da_FT_Stroker_ParseOutline FT_Stroker_ParseOutline; -da_FT_Stroker_BeginSubPath FT_Stroker_BeginSubPath; -da_FT_Stroker_EndSubPath FT_Stroker_EndSubPath; -da_FT_Stroker_LineTo FT_Stroker_LineTo; -da_FT_Stroker_ConicTo FT_Stroker_ConicTo; -da_FT_Stroker_CubicTo FT_Stroker_CubicTo; -da_FT_Stroker_GetBorderCounts FT_Stroker_GetBorderCounts; -da_FT_Stroker_ExportBorder FT_Stroker_ExportBorder; -da_FT_Stroker_GetCounts FT_Stroker_GetCounts; -da_FT_Stroker_Export FT_Stroker_Export; -da_FT_Stroker_Done FT_Stroker_Done; -da_FT_Glyph_Stroke FT_Glyph_Stroke; -da_FT_Glyph_StrokeBorder FT_Glyph_StrokeBorder; -da_FT_GlyphSlot_Own_Bitmap FT_GlyphSlot_Own_Bitmap; -da_FT_GlyphSlot_Embolden FT_GlyphSlot_Embolden; -da_FT_GlyphSlot_Oblique FT_GlyphSlot_Oblique; -da_FT_Get_X11_Font_Format FT_Get_X11_Font_Format; -da_FT_Sin FT_Sin; -da_FT_Cos FT_Cos; -da_FT_Tan FT_Tan; -da_FT_Atan2 FT_Atan2; -da_FT_Angle_Diff FT_Angle_Diff; -da_FT_Vector_Unit FT_Vector_Unit; -da_FT_Vector_Rotate FT_Vector_Rotate; -da_FT_Vector_Length FT_Vector_Length; -da_FT_Vector_Polarize FT_Vector_Polarize; -da_FT_Vector_From_Polar FT_Vector_From_Polar; -da_FT_Library_SetLcdFilter FT_Library_SetLcdFilter; -da_FT_Library_SetLcdFilterWeights FT_Library_SetLcdFilterWeights; -da_FT_Get_Gasp FT_Get_Gasp; +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.freetype.ftfuncs; + +private +{ + import derelict.util.compat; + import derelict.freetype.fttypes; +} + +extern(C) +{ + alias FT_Error function(FT_Library *alibrary) da_FT_Init_FreeType; + alias FT_Error function(FT_Library library) da_FT_Done_FreeType; + alias FT_Error function(FT_Library library, CCPTR filepathname, FT_Long face_index, FT_Face *aface) da_FT_New_Face; + alias FT_Error function(FT_Library library, in FT_Byte* file_base, FT_Long file_size, FT_Long face_index, FT_Face *aface) da_FT_New_Memory_Face; + alias FT_Error function(FT_Library library, in FT_Open_Args* args, FT_Long face_index, FT_Face *aface) da_FT_Open_Face; + alias FT_Error function(FT_Face face, CCPTR filepathname) da_FT_Attach_File; + alias FT_Error function(FT_Face face, FT_Open_Args* parameters) da_FT_Attach_Stream; + alias FT_Error function(FT_Face face) da_FT_Reference_Face; + alias FT_Error function(FT_Face face) da_FT_Done_Face; + alias FT_Error function(FT_Face face, FT_Int strike_index) da_FT_Select_Size; + alias FT_Error function(FT_Face face, FT_Size_Request req) da_FT_Request_Size; + alias FT_Error function(FT_Face face, FT_F26Dot6 char_width, FT_F26Dot6 char_height, FT_UInt horz_resolution, FT_UInt vert_resolution) da_FT_Set_Char_Size; + alias FT_Error function(FT_Face face, FT_UInt pixel_width, FT_UInt pixel_height) da_FT_Set_Pixel_Sizes; + alias FT_Error function(FT_Face face, FT_UInt glyph_index, FT_Int32 load_flags) da_FT_Load_Glyph; + alias FT_Error function(FT_Face face, FT_ULong char_code, FT_Int32 load_flags) da_FT_Load_Char; + alias void function(FT_Face face, FT_Matrix* matrix, FT_Vector* delta) da_FT_Set_Transform; + alias FT_Error function(FT_GlyphSlot slot, FT_Render_Mode render_mode) da_FT_Render_Glyph; + alias FT_Error function(FT_Face face, FT_UInt left_glyph, FT_UInt right_glyph, FT_UInt kern_mode, FT_Vector *akerning) da_FT_Get_Kerning; + alias FT_Error function(FT_Face face, FT_Fixed point_size, FT_Int degree, FT_Fixed* akerning) da_FT_Get_Track_Kerning; + alias FT_Error function(FT_Face face, FT_UInt glyph_index, FT_Pointer buffer, FT_UInt buffer_max) da_FT_Get_Glyph_Name; + alias CCPTR function(FT_Face face) da_FT_Get_Postscript_Name; + alias FT_Error function(FT_Face face, FT_Encoding encoding) da_FT_Select_Charmap; + alias FT_Error function(FT_Face face, FT_CharMap charmap) da_FT_Set_Charmap; + alias FT_Int function(FT_CharMap charmap) da_FT_Get_Charmap_Index; + alias FT_UInt function(FT_Face face, FT_ULong charcode) da_FT_Get_Char_Index; + alias FT_ULong function(FT_Face face, FT_UInt *agindex) da_FT_Get_First_Char; + alias FT_ULong function(FT_Face face, FT_ULong char_code, FT_UInt *agindex) da_FT_Get_Next_Char; + alias FT_UInt function(FT_Face face, FT_String* glyph_name) da_FT_Get_Name_Index; + alias FT_Long function(FT_Long a, FT_Long b, FT_Long c) da_FT_MulDiv; + alias FT_Long function(FT_Long a, FT_Long b) da_FT_MulFix; + alias FT_Long function(FT_Long a, FT_Long b) da_FT_DivFix; + alias FT_Fixed function(FT_Fixed a) da_FT_RoundFix; + alias FT_Fixed function(FT_Fixed a) da_FT_CeilFix; + alias FT_Fixed function(FT_Fixed a) da_FT_FloorFix; + alias void function(FT_Vector* vec, FT_Matrix* matrix) da_FT_Vector_Transform; + alias void function(FT_Library library, FT_Int *amajor, FT_Int *aminor, FT_Int *apatch) da_FT_Library_Version; + alias FT_Bool function(FT_Face face) da_FT_Face_CheckTrueTypePatents; + alias FT_Bool function(FT_Face face, FT_Bool value) da_FT_Face_SetUnpatentedHinting; + alias FT_ListNode function(FT_List list, void* data) da_FT_List_Find; + alias void function(FT_List list, FT_ListNode node) da_FT_List_Add; + alias void function(FT_List list, FT_ListNode node) da_FT_List_Insert; + alias void function(FT_List list, FT_ListNode node) da_FT_List_Remove; + alias void function(FT_List list, FT_ListNode node) da_FT_List_Up; + alias FT_Error function(FT_List list, FT_List_Iterator iterator, void* user) da_FT_List_Iterate; + alias void function(FT_List list, FT_List_Destructor destroy, FT_Memory memory, void* user) da_FT_List_Finalize; + alias FT_Error function(FT_Outline* outline, in FT_Outline_Funcs* func_interface, void* user) da_FT_Outline_Decompose; + alias FT_Error function(FT_Library library, FT_UInt numPoints, FT_Int numContours, FT_Outline *anoutline) da_FT_Outline_New; + alias FT_Error function(FT_Memory memory, FT_UInt numPoints, FT_Int numContours, FT_Outline *anoutline) da_FT_Outline_New_Internal; + alias FT_Error function(FT_Library library, FT_Outline* outline) da_FT_Outline_Done; + alias FT_Error function(FT_Memory memory, FT_Outline* outline) da_FT_Outline_Done_Internal; + alias FT_Error function(FT_Outline* outline) da_FT_Outline_Check; + alias void function(in FT_Outline* outline, FT_BBox *acbox) da_FT_Outline_Get_CBox; + alias void function(in FT_Outline* outline, FT_Pos xOffset, FT_Pos yOffset) da_FT_Outline_Translate; + alias FT_Error function(in FT_Outline* source, FT_Outline *target) da_FT_Outline_Copy; + alias void function(in FT_Outline* outline, in FT_Matrix* matrix) da_FT_Outline_Transform; + alias FT_Error function(FT_Outline* outline, FT_Pos strength) da_FT_Outline_Embolden; + alias void function(FT_Outline* outline) da_FT_Outline_Reverse; + alias FT_Error function(FT_Library library, FT_Outline* outline, in FT_Bitmap *abitmap) da_FT_Outline_Get_Bitmap; + alias FT_Error function(FT_Library library, FT_Outline* outline, FT_Raster_Params* params) da_FT_Outline_Render; + alias FT_Orientation function(FT_Outline* outline) da_FT_Outline_Get_Orientation; + alias FT_Error function(FT_Face face, FT_Size* size) da_FT_New_Size; + alias FT_Error function(FT_Size size) da_FT_Done_Size; + alias FT_Error function(FT_Size size) da_FT_Activate_Size; + alias FT_Error function(FT_Library library, in FT_Module_Class* clazz) da_FT_Add_Module; + alias FT_Module function(FT_Library library, CCPTR module_name) da_FT_Get_Module; + alias FT_Error function(FT_Library library, FT_Module mod) da_FT_Remove_Module; + alias FT_Error function(FT_Library library) da_FT_Reference_Library; + alias FT_Error function(FT_Memory memory, FT_Library *alibrary) da_FT_New_Library; + alias FT_Error function(FT_Library library) da_FT_Done_Library; + alias void function(FT_Library library, FT_UInt hook_index, FT_DebugHook_Func debug_hook) da_FT_Set_Debug_Hook; + alias void function(FT_Library library) da_FT_Add_Default_Modules; + alias FT_TrueTypeEngineType function(FT_Library library) da_FT_Get_TrueType_Engine_Type; + alias FT_Renderer function(FT_Library library, FT_Glyph_Format format) da_FT_Get_Renderer; + alias FT_Error function(FT_Library library, FT_Renderer renderer, FT_UInt num_params, FT_Parameter* parameters) da_FT_Set_Renderer; + alias FT_Int function(FT_Face face) da_FT_Has_PS_Glyph_Names; + alias FT_Error function(FT_Face face, PS_FontInfoRec *afont_info) da_FT_Get_PS_Font_Info; + alias FT_Error function(FT_Face face, PS_PrivateRec *afont_private) da_FT_Get_PS_Font_Private; + alias FT_Long function(FT_Face,PS_Dict_Keys,FT_UInt,void*,FT_Long) da_FT_Get_PS_Font_Value; + alias void* function(FT_Face face, FT_Sfnt_Tag tag) da_FT_Get_Sfnt_Table; + alias FT_Error function(FT_Face face, FT_ULong tag, FT_Long offset, FT_Byte* buffer, FT_ULong* length) da_FT_Load_Sfnt_Table; + alias FT_Error function(FT_Face face, FT_UInt table_index, FT_ULong *tag, FT_ULong *length) da_FT_Sfnt_Table_Info; + alias FT_ULong function(FT_CharMap charmap) da_FT_Get_CMap_Language_ID; + alias FT_ULong function(FT_CharMap charmap) da_FT_Get_CMap_Format; + alias FT_Error function(FT_Face face, CCPTR* acharset_encoding, CCPTR* acharset_registry) da_FT_Get_BDF_Charset_ID; + alias FT_Error function(FT_Face face, CCPTR prop_name, BDF_PropertyRec *aproperty) da_FT_Get_BDF_Property; + alias FT_Error function(FT_Stream stream, FT_Stream source) da_FT_Stream_OpenGzip; + alias FT_Error function(FT_Stream stream, FT_Stream source) da_FT_Stream_OpenLZW; + alias FT_Error function(FT_Face face, FT_WinFNT_HeaderRec *aheader) da_FT_Get_WinFNT_Header; + alias FT_Error function(FT_GlyphSlot slot, FT_Glyph *aglyph) da_FT_Get_Glyph; + alias FT_Error function(FT_Glyph source, FT_Glyph *target) da_FT_Glyph_Copy; + alias FT_Error function(FT_Glyph glyph, FT_Matrix* matrix, FT_Vector* delta) da_FT_Glyph_Transform; + alias void function(FT_Glyph glyph, FT_UInt bbox_mode, FT_BBox *acbox) da_FT_Glyph_Get_CBox; + alias FT_Error function(FT_Glyph* the_glyph, FT_Render_Mode render_mode, FT_Vector* origin, FT_Bool destroy) da_FT_Glyph_To_Bitmap; + alias void function(FT_Glyph glyph) da_FT_Done_Glyph; + alias void function(in FT_Matrix* a, FT_Matrix* b) da_FT_Matrix_Multiply; + alias FT_Error function(FT_Matrix* matrix) da_FT_Matrix_Invert; + alias void function(FT_Bitmap *abitmap) da_FT_Bitmap_New; + alias FT_Error function(FT_Library library, in FT_Bitmap *source, FT_Bitmap *target) da_FT_Bitmap_Copy; + alias FT_Error function(FT_Library library, FT_Bitmap* bitmap, FT_Pos xStrength, FT_Pos yStrength) da_FT_Bitmap_Embolden; + alias FT_Error function(FT_Library library, in FT_Bitmap *source, FT_Bitmap *target, FT_Int alignment) da_FT_Bitmap_Convert; + alias FT_Error function(FT_Library library, FT_Bitmap *bitmap) da_FT_Bitmap_Done; + alias FT_Error function(FT_Outline* outline, FT_BBox *abbox) da_FT_Outline_Get_BBox; + alias FT_Error function(FT_Library library, FT_UInt max_faces, FT_UInt max_sizes, FT_ULong max_bytes, FTC_Face_Requester requester, FT_Pointer req_data, FTC_Manager *amanager) da_FTC_Manager_New; + alias void function(FTC_Manager manager) da_FTC_Manager_Reset; + alias void function(FTC_Manager manager) da_FTC_Manager_Done; + alias FT_Error function(FTC_Manager manager, FTC_FaceID face_id, FT_Face *aface) da_FTC_Manager_LookupFace; + alias FT_Error function(FTC_Manager manager, FTC_Scaler scaler, FT_Size *asize) da_FTC_Manager_LookupSize; + alias void function(FTC_Node node, FTC_Manager manager) da_FTC_Node_Unref; + alias void function(FTC_Manager manager, FTC_FaceID face_id) da_FTC_Manager_RemoveFaceID; + alias FT_Error function(FTC_Manager manager, FTC_CMapCache *acache) da_FTC_CMapCache_New; + alias FT_UInt function(FTC_CMapCache cache, FTC_FaceID face_id, FT_Int cmap_index, FT_UInt32 char_code) da_FTC_CMapCache_Lookup; + alias FT_Error function(FTC_Manager manager, FTC_ImageCache *acache) da_FTC_ImageCache_New; + alias FT_Error function(FTC_ImageCache cache, FTC_ImageType type, FT_UInt gindex, FT_Glyph *aglyph, FTC_Node *anode) da_FTC_ImageCache_Lookup; + alias FT_Error function(FTC_ImageCache cache, FTC_Scaler scaler, FT_ULong load_flags, FT_UInt gindex, FT_Glyph *aglyph, FTC_Node *anode) da_FTC_ImageCache_LookupScaler; + alias FT_Error function(FTC_Manager manager, FTC_SBitCache *acache) da_FTC_SBitCache_New; + alias FT_Error function(FTC_SBitCache cache, FTC_ImageType type, FT_UInt gindex, FTC_SBit *sbit, FTC_Node *anode) da_FTC_SBitCache_Lookup; + alias FT_Error function(FTC_SBitCache cache, FTC_Scaler scaler, FT_ULong load_flags, FT_UInt gindex, FTC_SBit *sbit,FTC_Node *anode) da_FTC_SBitCache_LookupScaler; + alias FT_Error function(FT_Face face, FT_Multi_Master *amaster) da_FT_Get_Multi_Master; + alias FT_Error function(FT_Face face, FT_MM_Var* *amaster) da_FT_Get_MM_Var; + alias FT_Error function(FT_Face face, FT_UInt num_coords, FT_Long* coords) da_FT_Set_MM_Design_Coordinates; + alias FT_Error function(FT_Face face, FT_UInt num_coords, FT_Fixed* coords) da_FT_Set_Var_Design_Coordinates; + alias FT_Error function(FT_Face face, FT_UInt num_coords, FT_Fixed* coords) da_FT_Set_MM_Blend_Coordinates; + alias FT_Error function(FT_Face face, FT_UInt num_coords, FT_Fixed* coords) da_FT_Set_Var_Blend_Coordinates; + alias FT_UInt function(FT_Face face) da_FT_Get_Sfnt_Name_Count; + alias FT_Error function(FT_Face face, FT_UInt idx, FT_SfntName *aname) da_FT_Get_Sfnt_Name; + alias FT_Error function(FT_Face face, FT_UInt validation_flags, FT_Bytes *BASE_table, FT_Bytes *GDEF_table, FT_Bytes *GPOS_table, FT_Bytes *GSUB_table, FT_Bytes *JSTF_table) da_FT_OpenType_Validate; + alias void function (FT_Face face, FT_Bytes table) da_FT_OpenType_Free; + alias FT_Error function(FT_Face face, FT_UInt validation_flags, FT_Bytes[FT_VALIDATE_GX_LENGTH] tables, FT_UInt table_length) da_FT_TrueTypeGX_Validate; + alias void function(FT_Face face, FT_Bytes table) da_FT_TrueTypeGX_Free; + alias FT_Error function(FT_Face face, FT_UInt validation_flags, FT_Bytes *ckern_table) da_FT_ClassicKern_Validate; + alias void function(FT_Face face, FT_Bytes table) da_FT_ClassicKern_Free; + alias FT_Error function(FT_Face face, FT_UInt *aoutline_resolution, FT_UInt *ametrics_resolution, FT_Fixed *ametrics_x_scale, FT_Fixed *ametrics_y_scale) da_FT_Get_PFR_Metrics; + alias FT_Error function(FT_Face face, FT_UInt left, FT_UInt right, FT_Vector *avector) da_FT_Get_PFR_Kerning; + alias FT_Error function(FT_Face face, FT_UInt gindex, FT_Pos *aadvance) da_FT_Get_PFR_Advance; + alias FT_StrokerBorder function(FT_Outline* outline) da_FT_Outline_GetInsideBorder; + alias FT_StrokerBorder function(FT_Outline* outline) da_FT_Outline_GetOutsideBorder; + alias FT_Error function(FT_Memory memory, FT_Stroker *astroker) da_FT_Stroker_New; + alias void function(FT_Stroker stroker, FT_Fixed radius, FT_Stroker_LineCap line_cap, FT_Stroker_LineJoin line_join, FT_Fixed miter_limit) da_FT_Stroker_Set; + alias void function(FT_Stroker stroker) da_FT_Stroker_Rewind; + alias FT_Error function(FT_Stroker stroker, FT_Outline* outline, FT_Bool opened) da_FT_Stroker_ParseOutline; + alias FT_Error function(FT_Stroker stroker, FT_Vector* to, FT_Bool open) da_FT_Stroker_BeginSubPath; + alias FT_Error function(FT_Stroker stroker) da_FT_Stroker_EndSubPath; + alias FT_Error function(FT_Stroker stroker, FT_Vector* to) da_FT_Stroker_LineTo; + alias FT_Error function(FT_Stroker stroker, FT_Vector* control, FT_Vector* to) da_FT_Stroker_ConicTo; + alias FT_Error function(FT_Stroker stroker, FT_Vector* control1, FT_Vector* control2, FT_Vector* to) da_FT_Stroker_CubicTo; + alias FT_Error function(FT_Stroker stroker, FT_StrokerBorder border, FT_UInt *anum_points, FT_UInt *anum_contours) da_FT_Stroker_GetBorderCounts; + alias void function(FT_Stroker stroker, FT_StrokerBorder border, FT_Outline* outline) da_FT_Stroker_ExportBorder; + alias FT_Error function(FT_Stroker stroker, FT_UInt *anum_points, FT_UInt *anum_contours) da_FT_Stroker_GetCounts; + alias void function(FT_Stroker stroker, FT_Outline* outline) da_FT_Stroker_Export; + alias void function(FT_Stroker stroker) da_FT_Stroker_Done; + alias FT_Error function(FT_Glyph *pglyph, FT_Stroker stroker, FT_Bool destroy) da_FT_Glyph_Stroke; + alias FT_Error function(FT_Glyph *pglyph, FT_Stroker stroker, FT_Bool inside, FT_Bool destroy) da_FT_Glyph_StrokeBorder; + alias FT_Error function(FT_GlyphSlot slot) da_FT_GlyphSlot_Own_Bitmap; + alias void function(FT_GlyphSlot slot) da_FT_GlyphSlot_Embolden; + alias void function(FT_GlyphSlot slot) da_FT_GlyphSlot_Oblique; + alias CCPTR function(FT_Face face) da_FT_Get_X11_Font_Format; + alias FT_Fixed function(FT_Angle angle) da_FT_Sin; + alias FT_Fixed function(FT_Angle angle) da_FT_Cos; + alias FT_Fixed function(FT_Angle angle) da_FT_Tan; + alias FT_Angle function(FT_Fixed x,FT_Fixed y) da_FT_Atan2; + alias FT_Angle function(FT_Angle angle1, FT_Angle angle2) da_FT_Angle_Diff; + alias void function(FT_Vector* vec, FT_Angle angle) da_FT_Vector_Unit; + alias void function(FT_Vector* vec, FT_Angle angle) da_FT_Vector_Rotate; + alias FT_Fixed function(FT_Vector* vec) da_FT_Vector_Length; + alias void function(FT_Vector* vec, FT_Fixed *length, FT_Angle *angle) da_FT_Vector_Polarize; + alias void function(FT_Vector* vec, FT_Fixed length, FT_Angle angle) da_FT_Vector_From_Polar; + alias FT_Error function(FT_Library library, FT_LcdFilter filter) da_FT_Library_SetLcdFilter; + alias FT_Error function(FT_Library library, ubyte* weights) da_FT_Library_SetLcdFilterWeights; + alias FT_Int function(FT_Face face, FT_UInt ppem) da_FT_Get_Gasp; +} + +mixin(gsharedString!() ~ +" +da_FT_Init_FreeType FT_Init_FreeType; +da_FT_Done_FreeType FT_Done_FreeType; +da_FT_New_Face FT_New_Face; +da_FT_New_Memory_Face FT_New_Memory_Face; +da_FT_Open_Face FT_Open_Face; +da_FT_Attach_File FT_Attach_File; +da_FT_Attach_Stream FT_Attach_Stream; +da_FT_Reference_Face FT_Reference_Face; +da_FT_Done_Face FT_Done_Face; +da_FT_Select_Size FT_Select_Size; +da_FT_Request_Size FT_Request_Size; +da_FT_Set_Char_Size FT_Set_Char_Size; +da_FT_Set_Pixel_Sizes FT_Set_Pixel_Sizes; +da_FT_Load_Glyph FT_Load_Glyph; +da_FT_Load_Char FT_Load_Char; +da_FT_Set_Transform FT_Set_Transform; +da_FT_Render_Glyph FT_Render_Glyph; +da_FT_Get_Kerning FT_Get_Kerning; +da_FT_Get_Track_Kerning FT_Get_Track_Kerning; +da_FT_Get_Glyph_Name FT_Get_Glyph_Name; +da_FT_Get_Postscript_Name FT_Get_Postscript_Name; +da_FT_Select_Charmap FT_Select_Charmap; +da_FT_Set_Charmap FT_Set_Charmap; +da_FT_Get_Charmap_Index FT_Get_Charmap_Index; +da_FT_Get_Char_Index FT_Get_Char_Index; +da_FT_Get_First_Char FT_Get_First_Char; +da_FT_Get_Next_Char FT_Get_Next_Char; +da_FT_Get_Name_Index FT_Get_Name_Index; +da_FT_MulDiv FT_MulDiv; +da_FT_MulFix FT_MulFix; +da_FT_DivFix FT_DivFix; +da_FT_RoundFix FT_RoundFix; +da_FT_CeilFix FT_CeilFix; +da_FT_FloorFix FT_FloorFix; +da_FT_Vector_Transform FT_Vector_Transform; +da_FT_Library_Version FT_Library_Version; +da_FT_Face_CheckTrueTypePatents FT_Face_CheckTrueTypePatents; +da_FT_Face_SetUnpatentedHinting FT_Face_SetUnpatentedHinting; +da_FT_List_Find FT_List_Find; +da_FT_List_Add FT_List_Add; +da_FT_List_Insert FT_List_Insert; +da_FT_List_Remove FT_List_Remove; +da_FT_List_Up FT_List_Up; +da_FT_List_Iterate FT_List_Iterate; +da_FT_List_Finalize FT_List_Finalize; +da_FT_Outline_Decompose FT_Outline_Decompose; +da_FT_Outline_New FT_Outline_New; +da_FT_Outline_New_Internal FT_Outline_New_Internal; +da_FT_Outline_Done FT_Outline_Done; +da_FT_Outline_Done_Internal FT_Outline_Done_Internal; +da_FT_Outline_Check FT_Outline_Check; +da_FT_Outline_Get_CBox FT_Outline_Get_CBox; +da_FT_Outline_Translate FT_Outline_Translate; +da_FT_Outline_Copy FT_Outline_Copy; +da_FT_Outline_Transform FT_Outline_Transform; +da_FT_Outline_Embolden FT_Outline_Embolden; +da_FT_Outline_Reverse FT_Outline_Reverse; +da_FT_Outline_Get_Bitmap FT_Outline_Get_Bitmap; +da_FT_Outline_Render FT_Outline_Render; +da_FT_Outline_Get_Orientation FT_Outline_Get_Orientation; +da_FT_New_Size FT_New_Size; +da_FT_Done_Size FT_Done_Size; +da_FT_Activate_Size FT_Activate_Size; +da_FT_Add_Module FT_Add_Module; +da_FT_Get_Module FT_Get_Module; +da_FT_Remove_Module FT_Remove_Module; +da_FT_Reference_Library FT_Reference_Library; +da_FT_New_Library FT_New_Library; +da_FT_Done_Library FT_Done_Library; +da_FT_Set_Debug_Hook FT_Set_Debug_Hook; +da_FT_Add_Default_Modules FT_Add_Default_Modules; +da_FT_Get_TrueType_Engine_Type FT_Get_TrueType_Engine_Type; +da_FT_Get_Renderer FT_Get_Renderer; +da_FT_Set_Renderer FT_Set_Renderer; +da_FT_Has_PS_Glyph_Names FT_Has_PS_Glyph_Names; +da_FT_Get_PS_Font_Info FT_Get_PS_Font_Info; +da_FT_Get_PS_Font_Private FT_Get_PS_Font_Private; +da_FT_Get_PS_Font_Value FT_Get_PS_Font_Value; +da_FT_Get_Sfnt_Table FT_Get_Sfnt_Table; +da_FT_Load_Sfnt_Table FT_Load_Sfnt_Table; +da_FT_Sfnt_Table_Info FT_Sfnt_Table_Info; +da_FT_Get_CMap_Language_ID FT_Get_CMap_Language_ID; +da_FT_Get_CMap_Format FT_Get_CMap_Format; +da_FT_Get_BDF_Charset_ID FT_Get_BDF_Charset_ID; +da_FT_Get_BDF_Property FT_Get_BDF_Property; +da_FT_Stream_OpenGzip FT_Stream_OpenGzip; +da_FT_Stream_OpenLZW FT_Stream_OpenLZW; +da_FT_Get_WinFNT_Header FT_Get_WinFNT_Header; +da_FT_Get_Glyph FT_Get_Glyph; +da_FT_Glyph_Copy FT_Glyph_Copy; +da_FT_Glyph_Transform FT_Glyph_Transform; +da_FT_Glyph_Get_CBox FT_Glyph_Get_CBox; +da_FT_Glyph_To_Bitmap FT_Glyph_To_Bitmap; +da_FT_Done_Glyph FT_Done_Glyph; +da_FT_Matrix_Multiply FT_Matrix_Multiply; +da_FT_Matrix_Invert FT_Matrix_Invert; +da_FT_Bitmap_New FT_Bitmap_New; +da_FT_Bitmap_Copy FT_Bitmap_Copy; +da_FT_Bitmap_Embolden FT_Bitmap_Embolden; +da_FT_Bitmap_Convert FT_Bitmap_Convert; +da_FT_Bitmap_Done FT_Bitmap_Done; +da_FT_Outline_Get_BBox FT_Outline_Get_BBox; +da_FTC_Manager_New FTC_Manager_New; +da_FTC_Manager_Reset FTC_Manager_Reset; +da_FTC_Manager_Done FTC_Manager_Done; +da_FTC_Manager_LookupFace FTC_Manager_LookupFace; +da_FTC_Manager_LookupSize FTC_Manager_LookupSize; +da_FTC_Node_Unref FTC_Node_Unref; +da_FTC_Manager_RemoveFaceID FTC_Manager_RemoveFaceID; +da_FTC_CMapCache_New FTC_CMapCache_New; +da_FTC_CMapCache_Lookup FTC_CMapCache_Lookup; +da_FTC_ImageCache_New FTC_ImageCache_New; +da_FTC_ImageCache_Lookup FTC_ImageCache_Lookup; +da_FTC_ImageCache_LookupScaler FTC_ImageCache_LookupScaler; +da_FTC_SBitCache_New FTC_SBitCache_New; +da_FTC_SBitCache_Lookup FTC_SBitCache_Lookup; +da_FTC_SBitCache_LookupScaler FTC_SBitCache_LookupScaler; +da_FT_Get_Multi_Master FT_Get_Multi_Master; +da_FT_Get_MM_Var FT_Get_MM_Var; +da_FT_Set_MM_Design_Coordinates FT_Set_MM_Design_Coordinates; +da_FT_Set_Var_Design_Coordinates FT_Set_Var_Design_Coordinates; +da_FT_Set_MM_Blend_Coordinates FT_Set_MM_Blend_Coordinates; +da_FT_Set_Var_Blend_Coordinates FT_Set_Var_Blend_Coordinates; +da_FT_Get_Sfnt_Name_Count FT_Get_Sfnt_Name_Count; +da_FT_Get_Sfnt_Name FT_Get_Sfnt_Name; +da_FT_OpenType_Validate FT_OpenType_Validate; +da_FT_OpenType_Free FT_OpenType_Free; +da_FT_TrueTypeGX_Validate FT_TrueTypeGX_Validate; +da_FT_TrueTypeGX_Free FT_TrueTypeGX_Free; +da_FT_ClassicKern_Validate FT_ClassicKern_Validate; +da_FT_ClassicKern_Free FT_ClassicKern_Free; +da_FT_Get_PFR_Metrics FT_Get_PFR_Metrics; +da_FT_Get_PFR_Kerning FT_Get_PFR_Kerning; +da_FT_Get_PFR_Advance FT_Get_PFR_Advance; +da_FT_Outline_GetInsideBorder FT_Outline_GetInsideBorder; +da_FT_Outline_GetOutsideBorder FT_Outline_GetOutsideBorder; +da_FT_Stroker_New FT_Stroker_New; +da_FT_Stroker_Set FT_Stroker_Set; +da_FT_Stroker_Rewind FT_Stroker_Rewind; +da_FT_Stroker_ParseOutline FT_Stroker_ParseOutline; +da_FT_Stroker_BeginSubPath FT_Stroker_BeginSubPath; +da_FT_Stroker_EndSubPath FT_Stroker_EndSubPath; +da_FT_Stroker_LineTo FT_Stroker_LineTo; +da_FT_Stroker_ConicTo FT_Stroker_ConicTo; +da_FT_Stroker_CubicTo FT_Stroker_CubicTo; +da_FT_Stroker_GetBorderCounts FT_Stroker_GetBorderCounts; +da_FT_Stroker_ExportBorder FT_Stroker_ExportBorder; +da_FT_Stroker_GetCounts FT_Stroker_GetCounts; +da_FT_Stroker_Export FT_Stroker_Export; +da_FT_Stroker_Done FT_Stroker_Done; +da_FT_Glyph_Stroke FT_Glyph_Stroke; +da_FT_Glyph_StrokeBorder FT_Glyph_StrokeBorder; +da_FT_GlyphSlot_Own_Bitmap FT_GlyphSlot_Own_Bitmap; +da_FT_GlyphSlot_Embolden FT_GlyphSlot_Embolden; +da_FT_GlyphSlot_Oblique FT_GlyphSlot_Oblique; +da_FT_Get_X11_Font_Format FT_Get_X11_Font_Format; +da_FT_Sin FT_Sin; +da_FT_Cos FT_Cos; +da_FT_Tan FT_Tan; +da_FT_Atan2 FT_Atan2; +da_FT_Angle_Diff FT_Angle_Diff; +da_FT_Vector_Unit FT_Vector_Unit; +da_FT_Vector_Rotate FT_Vector_Rotate; +da_FT_Vector_Length FT_Vector_Length; +da_FT_Vector_Polarize FT_Vector_Polarize; +da_FT_Vector_From_Polar FT_Vector_From_Polar; +da_FT_Library_SetLcdFilter FT_Library_SetLcdFilter; +da_FT_Library_SetLcdFilterWeights FT_Library_SetLcdFilterWeights; +da_FT_Get_Gasp FT_Get_Gasp; "); diff --git a/src/derelict/freetype/fttypes.d b/src/derelict/freetype/fttypes.d old mode 100755 new mode 100644 index 40c5fe8a..e07e69ab --- a/src/derelict/freetype/fttypes.d +++ b/src/derelict/freetype/fttypes.d @@ -1,2895 +1,2895 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.freetype.fttypes; - -private -{ - import derelict.util.compat; -} - -// config/ftconfig.h -alias short FT_Int16; -alias ushort FT_UInt16; -alias int FT_Int32; -alias uint FT_UInt32; -alias int FT_Fast; -alias uint FT_UFast; - -// fttypes.h -alias byte FT_Bool; -alias short FT_FWord; -alias ushort FT_UFWord; -alias char FT_Char; -alias ubyte FT_Byte; -alias FT_Byte* FT_Bytes; -alias FT_UInt32 FT_Tag; -alias char FT_String; -alias short FT_Short; -alias ushort FT_UShort; -alias int FT_Int; -alias uint FT_UInt; -alias c_long FT_Long; -alias c_ulong FT_ULong; - - -alias short FT_F2Dot14; -alias c_long FT_F26Dot6; -alias c_long FT_Fixed; -alias int FT_Error; -alias void* FT_Pointer; - -alias size_t FT_Offset; -alias ptrdiff_t FT_PtrDist; - -// ftimage.h -alias FT_Long FT_Pos; - -// ftsystem.h -alias FT_MemoryRec* FT_Memory; -alias FT_StreamRec* FT_Stream; - -// ftimage.h -alias FT_RasterRec* FT_Raster; - -// fttypes.h -alias FT_ListNodeRec* FT_ListNode; -alias FT_ListRec* FT_List; - -// freetype.h -alias FT_LibraryRec* FT_Library; -alias FT_ModuleRec* FT_Module; -alias FT_DriverRec* FT_Driver; -alias FT_RendererRec* FT_Renderer; -alias FT_FaceRec* FT_Face; -alias FT_SizeRec* FT_Size; -alias FT_GlyphSlotRec* FT_GlyphSlot; -alias FT_CharMapRec* FT_CharMap; -alias FT_Face_InternalRec* FT_Face_Internal; -alias FT_Size_InternalRec* FT_Size_Internal; -alias FT_SubGlyphRec* FT_SubGlyph; -alias FT_Slot_InternalRec* FT_Slot_Internal; -alias FT_Size_RequestRec* FT_Size_Request; - -// ftmodapi.h -alias FT_Pointer FT_Module_Interface; - -// t1tables.h -alias PS_FontInfoRec* PS_FontInfo; -deprecated alias PS_FontInfoRec T1_FontInfo; -alias PS_PrivateRec* PS_Private; -deprecated alias PS_PrivateRec T1_Private; -alias PS_DesignMapRec* PS_DesignMap; -deprecated alias PS_DesignMapRec T1_DesignMap; -alias PS_BlendRec* PS_Blend; -deprecated alias PS_BlendRec T1_Blend; -alias CID_FaceDictRec* CID_FaceDict; -deprecated alias CID_FaceDictRec CID_FontDict; -alias CID_FaceInfoRec* CID_FaceInfo; -deprecated alias CID_FaceInfoRec CID_Info; - -// ftbdf.h -alias BDF_PropertyRec* BDF_Property; - -// ftwinfnt.h -alias FT_WinFNT_HeaderRec* FT_WinFNT_Header; - -// ftglyph.h -alias FT_GlyphRec* FT_Glyph; -alias FT_BitmapGlyphRec* FT_BitmapGlyph; -alias FT_OutlineGlyphRec* FT_OutlineGlyph; - -// ftcache.h -alias FTC_FaceIDRec* FTC_FaceID; -alias FTC_ManagerRec* FTC_Manager; -alias FTC_NodeRec* FTC_Node; -alias FTC_ScalerRec* FTC_Scaler; -alias FTC_CMapCacheRec* FTC_CMapCache; -alias FTC_ImageTypeRec* FTC_ImageType; -alias FTC_ImageCacheRec* FTC_ImageCache; -alias FTC_SBitRec* FTC_SBit; -alias FTC_SBitCacheRec* FTC_SBitCache; - -// ftstroke.h -alias FT_StrokerRec* FT_Stroker; - -// fttrigon.h -alias FT_Fixed FT_Angle; - -// ftincrem.h -alias FT_IncrementalRec* FT_Incremental; -alias FT_Incremental_MetricsRec* FT_Incremental_Metrics; -alias FT_Incremental_InterfaceRec* FT_Incremental_Interface; - -/+ other -alias FTC_MruNodeRec* FTC_MruNode; -alias FTC_MruListRec* FTC_MruList; -alias FTC_MruListClassRec* FTC_MruListClass; -alias FTC_CacheRec* FTC_Cache; -alias FTC_CacheClassRec* FTC_CacheClass; -alias FTC_FamilyRec* FTC_Family; -alias FTC_GNodeRec* FTC_GNode; -alias FTC_GQueryRec* FTC_GQuery; -alias FTC_GCacheRec* FTC_GCache; -alias FTC_GCacheClassRec* FTC_GCacheClass; -alias FTC_INodeRec* FTC_INode; -alias FTC_IFamilyClassRec* FTC_IFamilyClass; -alias FTC_SNodeRec* FTC_SNode; -alias FTC_SFamilyClassRec* FTC_SFamilyClass; - -alias FT_GlyphLoaderRec* FT_GlyphLoader ; -alias FT_GlyphLoadRec* FT_GlyphLoad; -alias FT_Driver_ClassRec* FT_Driver_Class; -alias FT_AutoHinterRec* FT_AutoHinter; -alias FT_AutoHinter_ServiceRec* FT_AutoHinter_Service; -alias FT_ServiceDescRec* FT_ServiceDesc; -alias FT_ServiceCacheRec* FT_ServiceCache; -alias FT_CMapRec* FT_CMap; -alias FT_CMap_ClassRec* FT_CMap_Class; - -alias SFNT_HeaderRec* SFNT_Header; - -alias TT_TableRec* TT_Table; -alias TT_LongMetricsRec* TT_LongMetrics; - -alias FT_Short TT_ShortMetrics; -alias TT_NameEntryRec* TT_NameEntry; -alias TT_NameTableRec* TT_NameTable; -alias TT_GaspRangeRec* TT_GaspRange; -alias TT_HdmxEntryRec* TT_HdmxEntry; -alias TT_HdmxRec* TT_Hdmx; -alias TT_Kern0_PairRec* TT_Kern0_Pair; -alias TT_SBit_MetricsRec* TT_SBit_Metrics; -alias TT_SBit_SmallMetricsRec* TT_SBit_SmallMetrics; -alias TT_SBit_LineMetricsRec* TT_SBit_LineMetrics; -alias TT_SBit_RangeRec* TT_SBit_Range; -alias TT_SBit_StrikeRec* TT_SBit_Strike; -alias TT_SBit_ComponentRec* TT_SBit_Component; -alias TT_SBit_ScaleRec* TT_SBit_Scale; -alias TT_Post_20Rec* TT_Post_20; -alias TT_Post_25Rec* TT_Post_25; -alias TT_Post_NamesRec* TT_Post_Names; -alias GX_BlendRec* GX_Blend; -alias TT_FaceRec* TT_Face; -alias TT_GlyphZoneRec* TT_GlyphZone; -alias TT_ExecContextRec* TT_ExecContext; -alias SFNT_Interface* SFNT_Service; -alias FT_ValidatorRec* FT_Validator; -alias PSH_GlobalsRec* PSH_Globals; -alias PSH_Globals_FuncsRec* PSH_Globals_Funcs; -alias T1_HintsRec* T1_Hints; -alias T1_Hints_FuncsRec* T1_Hints_Funcs; -alias T2_HintsRec* T2_Hints; -alias T2_Hints_FuncsRec* T2_Hints_Funcs; -alias PSHinter_Interface* PSHinter_Service; -// alias FT_Service_PsCMapsRec FT_Service_PsCMapsRec; -alias FT_Service_PsCMapsRec* FT_Service_PsCMaps; -alias T1_EncodingRec* T1_Encoding; -alias T1_FontRec* T1_Font; -alias CID_SubrsRec* CID_Subrs; -alias T1_FaceRec* T1_Face; -alias CID_FaceRec* CID_Face; -alias PS_TableRec* PS_Table; -alias PS_Table_FuncsRec* PS_Table_Funcs; -alias PS_ParserRec* PS_Parser; -alias T1_TokenRec* T1_Token; -alias T1_FieldRec* T1_Field; -alias PS_Parser_FuncsRec* PS_Parser_Funcs; -alias T1_BuilderRec* T1_Builder; -alias T1_Builder_FuncsRec* T1_Builder_Funcs; -alias T1_Decoder_ZoneRec* T1_Decoder_Zone; -alias T1_DecoderRec* T1_Decoder; -alias T1_Decoder_FuncsRec* T1_Decoder_Funcs; -alias T1_CMap_ClassesRec* T1_CMap_Classes; -alias PSAux_ServiceRec* PSAux_Service; -alias PSAux_ServiceRec PSAux_Interface; -alias TT_LoaderRec* TT_Loader; -+/ - - -// freetype.h -enum FT_Encoding -{ - FT_ENCODING_NONE = ( ( cast(FT_UInt32)(0) << 24 ) | ( cast(FT_UInt32)(0) << 16 ) | ( cast(FT_UInt32)(0) << 8 ) | cast(FT_UInt32)(0) ) , - FT_ENCODING_MS_SYMBOL = ( ( cast(FT_UInt32)('s') << 24 ) | ( cast(FT_UInt32)('y') << 16 ) | ( cast(FT_UInt32)('m') << 8 ) | cast(FT_UInt32)('b') ) , - FT_ENCODING_UNICODE = ( ( cast(FT_UInt32)('u') << 24 ) | ( cast(FT_UInt32)('n') << 16 ) | ( cast(FT_UInt32)('i') << 8 ) | cast(FT_UInt32)('c') ) , - FT_ENCODING_SJIS = ( ( cast(FT_UInt32)('s') << 24 ) | ( cast(FT_UInt32)('j') << 16 ) | ( cast(FT_UInt32)('i') << 8 ) | cast(FT_UInt32)('s') ) , - FT_ENCODING_GB2312 = ( ( cast(FT_UInt32)('g') << 24 ) | ( cast(FT_UInt32)('b') << 16 ) | ( cast(FT_UInt32)(' ') << 8 ) | cast(FT_UInt32)(' ') ) , - FT_ENCODING_BIG5 = ( ( cast(FT_UInt32)('b') << 24 ) | ( cast(FT_UInt32)('i') << 16 ) | ( cast(FT_UInt32)('g') << 8 ) | cast(FT_UInt32)('5') ) , - FT_ENCODING_WANSUNG = ( ( cast(FT_UInt32)('w') << 24 ) | ( cast(FT_UInt32)('a') << 16 ) | ( cast(FT_UInt32)('n') << 8 ) | cast(FT_UInt32)('s') ) , - FT_ENCODING_JOHAB = ( ( cast(FT_UInt32)('j') << 24 ) | ( cast(FT_UInt32)('o') << 16 ) | ( cast(FT_UInt32)('h') << 8 ) | cast(FT_UInt32)('a') ) , - FT_ENCODING_MS_SJIS = FT_ENCODING_SJIS, - FT_ENCODING_MS_GB2312 = FT_ENCODING_GB2312, - FT_ENCODING_MS_BIG5 = FT_ENCODING_BIG5, - FT_ENCODING_MS_WANSUNG = FT_ENCODING_WANSUNG, - FT_ENCODING_MS_JOHAB = FT_ENCODING_JOHAB, - FT_ENCODING_ADOBE_STANDARD = ( ( cast(FT_UInt32)('A') << 24 ) | ( cast(FT_UInt32)('D') << 16 ) | ( cast(FT_UInt32)('O') << 8 ) | cast(FT_UInt32)('B') ) , - FT_ENCODING_ADOBE_EXPERT = ( ( cast(FT_UInt32)('A') << 24 ) | ( cast(FT_UInt32)('D') << 16 ) | ( cast(FT_UInt32)('B') << 8 ) | cast(FT_UInt32)('E') ) , - FT_ENCODING_ADOBE_CUSTOM = ( ( cast(FT_UInt32)('A') << 24 ) | ( cast(FT_UInt32)('D') << 16 ) | ( cast(FT_UInt32)('B') << 8 ) | cast(FT_UInt32)('C') ) , - FT_ENCODING_ADOBE_LATIN_1 = ( ( cast(FT_UInt32)('l') << 24 ) | ( cast(FT_UInt32)('a') << 16 ) | ( cast(FT_UInt32)('t') << 8 ) | cast(FT_UInt32)('1') ) , - FT_ENCODING_OLD_LATIN_2 = ( ( cast(FT_UInt32)('l') << 24 ) | ( cast(FT_UInt32)('a') << 16 ) | ( cast(FT_UInt32)('t') << 8 ) | cast(FT_UInt32)('2') ) , - FT_ENCODING_APPLE_ROMAN = ( ( cast(FT_UInt32)('a') << 24 ) | ( cast(FT_UInt32)('r') << 16 ) | ( cast(FT_UInt32)('m') << 8 ) | cast(FT_UInt32)('n') ) -} - -enum : FT_Long -{ - FT_FACE_FLAG_SCALABLE = 1 << 0, - FT_FACE_FLAG_FIXED_SIZES = 1 << 1, - FT_FACE_FLAG_FIXED_WIDTH = 1 << 2, - FT_FACE_FLAG_SFNT = 1 << 3, - FT_FACE_FLAG_HORIZONTAL = 1 << 4, - FT_FACE_FLAG_VERTICAL = 1 << 5, - FT_FACE_FLAG_KERNING = 1 << 6, - FT_FACE_FLAG_FAST_GLYPHS = 1 << 7, - FT_FACE_FLAG_MULTIPLE_MASTERS = 1 << 8, - FT_FACE_FLAG_GLYPH_NAMES = 1 << 9, - FT_FACE_FLAG_EXTERNAL_STREAM = 1 << 10, - FT_FACE_FLAG_HINTER = 1 << 11, -} - -enum -{ - FT_STYLE_FLAG_ITALIC = 1 << 0, - FT_STYLE_FLAG_BOLD = 1 << 1, -} - -enum FT_Size_Request_Type -{ - FT_SIZE_REQUEST_TYPE_NOMINAL, - FT_SIZE_REQUEST_TYPE_REAL_DIM, - FT_SIZE_REQUEST_TYPE_BBOX, - FT_SIZE_REQUEST_TYPE_CELL, - FT_SIZE_REQUEST_TYPE_SCALES, - FT_SIZE_REQUEST_TYPE_MAX -} - -enum : uint -{ - FT_OPEN_MEMORY = 0x1, - FT_OPEN_STREAM = 0x2, - FT_OPEN_DRIVER = 0x4, - FT_OPEN_PATHNAME = 0x8, - FT_OPEN_PARAMS = 0x10, -} - -enum : uint -{ - FT_LOAD_DEFAULT = 0x0, - FT_LOAD_NO_SCALE = 0x1, - FT_LOAD_NO_HINTING = 0x2, - FT_LOAD_RENDER = 0x4, - FT_LOAD_NO_BITMAP = 0x8, - FT_LOAD_VERTICAL_LAYOUT = 0x10, - FT_LOAD_FORCE_AUTOHINT = 0x20, - FT_LOAD_CROP_BITMAP = 0x40, - FT_LOAD_PEDANTIC = 0x80, - FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH = 0x200, - FT_LOAD_NO_RECURSE = 0x400, - FT_LOAD_IGNORE_TRANSFORM = 0x800, - FT_LOAD_MONOCHROME = 0x1000, - FT_LOAD_LINEAR_DESIGN = 0x2000, - FT_LOAD_SBITS_ONLY = 0x4000, - FT_LOAD_NO_AUTOHINT = 0x8000U, -} - -enum FT_Render_Mode -{ - FT_RENDER_MODE_NORMAL = 0, - FT_RENDER_MODE_LIGHT, - FT_RENDER_MODE_MONO, - FT_RENDER_MODE_LCD, - FT_RENDER_MODE_LCD_V, - FT_RENDER_MODE_MAX -} - -enum -{ - FT_LOAD_TARGET_NORMAL = ( FT_Render_Mode.FT_RENDER_MODE_NORMAL & 15 ) << 16, - FT_LOAD_TARGET_LIGHT = ( FT_Render_Mode.FT_RENDER_MODE_LIGHT & 15 ) << 16, - FT_LOAD_TARGET_MONO = ( FT_Render_Mode.FT_RENDER_MODE_MONO & 15 ) << 16, - FT_LOAD_TARGET_LCD = ( FT_Render_Mode.FT_RENDER_MODE_LCD & 15 ) << 16, - FT_LOAD_TARGET_LCD_V = ( FT_Render_Mode.FT_RENDER_MODE_LCD_V & 15 ) << 16, -} - -enum FT_Kerning_Mode -{ - FT_KERNING_DEFAULT = 0, - FT_KERNING_UNFITTED, - FT_KERNING_UNSCALED -} - -enum -{ - FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS = 1, - FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES = 2, - FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID = 4, - FT_SUBGLYPH_FLAG_SCALE = 8, - FT_SUBGLYPH_FLAG_XY_SCALE = 0x40, - FT_SUBGLYPH_FLAG_2X2 = 0x80, - FT_SUBGLYPH_FLAG_USE_MY_METRICS = 0x200, -} - -enum -{ - FREETYPE_MAJOR = 2, - FREETYPE_MINOR = 3, - FREETYPE_PATCH = 5, -} - -// ftimage.h -enum FT_Pixel_Mode -{ - FT_PIXEL_MODE_NONE = 0, - FT_PIXEL_MODE_MONO, - FT_PIXEL_MODE_GRAY, - FT_PIXEL_MODE_GRAY2, - FT_PIXEL_MODE_GRAY4, - FT_PIXEL_MODE_LCD, - FT_PIXEL_MODE_LCD_V, - FT_PIXEL_MODE_MAX -} - -enum : uint -{ - FT_OUTLINE_NONE = 0x0, - FT_OUTLINE_OWNER = 0x1, - FT_OUTLINE_EVEN_ODD_FILL = 0x2, - FT_OUTLINE_REVERSE_FILL = 0x4, - FT_OUTLINE_IGNORE_DROPOUTS = 0x8, - FT_OUTLINE_HIGH_PRECISION = 0x100, - FT_OUTLINE_SINGLE_PASS = 0x200, -} - -enum -{ - FT_CURVE_TAG_ON = 1, - FT_CURVE_TAG_CONIC = 0, - FT_CURVE_TAG_CUBIC = 2, - FT_CURVE_TAG_TOUCH_X = 8, - FT_CURVE_TAG_TOUCH_Y = 16, - FT_CURVE_TAG_TOUCH_BOTH = FT_CURVE_TAG_TOUCH_X | FT_CURVE_TAG_TOUCH_Y, -} - -enum FT_Glyph_Format -{ - FT_GLYPH_FORMAT_NONE = ( ( cast(uint)0 << 24 ) | ( cast(uint)0 << 16 ) | ( cast(uint)0 << 8 ) | cast(uint)0 ) , - FT_GLYPH_FORMAT_COMPOSITE = ( ( cast(uint)'c' << 24 ) | ( cast(uint)'o' << 16 ) | ( cast(uint)'m' << 8 ) | cast(uint)'p' ) , - FT_GLYPH_FORMAT_BITMAP = ( ( cast(uint)'b' << 24 ) | ( cast(uint)'i' << 16 ) | ( cast(uint)'t' << 8 ) | cast(uint)'s' ) , - FT_GLYPH_FORMAT_OUTLINE = ( ( cast(uint)'o' << 24 ) | ( cast(uint)'u' << 16 ) | ( cast(uint)'t' << 8 ) | cast(uint)'l' ) , - FT_GLYPH_FORMAT_PLOTTER = ( ( cast(uint)'p' << 24 ) | ( cast(uint)'l' << 16 ) | ( cast(uint)'o' << 8 ) | cast(uint)'t' ) -} - -enum -{ - FT_RASTER_FLAG_DEFAULT = 0x0, - FT_RASTER_FLAG_AA = 0x1, - FT_RASTER_FLAG_DIRECT = 0x2, - FT_RASTER_FLAG_CLIP = 0x4 -} - -// ftmodapi.h -enum -{ - FT_MODULE_FONT_DRIVER = 1, - FT_MODULE_RENDERER = 2, - FT_MODULE_HINTER = 4, - FT_MODULE_STYLER = 8, - FT_MODULE_DRIVER_SCALABLE = 0x100, - FT_MODULE_DRIVER_NO_OUTLINES= 0x200, - FT_MODULE_DRIVER_HAS_HINTER = 0x400 -} - -enum FT_TrueTypeEngineType -{ - FT_TRUETYPE_ENGINE_TYPE_NONE = 0, - FT_TRUETYPE_ENGINE_TYPE_UNPATENTED, - FT_TRUETYPE_ENGINE_TYPE_PATENTED - -} - -// ftmoderr.h -enum -{ - FT_Mod_Err_Base = 0, - FT_Mod_Err_Autofit = 0, - FT_Mod_Err_BDF = 0, - FT_Mod_Err_Cache = 0, - FT_Mod_Err_CFF = 0, - FT_Mod_Err_CID = 0, - FT_Mod_Err_Gzip = 0, - FT_Mod_Err_LZW = 0, - FT_Mod_Err_OTvalid = 0, - FT_Mod_Err_PCF = 0, - FT_Mod_Err_PFR = 0, - FT_Mod_Err_PSaux = 0, - FT_Mod_Err_PShinter = 0, - FT_Mod_Err_PSnames = 0, - FT_Mod_Err_Raster = 0, - FT_Mod_Err_SFNT = 0, - FT_Mod_Err_Smooth = 0, - FT_Mod_Err_TrueType = 0, - FT_Mod_Err_Type1 = 0, - FT_Mod_Err_Type42 = 0, - FT_Mod_Err_Winfonts = 0, - FT_Mod_Err_Max -} - -// ftoutln -enum FT_Orientation -{ - FT_ORIENTATION_TRUETYPE = 0, - FT_ORIENTATION_POSTSCRIPT = 1, - FT_ORIENTATION_FILL_RIGHT = FT_ORIENTATION_TRUETYPE, - FT_ORIENTATION_FILL_LEFT = FT_ORIENTATION_POSTSCRIPT -} - -// t1tables.h -enum T1_Blend_Flags - { - T1_BLEND_UNDERLINE_POSITION = 0, - T1_BLEND_UNDERLINE_THICKNESS, - T1_BLEND_ITALIC_ANGLE, - T1_BLEND_BLUE_VALUES, - T1_BLEND_OTHER_BLUES, - T1_BLEND_STANDARD_WIDTH, - T1_BLEND_STANDARD_HEIGHT, - T1_BLEND_STEM_SNAP_WIDTHS, - T1_BLEND_STEM_SNAP_HEIGHTS, - T1_BLEND_BLUE_SCALE, - T1_BLEND_BLUE_SHIFT, - T1_BLEND_FAMILY_BLUES, - T1_BLEND_FAMILY_OTHER_BLUES, - T1_BLEND_FORCE_BOLD, - T1_BLEND_MAX -} - -// ttnameid.h -// NOTE: _lots_ of missing #defines which _could_ be made into enums - -// tttables.h -enum FT_Sfnt_Tag -{ - ft_sfnt_head = 0, - ft_sfnt_maxp = 1, - ft_sfnt_os2 = 2, - ft_sfnt_hhea = 3, - ft_sfnt_vhea = 4, - ft_sfnt_post = 5, - ft_sfnt_pclt = 6, - sfnt_max -} - -// ftbdf.h -enum BDF_PropertyType -{ - BDF_PROPERTY_TYPE_NONE = 0, - BDF_PROPERTY_TYPE_ATOM = 1, - BDF_PROPERTY_TYPE_INTEGER = 2, - BDF_PROPERTY_TYPE_CARDINAL = 3 -} - -// ftglyph.h -enum FT_Glyph_BBox_Mode -{ - FT_GLYPH_BBOX_UNSCALED = 0, - FT_GLYPH_BBOX_SUBPIXELS = 0, - FT_GLYPH_BBOX_GRIDFIT = 1, - FT_GLYPH_BBOX_TRUNCATE = 2, - FT_GLYPH_BBOX_PIXELS = 3 -} - -// ftotval.h -enum -{ - FT_VALIDATE_BASE = 0x0100, - FT_VALIDATE_GDEF = 0x0200, - FT_VALIDATE_GPOS = 0x0400, - FT_VALIDATE_GSUB = 0x0800, - FT_VALIDATE_JSTF = 0x1000, - FT_VALIDATE_OT = FT_VALIDATE_BASE | FT_VALIDATE_GDEF | FT_VALIDATE_GPOS | FT_VALIDATE_GSUB | FT_VALIDATE_JSTF -} - -// ftgxval.h -enum -{ - // pulled just a few #defines (some aren't for external use anyway) - FT_VALIDATE_GX_LENGTH = 10, - FT_VALIDATE_GX_START = 0x4000, - - FT_VALIDATE_feat = FT_VALIDATE_GX_START << 0, - FT_VALIDATE_mort = FT_VALIDATE_GX_START << 1, - FT_VALIDATE_morx = FT_VALIDATE_GX_START << 2, - FT_VALIDATE_bsln = FT_VALIDATE_GX_START << 3, - FT_VALIDATE_just = FT_VALIDATE_GX_START << 4, - FT_VALIDATE_kern = FT_VALIDATE_GX_START << 5, - FT_VALIDATE_opbd = FT_VALIDATE_GX_START << 6, - FT_VALIDATE_trak = FT_VALIDATE_GX_START << 7, - FT_VALIDATE_prop = FT_VALIDATE_GX_START << 8, - FT_VALIDATE_lcar = FT_VALIDATE_GX_START << 9, - FT_VALIDATE_GX = FT_VALIDATE_feat | FT_VALIDATE_mort | FT_VALIDATE_morx | FT_VALIDATE_bsln | FT_VALIDATE_just | FT_VALIDATE_kern | FT_VALIDATE_opbd | FT_VALIDATE_trak | FT_VALIDATE_prop | FT_VALIDATE_lcar, - - FT_VALIDATE_MS = FT_VALIDATE_GX_START << 0, - FT_VALIDATE_APPLE = FT_VALIDATE_GX_START << 1, - FT_VALIDATE_CKERN = FT_VALIDATE_MS | FT_VALIDATE_APPLE -} - -// ftstroke.h -enum FT_Stroker_LineJoin -{ - FT_STROKER_LINEJOIN_ROUND = 0, - FT_STROKER_LINEJOIN_BEVEL, - FT_STROKER_LINEJOIN_MITER -} - -enum FT_Stroker_LineCap -{ - FT_STROKER_LINECAP_BUTT = 0, - FT_STROKER_LINECAP_ROUND, - FT_STROKER_LINECAP_SQUARE -} - -enum FT_StrokerBorder -{ - FT_STROKER_BORDER_LEFT = 0, - FT_STROKER_BORDER_RIGHT -} - -// fttrigon.h -enum -{ - FT_ANGLE_PI = 180 << 16, - FT_ANGLE_2PI = FT_ANGLE_PI * 2, - FT_ANGLE_PI2 = FT_ANGLE_PI / 2, - FT_ANGLE_PI4 = FT_ANGLE_PI / 4 -} - -// ftlcdfil.h -enum FT_LcdFilter -{ - FT_LCD_FILTER_NONE = 0, - FT_LCD_FILTER_DEFAULT = 1, - FT_LCD_FILTER_LIGHT = 2, - FT_LCD_FILTER_LEGACY = 16, - FT_LCD_FILTER_MAX -} - -// ftgasp.h -enum -{ - FT_GASP_NO_TABLE = -1, - FT_GASP_DO_GRIDFIT = 0x01, - FT_GASP_DO_GRAY = 0x02, - FT_GASP_SYMMETRIC_SMOOTHING = 0x08, - FT_GASP_SYMMETRIC_GRIDFIT = 0x10 -} - -/* other -version(Windows) -{ - enum { _JBLEN = 16 } -} -else -{ - enum { _JBLEN = 10 } -} -*/ - -enum -{ - FT_Err_Ok = 0x00, - FT_Err_Cannot_Open_Resource = 0x01 + 0 , - FT_Err_Unknown_File_Format = 0x02 + 0 , - FT_Err_Invalid_File_Format = 0x03 + 0 , - FT_Err_Invalid_Version = 0x04 + 0 , - FT_Err_Lower_Module_Version = 0x05 + 0 , - FT_Err_Invalid_Argument = 0x06 + 0 , - FT_Err_Unimplemented_Feature = 0x07 + 0 , - FT_Err_Invalid_Table = 0x08 + 0 , - FT_Err_Invalid_Offset = 0x09 + 0 , - FT_Err_Invalid_Glyph_Index = 0x10 + 0 , - FT_Err_Invalid_Character_Code = 0x11 + 0 , - FT_Err_Invalid_Glyph_Format = 0x12 + 0 , - FT_Err_Cannot_Render_Glyph = 0x13 + 0 , - FT_Err_Invalid_Outline = 0x14 + 0 , - FT_Err_Invalid_Composite = 0x15 + 0 , - FT_Err_Too_Many_Hints = 0x16 + 0 , - FT_Err_Invalid_Pixel_Size = 0x17 + 0 , - FT_Err_Invalid_Handle = 0x20 + 0 , - FT_Err_Invalid_Library_Handle = 0x21 + 0 , - FT_Err_Invalid_Driver_Handle = 0x22 + 0 , - FT_Err_Invalid_Face_Handle = 0x23 + 0 , - FT_Err_Invalid_Size_Handle = 0x24 + 0 , - FT_Err_Invalid_Slot_Handle = 0x25 + 0 , - FT_Err_Invalid_CharMap_Handle = 0x26 + 0 , - FT_Err_Invalid_Cache_Handle = 0x27 + 0 , - FT_Err_Invalid_Stream_Handle = 0x28 + 0 , - FT_Err_Too_Many_Drivers = 0x30 + 0 , - FT_Err_Too_Many_Extensions = 0x31 + 0 , - FT_Err_Out_Of_Memory = 0x40 + 0 , - FT_Err_Unlisted_Object = 0x41 + 0 , - FT_Err_Cannot_Open_Stream = 0x51 + 0 , - FT_Err_Invalid_Stream_Seek = 0x52 + 0 , - FT_Err_Invalid_Stream_Skip = 0x53 + 0 , - FT_Err_Invalid_Stream_Read = 0x54 + 0 , - FT_Err_Invalid_Stream_Operation = 0x55 + 0 , - FT_Err_Invalid_Frame_Operation = 0x56 + 0 , - FT_Err_Nested_Frame_Access = 0x57 + 0 , - FT_Err_Invalid_Frame_Read = 0x58 + 0 , - FT_Err_Raster_Uninitialized = 0x60 + 0 , - FT_Err_Raster_Corrupted = 0x61 + 0 , - FT_Err_Raster_Overflow = 0x62 + 0 , - FT_Err_Raster_Negative_Height = 0x63 + 0 , - FT_Err_Too_Many_Caches = 0x70 + 0 , - FT_Err_Invalid_Opcode = 0x80 + 0 , - FT_Err_Too_Few_Arguments = 0x81 + 0 , - FT_Err_Stack_Overflow = 0x82 + 0 , - FT_Err_Code_Overflow = 0x83 + 0 , - FT_Err_Bad_Argument = 0x84 + 0 , - FT_Err_Divide_By_Zero = 0x85 + 0 , - FT_Err_Invalid_Reference = 0x86 + 0 , - FT_Err_Debug_OpCode = 0x87 + 0 , - FT_Err_ENDF_In_Exec_Stream = 0x88 + 0 , - FT_Err_Nested_DEFS = 0x89 + 0 , - FT_Err_Invalid_CodeRange = 0x8A + 0 , - FT_Err_Execution_Too_Long = 0x8B + 0 , - FT_Err_Too_Many_Function_Defs = 0x8C + 0 , - FT_Err_Too_Many_Instruction_Defs = 0x8D + 0 , - FT_Err_Table_Missing = 0x8E + 0 , - FT_Err_Horiz_Header_Missing = 0x8F + 0 , - FT_Err_Locations_Missing = 0x90 + 0 , - FT_Err_Name_Table_Missing = 0x91 + 0 , - FT_Err_CMap_Table_Missing = 0x92 + 0 , - FT_Err_Hmtx_Table_Missing = 0x93 + 0 , - FT_Err_Post_Table_Missing = 0x94 + 0 , - FT_Err_Invalid_Horiz_Metrics = 0x95 + 0 , - FT_Err_Invalid_CharMap_Format = 0x96 + 0 , - FT_Err_Invalid_PPem = 0x97 + 0 , - FT_Err_Invalid_Vert_Metrics = 0x98 + 0 , - FT_Err_Could_Not_Find_Context = 0x99 + 0 , - FT_Err_Invalid_Post_Table_Format = 0x9A + 0 , - FT_Err_Invalid_Post_Table = 0x9B + 0 , - FT_Err_Syntax_Error = 0xA0 + 0 , - FT_Err_Stack_Underflow = 0xA1 + 0 , - FT_Err_Ignore = 0xA2 + 0 , - FT_Err_Missing_Startfont_Field = 0xB0 + 0 , - FT_Err_Missing_Font_Field = 0xB1 + 0 , - FT_Err_Missing_Size_Field = 0xB2 + 0 , - FT_Err_Missing_Chars_Field = 0xB3 + 0 , - FT_Err_Missing_Startchar_Field = 0xB4 + 0 , - FT_Err_Missing_Encoding_Field = 0xB5 + 0 , - FT_Err_Missing_Bbx_Field = 0xB6 + 0 , - FT_Err_Max -} - -/* -enum FT_Frame_Op -{ - ft_frame_end = 0, - ft_frame_start = ((1 << 2 ) | ( 0 << 1 ) | 0 ) , - ft_frame_byte = ( ( 2 << 2 ) | ( 0 << 1 ) | 0 ) , - ft_frame_schar = ( ( 2 << 2 ) | ( 0 << 1 ) | 1 ) , - ft_frame_ushort_be = ( ( 3 << 2 ) | ( 0 << 1 ) | 0 ) , - ft_frame_short_be = ( ( 3 << 2 ) | ( 0 << 1 ) | 1 ) , - ft_frame_ushort_le = ( ( 3 << 2 ) | ( 1 << 1 ) | 0 ) , - ft_frame_short_le = ( ( 3 << 2 ) | ( 1 << 1 ) | 1 ) , - ft_frame_ulong_be = ( ( 4 << 2 ) | ( 0 << 1 ) | 0 ) , - ft_frame_long_be = ( ( 4 << 2 ) | ( 0 << 1 ) | 1 ) , - ft_frame_ulong_le = ( ( 4 << 2 ) | ( 1 << 1 ) | 0 ) , - ft_frame_long_le = ( ( 4 << 2 ) | ( 1 << 1 ) | 1 ) , - ft_frame_uoff3_be = ( ( 5 << 2 ) | ( 0 << 1 ) | 0 ) , - ft_frame_off3_be = ( ( 5 << 2 ) | ( 0 << 1 ) | 1 ) , - ft_frame_uoff3_le = ( ( 5 << 2 ) | ( 1 << 1 ) | 0 ) , - ft_frame_off3_le = ( ( 5 << 2 ) | ( 1 << 1 ) | 1 ) , - ft_frame_bytes = ( ( 6 << 2 ) | ( 0 << 1 ) | 0 ) , - ft_frame_skip = ( ( 6 << 2 ) | ( 0 << 1 ) | 1 ) -} - -enum FT_ValidationLevel -{ - FT_VALIDATE_DEFAULT = 0, - FT_VALIDATE_TIGHT, - FT_VALIDATE_PARANOID -} - -enum T1_EncodingType -{ - T1_ENCODING_TYPE_NONE = 0, - T1_ENCODING_TYPE_ARRAY, - T1_ENCODING_TYPE_STANDARD, - T1_ENCODING_TYPE_ISOLATIN1, - T1_ENCODING_TYPE_EXPERT -} - -enum T1_TokenType -{ - T1_TOKEN_TYPE_NONE = 0, - T1_TOKEN_TYPE_ANY, - T1_TOKEN_TYPE_STRING, - T1_TOKEN_TYPE_ARRAY, - T1_TOKEN_TYPE_MAX -} - -enum T1_FieldType -{ - T1_FIELD_TYPE_NONE = 0, - T1_FIELD_TYPE_BOOL, - T1_FIELD_TYPE_INTEGER, - T1_FIELD_TYPE_FIXED, - T1_FIELD_TYPE_FIXED_1000, - T1_FIELD_TYPE_STRING, - T1_FIELD_TYPE_KEY, - T1_FIELD_TYPE_BBOX, - T1_FIELD_TYPE_INTEGER_ARRAY, - T1_FIELD_TYPE_FIXED_ARRAY, - T1_FIELD_TYPE_CALLBACK, - T1_FIELD_TYPE_MAX -} - -enum T1_FieldLocation -{ - T1_FIELD_LOCATION_CID_INFO, - T1_FIELD_LOCATION_FONT_DICT, - T1_FIELD_LOCATION_FONT_INFO, - T1_FIELD_LOCATION_PRIVATE, - T1_FIELD_LOCATION_BBOX, - T1_FIELD_LOCATION_MAX -} - -enum T1_ParseState -{ - T1_Parse_Start, - T1_Parse_Have_Width, - T1_Parse_Have_Moveto, - T1_Parse_Have_Path -} -*/ - -struct FT_RasterRec; -struct FT_LibraryRec; -struct FT_ModuleRec; -struct FT_DriverRec; -struct FT_RendererRec; -struct FT_Face_InternalRec; -struct FT_Size_InternalRec; -struct FT_SubGlyphRec; -struct FT_Slot_InternalRec; - -struct FTC_FaceIDRec; -struct FTC_ManagerRec; -struct FTC_NodeRec; -struct FTC_CMapCacheRec; -struct FTC_ImageCacheRec; -struct FTC_SBitCacheRec; -struct FT_StrokerRec; -struct FT_IncrementalRec; - -// ftsystem.h -union FT_StreamDesc -{ - int value; - void* pointer; -} - -struct FT_MemoryRec -{ - void* user; - FT_Alloc_Func alloc; - FT_Free_Func free; - FT_Realloc_Func realloc; -} - -struct FT_StreamRec -{ - ubyte* base; - c_ulong size; - c_ulong pos; - FT_StreamDesc descriptor; - FT_StreamDesc pathname; - FT_Stream_IoFunc read; - FT_Stream_CloseFunc close; - FT_Memory memory; - ubyte* cursor; - ubyte* limit; -} - -// ftimage.h -struct FT_Vector -{ - FT_Pos x; - FT_Pos y; -} - -struct FT_BBox -{ - FT_Pos xMin, yMin; - FT_Pos xMax, yMax; -} - -struct FT_Bitmap -{ - int rows; - int width; - int pitch; - ubyte* buffer; - short num_grays; - byte pixel_mode; - byte palette_mode; - void* palette; -} - -struct FT_Outline -{ - short n_contours; - short n_points; - FT_Vector* points; - byte* tags; - short* contours; - int flags; -} - -struct FT_Outline_Funcs -{ - FT_Outline_MoveToFunc move_to; - FT_Outline_LineToFunc line_to; - FT_Outline_ConicToFunc conic_to; - FT_Outline_CubicToFunc cubic_to; - int shift; - FT_Pos delta; -} - -struct FT_Span -{ - short x; - ushort len; - ubyte coverage; -} - -struct FT_Raster_Params -{ - const FT_Bitmap* target; - const void* source; - int flags; - FT_SpanFunc gray_spans; - FT_SpanFunc black_spans; - FT_Raster_BitTest_Func bit_test; - FT_Raster_BitSet_Func bit_set; - void* user; - FT_BBox clip_box; -} - -struct FT_Raster_Funcs -{ - FT_Glyph_Format glyph_format; - FT_Raster_NewFunc raster_new; - FT_Raster_ResetFunc raster_reset; - FT_Raster_SetModeFunc raster_set_mode; - FT_Raster_RenderFunc raster_render; - FT_Raster_DoneFunc raster_done; -} - -// fttypes.h -struct FT_UnitVector -{ - FT_F2Dot14 x; - FT_F2Dot14 y; -} - -struct FT_Matrix -{ - FT_Fixed xx, xy; - FT_Fixed yx, yy; -} - -struct FT_Data -{ - const FT_Byte* pointer; - FT_Int length; -} - -struct FT_Generic -{ - void* data; - FT_Generic_Finalizer finalizer; -} - -struct FT_ListNodeRec -{ - FT_ListNode prev; - FT_ListNode next; - void* data; -} - -struct FT_ListRec -{ - FT_ListNode head; - FT_ListNode tail; -} - -// freetype.h -struct FT_Glyph_Metrics -{ - FT_Pos width; - FT_Pos height; - FT_Pos horiBearingX; - FT_Pos horiBearingY; - FT_Pos horiAdvance; - FT_Pos vertBearingX; - FT_Pos vertBearingY; - FT_Pos vertAdvance; -} - -struct FT_Bitmap_Size -{ - FT_Short height; - FT_Short width; - FT_Pos size; - FT_Pos x_ppem; - FT_Pos y_ppem; -} - -struct FT_CharMapRec -{ - FT_Face face; - FT_Encoding encoding; - FT_UShort platform_id; - FT_UShort encoding_id; -} - -struct FT_FaceRec -{ - FT_Long num_faces; - FT_Long face_index; - FT_Long face_flags; - FT_Long style_flags; - FT_Long num_glyphs; - FT_String* family_name; - FT_String* style_name; - FT_Int num_fixed_sizes; - FT_Bitmap_Size* available_sizes; - FT_Int num_charmaps; - FT_CharMap* charmaps; - FT_Generic generic; - FT_BBox bbox; - FT_UShort units_per_EM; - FT_Short ascender; - FT_Short descender; - FT_Short height; - FT_Short max_advance_width; - FT_Short max_advance_height; - FT_Short underline_position; - FT_Short underline_thickness; - FT_GlyphSlot glyph; - FT_Size size; - FT_CharMap charmap; - FT_Driver driver; - FT_Memory memory; - FT_Stream stream; - FT_ListRec sizes_list; - FT_Generic autohint; - void* extensions; - FT_Face_Internal internal; -} - -struct FT_Size_Metrics -{ - FT_UShort x_ppem; - FT_UShort y_ppem; - - FT_Fixed x_scale; - FT_Fixed y_scale; - - FT_Pos ascender; - FT_Pos descender; - FT_Pos height; - FT_Pos max_advance; -} - -struct FT_SizeRec -{ - FT_Face face; - FT_Generic generic; - FT_Size_Metrics metrics; - FT_Size_Internal internal; -} - -struct FT_GlyphSlotRec -{ - FT_Library library; - FT_Face face; - FT_GlyphSlot next; - FT_UInt reserved; - FT_Generic generic; - FT_Glyph_Metrics metrics; - FT_Fixed linearHoriAdvance; - FT_Fixed linearVertAdvance; - FT_Vector advance; - FT_Glyph_Format format; - FT_Bitmap bitmap; - FT_Int bitmap_left; - FT_Int bitmap_top; - FT_Outline outline; - FT_UInt num_subglyphs; - FT_SubGlyph subglyphs; - void* control_data; - c_long control_len; - FT_Pos lsb_delta; - FT_Pos rsb_delta; - void* other; - FT_Slot_Internal internal; -} - -struct FT_Parameter -{ - FT_ULong tag; - FT_Pointer data; -} - -struct FT_Open_Args -{ - FT_UInt flags; - FT_Byte* memory_base; - FT_Long memory_size; - FT_String* pathname; - FT_Stream stream; - FT_Module driver; - FT_Int num_params; - FT_Parameter* params; -} - -struct FT_Size_RequestRec -{ - FT_Size_Request_Type type; - FT_Long width; - FT_Long height; - FT_UInt horiResolution; - FT_UInt vertResolution; -} - -// ftmodapi.h -struct FT_Module_Class -{ - FT_ULong module_flags; - FT_Long module_size; - FT_String* module_name; - FT_Fixed module_version; - FT_Fixed module_requires; - void* module_interface; - FT_Module_Constructor module_init; - FT_Module_Destructor module_done; - FT_Module_Requester get_interface; -} - -// ftrender.h -struct FT_Glyph_Class // typedef'd in ftglyph.h -{ - FT_Long glyph_size; - FT_Glyph_Format glyph_format; - FT_Glyph_InitFunc glyph_init; - FT_Glyph_DoneFunc glyph_done; - FT_Glyph_CopyFunc glyph_copy; - FT_Glyph_TransformFunc glyph_transform; - FT_Glyph_GetBBoxFunc glyph_bbox; - FT_Glyph_PrepareFunc glyph_prepare; -} - -struct FT_Renderer_Class -{ - FT_Module_Class root; - FT_Glyph_Format glyph_format; - FT_Renderer_RenderFunc render_glyph; - FT_Renderer_TransformFunc transform_glyph; - FT_Renderer_GetCBoxFunc get_glyph_cbox; - FT_Renderer_SetModeFunc set_mode; - FT_Raster_Funcs* raster_class; -} - -// t1tables.h -struct PS_FontInfoRec - { - FT_String* _version; - FT_String* notice; - FT_String* full_name; - FT_String* family_name; - FT_String* weight; - FT_Long italic_angle; - FT_Bool is_fixed_pitch; - FT_Short underline_position; - FT_UShort underline_thickness; -} - -struct PS_PrivateRec -{ - FT_Int unique_id; - FT_Int lenIV; - FT_Byte num_blue_values; - FT_Byte num_other_blues; - FT_Byte num_family_blues; - FT_Byte num_family_other_blues; - FT_Short[14] blue_values; - FT_Short[10] other_blues; - FT_Short[14] family_blues; - FT_Short[10] family_other_blues; - FT_Fixed blue_scale; - FT_Int blue_shift; - FT_Int blue_fuzz; - FT_UShort[1] standard_width; - FT_UShort[1] standard_height; - FT_Byte num_snap_widths; - FT_Byte num_snap_heights; - FT_Bool force_bold; - FT_Bool round_stem_up; - FT_Short[13] snap_widths; - FT_Short[13] snap_heights; - FT_Fixed expansion_factor; - FT_Long language_group; - FT_Long password; - FT_Short[2] min_feature; -} - -struct PS_DesignMapRec -{ - FT_Byte num_points; - FT_Long* design_points; - FT_Fixed* blend_points; -} - -struct PS_BlendRec -{ - FT_UInt num_designs; - FT_UInt num_axis; - FT_String*[4] axis_names; - FT_Fixed*[16] design_pos; - PS_DesignMapRec[4] design_map; - FT_Fixed* weight_vector; - FT_Fixed* default_weight_vector; - PS_FontInfo[16+1] font_infos; - PS_Private[16+1] privates; - FT_ULong blend_bitflags; - FT_BBox*[16+1] bboxes; -} - -struct CID_FaceDictRec -{ - PS_PrivateRec private_dict; - FT_UInt len_buildchar; - FT_Fixed forcebold_threshold; - FT_Pos stroke_width; - FT_Fixed expansion_factor; - FT_Byte paint_type; - FT_Byte font_type; - FT_Matrix font_matrix; - FT_Vector font_offset; - FT_UInt num_subrs; - FT_ULong subrmap_offset; - FT_Int sd_bytes; -} - -struct CID_FaceInfoRec - { - FT_String* cid_font_name; - FT_Fixed cid_version; - FT_Int cid_font_type; - FT_String* registry; - FT_String* ordering; - FT_Int supplement; - PS_FontInfoRec font_info; - FT_BBox font_bbox; - FT_ULong uid_base; - FT_Int num_xuid; - FT_ULong[16] xuid; - FT_ULong cidmap_offset; - FT_Int fd_bytes; - FT_Int gd_bytes; - FT_ULong cid_count; - FT_Int num_dicts; - CID_FaceDict font_dicts; - FT_ULong data_offset; -} - -alias int PS_Dict_Keys; -enum -{ - PS_DICT_FONT_TYPE, - PS_DICT_FONT_MATRIX, - PS_DICT_FONT_BBOX, - PS_DICT_PAINT_TYPE, - PS_DICT_FONT_NAME, - PS_DICT_UNIQUE_ID, - PS_DICT_NUM_CHAR_STRINGS, - PS_DICT_CHAR_STRING_KEY, - PS_DICT_CHAR_STRING, - PS_DICT_ENCODING_TYPE, - PS_DICT_ENCODING_ENTRY, - PS_DICT_NUM_SUBRS, - PS_DICT_SUBR, - PS_DICT_STD_HW, - PS_DICT_STD_VW, - PS_DICT_NUM_BLUE_VALUES, - PS_DICT_BLUE_VALUE, - PS_DICT_BLUE_FUZZ, - PS_DICT_NUM_OTHER_BLUES, - PS_DICT_OTHER_BLUE, - PS_DICT_NUM_FAMILY_BLUES, - PS_DICT_FAMILY_BLUE, - PS_DICT_NUM_FAMILY_OTHER_BLUES, - PS_DICT_FAMILY_OTHER_BLUE, - PS_DICT_BLUE_SCALE, - PS_DICT_BLUE_SHIFT, - PS_DICT_NUM_STEM_SNAP_H, - PS_DICT_STEM_SNAP_H, - PS_DICT_NUM_STEM_SNAP_V, - PS_DICT_STEM_SNAP_V, - PS_DICT_FORCE_BOLD, - PS_DICT_RND_STEM_UP, - PS_DICT_MIN_FEATURE, - PS_DICT_LEN_IV, - PS_DICT_PASSWORD, - PS_DICT_LANGUAGE_GROUP, - PS_DICT_VERSION, - PS_DICT_NOTICE, - PS_DICT_FULL_NAME, - PS_DICT_FAMILY_NAME, - PS_DICT_WEIGHT, - PS_DICT_IS_FIXED_PITCH, - PS_DICT_UNDERLINE_POSITION, - PS_DICT_UNDERLINE_THICKNESS, - PS_DICT_FS_TYPE, - PS_DICT_ITALIC_ANGLE, - PS_DICT_MAX = PS_DICT_ITALIC_ANGLE -} - -// tttables.h -struct TT_Header -{ - FT_Fixed Table_Version; - FT_Fixed Font_Revision; - FT_Long CheckSum_Adjust; - FT_Long Magic_Number; - FT_UShort Flags; - FT_UShort Units_Per_EM; - FT_Long[2] Created; - FT_Long[2] Modified; - FT_Short xMin; - FT_Short yMin; - FT_Short xMax; - FT_Short yMax; - FT_UShort Mac_Style; - FT_UShort Lowest_Rec_PPEM; - FT_Short Font_Direction; - FT_Short Index_To_Loc_Format; - FT_Short Glyph_Data_Format; -} - -struct TT_HoriHeader -{ - FT_Fixed Version; - FT_Short Ascender; - FT_Short Descender; - FT_Short Line_Gap; - FT_UShort advance_Width_Max; - FT_Short min_Left_Side_Bearing; - FT_Short min_Right_Side_Bearing; - FT_Short xMax_Extent; - FT_Short caret_Slope_Rise; - FT_Short caret_Slope_Run; - FT_Short caret_Offset; - FT_Short[4] Reserved; - FT_Short metric_Data_Format; - FT_UShort number_Of_HMetrics; - void* long_metrics; - void* short_metrics; -} - -struct TT_VertHeader -{ - FT_Fixed Version; - FT_Short Ascender; - FT_Short Descender; - FT_Short Line_Gap; - FT_UShort advance_Height_Max; - FT_Short min_Top_Side_Bearing; - FT_Short min_Bottom_Side_Bearing; - FT_Short yMax_Extent; - FT_Short caret_Slope_Rise; - FT_Short caret_Slope_Run; - FT_Short caret_Offset; - FT_Short[4] Reserved; - FT_Short metric_Data_Format; - FT_UShort number_Of_VMetrics; - void* long_metrics; - void* short_metrics; -} - -struct TT_OS2 -{ - FT_UShort _version; - FT_Short xAvgCharWidth; - FT_UShort usWeightClass; - FT_UShort usWidthClass; - FT_Short fsType; - FT_Short ySubscriptXSize; - FT_Short ySubscriptYSize; - FT_Short ySubscriptXOffset; - FT_Short ySubscriptYOffset; - FT_Short ySuperscriptXSize; - FT_Short ySuperscriptYSize; - FT_Short ySuperscriptXOffset; - FT_Short ySuperscriptYOffset; - FT_Short yStrikeoutSize; - FT_Short yStrikeoutPosition; - FT_Short sFamilyClass; - FT_Byte[10] panose; - FT_ULong ulUnicodeRange1; - FT_ULong ulUnicodeRange2; - FT_ULong ulUnicodeRange3; - FT_ULong ulUnicodeRange4; - FT_Char[4] achVendID; - FT_UShort fsSelection; - FT_UShort usFirstCharIndex; - FT_UShort usLastCharIndex; - FT_Short sTypoAscender; - FT_Short sTypoDescender; - FT_Short sTypoLineGap; - FT_UShort usWinAscent; - FT_UShort usWinDescent; - FT_ULong ulCodePageRange1; - FT_ULong ulCodePageRange2; - FT_Short sxHeight; - FT_Short sCapHeight; - FT_UShort usDefaultChar; - FT_UShort usBreakChar; - FT_UShort usMaxContext; -} - -struct TT_Postscript -{ - FT_Fixed FormatType; - FT_Fixed italicAngle; - FT_Short underlinePosition; - FT_Short underlineThickness; - FT_ULong isFixedPitch; - FT_ULong minMemType42; - FT_ULong maxMemType42; - FT_ULong minMemType1; - FT_ULong maxMemType1; -} - -struct TT_PCLT -{ - FT_Fixed Version; - FT_ULong FontNumber; - FT_UShort Pitch; - FT_UShort xHeight; - FT_UShort Style; - FT_UShort TypeFamily; - FT_UShort CapHeight; - FT_UShort SymbolSet; - FT_Char[16] TypeFace; - FT_Char[8] CharacterComplement; - FT_Char[6] FileName; - FT_Char StrokeWeight; - FT_Char WidthType; - FT_Byte SerifStyle; - FT_Byte Reserved; -} - -struct TT_MaxProfile -{ - FT_Fixed _version; - FT_UShort numGlyphs; - FT_UShort maxPoints; - FT_UShort maxContours; - FT_UShort maxCompositePoints; - FT_UShort maxCompositeContours; - FT_UShort maxZones; - FT_UShort maxTwilightPoints; - FT_UShort maxStorage; - FT_UShort maxFunctionDefs; - FT_UShort maxInstructionDefs; - FT_UShort maxStackElements; - FT_UShort maxSizeOfInstructions; - FT_UShort maxComponentElements; - FT_UShort maxComponentDepth; -} - -// ftbdf.h -struct BDF_PropertyRec -{ - BDF_PropertyType type; - union u - { - char* atom; - FT_Int32 integer; - FT_UInt32 cardinal; - } -} - -// ftwinfnt.h -struct FT_WinFNT_HeaderRec -{ - FT_UShort _version; - FT_ULong file_size; - FT_Byte[60] copyright; - FT_UShort file_type; - FT_UShort nominal_point_size; - FT_UShort vertical_resolution; - FT_UShort horizontal_resolution; - FT_UShort ascent; - FT_UShort internal_leading; - FT_UShort external_leading; - FT_Byte italic; - FT_Byte underline; - FT_Byte strike_out; - FT_UShort weight; - FT_Byte charset; - FT_UShort pixel_width; - FT_UShort pixel_height; - FT_Byte pitch_and_family; - FT_UShort avg_width; - FT_UShort max_width; - FT_Byte first_char; - FT_Byte last_char; - FT_Byte default_char; - FT_Byte break_char; - FT_UShort bytes_per_row; - FT_ULong device_offset; - FT_ULong face_name_offset; - FT_ULong bits_pointer; - FT_ULong bits_offset; - FT_Byte reserved; - FT_ULong flags; - FT_UShort A_space; - FT_UShort B_space; - FT_UShort C_space; - FT_UShort color_table_offset; - FT_ULong[4] reserved1; -} - -// ftglyph.h -struct FT_GlyphRec -{ - FT_Library library; - FT_Glyph_Class* clazz; - FT_Glyph_Format format; - FT_Vector advance; -} - -struct FT_BitmapGlyphRec -{ - FT_GlyphRec root; - FT_Int left; - FT_Int top; - FT_Bitmap bitmap; -} - -struct FT_OutlineGlyphRec -{ - FT_GlyphRec root; - FT_Outline outline; -} - -// ftcache.h -struct FTC_ScalerRec -{ - FTC_FaceID face_id; - FT_UInt width; - FT_UInt height; - FT_Int pixel; - FT_UInt x_res; - FT_UInt y_res; -} - -struct FTC_ImageTypeRec -{ - FTC_FaceID face_id; - FT_Int width; - FT_Int height; - FT_Int32 flags; -} - -struct FTC_SBitRec -{ - FT_Byte width; - FT_Byte height; - FT_Char left; - FT_Char top; - FT_Byte format; - FT_Byte max_grays; - FT_Short pitch; - FT_Char xadvance; - FT_Char yadvance; - FT_Byte* buffer; -} - -// ftmm.h -struct FT_MM_Axis -{ - FT_String* name; - FT_Long minimum; - FT_Long maximum; -} - -struct FT_Multi_Master -{ - FT_UInt num_axis; - FT_UInt num_designs; - FT_MM_Axis[4] axis; -} - -struct FT_Var_Axis -{ - FT_String* name; - FT_Fixed minimum; - FT_Fixed def; - FT_Fixed maximum; - FT_ULong tag; - FT_UInt strid; -} - -struct FT_Var_Named_Style -{ - FT_Fixed* coords; - FT_UInt strid; -} - -struct FT_MM_Var -{ - FT_UInt num_axis; - FT_UInt num_designs; - FT_UInt num_namedstyles; - FT_Var_Axis* axis; - FT_Var_Named_Style* namedstyle; -} - -// ftsnames.h -struct FT_SfntName -{ - FT_UShort platform_id; - FT_UShort encoding_id; - FT_UShort language_id; - FT_UShort name_id; - FT_Byte* string; - FT_UInt string_len; -} - -// ftincrem.h -struct FT_Incremental_MetricsRec -{ - FT_Long bearing_x; - FT_Long bearing_y; - FT_Long advance; -} - -struct FT_Incremental_FuncsRec -{ - FT_Incremental_GetGlyphDataFunc get_glyph_data; - FT_Incremental_FreeGlyphDataFunc free_glyph_data; - FT_Incremental_GetGlyphMetricsFunc get_glyph_metrics; -} - -struct FT_Incremental_InterfaceRec -{ - FT_Incremental_FuncsRec* funcs; - FT_Incremental object; -} - -/+ other -struct FTC_MruNodeRec -{ - FTC_MruNode next; - FTC_MruNode prev; -} - -struct FTC_MruListClassRec -{ - FT_UInt node_size; - FTC_MruNode_CompareFunc node_compare; - FTC_MruNode_InitFunc node_init; - FTC_MruNode_ResetFunc node_reset; - FTC_MruNode_DoneFunc node_done; -} - -struct FTC_MruListRec -{ - FT_UInt num_nodes; - FT_UInt max_nodes; - FTC_MruNode nodes; - FT_Pointer data; - FTC_MruListClassRec clazz; - FT_Memory memory; -} - -struct FTC_NodeRec -{ - FTC_MruNodeRec mru; - FTC_Node link; - FT_UInt32 hash; - FT_UShort cache_index; - FT_Short ref_count; -} - -struct FTC_CacheClassRec -{ - FTC_Node_NewFunc node_new; - FTC_Node_WeightFunc node_weight; - FTC_Node_CompareFunc node_compare; - FTC_Node_CompareFunc node_remove_faceid; - FTC_Node_FreeFunc node_free; - FT_UInt cache_size; - FTC_Cache_InitFunc cache_init; - FTC_Cache_DoneFunc cache_done; -} - -struct FTC_CacheRec -{ - FT_UFast p; - FT_UFast mask; - FT_Long slack; - FTC_Node* buckets; - FTC_CacheClassRec clazz; - FTC_Manager manager; - FT_Memory memory; - FT_UInt index; - FTC_CacheClass org_class; -} - -struct FTC_ManagerRec -{ - FT_Library library; - FT_Memory memory; - FTC_Node nodes_list; - FT_ULong max_weight; - FT_ULong cur_weight; - FT_UInt num_nodes; - FTC_Cache[16] caches; - FT_UInt num_caches; - FTC_MruListRec faces; - FTC_MruListRec sizes; - FT_Pointer request_data; - FTC_Face_Requester request_face; -} - -struct FTC_FamilyRec -{ - FTC_MruNodeRec mrunode; - FT_UInt num_nodes; - FTC_Cache cache; - FTC_MruListClass clazz; -} - -struct FTC_GNodeRec -{ - FTC_NodeRec node; - FTC_Family family; - FT_UInt gindex; -} - -struct FTC_GQueryRec -{ - FT_UInt gindex; - FTC_Family family; -} - -struct FTC_GCacheRec -{ - FTC_CacheRec cache; - FTC_MruListRec families; -} - -struct FTC_GCacheClassRec -{ - FTC_CacheClassRec clazz; - FTC_MruListClass family_class; -} - -struct FTC_INodeRec -{ - FTC_GNodeRec gnode; - FT_Glyph glyph; -} - -struct FTC_IFamilyClassRec -{ - FTC_MruListClassRec clazz; - FTC_IFamily_LoadGlyphFunc family_load_glyph; -} - -struct FTC_SNodeRec -{ - FTC_GNodeRec gnode; - FT_UInt count; - FTC_SBitRec[16] sbits; -} - -struct FTC_SFamilyClassRec -{ - FTC_MruListClassRec clazz; - FTC_SFamily_GetCountFunc family_get_count; - FTC_SFamily_LoadGlyphFunc family_load_glyph; -} - -struct FT_SubGlyphRec -{ - FT_Int index; - FT_UShort flags; - FT_Int arg1; - FT_Int arg2; - FT_Matrix transform; -} - -struct FT_GlyphLoadRec -{ - FT_Outline outline; - FT_Vector* extra_points; - FT_UInt num_subglyphs; - FT_SubGlyph subglyphs; -} - -struct FT_GlyphLoaderRec -{ - FT_Memory memory; - FT_UInt max_points; - FT_UInt max_contours; - FT_UInt max_subglyphs; - FT_Bool use_extra; - FT_GlyphLoadRec base; - FT_GlyphLoadRec current; - void* other; -} - -struct FT_Driver_ClassRec -{ - FT_Module_Class root; - FT_Long face_object_size; - FT_Long size_object_size; - FT_Long slot_object_size; - FT_Face_InitFunc init_face; - FT_Face_DoneFunc done_face; - FT_Size_InitFunc init_size; - FT_Size_DoneFunc done_size; - FT_Slot_InitFunc init_slot; - FT_Slot_DoneFunc done_slot; - FT_Size_ResetPointsFunc set_char_sizes; - FT_Size_ResetPixelsFunc set_pixel_sizes; - FT_Slot_LoadFunc load_glyph; - FT_Face_GetKerningFunc get_kerning; - FT_Face_AttachFunc attach_file; - FT_Face_GetAdvancesFunc get_advances; -} - -struct FT_AutoHinter_ServiceRec -{ - FT_AutoHinter_GlobalResetFunc reset_face; - FT_AutoHinter_GlobalGetFunc get_global_hints; - FT_AutoHinter_GlobalDoneFunc done_global_hints; - FT_AutoHinter_GlyphLoadFunc load_glyph; -} - -struct FT_ServiceDescRec -{ - char* serv_id; - void* serv_data; -} - -struct FT_ServiceCacheRec -{ - FT_Pointer service_POSTSCRIPT_FONT_NAME; - FT_Pointer service_MULTI_MASTERS; - FT_Pointer service_GLYPH_DICT; - FT_Pointer service_PFR_METRICS; - FT_Pointer service_WINFNT; -} - -struct FT_CMapRec -{ - FT_CharMapRec charmap; - FT_CMap_Class clazz; -} - -struct FT_CMap_ClassRec -{ - FT_ULong size; - FT_CMap_InitFunc init; - FT_CMap_DoneFunc done; - FT_CMap_CharIndexFunc char_index; - FT_CMap_CharNextFunc char_next; -} - -struct FT_Face_InternalRec -{ - FT_UShort max_points; - FT_Short max_contours; - FT_Matrix transform_matrix; - FT_Vector transform_delta; - FT_Int transform_flags; - FT_ServiceCacheRec services; -} - -struct FT_Slot_InternalRec -{ - FT_GlyphLoader loader; - FT_UInt flags; - FT_Bool glyph_transformed; - FT_Matrix glyph_matrix; - FT_Vector glyph_delta; - void* glyph_hints; -} - -struct FT_ModuleRec -{ - FT_Module_Class* clazz; - FT_Library library; - FT_Memory memory; - FT_Generic generic; -} - -struct FT_RendererRec -{ - FT_ModuleRec root; - FT_Renderer_Class* clazz; - FT_Glyph_Format glyph_format; - FT_Glyph_Class glyph_class; - FT_Raster raster; - FT_Raster_RenderFunc raster_render; - FT_Renderer_RenderFunc render; -} - -struct FT_DriverRec -{ - FT_ModuleRec root; - FT_Driver_Class clazz; - FT_ListRec faces_list; - void* extensions; - FT_GlyphLoader glyph_loader; -} - -struct FT_LibraryRec -{ - FT_Memory memory; - FT_Generic generic; - FT_Int version_major; - FT_Int version_minor; - FT_Int version_patch; - FT_UInt num_modules; - FT_Module[32] modules; - FT_ListRec renderers; - FT_Renderer cur_renderer; - FT_Module auto_hinter; - FT_Byte* raster_pool; - FT_ULong raster_pool_size; - FT_DebugHook_Func[4] debug_hooks; -} - -struct FT_Frame_Field -{ - FT_Byte value; - FT_Byte size; - FT_UShort offset; -} - -struct TTC_HeaderRec -{ - FT_ULong tag; - FT_Fixed _version; - FT_Long count; - FT_ULong* offsets; -} - -struct SFNT_HeaderRec -{ - FT_ULong format_tag; - FT_UShort num_tables; - FT_UShort search_range; - FT_UShort entry_selector; - FT_UShort range_shift; - FT_ULong offset; -} - -struct TT_TableRec - { - FT_ULong Tag; - FT_ULong CheckSum; - FT_ULong Offset; - FT_ULong Length; -} - -struct TT_LongMetricsRec -{ - FT_UShort advance; - FT_Short bearing; -} - -struct TT_NameEntryRec -{ - FT_UShort platformID; - FT_UShort encodingID; - FT_UShort languageID; - FT_UShort nameID; - FT_UShort stringLength; - FT_ULong stringOffset; - FT_Byte* string; -} - -struct TT_NameTableRec -{ - FT_UShort format; - FT_UInt numNameRecords; - FT_UInt storageOffset; - TT_NameEntryRec* names; - FT_Stream stream; -} - -struct TT_GaspRangeRec -{ - FT_UShort maxPPEM; - FT_UShort gaspFlag; -} - -struct TT_GaspRec -{ - FT_UShort _version; - FT_UShort numRanges; - TT_GaspRange gaspRanges; -} - -struct TT_HdmxEntryRec -{ - FT_Byte ppem; - FT_Byte max_width; - FT_Byte* widths; -} - -struct TT_HdmxRec -{ - FT_UShort _version; - FT_Short num_records; - TT_HdmxEntry records; -} - -struct TT_Kern0_PairRec -{ - FT_UShort left; - FT_UShort right; - FT_FWord value; -} - -struct TT_SBit_MetricsRec -{ - FT_Byte height; - FT_Byte width; - FT_Char horiBearingX; - FT_Char horiBearingY; - FT_Byte horiAdvance; - FT_Char vertBearingX; - FT_Char vertBearingY; - FT_Byte vertAdvance; -} - -struct TT_SBit_SmallMetricsRec -{ - FT_Byte height; - FT_Byte width; - FT_Char bearingX; - FT_Char bearingY; - FT_Byte advance; -} - -struct TT_SBit_LineMetricsRec -{ - FT_Char ascender; - FT_Char descender; - FT_Byte max_width; - FT_Char caret_slope_numerator; - FT_Char caret_slope_denominator; - FT_Char caret_offset; - FT_Char min_origin_SB; - FT_Char min_advance_SB; - FT_Char max_before_BL; - FT_Char min_after_BL; - FT_Char[2] pads; -} - -struct TT_SBit_RangeRec -{ - FT_UShort first_glyph; - FT_UShort last_glyph; - FT_UShort index_format; - FT_UShort image_format; - FT_ULong image_offset; - FT_ULong image_size; - TT_SBit_MetricsRec metrics; - FT_ULong num_glyphs; - FT_ULong* glyph_offsets; - FT_UShort* glyph_codes; - FT_ULong table_offset; -} - -struct TT_SBit_StrikeRec -{ - FT_Int num_ranges; - TT_SBit_Range sbit_ranges; - FT_ULong ranges_offset; - FT_ULong color_ref; - TT_SBit_LineMetricsRec hori; - TT_SBit_LineMetricsRec vert; - FT_UShort start_glyph; - FT_UShort end_glyph; - FT_Byte x_ppem; - FT_Byte y_ppem; - FT_Byte bit_depth; - FT_Char flags; -} - -struct TT_SBit_ComponentRec -{ - FT_UShort glyph_code; - FT_Char x_offset; - FT_Char y_offset; -} - -struct TT_SBit_ScaleRec -{ - TT_SBit_LineMetricsRec hori; - TT_SBit_LineMetricsRec vert; - FT_Byte x_ppem; - FT_Byte y_ppem; - FT_Byte x_ppem_substitute; - FT_Byte y_ppem_substitute; -} - -struct TT_Post_20Rec -{ - FT_UShort num_glyphs; - FT_UShort num_names; - FT_UShort* glyph_indices; - FT_Char** glyph_names; -} - -struct TT_Post_25Rec -{ - FT_UShort num_glyphs; - FT_Char* offsets; -} - -struct TT_Post_NamesRec -{ - FT_Bool loaded; - union names - { - TT_Post_20Rec format_20; - TT_Post_25Rec format_25; - } -} - -struct TT_FaceRec -{ - FT_FaceRec root; - TTC_HeaderRec ttc_header; - FT_ULong format_tag; - FT_UShort num_tables; - TT_Table dir_tables; - TT_Header header; - TT_HoriHeader horizontal; - TT_MaxProfile max_profile; - FT_ULong max_components; - FT_Bool vertical_info; - TT_VertHeader vertical; - FT_UShort num_names; - TT_NameTableRec name_table; - TT_OS2 os2; - TT_Postscript postscript; - FT_Byte* cmap_table; - FT_ULong cmap_size; - TT_Loader_GotoTableFunc goto_table; - TT_Loader_StartGlyphFunc access_glyph_frame; - TT_Loader_EndGlyphFunc forget_glyph_frame; - TT_Loader_ReadGlyphFunc read_glyph_header; - TT_Loader_ReadGlyphFunc read_simple_glyph; - TT_Loader_ReadGlyphFunc read_composite_glyph; - void* sfnt; - void* psnames; - TT_HdmxRec hdmx; - TT_GaspRec gasp; - TT_PCLT pclt; - FT_ULong num_sbit_strikes; - TT_SBit_Strike sbit_strikes; - FT_ULong num_sbit_scales; - TT_SBit_Scale sbit_scales; - TT_Post_NamesRec postscript_names; - FT_UShort num_locations; - FT_Long* glyph_locations; - FT_ULong glyf_len; - FT_ULong font_program_size; - FT_Byte* font_program; - FT_ULong cvt_program_size; - FT_Byte* cvt_program; - FT_ULong cvt_size; - FT_Short* cvt; - FT_Int num_kern_pairs; - FT_Int kern_table_index; - TT_Kern0_Pair kern_pairs; - TT_Interpreter interpreter; - FT_Bool unpatented_hinting; - FT_Bool doblend; - GX_Blend blend; - FT_Generic extra; - char* postscript_name; -} - -struct TT_GlyphZoneRec -{ - FT_Memory memory; - FT_UShort max_points; - FT_UShort max_contours; - FT_UShort n_points; - FT_Short n_contours; - FT_Vector* org; - FT_Vector* cur; - FT_Byte* tags; - FT_UShort* contours; -} - -struct TT_LoaderRec -{ - FT_Face face; - FT_Size size; - FT_GlyphSlot glyph; - FT_GlyphLoader gloader; - FT_ULong load_flags; - FT_UInt glyph_index; - FT_Stream stream; - FT_Int byte_len; - FT_Short n_contours; - FT_BBox bbox; - FT_Int left_bearing; - FT_Int advance; - FT_Int top_bearing; - FT_Int vadvance; - FT_Int linear; - FT_Bool linear_def; - FT_Bool preserve_pps; - FT_Vector pp1; - FT_Vector pp2; - FT_Vector pp3; - FT_Vector pp4; - FT_ULong glyf_offset; - TT_GlyphZoneRec base; - TT_GlyphZoneRec zone; - TT_ExecContext exec; - FT_Byte* instructions; - FT_ULong ins_pos; - void* other; -} - -struct SFNT_Interface -{ - TT_Loader_GotoTableFunc goto_table; - TT_Init_Face_Func init_face; - TT_Load_Face_Func load_face; - TT_Done_Face_Func done_face; - FT_Module_Requester get_interface; - TT_Load_Any_Func load_any; - TT_Load_SFNT_HeaderRec_Func load_sfnt_header; - TT_Load_Directory_Func load_directory; - TT_Load_Table_Func load_header; - TT_Load_Metrics_Func load_metrics; - TT_Load_Table_Func load_charmaps; - TT_Load_Table_Func load_max_profile; - TT_Load_Table_Func load_os2; - TT_Load_Table_Func load_psnames; - TT_Load_Table_Func load_names; - TT_Free_Table_Func free_names; - TT_Load_Table_Func load_hdmx; - TT_Free_Table_Func free_hdmx; - TT_Load_Table_Func load_kerning; - TT_Load_Table_Func load_gasp; - TT_Load_Table_Func load_pclt; - TT_Load_Table_Func load_bitmap_header; - TT_Set_SBit_Strike_Func set_sbit_strike; - TT_Load_Table_Func load_sbits; - TT_Find_SBit_Image_Func find_sbit_image; - TT_Load_SBit_Metrics_Func load_sbit_metrics; - TT_Load_SBit_Image_Func load_sbit_image; - TT_Free_Table_Func free_sbits; - TT_Face_GetKerningFunc get_kerning; - TT_Get_PS_Name_Func get_psname; - TT_Free_Table_Func free_psnames; -} - -struct FT_ValidatorRec -{ - FT_Byte* base; - FT_Byte* limit; - FT_ValidationLevel level; - FT_Error error; - int[_JBLEN] jump_buffer; -} - -struct PSH_Globals_FuncsRec -{ - PSH_Globals_NewFunc create; - PSH_Globals_SetScaleFunc set_scale; - PSH_Globals_DestroyFunc destroy; -} - -struct T1_Hints_FuncsRec -{ - T1_Hints hints; - T1_Hints_OpenFunc open; - T1_Hints_CloseFunc close; - T1_Hints_SetStemFunc stem; - T1_Hints_SetStem3Func stem3; - T1_Hints_ResetFunc reset; - T1_Hints_ApplyFunc apply; -} - -struct T2_Hints_FuncsRec -{ - T2_Hints hints; - T2_Hints_OpenFunc open; - T2_Hints_CloseFunc close; - T2_Hints_StemsFunc stems; - T2_Hints_MaskFunc hintmask; - T2_Hints_CounterFunc counter; - T2_Hints_ApplyFunc apply; -} - -struct PSHinter_Interface -{ - PSH_Globals_Funcs function( FT_Module mod ) get_globals_funcs; - T1_Hints_Funcs function( FT_Module mod ) get_t1_funcs; - T2_Hints_Funcs function( FT_Module mod ) get_t2_funcs; -} - -struct PS_UniMap -{ - FT_UInt unicode; - FT_UInt glyph_index; -} - -struct PS_Unicodes -{ - FT_UInt num_maps; - PS_UniMap* maps; -} - -struct FT_Service_PsCMapsRec -{ - PS_Unicode_ValueFunc unicode_value; - - PS_Unicodes_InitFunc unicodes_init; - PS_Unicodes_CharIndexFunc unicodes_char_index; - PS_Unicodes_CharNextFunc unicodes_char_next; - - PS_Macintosh_Name_Func macintosh_name; - PS_Adobe_Std_Strings_Func adobe_std_strings; - ushort* adobe_std_encoding; - ushort* adobe_expert_encoding; -} - -struct T1_EncodingRec -{ - FT_Int num_chars; - FT_Int code_first; - FT_Int code_last; - FT_UShort* char_index; - FT_String** char_name; -} - - -struct T1_FontRec -{ - PS_FontInfoRec font_info; - PS_PrivateRec private_dict; - FT_String* font_name; - T1_EncodingType encoding_type; - T1_EncodingRec encoding; - FT_Byte* subrs_block; - FT_Byte* charstrings_block; - FT_Byte* glyph_names_block; - FT_Int num_subrs; - FT_Byte** subrs; - FT_PtrDist* subrs_len; - FT_Int num_glyphs; - FT_String** glyph_names; - FT_Byte** charstrings; - FT_PtrDist* charstrings_len; - FT_Byte paint_type; - FT_Byte font_type; - FT_Matrix font_matrix; - FT_Vector font_offset; - FT_BBox font_bbox; - FT_Long font_id; - FT_Fixed stroke_width; -} - -struct CID_SubrsRec -{ - FT_UInt num_subrs; - FT_Byte** code; -} - -struct T1_FaceRec -{ - FT_FaceRec root; - T1_FontRec type1; - void* psnames; - void* psaux; - void* afm_data; - FT_CharMapRec[2] charmaprecs; - FT_CharMap[2] charmaps; - PS_Unicodes unicode_map; - PS_Blend blend; - void* pshinter; -} - -struct CID_FaceRec -{ - FT_FaceRec root; - void* psnames; - void* psaux; - CID_FaceInfoRec cid; - void* afm_data; - FT_Byte* binary_data; - FT_Stream cid_stream; - CID_Subrs subrs; - void* pshinter; -} - -struct PS_Table_FuncsRec -{ - FT_Error function( PS_Table table, FT_Int count, FT_Memory memory ) init; - void function( PS_Table table ) done; - FT_Error function( PS_Table table, FT_Int idx, void* object, FT_PtrDist length ) add; - void function( PS_Table table ) release; -} - -struct PS_TableRec -{ - FT_Byte* block; - FT_Offset cursor; - FT_Offset capacity; - FT_Long init; - FT_Int max_elems; - FT_Int num_elems; - FT_Byte** elements; - FT_PtrDist* lengths; - FT_Memory memory; - PS_Table_FuncsRec funcs; -} - -struct T1_TokenRec -{ - FT_Byte* start; - FT_Byte* limit; - T1_TokenType type; -} - -struct T1_FieldRec -{ - char* ident; - T1_FieldLocation location; - T1_FieldType type; - T1_Field_ParseFunc reader; - FT_UInt offset; - FT_Byte size; - FT_UInt array_max; - FT_UInt count_offset; -} - -struct PS_Parser_FuncsRec -{ - void function( PS_Parser parser, FT_Byte* base, FT_Byte* limit, FT_Memory memory ) init; - void function( PS_Parser parser ) done; - void function( PS_Parser parser ) skip_spaces; - void function( PS_Parser parser ) skip_PS_token; - FT_Long function( PS_Parser parser ) to_int; - FT_Fixed function( PS_Parser parser, FT_Int power_ten ) to_fixed; - FT_Error function( PS_Parser parser, FT_Byte* bytes, FT_Long max_bytes, FT_Long* pnum_bytes, FT_Bool delimiters ) to_bytes; - FT_Int function( PS_Parser parser, FT_Int max_coords, FT_Short* coords ) to_coord_array; - FT_Int function( PS_Parser parser, FT_Int max_values, FT_Fixed* values, FT_Int power_ten ) to_fixed_array; - void function( PS_Parser parser, T1_Token token ) to_token; - void function( PS_Parser parser, T1_Token tokens, FT_UInt max_tokens, FT_Int* pnum_tokens ) to_token_array; - FT_Error function( PS_Parser parser, in T1_Field field, void** objects, FT_UInt max_objects, FT_ULong* pflags ) load_field; - FT_Error function( PS_Parser parser, in T1_Field field, void** objects, FT_UInt max_objects, FT_ULong* pflags ) load_field_table; -} - -struct PS_ParserRec -{ - FT_Byte* cursor; - FT_Byte* base; - FT_Byte* limit; - FT_Error error; - FT_Memory memory; - PS_Parser_FuncsRec funcs; -} - -struct T1_Builder_FuncsRec -{ - void function( T1_Builder builder, FT_Face face, FT_Size size, FT_GlyphSlot slot, FT_Bool hinting ) init; - void function( T1_Builder builder ) done; - - T1_Builder_Check_Points_Func check_points; - T1_Builder_Add_Point_Func add_point; - T1_Builder_Add_Point1_Func add_point1; - T1_Builder_Add_Contour_Func add_contour; - T1_Builder_Start_Point_Func start_point; - T1_Builder_Close_Contour_Func close_contour; -} - -struct T1_BuilderRec -{ - FT_Memory memory; - FT_Face face; - FT_GlyphSlot glyph; - FT_GlyphLoader loader; - FT_Outline* base; - FT_Outline* current; - FT_Vector last; - FT_Fixed scale_x; - FT_Fixed scale_y; - FT_Pos pos_x; - FT_Pos pos_y; - FT_Vector left_bearing; - FT_Vector advance; - FT_BBox bbox; - T1_ParseState parse_state; - FT_Bool load_points; - FT_Bool no_recurse; - FT_Bool shift; - FT_Bool metrics_only; - void* hints_funcs; - void* hints_globals; - T1_Builder_FuncsRec funcs; -} - -struct T1_Decoder_ZoneRec -{ - FT_Byte* cursor; - FT_Byte* base; - FT_Byte* limit; -} - -struct T1_Decoder_FuncsRec -{ - FT_Error function( T1_Decoder, FT_Face, FT_Size, FT_GlyphSlot, FT_Byte**, PS_Blend, FT_Bool, FT_Render_Mode, T1_Decoder_Callback ) init; - void function( T1_Decoder decoder ) done; - FT_Error function( T1_Decoder decoder, FT_Byte* base, FT_UInt len ) parse_charstrings; -} - -struct T1_DecoderRec -{ - T1_BuilderRec builder; - FT_Long[256] stack; - FT_Long* top; - T1_Decoder_ZoneRec[16+1] zones; - T1_Decoder_Zone zone; - FT_Service_PsCMaps psnames; - FT_UInt num_glyphs; - FT_Byte** glyph_names; - FT_Int lenIV; - FT_UInt num_subrs; - FT_Byte** subrs; - FT_PtrDist* subrs_len; - FT_Matrix font_matrix; - FT_Vector font_offset; - FT_Int flex_state; - FT_Int num_flex_vectors; - FT_Vector[7] flex_vectors; - PS_Blend blend; - FT_Render_Mode hint_mode; - T1_Decoder_Callback parse_callback; - T1_Decoder_FuncsRec funcs; -} - -struct T1_CMap_ClassesRec -{ - FT_CMap_Class standard; - FT_CMap_Class expert; - FT_CMap_Class custom; - FT_CMap_Class unicode; -} - -struct PSAux_ServiceRec -{ - PS_Table_FuncsRec* ps_table_funcs; - PS_Parser_FuncsRec* ps_parser_funcs; - T1_Builder_FuncsRec* t1_builder_funcs; - T1_Decoder_FuncsRec* t1_decoder_funcs; - void function( FT_Byte* buffer, FT_Offset length, FT_UShort seed ) t1_decrypt; - T1_CMap_Classes t1_cmap_classes; -} -+/ - -extern(C) -{ - // ftsystem.h - alias void* function( FT_Memory memory, c_long size ) - FT_Alloc_Func; - alias void function( FT_Memory memory, void* block ) - FT_Free_Func; - alias void* function( FT_Memory memory, c_long cur_size, c_long new_size, void* block ) - FT_Realloc_Func; - - alias c_ulong function( FT_Stream stream, c_ulong offset, ubyte* buffer, c_ulong count ) - FT_Stream_IoFunc; - alias void function( FT_Stream stream ) - FT_Stream_CloseFunc; - - // ftimage.h - alias int function( in FT_Vector* to, void* user ) - FT_Outline_MoveToFunc; - alias int function( in FT_Vector* to, void* user ) - FT_Outline_LineToFunc; - alias int function( in FT_Vector* control, in FT_Vector* to, void* user ) - FT_Outline_ConicToFunc; - alias int function( in FT_Vector* control1, in FT_Vector* control2, in FT_Vector* to, void* user ) - FT_Outline_CubicToFunc; - - alias void function( int y, int count, FT_Span* spans, void* user ) - FT_SpanFunc; - alias int function( int y, int x, void* user ) - FT_Raster_BitTest_Func; - alias void function( int y, int x, void* user ) - FT_Raster_BitSet_Func; - - alias int function( void* memory, FT_Raster* raster ) - FT_Raster_NewFunc; - alias void function( FT_Raster raster ) - FT_Raster_DoneFunc; - alias void function( FT_Raster raster, ubyte* pool_base, uint pool_size ) - FT_Raster_ResetFunc; - alias int function( FT_Raster raster,uint mode, void* args ) - FT_Raster_SetModeFunc; - alias int function( FT_Raster raster, FT_Raster_Params* params ) - FT_Raster_RenderFunc; - - // fttypes.h - alias void function(void* object) - FT_Generic_Finalizer; - - // ftlist.h - alias FT_Error function( FT_ListNode node, void* user ) FT_List_Iterator; - alias void function( FT_Memory memory, void* data, void* user ) FT_List_Destructor; - - // ftmodapi.h - alias FT_Error function( FT_Module mod ) FT_Module_Constructor; - alias void function( FT_Module mod ) FT_Module_Destructor; - alias FT_Module_Interface function( FT_Module mod, CCPTR name ) FT_Module_Requester; - - alias void function( void* arg ) FT_DebugHook_Func; - - // ftrender.h - alias FT_Error function( FT_Glyph glyph, FT_GlyphSlot slot ) FT_Glyph_InitFunc; - alias void function( FT_Glyph glyph ) FT_Glyph_DoneFunc; - alias void function( FT_Glyph glyph, in FT_Matrix* matrix, in FT_Vector* delta ) FT_Glyph_TransformFunc; - alias void function( FT_Glyph glyph, FT_BBox* abbox ) FT_Glyph_GetBBoxFunc; - alias FT_Error function( FT_Glyph source, FT_Glyph target ) FT_Glyph_CopyFunc; - alias FT_Error function( FT_Glyph glyph, FT_GlyphSlot slot ) FT_Glyph_PrepareFunc; - - alias FT_Error function( FT_Renderer renderer, FT_GlyphSlot slot, FT_UInt mode, in FT_Vector* origin ) FT_Renderer_RenderFunc; - alias FT_Error function( FT_Renderer renderer, FT_GlyphSlot slot, in FT_Matrix* matrix, in FT_Vector* delta ) FT_Renderer_TransformFunc; - alias void function( FT_Renderer renderer, FT_GlyphSlot slot, FT_BBox* cbox ) FT_Renderer_GetCBoxFunc; - alias FT_Error function( FT_Renderer renderer, FT_ULong mode_tag, FT_Pointer mode_ptr ) FT_Renderer_SetModeFunc; - - // ftcache.h - alias FT_Error function( FTC_FaceID face_id, FT_Library library, FT_Pointer request_data, FT_Face* aface ) FTC_Face_Requester; - - // ftincrem.h - alias FT_Error function( FT_Incremental incremental, FT_UInt glyph_index, FT_Data* adata ) FT_Incremental_GetGlyphDataFunc; - alias void function( FT_Incremental incremental, FT_Data* data ) FT_Incremental_FreeGlyphDataFunc; - alias FT_Error function( FT_Incremental incremental, FT_UInt glyph_index, FT_Bool vertical, FT_Incremental_MetricsRec *ametrics ) FT_Incremental_GetGlyphMetricsFunc; - - /+ other - alias FT_Bool function( FTC_MruNode node, FT_Pointer key ) FTC_MruNode_CompareFunc; - alias FT_Error function( FTC_MruNode node, FT_Pointer key, FT_Pointer data ) FTC_MruNode_InitFunc; - alias FT_Error function( FTC_MruNode node, FT_Pointer key, FT_Pointer data ) FTC_MruNode_ResetFunc; - alias void function( FTC_MruNode node, FT_Pointer data ) FTC_MruNode_DoneFunc; - - alias FT_Error function( FTC_Node *pnode, FT_Pointer query, FTC_Cache cache ) FTC_Node_NewFunc; - alias FT_ULong function( FTC_Node node, FTC_Cache cache ) FTC_Node_WeightFunc; - alias FT_Bool function( FTC_Node node, FT_Pointer key, FTC_Cache cache ) FTC_Node_CompareFunc; - alias void function( FTC_Node node, FTC_Cache cache ) FTC_Node_FreeFunc; - alias FT_Error function( FTC_Cache cache ) FTC_Cache_InitFunc; - alias void function( FTC_Cache cache ) FTC_Cache_DoneFunc; - - alias FT_Error function( FTC_Family family, FT_UInt gindex, FTC_Cache cache, FT_Glyph *aglyph ) FTC_IFamily_LoadGlyphFunc; - - alias FT_UInt function( FTC_Family family, FTC_Manager manager ) FTC_SFamily_GetCountFunc; - alias FT_Error function( FTC_Family family, FT_UInt gindex, FTC_Manager manager, FT_Face *aface ) FTC_SFamily_LoadGlyphFunc; - - alias FT_Error function( FT_Stream stream, FT_Face face, FT_Int typeface_index, FT_Int num_params, FT_Parameter* parameters ) FT_Face_InitFunc; - alias void function( FT_Face face ) FT_Face_DoneFunc; - alias FT_Error function( FT_Size size ) FT_Size_InitFunc; - alias void function( FT_Size size ) FT_Size_DoneFunc; - alias FT_Error function( FT_GlyphSlot slot )FT_Slot_InitFunc; - alias void function( FT_GlyphSlot slot ) FT_Slot_DoneFunc; - alias FT_Error function( FT_Size size, FT_F26Dot6 char_width, FT_F26Dot6 char_height, FT_UInt horz_resolution, FT_UInt vert_resolution ) FT_Size_ResetPointsFunc; - alias FT_Error function( FT_Size size, FT_UInt pixel_width, FT_UInt pixel_height ) FT_Size_ResetPixelsFunc; - alias FT_Error function( FT_GlyphSlot slot, FT_Size size, FT_UInt glyph_index, FT_Int32 load_flags ) FT_Slot_LoadFunc; - alias FT_UInt function( FT_CharMap charmap, FT_Long charcode ) FT_CharMap_CharIndexFunc; - alias FT_Long function( FT_CharMap charmap, FT_Long charcode ) FT_CharMap_CharNextFunc; - alias FT_Error function( FT_Face face, FT_UInt left_glyph, FT_UInt right_glyph, FT_Vector* kerning ) FT_Face_GetKerningFunc; - alias FT_Error function( FT_Face face, FT_Stream stream ) FT_Face_AttachFunc; - alias FT_Error function( FT_Face face, FT_UInt first, FT_UInt count, FT_Bool vertical, FT_UShort* advances ) FT_Face_GetAdvancesFunc; - - alias void function( FT_AutoHinter hinter, FT_Face face, void** global_hints, int* global_len ) FT_AutoHinter_GlobalGetFunc; - alias void function( FT_AutoHinter hinter, void* global ) FT_AutoHinter_GlobalDoneFunc; - alias void function( FT_AutoHinter hinter, FT_Face face ) FT_AutoHinter_GlobalResetFunc; - alias FT_Error function( FT_AutoHinter hinter, FT_GlyphSlot slot, FT_Size size, FT_UInt glyph_index, FT_Int32 load_flags ) FT_AutoHinter_GlyphLoadFunc; - - alias FT_Error function( FT_CMap cmap, FT_Pointer init_data ) FT_CMap_InitFunc; - alias void function( FT_CMap cmap ) FT_CMap_DoneFunc; - alias FT_UInt function( FT_CMap cmap, FT_UInt32 char_code ) FT_CMap_CharIndexFunc; - alias FT_UInt function( FT_CMap cmap, FT_UInt32 *achar_code ) FT_CMap_CharNextFunc; - - alias CCPTR function( FT_Face face ) FT_Face_GetPostscriptNameFunc; - alias FT_Error function( FT_Face face, FT_UInt glyph_index, FT_Pointer buffer, FT_UInt buffer_max ) FT_Face_GetGlyphNameFunc; - alias FT_UInt function( FT_Face face, FT_String* glyph_name ) FT_Face_GetGlyphNameIndexFunc; - - alias FT_Error function( void* exec_context ) TT_Interpreter; - - alias FT_Error function( TT_Face face, FT_ULong tag, FT_Stream stream, FT_ULong* length ) TT_Loader_GotoTableFunc; - alias FT_Error function( TT_Loader loader, FT_UInt glyph_index, FT_ULong offset, FT_UInt byte_count ) TT_Loader_StartGlyphFunc; - alias FT_Error function( TT_Loader loader ) TT_Loader_ReadGlyphFunc; - alias void function( TT_Loader loader ) TT_Loader_EndGlyphFunc; - - alias FT_Error function( FT_Stream stream, TT_Face face, FT_Int face_index, FT_Int num_params, FT_Parameter* params ) TT_Init_Face_Func; - alias FT_Error function( FT_Stream stream, TT_Face face, FT_Int face_index, FT_Int num_params, FT_Parameter* params ) TT_Load_Face_Func; - alias void function( TT_Face face ) TT_Done_Face_Func; - alias FT_Error function( TT_Face face, FT_Stream stream, FT_Long face_index, SFNT_Header sfnt ) TT_Load_SFNT_HeaderRec_Func; - alias FT_Error function( TT_Face face, FT_Stream stream, SFNT_Header sfnt ) TT_Load_Directory_Func; - alias FT_Error function( TT_Face face, FT_ULong tag, FT_Long offset, FT_Byte *buffer, FT_ULong* length ) TT_Load_Any_Func; - alias FT_Error function( TT_Face face, FT_UInt glyph_index, FT_ULong strike_index, TT_SBit_Range *arange, TT_SBit_Strike *astrike, FT_ULong *aglyph_offset ) TT_Find_SBit_Image_Func; - alias FT_Error function( FT_Stream stream, TT_SBit_Range range, TT_SBit_Metrics metrics ) TT_Load_SBit_Metrics_Func; - alias FT_Error function( TT_Face face, FT_ULong strike_index, FT_UInt glyph_index, FT_UInt load_flags, FT_Stream stream, FT_Bitmap *amap, TT_SBit_MetricsRec *ametrics ) TT_Load_SBit_Image_Func; - alias FT_Error function( TT_Face face, FT_UInt x_ppem, FT_UInt y_ppem, FT_ULong *astrike_index ) TT_Set_SBit_Strike_Func; - alias FT_Error function( TT_Face face, FT_UInt idx, FT_String** PSname ) TT_Get_PS_Name_Func; - alias FT_Error function( TT_Face face, FT_Stream stream, FT_Bool vertical ) TT_Load_Metrics_Func; - alias FT_Error function( TT_Face face, FT_Stream stream ) TT_Load_Table_Func; - alias void function( TT_Face face ) TT_Free_Table_Func; - alias FT_Int function( TT_Face face, FT_UInt left_glyph, FT_UInt right_glyph ) TT_Face_GetKerningFunc; - - alias FT_Error function( FT_Memory memory, T1_Private* private_dict, PSH_Globals* aglobals ) PSH_Globals_NewFunc; - alias FT_Error function( PSH_Globals globals, FT_Fixed x_scale, FT_Fixed y_scale, FT_Fixed x_delta, FT_Fixed y_delta ) PSH_Globals_SetScaleFunc; - alias void function( PSH_Globals globals ) PSH_Globals_DestroyFunc; - - alias void function( T1_Hints hints ) T1_Hints_OpenFunc; - alias void function( T1_Hints hints, FT_UInt dimension, FT_Long* coords ) T1_Hints_SetStemFunc; - alias void function( T1_Hints hints, FT_UInt dimension, FT_Long* coords ) T1_Hints_SetStem3Func; - alias void function( T1_Hints hints, FT_UInt end_point ) T1_Hints_ResetFunc; - alias FT_Error function( T1_Hints hints, FT_UInt end_point ) T1_Hints_CloseFunc; - alias FT_Error function( T1_Hints hints, FT_Outline* outline, PSH_Globals globals, FT_Render_Mode hint_mode ) T1_Hints_ApplyFunc; - - alias void function( T2_Hints hints ) T2_Hints_OpenFunc; - alias void function( T2_Hints hints, FT_UInt dimension, FT_UInt count, FT_Fixed* coordinates ) T2_Hints_StemsFunc; - alias void function( T2_Hints hints, FT_UInt end_point, FT_UInt bit_count, in FT_Byte* bytes ) T2_Hints_MaskFunc; - alias void function( T2_Hints hints, FT_UInt bit_count, in FT_Byte* bytes ) T2_Hints_CounterFunc; - alias FT_Error function( T2_Hints hints, FT_UInt end_point ) T2_Hints_CloseFunc; - alias FT_Error function( T2_Hints hints, FT_Outline* outline, PSH_Globals globals, FT_Render_Mode hint_mode ) T2_Hints_ApplyFunc; - - alias FT_UInt32 function( char* glyph_name ) PS_Unicode_ValueFunc; - alias FT_UInt function( FT_UInt num_glyphs, char** glyph_names, FT_ULong unicode ) PS_Unicode_Index_Func; - alias char* function( FT_UInt name_index ) PS_Macintosh_Name_Func; - alias char* function( FT_UInt string_index ) PS_Adobe_Std_Strings_Func; - - alias FT_Error function( FT_Memory memory, FT_UInt num_glyphs, char** glyph_names, PS_Unicodes* unicodes ) PS_Unicodes_InitFunc; - alias FT_UInt function( PS_Unicodes* unicodes, FT_UInt unicode ) PS_Unicodes_CharIndexFunc; - alias FT_ULong function( PS_Unicodes* unicodes, FT_ULong unicode ) PS_Unicodes_CharNextFunc; - - alias void function( FT_Face face, FT_Pointer parser ) T1_Field_ParseFunc; - - alias FT_Error function( T1_Builder builder, FT_Int count ) T1_Builder_Check_Points_Func; - alias void function( T1_Builder builder, FT_Pos x, FT_Pos y, FT_Byte flag ) T1_Builder_Add_Point_Func; - alias FT_Error function( T1_Builder builder, FT_Pos x, FT_Pos y ) T1_Builder_Add_Point1_Func; - alias FT_Error function( T1_Builder builder ) T1_Builder_Add_Contour_Func; - alias FT_Error function( T1_Builder builder, FT_Pos x, FT_Pos y ) T1_Builder_Start_Point_Func; - alias void function( T1_Builder builder ) T1_Builder_Close_Contour_Func; - - alias FT_Error function( T1_Decoder decoder, FT_UInt glyph_index ) T1_Decoder_Callback; - +/ -} - -// freetype.h -int FT_LOAD_TARGET_( int x ) -{ - return ( ( x & 15 ) << 16 ); -} - -int FT_LOAD_TARGET_MODE( int x ) -{ - return ( ( x >> 16 ) & 15 ); -} - -int FT_HAS_HORIZONTAL(FT_FaceRec* face) -{ - return face.face_flags & FT_FACE_FLAG_HORIZONTAL; -} - -int FT_HAS_VERTICAL(FT_FaceRec* face) -{ - return face.face_flags & FT_FACE_FLAG_VERTICAL; -} - -int FT_HAS_KERNING(FT_FaceRec* face) -{ - return face.face_flags & FT_FACE_FLAG_KERNING; -} - -int FT_IS_SCALABLE(FT_FaceRec* face) -{ - return face.face_flags & FT_FACE_FLAG_SCALABLE; -} - -int FT_IS_SFNT(FT_FaceRec* face) -{ - return face.face_flags & FT_FACE_FLAG_SFNT; -} - -int FT_IS_FIXED_WIDTH(FT_FaceRec* face) -{ - return face.face_flags & FT_FACE_FLAG_FIXED_WIDTH; -} - -int FT_HAS_FIXED_SIZES(FT_FaceRec* face) -{ - return face.face_flags & FT_FACE_FLAG_FIXED_SIZES; -} - -int FT_HAS_FAST_GLYPHS(FT_FaceRec* face) -{ - return false; -} - -int FT_HAS_GLYPH_NAMES(FT_FaceRec* face) -{ - return face.face_flags & FT_FACE_FLAG_GLYPH_NAMES; -} - -int FT_HAS_MULTIPLE_MASTERS(FT_FaceRec* face) -{ - return face.face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS; -} - -// Other macros. Second version is D-specific, but works fine. -template FT_MAKE_TAG(char x1, char x2, char x3, char x4) { - const uint FT_MAKE_TAG = ((cast(uint)x1) << 24) + ((cast(uint)x2) << 16) + ((cast(uint)x3) << 8) + x4; -} - -template FT_MAKE_TAG(char[4] x) { - const uint FT_MAKE_TAG = ((cast(uint)x[0]) << 24) + ((cast(uint)x[1]) << 16) + ((cast(uint)x[2]) << 8) + x[3]; -} - -/*********************************************************************** - * Extra macros carried over from Freetype. Something needs to be done? - ***********************************************************************/ - -/+ fterrdef.h -// (list not updated to version 2.3.5) - FT_NOERRORDEF_( Ok, 0x00, "no error" ) - FT_ERRORDEF_( Cannot_Open_Resource, 0x01, "cannot open resource" ) - FT_ERRORDEF_( Unknown_File_Format, 0x02, "unknown file format" ) - FT_ERRORDEF_( Invalid_File_Format, 0x03, "broken file" ) - FT_ERRORDEF_( Invalid_Version, 0x04, "invalid FreeType version" ) - FT_ERRORDEF_( Lower_Module_Version, 0x05, "module version is too low" ) - FT_ERRORDEF_( Invalid_Argument, 0x06, "invalid argument" ) - FT_ERRORDEF_( Unimplemented_Feature, 0x07, "unimplemented feature" ) - FT_ERRORDEF_( Invalid_Table, 0x08, "broken table" ) - FT_ERRORDEF_( Invalid_Offset, 0x09, "broken offset within table" ) - FT_ERRORDEF_( Invalid_Glyph_Index, 0x10, "invalid glyph index" ) - FT_ERRORDEF_( Invalid_Character_Code, 0x11, "invalid character code" ) - FT_ERRORDEF_( Invalid_Glyph_Format, 0x12, "unsupported glyph image format" ) - FT_ERRORDEF_( Cannot_Render_Glyph, 0x13, "cannot render this glyph format" ) - FT_ERRORDEF_( Invalid_Outline, 0x14, "invalid outline" ) - FT_ERRORDEF_( Invalid_Composite, 0x15, "invalid composite glyph" ) - FT_ERRORDEF_( Too_Many_Hints, 0x16, "too many hints" ) - FT_ERRORDEF_( Invalid_Pixel_Size, 0x17, "invalid pixel size" ) - FT_ERRORDEF_( Invalid_Handle, 0x20, "invalid object handle" ) - FT_ERRORDEF_( Invalid_Library_Handle, 0x21, "invalid library handle" ) - FT_ERRORDEF_( Invalid_Driver_Handle, 0x22, "invalid module handle" ) - FT_ERRORDEF_( Invalid_Face_Handle, 0x23, "invalid face handle" ) - FT_ERRORDEF_( Invalid_Size_Handle, 0x24, "invalid size handle" ) - FT_ERRORDEF_( Invalid_Slot_Handle, 0x25, "invalid glyph slot handle" ) - FT_ERRORDEF_( Invalid_CharMap_Handle, 0x26, "invalid charmap handle" ) - FT_ERRORDEF_( Invalid_Cache_Handle, 0x27, "invalid cache manager handle" ) - FT_ERRORDEF_( Invalid_Stream_Handle, 0x28, "invalid stream handle" ) - FT_ERRORDEF_( Too_Many_Drivers, 0x30, "too many modules" ) - FT_ERRORDEF_( Too_Many_Extensions, 0x31, "too many extensions" ) - FT_ERRORDEF_( Out_Of_Memory, 0x40, "out of memory" ) - FT_ERRORDEF_( Unlisted_Object, 0x41, "unlisted object" ) - FT_ERRORDEF_( Cannot_Open_Stream, 0x51, "cannot open stream" ) - FT_ERRORDEF_( Invalid_Stream_Seek, 0x52, "invalid stream seek" ) - FT_ERRORDEF_( Invalid_Stream_Skip, 0x53, "invalid stream skip" ) - FT_ERRORDEF_( Invalid_Stream_Read, 0x54, "invalid stream read" ) - FT_ERRORDEF_( Invalid_Stream_Operation, 0x55, "invalid stream operation" ) - FT_ERRORDEF_( Invalid_Frame_Operation, 0x56, "invalid frame operation" ) - FT_ERRORDEF_( Nested_Frame_Access, 0x57, "nested frame access" ) - FT_ERRORDEF_( Invalid_Frame_Read, 0x58, "invalid frame read" ) - FT_ERRORDEF_( Raster_Uninitialized, 0x60, "raster uninitialized" ) - FT_ERRORDEF_( Raster_Corrupted, 0x61, "raster corrupted" ) - FT_ERRORDEF_( Raster_Overflow, 0x62, "raster overflow" ) - FT_ERRORDEF_( Raster_Negative_Height, 0x63, "negative height while rastering" ) - FT_ERRORDEF_( Too_Many_Caches, 0x70, "too many registered caches" ) - FT_ERRORDEF_( Invalid_Opcode, 0x80, "invalid opcode" ) - FT_ERRORDEF_( Too_Few_Arguments, 0x81, "too few arguments" ) - FT_ERRORDEF_( Stack_Overflow, 0x82, "stack overflow" ) - FT_ERRORDEF_( Code_Overflow, 0x83, "code overflow" ) - FT_ERRORDEF_( Bad_Argument, 0x84, "bad argument" ) - FT_ERRORDEF_( Divide_By_Zero, 0x85, "division by zero" ) - FT_ERRORDEF_( Invalid_Reference, 0x86, "invalid reference" ) - FT_ERRORDEF_( Debug_OpCode, 0x87, "found debug opcode" ) - FT_ERRORDEF_( ENDF_In_Exec_Stream, 0x88, "found ENDF opcode in execution stream" ) - FT_ERRORDEF_( Nested_DEFS, 0x89, "nested DEFS" ) - FT_ERRORDEF_( Invalid_CodeRange, 0x8A, "invalid code range" ) - FT_ERRORDEF_( Execution_Too_Long, 0x8B, "execution context too long" ) - FT_ERRORDEF_( Too_Many_Function_Defs, 0x8C, "too many function definitions" ) - FT_ERRORDEF_( Too_Many_Instruction_Defs, 0x8D, "too many instruction definitions" ) - FT_ERRORDEF_( Table_Missing, 0x8E, "SFNT font table missing" ) - FT_ERRORDEF_( Horiz_Header_Missing, 0x8F, "horizontal header (hhea) table missing" ) - FT_ERRORDEF_( Locations_Missing, 0x90, "locations (loca) table missing" ) - FT_ERRORDEF_( Name_Table_Missing, 0x91, "name table missing" ) - FT_ERRORDEF_( CMap_Table_Missing, 0x92, "character map (cmap) table missing" ) - FT_ERRORDEF_( Hmtx_Table_Missing, 0x93, "horizontal metrics (hmtx) table missing" ) - FT_ERRORDEF_( Post_Table_Missing, 0x94, "PostScript (post) table missing" ) - FT_ERRORDEF_( Invalid_Horiz_Metrics, 0x95, "invalid horizontal metrics" ) - FT_ERRORDEF_( Invalid_CharMap_Format, 0x96, "invalid character map (cmap) format" ) - FT_ERRORDEF_( Invalid_PPem, 0x97, "invalid ppem value" ) - FT_ERRORDEF_( Invalid_Vert_Metrics, 0x98, "invalid vertical metrics" ) - FT_ERRORDEF_( Could_Not_Find_Context, 0x99, "could not find context" ) - FT_ERRORDEF_( Invalid_Post_Table_Format, 0x9A, "invalid PostScript (post) table format" ) - FT_ERRORDEF_( Invalid_Post_Table, 0x9B, "invalid PostScript (post) table" ) - FT_ERRORDEF_( Syntax_Error, 0xA0, "opcode syntax error" ) - FT_ERRORDEF_( Stack_Underflow, 0xA1, "argument stack underflow" ) - FT_ERRORDEF_( Ignore, 0xA2, "ignore" ) - FT_ERRORDEF_( Missing_Startfont_Field, 0xB0, "`STARTFONT' field missing" ) - FT_ERRORDEF_( Missing_Font_Field, 0xB1, "`FONT' field missing" ) - FT_ERRORDEF_( Missing_Size_Field, 0xB2, "`SIZE' field missing" ) - FT_ERRORDEF_( Missing_Chars_Field, 0xB3, "`CHARS' field missing" ) - FT_ERRORDEF_( Missing_Startchar_Field, 0xB4, "`STARTCHAR' field missing" ) - FT_ERRORDEF_( Missing_Encoding_Field, 0xB5, "`ENCODING' field missing" ) - FT_ERRORDEF_( Missing_Bbx_Field, 0xB6, "`BBX' field missing" ) -+/ +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.freetype.fttypes; + +private +{ + import derelict.util.compat; +} + +// config/ftconfig.h +alias short FT_Int16; +alias ushort FT_UInt16; +alias int FT_Int32; +alias uint FT_UInt32; +alias int FT_Fast; +alias uint FT_UFast; + +// fttypes.h +alias byte FT_Bool; +alias short FT_FWord; +alias ushort FT_UFWord; +alias char FT_Char; +alias ubyte FT_Byte; +alias FT_Byte* FT_Bytes; +alias FT_UInt32 FT_Tag; +alias char FT_String; +alias short FT_Short; +alias ushort FT_UShort; +alias int FT_Int; +alias uint FT_UInt; +alias c_long FT_Long; +alias c_ulong FT_ULong; + + +alias short FT_F2Dot14; +alias c_long FT_F26Dot6; +alias c_long FT_Fixed; +alias int FT_Error; +alias void* FT_Pointer; + +alias size_t FT_Offset; +alias ptrdiff_t FT_PtrDist; + +// ftimage.h +alias FT_Long FT_Pos; + +// ftsystem.h +alias FT_MemoryRec* FT_Memory; +alias FT_StreamRec* FT_Stream; + +// ftimage.h +alias FT_RasterRec* FT_Raster; + +// fttypes.h +alias FT_ListNodeRec* FT_ListNode; +alias FT_ListRec* FT_List; + +// freetype.h +alias FT_LibraryRec* FT_Library; +alias FT_ModuleRec* FT_Module; +alias FT_DriverRec* FT_Driver; +alias FT_RendererRec* FT_Renderer; +alias FT_FaceRec* FT_Face; +alias FT_SizeRec* FT_Size; +alias FT_GlyphSlotRec* FT_GlyphSlot; +alias FT_CharMapRec* FT_CharMap; +alias FT_Face_InternalRec* FT_Face_Internal; +alias FT_Size_InternalRec* FT_Size_Internal; +alias FT_SubGlyphRec* FT_SubGlyph; +alias FT_Slot_InternalRec* FT_Slot_Internal; +alias FT_Size_RequestRec* FT_Size_Request; + +// ftmodapi.h +alias FT_Pointer FT_Module_Interface; + +// t1tables.h +alias PS_FontInfoRec* PS_FontInfo; +deprecated alias PS_FontInfoRec T1_FontInfo; +alias PS_PrivateRec* PS_Private; +deprecated alias PS_PrivateRec T1_Private; +alias PS_DesignMapRec* PS_DesignMap; +deprecated alias PS_DesignMapRec T1_DesignMap; +alias PS_BlendRec* PS_Blend; +deprecated alias PS_BlendRec T1_Blend; +alias CID_FaceDictRec* CID_FaceDict; +deprecated alias CID_FaceDictRec CID_FontDict; +alias CID_FaceInfoRec* CID_FaceInfo; +deprecated alias CID_FaceInfoRec CID_Info; + +// ftbdf.h +alias BDF_PropertyRec* BDF_Property; + +// ftwinfnt.h +alias FT_WinFNT_HeaderRec* FT_WinFNT_Header; + +// ftglyph.h +alias FT_GlyphRec* FT_Glyph; +alias FT_BitmapGlyphRec* FT_BitmapGlyph; +alias FT_OutlineGlyphRec* FT_OutlineGlyph; + +// ftcache.h +alias FTC_FaceIDRec* FTC_FaceID; +alias FTC_ManagerRec* FTC_Manager; +alias FTC_NodeRec* FTC_Node; +alias FTC_ScalerRec* FTC_Scaler; +alias FTC_CMapCacheRec* FTC_CMapCache; +alias FTC_ImageTypeRec* FTC_ImageType; +alias FTC_ImageCacheRec* FTC_ImageCache; +alias FTC_SBitRec* FTC_SBit; +alias FTC_SBitCacheRec* FTC_SBitCache; + +// ftstroke.h +alias FT_StrokerRec* FT_Stroker; + +// fttrigon.h +alias FT_Fixed FT_Angle; + +// ftincrem.h +alias FT_IncrementalRec* FT_Incremental; +alias FT_Incremental_MetricsRec* FT_Incremental_Metrics; +alias FT_Incremental_InterfaceRec* FT_Incremental_Interface; + +/+ other +alias FTC_MruNodeRec* FTC_MruNode; +alias FTC_MruListRec* FTC_MruList; +alias FTC_MruListClassRec* FTC_MruListClass; +alias FTC_CacheRec* FTC_Cache; +alias FTC_CacheClassRec* FTC_CacheClass; +alias FTC_FamilyRec* FTC_Family; +alias FTC_GNodeRec* FTC_GNode; +alias FTC_GQueryRec* FTC_GQuery; +alias FTC_GCacheRec* FTC_GCache; +alias FTC_GCacheClassRec* FTC_GCacheClass; +alias FTC_INodeRec* FTC_INode; +alias FTC_IFamilyClassRec* FTC_IFamilyClass; +alias FTC_SNodeRec* FTC_SNode; +alias FTC_SFamilyClassRec* FTC_SFamilyClass; + +alias FT_GlyphLoaderRec* FT_GlyphLoader ; +alias FT_GlyphLoadRec* FT_GlyphLoad; +alias FT_Driver_ClassRec* FT_Driver_Class; +alias FT_AutoHinterRec* FT_AutoHinter; +alias FT_AutoHinter_ServiceRec* FT_AutoHinter_Service; +alias FT_ServiceDescRec* FT_ServiceDesc; +alias FT_ServiceCacheRec* FT_ServiceCache; +alias FT_CMapRec* FT_CMap; +alias FT_CMap_ClassRec* FT_CMap_Class; + +alias SFNT_HeaderRec* SFNT_Header; + +alias TT_TableRec* TT_Table; +alias TT_LongMetricsRec* TT_LongMetrics; + +alias FT_Short TT_ShortMetrics; +alias TT_NameEntryRec* TT_NameEntry; +alias TT_NameTableRec* TT_NameTable; +alias TT_GaspRangeRec* TT_GaspRange; +alias TT_HdmxEntryRec* TT_HdmxEntry; +alias TT_HdmxRec* TT_Hdmx; +alias TT_Kern0_PairRec* TT_Kern0_Pair; +alias TT_SBit_MetricsRec* TT_SBit_Metrics; +alias TT_SBit_SmallMetricsRec* TT_SBit_SmallMetrics; +alias TT_SBit_LineMetricsRec* TT_SBit_LineMetrics; +alias TT_SBit_RangeRec* TT_SBit_Range; +alias TT_SBit_StrikeRec* TT_SBit_Strike; +alias TT_SBit_ComponentRec* TT_SBit_Component; +alias TT_SBit_ScaleRec* TT_SBit_Scale; +alias TT_Post_20Rec* TT_Post_20; +alias TT_Post_25Rec* TT_Post_25; +alias TT_Post_NamesRec* TT_Post_Names; +alias GX_BlendRec* GX_Blend; +alias TT_FaceRec* TT_Face; +alias TT_GlyphZoneRec* TT_GlyphZone; +alias TT_ExecContextRec* TT_ExecContext; +alias SFNT_Interface* SFNT_Service; +alias FT_ValidatorRec* FT_Validator; +alias PSH_GlobalsRec* PSH_Globals; +alias PSH_Globals_FuncsRec* PSH_Globals_Funcs; +alias T1_HintsRec* T1_Hints; +alias T1_Hints_FuncsRec* T1_Hints_Funcs; +alias T2_HintsRec* T2_Hints; +alias T2_Hints_FuncsRec* T2_Hints_Funcs; +alias PSHinter_Interface* PSHinter_Service; +// alias FT_Service_PsCMapsRec FT_Service_PsCMapsRec; +alias FT_Service_PsCMapsRec* FT_Service_PsCMaps; +alias T1_EncodingRec* T1_Encoding; +alias T1_FontRec* T1_Font; +alias CID_SubrsRec* CID_Subrs; +alias T1_FaceRec* T1_Face; +alias CID_FaceRec* CID_Face; +alias PS_TableRec* PS_Table; +alias PS_Table_FuncsRec* PS_Table_Funcs; +alias PS_ParserRec* PS_Parser; +alias T1_TokenRec* T1_Token; +alias T1_FieldRec* T1_Field; +alias PS_Parser_FuncsRec* PS_Parser_Funcs; +alias T1_BuilderRec* T1_Builder; +alias T1_Builder_FuncsRec* T1_Builder_Funcs; +alias T1_Decoder_ZoneRec* T1_Decoder_Zone; +alias T1_DecoderRec* T1_Decoder; +alias T1_Decoder_FuncsRec* T1_Decoder_Funcs; +alias T1_CMap_ClassesRec* T1_CMap_Classes; +alias PSAux_ServiceRec* PSAux_Service; +alias PSAux_ServiceRec PSAux_Interface; +alias TT_LoaderRec* TT_Loader; ++/ + + +// freetype.h +enum FT_Encoding +{ + FT_ENCODING_NONE = ( ( cast(FT_UInt32)(0) << 24 ) | ( cast(FT_UInt32)(0) << 16 ) | ( cast(FT_UInt32)(0) << 8 ) | cast(FT_UInt32)(0) ) , + FT_ENCODING_MS_SYMBOL = ( ( cast(FT_UInt32)('s') << 24 ) | ( cast(FT_UInt32)('y') << 16 ) | ( cast(FT_UInt32)('m') << 8 ) | cast(FT_UInt32)('b') ) , + FT_ENCODING_UNICODE = ( ( cast(FT_UInt32)('u') << 24 ) | ( cast(FT_UInt32)('n') << 16 ) | ( cast(FT_UInt32)('i') << 8 ) | cast(FT_UInt32)('c') ) , + FT_ENCODING_SJIS = ( ( cast(FT_UInt32)('s') << 24 ) | ( cast(FT_UInt32)('j') << 16 ) | ( cast(FT_UInt32)('i') << 8 ) | cast(FT_UInt32)('s') ) , + FT_ENCODING_GB2312 = ( ( cast(FT_UInt32)('g') << 24 ) | ( cast(FT_UInt32)('b') << 16 ) | ( cast(FT_UInt32)(' ') << 8 ) | cast(FT_UInt32)(' ') ) , + FT_ENCODING_BIG5 = ( ( cast(FT_UInt32)('b') << 24 ) | ( cast(FT_UInt32)('i') << 16 ) | ( cast(FT_UInt32)('g') << 8 ) | cast(FT_UInt32)('5') ) , + FT_ENCODING_WANSUNG = ( ( cast(FT_UInt32)('w') << 24 ) | ( cast(FT_UInt32)('a') << 16 ) | ( cast(FT_UInt32)('n') << 8 ) | cast(FT_UInt32)('s') ) , + FT_ENCODING_JOHAB = ( ( cast(FT_UInt32)('j') << 24 ) | ( cast(FT_UInt32)('o') << 16 ) | ( cast(FT_UInt32)('h') << 8 ) | cast(FT_UInt32)('a') ) , + FT_ENCODING_MS_SJIS = FT_ENCODING_SJIS, + FT_ENCODING_MS_GB2312 = FT_ENCODING_GB2312, + FT_ENCODING_MS_BIG5 = FT_ENCODING_BIG5, + FT_ENCODING_MS_WANSUNG = FT_ENCODING_WANSUNG, + FT_ENCODING_MS_JOHAB = FT_ENCODING_JOHAB, + FT_ENCODING_ADOBE_STANDARD = ( ( cast(FT_UInt32)('A') << 24 ) | ( cast(FT_UInt32)('D') << 16 ) | ( cast(FT_UInt32)('O') << 8 ) | cast(FT_UInt32)('B') ) , + FT_ENCODING_ADOBE_EXPERT = ( ( cast(FT_UInt32)('A') << 24 ) | ( cast(FT_UInt32)('D') << 16 ) | ( cast(FT_UInt32)('B') << 8 ) | cast(FT_UInt32)('E') ) , + FT_ENCODING_ADOBE_CUSTOM = ( ( cast(FT_UInt32)('A') << 24 ) | ( cast(FT_UInt32)('D') << 16 ) | ( cast(FT_UInt32)('B') << 8 ) | cast(FT_UInt32)('C') ) , + FT_ENCODING_ADOBE_LATIN_1 = ( ( cast(FT_UInt32)('l') << 24 ) | ( cast(FT_UInt32)('a') << 16 ) | ( cast(FT_UInt32)('t') << 8 ) | cast(FT_UInt32)('1') ) , + FT_ENCODING_OLD_LATIN_2 = ( ( cast(FT_UInt32)('l') << 24 ) | ( cast(FT_UInt32)('a') << 16 ) | ( cast(FT_UInt32)('t') << 8 ) | cast(FT_UInt32)('2') ) , + FT_ENCODING_APPLE_ROMAN = ( ( cast(FT_UInt32)('a') << 24 ) | ( cast(FT_UInt32)('r') << 16 ) | ( cast(FT_UInt32)('m') << 8 ) | cast(FT_UInt32)('n') ) +} + +enum : FT_Long +{ + FT_FACE_FLAG_SCALABLE = 1 << 0, + FT_FACE_FLAG_FIXED_SIZES = 1 << 1, + FT_FACE_FLAG_FIXED_WIDTH = 1 << 2, + FT_FACE_FLAG_SFNT = 1 << 3, + FT_FACE_FLAG_HORIZONTAL = 1 << 4, + FT_FACE_FLAG_VERTICAL = 1 << 5, + FT_FACE_FLAG_KERNING = 1 << 6, + FT_FACE_FLAG_FAST_GLYPHS = 1 << 7, + FT_FACE_FLAG_MULTIPLE_MASTERS = 1 << 8, + FT_FACE_FLAG_GLYPH_NAMES = 1 << 9, + FT_FACE_FLAG_EXTERNAL_STREAM = 1 << 10, + FT_FACE_FLAG_HINTER = 1 << 11, +} + +enum +{ + FT_STYLE_FLAG_ITALIC = 1 << 0, + FT_STYLE_FLAG_BOLD = 1 << 1, +} + +enum FT_Size_Request_Type +{ + FT_SIZE_REQUEST_TYPE_NOMINAL, + FT_SIZE_REQUEST_TYPE_REAL_DIM, + FT_SIZE_REQUEST_TYPE_BBOX, + FT_SIZE_REQUEST_TYPE_CELL, + FT_SIZE_REQUEST_TYPE_SCALES, + FT_SIZE_REQUEST_TYPE_MAX +} + +enum : uint +{ + FT_OPEN_MEMORY = 0x1, + FT_OPEN_STREAM = 0x2, + FT_OPEN_DRIVER = 0x4, + FT_OPEN_PATHNAME = 0x8, + FT_OPEN_PARAMS = 0x10, +} + +enum : uint +{ + FT_LOAD_DEFAULT = 0x0, + FT_LOAD_NO_SCALE = 0x1, + FT_LOAD_NO_HINTING = 0x2, + FT_LOAD_RENDER = 0x4, + FT_LOAD_NO_BITMAP = 0x8, + FT_LOAD_VERTICAL_LAYOUT = 0x10, + FT_LOAD_FORCE_AUTOHINT = 0x20, + FT_LOAD_CROP_BITMAP = 0x40, + FT_LOAD_PEDANTIC = 0x80, + FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH = 0x200, + FT_LOAD_NO_RECURSE = 0x400, + FT_LOAD_IGNORE_TRANSFORM = 0x800, + FT_LOAD_MONOCHROME = 0x1000, + FT_LOAD_LINEAR_DESIGN = 0x2000, + FT_LOAD_SBITS_ONLY = 0x4000, + FT_LOAD_NO_AUTOHINT = 0x8000U, +} + +enum FT_Render_Mode +{ + FT_RENDER_MODE_NORMAL = 0, + FT_RENDER_MODE_LIGHT, + FT_RENDER_MODE_MONO, + FT_RENDER_MODE_LCD, + FT_RENDER_MODE_LCD_V, + FT_RENDER_MODE_MAX +} + +enum +{ + FT_LOAD_TARGET_NORMAL = ( FT_Render_Mode.FT_RENDER_MODE_NORMAL & 15 ) << 16, + FT_LOAD_TARGET_LIGHT = ( FT_Render_Mode.FT_RENDER_MODE_LIGHT & 15 ) << 16, + FT_LOAD_TARGET_MONO = ( FT_Render_Mode.FT_RENDER_MODE_MONO & 15 ) << 16, + FT_LOAD_TARGET_LCD = ( FT_Render_Mode.FT_RENDER_MODE_LCD & 15 ) << 16, + FT_LOAD_TARGET_LCD_V = ( FT_Render_Mode.FT_RENDER_MODE_LCD_V & 15 ) << 16, +} + +enum FT_Kerning_Mode +{ + FT_KERNING_DEFAULT = 0, + FT_KERNING_UNFITTED, + FT_KERNING_UNSCALED +} + +enum +{ + FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS = 1, + FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES = 2, + FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID = 4, + FT_SUBGLYPH_FLAG_SCALE = 8, + FT_SUBGLYPH_FLAG_XY_SCALE = 0x40, + FT_SUBGLYPH_FLAG_2X2 = 0x80, + FT_SUBGLYPH_FLAG_USE_MY_METRICS = 0x200, +} + +enum +{ + FREETYPE_MAJOR = 2, + FREETYPE_MINOR = 3, + FREETYPE_PATCH = 5, +} + +// ftimage.h +enum FT_Pixel_Mode +{ + FT_PIXEL_MODE_NONE = 0, + FT_PIXEL_MODE_MONO, + FT_PIXEL_MODE_GRAY, + FT_PIXEL_MODE_GRAY2, + FT_PIXEL_MODE_GRAY4, + FT_PIXEL_MODE_LCD, + FT_PIXEL_MODE_LCD_V, + FT_PIXEL_MODE_MAX +} + +enum : uint +{ + FT_OUTLINE_NONE = 0x0, + FT_OUTLINE_OWNER = 0x1, + FT_OUTLINE_EVEN_ODD_FILL = 0x2, + FT_OUTLINE_REVERSE_FILL = 0x4, + FT_OUTLINE_IGNORE_DROPOUTS = 0x8, + FT_OUTLINE_HIGH_PRECISION = 0x100, + FT_OUTLINE_SINGLE_PASS = 0x200, +} + +enum +{ + FT_CURVE_TAG_ON = 1, + FT_CURVE_TAG_CONIC = 0, + FT_CURVE_TAG_CUBIC = 2, + FT_CURVE_TAG_TOUCH_X = 8, + FT_CURVE_TAG_TOUCH_Y = 16, + FT_CURVE_TAG_TOUCH_BOTH = FT_CURVE_TAG_TOUCH_X | FT_CURVE_TAG_TOUCH_Y, +} + +enum FT_Glyph_Format +{ + FT_GLYPH_FORMAT_NONE = ( ( cast(uint)0 << 24 ) | ( cast(uint)0 << 16 ) | ( cast(uint)0 << 8 ) | cast(uint)0 ) , + FT_GLYPH_FORMAT_COMPOSITE = ( ( cast(uint)'c' << 24 ) | ( cast(uint)'o' << 16 ) | ( cast(uint)'m' << 8 ) | cast(uint)'p' ) , + FT_GLYPH_FORMAT_BITMAP = ( ( cast(uint)'b' << 24 ) | ( cast(uint)'i' << 16 ) | ( cast(uint)'t' << 8 ) | cast(uint)'s' ) , + FT_GLYPH_FORMAT_OUTLINE = ( ( cast(uint)'o' << 24 ) | ( cast(uint)'u' << 16 ) | ( cast(uint)'t' << 8 ) | cast(uint)'l' ) , + FT_GLYPH_FORMAT_PLOTTER = ( ( cast(uint)'p' << 24 ) | ( cast(uint)'l' << 16 ) | ( cast(uint)'o' << 8 ) | cast(uint)'t' ) +} + +enum +{ + FT_RASTER_FLAG_DEFAULT = 0x0, + FT_RASTER_FLAG_AA = 0x1, + FT_RASTER_FLAG_DIRECT = 0x2, + FT_RASTER_FLAG_CLIP = 0x4 +} + +// ftmodapi.h +enum +{ + FT_MODULE_FONT_DRIVER = 1, + FT_MODULE_RENDERER = 2, + FT_MODULE_HINTER = 4, + FT_MODULE_STYLER = 8, + FT_MODULE_DRIVER_SCALABLE = 0x100, + FT_MODULE_DRIVER_NO_OUTLINES= 0x200, + FT_MODULE_DRIVER_HAS_HINTER = 0x400 +} + +enum FT_TrueTypeEngineType +{ + FT_TRUETYPE_ENGINE_TYPE_NONE = 0, + FT_TRUETYPE_ENGINE_TYPE_UNPATENTED, + FT_TRUETYPE_ENGINE_TYPE_PATENTED + +} + +// ftmoderr.h +enum +{ + FT_Mod_Err_Base = 0, + FT_Mod_Err_Autofit = 0, + FT_Mod_Err_BDF = 0, + FT_Mod_Err_Cache = 0, + FT_Mod_Err_CFF = 0, + FT_Mod_Err_CID = 0, + FT_Mod_Err_Gzip = 0, + FT_Mod_Err_LZW = 0, + FT_Mod_Err_OTvalid = 0, + FT_Mod_Err_PCF = 0, + FT_Mod_Err_PFR = 0, + FT_Mod_Err_PSaux = 0, + FT_Mod_Err_PShinter = 0, + FT_Mod_Err_PSnames = 0, + FT_Mod_Err_Raster = 0, + FT_Mod_Err_SFNT = 0, + FT_Mod_Err_Smooth = 0, + FT_Mod_Err_TrueType = 0, + FT_Mod_Err_Type1 = 0, + FT_Mod_Err_Type42 = 0, + FT_Mod_Err_Winfonts = 0, + FT_Mod_Err_Max +} + +// ftoutln +enum FT_Orientation +{ + FT_ORIENTATION_TRUETYPE = 0, + FT_ORIENTATION_POSTSCRIPT = 1, + FT_ORIENTATION_FILL_RIGHT = FT_ORIENTATION_TRUETYPE, + FT_ORIENTATION_FILL_LEFT = FT_ORIENTATION_POSTSCRIPT +} + +// t1tables.h +enum T1_Blend_Flags + { + T1_BLEND_UNDERLINE_POSITION = 0, + T1_BLEND_UNDERLINE_THICKNESS, + T1_BLEND_ITALIC_ANGLE, + T1_BLEND_BLUE_VALUES, + T1_BLEND_OTHER_BLUES, + T1_BLEND_STANDARD_WIDTH, + T1_BLEND_STANDARD_HEIGHT, + T1_BLEND_STEM_SNAP_WIDTHS, + T1_BLEND_STEM_SNAP_HEIGHTS, + T1_BLEND_BLUE_SCALE, + T1_BLEND_BLUE_SHIFT, + T1_BLEND_FAMILY_BLUES, + T1_BLEND_FAMILY_OTHER_BLUES, + T1_BLEND_FORCE_BOLD, + T1_BLEND_MAX +} + +// ttnameid.h +// NOTE: _lots_ of missing #defines which _could_ be made into enums + +// tttables.h +enum FT_Sfnt_Tag +{ + ft_sfnt_head = 0, + ft_sfnt_maxp = 1, + ft_sfnt_os2 = 2, + ft_sfnt_hhea = 3, + ft_sfnt_vhea = 4, + ft_sfnt_post = 5, + ft_sfnt_pclt = 6, + sfnt_max +} + +// ftbdf.h +enum BDF_PropertyType +{ + BDF_PROPERTY_TYPE_NONE = 0, + BDF_PROPERTY_TYPE_ATOM = 1, + BDF_PROPERTY_TYPE_INTEGER = 2, + BDF_PROPERTY_TYPE_CARDINAL = 3 +} + +// ftglyph.h +enum FT_Glyph_BBox_Mode +{ + FT_GLYPH_BBOX_UNSCALED = 0, + FT_GLYPH_BBOX_SUBPIXELS = 0, + FT_GLYPH_BBOX_GRIDFIT = 1, + FT_GLYPH_BBOX_TRUNCATE = 2, + FT_GLYPH_BBOX_PIXELS = 3 +} + +// ftotval.h +enum +{ + FT_VALIDATE_BASE = 0x0100, + FT_VALIDATE_GDEF = 0x0200, + FT_VALIDATE_GPOS = 0x0400, + FT_VALIDATE_GSUB = 0x0800, + FT_VALIDATE_JSTF = 0x1000, + FT_VALIDATE_OT = FT_VALIDATE_BASE | FT_VALIDATE_GDEF | FT_VALIDATE_GPOS | FT_VALIDATE_GSUB | FT_VALIDATE_JSTF +} + +// ftgxval.h +enum +{ + // pulled just a few #defines (some aren't for external use anyway) + FT_VALIDATE_GX_LENGTH = 10, + FT_VALIDATE_GX_START = 0x4000, + + FT_VALIDATE_feat = FT_VALIDATE_GX_START << 0, + FT_VALIDATE_mort = FT_VALIDATE_GX_START << 1, + FT_VALIDATE_morx = FT_VALIDATE_GX_START << 2, + FT_VALIDATE_bsln = FT_VALIDATE_GX_START << 3, + FT_VALIDATE_just = FT_VALIDATE_GX_START << 4, + FT_VALIDATE_kern = FT_VALIDATE_GX_START << 5, + FT_VALIDATE_opbd = FT_VALIDATE_GX_START << 6, + FT_VALIDATE_trak = FT_VALIDATE_GX_START << 7, + FT_VALIDATE_prop = FT_VALIDATE_GX_START << 8, + FT_VALIDATE_lcar = FT_VALIDATE_GX_START << 9, + FT_VALIDATE_GX = FT_VALIDATE_feat | FT_VALIDATE_mort | FT_VALIDATE_morx | FT_VALIDATE_bsln | FT_VALIDATE_just | FT_VALIDATE_kern | FT_VALIDATE_opbd | FT_VALIDATE_trak | FT_VALIDATE_prop | FT_VALIDATE_lcar, + + FT_VALIDATE_MS = FT_VALIDATE_GX_START << 0, + FT_VALIDATE_APPLE = FT_VALIDATE_GX_START << 1, + FT_VALIDATE_CKERN = FT_VALIDATE_MS | FT_VALIDATE_APPLE +} + +// ftstroke.h +enum FT_Stroker_LineJoin +{ + FT_STROKER_LINEJOIN_ROUND = 0, + FT_STROKER_LINEJOIN_BEVEL, + FT_STROKER_LINEJOIN_MITER +} + +enum FT_Stroker_LineCap +{ + FT_STROKER_LINECAP_BUTT = 0, + FT_STROKER_LINECAP_ROUND, + FT_STROKER_LINECAP_SQUARE +} + +enum FT_StrokerBorder +{ + FT_STROKER_BORDER_LEFT = 0, + FT_STROKER_BORDER_RIGHT +} + +// fttrigon.h +enum +{ + FT_ANGLE_PI = 180 << 16, + FT_ANGLE_2PI = FT_ANGLE_PI * 2, + FT_ANGLE_PI2 = FT_ANGLE_PI / 2, + FT_ANGLE_PI4 = FT_ANGLE_PI / 4 +} + +// ftlcdfil.h +enum FT_LcdFilter +{ + FT_LCD_FILTER_NONE = 0, + FT_LCD_FILTER_DEFAULT = 1, + FT_LCD_FILTER_LIGHT = 2, + FT_LCD_FILTER_LEGACY = 16, + FT_LCD_FILTER_MAX +} + +// ftgasp.h +enum +{ + FT_GASP_NO_TABLE = -1, + FT_GASP_DO_GRIDFIT = 0x01, + FT_GASP_DO_GRAY = 0x02, + FT_GASP_SYMMETRIC_SMOOTHING = 0x08, + FT_GASP_SYMMETRIC_GRIDFIT = 0x10 +} + +/* other +version(Windows) +{ + enum { _JBLEN = 16 } +} +else +{ + enum { _JBLEN = 10 } +} +*/ + +enum +{ + FT_Err_Ok = 0x00, + FT_Err_Cannot_Open_Resource = 0x01 + 0 , + FT_Err_Unknown_File_Format = 0x02 + 0 , + FT_Err_Invalid_File_Format = 0x03 + 0 , + FT_Err_Invalid_Version = 0x04 + 0 , + FT_Err_Lower_Module_Version = 0x05 + 0 , + FT_Err_Invalid_Argument = 0x06 + 0 , + FT_Err_Unimplemented_Feature = 0x07 + 0 , + FT_Err_Invalid_Table = 0x08 + 0 , + FT_Err_Invalid_Offset = 0x09 + 0 , + FT_Err_Invalid_Glyph_Index = 0x10 + 0 , + FT_Err_Invalid_Character_Code = 0x11 + 0 , + FT_Err_Invalid_Glyph_Format = 0x12 + 0 , + FT_Err_Cannot_Render_Glyph = 0x13 + 0 , + FT_Err_Invalid_Outline = 0x14 + 0 , + FT_Err_Invalid_Composite = 0x15 + 0 , + FT_Err_Too_Many_Hints = 0x16 + 0 , + FT_Err_Invalid_Pixel_Size = 0x17 + 0 , + FT_Err_Invalid_Handle = 0x20 + 0 , + FT_Err_Invalid_Library_Handle = 0x21 + 0 , + FT_Err_Invalid_Driver_Handle = 0x22 + 0 , + FT_Err_Invalid_Face_Handle = 0x23 + 0 , + FT_Err_Invalid_Size_Handle = 0x24 + 0 , + FT_Err_Invalid_Slot_Handle = 0x25 + 0 , + FT_Err_Invalid_CharMap_Handle = 0x26 + 0 , + FT_Err_Invalid_Cache_Handle = 0x27 + 0 , + FT_Err_Invalid_Stream_Handle = 0x28 + 0 , + FT_Err_Too_Many_Drivers = 0x30 + 0 , + FT_Err_Too_Many_Extensions = 0x31 + 0 , + FT_Err_Out_Of_Memory = 0x40 + 0 , + FT_Err_Unlisted_Object = 0x41 + 0 , + FT_Err_Cannot_Open_Stream = 0x51 + 0 , + FT_Err_Invalid_Stream_Seek = 0x52 + 0 , + FT_Err_Invalid_Stream_Skip = 0x53 + 0 , + FT_Err_Invalid_Stream_Read = 0x54 + 0 , + FT_Err_Invalid_Stream_Operation = 0x55 + 0 , + FT_Err_Invalid_Frame_Operation = 0x56 + 0 , + FT_Err_Nested_Frame_Access = 0x57 + 0 , + FT_Err_Invalid_Frame_Read = 0x58 + 0 , + FT_Err_Raster_Uninitialized = 0x60 + 0 , + FT_Err_Raster_Corrupted = 0x61 + 0 , + FT_Err_Raster_Overflow = 0x62 + 0 , + FT_Err_Raster_Negative_Height = 0x63 + 0 , + FT_Err_Too_Many_Caches = 0x70 + 0 , + FT_Err_Invalid_Opcode = 0x80 + 0 , + FT_Err_Too_Few_Arguments = 0x81 + 0 , + FT_Err_Stack_Overflow = 0x82 + 0 , + FT_Err_Code_Overflow = 0x83 + 0 , + FT_Err_Bad_Argument = 0x84 + 0 , + FT_Err_Divide_By_Zero = 0x85 + 0 , + FT_Err_Invalid_Reference = 0x86 + 0 , + FT_Err_Debug_OpCode = 0x87 + 0 , + FT_Err_ENDF_In_Exec_Stream = 0x88 + 0 , + FT_Err_Nested_DEFS = 0x89 + 0 , + FT_Err_Invalid_CodeRange = 0x8A + 0 , + FT_Err_Execution_Too_Long = 0x8B + 0 , + FT_Err_Too_Many_Function_Defs = 0x8C + 0 , + FT_Err_Too_Many_Instruction_Defs = 0x8D + 0 , + FT_Err_Table_Missing = 0x8E + 0 , + FT_Err_Horiz_Header_Missing = 0x8F + 0 , + FT_Err_Locations_Missing = 0x90 + 0 , + FT_Err_Name_Table_Missing = 0x91 + 0 , + FT_Err_CMap_Table_Missing = 0x92 + 0 , + FT_Err_Hmtx_Table_Missing = 0x93 + 0 , + FT_Err_Post_Table_Missing = 0x94 + 0 , + FT_Err_Invalid_Horiz_Metrics = 0x95 + 0 , + FT_Err_Invalid_CharMap_Format = 0x96 + 0 , + FT_Err_Invalid_PPem = 0x97 + 0 , + FT_Err_Invalid_Vert_Metrics = 0x98 + 0 , + FT_Err_Could_Not_Find_Context = 0x99 + 0 , + FT_Err_Invalid_Post_Table_Format = 0x9A + 0 , + FT_Err_Invalid_Post_Table = 0x9B + 0 , + FT_Err_Syntax_Error = 0xA0 + 0 , + FT_Err_Stack_Underflow = 0xA1 + 0 , + FT_Err_Ignore = 0xA2 + 0 , + FT_Err_Missing_Startfont_Field = 0xB0 + 0 , + FT_Err_Missing_Font_Field = 0xB1 + 0 , + FT_Err_Missing_Size_Field = 0xB2 + 0 , + FT_Err_Missing_Chars_Field = 0xB3 + 0 , + FT_Err_Missing_Startchar_Field = 0xB4 + 0 , + FT_Err_Missing_Encoding_Field = 0xB5 + 0 , + FT_Err_Missing_Bbx_Field = 0xB6 + 0 , + FT_Err_Max +} + +/* +enum FT_Frame_Op +{ + ft_frame_end = 0, + ft_frame_start = ((1 << 2 ) | ( 0 << 1 ) | 0 ) , + ft_frame_byte = ( ( 2 << 2 ) | ( 0 << 1 ) | 0 ) , + ft_frame_schar = ( ( 2 << 2 ) | ( 0 << 1 ) | 1 ) , + ft_frame_ushort_be = ( ( 3 << 2 ) | ( 0 << 1 ) | 0 ) , + ft_frame_short_be = ( ( 3 << 2 ) | ( 0 << 1 ) | 1 ) , + ft_frame_ushort_le = ( ( 3 << 2 ) | ( 1 << 1 ) | 0 ) , + ft_frame_short_le = ( ( 3 << 2 ) | ( 1 << 1 ) | 1 ) , + ft_frame_ulong_be = ( ( 4 << 2 ) | ( 0 << 1 ) | 0 ) , + ft_frame_long_be = ( ( 4 << 2 ) | ( 0 << 1 ) | 1 ) , + ft_frame_ulong_le = ( ( 4 << 2 ) | ( 1 << 1 ) | 0 ) , + ft_frame_long_le = ( ( 4 << 2 ) | ( 1 << 1 ) | 1 ) , + ft_frame_uoff3_be = ( ( 5 << 2 ) | ( 0 << 1 ) | 0 ) , + ft_frame_off3_be = ( ( 5 << 2 ) | ( 0 << 1 ) | 1 ) , + ft_frame_uoff3_le = ( ( 5 << 2 ) | ( 1 << 1 ) | 0 ) , + ft_frame_off3_le = ( ( 5 << 2 ) | ( 1 << 1 ) | 1 ) , + ft_frame_bytes = ( ( 6 << 2 ) | ( 0 << 1 ) | 0 ) , + ft_frame_skip = ( ( 6 << 2 ) | ( 0 << 1 ) | 1 ) +} + +enum FT_ValidationLevel +{ + FT_VALIDATE_DEFAULT = 0, + FT_VALIDATE_TIGHT, + FT_VALIDATE_PARANOID +} + +enum T1_EncodingType +{ + T1_ENCODING_TYPE_NONE = 0, + T1_ENCODING_TYPE_ARRAY, + T1_ENCODING_TYPE_STANDARD, + T1_ENCODING_TYPE_ISOLATIN1, + T1_ENCODING_TYPE_EXPERT +} + +enum T1_TokenType +{ + T1_TOKEN_TYPE_NONE = 0, + T1_TOKEN_TYPE_ANY, + T1_TOKEN_TYPE_STRING, + T1_TOKEN_TYPE_ARRAY, + T1_TOKEN_TYPE_MAX +} + +enum T1_FieldType +{ + T1_FIELD_TYPE_NONE = 0, + T1_FIELD_TYPE_BOOL, + T1_FIELD_TYPE_INTEGER, + T1_FIELD_TYPE_FIXED, + T1_FIELD_TYPE_FIXED_1000, + T1_FIELD_TYPE_STRING, + T1_FIELD_TYPE_KEY, + T1_FIELD_TYPE_BBOX, + T1_FIELD_TYPE_INTEGER_ARRAY, + T1_FIELD_TYPE_FIXED_ARRAY, + T1_FIELD_TYPE_CALLBACK, + T1_FIELD_TYPE_MAX +} + +enum T1_FieldLocation +{ + T1_FIELD_LOCATION_CID_INFO, + T1_FIELD_LOCATION_FONT_DICT, + T1_FIELD_LOCATION_FONT_INFO, + T1_FIELD_LOCATION_PRIVATE, + T1_FIELD_LOCATION_BBOX, + T1_FIELD_LOCATION_MAX +} + +enum T1_ParseState +{ + T1_Parse_Start, + T1_Parse_Have_Width, + T1_Parse_Have_Moveto, + T1_Parse_Have_Path +} +*/ + +struct FT_RasterRec; +struct FT_LibraryRec; +struct FT_ModuleRec; +struct FT_DriverRec; +struct FT_RendererRec; +struct FT_Face_InternalRec; +struct FT_Size_InternalRec; +struct FT_SubGlyphRec; +struct FT_Slot_InternalRec; + +struct FTC_FaceIDRec; +struct FTC_ManagerRec; +struct FTC_NodeRec; +struct FTC_CMapCacheRec; +struct FTC_ImageCacheRec; +struct FTC_SBitCacheRec; +struct FT_StrokerRec; +struct FT_IncrementalRec; + +// ftsystem.h +union FT_StreamDesc +{ + int value; + void* pointer; +} + +struct FT_MemoryRec +{ + void* user; + FT_Alloc_Func alloc; + FT_Free_Func free; + FT_Realloc_Func realloc; +} + +struct FT_StreamRec +{ + ubyte* base; + c_ulong size; + c_ulong pos; + FT_StreamDesc descriptor; + FT_StreamDesc pathname; + FT_Stream_IoFunc read; + FT_Stream_CloseFunc close; + FT_Memory memory; + ubyte* cursor; + ubyte* limit; +} + +// ftimage.h +struct FT_Vector +{ + FT_Pos x; + FT_Pos y; +} + +struct FT_BBox +{ + FT_Pos xMin, yMin; + FT_Pos xMax, yMax; +} + +struct FT_Bitmap +{ + int rows; + int width; + int pitch; + ubyte* buffer; + short num_grays; + byte pixel_mode; + byte palette_mode; + void* palette; +} + +struct FT_Outline +{ + short n_contours; + short n_points; + FT_Vector* points; + byte* tags; + short* contours; + int flags; +} + +struct FT_Outline_Funcs +{ + FT_Outline_MoveToFunc move_to; + FT_Outline_LineToFunc line_to; + FT_Outline_ConicToFunc conic_to; + FT_Outline_CubicToFunc cubic_to; + int shift; + FT_Pos delta; +} + +struct FT_Span +{ + short x; + ushort len; + ubyte coverage; +} + +struct FT_Raster_Params +{ + const FT_Bitmap* target; + const void* source; + int flags; + FT_SpanFunc gray_spans; + FT_SpanFunc black_spans; + FT_Raster_BitTest_Func bit_test; + FT_Raster_BitSet_Func bit_set; + void* user; + FT_BBox clip_box; +} + +struct FT_Raster_Funcs +{ + FT_Glyph_Format glyph_format; + FT_Raster_NewFunc raster_new; + FT_Raster_ResetFunc raster_reset; + FT_Raster_SetModeFunc raster_set_mode; + FT_Raster_RenderFunc raster_render; + FT_Raster_DoneFunc raster_done; +} + +// fttypes.h +struct FT_UnitVector +{ + FT_F2Dot14 x; + FT_F2Dot14 y; +} + +struct FT_Matrix +{ + FT_Fixed xx, xy; + FT_Fixed yx, yy; +} + +struct FT_Data +{ + const FT_Byte* pointer; + FT_Int length; +} + +struct FT_Generic +{ + void* data; + FT_Generic_Finalizer finalizer; +} + +struct FT_ListNodeRec +{ + FT_ListNode prev; + FT_ListNode next; + void* data; +} + +struct FT_ListRec +{ + FT_ListNode head; + FT_ListNode tail; +} + +// freetype.h +struct FT_Glyph_Metrics +{ + FT_Pos width; + FT_Pos height; + FT_Pos horiBearingX; + FT_Pos horiBearingY; + FT_Pos horiAdvance; + FT_Pos vertBearingX; + FT_Pos vertBearingY; + FT_Pos vertAdvance; +} + +struct FT_Bitmap_Size +{ + FT_Short height; + FT_Short width; + FT_Pos size; + FT_Pos x_ppem; + FT_Pos y_ppem; +} + +struct FT_CharMapRec +{ + FT_Face face; + FT_Encoding encoding; + FT_UShort platform_id; + FT_UShort encoding_id; +} + +struct FT_FaceRec +{ + FT_Long num_faces; + FT_Long face_index; + FT_Long face_flags; + FT_Long style_flags; + FT_Long num_glyphs; + FT_String* family_name; + FT_String* style_name; + FT_Int num_fixed_sizes; + FT_Bitmap_Size* available_sizes; + FT_Int num_charmaps; + FT_CharMap* charmaps; + FT_Generic generic; + FT_BBox bbox; + FT_UShort units_per_EM; + FT_Short ascender; + FT_Short descender; + FT_Short height; + FT_Short max_advance_width; + FT_Short max_advance_height; + FT_Short underline_position; + FT_Short underline_thickness; + FT_GlyphSlot glyph; + FT_Size size; + FT_CharMap charmap; + FT_Driver driver; + FT_Memory memory; + FT_Stream stream; + FT_ListRec sizes_list; + FT_Generic autohint; + void* extensions; + FT_Face_Internal internal; +} + +struct FT_Size_Metrics +{ + FT_UShort x_ppem; + FT_UShort y_ppem; + + FT_Fixed x_scale; + FT_Fixed y_scale; + + FT_Pos ascender; + FT_Pos descender; + FT_Pos height; + FT_Pos max_advance; +} + +struct FT_SizeRec +{ + FT_Face face; + FT_Generic generic; + FT_Size_Metrics metrics; + FT_Size_Internal internal; +} + +struct FT_GlyphSlotRec +{ + FT_Library library; + FT_Face face; + FT_GlyphSlot next; + FT_UInt reserved; + FT_Generic generic; + FT_Glyph_Metrics metrics; + FT_Fixed linearHoriAdvance; + FT_Fixed linearVertAdvance; + FT_Vector advance; + FT_Glyph_Format format; + FT_Bitmap bitmap; + FT_Int bitmap_left; + FT_Int bitmap_top; + FT_Outline outline; + FT_UInt num_subglyphs; + FT_SubGlyph subglyphs; + void* control_data; + c_long control_len; + FT_Pos lsb_delta; + FT_Pos rsb_delta; + void* other; + FT_Slot_Internal internal; +} + +struct FT_Parameter +{ + FT_ULong tag; + FT_Pointer data; +} + +struct FT_Open_Args +{ + FT_UInt flags; + FT_Byte* memory_base; + FT_Long memory_size; + FT_String* pathname; + FT_Stream stream; + FT_Module driver; + FT_Int num_params; + FT_Parameter* params; +} + +struct FT_Size_RequestRec +{ + FT_Size_Request_Type type; + FT_Long width; + FT_Long height; + FT_UInt horiResolution; + FT_UInt vertResolution; +} + +// ftmodapi.h +struct FT_Module_Class +{ + FT_ULong module_flags; + FT_Long module_size; + FT_String* module_name; + FT_Fixed module_version; + FT_Fixed module_requires; + void* module_interface; + FT_Module_Constructor module_init; + FT_Module_Destructor module_done; + FT_Module_Requester get_interface; +} + +// ftrender.h +struct FT_Glyph_Class // typedef'd in ftglyph.h +{ + FT_Long glyph_size; + FT_Glyph_Format glyph_format; + FT_Glyph_InitFunc glyph_init; + FT_Glyph_DoneFunc glyph_done; + FT_Glyph_CopyFunc glyph_copy; + FT_Glyph_TransformFunc glyph_transform; + FT_Glyph_GetBBoxFunc glyph_bbox; + FT_Glyph_PrepareFunc glyph_prepare; +} + +struct FT_Renderer_Class +{ + FT_Module_Class root; + FT_Glyph_Format glyph_format; + FT_Renderer_RenderFunc render_glyph; + FT_Renderer_TransformFunc transform_glyph; + FT_Renderer_GetCBoxFunc get_glyph_cbox; + FT_Renderer_SetModeFunc set_mode; + FT_Raster_Funcs* raster_class; +} + +// t1tables.h +struct PS_FontInfoRec + { + FT_String* _version; + FT_String* notice; + FT_String* full_name; + FT_String* family_name; + FT_String* weight; + FT_Long italic_angle; + FT_Bool is_fixed_pitch; + FT_Short underline_position; + FT_UShort underline_thickness; +} + +struct PS_PrivateRec +{ + FT_Int unique_id; + FT_Int lenIV; + FT_Byte num_blue_values; + FT_Byte num_other_blues; + FT_Byte num_family_blues; + FT_Byte num_family_other_blues; + FT_Short[14] blue_values; + FT_Short[10] other_blues; + FT_Short[14] family_blues; + FT_Short[10] family_other_blues; + FT_Fixed blue_scale; + FT_Int blue_shift; + FT_Int blue_fuzz; + FT_UShort[1] standard_width; + FT_UShort[1] standard_height; + FT_Byte num_snap_widths; + FT_Byte num_snap_heights; + FT_Bool force_bold; + FT_Bool round_stem_up; + FT_Short[13] snap_widths; + FT_Short[13] snap_heights; + FT_Fixed expansion_factor; + FT_Long language_group; + FT_Long password; + FT_Short[2] min_feature; +} + +struct PS_DesignMapRec +{ + FT_Byte num_points; + FT_Long* design_points; + FT_Fixed* blend_points; +} + +struct PS_BlendRec +{ + FT_UInt num_designs; + FT_UInt num_axis; + FT_String*[4] axis_names; + FT_Fixed*[16] design_pos; + PS_DesignMapRec[4] design_map; + FT_Fixed* weight_vector; + FT_Fixed* default_weight_vector; + PS_FontInfo[16+1] font_infos; + PS_Private[16+1] privates; + FT_ULong blend_bitflags; + FT_BBox*[16+1] bboxes; +} + +struct CID_FaceDictRec +{ + PS_PrivateRec private_dict; + FT_UInt len_buildchar; + FT_Fixed forcebold_threshold; + FT_Pos stroke_width; + FT_Fixed expansion_factor; + FT_Byte paint_type; + FT_Byte font_type; + FT_Matrix font_matrix; + FT_Vector font_offset; + FT_UInt num_subrs; + FT_ULong subrmap_offset; + FT_Int sd_bytes; +} + +struct CID_FaceInfoRec + { + FT_String* cid_font_name; + FT_Fixed cid_version; + FT_Int cid_font_type; + FT_String* registry; + FT_String* ordering; + FT_Int supplement; + PS_FontInfoRec font_info; + FT_BBox font_bbox; + FT_ULong uid_base; + FT_Int num_xuid; + FT_ULong[16] xuid; + FT_ULong cidmap_offset; + FT_Int fd_bytes; + FT_Int gd_bytes; + FT_ULong cid_count; + FT_Int num_dicts; + CID_FaceDict font_dicts; + FT_ULong data_offset; +} + +alias int PS_Dict_Keys; +enum +{ + PS_DICT_FONT_TYPE, + PS_DICT_FONT_MATRIX, + PS_DICT_FONT_BBOX, + PS_DICT_PAINT_TYPE, + PS_DICT_FONT_NAME, + PS_DICT_UNIQUE_ID, + PS_DICT_NUM_CHAR_STRINGS, + PS_DICT_CHAR_STRING_KEY, + PS_DICT_CHAR_STRING, + PS_DICT_ENCODING_TYPE, + PS_DICT_ENCODING_ENTRY, + PS_DICT_NUM_SUBRS, + PS_DICT_SUBR, + PS_DICT_STD_HW, + PS_DICT_STD_VW, + PS_DICT_NUM_BLUE_VALUES, + PS_DICT_BLUE_VALUE, + PS_DICT_BLUE_FUZZ, + PS_DICT_NUM_OTHER_BLUES, + PS_DICT_OTHER_BLUE, + PS_DICT_NUM_FAMILY_BLUES, + PS_DICT_FAMILY_BLUE, + PS_DICT_NUM_FAMILY_OTHER_BLUES, + PS_DICT_FAMILY_OTHER_BLUE, + PS_DICT_BLUE_SCALE, + PS_DICT_BLUE_SHIFT, + PS_DICT_NUM_STEM_SNAP_H, + PS_DICT_STEM_SNAP_H, + PS_DICT_NUM_STEM_SNAP_V, + PS_DICT_STEM_SNAP_V, + PS_DICT_FORCE_BOLD, + PS_DICT_RND_STEM_UP, + PS_DICT_MIN_FEATURE, + PS_DICT_LEN_IV, + PS_DICT_PASSWORD, + PS_DICT_LANGUAGE_GROUP, + PS_DICT_VERSION, + PS_DICT_NOTICE, + PS_DICT_FULL_NAME, + PS_DICT_FAMILY_NAME, + PS_DICT_WEIGHT, + PS_DICT_IS_FIXED_PITCH, + PS_DICT_UNDERLINE_POSITION, + PS_DICT_UNDERLINE_THICKNESS, + PS_DICT_FS_TYPE, + PS_DICT_ITALIC_ANGLE, + PS_DICT_MAX = PS_DICT_ITALIC_ANGLE +} + +// tttables.h +struct TT_Header +{ + FT_Fixed Table_Version; + FT_Fixed Font_Revision; + FT_Long CheckSum_Adjust; + FT_Long Magic_Number; + FT_UShort Flags; + FT_UShort Units_Per_EM; + FT_Long[2] Created; + FT_Long[2] Modified; + FT_Short xMin; + FT_Short yMin; + FT_Short xMax; + FT_Short yMax; + FT_UShort Mac_Style; + FT_UShort Lowest_Rec_PPEM; + FT_Short Font_Direction; + FT_Short Index_To_Loc_Format; + FT_Short Glyph_Data_Format; +} + +struct TT_HoriHeader +{ + FT_Fixed Version; + FT_Short Ascender; + FT_Short Descender; + FT_Short Line_Gap; + FT_UShort advance_Width_Max; + FT_Short min_Left_Side_Bearing; + FT_Short min_Right_Side_Bearing; + FT_Short xMax_Extent; + FT_Short caret_Slope_Rise; + FT_Short caret_Slope_Run; + FT_Short caret_Offset; + FT_Short[4] Reserved; + FT_Short metric_Data_Format; + FT_UShort number_Of_HMetrics; + void* long_metrics; + void* short_metrics; +} + +struct TT_VertHeader +{ + FT_Fixed Version; + FT_Short Ascender; + FT_Short Descender; + FT_Short Line_Gap; + FT_UShort advance_Height_Max; + FT_Short min_Top_Side_Bearing; + FT_Short min_Bottom_Side_Bearing; + FT_Short yMax_Extent; + FT_Short caret_Slope_Rise; + FT_Short caret_Slope_Run; + FT_Short caret_Offset; + FT_Short[4] Reserved; + FT_Short metric_Data_Format; + FT_UShort number_Of_VMetrics; + void* long_metrics; + void* short_metrics; +} + +struct TT_OS2 +{ + FT_UShort _version; + FT_Short xAvgCharWidth; + FT_UShort usWeightClass; + FT_UShort usWidthClass; + FT_Short fsType; + FT_Short ySubscriptXSize; + FT_Short ySubscriptYSize; + FT_Short ySubscriptXOffset; + FT_Short ySubscriptYOffset; + FT_Short ySuperscriptXSize; + FT_Short ySuperscriptYSize; + FT_Short ySuperscriptXOffset; + FT_Short ySuperscriptYOffset; + FT_Short yStrikeoutSize; + FT_Short yStrikeoutPosition; + FT_Short sFamilyClass; + FT_Byte[10] panose; + FT_ULong ulUnicodeRange1; + FT_ULong ulUnicodeRange2; + FT_ULong ulUnicodeRange3; + FT_ULong ulUnicodeRange4; + FT_Char[4] achVendID; + FT_UShort fsSelection; + FT_UShort usFirstCharIndex; + FT_UShort usLastCharIndex; + FT_Short sTypoAscender; + FT_Short sTypoDescender; + FT_Short sTypoLineGap; + FT_UShort usWinAscent; + FT_UShort usWinDescent; + FT_ULong ulCodePageRange1; + FT_ULong ulCodePageRange2; + FT_Short sxHeight; + FT_Short sCapHeight; + FT_UShort usDefaultChar; + FT_UShort usBreakChar; + FT_UShort usMaxContext; +} + +struct TT_Postscript +{ + FT_Fixed FormatType; + FT_Fixed italicAngle; + FT_Short underlinePosition; + FT_Short underlineThickness; + FT_ULong isFixedPitch; + FT_ULong minMemType42; + FT_ULong maxMemType42; + FT_ULong minMemType1; + FT_ULong maxMemType1; +} + +struct TT_PCLT +{ + FT_Fixed Version; + FT_ULong FontNumber; + FT_UShort Pitch; + FT_UShort xHeight; + FT_UShort Style; + FT_UShort TypeFamily; + FT_UShort CapHeight; + FT_UShort SymbolSet; + FT_Char[16] TypeFace; + FT_Char[8] CharacterComplement; + FT_Char[6] FileName; + FT_Char StrokeWeight; + FT_Char WidthType; + FT_Byte SerifStyle; + FT_Byte Reserved; +} + +struct TT_MaxProfile +{ + FT_Fixed _version; + FT_UShort numGlyphs; + FT_UShort maxPoints; + FT_UShort maxContours; + FT_UShort maxCompositePoints; + FT_UShort maxCompositeContours; + FT_UShort maxZones; + FT_UShort maxTwilightPoints; + FT_UShort maxStorage; + FT_UShort maxFunctionDefs; + FT_UShort maxInstructionDefs; + FT_UShort maxStackElements; + FT_UShort maxSizeOfInstructions; + FT_UShort maxComponentElements; + FT_UShort maxComponentDepth; +} + +// ftbdf.h +struct BDF_PropertyRec +{ + BDF_PropertyType type; + union u + { + char* atom; + FT_Int32 integer; + FT_UInt32 cardinal; + } +} + +// ftwinfnt.h +struct FT_WinFNT_HeaderRec +{ + FT_UShort _version; + FT_ULong file_size; + FT_Byte[60] copyright; + FT_UShort file_type; + FT_UShort nominal_point_size; + FT_UShort vertical_resolution; + FT_UShort horizontal_resolution; + FT_UShort ascent; + FT_UShort internal_leading; + FT_UShort external_leading; + FT_Byte italic; + FT_Byte underline; + FT_Byte strike_out; + FT_UShort weight; + FT_Byte charset; + FT_UShort pixel_width; + FT_UShort pixel_height; + FT_Byte pitch_and_family; + FT_UShort avg_width; + FT_UShort max_width; + FT_Byte first_char; + FT_Byte last_char; + FT_Byte default_char; + FT_Byte break_char; + FT_UShort bytes_per_row; + FT_ULong device_offset; + FT_ULong face_name_offset; + FT_ULong bits_pointer; + FT_ULong bits_offset; + FT_Byte reserved; + FT_ULong flags; + FT_UShort A_space; + FT_UShort B_space; + FT_UShort C_space; + FT_UShort color_table_offset; + FT_ULong[4] reserved1; +} + +// ftglyph.h +struct FT_GlyphRec +{ + FT_Library library; + FT_Glyph_Class* clazz; + FT_Glyph_Format format; + FT_Vector advance; +} + +struct FT_BitmapGlyphRec +{ + FT_GlyphRec root; + FT_Int left; + FT_Int top; + FT_Bitmap bitmap; +} + +struct FT_OutlineGlyphRec +{ + FT_GlyphRec root; + FT_Outline outline; +} + +// ftcache.h +struct FTC_ScalerRec +{ + FTC_FaceID face_id; + FT_UInt width; + FT_UInt height; + FT_Int pixel; + FT_UInt x_res; + FT_UInt y_res; +} + +struct FTC_ImageTypeRec +{ + FTC_FaceID face_id; + FT_Int width; + FT_Int height; + FT_Int32 flags; +} + +struct FTC_SBitRec +{ + FT_Byte width; + FT_Byte height; + FT_Char left; + FT_Char top; + FT_Byte format; + FT_Byte max_grays; + FT_Short pitch; + FT_Char xadvance; + FT_Char yadvance; + FT_Byte* buffer; +} + +// ftmm.h +struct FT_MM_Axis +{ + FT_String* name; + FT_Long minimum; + FT_Long maximum; +} + +struct FT_Multi_Master +{ + FT_UInt num_axis; + FT_UInt num_designs; + FT_MM_Axis[4] axis; +} + +struct FT_Var_Axis +{ + FT_String* name; + FT_Fixed minimum; + FT_Fixed def; + FT_Fixed maximum; + FT_ULong tag; + FT_UInt strid; +} + +struct FT_Var_Named_Style +{ + FT_Fixed* coords; + FT_UInt strid; +} + +struct FT_MM_Var +{ + FT_UInt num_axis; + FT_UInt num_designs; + FT_UInt num_namedstyles; + FT_Var_Axis* axis; + FT_Var_Named_Style* namedstyle; +} + +// ftsnames.h +struct FT_SfntName +{ + FT_UShort platform_id; + FT_UShort encoding_id; + FT_UShort language_id; + FT_UShort name_id; + FT_Byte* string; + FT_UInt string_len; +} + +// ftincrem.h +struct FT_Incremental_MetricsRec +{ + FT_Long bearing_x; + FT_Long bearing_y; + FT_Long advance; +} + +struct FT_Incremental_FuncsRec +{ + FT_Incremental_GetGlyphDataFunc get_glyph_data; + FT_Incremental_FreeGlyphDataFunc free_glyph_data; + FT_Incremental_GetGlyphMetricsFunc get_glyph_metrics; +} + +struct FT_Incremental_InterfaceRec +{ + FT_Incremental_FuncsRec* funcs; + FT_Incremental object; +} + +/+ other +struct FTC_MruNodeRec +{ + FTC_MruNode next; + FTC_MruNode prev; +} + +struct FTC_MruListClassRec +{ + FT_UInt node_size; + FTC_MruNode_CompareFunc node_compare; + FTC_MruNode_InitFunc node_init; + FTC_MruNode_ResetFunc node_reset; + FTC_MruNode_DoneFunc node_done; +} + +struct FTC_MruListRec +{ + FT_UInt num_nodes; + FT_UInt max_nodes; + FTC_MruNode nodes; + FT_Pointer data; + FTC_MruListClassRec clazz; + FT_Memory memory; +} + +struct FTC_NodeRec +{ + FTC_MruNodeRec mru; + FTC_Node link; + FT_UInt32 hash; + FT_UShort cache_index; + FT_Short ref_count; +} + +struct FTC_CacheClassRec +{ + FTC_Node_NewFunc node_new; + FTC_Node_WeightFunc node_weight; + FTC_Node_CompareFunc node_compare; + FTC_Node_CompareFunc node_remove_faceid; + FTC_Node_FreeFunc node_free; + FT_UInt cache_size; + FTC_Cache_InitFunc cache_init; + FTC_Cache_DoneFunc cache_done; +} + +struct FTC_CacheRec +{ + FT_UFast p; + FT_UFast mask; + FT_Long slack; + FTC_Node* buckets; + FTC_CacheClassRec clazz; + FTC_Manager manager; + FT_Memory memory; + FT_UInt index; + FTC_CacheClass org_class; +} + +struct FTC_ManagerRec +{ + FT_Library library; + FT_Memory memory; + FTC_Node nodes_list; + FT_ULong max_weight; + FT_ULong cur_weight; + FT_UInt num_nodes; + FTC_Cache[16] caches; + FT_UInt num_caches; + FTC_MruListRec faces; + FTC_MruListRec sizes; + FT_Pointer request_data; + FTC_Face_Requester request_face; +} + +struct FTC_FamilyRec +{ + FTC_MruNodeRec mrunode; + FT_UInt num_nodes; + FTC_Cache cache; + FTC_MruListClass clazz; +} + +struct FTC_GNodeRec +{ + FTC_NodeRec node; + FTC_Family family; + FT_UInt gindex; +} + +struct FTC_GQueryRec +{ + FT_UInt gindex; + FTC_Family family; +} + +struct FTC_GCacheRec +{ + FTC_CacheRec cache; + FTC_MruListRec families; +} + +struct FTC_GCacheClassRec +{ + FTC_CacheClassRec clazz; + FTC_MruListClass family_class; +} + +struct FTC_INodeRec +{ + FTC_GNodeRec gnode; + FT_Glyph glyph; +} + +struct FTC_IFamilyClassRec +{ + FTC_MruListClassRec clazz; + FTC_IFamily_LoadGlyphFunc family_load_glyph; +} + +struct FTC_SNodeRec +{ + FTC_GNodeRec gnode; + FT_UInt count; + FTC_SBitRec[16] sbits; +} + +struct FTC_SFamilyClassRec +{ + FTC_MruListClassRec clazz; + FTC_SFamily_GetCountFunc family_get_count; + FTC_SFamily_LoadGlyphFunc family_load_glyph; +} + +struct FT_SubGlyphRec +{ + FT_Int index; + FT_UShort flags; + FT_Int arg1; + FT_Int arg2; + FT_Matrix transform; +} + +struct FT_GlyphLoadRec +{ + FT_Outline outline; + FT_Vector* extra_points; + FT_UInt num_subglyphs; + FT_SubGlyph subglyphs; +} + +struct FT_GlyphLoaderRec +{ + FT_Memory memory; + FT_UInt max_points; + FT_UInt max_contours; + FT_UInt max_subglyphs; + FT_Bool use_extra; + FT_GlyphLoadRec base; + FT_GlyphLoadRec current; + void* other; +} + +struct FT_Driver_ClassRec +{ + FT_Module_Class root; + FT_Long face_object_size; + FT_Long size_object_size; + FT_Long slot_object_size; + FT_Face_InitFunc init_face; + FT_Face_DoneFunc done_face; + FT_Size_InitFunc init_size; + FT_Size_DoneFunc done_size; + FT_Slot_InitFunc init_slot; + FT_Slot_DoneFunc done_slot; + FT_Size_ResetPointsFunc set_char_sizes; + FT_Size_ResetPixelsFunc set_pixel_sizes; + FT_Slot_LoadFunc load_glyph; + FT_Face_GetKerningFunc get_kerning; + FT_Face_AttachFunc attach_file; + FT_Face_GetAdvancesFunc get_advances; +} + +struct FT_AutoHinter_ServiceRec +{ + FT_AutoHinter_GlobalResetFunc reset_face; + FT_AutoHinter_GlobalGetFunc get_global_hints; + FT_AutoHinter_GlobalDoneFunc done_global_hints; + FT_AutoHinter_GlyphLoadFunc load_glyph; +} + +struct FT_ServiceDescRec +{ + char* serv_id; + void* serv_data; +} + +struct FT_ServiceCacheRec +{ + FT_Pointer service_POSTSCRIPT_FONT_NAME; + FT_Pointer service_MULTI_MASTERS; + FT_Pointer service_GLYPH_DICT; + FT_Pointer service_PFR_METRICS; + FT_Pointer service_WINFNT; +} + +struct FT_CMapRec +{ + FT_CharMapRec charmap; + FT_CMap_Class clazz; +} + +struct FT_CMap_ClassRec +{ + FT_ULong size; + FT_CMap_InitFunc init; + FT_CMap_DoneFunc done; + FT_CMap_CharIndexFunc char_index; + FT_CMap_CharNextFunc char_next; +} + +struct FT_Face_InternalRec +{ + FT_UShort max_points; + FT_Short max_contours; + FT_Matrix transform_matrix; + FT_Vector transform_delta; + FT_Int transform_flags; + FT_ServiceCacheRec services; +} + +struct FT_Slot_InternalRec +{ + FT_GlyphLoader loader; + FT_UInt flags; + FT_Bool glyph_transformed; + FT_Matrix glyph_matrix; + FT_Vector glyph_delta; + void* glyph_hints; +} + +struct FT_ModuleRec +{ + FT_Module_Class* clazz; + FT_Library library; + FT_Memory memory; + FT_Generic generic; +} + +struct FT_RendererRec +{ + FT_ModuleRec root; + FT_Renderer_Class* clazz; + FT_Glyph_Format glyph_format; + FT_Glyph_Class glyph_class; + FT_Raster raster; + FT_Raster_RenderFunc raster_render; + FT_Renderer_RenderFunc render; +} + +struct FT_DriverRec +{ + FT_ModuleRec root; + FT_Driver_Class clazz; + FT_ListRec faces_list; + void* extensions; + FT_GlyphLoader glyph_loader; +} + +struct FT_LibraryRec +{ + FT_Memory memory; + FT_Generic generic; + FT_Int version_major; + FT_Int version_minor; + FT_Int version_patch; + FT_UInt num_modules; + FT_Module[32] modules; + FT_ListRec renderers; + FT_Renderer cur_renderer; + FT_Module auto_hinter; + FT_Byte* raster_pool; + FT_ULong raster_pool_size; + FT_DebugHook_Func[4] debug_hooks; +} + +struct FT_Frame_Field +{ + FT_Byte value; + FT_Byte size; + FT_UShort offset; +} + +struct TTC_HeaderRec +{ + FT_ULong tag; + FT_Fixed _version; + FT_Long count; + FT_ULong* offsets; +} + +struct SFNT_HeaderRec +{ + FT_ULong format_tag; + FT_UShort num_tables; + FT_UShort search_range; + FT_UShort entry_selector; + FT_UShort range_shift; + FT_ULong offset; +} + +struct TT_TableRec + { + FT_ULong Tag; + FT_ULong CheckSum; + FT_ULong Offset; + FT_ULong Length; +} + +struct TT_LongMetricsRec +{ + FT_UShort advance; + FT_Short bearing; +} + +struct TT_NameEntryRec +{ + FT_UShort platformID; + FT_UShort encodingID; + FT_UShort languageID; + FT_UShort nameID; + FT_UShort stringLength; + FT_ULong stringOffset; + FT_Byte* string; +} + +struct TT_NameTableRec +{ + FT_UShort format; + FT_UInt numNameRecords; + FT_UInt storageOffset; + TT_NameEntryRec* names; + FT_Stream stream; +} + +struct TT_GaspRangeRec +{ + FT_UShort maxPPEM; + FT_UShort gaspFlag; +} + +struct TT_GaspRec +{ + FT_UShort _version; + FT_UShort numRanges; + TT_GaspRange gaspRanges; +} + +struct TT_HdmxEntryRec +{ + FT_Byte ppem; + FT_Byte max_width; + FT_Byte* widths; +} + +struct TT_HdmxRec +{ + FT_UShort _version; + FT_Short num_records; + TT_HdmxEntry records; +} + +struct TT_Kern0_PairRec +{ + FT_UShort left; + FT_UShort right; + FT_FWord value; +} + +struct TT_SBit_MetricsRec +{ + FT_Byte height; + FT_Byte width; + FT_Char horiBearingX; + FT_Char horiBearingY; + FT_Byte horiAdvance; + FT_Char vertBearingX; + FT_Char vertBearingY; + FT_Byte vertAdvance; +} + +struct TT_SBit_SmallMetricsRec +{ + FT_Byte height; + FT_Byte width; + FT_Char bearingX; + FT_Char bearingY; + FT_Byte advance; +} + +struct TT_SBit_LineMetricsRec +{ + FT_Char ascender; + FT_Char descender; + FT_Byte max_width; + FT_Char caret_slope_numerator; + FT_Char caret_slope_denominator; + FT_Char caret_offset; + FT_Char min_origin_SB; + FT_Char min_advance_SB; + FT_Char max_before_BL; + FT_Char min_after_BL; + FT_Char[2] pads; +} + +struct TT_SBit_RangeRec +{ + FT_UShort first_glyph; + FT_UShort last_glyph; + FT_UShort index_format; + FT_UShort image_format; + FT_ULong image_offset; + FT_ULong image_size; + TT_SBit_MetricsRec metrics; + FT_ULong num_glyphs; + FT_ULong* glyph_offsets; + FT_UShort* glyph_codes; + FT_ULong table_offset; +} + +struct TT_SBit_StrikeRec +{ + FT_Int num_ranges; + TT_SBit_Range sbit_ranges; + FT_ULong ranges_offset; + FT_ULong color_ref; + TT_SBit_LineMetricsRec hori; + TT_SBit_LineMetricsRec vert; + FT_UShort start_glyph; + FT_UShort end_glyph; + FT_Byte x_ppem; + FT_Byte y_ppem; + FT_Byte bit_depth; + FT_Char flags; +} + +struct TT_SBit_ComponentRec +{ + FT_UShort glyph_code; + FT_Char x_offset; + FT_Char y_offset; +} + +struct TT_SBit_ScaleRec +{ + TT_SBit_LineMetricsRec hori; + TT_SBit_LineMetricsRec vert; + FT_Byte x_ppem; + FT_Byte y_ppem; + FT_Byte x_ppem_substitute; + FT_Byte y_ppem_substitute; +} + +struct TT_Post_20Rec +{ + FT_UShort num_glyphs; + FT_UShort num_names; + FT_UShort* glyph_indices; + FT_Char** glyph_names; +} + +struct TT_Post_25Rec +{ + FT_UShort num_glyphs; + FT_Char* offsets; +} + +struct TT_Post_NamesRec +{ + FT_Bool loaded; + union names + { + TT_Post_20Rec format_20; + TT_Post_25Rec format_25; + } +} + +struct TT_FaceRec +{ + FT_FaceRec root; + TTC_HeaderRec ttc_header; + FT_ULong format_tag; + FT_UShort num_tables; + TT_Table dir_tables; + TT_Header header; + TT_HoriHeader horizontal; + TT_MaxProfile max_profile; + FT_ULong max_components; + FT_Bool vertical_info; + TT_VertHeader vertical; + FT_UShort num_names; + TT_NameTableRec name_table; + TT_OS2 os2; + TT_Postscript postscript; + FT_Byte* cmap_table; + FT_ULong cmap_size; + TT_Loader_GotoTableFunc goto_table; + TT_Loader_StartGlyphFunc access_glyph_frame; + TT_Loader_EndGlyphFunc forget_glyph_frame; + TT_Loader_ReadGlyphFunc read_glyph_header; + TT_Loader_ReadGlyphFunc read_simple_glyph; + TT_Loader_ReadGlyphFunc read_composite_glyph; + void* sfnt; + void* psnames; + TT_HdmxRec hdmx; + TT_GaspRec gasp; + TT_PCLT pclt; + FT_ULong num_sbit_strikes; + TT_SBit_Strike sbit_strikes; + FT_ULong num_sbit_scales; + TT_SBit_Scale sbit_scales; + TT_Post_NamesRec postscript_names; + FT_UShort num_locations; + FT_Long* glyph_locations; + FT_ULong glyf_len; + FT_ULong font_program_size; + FT_Byte* font_program; + FT_ULong cvt_program_size; + FT_Byte* cvt_program; + FT_ULong cvt_size; + FT_Short* cvt; + FT_Int num_kern_pairs; + FT_Int kern_table_index; + TT_Kern0_Pair kern_pairs; + TT_Interpreter interpreter; + FT_Bool unpatented_hinting; + FT_Bool doblend; + GX_Blend blend; + FT_Generic extra; + char* postscript_name; +} + +struct TT_GlyphZoneRec +{ + FT_Memory memory; + FT_UShort max_points; + FT_UShort max_contours; + FT_UShort n_points; + FT_Short n_contours; + FT_Vector* org; + FT_Vector* cur; + FT_Byte* tags; + FT_UShort* contours; +} + +struct TT_LoaderRec +{ + FT_Face face; + FT_Size size; + FT_GlyphSlot glyph; + FT_GlyphLoader gloader; + FT_ULong load_flags; + FT_UInt glyph_index; + FT_Stream stream; + FT_Int byte_len; + FT_Short n_contours; + FT_BBox bbox; + FT_Int left_bearing; + FT_Int advance; + FT_Int top_bearing; + FT_Int vadvance; + FT_Int linear; + FT_Bool linear_def; + FT_Bool preserve_pps; + FT_Vector pp1; + FT_Vector pp2; + FT_Vector pp3; + FT_Vector pp4; + FT_ULong glyf_offset; + TT_GlyphZoneRec base; + TT_GlyphZoneRec zone; + TT_ExecContext exec; + FT_Byte* instructions; + FT_ULong ins_pos; + void* other; +} + +struct SFNT_Interface +{ + TT_Loader_GotoTableFunc goto_table; + TT_Init_Face_Func init_face; + TT_Load_Face_Func load_face; + TT_Done_Face_Func done_face; + FT_Module_Requester get_interface; + TT_Load_Any_Func load_any; + TT_Load_SFNT_HeaderRec_Func load_sfnt_header; + TT_Load_Directory_Func load_directory; + TT_Load_Table_Func load_header; + TT_Load_Metrics_Func load_metrics; + TT_Load_Table_Func load_charmaps; + TT_Load_Table_Func load_max_profile; + TT_Load_Table_Func load_os2; + TT_Load_Table_Func load_psnames; + TT_Load_Table_Func load_names; + TT_Free_Table_Func free_names; + TT_Load_Table_Func load_hdmx; + TT_Free_Table_Func free_hdmx; + TT_Load_Table_Func load_kerning; + TT_Load_Table_Func load_gasp; + TT_Load_Table_Func load_pclt; + TT_Load_Table_Func load_bitmap_header; + TT_Set_SBit_Strike_Func set_sbit_strike; + TT_Load_Table_Func load_sbits; + TT_Find_SBit_Image_Func find_sbit_image; + TT_Load_SBit_Metrics_Func load_sbit_metrics; + TT_Load_SBit_Image_Func load_sbit_image; + TT_Free_Table_Func free_sbits; + TT_Face_GetKerningFunc get_kerning; + TT_Get_PS_Name_Func get_psname; + TT_Free_Table_Func free_psnames; +} + +struct FT_ValidatorRec +{ + FT_Byte* base; + FT_Byte* limit; + FT_ValidationLevel level; + FT_Error error; + int[_JBLEN] jump_buffer; +} + +struct PSH_Globals_FuncsRec +{ + PSH_Globals_NewFunc create; + PSH_Globals_SetScaleFunc set_scale; + PSH_Globals_DestroyFunc destroy; +} + +struct T1_Hints_FuncsRec +{ + T1_Hints hints; + T1_Hints_OpenFunc open; + T1_Hints_CloseFunc close; + T1_Hints_SetStemFunc stem; + T1_Hints_SetStem3Func stem3; + T1_Hints_ResetFunc reset; + T1_Hints_ApplyFunc apply; +} + +struct T2_Hints_FuncsRec +{ + T2_Hints hints; + T2_Hints_OpenFunc open; + T2_Hints_CloseFunc close; + T2_Hints_StemsFunc stems; + T2_Hints_MaskFunc hintmask; + T2_Hints_CounterFunc counter; + T2_Hints_ApplyFunc apply; +} + +struct PSHinter_Interface +{ + PSH_Globals_Funcs function( FT_Module mod ) get_globals_funcs; + T1_Hints_Funcs function( FT_Module mod ) get_t1_funcs; + T2_Hints_Funcs function( FT_Module mod ) get_t2_funcs; +} + +struct PS_UniMap +{ + FT_UInt unicode; + FT_UInt glyph_index; +} + +struct PS_Unicodes +{ + FT_UInt num_maps; + PS_UniMap* maps; +} + +struct FT_Service_PsCMapsRec +{ + PS_Unicode_ValueFunc unicode_value; + + PS_Unicodes_InitFunc unicodes_init; + PS_Unicodes_CharIndexFunc unicodes_char_index; + PS_Unicodes_CharNextFunc unicodes_char_next; + + PS_Macintosh_Name_Func macintosh_name; + PS_Adobe_Std_Strings_Func adobe_std_strings; + ushort* adobe_std_encoding; + ushort* adobe_expert_encoding; +} + +struct T1_EncodingRec +{ + FT_Int num_chars; + FT_Int code_first; + FT_Int code_last; + FT_UShort* char_index; + FT_String** char_name; +} + + +struct T1_FontRec +{ + PS_FontInfoRec font_info; + PS_PrivateRec private_dict; + FT_String* font_name; + T1_EncodingType encoding_type; + T1_EncodingRec encoding; + FT_Byte* subrs_block; + FT_Byte* charstrings_block; + FT_Byte* glyph_names_block; + FT_Int num_subrs; + FT_Byte** subrs; + FT_PtrDist* subrs_len; + FT_Int num_glyphs; + FT_String** glyph_names; + FT_Byte** charstrings; + FT_PtrDist* charstrings_len; + FT_Byte paint_type; + FT_Byte font_type; + FT_Matrix font_matrix; + FT_Vector font_offset; + FT_BBox font_bbox; + FT_Long font_id; + FT_Fixed stroke_width; +} + +struct CID_SubrsRec +{ + FT_UInt num_subrs; + FT_Byte** code; +} + +struct T1_FaceRec +{ + FT_FaceRec root; + T1_FontRec type1; + void* psnames; + void* psaux; + void* afm_data; + FT_CharMapRec[2] charmaprecs; + FT_CharMap[2] charmaps; + PS_Unicodes unicode_map; + PS_Blend blend; + void* pshinter; +} + +struct CID_FaceRec +{ + FT_FaceRec root; + void* psnames; + void* psaux; + CID_FaceInfoRec cid; + void* afm_data; + FT_Byte* binary_data; + FT_Stream cid_stream; + CID_Subrs subrs; + void* pshinter; +} + +struct PS_Table_FuncsRec +{ + FT_Error function( PS_Table table, FT_Int count, FT_Memory memory ) init; + void function( PS_Table table ) done; + FT_Error function( PS_Table table, FT_Int idx, void* object, FT_PtrDist length ) add; + void function( PS_Table table ) release; +} + +struct PS_TableRec +{ + FT_Byte* block; + FT_Offset cursor; + FT_Offset capacity; + FT_Long init; + FT_Int max_elems; + FT_Int num_elems; + FT_Byte** elements; + FT_PtrDist* lengths; + FT_Memory memory; + PS_Table_FuncsRec funcs; +} + +struct T1_TokenRec +{ + FT_Byte* start; + FT_Byte* limit; + T1_TokenType type; +} + +struct T1_FieldRec +{ + char* ident; + T1_FieldLocation location; + T1_FieldType type; + T1_Field_ParseFunc reader; + FT_UInt offset; + FT_Byte size; + FT_UInt array_max; + FT_UInt count_offset; +} + +struct PS_Parser_FuncsRec +{ + void function( PS_Parser parser, FT_Byte* base, FT_Byte* limit, FT_Memory memory ) init; + void function( PS_Parser parser ) done; + void function( PS_Parser parser ) skip_spaces; + void function( PS_Parser parser ) skip_PS_token; + FT_Long function( PS_Parser parser ) to_int; + FT_Fixed function( PS_Parser parser, FT_Int power_ten ) to_fixed; + FT_Error function( PS_Parser parser, FT_Byte* bytes, FT_Long max_bytes, FT_Long* pnum_bytes, FT_Bool delimiters ) to_bytes; + FT_Int function( PS_Parser parser, FT_Int max_coords, FT_Short* coords ) to_coord_array; + FT_Int function( PS_Parser parser, FT_Int max_values, FT_Fixed* values, FT_Int power_ten ) to_fixed_array; + void function( PS_Parser parser, T1_Token token ) to_token; + void function( PS_Parser parser, T1_Token tokens, FT_UInt max_tokens, FT_Int* pnum_tokens ) to_token_array; + FT_Error function( PS_Parser parser, in T1_Field field, void** objects, FT_UInt max_objects, FT_ULong* pflags ) load_field; + FT_Error function( PS_Parser parser, in T1_Field field, void** objects, FT_UInt max_objects, FT_ULong* pflags ) load_field_table; +} + +struct PS_ParserRec +{ + FT_Byte* cursor; + FT_Byte* base; + FT_Byte* limit; + FT_Error error; + FT_Memory memory; + PS_Parser_FuncsRec funcs; +} + +struct T1_Builder_FuncsRec +{ + void function( T1_Builder builder, FT_Face face, FT_Size size, FT_GlyphSlot slot, FT_Bool hinting ) init; + void function( T1_Builder builder ) done; + + T1_Builder_Check_Points_Func check_points; + T1_Builder_Add_Point_Func add_point; + T1_Builder_Add_Point1_Func add_point1; + T1_Builder_Add_Contour_Func add_contour; + T1_Builder_Start_Point_Func start_point; + T1_Builder_Close_Contour_Func close_contour; +} + +struct T1_BuilderRec +{ + FT_Memory memory; + FT_Face face; + FT_GlyphSlot glyph; + FT_GlyphLoader loader; + FT_Outline* base; + FT_Outline* current; + FT_Vector last; + FT_Fixed scale_x; + FT_Fixed scale_y; + FT_Pos pos_x; + FT_Pos pos_y; + FT_Vector left_bearing; + FT_Vector advance; + FT_BBox bbox; + T1_ParseState parse_state; + FT_Bool load_points; + FT_Bool no_recurse; + FT_Bool shift; + FT_Bool metrics_only; + void* hints_funcs; + void* hints_globals; + T1_Builder_FuncsRec funcs; +} + +struct T1_Decoder_ZoneRec +{ + FT_Byte* cursor; + FT_Byte* base; + FT_Byte* limit; +} + +struct T1_Decoder_FuncsRec +{ + FT_Error function( T1_Decoder, FT_Face, FT_Size, FT_GlyphSlot, FT_Byte**, PS_Blend, FT_Bool, FT_Render_Mode, T1_Decoder_Callback ) init; + void function( T1_Decoder decoder ) done; + FT_Error function( T1_Decoder decoder, FT_Byte* base, FT_UInt len ) parse_charstrings; +} + +struct T1_DecoderRec +{ + T1_BuilderRec builder; + FT_Long[256] stack; + FT_Long* top; + T1_Decoder_ZoneRec[16+1] zones; + T1_Decoder_Zone zone; + FT_Service_PsCMaps psnames; + FT_UInt num_glyphs; + FT_Byte** glyph_names; + FT_Int lenIV; + FT_UInt num_subrs; + FT_Byte** subrs; + FT_PtrDist* subrs_len; + FT_Matrix font_matrix; + FT_Vector font_offset; + FT_Int flex_state; + FT_Int num_flex_vectors; + FT_Vector[7] flex_vectors; + PS_Blend blend; + FT_Render_Mode hint_mode; + T1_Decoder_Callback parse_callback; + T1_Decoder_FuncsRec funcs; +} + +struct T1_CMap_ClassesRec +{ + FT_CMap_Class standard; + FT_CMap_Class expert; + FT_CMap_Class custom; + FT_CMap_Class unicode; +} + +struct PSAux_ServiceRec +{ + PS_Table_FuncsRec* ps_table_funcs; + PS_Parser_FuncsRec* ps_parser_funcs; + T1_Builder_FuncsRec* t1_builder_funcs; + T1_Decoder_FuncsRec* t1_decoder_funcs; + void function( FT_Byte* buffer, FT_Offset length, FT_UShort seed ) t1_decrypt; + T1_CMap_Classes t1_cmap_classes; +} ++/ + +extern(C) +{ + // ftsystem.h + alias void* function( FT_Memory memory, c_long size ) + FT_Alloc_Func; + alias void function( FT_Memory memory, void* block ) + FT_Free_Func; + alias void* function( FT_Memory memory, c_long cur_size, c_long new_size, void* block ) + FT_Realloc_Func; + + alias c_ulong function( FT_Stream stream, c_ulong offset, ubyte* buffer, c_ulong count ) + FT_Stream_IoFunc; + alias void function( FT_Stream stream ) + FT_Stream_CloseFunc; + + // ftimage.h + alias int function( in FT_Vector* to, void* user ) + FT_Outline_MoveToFunc; + alias int function( in FT_Vector* to, void* user ) + FT_Outline_LineToFunc; + alias int function( in FT_Vector* control, in FT_Vector* to, void* user ) + FT_Outline_ConicToFunc; + alias int function( in FT_Vector* control1, in FT_Vector* control2, in FT_Vector* to, void* user ) + FT_Outline_CubicToFunc; + + alias void function( int y, int count, FT_Span* spans, void* user ) + FT_SpanFunc; + alias int function( int y, int x, void* user ) + FT_Raster_BitTest_Func; + alias void function( int y, int x, void* user ) + FT_Raster_BitSet_Func; + + alias int function( void* memory, FT_Raster* raster ) + FT_Raster_NewFunc; + alias void function( FT_Raster raster ) + FT_Raster_DoneFunc; + alias void function( FT_Raster raster, ubyte* pool_base, uint pool_size ) + FT_Raster_ResetFunc; + alias int function( FT_Raster raster,uint mode, void* args ) + FT_Raster_SetModeFunc; + alias int function( FT_Raster raster, FT_Raster_Params* params ) + FT_Raster_RenderFunc; + + // fttypes.h + alias void function(void* object) + FT_Generic_Finalizer; + + // ftlist.h + alias FT_Error function( FT_ListNode node, void* user ) FT_List_Iterator; + alias void function( FT_Memory memory, void* data, void* user ) FT_List_Destructor; + + // ftmodapi.h + alias FT_Error function( FT_Module mod ) FT_Module_Constructor; + alias void function( FT_Module mod ) FT_Module_Destructor; + alias FT_Module_Interface function( FT_Module mod, CCPTR name ) FT_Module_Requester; + + alias void function( void* arg ) FT_DebugHook_Func; + + // ftrender.h + alias FT_Error function( FT_Glyph glyph, FT_GlyphSlot slot ) FT_Glyph_InitFunc; + alias void function( FT_Glyph glyph ) FT_Glyph_DoneFunc; + alias void function( FT_Glyph glyph, in FT_Matrix* matrix, in FT_Vector* delta ) FT_Glyph_TransformFunc; + alias void function( FT_Glyph glyph, FT_BBox* abbox ) FT_Glyph_GetBBoxFunc; + alias FT_Error function( FT_Glyph source, FT_Glyph target ) FT_Glyph_CopyFunc; + alias FT_Error function( FT_Glyph glyph, FT_GlyphSlot slot ) FT_Glyph_PrepareFunc; + + alias FT_Error function( FT_Renderer renderer, FT_GlyphSlot slot, FT_UInt mode, in FT_Vector* origin ) FT_Renderer_RenderFunc; + alias FT_Error function( FT_Renderer renderer, FT_GlyphSlot slot, in FT_Matrix* matrix, in FT_Vector* delta ) FT_Renderer_TransformFunc; + alias void function( FT_Renderer renderer, FT_GlyphSlot slot, FT_BBox* cbox ) FT_Renderer_GetCBoxFunc; + alias FT_Error function( FT_Renderer renderer, FT_ULong mode_tag, FT_Pointer mode_ptr ) FT_Renderer_SetModeFunc; + + // ftcache.h + alias FT_Error function( FTC_FaceID face_id, FT_Library library, FT_Pointer request_data, FT_Face* aface ) FTC_Face_Requester; + + // ftincrem.h + alias FT_Error function( FT_Incremental incremental, FT_UInt glyph_index, FT_Data* adata ) FT_Incremental_GetGlyphDataFunc; + alias void function( FT_Incremental incremental, FT_Data* data ) FT_Incremental_FreeGlyphDataFunc; + alias FT_Error function( FT_Incremental incremental, FT_UInt glyph_index, FT_Bool vertical, FT_Incremental_MetricsRec *ametrics ) FT_Incremental_GetGlyphMetricsFunc; + + /+ other + alias FT_Bool function( FTC_MruNode node, FT_Pointer key ) FTC_MruNode_CompareFunc; + alias FT_Error function( FTC_MruNode node, FT_Pointer key, FT_Pointer data ) FTC_MruNode_InitFunc; + alias FT_Error function( FTC_MruNode node, FT_Pointer key, FT_Pointer data ) FTC_MruNode_ResetFunc; + alias void function( FTC_MruNode node, FT_Pointer data ) FTC_MruNode_DoneFunc; + + alias FT_Error function( FTC_Node *pnode, FT_Pointer query, FTC_Cache cache ) FTC_Node_NewFunc; + alias FT_ULong function( FTC_Node node, FTC_Cache cache ) FTC_Node_WeightFunc; + alias FT_Bool function( FTC_Node node, FT_Pointer key, FTC_Cache cache ) FTC_Node_CompareFunc; + alias void function( FTC_Node node, FTC_Cache cache ) FTC_Node_FreeFunc; + alias FT_Error function( FTC_Cache cache ) FTC_Cache_InitFunc; + alias void function( FTC_Cache cache ) FTC_Cache_DoneFunc; + + alias FT_Error function( FTC_Family family, FT_UInt gindex, FTC_Cache cache, FT_Glyph *aglyph ) FTC_IFamily_LoadGlyphFunc; + + alias FT_UInt function( FTC_Family family, FTC_Manager manager ) FTC_SFamily_GetCountFunc; + alias FT_Error function( FTC_Family family, FT_UInt gindex, FTC_Manager manager, FT_Face *aface ) FTC_SFamily_LoadGlyphFunc; + + alias FT_Error function( FT_Stream stream, FT_Face face, FT_Int typeface_index, FT_Int num_params, FT_Parameter* parameters ) FT_Face_InitFunc; + alias void function( FT_Face face ) FT_Face_DoneFunc; + alias FT_Error function( FT_Size size ) FT_Size_InitFunc; + alias void function( FT_Size size ) FT_Size_DoneFunc; + alias FT_Error function( FT_GlyphSlot slot )FT_Slot_InitFunc; + alias void function( FT_GlyphSlot slot ) FT_Slot_DoneFunc; + alias FT_Error function( FT_Size size, FT_F26Dot6 char_width, FT_F26Dot6 char_height, FT_UInt horz_resolution, FT_UInt vert_resolution ) FT_Size_ResetPointsFunc; + alias FT_Error function( FT_Size size, FT_UInt pixel_width, FT_UInt pixel_height ) FT_Size_ResetPixelsFunc; + alias FT_Error function( FT_GlyphSlot slot, FT_Size size, FT_UInt glyph_index, FT_Int32 load_flags ) FT_Slot_LoadFunc; + alias FT_UInt function( FT_CharMap charmap, FT_Long charcode ) FT_CharMap_CharIndexFunc; + alias FT_Long function( FT_CharMap charmap, FT_Long charcode ) FT_CharMap_CharNextFunc; + alias FT_Error function( FT_Face face, FT_UInt left_glyph, FT_UInt right_glyph, FT_Vector* kerning ) FT_Face_GetKerningFunc; + alias FT_Error function( FT_Face face, FT_Stream stream ) FT_Face_AttachFunc; + alias FT_Error function( FT_Face face, FT_UInt first, FT_UInt count, FT_Bool vertical, FT_UShort* advances ) FT_Face_GetAdvancesFunc; + + alias void function( FT_AutoHinter hinter, FT_Face face, void** global_hints, int* global_len ) FT_AutoHinter_GlobalGetFunc; + alias void function( FT_AutoHinter hinter, void* global ) FT_AutoHinter_GlobalDoneFunc; + alias void function( FT_AutoHinter hinter, FT_Face face ) FT_AutoHinter_GlobalResetFunc; + alias FT_Error function( FT_AutoHinter hinter, FT_GlyphSlot slot, FT_Size size, FT_UInt glyph_index, FT_Int32 load_flags ) FT_AutoHinter_GlyphLoadFunc; + + alias FT_Error function( FT_CMap cmap, FT_Pointer init_data ) FT_CMap_InitFunc; + alias void function( FT_CMap cmap ) FT_CMap_DoneFunc; + alias FT_UInt function( FT_CMap cmap, FT_UInt32 char_code ) FT_CMap_CharIndexFunc; + alias FT_UInt function( FT_CMap cmap, FT_UInt32 *achar_code ) FT_CMap_CharNextFunc; + + alias CCPTR function( FT_Face face ) FT_Face_GetPostscriptNameFunc; + alias FT_Error function( FT_Face face, FT_UInt glyph_index, FT_Pointer buffer, FT_UInt buffer_max ) FT_Face_GetGlyphNameFunc; + alias FT_UInt function( FT_Face face, FT_String* glyph_name ) FT_Face_GetGlyphNameIndexFunc; + + alias FT_Error function( void* exec_context ) TT_Interpreter; + + alias FT_Error function( TT_Face face, FT_ULong tag, FT_Stream stream, FT_ULong* length ) TT_Loader_GotoTableFunc; + alias FT_Error function( TT_Loader loader, FT_UInt glyph_index, FT_ULong offset, FT_UInt byte_count ) TT_Loader_StartGlyphFunc; + alias FT_Error function( TT_Loader loader ) TT_Loader_ReadGlyphFunc; + alias void function( TT_Loader loader ) TT_Loader_EndGlyphFunc; + + alias FT_Error function( FT_Stream stream, TT_Face face, FT_Int face_index, FT_Int num_params, FT_Parameter* params ) TT_Init_Face_Func; + alias FT_Error function( FT_Stream stream, TT_Face face, FT_Int face_index, FT_Int num_params, FT_Parameter* params ) TT_Load_Face_Func; + alias void function( TT_Face face ) TT_Done_Face_Func; + alias FT_Error function( TT_Face face, FT_Stream stream, FT_Long face_index, SFNT_Header sfnt ) TT_Load_SFNT_HeaderRec_Func; + alias FT_Error function( TT_Face face, FT_Stream stream, SFNT_Header sfnt ) TT_Load_Directory_Func; + alias FT_Error function( TT_Face face, FT_ULong tag, FT_Long offset, FT_Byte *buffer, FT_ULong* length ) TT_Load_Any_Func; + alias FT_Error function( TT_Face face, FT_UInt glyph_index, FT_ULong strike_index, TT_SBit_Range *arange, TT_SBit_Strike *astrike, FT_ULong *aglyph_offset ) TT_Find_SBit_Image_Func; + alias FT_Error function( FT_Stream stream, TT_SBit_Range range, TT_SBit_Metrics metrics ) TT_Load_SBit_Metrics_Func; + alias FT_Error function( TT_Face face, FT_ULong strike_index, FT_UInt glyph_index, FT_UInt load_flags, FT_Stream stream, FT_Bitmap *amap, TT_SBit_MetricsRec *ametrics ) TT_Load_SBit_Image_Func; + alias FT_Error function( TT_Face face, FT_UInt x_ppem, FT_UInt y_ppem, FT_ULong *astrike_index ) TT_Set_SBit_Strike_Func; + alias FT_Error function( TT_Face face, FT_UInt idx, FT_String** PSname ) TT_Get_PS_Name_Func; + alias FT_Error function( TT_Face face, FT_Stream stream, FT_Bool vertical ) TT_Load_Metrics_Func; + alias FT_Error function( TT_Face face, FT_Stream stream ) TT_Load_Table_Func; + alias void function( TT_Face face ) TT_Free_Table_Func; + alias FT_Int function( TT_Face face, FT_UInt left_glyph, FT_UInt right_glyph ) TT_Face_GetKerningFunc; + + alias FT_Error function( FT_Memory memory, T1_Private* private_dict, PSH_Globals* aglobals ) PSH_Globals_NewFunc; + alias FT_Error function( PSH_Globals globals, FT_Fixed x_scale, FT_Fixed y_scale, FT_Fixed x_delta, FT_Fixed y_delta ) PSH_Globals_SetScaleFunc; + alias void function( PSH_Globals globals ) PSH_Globals_DestroyFunc; + + alias void function( T1_Hints hints ) T1_Hints_OpenFunc; + alias void function( T1_Hints hints, FT_UInt dimension, FT_Long* coords ) T1_Hints_SetStemFunc; + alias void function( T1_Hints hints, FT_UInt dimension, FT_Long* coords ) T1_Hints_SetStem3Func; + alias void function( T1_Hints hints, FT_UInt end_point ) T1_Hints_ResetFunc; + alias FT_Error function( T1_Hints hints, FT_UInt end_point ) T1_Hints_CloseFunc; + alias FT_Error function( T1_Hints hints, FT_Outline* outline, PSH_Globals globals, FT_Render_Mode hint_mode ) T1_Hints_ApplyFunc; + + alias void function( T2_Hints hints ) T2_Hints_OpenFunc; + alias void function( T2_Hints hints, FT_UInt dimension, FT_UInt count, FT_Fixed* coordinates ) T2_Hints_StemsFunc; + alias void function( T2_Hints hints, FT_UInt end_point, FT_UInt bit_count, in FT_Byte* bytes ) T2_Hints_MaskFunc; + alias void function( T2_Hints hints, FT_UInt bit_count, in FT_Byte* bytes ) T2_Hints_CounterFunc; + alias FT_Error function( T2_Hints hints, FT_UInt end_point ) T2_Hints_CloseFunc; + alias FT_Error function( T2_Hints hints, FT_Outline* outline, PSH_Globals globals, FT_Render_Mode hint_mode ) T2_Hints_ApplyFunc; + + alias FT_UInt32 function( char* glyph_name ) PS_Unicode_ValueFunc; + alias FT_UInt function( FT_UInt num_glyphs, char** glyph_names, FT_ULong unicode ) PS_Unicode_Index_Func; + alias char* function( FT_UInt name_index ) PS_Macintosh_Name_Func; + alias char* function( FT_UInt string_index ) PS_Adobe_Std_Strings_Func; + + alias FT_Error function( FT_Memory memory, FT_UInt num_glyphs, char** glyph_names, PS_Unicodes* unicodes ) PS_Unicodes_InitFunc; + alias FT_UInt function( PS_Unicodes* unicodes, FT_UInt unicode ) PS_Unicodes_CharIndexFunc; + alias FT_ULong function( PS_Unicodes* unicodes, FT_ULong unicode ) PS_Unicodes_CharNextFunc; + + alias void function( FT_Face face, FT_Pointer parser ) T1_Field_ParseFunc; + + alias FT_Error function( T1_Builder builder, FT_Int count ) T1_Builder_Check_Points_Func; + alias void function( T1_Builder builder, FT_Pos x, FT_Pos y, FT_Byte flag ) T1_Builder_Add_Point_Func; + alias FT_Error function( T1_Builder builder, FT_Pos x, FT_Pos y ) T1_Builder_Add_Point1_Func; + alias FT_Error function( T1_Builder builder ) T1_Builder_Add_Contour_Func; + alias FT_Error function( T1_Builder builder, FT_Pos x, FT_Pos y ) T1_Builder_Start_Point_Func; + alias void function( T1_Builder builder ) T1_Builder_Close_Contour_Func; + + alias FT_Error function( T1_Decoder decoder, FT_UInt glyph_index ) T1_Decoder_Callback; + +/ +} + +// freetype.h +int FT_LOAD_TARGET_( int x ) +{ + return ( ( x & 15 ) << 16 ); +} + +int FT_LOAD_TARGET_MODE( int x ) +{ + return ( ( x >> 16 ) & 15 ); +} + +int FT_HAS_HORIZONTAL(FT_FaceRec* face) +{ + return face.face_flags & FT_FACE_FLAG_HORIZONTAL; +} + +int FT_HAS_VERTICAL(FT_FaceRec* face) +{ + return face.face_flags & FT_FACE_FLAG_VERTICAL; +} + +int FT_HAS_KERNING(FT_FaceRec* face) +{ + return face.face_flags & FT_FACE_FLAG_KERNING; +} + +int FT_IS_SCALABLE(FT_FaceRec* face) +{ + return face.face_flags & FT_FACE_FLAG_SCALABLE; +} + +int FT_IS_SFNT(FT_FaceRec* face) +{ + return face.face_flags & FT_FACE_FLAG_SFNT; +} + +int FT_IS_FIXED_WIDTH(FT_FaceRec* face) +{ + return face.face_flags & FT_FACE_FLAG_FIXED_WIDTH; +} + +int FT_HAS_FIXED_SIZES(FT_FaceRec* face) +{ + return face.face_flags & FT_FACE_FLAG_FIXED_SIZES; +} + +int FT_HAS_FAST_GLYPHS(FT_FaceRec* face) +{ + return false; +} + +int FT_HAS_GLYPH_NAMES(FT_FaceRec* face) +{ + return face.face_flags & FT_FACE_FLAG_GLYPH_NAMES; +} + +int FT_HAS_MULTIPLE_MASTERS(FT_FaceRec* face) +{ + return face.face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS; +} + +// Other macros. Second version is D-specific, but works fine. +template FT_MAKE_TAG(char x1, char x2, char x3, char x4) { + const uint FT_MAKE_TAG = ((cast(uint)x1) << 24) + ((cast(uint)x2) << 16) + ((cast(uint)x3) << 8) + x4; +} + +template FT_MAKE_TAG(char[4] x) { + const uint FT_MAKE_TAG = ((cast(uint)x[0]) << 24) + ((cast(uint)x[1]) << 16) + ((cast(uint)x[2]) << 8) + x[3]; +} + +/*********************************************************************** + * Extra macros carried over from Freetype. Something needs to be done? + ***********************************************************************/ + +/+ fterrdef.h +// (list not updated to version 2.3.5) + FT_NOERRORDEF_( Ok, 0x00, "no error" ) + FT_ERRORDEF_( Cannot_Open_Resource, 0x01, "cannot open resource" ) + FT_ERRORDEF_( Unknown_File_Format, 0x02, "unknown file format" ) + FT_ERRORDEF_( Invalid_File_Format, 0x03, "broken file" ) + FT_ERRORDEF_( Invalid_Version, 0x04, "invalid FreeType version" ) + FT_ERRORDEF_( Lower_Module_Version, 0x05, "module version is too low" ) + FT_ERRORDEF_( Invalid_Argument, 0x06, "invalid argument" ) + FT_ERRORDEF_( Unimplemented_Feature, 0x07, "unimplemented feature" ) + FT_ERRORDEF_( Invalid_Table, 0x08, "broken table" ) + FT_ERRORDEF_( Invalid_Offset, 0x09, "broken offset within table" ) + FT_ERRORDEF_( Invalid_Glyph_Index, 0x10, "invalid glyph index" ) + FT_ERRORDEF_( Invalid_Character_Code, 0x11, "invalid character code" ) + FT_ERRORDEF_( Invalid_Glyph_Format, 0x12, "unsupported glyph image format" ) + FT_ERRORDEF_( Cannot_Render_Glyph, 0x13, "cannot render this glyph format" ) + FT_ERRORDEF_( Invalid_Outline, 0x14, "invalid outline" ) + FT_ERRORDEF_( Invalid_Composite, 0x15, "invalid composite glyph" ) + FT_ERRORDEF_( Too_Many_Hints, 0x16, "too many hints" ) + FT_ERRORDEF_( Invalid_Pixel_Size, 0x17, "invalid pixel size" ) + FT_ERRORDEF_( Invalid_Handle, 0x20, "invalid object handle" ) + FT_ERRORDEF_( Invalid_Library_Handle, 0x21, "invalid library handle" ) + FT_ERRORDEF_( Invalid_Driver_Handle, 0x22, "invalid module handle" ) + FT_ERRORDEF_( Invalid_Face_Handle, 0x23, "invalid face handle" ) + FT_ERRORDEF_( Invalid_Size_Handle, 0x24, "invalid size handle" ) + FT_ERRORDEF_( Invalid_Slot_Handle, 0x25, "invalid glyph slot handle" ) + FT_ERRORDEF_( Invalid_CharMap_Handle, 0x26, "invalid charmap handle" ) + FT_ERRORDEF_( Invalid_Cache_Handle, 0x27, "invalid cache manager handle" ) + FT_ERRORDEF_( Invalid_Stream_Handle, 0x28, "invalid stream handle" ) + FT_ERRORDEF_( Too_Many_Drivers, 0x30, "too many modules" ) + FT_ERRORDEF_( Too_Many_Extensions, 0x31, "too many extensions" ) + FT_ERRORDEF_( Out_Of_Memory, 0x40, "out of memory" ) + FT_ERRORDEF_( Unlisted_Object, 0x41, "unlisted object" ) + FT_ERRORDEF_( Cannot_Open_Stream, 0x51, "cannot open stream" ) + FT_ERRORDEF_( Invalid_Stream_Seek, 0x52, "invalid stream seek" ) + FT_ERRORDEF_( Invalid_Stream_Skip, 0x53, "invalid stream skip" ) + FT_ERRORDEF_( Invalid_Stream_Read, 0x54, "invalid stream read" ) + FT_ERRORDEF_( Invalid_Stream_Operation, 0x55, "invalid stream operation" ) + FT_ERRORDEF_( Invalid_Frame_Operation, 0x56, "invalid frame operation" ) + FT_ERRORDEF_( Nested_Frame_Access, 0x57, "nested frame access" ) + FT_ERRORDEF_( Invalid_Frame_Read, 0x58, "invalid frame read" ) + FT_ERRORDEF_( Raster_Uninitialized, 0x60, "raster uninitialized" ) + FT_ERRORDEF_( Raster_Corrupted, 0x61, "raster corrupted" ) + FT_ERRORDEF_( Raster_Overflow, 0x62, "raster overflow" ) + FT_ERRORDEF_( Raster_Negative_Height, 0x63, "negative height while rastering" ) + FT_ERRORDEF_( Too_Many_Caches, 0x70, "too many registered caches" ) + FT_ERRORDEF_( Invalid_Opcode, 0x80, "invalid opcode" ) + FT_ERRORDEF_( Too_Few_Arguments, 0x81, "too few arguments" ) + FT_ERRORDEF_( Stack_Overflow, 0x82, "stack overflow" ) + FT_ERRORDEF_( Code_Overflow, 0x83, "code overflow" ) + FT_ERRORDEF_( Bad_Argument, 0x84, "bad argument" ) + FT_ERRORDEF_( Divide_By_Zero, 0x85, "division by zero" ) + FT_ERRORDEF_( Invalid_Reference, 0x86, "invalid reference" ) + FT_ERRORDEF_( Debug_OpCode, 0x87, "found debug opcode" ) + FT_ERRORDEF_( ENDF_In_Exec_Stream, 0x88, "found ENDF opcode in execution stream" ) + FT_ERRORDEF_( Nested_DEFS, 0x89, "nested DEFS" ) + FT_ERRORDEF_( Invalid_CodeRange, 0x8A, "invalid code range" ) + FT_ERRORDEF_( Execution_Too_Long, 0x8B, "execution context too long" ) + FT_ERRORDEF_( Too_Many_Function_Defs, 0x8C, "too many function definitions" ) + FT_ERRORDEF_( Too_Many_Instruction_Defs, 0x8D, "too many instruction definitions" ) + FT_ERRORDEF_( Table_Missing, 0x8E, "SFNT font table missing" ) + FT_ERRORDEF_( Horiz_Header_Missing, 0x8F, "horizontal header (hhea) table missing" ) + FT_ERRORDEF_( Locations_Missing, 0x90, "locations (loca) table missing" ) + FT_ERRORDEF_( Name_Table_Missing, 0x91, "name table missing" ) + FT_ERRORDEF_( CMap_Table_Missing, 0x92, "character map (cmap) table missing" ) + FT_ERRORDEF_( Hmtx_Table_Missing, 0x93, "horizontal metrics (hmtx) table missing" ) + FT_ERRORDEF_( Post_Table_Missing, 0x94, "PostScript (post) table missing" ) + FT_ERRORDEF_( Invalid_Horiz_Metrics, 0x95, "invalid horizontal metrics" ) + FT_ERRORDEF_( Invalid_CharMap_Format, 0x96, "invalid character map (cmap) format" ) + FT_ERRORDEF_( Invalid_PPem, 0x97, "invalid ppem value" ) + FT_ERRORDEF_( Invalid_Vert_Metrics, 0x98, "invalid vertical metrics" ) + FT_ERRORDEF_( Could_Not_Find_Context, 0x99, "could not find context" ) + FT_ERRORDEF_( Invalid_Post_Table_Format, 0x9A, "invalid PostScript (post) table format" ) + FT_ERRORDEF_( Invalid_Post_Table, 0x9B, "invalid PostScript (post) table" ) + FT_ERRORDEF_( Syntax_Error, 0xA0, "opcode syntax error" ) + FT_ERRORDEF_( Stack_Underflow, 0xA1, "argument stack underflow" ) + FT_ERRORDEF_( Ignore, 0xA2, "ignore" ) + FT_ERRORDEF_( Missing_Startfont_Field, 0xB0, "`STARTFONT' field missing" ) + FT_ERRORDEF_( Missing_Font_Field, 0xB1, "`FONT' field missing" ) + FT_ERRORDEF_( Missing_Size_Field, 0xB2, "`SIZE' field missing" ) + FT_ERRORDEF_( Missing_Chars_Field, 0xB3, "`CHARS' field missing" ) + FT_ERRORDEF_( Missing_Startchar_Field, 0xB4, "`STARTCHAR' field missing" ) + FT_ERRORDEF_( Missing_Encoding_Field, 0xB5, "`ENCODING' field missing" ) + FT_ERRORDEF_( Missing_Bbx_Field, 0xB6, "`BBX' field missing" ) ++/ diff --git a/src/derelict/openal/al.d b/src/derelict/openal/al.d old mode 100755 new mode 100644 index 6842de4b..090f837f --- a/src/derelict/openal/al.d +++ b/src/derelict/openal/al.d @@ -1,175 +1,175 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.openal.al; - -public -{ - import derelict.openal.altypes; - import derelict.openal.alfuncs; -} - -private -{ - import derelict.util.loader; -} - -class DerelictALLoader : SharedLibLoader -{ -public: - this() - { - super( - "OpenAl32.dll", - "libal.so, libAL.so, libopenal.so, libopenal.so.1, libopenal.so.0", - "../Frameworks/OpenAL.framework/OpenAL, /Library/Frameworks/OpenAL.framework/OpenAL, /System/Library/Frameworks/OpenAL.framework/OpenAL" - ); - } - -protected: - override void loadSymbols() - { - bindFunc(cast(void**)&alEnable, "alEnable"); - bindFunc(cast(void**)&alDisable, "alDisable"); - bindFunc(cast(void**)&alIsEnabled, "alIsEnabled"); - - bindFunc(cast(void**)&alGetString, "alGetString"); - bindFunc(cast(void**)&alGetBooleanv, "alGetBooleanv"); - bindFunc(cast(void**)&alGetIntegerv, "alGetIntegerv"); - bindFunc(cast(void**)&alGetFloatv, "alGetFloatv"); - bindFunc(cast(void**)&alGetDoublev, "alGetDoublev"); - bindFunc(cast(void**)&alGetInteger, "alGetInteger"); - bindFunc(cast(void**)&alGetFloat, "alGetFloat"); - bindFunc(cast(void**)&alGetDouble, "alGetDouble"); - bindFunc(cast(void**)&alGetError, "alGetError"); - - bindFunc(cast(void**)&alIsExtensionPresent, "alIsExtensionPresent"); - bindFunc(cast(void**)&alGetProcAddress, "alGetProcAddress"); - bindFunc(cast(void**)&alGetEnumValue, "alGetEnumValue"); - - bindFunc(cast(void**)&alListenerf, "alListenerf"); - bindFunc(cast(void**)&alListener3f, "alListener3f"); - bindFunc(cast(void**)&alListenerfv, "alListenerfv"); - bindFunc(cast(void**)&alListeneri, "alListeneri"); - bindFunc(cast(void**)&alListener3i, "alListener3i"); - bindFunc(cast(void**)&alListeneriv, "alListeneriv"); - - bindFunc(cast(void**)&alGetListenerf, "alGetListenerf"); - bindFunc(cast(void**)&alGetListener3f, "alGetListener3f"); - bindFunc(cast(void**)&alGetListenerfv, "alGetListenerfv"); - bindFunc(cast(void**)&alGetListeneri, "alGetListeneri"); - bindFunc(cast(void**)&alGetListener3i, "alGetListener3i"); - bindFunc(cast(void**)&alGetListeneriv, "alGetListeneriv"); - - bindFunc(cast(void**)&alGenSources, "alGenSources"); - bindFunc(cast(void**)&alDeleteSources, "alDeleteSources"); - bindFunc(cast(void**)&alIsSource, "alIsSource"); - - bindFunc(cast(void**)&alSourcef, "alSourcef"); - bindFunc(cast(void**)&alSource3f, "alSource3f"); - bindFunc(cast(void**)&alSourcefv, "alSourcefv"); - bindFunc(cast(void**)&alSourcei, "alSourcei"); - bindFunc(cast(void**)&alSource3i, "alSource3i"); - bindFunc(cast(void**)&alSourceiv, "alSourceiv"); - - bindFunc(cast(void**)&alGetSourcef, "alGetSourcef"); - bindFunc(cast(void**)&alGetSource3f, "alGetSource3f"); - bindFunc(cast(void**)&alGetSourcefv, "alGetSourcefv"); - bindFunc(cast(void**)&alGetSourcei, "alGetSourcei"); - bindFunc(cast(void**)&alGetSourceiv, "alGetSourceiv"); - - bindFunc(cast(void**)&alSourcePlayv, "alSourcePlayv"); - bindFunc(cast(void**)&alSourceStopv, "alSourceStopv"); - bindFunc(cast(void**)&alSourceRewindv, "alSourceRewindv"); - bindFunc(cast(void**)&alSourcePausev, "alSourcePausev"); - bindFunc(cast(void**)&alSourcePlay, "alSourcePlay"); - bindFunc(cast(void**)&alSourcePause, "alSourcePause"); - bindFunc(cast(void**)&alSourceRewind, "alSourceRewind"); - bindFunc(cast(void**)&alSourceStop, "alSourceStop"); - - bindFunc(cast(void**)&alSourceQueueBuffers, "alSourceQueueBuffers"); - bindFunc(cast(void**)&alSourceUnqueueBuffers, "alSourceUnqueueBuffers"); - - bindFunc(cast(void**)&alGenBuffers, "alGenBuffers"); - bindFunc(cast(void**)&alDeleteBuffers, "alDeleteBuffers"); - bindFunc(cast(void**)&alIsBuffer, "alIsBuffer"); - bindFunc(cast(void**)&alBufferData, "alBufferData"); - - bindFunc(cast(void**)&alBufferf, "alBufferf"); - bindFunc(cast(void**)&alBuffer3f, "alBuffer3f"); - bindFunc(cast(void**)&alBufferfv, "alBufferfv"); - bindFunc(cast(void**)&alBufferi, "alBufferi"); - bindFunc(cast(void**)&alBuffer3i, "alBuffer3i"); - bindFunc(cast(void**)&alBufferiv, "alBufferiv"); - - bindFunc(cast(void**)&alGetBufferf, "alGetBufferf"); - bindFunc(cast(void**)&alGetBuffer3f, "alGetBuffer3f"); - bindFunc(cast(void**)&alGetBufferfv, "alGetBufferfv"); - bindFunc(cast(void**)&alGetBufferi, "alGetBufferi"); - bindFunc(cast(void**)&alGetBuffer3i, "alGetBuffer3i"); - bindFunc(cast(void**)&alGetBufferiv, "alGetBufferiv"); - - bindFunc(cast(void**)&alDopplerFactor, "alDopplerFactor"); - bindFunc(cast(void**)&alDopplerVelocity, "alDopplerVelocity"); - bindFunc(cast(void**)&alSpeedOfSound, "alSpeedOfSound"); - bindFunc(cast(void**)&alDistanceModel, "alDistanceModel"); - - bindFunc(cast(void**)&alcCreateContext, "alcCreateContext"); - bindFunc(cast(void**)&alcMakeContextCurrent, "alcMakeContextCurrent"); - bindFunc(cast(void**)&alcProcessContext, "alcProcessContext"); - bindFunc(cast(void**)&alcGetCurrentContext, "alcGetCurrentContext"); - bindFunc(cast(void**)&alcGetContextsDevice, "alcGetContextsDevice"); - bindFunc(cast(void**)&alcSuspendContext, "alcSuspendContext"); - bindFunc(cast(void**)&alcDestroyContext, "alcDestroyContext"); - bindFunc(cast(void**)&alcOpenDevice, "alcOpenDevice"); - bindFunc(cast(void**)&alcCloseDevice, "alcCloseDevice"); - bindFunc(cast(void**)&alcGetError, "alcGetError"); - bindFunc(cast(void**)&alcIsExtensionPresent, "alcIsExtensionPresent"); - bindFunc(cast(void**)&alcGetProcAddress, "alcGetProcAddress"); - bindFunc(cast(void**)&alcGetEnumValue, "alcGetEnumValue"); - bindFunc(cast(void**)&alcGetString, "alcGetString"); - bindFunc(cast(void**)&alcGetIntegerv, "alcGetIntegerv"); - bindFunc(cast(void**)&alcCaptureOpenDevice, "alcCaptureOpenDevice"); - bindFunc(cast(void**)&alcCaptureCloseDevice, "alcCaptureCloseDevice"); - bindFunc(cast(void**)&alcCaptureStart, "alcCaptureStart"); - bindFunc(cast(void**)&alcCaptureStop, "alcCaptureStop"); - bindFunc(cast(void**)&alcCaptureSamples, "alcCaptureSamples"); - } -} - -DerelictALLoader DerelictAL; - -static this() -{ - DerelictAL = new DerelictALLoader(); -} - -static ~this() -{ - if(SharedLibLoader.isAutoUnloadEnabled()) - DerelictAL.unload(); +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.openal.al; + +public +{ + import derelict.openal.altypes; + import derelict.openal.alfuncs; +} + +private +{ + import derelict.util.loader; +} + +class DerelictALLoader : SharedLibLoader +{ +public: + this() + { + super( + "OpenAl32.dll", + "libal.so, libAL.so, libopenal.so, libopenal.so.1, libopenal.so.0", + "../Frameworks/OpenAL.framework/OpenAL, /Library/Frameworks/OpenAL.framework/OpenAL, /System/Library/Frameworks/OpenAL.framework/OpenAL" + ); + } + +protected: + override void loadSymbols() + { + bindFunc(cast(void**)&alEnable, "alEnable"); + bindFunc(cast(void**)&alDisable, "alDisable"); + bindFunc(cast(void**)&alIsEnabled, "alIsEnabled"); + + bindFunc(cast(void**)&alGetString, "alGetString"); + bindFunc(cast(void**)&alGetBooleanv, "alGetBooleanv"); + bindFunc(cast(void**)&alGetIntegerv, "alGetIntegerv"); + bindFunc(cast(void**)&alGetFloatv, "alGetFloatv"); + bindFunc(cast(void**)&alGetDoublev, "alGetDoublev"); + bindFunc(cast(void**)&alGetInteger, "alGetInteger"); + bindFunc(cast(void**)&alGetFloat, "alGetFloat"); + bindFunc(cast(void**)&alGetDouble, "alGetDouble"); + bindFunc(cast(void**)&alGetError, "alGetError"); + + bindFunc(cast(void**)&alIsExtensionPresent, "alIsExtensionPresent"); + bindFunc(cast(void**)&alGetProcAddress, "alGetProcAddress"); + bindFunc(cast(void**)&alGetEnumValue, "alGetEnumValue"); + + bindFunc(cast(void**)&alListenerf, "alListenerf"); + bindFunc(cast(void**)&alListener3f, "alListener3f"); + bindFunc(cast(void**)&alListenerfv, "alListenerfv"); + bindFunc(cast(void**)&alListeneri, "alListeneri"); + bindFunc(cast(void**)&alListener3i, "alListener3i"); + bindFunc(cast(void**)&alListeneriv, "alListeneriv"); + + bindFunc(cast(void**)&alGetListenerf, "alGetListenerf"); + bindFunc(cast(void**)&alGetListener3f, "alGetListener3f"); + bindFunc(cast(void**)&alGetListenerfv, "alGetListenerfv"); + bindFunc(cast(void**)&alGetListeneri, "alGetListeneri"); + bindFunc(cast(void**)&alGetListener3i, "alGetListener3i"); + bindFunc(cast(void**)&alGetListeneriv, "alGetListeneriv"); + + bindFunc(cast(void**)&alGenSources, "alGenSources"); + bindFunc(cast(void**)&alDeleteSources, "alDeleteSources"); + bindFunc(cast(void**)&alIsSource, "alIsSource"); + + bindFunc(cast(void**)&alSourcef, "alSourcef"); + bindFunc(cast(void**)&alSource3f, "alSource3f"); + bindFunc(cast(void**)&alSourcefv, "alSourcefv"); + bindFunc(cast(void**)&alSourcei, "alSourcei"); + bindFunc(cast(void**)&alSource3i, "alSource3i"); + bindFunc(cast(void**)&alSourceiv, "alSourceiv"); + + bindFunc(cast(void**)&alGetSourcef, "alGetSourcef"); + bindFunc(cast(void**)&alGetSource3f, "alGetSource3f"); + bindFunc(cast(void**)&alGetSourcefv, "alGetSourcefv"); + bindFunc(cast(void**)&alGetSourcei, "alGetSourcei"); + bindFunc(cast(void**)&alGetSourceiv, "alGetSourceiv"); + + bindFunc(cast(void**)&alSourcePlayv, "alSourcePlayv"); + bindFunc(cast(void**)&alSourceStopv, "alSourceStopv"); + bindFunc(cast(void**)&alSourceRewindv, "alSourceRewindv"); + bindFunc(cast(void**)&alSourcePausev, "alSourcePausev"); + bindFunc(cast(void**)&alSourcePlay, "alSourcePlay"); + bindFunc(cast(void**)&alSourcePause, "alSourcePause"); + bindFunc(cast(void**)&alSourceRewind, "alSourceRewind"); + bindFunc(cast(void**)&alSourceStop, "alSourceStop"); + + bindFunc(cast(void**)&alSourceQueueBuffers, "alSourceQueueBuffers"); + bindFunc(cast(void**)&alSourceUnqueueBuffers, "alSourceUnqueueBuffers"); + + bindFunc(cast(void**)&alGenBuffers, "alGenBuffers"); + bindFunc(cast(void**)&alDeleteBuffers, "alDeleteBuffers"); + bindFunc(cast(void**)&alIsBuffer, "alIsBuffer"); + bindFunc(cast(void**)&alBufferData, "alBufferData"); + + bindFunc(cast(void**)&alBufferf, "alBufferf"); + bindFunc(cast(void**)&alBuffer3f, "alBuffer3f"); + bindFunc(cast(void**)&alBufferfv, "alBufferfv"); + bindFunc(cast(void**)&alBufferi, "alBufferi"); + bindFunc(cast(void**)&alBuffer3i, "alBuffer3i"); + bindFunc(cast(void**)&alBufferiv, "alBufferiv"); + + bindFunc(cast(void**)&alGetBufferf, "alGetBufferf"); + bindFunc(cast(void**)&alGetBuffer3f, "alGetBuffer3f"); + bindFunc(cast(void**)&alGetBufferfv, "alGetBufferfv"); + bindFunc(cast(void**)&alGetBufferi, "alGetBufferi"); + bindFunc(cast(void**)&alGetBuffer3i, "alGetBuffer3i"); + bindFunc(cast(void**)&alGetBufferiv, "alGetBufferiv"); + + bindFunc(cast(void**)&alDopplerFactor, "alDopplerFactor"); + bindFunc(cast(void**)&alDopplerVelocity, "alDopplerVelocity"); + bindFunc(cast(void**)&alSpeedOfSound, "alSpeedOfSound"); + bindFunc(cast(void**)&alDistanceModel, "alDistanceModel"); + + bindFunc(cast(void**)&alcCreateContext, "alcCreateContext"); + bindFunc(cast(void**)&alcMakeContextCurrent, "alcMakeContextCurrent"); + bindFunc(cast(void**)&alcProcessContext, "alcProcessContext"); + bindFunc(cast(void**)&alcGetCurrentContext, "alcGetCurrentContext"); + bindFunc(cast(void**)&alcGetContextsDevice, "alcGetContextsDevice"); + bindFunc(cast(void**)&alcSuspendContext, "alcSuspendContext"); + bindFunc(cast(void**)&alcDestroyContext, "alcDestroyContext"); + bindFunc(cast(void**)&alcOpenDevice, "alcOpenDevice"); + bindFunc(cast(void**)&alcCloseDevice, "alcCloseDevice"); + bindFunc(cast(void**)&alcGetError, "alcGetError"); + bindFunc(cast(void**)&alcIsExtensionPresent, "alcIsExtensionPresent"); + bindFunc(cast(void**)&alcGetProcAddress, "alcGetProcAddress"); + bindFunc(cast(void**)&alcGetEnumValue, "alcGetEnumValue"); + bindFunc(cast(void**)&alcGetString, "alcGetString"); + bindFunc(cast(void**)&alcGetIntegerv, "alcGetIntegerv"); + bindFunc(cast(void**)&alcCaptureOpenDevice, "alcCaptureOpenDevice"); + bindFunc(cast(void**)&alcCaptureCloseDevice, "alcCaptureCloseDevice"); + bindFunc(cast(void**)&alcCaptureStart, "alcCaptureStart"); + bindFunc(cast(void**)&alcCaptureStop, "alcCaptureStop"); + bindFunc(cast(void**)&alcCaptureSamples, "alcCaptureSamples"); + } +} + +DerelictALLoader DerelictAL; + +static this() +{ + DerelictAL = new DerelictALLoader(); +} + +static ~this() +{ + if(SharedLibLoader.isAutoUnloadEnabled()) + DerelictAL.unload(); } \ No newline at end of file diff --git a/src/derelict/openal/alfuncs.d b/src/derelict/openal/alfuncs.d old mode 100755 new mode 100644 index e711e925..c03f91c9 --- a/src/derelict/openal/alfuncs.d +++ b/src/derelict/openal/alfuncs.d @@ -1,256 +1,256 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.openal.alfuncs; - -private -{ - import derelict.util.compat; - import derelict.openal.altypes; -} - -extern(C) -{ - alias void function(ALenum) da_alEnable; - alias void function(ALenum) da_alDisable; - alias ALboolean function(ALenum) da_alIsEnabled; - - alias CCPTR function(ALenum) da_alGetString; - alias void function(ALenum, ALboolean*) da_alGetBooleanv; - alias void function(ALenum, ALint*) da_alGetIntegerv; - alias void function(ALenum, ALfloat*) da_alGetFloatv; - alias void function(ALenum, ALdouble*) da_alGetDoublev; - alias ALboolean function(ALenum) da_alGetBoolean; - alias ALint function(ALenum) da_alGetInteger; - alias ALfloat function(ALenum) da_alGetFloat; - alias ALdouble function(ALenum) da_alGetDouble; - alias ALenum function() da_alGetError; - - alias ALboolean function(in char*) da_alIsExtensionPresent; - alias ALboolean function(in char*) da_alGetProcAddress; - alias ALenum function(in char*) da_alGetEnumValue; - - alias void function(ALenum, ALfloat) da_alListenerf; - alias void function(ALenum, ALfloat, ALfloat, ALfloat) da_alListener3f; - alias void function(ALenum, in ALfloat*) da_alListenerfv; - alias void function(ALenum, ALint) da_alListeneri; - alias void function(ALenum, ALint, ALint, ALint) da_alListener3i; - alias void function(ALenum, in ALint*) da_alListeneriv; - - alias void function(ALenum, ALfloat*) da_alGetListenerf; - alias void function(ALenum, ALfloat*, ALfloat*, ALfloat*) da_alGetListener3f; - alias void function(ALenum, ALfloat*) da_alGetListenerfv; - alias void function(ALenum, ALint*) da_alGetListeneri; - alias void function(ALenum, ALint*, ALint*, ALint*) da_alGetListener3i; - alias void function(ALenum, ALint*) da_alGetListeneriv; - - alias void function(ALsizei, ALuint*) da_alGenSources; - alias void function(ALsizei, in ALuint*) da_alDeleteSources; - alias ALboolean function(ALuint) da_alIsSource; - - alias void function(ALuint, ALenum, ALfloat) da_alSourcef; - alias void function(ALuint, ALenum, ALfloat, ALfloat, ALfloat) da_alSource3f; - alias void function(ALuint, ALenum, in ALfloat*) da_alSourcefv; - alias void function(ALuint, ALenum, ALint) da_alSourcei; - alias void function(ALuint, ALenum, ALint, ALint, ALint) da_alSource3i; - alias void function(ALuint, ALenum, in ALint*) da_alSourceiv; - - alias void function(ALuint, ALenum, ALfloat*) da_alGetSourcef; - alias void function(ALuint, ALenum, ALfloat*, ALfloat*, ALfloat*) da_alGetSource3f; - alias void function(ALuint, ALenum, ALfloat*) da_alGetSourcefv; - alias void function(ALuint, ALenum, ALint*) da_alGetSourcei; - alias void function(ALuint, ALenum, ALint*, ALint*, ALint*) da_alGetSource3i; - alias void function(ALuint, ALenum, ALint*) da_alGetSourceiv; - - alias void function(ALsizei, in ALuint*) da_alSourcePlayv; - alias void function(ALsizei, in ALuint*) da_alSourceStopv; - alias void function(ALsizei, in ALuint*) da_alSourceRewindv; - alias void function(ALsizei, in ALuint*) da_alSourcePausev; - alias void function(ALuint) da_alSourcePlay; - alias void function(ALuint) da_alSourcePause; - alias void function(ALuint) da_alSourceRewind; - alias void function(ALuint) da_alSourceStop; - - alias void function(ALuint, ALsizei, ALuint*) da_alSourceQueueBuffers; - alias void function(ALuint, ALsizei, ALuint*) da_alSourceUnqueueBuffers; - - alias void function(ALsizei, ALuint*) da_alGenBuffers; - alias void function(ALsizei, in ALuint*) da_alDeleteBuffers; - alias ALboolean function(ALuint) da_alIsBuffer; - alias void function(ALuint, ALenum, in ALvoid*, ALsizei, ALsizei) da_alBufferData; - - alias void function(ALuint, ALenum, ALfloat) da_alBufferf; - alias void function(ALuint, ALenum, ALfloat, ALfloat, ALfloat) da_alBuffer3f; - alias void function(ALuint, ALenum, in ALfloat*) da_alBufferfv; - alias void function(ALuint, ALenum, ALint) da_alBufferi; - alias void function(ALuint, ALenum, ALint, ALint, ALint) da_alBuffer3i; - alias void function(ALuint, ALenum, in ALint*) da_alBufferiv; - - alias void function(ALuint, ALenum, ALfloat*) da_alGetBufferf; - alias void function(ALuint, ALenum, ALfloat*, ALfloat*, ALfloat*) da_alGetBuffer3f; - alias void function(ALuint, ALenum, ALfloat*) da_alGetBufferfv; - alias void function(ALuint, ALenum, ALint*) da_alGetBufferi; - alias void function(ALuint, ALenum, ALint*, ALint*, ALint*) da_alGetBuffer3i; - alias void function(ALuint, ALenum, ALint*) da_alGetBufferiv; - - alias void function(ALfloat) da_alDopplerFactor; - alias void function(ALfloat) da_alDopplerVelocity; - alias void function(ALfloat) da_alSpeedOfSound; - alias void function(ALenum) da_alDistanceModel; - - alias ALCcontext* function(ALCdevice*, in ALCint*) da_alcCreateContext; - alias ALCboolean function(ALCcontext*) da_alcMakeContextCurrent; - alias void function(ALCcontext*) da_alcProcessContext; - alias void function(ALCcontext*) da_alcSuspendContext; - alias void function(ALCcontext*) da_alcDestroyContext; - alias ALCcontext* function() da_alcGetCurrentContext; - alias ALCdevice* function(ALCcontext*) da_alcGetContextsDevice; - alias ALCdevice* function(in char*) da_alcOpenDevice; - alias ALCboolean function(ALCdevice*) da_alcCloseDevice; - alias ALCenum function(ALCdevice*) da_alcGetError; - alias ALCboolean function(ALCdevice*, in char*) da_alcIsExtensionPresent; - alias void* function(ALCdevice*, in char*) da_alcGetProcAddress; - alias ALCenum function(ALCdevice*, in char*) da_alcGetEnumValue; - alias CCPTR function(ALCdevice*, ALCenum) da_alcGetString; - alias void function(ALCdevice*, ALCenum, ALCsizei, ALCint*) da_alcGetIntegerv; - alias ALCdevice* function(in char*, ALCuint, ALCenum, ALCsizei) da_alcCaptureOpenDevice; - alias ALCboolean function(ALCdevice*) da_alcCaptureCloseDevice; - alias void function(ALCdevice*) da_alcCaptureStart; - alias void function(ALCdevice*) da_alcCaptureStop; - alias void function(ALCdevice*, ALCvoid*, ALCsizei) da_alcCaptureSamples; -} - -mixin(gsharedString!() ~ -" -da_alEnable alEnable; -da_alDisable alDisable; -da_alIsEnabled alIsEnabled; - -da_alGetString alGetString; -da_alGetBooleanv alGetBooleanv; -da_alGetIntegerv alGetIntegerv; -da_alGetFloatv alGetFloatv; -da_alGetDoublev alGetDoublev; -da_alGetBoolean alGetBoolean; -da_alGetInteger alGetInteger; -da_alGetFloat alGetFloat; -da_alGetDouble alGetDouble; -da_alGetError alGetError; - -da_alIsExtensionPresent alIsExtensionPresent; -da_alGetProcAddress alGetProcAddress; -da_alGetEnumValue alGetEnumValue; - -da_alListenerf alListenerf; -da_alListener3f alListener3f; -da_alListenerfv alListenerfv; -da_alListeneri alListeneri; -da_alListener3i alListener3i; -da_alListeneriv alListeneriv; - -da_alGetListenerf alGetListenerf; -da_alGetListener3f alGetListener3f; -da_alGetListenerfv alGetListenerfv; -da_alGetListeneri alGetListeneri; -da_alGetListener3i alGetListener3i; -da_alGetListeneriv alGetListeneriv; - -da_alGenSources alGenSources; -da_alDeleteSources alDeleteSources; -da_alIsSource alIsSource; - -da_alSourcef alSourcef; -da_alSource3f alSource3f; -da_alSourcefv alSourcefv; -da_alSourcei alSourcei; -da_alSource3i alSource3i; -da_alSourceiv alSourceiv; - - -da_alGetSourcef alGetSourcef; -da_alGetSource3f alGetSource3f; -da_alGetSourcefv alGetSourcefv; -da_alGetSourcei alGetSourcei; -da_alGetSource3i alGetSource3i; -da_alGetSourceiv alGetSourceiv; - -da_alSourcePlayv alSourcePlayv; -da_alSourceStopv alSourceStopv; -da_alSourceRewindv alSourceRewindv; -da_alSourcePausev alSourcePausev; -da_alSourcePlay alSourcePlay; -da_alSourcePause alSourcePause; -da_alSourceRewind alSourceRewind; -da_alSourceStop alSourceStop; - -da_alSourceQueueBuffers alSourceQueueBuffers; -da_alSourceUnqueueBuffers alSourceUnqueueBuffers; - -da_alGenBuffers alGenBuffers; -da_alDeleteBuffers alDeleteBuffers; -da_alIsBuffer alIsBuffer; -da_alBufferData alBufferData; - -da_alBufferf alBufferf; -da_alBuffer3f alBuffer3f; -da_alBufferfv alBufferfv; -da_alBufferi alBufferi; -da_alBuffer3i alBuffer3i; -da_alBufferiv alBufferiv; -da_alGetBufferf alGetBufferf; -da_alGetBuffer3f alGetBuffer3f; -da_alGetBufferfv alGetBufferfv; -da_alGetBufferi alGetBufferi; -da_alGetBuffer3i alGetBuffer3i; -da_alGetBufferiv alGetBufferiv; - -da_alDopplerFactor alDopplerFactor; -da_alDopplerVelocity alDopplerVelocity; -da_alSpeedOfSound alSpeedOfSound; -da_alDistanceModel alDistanceModel; - -da_alcCreateContext alcCreateContext; -da_alcMakeContextCurrent alcMakeContextCurrent; -da_alcProcessContext alcProcessContext; -da_alcSuspendContext alcSuspendContext; -da_alcDestroyContext alcDestroyContext; -da_alcGetCurrentContext alcGetCurrentContext; -da_alcGetContextsDevice alcGetContextsDevice; -da_alcOpenDevice alcOpenDevice; -da_alcCloseDevice alcCloseDevice; -da_alcGetError alcGetError; -da_alcIsExtensionPresent alcIsExtensionPresent; -da_alcGetProcAddress alcGetProcAddress; -da_alcGetEnumValue alcGetEnumValue; -da_alcGetString alcGetString; -da_alcGetIntegerv alcGetIntegerv; -da_alcCaptureOpenDevice alcCaptureOpenDevice; -da_alcCaptureCloseDevice alcCaptureCloseDevice; -da_alcCaptureStart alcCaptureStart; -da_alcCaptureStop alcCaptureStop; -da_alcCaptureSamples alcCaptureSamples; +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.openal.alfuncs; + +private +{ + import derelict.util.compat; + import derelict.openal.altypes; +} + +extern(C) +{ + alias void function(ALenum) da_alEnable; + alias void function(ALenum) da_alDisable; + alias ALboolean function(ALenum) da_alIsEnabled; + + alias CCPTR function(ALenum) da_alGetString; + alias void function(ALenum, ALboolean*) da_alGetBooleanv; + alias void function(ALenum, ALint*) da_alGetIntegerv; + alias void function(ALenum, ALfloat*) da_alGetFloatv; + alias void function(ALenum, ALdouble*) da_alGetDoublev; + alias ALboolean function(ALenum) da_alGetBoolean; + alias ALint function(ALenum) da_alGetInteger; + alias ALfloat function(ALenum) da_alGetFloat; + alias ALdouble function(ALenum) da_alGetDouble; + alias ALenum function() da_alGetError; + + alias ALboolean function(in char*) da_alIsExtensionPresent; + alias ALboolean function(in char*) da_alGetProcAddress; + alias ALenum function(in char*) da_alGetEnumValue; + + alias void function(ALenum, ALfloat) da_alListenerf; + alias void function(ALenum, ALfloat, ALfloat, ALfloat) da_alListener3f; + alias void function(ALenum, in ALfloat*) da_alListenerfv; + alias void function(ALenum, ALint) da_alListeneri; + alias void function(ALenum, ALint, ALint, ALint) da_alListener3i; + alias void function(ALenum, in ALint*) da_alListeneriv; + + alias void function(ALenum, ALfloat*) da_alGetListenerf; + alias void function(ALenum, ALfloat*, ALfloat*, ALfloat*) da_alGetListener3f; + alias void function(ALenum, ALfloat*) da_alGetListenerfv; + alias void function(ALenum, ALint*) da_alGetListeneri; + alias void function(ALenum, ALint*, ALint*, ALint*) da_alGetListener3i; + alias void function(ALenum, ALint*) da_alGetListeneriv; + + alias void function(ALsizei, ALuint*) da_alGenSources; + alias void function(ALsizei, in ALuint*) da_alDeleteSources; + alias ALboolean function(ALuint) da_alIsSource; + + alias void function(ALuint, ALenum, ALfloat) da_alSourcef; + alias void function(ALuint, ALenum, ALfloat, ALfloat, ALfloat) da_alSource3f; + alias void function(ALuint, ALenum, in ALfloat*) da_alSourcefv; + alias void function(ALuint, ALenum, ALint) da_alSourcei; + alias void function(ALuint, ALenum, ALint, ALint, ALint) da_alSource3i; + alias void function(ALuint, ALenum, in ALint*) da_alSourceiv; + + alias void function(ALuint, ALenum, ALfloat*) da_alGetSourcef; + alias void function(ALuint, ALenum, ALfloat*, ALfloat*, ALfloat*) da_alGetSource3f; + alias void function(ALuint, ALenum, ALfloat*) da_alGetSourcefv; + alias void function(ALuint, ALenum, ALint*) da_alGetSourcei; + alias void function(ALuint, ALenum, ALint*, ALint*, ALint*) da_alGetSource3i; + alias void function(ALuint, ALenum, ALint*) da_alGetSourceiv; + + alias void function(ALsizei, in ALuint*) da_alSourcePlayv; + alias void function(ALsizei, in ALuint*) da_alSourceStopv; + alias void function(ALsizei, in ALuint*) da_alSourceRewindv; + alias void function(ALsizei, in ALuint*) da_alSourcePausev; + alias void function(ALuint) da_alSourcePlay; + alias void function(ALuint) da_alSourcePause; + alias void function(ALuint) da_alSourceRewind; + alias void function(ALuint) da_alSourceStop; + + alias void function(ALuint, ALsizei, ALuint*) da_alSourceQueueBuffers; + alias void function(ALuint, ALsizei, ALuint*) da_alSourceUnqueueBuffers; + + alias void function(ALsizei, ALuint*) da_alGenBuffers; + alias void function(ALsizei, in ALuint*) da_alDeleteBuffers; + alias ALboolean function(ALuint) da_alIsBuffer; + alias void function(ALuint, ALenum, in ALvoid*, ALsizei, ALsizei) da_alBufferData; + + alias void function(ALuint, ALenum, ALfloat) da_alBufferf; + alias void function(ALuint, ALenum, ALfloat, ALfloat, ALfloat) da_alBuffer3f; + alias void function(ALuint, ALenum, in ALfloat*) da_alBufferfv; + alias void function(ALuint, ALenum, ALint) da_alBufferi; + alias void function(ALuint, ALenum, ALint, ALint, ALint) da_alBuffer3i; + alias void function(ALuint, ALenum, in ALint*) da_alBufferiv; + + alias void function(ALuint, ALenum, ALfloat*) da_alGetBufferf; + alias void function(ALuint, ALenum, ALfloat*, ALfloat*, ALfloat*) da_alGetBuffer3f; + alias void function(ALuint, ALenum, ALfloat*) da_alGetBufferfv; + alias void function(ALuint, ALenum, ALint*) da_alGetBufferi; + alias void function(ALuint, ALenum, ALint*, ALint*, ALint*) da_alGetBuffer3i; + alias void function(ALuint, ALenum, ALint*) da_alGetBufferiv; + + alias void function(ALfloat) da_alDopplerFactor; + alias void function(ALfloat) da_alDopplerVelocity; + alias void function(ALfloat) da_alSpeedOfSound; + alias void function(ALenum) da_alDistanceModel; + + alias ALCcontext* function(ALCdevice*, in ALCint*) da_alcCreateContext; + alias ALCboolean function(ALCcontext*) da_alcMakeContextCurrent; + alias void function(ALCcontext*) da_alcProcessContext; + alias void function(ALCcontext*) da_alcSuspendContext; + alias void function(ALCcontext*) da_alcDestroyContext; + alias ALCcontext* function() da_alcGetCurrentContext; + alias ALCdevice* function(ALCcontext*) da_alcGetContextsDevice; + alias ALCdevice* function(in char*) da_alcOpenDevice; + alias ALCboolean function(ALCdevice*) da_alcCloseDevice; + alias ALCenum function(ALCdevice*) da_alcGetError; + alias ALCboolean function(ALCdevice*, in char*) da_alcIsExtensionPresent; + alias void* function(ALCdevice*, in char*) da_alcGetProcAddress; + alias ALCenum function(ALCdevice*, in char*) da_alcGetEnumValue; + alias CCPTR function(ALCdevice*, ALCenum) da_alcGetString; + alias void function(ALCdevice*, ALCenum, ALCsizei, ALCint*) da_alcGetIntegerv; + alias ALCdevice* function(in char*, ALCuint, ALCenum, ALCsizei) da_alcCaptureOpenDevice; + alias ALCboolean function(ALCdevice*) da_alcCaptureCloseDevice; + alias void function(ALCdevice*) da_alcCaptureStart; + alias void function(ALCdevice*) da_alcCaptureStop; + alias void function(ALCdevice*, ALCvoid*, ALCsizei) da_alcCaptureSamples; +} + +mixin(gsharedString!() ~ +" +da_alEnable alEnable; +da_alDisable alDisable; +da_alIsEnabled alIsEnabled; + +da_alGetString alGetString; +da_alGetBooleanv alGetBooleanv; +da_alGetIntegerv alGetIntegerv; +da_alGetFloatv alGetFloatv; +da_alGetDoublev alGetDoublev; +da_alGetBoolean alGetBoolean; +da_alGetInteger alGetInteger; +da_alGetFloat alGetFloat; +da_alGetDouble alGetDouble; +da_alGetError alGetError; + +da_alIsExtensionPresent alIsExtensionPresent; +da_alGetProcAddress alGetProcAddress; +da_alGetEnumValue alGetEnumValue; + +da_alListenerf alListenerf; +da_alListener3f alListener3f; +da_alListenerfv alListenerfv; +da_alListeneri alListeneri; +da_alListener3i alListener3i; +da_alListeneriv alListeneriv; + +da_alGetListenerf alGetListenerf; +da_alGetListener3f alGetListener3f; +da_alGetListenerfv alGetListenerfv; +da_alGetListeneri alGetListeneri; +da_alGetListener3i alGetListener3i; +da_alGetListeneriv alGetListeneriv; + +da_alGenSources alGenSources; +da_alDeleteSources alDeleteSources; +da_alIsSource alIsSource; + +da_alSourcef alSourcef; +da_alSource3f alSource3f; +da_alSourcefv alSourcefv; +da_alSourcei alSourcei; +da_alSource3i alSource3i; +da_alSourceiv alSourceiv; + + +da_alGetSourcef alGetSourcef; +da_alGetSource3f alGetSource3f; +da_alGetSourcefv alGetSourcefv; +da_alGetSourcei alGetSourcei; +da_alGetSource3i alGetSource3i; +da_alGetSourceiv alGetSourceiv; + +da_alSourcePlayv alSourcePlayv; +da_alSourceStopv alSourceStopv; +da_alSourceRewindv alSourceRewindv; +da_alSourcePausev alSourcePausev; +da_alSourcePlay alSourcePlay; +da_alSourcePause alSourcePause; +da_alSourceRewind alSourceRewind; +da_alSourceStop alSourceStop; + +da_alSourceQueueBuffers alSourceQueueBuffers; +da_alSourceUnqueueBuffers alSourceUnqueueBuffers; + +da_alGenBuffers alGenBuffers; +da_alDeleteBuffers alDeleteBuffers; +da_alIsBuffer alIsBuffer; +da_alBufferData alBufferData; + +da_alBufferf alBufferf; +da_alBuffer3f alBuffer3f; +da_alBufferfv alBufferfv; +da_alBufferi alBufferi; +da_alBuffer3i alBuffer3i; +da_alBufferiv alBufferiv; +da_alGetBufferf alGetBufferf; +da_alGetBuffer3f alGetBuffer3f; +da_alGetBufferfv alGetBufferfv; +da_alGetBufferi alGetBufferi; +da_alGetBuffer3i alGetBuffer3i; +da_alGetBufferiv alGetBufferiv; + +da_alDopplerFactor alDopplerFactor; +da_alDopplerVelocity alDopplerVelocity; +da_alSpeedOfSound alSpeedOfSound; +da_alDistanceModel alDistanceModel; + +da_alcCreateContext alcCreateContext; +da_alcMakeContextCurrent alcMakeContextCurrent; +da_alcProcessContext alcProcessContext; +da_alcSuspendContext alcSuspendContext; +da_alcDestroyContext alcDestroyContext; +da_alcGetCurrentContext alcGetCurrentContext; +da_alcGetContextsDevice alcGetContextsDevice; +da_alcOpenDevice alcOpenDevice; +da_alcCloseDevice alcCloseDevice; +da_alcGetError alcGetError; +da_alcIsExtensionPresent alcIsExtensionPresent; +da_alcGetProcAddress alcGetProcAddress; +da_alcGetEnumValue alcGetEnumValue; +da_alcGetString alcGetString; +da_alcGetIntegerv alcGetIntegerv; +da_alcCaptureOpenDevice alcCaptureOpenDevice; +da_alcCaptureCloseDevice alcCaptureCloseDevice; +da_alcCaptureStart alcCaptureStart; +da_alcCaptureStop alcCaptureStop; +da_alcCaptureSamples alcCaptureSamples; "); \ No newline at end of file diff --git a/src/derelict/openal/altypes.d b/src/derelict/openal/altypes.d old mode 100755 new mode 100644 index 6d3e86c5..7905af99 --- a/src/derelict/openal/altypes.d +++ b/src/derelict/openal/altypes.d @@ -1,253 +1,253 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.openal.altypes; - -// al -enum : bool -{ - AL_VERSION_1_0 = true, - AL_VERSION_1_1 = true, -} - -alias byte ALboolean; -alias char ALchar; -alias byte ALbyte; -alias ubyte ALubyte; -alias short ALshort; -alias ushort ALushort; -alias int ALint; -alias uint ALuint; -alias int ALsizei; -alias int ALenum; -alias float ALfloat; -alias double ALdouble; -alias void ALvoid; - -enum : ALboolean -{ - AL_FALSE = 0, - AL_TRUE = 1, -} - -enum : ALenum -{ - AL_INVALID = -1, - AL_NONE = 0, - - AL_SOURCE_RELATIVE = 0x202, - - AL_CONE_INNER_ANGLE = 0x1001, - AL_CONE_OUTER_ANGLE = 0x1002, - - AL_PITCH = 0x1003, - AL_POSITION = 0x1004, - AL_DIRECTION = 0x1005, - AL_VELOCITY = 0x1006, - AL_LOOPING = 0x1007, - AL_BUFFER = 0x1009, - AL_GAIN = 0x100A, - AL_MIN_GAIN = 0x100D, - AL_MAX_GAIN = 0x100E, - AL_ORIENTATION = 0x100F, - - AL_CHANNEL_MASK = 0x3000, - - AL_SOURCE_STATE = 0x1010, - AL_INITIAL = 0x1011, - AL_PLAYING = 0x1012, - AL_PAUSED = 0x1013, - AL_STOPPED = 0x1014, - - AL_BUFFERS_QUEUED = 0x1015, - AL_BUFFERS_PROCESSED = 0x1016, - - AL_REFERENCE_DISTANCE = 0x1020, - AL_ROLLOFF_FACTOR = 0x1021, - AL_CONE_OUTER_GAIN = 0x1022, - AL_MAX_DISTANCE = 0x1023, - - AL_SEC_OFFSET = 0x1024, - AL_SAMPLE_OFFSET = 0x1025, - AL_BYTE_OFFSET = 0x1026, - - AL_SOURCE_TYPE = 0x1027, - AL_STATIC = 0x1028, - AL_STREAMING = 0x1029, - AL_UNDETERMINED = 0x1030, - - AL_FORMAT_MONO8 = 0x1100, - AL_FORMAT_MONO16 = 0x1101, - AL_FORMAT_STEREO8 = 0x1102, - AL_FORMAT_STEREO16 = 0x1103, - - AL_FREQUENCEY = 0x2001, - AL_BITS = 0x2002, - AL_CHANNELS = 0x2003, - AL_SIZE = 0x2004, - - AL_UNUSED = 0x2010, - AL_PENDING = 0x2011, - AL_PROCESSID = 0x2012, - - AL_NO_ERROR = AL_FALSE, - - AL_INVALID_NAME = 0xA001, - AL_INVALID_ENUM = 0xA002, - AL_INVALID_VALUE = 0xA003, - AL_INVALID_OPERATION = 0xA004, - AL_OUT_OF_MEMORY = 0xA005, - - AL_VENDOR = 0xB001, - AL_VERSION = 0xB002, - AL_RENDERER = 0xB003, - AL_EXTENSIONS = 0xB004, - - AL_DOPPLER_FACTOR = 0xC000, - AL_DOPPLER_VELOCITY = 0xC001, - AL_SPEED_OF_SOUND = 0xC003, - - AL_DISTANCE_MODEL = 0xD000, - AL_INVERSE_DISTANCE = 0xD001, - AL_INVERSE_DISTANCE_CLAMPED = 0xD002, - AL_LINEAR_DISTANCE = 0xD003, - AL_LINEAR_DISTANCE_CLAMPED = 0xD004, - AL_EXPONENT_DISTANCE = 0xD005, - AL_EXPONENT_DISTANCE_CLAMPED = 0xD006, -} - -// alc -enum : bool -{ - ALC_VERSION_0_1 = true -} - -alias void ALCdevice; -alias void ALCcontext; - -alias byte ALCboolean; -alias char ALCchar; -alias byte ALCbyte; -alias ubyte ALCubyte; -alias short ALCshort; -alias ushort ALCushort; -alias int ALCint; -alias uint ALCuint; -alias int ALCsizei; -alias int ALCenum; -alias float ALCfloat; -alias double ALCdouble; -alias void ALCvoid; - -enum : ALCboolean -{ - ALC_FALSE = 0, - ALC_TRUE = 1, -} - -enum : ALCenum -{ - ALC_FREQUENCY = 0x1007, - ALC_REFRESH = 0x1008, - ALC_SYNC = 0x1009, - - ALC_MONO_SOURCES = 0x1010, - ALC_STEREO_SOURCES = 0x1011, - - ALC_NO_ERROR = ALC_FALSE, - ALC_INVALID_DEVICE = 0xA001, - ALC_INVALID_CONTEXT = 0xA002, - ALC_INVALID_ENUM = 0xA003, - ALC_INVALID_VALUE = 0xA004, - ALC_OUT_OF_MEMORY = 0xA005, - - ALC_DEFAULT_DEVICE_SPECIFIER = 0x1004, - ALC_DEVICE_SPECIFIER = 0x1005, - ALC_EXTENSIONS = 0x1006, - - ALC_MAJOR_VERSION = 0x1000, - ALC_MINOR_VERSION = 0x1001, - - ALC_ATTRIBUTES_SIZE = 0x1002, - ALC_ALL_ATTRIBUTES = 0x1003, - - ALC_CAPTURE_DEVICE_SPECIFIER = 0x310, - ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER = 0x311, - ALC_CAPTURE_SAMPLES = 0x312, -} - -// alext -enum : ALenum -{ - // AL_LOKI_IMA_ADPCM_format - AL_FORMAT_IMA_ADPCM_MONO16_EXT = 0x10000, - AL_FORMAT_IMA_ADPCM_STEREO16_EXT = 0x10001, - - // AL_LOKI_WAVE_format - AL_FORMAT_WAVE_EXT = 0x10002, - - // AL_EXT_vorbis - AL_FORMAT_VORBIS_EXT = 0x10003, - - // AL_LOKI_quadriphonic - AL_FORMAT_QUAD8_LOKI = 0x10004, - AL_FORMAT_QUAD16_LOKI = 0x10005, - - // AL_EXT_float32 - AL_FORMAT_MONO_FLOAT32 = 0x10010, - AL_FORMAT_STEREO_FLOAT32 = 0x10011, - - // ALC_LOKI_audio_channel - ALC_CHAN_MAIN_LOKI = 0x500001, - ALC_CHAN_PCM_LOKI = 0x500002, - ALC_CHAN_CD_LOKI = 0x500003, - - // ALC_ENUMERATE_ALL_EXT - ALC_DEFAULT_ALL_DEVICES_SPECIFIER = 0x1012, - ALC_ALL_DEVICES_SPECIFIER = 0x1013, - - // AL_EXT_MCFORMATS - AL_FORMAT_QUAD8 = 0x1204, - AL_FORMAT_QUAD16 = 0x1205, - AL_FORMAT_QUAD32 = 0x1206, - AL_FORMAT_REAR8 = 0x1207, - AL_FORMAT_REAR16 = 0x1208, - AL_FORMAT_REAR32 = 0x1209, - AL_FORMAT_51CHN8 = 0x120A, - AL_FORMAT_51CHN16 = 0x120B, - AL_FORMAT_51CHN32 = 0x120C, - AL_FORMAT_61CHN8 = 0x120D, - AL_FORMAT_61CHN16 = 0x120E, - AL_FORMAT_61CHN32 = 0x120F, - AL_FORMAT_71CHN8 = 0x1210, - AL_FORMAT_71CHN16 = 0x1211, - AL_FORMAT_71CHN32 = 0x1212, - - // AL_EXT_IMA4 - AL_FORMAT_MONO_IMA4 = 0x1300, - AL_FORMAT_STEREO_IMA4 = 0x1301, +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.openal.altypes; + +// al +enum : bool +{ + AL_VERSION_1_0 = true, + AL_VERSION_1_1 = true, +} + +alias byte ALboolean; +alias char ALchar; +alias byte ALbyte; +alias ubyte ALubyte; +alias short ALshort; +alias ushort ALushort; +alias int ALint; +alias uint ALuint; +alias int ALsizei; +alias int ALenum; +alias float ALfloat; +alias double ALdouble; +alias void ALvoid; + +enum : ALboolean +{ + AL_FALSE = 0, + AL_TRUE = 1, +} + +enum : ALenum +{ + AL_INVALID = -1, + AL_NONE = 0, + + AL_SOURCE_RELATIVE = 0x202, + + AL_CONE_INNER_ANGLE = 0x1001, + AL_CONE_OUTER_ANGLE = 0x1002, + + AL_PITCH = 0x1003, + AL_POSITION = 0x1004, + AL_DIRECTION = 0x1005, + AL_VELOCITY = 0x1006, + AL_LOOPING = 0x1007, + AL_BUFFER = 0x1009, + AL_GAIN = 0x100A, + AL_MIN_GAIN = 0x100D, + AL_MAX_GAIN = 0x100E, + AL_ORIENTATION = 0x100F, + + AL_CHANNEL_MASK = 0x3000, + + AL_SOURCE_STATE = 0x1010, + AL_INITIAL = 0x1011, + AL_PLAYING = 0x1012, + AL_PAUSED = 0x1013, + AL_STOPPED = 0x1014, + + AL_BUFFERS_QUEUED = 0x1015, + AL_BUFFERS_PROCESSED = 0x1016, + + AL_REFERENCE_DISTANCE = 0x1020, + AL_ROLLOFF_FACTOR = 0x1021, + AL_CONE_OUTER_GAIN = 0x1022, + AL_MAX_DISTANCE = 0x1023, + + AL_SEC_OFFSET = 0x1024, + AL_SAMPLE_OFFSET = 0x1025, + AL_BYTE_OFFSET = 0x1026, + + AL_SOURCE_TYPE = 0x1027, + AL_STATIC = 0x1028, + AL_STREAMING = 0x1029, + AL_UNDETERMINED = 0x1030, + + AL_FORMAT_MONO8 = 0x1100, + AL_FORMAT_MONO16 = 0x1101, + AL_FORMAT_STEREO8 = 0x1102, + AL_FORMAT_STEREO16 = 0x1103, + + AL_FREQUENCEY = 0x2001, + AL_BITS = 0x2002, + AL_CHANNELS = 0x2003, + AL_SIZE = 0x2004, + + AL_UNUSED = 0x2010, + AL_PENDING = 0x2011, + AL_PROCESSID = 0x2012, + + AL_NO_ERROR = AL_FALSE, + + AL_INVALID_NAME = 0xA001, + AL_INVALID_ENUM = 0xA002, + AL_INVALID_VALUE = 0xA003, + AL_INVALID_OPERATION = 0xA004, + AL_OUT_OF_MEMORY = 0xA005, + + AL_VENDOR = 0xB001, + AL_VERSION = 0xB002, + AL_RENDERER = 0xB003, + AL_EXTENSIONS = 0xB004, + + AL_DOPPLER_FACTOR = 0xC000, + AL_DOPPLER_VELOCITY = 0xC001, + AL_SPEED_OF_SOUND = 0xC003, + + AL_DISTANCE_MODEL = 0xD000, + AL_INVERSE_DISTANCE = 0xD001, + AL_INVERSE_DISTANCE_CLAMPED = 0xD002, + AL_LINEAR_DISTANCE = 0xD003, + AL_LINEAR_DISTANCE_CLAMPED = 0xD004, + AL_EXPONENT_DISTANCE = 0xD005, + AL_EXPONENT_DISTANCE_CLAMPED = 0xD006, +} + +// alc +enum : bool +{ + ALC_VERSION_0_1 = true +} + +alias void ALCdevice; +alias void ALCcontext; + +alias byte ALCboolean; +alias char ALCchar; +alias byte ALCbyte; +alias ubyte ALCubyte; +alias short ALCshort; +alias ushort ALCushort; +alias int ALCint; +alias uint ALCuint; +alias int ALCsizei; +alias int ALCenum; +alias float ALCfloat; +alias double ALCdouble; +alias void ALCvoid; + +enum : ALCboolean +{ + ALC_FALSE = 0, + ALC_TRUE = 1, +} + +enum : ALCenum +{ + ALC_FREQUENCY = 0x1007, + ALC_REFRESH = 0x1008, + ALC_SYNC = 0x1009, + + ALC_MONO_SOURCES = 0x1010, + ALC_STEREO_SOURCES = 0x1011, + + ALC_NO_ERROR = ALC_FALSE, + ALC_INVALID_DEVICE = 0xA001, + ALC_INVALID_CONTEXT = 0xA002, + ALC_INVALID_ENUM = 0xA003, + ALC_INVALID_VALUE = 0xA004, + ALC_OUT_OF_MEMORY = 0xA005, + + ALC_DEFAULT_DEVICE_SPECIFIER = 0x1004, + ALC_DEVICE_SPECIFIER = 0x1005, + ALC_EXTENSIONS = 0x1006, + + ALC_MAJOR_VERSION = 0x1000, + ALC_MINOR_VERSION = 0x1001, + + ALC_ATTRIBUTES_SIZE = 0x1002, + ALC_ALL_ATTRIBUTES = 0x1003, + + ALC_CAPTURE_DEVICE_SPECIFIER = 0x310, + ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER = 0x311, + ALC_CAPTURE_SAMPLES = 0x312, +} + +// alext +enum : ALenum +{ + // AL_LOKI_IMA_ADPCM_format + AL_FORMAT_IMA_ADPCM_MONO16_EXT = 0x10000, + AL_FORMAT_IMA_ADPCM_STEREO16_EXT = 0x10001, + + // AL_LOKI_WAVE_format + AL_FORMAT_WAVE_EXT = 0x10002, + + // AL_EXT_vorbis + AL_FORMAT_VORBIS_EXT = 0x10003, + + // AL_LOKI_quadriphonic + AL_FORMAT_QUAD8_LOKI = 0x10004, + AL_FORMAT_QUAD16_LOKI = 0x10005, + + // AL_EXT_float32 + AL_FORMAT_MONO_FLOAT32 = 0x10010, + AL_FORMAT_STEREO_FLOAT32 = 0x10011, + + // ALC_LOKI_audio_channel + ALC_CHAN_MAIN_LOKI = 0x500001, + ALC_CHAN_PCM_LOKI = 0x500002, + ALC_CHAN_CD_LOKI = 0x500003, + + // ALC_ENUMERATE_ALL_EXT + ALC_DEFAULT_ALL_DEVICES_SPECIFIER = 0x1012, + ALC_ALL_DEVICES_SPECIFIER = 0x1013, + + // AL_EXT_MCFORMATS + AL_FORMAT_QUAD8 = 0x1204, + AL_FORMAT_QUAD16 = 0x1205, + AL_FORMAT_QUAD32 = 0x1206, + AL_FORMAT_REAR8 = 0x1207, + AL_FORMAT_REAR16 = 0x1208, + AL_FORMAT_REAR32 = 0x1209, + AL_FORMAT_51CHN8 = 0x120A, + AL_FORMAT_51CHN16 = 0x120B, + AL_FORMAT_51CHN32 = 0x120C, + AL_FORMAT_61CHN8 = 0x120D, + AL_FORMAT_61CHN16 = 0x120E, + AL_FORMAT_61CHN32 = 0x120F, + AL_FORMAT_71CHN8 = 0x1210, + AL_FORMAT_71CHN16 = 0x1211, + AL_FORMAT_71CHN32 = 0x1212, + + // AL_EXT_IMA4 + AL_FORMAT_MONO_IMA4 = 0x1300, + AL_FORMAT_STEREO_IMA4 = 0x1301, } \ No newline at end of file diff --git a/src/derelict/opengl/cgl.d b/src/derelict/opengl/cgl.d old mode 100755 new mode 100644 index 7a4da552..7b7f1420 --- a/src/derelict/opengl/cgl.d +++ b/src/derelict/opengl/cgl.d @@ -1,446 +1,446 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.opengl.cgl; - -// Original version: 2008-04-03 by Hugues De Keyzer - -// Original C headers: -// OpenGL.h -// CGLTypes.h -// CGLCurrent.h -// from /System/Library/Frameworks/OpenGL.framework/Headers from Mac OS X 10.4 - -version(darwin) -{ - version = CGL; -} -else version(OSX) -{ - version = CGL; -} - -version (CGL) -{ - - private - { - import derelict.opengl.gltypes; - import derelict.util.compat; - import derelict.util.loader; - } - - /* - ** CGLContext structure. - */ - struct _CGLContextObject {} - - struct _CGLPixelFormatObject {} - struct _CGLRendererInfoObject {} - struct _CGLPBufferObject {} - - /* - ** CGL opaque data. - */ - alias _CGLContextObject* CGLContextObj; - alias _CGLPixelFormatObject* CGLPixelFormatObj; - alias _CGLRendererInfoObject* CGLRendererInfoObj; - alias _CGLPBufferObject* CGLPBufferObj; - - /* - ** Attribute names for CGLChoosePixelFormat and CGLDescribePixelFormat. - */ - enum CGLPixelFormatAttribute - { - kCGLPFAAllRenderers = 1, /* choose from all available renderers */ - kCGLPFADoubleBuffer = 5, /* choose a double buffered pixel format */ - kCGLPFAStereo = 6, /* stereo buffering supported */ - kCGLPFAAuxBuffers = 7, /* number of aux buffers */ - kCGLPFAColorSize = 8, /* number of color buffer bits */ - kCGLPFAAlphaSize = 11, /* number of alpha component bits */ - kCGLPFADepthSize = 12, /* number of depth buffer bits */ - kCGLPFAStencilSize = 13, /* number of stencil buffer bits */ - kCGLPFAAccumSize = 14, /* number of accum buffer bits */ - kCGLPFAMinimumPolicy = 51, /* never choose smaller buffers than requested */ - kCGLPFAMaximumPolicy = 52, /* choose largest buffers of type requested */ - kCGLPFAOffScreen = 53, /* choose an off-screen capable renderer */ - kCGLPFAFullScreen = 54, /* choose a full-screen capable renderer */ - kCGLPFASampleBuffers = 55, /* number of multi sample buffers */ - kCGLPFASamples = 56, /* number of samples per multi sample buffer */ - kCGLPFAAuxDepthStencil = 57, /* each aux buffer has its own depth stencil */ - kCGLPFAColorFloat = 58, /* color buffers store floating point pixels */ - kCGLPFAMultisample = 59, /* choose multisampling */ - kCGLPFASupersample = 60, /* choose supersampling */ - kCGLPFASampleAlpha = 61, /* request alpha filtering */ - - kCGLPFARendererID = 70, /* request renderer by ID */ - kCGLPFASingleRenderer = 71, /* choose a single renderer for all screens */ - kCGLPFANoRecovery = 72, /* disable all failure recovery systems */ - kCGLPFAAccelerated = 73, /* choose a hardware accelerated renderer */ - kCGLPFAClosestPolicy = 74, /* choose the closest color buffer to request */ - kCGLPFARobust = 75, /* renderer does not need failure recovery */ - kCGLPFABackingStore = 76, /* back buffer contents are valid after swap */ - kCGLPFAMPSafe = 78, /* renderer is multi-processor safe */ - kCGLPFAWindow = 80, /* can be used to render to an onscreen window */ - kCGLPFAMultiScreen = 81, /* single window can span multiple screens */ - kCGLPFACompliant = 83, /* renderer is opengl compliant */ - kCGLPFADisplayMask = 84, /* mask limiting supported displays */ - kCGLPFAPBuffer = 90, /* can be used to render to a pbuffer */ - kCGLPFARemotePBuffer = 91, /* can be used to render offline to a pbuffer */ - kCGLPFAVirtualScreenCount = 128 /* number of virtual screens in this format */ - } - - /* - ** Property names for CGLDescribeRenderer. - */ - enum CGLRendererProperty - { - kCGLRPOffScreen = 53, - kCGLRPFullScreen = 54, - kCGLRPRendererID = 70, - kCGLRPAccelerated = 73, - kCGLRPRobust = 75, - kCGLRPBackingStore = 76, - kCGLRPMPSafe = 78, - kCGLRPWindow = 80, - kCGLRPMultiScreen = 81, - kCGLRPCompliant = 83, - kCGLRPDisplayMask = 84, - kCGLRPBufferModes = 100, /* a bitfield of supported buffer modes */ - kCGLRPColorModes = 103, /* a bitfield of supported color buffer formats */ - kCGLRPAccumModes = 104, /* a bitfield of supported accum buffer formats */ - kCGLRPDepthModes = 105, /* a bitfield of supported depth buffer depths */ - kCGLRPStencilModes = 106, /* a bitfield of supported stencil buffer depths */ - kCGLRPMaxAuxBuffers = 107, /* maximum number of auxilliary buffers */ - kCGLRPMaxSampleBuffers = 108, /* maximum number of sample buffers */ - kCGLRPMaxSamples = 109, /* maximum number of samples */ - kCGLRPSampleModes = 110, /* a bitfield of supported sample modes */ - kCGLRPSampleAlpha = 111, /* support for alpha sampling */ - kCGLRPVideoMemory = 120, /* total video memory */ - kCGLRPTextureMemory = 121, /* video memory useable for texture storage */ - kCGLRPGPUVertProcCapable = 122, /* renderer capable of GPU vertex processing */ - kCGLRPGPUFragProcCapable = 123, /* renderer capable of GPU fragment processing */ - kCGLRPRendererCount = 128 /* the number of renderers in this renderer info */ - } - - /* - ** Enable names for CGLEnable, CGLDisable, and CGLIsEnabled. - */ - enum CGLContextEnable - { - kCGLCESwapRectangle = 201, /* Enable or disable the swap rectangle */ - kCGLCESwapLimit = 203, /* Enable or disable the swap async limit */ - kCGLCERasterization = 221, /* Enable or disable all rasterization */ - kCGLCEStateValidation = 301, /* Validate state for multi-screen functionality */ - kCGLCESurfaceBackingSize = 305, /* Enable or disable surface backing size override */ - kCGLCEDisplayListOptimization = 307, /* Ability to turn off display list optimizer */ - kCGLCEMPEngine = 313 /* Enable or disable multi-threaded GL engine */ - } - - /* - ** Parameter names for CGLSetParameter and CGLGetParameter. - */ - enum CGLContextParameter - { - kCGLCPSwapRectangle = 200, /* 4 params. Set or get the swap rectangle {x, y, w, h} */ - kCGLCPSwapInterval = 222, /* 1 param. 0 -> Don't sync, n -> Sync every n retrace */ - kCGLCPDispatchTableSize = 224, /* 1 param. Get the dispatch table size */ - /* Note: kCGLCPClientStorage is always a pointer-sized parameter, even though the API claims GLint. */ - kCGLCPClientStorage = 226, /* 1 param. Context specific generic storage */ - kCGLCPSurfaceTexture = 228, /* 3 params. SID, target, internal_format */ - /* - Used by AGL - */ - /* AGL_STATE_VALIDATION 230 */ - /* AGL_BUFFER_NAME 231 */ - /* AGL_ORDER_CONTEXT_TO_FRONT 232 */ - /* AGL_CONTEXT_SURFACE_ID 233 */ - /* AGL_CONTEXT_DISPLAY_ID 234 */ - kCGLCPSurfaceOrder = 235, /* 1 param. 1 -> Above window, -1 -> Below Window */ - kCGLCPSurfaceOpacity = 236, /* 1 param. 1 -> Surface is opaque (default), 0 -> non-opaque */ - /* - Used by AGL - */ - /* AGL_CLIP_REGION 254 */ - /* AGL_FS_CAPTURE_SINGLE 255 */ - kCGLCPSurfaceBackingSize = 304, /* 2 params. Width/height of surface backing size */ - /* AGL_SURFACE_VOLATILE 306 */ - kCGLCPSurfaceSurfaceVolatile = 306, /* 1 param. Surface volatile state */ - kCGLCPReclaimResources = 308, /* 0 params. */ - kCGLCPCurrentRendererID = 309, /* 1 param. Retrieves the current renderer ID */ - kCGLCPGPUVertexProcessing = 310, /* 1 param. Currently processing vertices with GPU (get) */ - kCGLCPGPUFragmentProcessing = 311, /* 1 param. Currently processing fragments with GPU (get) */ - } - - /* - ** Option names for CGLSetOption and CGLGetOption. - */ - enum CGLGlobalOption - { - kCGLGOFormatCacheSize = 501, /* Set the size of the pixel format cache */ - kCGLGOClearFormatCache = 502, /* Reset the pixel format cache if true */ - kCGLGORetainRenderers = 503, /* Whether to retain loaded renderers in memory */ - kCGLGOResetLibrary = 504, /* *** DEPRECATED in MacOS X 10.4 *** */ - /* Do a soft reset of the CGL library if true */ - kCGLGOUseErrorHandler = 505, /* Call the Core Graphics handler on CGL errors */ - } - - /* - ** Error return values from CGLGetError. - */ - enum CGLError - { - kCGLNoError = 0, /* no error */ - kCGLBadAttribute = 10000, /* invalid pixel format attribute */ - kCGLBadProperty = 10001, /* invalid renderer property */ - kCGLBadPixelFormat = 10002, /* invalid pixel format */ - kCGLBadRendererInfo = 10003, /* invalid renderer info */ - kCGLBadContext = 10004, /* invalid context */ - kCGLBadDrawable = 10005, /* invalid drawable */ - kCGLBadDisplay = 10006, /* invalid graphics device */ - kCGLBadState = 10007, /* invalid context state */ - kCGLBadValue = 10008, /* invalid numerical value */ - kCGLBadMatch = 10009, /* invalid share context */ - kCGLBadEnumeration = 10010, /* invalid enumerant */ - kCGLBadOffScreen = 10011, /* invalid offscreen drawable */ - kCGLBadFullScreen = 10012, /* invalid offscreen drawable */ - kCGLBadWindow = 10013, /* invalid window */ - kCGLBadAddress = 10014, /* invalid pointer */ - kCGLBadCodeModule = 10015, /* invalid code module */ - kCGLBadAlloc = 10016, /* invalid memory allocation */ - kCGLBadConnection = 10017 /* invalid CoreGraphics connection */ - } - - - extern (C) - { - - mixin(gsharedString!() ~" - /* - ** Pixel format functions - */ - CGLError function(CGLPixelFormatAttribute*, CGLPixelFormatObj*, int*) CGLChoosePixelFormat; - CGLError function(CGLPixelFormatObj) CGLDestroyPixelFormat; - CGLError function(CGLPixelFormatObj, int, CGLPixelFormatAttribute, int*) CGLDescribePixelFormat; - - /* - ** Renderer information functions - */ - CGLError function(uint, CGLRendererInfoObj*, int*) CGLQueryRendererInfo; - CGLError function(CGLRendererInfoObj) CGLDestroyRendererInfo; - CGLError function(CGLRendererInfoObj, int, CGLRendererProperty, int*) CGLDescribeRenderer; - - /* - ** Context functions - */ - CGLError function(CGLPixelFormatObj, CGLContextObj, CGLContextObj*) CGLCreateContext; - CGLError function(CGLContextObj) CGLDestroyContext; - CGLError function(CGLContextObj, CGLContextObj, uint) CGLCopyContext; - - /* - ** PBuffer functions - */ - // FIXME - // These functions use the AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER macro. See - // . - version (Mac_OS_X_10_3_and_later) - { - CGLError function(int, int, uint, uint, int, CGLPBufferObj*) CGLCreatePBuffer; - CGLError function(CGLPBufferObj) CGLDestroyPBuffer; - CGLError function(CGLPBufferObj, int*, int*, uint*, uint*, int*) CGLDescribePBuffer; - CGLError function(CGLContextObj, CGLPBufferObj, uint) CGLTexImagePBuffer; - } - - /* - ** Drawable Functions - */ - CGLError function(CGLContextObj, int, int, int, void*) CGLSetOffScreen; - CGLError function(CGLContextObj, int*, int*, int*, void **baseaddr) CGLGetOffScreen; - CGLError function(CGLContextObj) CGLSetFullScreen; - - version (Mac_OS_X_10_3_and_later) - { - CGLError function(CGLContextObj, CGLPBufferObj, uint, int, int) CGLSetPBuffer; - CGLError function(CGLContextObj, CGLPBufferObj*, uint*, int*, int*) CGLGetPBuffer; - } - - CGLError function(CGLContextObj) CGLClearDrawable; - CGLError function(CGLContextObj) CGLFlushDrawable; - - /* - ** Per context enables and parameters - */ - CGLError function(CGLContextObj, CGLContextEnable) CGLEnable; - CGLError function(CGLContextObj, CGLContextEnable) CGLDisable; - CGLError function(CGLContextObj, CGLContextEnable, int*) CGLIsEnabled; - CGLError function(CGLContextObj, CGLContextParameter, int*) CGLSetParameter; - CGLError function(CGLContextObj, CGLContextParameter, int*) CGLGetParameter; - - /* - ** Virtual screen functions - */ - CGLError function(CGLContextObj, int) CGLSetVirtualScreen; - CGLError function(CGLContextObj, int*) CGLGetVirtualScreen; - - /* - ** Global library options - */ - CGLError function(CGLGlobalOption, int) CGLSetOption; - CGLError function(CGLGlobalOption, int*) CGLGetOption; - - /* - ** Locking functions - */ - version (Mac_OS_X_10_4_and_later) - { - CGLError function(CGLContextObj) CGLLockContext; - CGLError function(CGLContextObj) CGLUnlockContext; - } - - /* - ** Version numbers - */ - void function(int*, int*) CGLGetVersion; - - /* - ** Convert an error code to a string - */ - char* function(CGLError) CGLErrorString; - - /* - ** Current context functions - */ - CGLError function(CGLContextObj) CGLSetCurrentContext; - CGLContextObj function() CGLGetCurrentContext;"); - } - - package - { - void loadPlatformGL(void delegate(void**, string, bool doThrow = true) bindFunc) - { - bindFunc(cast(void**)&CGLSetCurrentContext, "CGLSetCurrentContext"); - bindFunc(cast(void**)&CGLGetCurrentContext, "CGLGetCurrentContext"); - /* - ** Pixel format functions - */ - bindFunc(cast(void**)&CGLChoosePixelFormat, "CGLChoosePixelFormat"); - bindFunc(cast(void**)&CGLDestroyPixelFormat, "CGLDestroyPixelFormat"); - bindFunc(cast(void**)&CGLDescribePixelFormat, "CGLDescribePixelFormat"); - - /* - ** Renderer information functions - */ - bindFunc(cast(void**)&CGLQueryRendererInfo, "CGLQueryRendererInfo"); - bindFunc(cast(void**)&CGLDestroyRendererInfo, "CGLDestroyRendererInfo"); - bindFunc(cast(void**)&CGLDescribeRenderer, "CGLDescribeRenderer"); - - /* - ** Context functions - */ - bindFunc(cast(void**)&CGLCreateContext, "CGLCreateContext"); - bindFunc(cast(void**)&CGLDestroyContext, "CGLDestroyContext"); - bindFunc(cast(void**)&CGLCopyContext, "CGLCopyContext"); - - /* - ** PBuffer functions - */ - // FIXME - // These functions use the AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER macro. See - // . - version (Mac_OS_X_10_3_and_later) - { - bindFunc(cast(void**)&CGLCreatePBuffer, "CGLCreatePBuffer"); - - bindFunc(cast(void**)&CGLDestroyPBuffer, "CGLDestroyPBuffer"); - - bindFunc(cast(void**)&CGLDescribePBuffer, "CGLDescribePBuffer"); - - bindFunc(cast(void**)&CGLTexImagePBuffer, "CGLTexImagePBuffer"); - } - - /* - ** Drawable Functions - */ - bindFunc(cast(void**)&CGLSetOffScreen, "CGLSetOffScreen"); - bindFunc(cast(void**)&CGLGetOffScreen, "CGLGetOffScreen"); - bindFunc(cast(void**)&CGLSetFullScreen, "CGLSetFullScreen"); - - version (Mac_OS_X_10_3_and_later) - { - bindFunc(cast(void**)&CGLSetPBuffer, "CGLSetPBuffer"); - - bindFunc(cast(void**)&CGLGetPBuffer, "CGLGetPBuffer"); - } - - bindFunc(cast(void**)&CGLClearDrawable, "CGLClearDrawable"); - bindFunc(cast(void**)&CGLFlushDrawable, "CGLFlushDrawable"); - - /* - ** Per context enables and parameters - */ - bindFunc(cast(void**)&CGLEnable, "CGLEnable"); - bindFunc(cast(void**)&CGLDisable, "CGLDisable"); - bindFunc(cast(void**)&CGLIsEnabled, "CGLIsEnabled"); - bindFunc(cast(void**)&CGLSetParameter, "CGLSetParameter"); - bindFunc(cast(void**)&CGLGetParameter, "CGLGetParameter"); - - /* - ** Virtual screen functions - */ - bindFunc(cast(void**)&CGLSetVirtualScreen, "CGLSetVirtualScreen"); - bindFunc(cast(void**)&CGLGetVirtualScreen, "CGLGetVirtualScreen"); - - /* - ** Global library options - */ - bindFunc(cast(void**)&CGLSetOption, "CGLSetOption"); - bindFunc(cast(void**)&CGLGetOption, "CGLGetOption"); - - /* - ** Locking functions - */ - version (Mac_OS_X_10_4_and_later) - { - bindFunc(cast(void**)&CGLLockContext, "CGLLockContext"); - - bindFunc(cast(void**)&CGLUnlockContext, "CGLUnlockContext"); - } - - /* - ** Version numbers - */ - bindFunc(cast(void**)&CGLGetVersion, "CGLGetVersion"); - - /* - ** Convert an error code to a string - */ - bindFunc(cast(void**)&CGLErrorString, "CGLErrorString"); - - /* - ** Current context functions - */ - bindFunc(cast(void**)&CGLSetCurrentContext, "CGLSetCurrentContext"); - bindFunc(cast(void**)&CGLGetCurrentContext, "CGLGetCurrentContext"); - } - } -}// version(CGL) +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.opengl.cgl; + +// Original version: 2008-04-03 by Hugues De Keyzer + +// Original C headers: +// OpenGL.h +// CGLTypes.h +// CGLCurrent.h +// from /System/Library/Frameworks/OpenGL.framework/Headers from Mac OS X 10.4 + +version(darwin) +{ + version = CGL; +} +else version(OSX) +{ + version = CGL; +} + +version (CGL) +{ + + private + { + import derelict.opengl.gltypes; + import derelict.util.compat; + import derelict.util.loader; + } + + /* + ** CGLContext structure. + */ + struct _CGLContextObject {} + + struct _CGLPixelFormatObject {} + struct _CGLRendererInfoObject {} + struct _CGLPBufferObject {} + + /* + ** CGL opaque data. + */ + alias _CGLContextObject* CGLContextObj; + alias _CGLPixelFormatObject* CGLPixelFormatObj; + alias _CGLRendererInfoObject* CGLRendererInfoObj; + alias _CGLPBufferObject* CGLPBufferObj; + + /* + ** Attribute names for CGLChoosePixelFormat and CGLDescribePixelFormat. + */ + enum CGLPixelFormatAttribute + { + kCGLPFAAllRenderers = 1, /* choose from all available renderers */ + kCGLPFADoubleBuffer = 5, /* choose a double buffered pixel format */ + kCGLPFAStereo = 6, /* stereo buffering supported */ + kCGLPFAAuxBuffers = 7, /* number of aux buffers */ + kCGLPFAColorSize = 8, /* number of color buffer bits */ + kCGLPFAAlphaSize = 11, /* number of alpha component bits */ + kCGLPFADepthSize = 12, /* number of depth buffer bits */ + kCGLPFAStencilSize = 13, /* number of stencil buffer bits */ + kCGLPFAAccumSize = 14, /* number of accum buffer bits */ + kCGLPFAMinimumPolicy = 51, /* never choose smaller buffers than requested */ + kCGLPFAMaximumPolicy = 52, /* choose largest buffers of type requested */ + kCGLPFAOffScreen = 53, /* choose an off-screen capable renderer */ + kCGLPFAFullScreen = 54, /* choose a full-screen capable renderer */ + kCGLPFASampleBuffers = 55, /* number of multi sample buffers */ + kCGLPFASamples = 56, /* number of samples per multi sample buffer */ + kCGLPFAAuxDepthStencil = 57, /* each aux buffer has its own depth stencil */ + kCGLPFAColorFloat = 58, /* color buffers store floating point pixels */ + kCGLPFAMultisample = 59, /* choose multisampling */ + kCGLPFASupersample = 60, /* choose supersampling */ + kCGLPFASampleAlpha = 61, /* request alpha filtering */ + + kCGLPFARendererID = 70, /* request renderer by ID */ + kCGLPFASingleRenderer = 71, /* choose a single renderer for all screens */ + kCGLPFANoRecovery = 72, /* disable all failure recovery systems */ + kCGLPFAAccelerated = 73, /* choose a hardware accelerated renderer */ + kCGLPFAClosestPolicy = 74, /* choose the closest color buffer to request */ + kCGLPFARobust = 75, /* renderer does not need failure recovery */ + kCGLPFABackingStore = 76, /* back buffer contents are valid after swap */ + kCGLPFAMPSafe = 78, /* renderer is multi-processor safe */ + kCGLPFAWindow = 80, /* can be used to render to an onscreen window */ + kCGLPFAMultiScreen = 81, /* single window can span multiple screens */ + kCGLPFACompliant = 83, /* renderer is opengl compliant */ + kCGLPFADisplayMask = 84, /* mask limiting supported displays */ + kCGLPFAPBuffer = 90, /* can be used to render to a pbuffer */ + kCGLPFARemotePBuffer = 91, /* can be used to render offline to a pbuffer */ + kCGLPFAVirtualScreenCount = 128 /* number of virtual screens in this format */ + } + + /* + ** Property names for CGLDescribeRenderer. + */ + enum CGLRendererProperty + { + kCGLRPOffScreen = 53, + kCGLRPFullScreen = 54, + kCGLRPRendererID = 70, + kCGLRPAccelerated = 73, + kCGLRPRobust = 75, + kCGLRPBackingStore = 76, + kCGLRPMPSafe = 78, + kCGLRPWindow = 80, + kCGLRPMultiScreen = 81, + kCGLRPCompliant = 83, + kCGLRPDisplayMask = 84, + kCGLRPBufferModes = 100, /* a bitfield of supported buffer modes */ + kCGLRPColorModes = 103, /* a bitfield of supported color buffer formats */ + kCGLRPAccumModes = 104, /* a bitfield of supported accum buffer formats */ + kCGLRPDepthModes = 105, /* a bitfield of supported depth buffer depths */ + kCGLRPStencilModes = 106, /* a bitfield of supported stencil buffer depths */ + kCGLRPMaxAuxBuffers = 107, /* maximum number of auxilliary buffers */ + kCGLRPMaxSampleBuffers = 108, /* maximum number of sample buffers */ + kCGLRPMaxSamples = 109, /* maximum number of samples */ + kCGLRPSampleModes = 110, /* a bitfield of supported sample modes */ + kCGLRPSampleAlpha = 111, /* support for alpha sampling */ + kCGLRPVideoMemory = 120, /* total video memory */ + kCGLRPTextureMemory = 121, /* video memory useable for texture storage */ + kCGLRPGPUVertProcCapable = 122, /* renderer capable of GPU vertex processing */ + kCGLRPGPUFragProcCapable = 123, /* renderer capable of GPU fragment processing */ + kCGLRPRendererCount = 128 /* the number of renderers in this renderer info */ + } + + /* + ** Enable names for CGLEnable, CGLDisable, and CGLIsEnabled. + */ + enum CGLContextEnable + { + kCGLCESwapRectangle = 201, /* Enable or disable the swap rectangle */ + kCGLCESwapLimit = 203, /* Enable or disable the swap async limit */ + kCGLCERasterization = 221, /* Enable or disable all rasterization */ + kCGLCEStateValidation = 301, /* Validate state for multi-screen functionality */ + kCGLCESurfaceBackingSize = 305, /* Enable or disable surface backing size override */ + kCGLCEDisplayListOptimization = 307, /* Ability to turn off display list optimizer */ + kCGLCEMPEngine = 313 /* Enable or disable multi-threaded GL engine */ + } + + /* + ** Parameter names for CGLSetParameter and CGLGetParameter. + */ + enum CGLContextParameter + { + kCGLCPSwapRectangle = 200, /* 4 params. Set or get the swap rectangle {x, y, w, h} */ + kCGLCPSwapInterval = 222, /* 1 param. 0 -> Don't sync, n -> Sync every n retrace */ + kCGLCPDispatchTableSize = 224, /* 1 param. Get the dispatch table size */ + /* Note: kCGLCPClientStorage is always a pointer-sized parameter, even though the API claims GLint. */ + kCGLCPClientStorage = 226, /* 1 param. Context specific generic storage */ + kCGLCPSurfaceTexture = 228, /* 3 params. SID, target, internal_format */ + /* - Used by AGL - */ + /* AGL_STATE_VALIDATION 230 */ + /* AGL_BUFFER_NAME 231 */ + /* AGL_ORDER_CONTEXT_TO_FRONT 232 */ + /* AGL_CONTEXT_SURFACE_ID 233 */ + /* AGL_CONTEXT_DISPLAY_ID 234 */ + kCGLCPSurfaceOrder = 235, /* 1 param. 1 -> Above window, -1 -> Below Window */ + kCGLCPSurfaceOpacity = 236, /* 1 param. 1 -> Surface is opaque (default), 0 -> non-opaque */ + /* - Used by AGL - */ + /* AGL_CLIP_REGION 254 */ + /* AGL_FS_CAPTURE_SINGLE 255 */ + kCGLCPSurfaceBackingSize = 304, /* 2 params. Width/height of surface backing size */ + /* AGL_SURFACE_VOLATILE 306 */ + kCGLCPSurfaceSurfaceVolatile = 306, /* 1 param. Surface volatile state */ + kCGLCPReclaimResources = 308, /* 0 params. */ + kCGLCPCurrentRendererID = 309, /* 1 param. Retrieves the current renderer ID */ + kCGLCPGPUVertexProcessing = 310, /* 1 param. Currently processing vertices with GPU (get) */ + kCGLCPGPUFragmentProcessing = 311, /* 1 param. Currently processing fragments with GPU (get) */ + } + + /* + ** Option names for CGLSetOption and CGLGetOption. + */ + enum CGLGlobalOption + { + kCGLGOFormatCacheSize = 501, /* Set the size of the pixel format cache */ + kCGLGOClearFormatCache = 502, /* Reset the pixel format cache if true */ + kCGLGORetainRenderers = 503, /* Whether to retain loaded renderers in memory */ + kCGLGOResetLibrary = 504, /* *** DEPRECATED in MacOS X 10.4 *** */ + /* Do a soft reset of the CGL library if true */ + kCGLGOUseErrorHandler = 505, /* Call the Core Graphics handler on CGL errors */ + } + + /* + ** Error return values from CGLGetError. + */ + enum CGLError + { + kCGLNoError = 0, /* no error */ + kCGLBadAttribute = 10000, /* invalid pixel format attribute */ + kCGLBadProperty = 10001, /* invalid renderer property */ + kCGLBadPixelFormat = 10002, /* invalid pixel format */ + kCGLBadRendererInfo = 10003, /* invalid renderer info */ + kCGLBadContext = 10004, /* invalid context */ + kCGLBadDrawable = 10005, /* invalid drawable */ + kCGLBadDisplay = 10006, /* invalid graphics device */ + kCGLBadState = 10007, /* invalid context state */ + kCGLBadValue = 10008, /* invalid numerical value */ + kCGLBadMatch = 10009, /* invalid share context */ + kCGLBadEnumeration = 10010, /* invalid enumerant */ + kCGLBadOffScreen = 10011, /* invalid offscreen drawable */ + kCGLBadFullScreen = 10012, /* invalid offscreen drawable */ + kCGLBadWindow = 10013, /* invalid window */ + kCGLBadAddress = 10014, /* invalid pointer */ + kCGLBadCodeModule = 10015, /* invalid code module */ + kCGLBadAlloc = 10016, /* invalid memory allocation */ + kCGLBadConnection = 10017 /* invalid CoreGraphics connection */ + } + + + extern (C) + { + + mixin(gsharedString!() ~" + /* + ** Pixel format functions + */ + CGLError function(CGLPixelFormatAttribute*, CGLPixelFormatObj*, int*) CGLChoosePixelFormat; + CGLError function(CGLPixelFormatObj) CGLDestroyPixelFormat; + CGLError function(CGLPixelFormatObj, int, CGLPixelFormatAttribute, int*) CGLDescribePixelFormat; + + /* + ** Renderer information functions + */ + CGLError function(uint, CGLRendererInfoObj*, int*) CGLQueryRendererInfo; + CGLError function(CGLRendererInfoObj) CGLDestroyRendererInfo; + CGLError function(CGLRendererInfoObj, int, CGLRendererProperty, int*) CGLDescribeRenderer; + + /* + ** Context functions + */ + CGLError function(CGLPixelFormatObj, CGLContextObj, CGLContextObj*) CGLCreateContext; + CGLError function(CGLContextObj) CGLDestroyContext; + CGLError function(CGLContextObj, CGLContextObj, uint) CGLCopyContext; + + /* + ** PBuffer functions + */ + // FIXME + // These functions use the AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER macro. See + // . + version (Mac_OS_X_10_3_and_later) + { + CGLError function(int, int, uint, uint, int, CGLPBufferObj*) CGLCreatePBuffer; + CGLError function(CGLPBufferObj) CGLDestroyPBuffer; + CGLError function(CGLPBufferObj, int*, int*, uint*, uint*, int*) CGLDescribePBuffer; + CGLError function(CGLContextObj, CGLPBufferObj, uint) CGLTexImagePBuffer; + } + + /* + ** Drawable Functions + */ + CGLError function(CGLContextObj, int, int, int, void*) CGLSetOffScreen; + CGLError function(CGLContextObj, int*, int*, int*, void **baseaddr) CGLGetOffScreen; + CGLError function(CGLContextObj) CGLSetFullScreen; + + version (Mac_OS_X_10_3_and_later) + { + CGLError function(CGLContextObj, CGLPBufferObj, uint, int, int) CGLSetPBuffer; + CGLError function(CGLContextObj, CGLPBufferObj*, uint*, int*, int*) CGLGetPBuffer; + } + + CGLError function(CGLContextObj) CGLClearDrawable; + CGLError function(CGLContextObj) CGLFlushDrawable; + + /* + ** Per context enables and parameters + */ + CGLError function(CGLContextObj, CGLContextEnable) CGLEnable; + CGLError function(CGLContextObj, CGLContextEnable) CGLDisable; + CGLError function(CGLContextObj, CGLContextEnable, int*) CGLIsEnabled; + CGLError function(CGLContextObj, CGLContextParameter, int*) CGLSetParameter; + CGLError function(CGLContextObj, CGLContextParameter, int*) CGLGetParameter; + + /* + ** Virtual screen functions + */ + CGLError function(CGLContextObj, int) CGLSetVirtualScreen; + CGLError function(CGLContextObj, int*) CGLGetVirtualScreen; + + /* + ** Global library options + */ + CGLError function(CGLGlobalOption, int) CGLSetOption; + CGLError function(CGLGlobalOption, int*) CGLGetOption; + + /* + ** Locking functions + */ + version (Mac_OS_X_10_4_and_later) + { + CGLError function(CGLContextObj) CGLLockContext; + CGLError function(CGLContextObj) CGLUnlockContext; + } + + /* + ** Version numbers + */ + void function(int*, int*) CGLGetVersion; + + /* + ** Convert an error code to a string + */ + char* function(CGLError) CGLErrorString; + + /* + ** Current context functions + */ + CGLError function(CGLContextObj) CGLSetCurrentContext; + CGLContextObj function() CGLGetCurrentContext;"); + } + + package + { + void loadPlatformGL(void delegate(void**, string, bool doThrow = true) bindFunc) + { + bindFunc(cast(void**)&CGLSetCurrentContext, "CGLSetCurrentContext"); + bindFunc(cast(void**)&CGLGetCurrentContext, "CGLGetCurrentContext"); + /* + ** Pixel format functions + */ + bindFunc(cast(void**)&CGLChoosePixelFormat, "CGLChoosePixelFormat"); + bindFunc(cast(void**)&CGLDestroyPixelFormat, "CGLDestroyPixelFormat"); + bindFunc(cast(void**)&CGLDescribePixelFormat, "CGLDescribePixelFormat"); + + /* + ** Renderer information functions + */ + bindFunc(cast(void**)&CGLQueryRendererInfo, "CGLQueryRendererInfo"); + bindFunc(cast(void**)&CGLDestroyRendererInfo, "CGLDestroyRendererInfo"); + bindFunc(cast(void**)&CGLDescribeRenderer, "CGLDescribeRenderer"); + + /* + ** Context functions + */ + bindFunc(cast(void**)&CGLCreateContext, "CGLCreateContext"); + bindFunc(cast(void**)&CGLDestroyContext, "CGLDestroyContext"); + bindFunc(cast(void**)&CGLCopyContext, "CGLCopyContext"); + + /* + ** PBuffer functions + */ + // FIXME + // These functions use the AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER macro. See + // . + version (Mac_OS_X_10_3_and_later) + { + bindFunc(cast(void**)&CGLCreatePBuffer, "CGLCreatePBuffer"); + + bindFunc(cast(void**)&CGLDestroyPBuffer, "CGLDestroyPBuffer"); + + bindFunc(cast(void**)&CGLDescribePBuffer, "CGLDescribePBuffer"); + + bindFunc(cast(void**)&CGLTexImagePBuffer, "CGLTexImagePBuffer"); + } + + /* + ** Drawable Functions + */ + bindFunc(cast(void**)&CGLSetOffScreen, "CGLSetOffScreen"); + bindFunc(cast(void**)&CGLGetOffScreen, "CGLGetOffScreen"); + bindFunc(cast(void**)&CGLSetFullScreen, "CGLSetFullScreen"); + + version (Mac_OS_X_10_3_and_later) + { + bindFunc(cast(void**)&CGLSetPBuffer, "CGLSetPBuffer"); + + bindFunc(cast(void**)&CGLGetPBuffer, "CGLGetPBuffer"); + } + + bindFunc(cast(void**)&CGLClearDrawable, "CGLClearDrawable"); + bindFunc(cast(void**)&CGLFlushDrawable, "CGLFlushDrawable"); + + /* + ** Per context enables and parameters + */ + bindFunc(cast(void**)&CGLEnable, "CGLEnable"); + bindFunc(cast(void**)&CGLDisable, "CGLDisable"); + bindFunc(cast(void**)&CGLIsEnabled, "CGLIsEnabled"); + bindFunc(cast(void**)&CGLSetParameter, "CGLSetParameter"); + bindFunc(cast(void**)&CGLGetParameter, "CGLGetParameter"); + + /* + ** Virtual screen functions + */ + bindFunc(cast(void**)&CGLSetVirtualScreen, "CGLSetVirtualScreen"); + bindFunc(cast(void**)&CGLGetVirtualScreen, "CGLGetVirtualScreen"); + + /* + ** Global library options + */ + bindFunc(cast(void**)&CGLSetOption, "CGLSetOption"); + bindFunc(cast(void**)&CGLGetOption, "CGLGetOption"); + + /* + ** Locking functions + */ + version (Mac_OS_X_10_4_and_later) + { + bindFunc(cast(void**)&CGLLockContext, "CGLLockContext"); + + bindFunc(cast(void**)&CGLUnlockContext, "CGLUnlockContext"); + } + + /* + ** Version numbers + */ + bindFunc(cast(void**)&CGLGetVersion, "CGLGetVersion"); + + /* + ** Convert an error code to a string + */ + bindFunc(cast(void**)&CGLErrorString, "CGLErrorString"); + + /* + ** Current context functions + */ + bindFunc(cast(void**)&CGLSetCurrentContext, "CGLSetCurrentContext"); + bindFunc(cast(void**)&CGLGetCurrentContext, "CGLGetCurrentContext"); + } + } +}// version(CGL) diff --git a/src/derelict/opengl/extfuncs.d b/src/derelict/opengl/extfuncs.d old mode 100755 new mode 100644 index 2a941fef..8cbcc34c --- a/src/derelict/opengl/extfuncs.d +++ b/src/derelict/opengl/extfuncs.d @@ -1,2105 +1,2105 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license(the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.opengl.extfuncs; - -private -{ - version(Windows) - { - import derelict.util.wintypes; - } - import derelict.util.compat; - import derelict.opengl.gltypes; - import derelict.opengl.exttypes; -} - -version = DerelictGL_ALL; - -version(DerelictGL_ALL) -{ - version = DerelictGL_ARB; - version = DerelictGL_EXT; - version = DerelictGL_NV; - version = DerelictGL_ATI; - version = DerelictGL_AMD; - version = DerelictGL_SGI; - version = DerelictGL_SGIS; - version = DerelictGL_SGIX; - version = DerelictGL_HP; - version = DerelictGL_PGI; - version = DerelictGL_IBM; - version = DerelictGL_WIN; - version = DerelictGL_INTEL; - version = DerelictGL_REND; - version = DerelictGL_APPLE; - version = DerelictGL_SUNX; - version = DerelictGL_SUN; - version = DerelictGL_INGR; - version = DerelictGL_MESA; - version = DerelictGL_3DFX; - version = DerelictGL_OML; - version = DerelictGL_S3; - version = DerelictGL_OES; - version = DerelictGL_GREMEDY; - version = DerelictGL_MESAX; - version = DerelictGL_I3D; - version = DerelictGL_3DL; -} - -extern(System) -{ - mixin(gsharedString!() ~ - " - version(DerelictGL_ARB) - { - // GL_ARB_multitexture - void function(GLenum) glActiveTextureARB; - void function(GLenum) glClientActiveTextureARB; - void function(GLenum, GLdouble) glMultiTexCoord1dARB; - void function(GLenum, in GLdouble*) glMultiTexCoord1dvARB; - void function(GLenum, GLfloat) glMultiTexCoord1fARB; - void function(GLenum, in GLfloat*) glMultiTexCoord1fvARB; - void function(GLenum, GLint) glMultiTexCoord1iARB; - void function(GLenum, in GLint*) glMultiTexCoord1ivARB; - void function(GLenum, GLshort) glMultiTexCoord1sARB; - void function(GLenum, in GLshort*) glMultiTexCoord1svARB; - void function(GLenum, GLdouble, GLdouble) glMultiTexCoord2dARB; - void function(GLenum, in GLdouble*) glMultiTexCoord2dvARB; - void function(GLenum, GLfloat, GLfloat) glMultiTexCoord2fARB; - void function(GLenum, in GLfloat*) glMultiTexCoord2fvARB; - void function(GLenum, GLint, GLint) glMultiTexCoord2iARB; - void function(GLenum, in GLint*) glMultiTexCoord2ivARB; - void function(GLenum, GLshort, GLshort) glMultiTexCoord2sARB; - void function(GLenum, in GLshort*) glMultiTexCoord2svARB; - void function(GLenum, GLdouble, GLdouble, GLdouble) glMultiTexCoord3dARB; - void function(GLenum, in GLdouble*) glMultiTexCoord3dvARB; - void function(GLenum, GLfloat, GLfloat, GLfloat) glMultiTexCoord3fARB; - void function(GLenum, in GLfloat*) glMultiTexCoord3fvARB; - void function(GLenum, GLint, GLint, GLint) glMultiTexCoord3iARB; - void function(GLenum, in GLint*) glMultiTexCoord3ivARB; - void function(GLenum, GLshort, GLshort, GLshort) glMultiTexCoord3sARB; - void function(GLenum, in GLshort*) glMultiTexCoord3svARB; - void function(GLenum, GLdouble, GLdouble, GLdouble, GLdouble) glMultiTexCoord4dARB; - void function(GLenum, in GLdouble*) glMultiTexCoord4dvARB; - void function(GLenum, GLfloat, GLfloat, GLfloat, GLfloat) glMultiTexCoord4fARB; - void function(GLenum, in GLfloat*) glMultiTexCoord4fvARB; - void function(GLenum, GLint, GLint, GLint, GLint) glMultiTexCoord4iARB; - void function(GLenum, in GLint*) glMultiTexCoord4ivARB; - void function(GLenum, GLshort, GLshort, GLshort, GLshort) glMultiTexCoord4sARB; - void function(GLenum, in GLshort*) glMultiTexCoord4svARB; - - // GL_ARB_transpose_matrix - void function(GLfloat*) glLoadTransposeMatrixfARB; - void function(GLdouble*) glLoadTransposeMatrixdARB; - void function(GLfloat*) glMultTransposeMatrixfARB; - void function(GLdouble*) glMultTransposeMatrixdARB; - - // GL_ARB_multisample - void function(GLclampf, GLboolean) glSampleCoverageARB; - - // GL_ARB_texture_compression - void function(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedTexImage3DARB; - void function(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedTexImage2DARB; - void function(GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedTexImage1DARB; - void function(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedTexSubImage3DARB; - void function(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedTexSubImage2DARB; - void function(GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedTexSubImage1DARB; - void function(GLenum, GLint, GLvoid*) glGetCompressedTexImageARB; - - // GL_ARB_point_parameters - void function(GLenum, GLfloat) glPointParameterfARB; - void function(GLenum, GLfloat*) glPointParameterfvARB; - - // GL_ARB_vertex_blend - void function(GLint, GLbyte*) glWeightbvARB; - void function(GLint, GLshort*) glWeightsvARB; - void function(GLint, GLint*) glWeightivARB; - void function(GLint, GLfloat*) glWeightfvARB; - void function(GLint, GLdouble*) glWeightdvARB; - void function(GLint, GLubyte*) glWeightubvARB; - void function(GLint, GLushort*) glWeightusvARB; - void function(GLint, GLuint*) glWeightuivARB; - void function(GLint, GLenum, GLsizei, GLvoid*) glWeightPointerARB; - void function(GLint) glVertexBlendARB; - - // GL_ARB_matrix_palette - void function(GLint) glCurrentPaletteMatrixARB; - void function(GLint, GLubyte*) glMatrixIndexubvARB; - void function(GLint, GLushort*) glMatrixIndexusvARB; - void function(GLint, GLuint*) glMatrixIndexuivARB; - void function(GLint, GLenum, GLsizei, GLvoid*) glMatrixIndexPointerARB; - - // GL_ARB_window_pos - void function(GLdouble, GLdouble) glWindowPos2dARB; - void function(in GLdouble*) glWindowPos2dvARB; - void function(GLfloat, GLfloat) glWindowPos2fARB; - void function(in GLfloat*) glWindowPos2fvARB; - void function(GLint, GLint) glWindowPos2iARB; - void function(in GLint*) glWindowPos2ivARB; - void function(GLshort, GLshort) glWindowPos2sARB; - void function(in GLshort*) glWindowPos2svARB; - void function(GLdouble, GLdouble, GLdouble) glWindowPos3dARB; - void function(in GLdouble*) glWindowPos3dvARB; - void function(GLfloat, GLfloat, GLfloat) glWindowPos3fARB; - void function(in GLfloat*) glWindowPos3fvARB; - void function(GLint, GLint, GLint) glWindowPos3iARB; - void function(in GLint*) glWindowPos3ivARB; - void function(GLshort, GLshort, GLshort) glWindowPos3sARB; - void function(in GLshort*) glWindowPos3svARB; - - // GL_ARB_vertex_program - void function(GLuint, GLdouble) glVertexAttrib1dARB; - void function(GLuint, in GLdouble*) glVertexAttrib1dvARB; - void function(GLuint, GLfloat) glVertexAttrib1fARB; - void function(GLuint, in GLfloat*) glVertexAttrib1fvARB; - void function(GLuint, GLshort) glVertexAttrib1sARB; - void function(GLuint, in GLshort*) glVertexAttrib1svARB; - void function(GLuint, GLdouble, GLdouble) glVertexAttrib2dARB; - void function(GLuint, in GLdouble*) glVertexAttrib2dvARB; - void function(GLuint, GLfloat, GLfloat) glVertexAttrib2fARB; - void function(GLuint, in GLfloat*) glVertexAttrib2fvARB; - void function(GLuint, GLshort, GLshort) glVertexAttrib2sARB; - void function(GLuint, in GLshort*) glVertexAttrib2svARB; - void function(GLuint, GLdouble, GLdouble, GLdouble) glVertexAttrib3dARB; - void function(GLuint, in GLdouble*) glVertexAttrib3dvARB; - void function(GLuint, GLfloat, GLfloat, GLfloat) glVertexAttrib3fARB; - void function(GLuint, in GLfloat*) glVertexAttrib3fvARB; - void function(GLuint, GLshort, GLshort, GLshort) glVertexAttrib3sARB; - void function(GLuint, in GLshort*) glVertexAttrib3svARB; - void function(GLuint, in GLbyte*) glVertexAttrib4NbvARB; - void function(GLuint, in GLint*) glVertexAttrib4NivARB; - void function(GLuint, in GLshort*) glVertexAttrib4NsvARB; - void function(GLuint, GLubyte, GLubyte, GLubyte, GLubyte) glVertexAttrib4NubARB; - void function(GLuint, in GLubyte*) glVertexAttrib4NubvARB; - void function(GLuint, in GLuint*) glVertexAttrib4NuivARB; - void function(GLuint, in GLushort*) glVertexAttrib4NusvARB; - void function(GLuint, in GLbyte*) glVertexAttrib4bvARB; - void function(GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glVertexAttrib4dARB; - void function(GLuint, in GLdouble*) glVertexAttrib4dvARB; - void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glVertexAttrib4fARB; - void function(GLuint, in GLfloat*) glVertexAttrib4fvARB; - void function(GLuint, in GLint*) glVertexAttrib4ivARB; - void function(GLuint, GLshort, GLshort, GLshort, GLshort) glVertexAttrib4sARB; - void function(GLuint, in GLshort*) glVertexAttrib4svARB; - void function(GLuint, in GLubyte*) glVertexAttrib4ubvARB; - void function(GLuint, in GLuint*) glVertexAttrib4uivARB; - void function(GLuint, in GLushort*) glVertexAttrib4usvARB; - void function(GLuint, GLint, GLenum, GLboolean, GLsizei, in GLvoid*) glVertexAttribPointerARB; - void function(GLuint) glEnableVertexAttribArrayARB; - void function(GLuint) glDisableVertexAttribArrayARB; - void function(GLenum, GLenum, GLsizei, in GLvoid*) glProgramStringARB; - void function(GLenum, GLuint) glBindProgramARB; - void function(GLsizei, in GLuint*) glDeleteProgramsARB; - void function(GLsizei, GLuint*) glGenProgramsARB; - void function(GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glProgramEnvParameter4dARB; - void function(GLenum, GLuint, in GLdouble*) glProgramEnvParameter4dvARB; - void function(GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glProgramEnvParameter4fARB; - void function(GLenum, GLuint, in GLfloat*) glProgramEnvParameter4fvARB; - void function(GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glProgramLocalParameter4dARB; - void function(GLenum, GLuint, in GLdouble*) glProgramLocalParameter4dvARB; - void function(GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glProgramLocalParameter4fARB; - void function(GLenum, GLuint, in GLfloat*) glProgramLocalParameter4fvARB; - void function(GLenum, GLuint, GLdouble*) glGetProgramEnvParameterdvARB; - void function(GLenum, GLuint, GLfloat*) glGetProgramEnvParameterfvARB; - void function(GLenum, GLuint, GLdouble*) glGetProgramLocalParameterdvARB; - void function(GLenum, GLuint, GLfloat*) glGetProgramLocalParameterfvARB; - void function(GLenum, GLenum, GLint*) glGetProgramivARB; - void function(GLenum, GLenum, GLvoid*) glGetProgramStringARB; - void function(GLuint, GLenum, GLdouble*) glGetVertexAttribdvARB; - void function(GLuint, GLenum, GLfloat*) glGetVertexAttribfvARB; - void function(GLuint, GLenum, GLint*) glGetVertexAttribivARB; - void function(GLuint, GLenum, GLvoid*) glGetVertexAttribPointervARB; - GLboolean function(GLuint) glIsProgramARB; - - // GL_ARB_vertex_buffer_object - void function(GLenum, GLuint) glBindBufferARB; - void function(GLsizei, in GLuint*) glDeleteBuffersARB; - void function(GLsizei, GLuint*) glGenBuffersARB; - GLboolean function(GLuint) glIsBufferARB; - void function(GLenum, GLsizeiptrARB, in GLvoid*, GLenum) glBufferDataARB; - void function(GLenum, GLintptrARB, GLsizeiptrARB, in GLvoid*) glBufferSubDataARB; - void function(GLenum, GLintptrARB, GLsizeiptrARB, GLvoid*) glGetBufferSubDataARB; - GLvoid* function(GLenum, GLenum) glMapBufferARB; - GLboolean function(GLenum) glUnmapBufferARB; - void function(GLenum, GLenum, GLint*) glGetBufferParameterivARB; - void function(GLenum, GLenum, GLvoid*) glGetBufferPointervARB; - - // GL_ARB_occlusion_query - void function(GLsizei, GLuint*) glGenQueriesARB; - void function(GLsizei, in GLuint*) glDeleteQueriesARB; - GLboolean function(GLuint) glIsQueryARB; - void function(GLenum, GLuint) glBeginQueryARB; - void function(GLenum) glEndQueryARB; - void function(GLenum, GLenum, GLint*) glGetQueryivARB; - void function(GLuint, GLenum, GLint*) glGetQueryObjectivARB; - void function(GLuint, GLenum, GLuint*) glGetQueryObjectuivARB; - - // GL_ARB_shader_objects - void function(GLhandleARB) glDeleteObjectARB; - GLhandleARB function(GLenum) glGetHandleARB; - void function(GLhandleARB, GLhandleARB) glDetachObjectARB; - GLhandleARB function(GLenum) glCreateShaderObjectARB; - void function(GLhandleARB, GLsizei, in GLcharARB**, in GLint*) glShaderSourceARB; - void function(GLhandleARB) glCompileShaderARB; - GLhandleARB function() glCreateProgramObjectARB; - void function(GLhandleARB, GLhandleARB) glAttachObjectARB; - void function(GLhandleARB) glLinkProgramARB; - void function(GLhandleARB) glUseProgramObjectARB; - void function(GLhandleARB) glValidateProgramARB; - void function(GLint, GLfloat) glUniform1fARB; - void function(GLint, GLfloat, GLfloat) glUniform2fARB; - void function(GLint, GLfloat, GLfloat, GLfloat) glUniform3fARB; - void function(GLint, GLfloat, GLfloat, GLfloat, GLfloat) glUniform4fARB; - void function(GLint, GLint) glUniform1iARB; - void function(GLint, GLint, GLint) glUniform2iARB; - void function(GLint, GLint, GLint, GLint) glUniform3iARB; - void function(GLint, GLint, GLint, GLint, GLint) glUniform4iARB; - void function(GLint, GLsizei, in GLfloat*) glUniform1fvARB; - void function(GLint, GLsizei, in GLfloat*) glUniform2fvARB; - void function(GLint, GLsizei, in GLfloat*) glUniform3fvARB; - void function(GLint, GLsizei, in GLfloat*) glUniform4fvARB; - void function(GLint, GLsizei, in GLint*) glUniform1ivARB; - void function(GLint, GLsizei, in GLint*) glUniform2ivARB; - void function(GLint, GLsizei, in GLint*) glUniform3ivARB; - void function(GLint, GLsizei, in GLint*) glUniform4ivARB; - void function(GLint, GLsizei, GLboolean, in GLfloat*) glUniformMatrix2fvARB; - void function(GLint, GLsizei, GLboolean, in GLfloat*) glUniformMatrix3fvARB; - void function(GLint, GLsizei, GLboolean, in GLfloat*) glUniformMatrix4fvARB; - void function(GLhandleARB, GLenum, GLfloat*) glGetObjectParameterfvARB; - void function(GLhandleARB, GLenum, GLint*) glGetObjectParameterivARB; - void function(GLhandleARB, GLsizei, GLsizei*, GLcharARB*) glGetInfoLogARB; - void function(GLhandleARB, GLsizei, GLsizei*, GLhandleARB*) glGetAttachedObjectsARB; - GLint function(GLhandleARB, in GLcharARB*) glGetUniformLocationARB; - void function(GLhandleARB, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLcharARB*) glGetActiveUniformARB; - void function(GLhandleARB, GLint, GLfloat*) glGetUniformfvARB; - void function(GLhandleARB, GLint, GLint*) glGetUniformivARB; - void function(GLhandleARB, GLsizei, GLsizei*, GLcharARB*) glGetShaderSourceARB; - - // GL_ARB_vertex_shader - void function(GLhandleARB, GLuint, in GLcharARB*) glBindAttribLocationARB; - void function(GLhandleARB, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLcharARB*) glGetActiveAttribARB; - GLint function(GLhandleARB, in GLcharARB* name) glGetAttribLocationARB; - - // GL_ARB_draw_buffers - void function(GLsizei, in GLenum*) glDrawBuffersARB; - - // GL_ARB_color_buffer_float - void function(GLenum, GLenum) glClampColorARB; - - // GL_ARB_draw_instanced - void function(GLenum, GLint, GLsizei, GLsizei) glDrawArraysInstancedARB; - void function(GLenum, GLsizei, GLenum, in void*, GLsizei) glDrawElementsInstancedARB; - - // GL_ARB_framebuffer_object - GLboolean function(GLuint) glIsRenderbuffer; - void function(GLenum, GLuint) glBindRenderbuffer; - void function(GLsizei, in GLuint*) glDeleteRenderbuffers; - void function(GLsizei, GLuint*) glGenRenderbuffers; - void function(GLenum, GLenum, GLsizei, GLsizei) glRenderbufferStorage; - void function(GLenum, GLsizei, GLenum, GLsizei, GLsizei) glRenderbufferStorageMultisample; - void function(GLenum, GLenum, GLint*) glGetRenderbufferParameteriv; - GLboolean function(GLuint) glIsFramebuffer; - void function(GLenum, GLuint) glBindFramebuffer; - void function(GLsizei, in GLuint*) glDeleteFramebuffers; - void function(GLsizei, GLuint*) glGenFramebuffers; - GLenum function(GLenum) glCheckFramebufferStatus; - void function(GLenum, GLenum, GLenum, GLuint, GLint) glFramebufferTexture1D; - void function(GLenum, GLenum, GLenum, GLuint, GLint) glFramebufferTexture2D; - void function(GLenum, GLenum, GLenum, GLuint, GLint, GLint) glFramebufferTexture3D; - void function(GLenum, GLenum, GLuint, GLint, GLint) glFramebufferTextureLayer; - void function(GLenum, GLenum, GLenum, GLuint) glFramebufferRenderbuffer; - void function(GLenum, GLenum, GLenum, GLint*) glGetFramebufferAttachmentParameteriv; - void function(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum) glBlitFramebuffer; - void function(GLenum) glGenerateMipmap; - - // GL_ARB_geometry_shader4 - void function(GLuint, GLenum, GLint) glProgramParameteriARB; - void function(GLenum, GLenum, GLuint, GLint) glFramebufferTextureARB; - void function(GLenum, GLenum, GLuint, GLint, GLint) glFramebufferTextureLayerARB; - void function(GLenum, GLenum, GLuint, GLint, GLenum) glFramebufferTextureFaceARB; - - // GL_ARB_imaging - void function(GLenum, GLenum, GLsizei, GLenum, GLenum, in void*) glColorTable; - void function(GLenum, GLsizei, GLsizei, GLenum, GLenum, in void*) glColorSubTable; - void function(GLenum, GLenum, in GLint*) glColorTableParameteriv; - void function(GLenum, GLenum, in GLfloat*) glColorTableParameterfv; - void function(GLenum, GLsizei, GLint, GLint, GLsizei) glCopyColorSubTable; - void function(GLenum, GLenum, GLint, GLint, GLsizei) glCopyColorTable; - void function(GLenum, GLenum, GLenum, void*) glGetColorTable; - void function(GLenum, GLenum, GLfloat*) glGetColorTableParameterfv; - void function(GLenum, GLenum, GLint*) glGetColorTableParameteriv; - void function(GLenum, GLsizei, GLenum, GLboolean) glHistogram; - void function(GLenum) glResetHistogram; - void function(GLenum, GLboolean, GLenum, GLenum, void*) glGetHistogram; - void function(GLenum, GLenum, GLfloat*) glGetHistogramParameterfv; - void function(GLenum, GLenum, GLint*) glGetHistogramParameteriv; - void function(GLenum, GLenum, GLboolean) glMinmax; - void function(GLenum) glResetMinmax; - void function(GLenum, GLboolean, GLenum, GLenum, void*) glGetMinmax; - void function(GLenum, GLenum, GLfloat*) glGetMinmaxParameterfv; - void function(GLenum, GLenum, GLint*) glGetMinmaxParameteriv; - void function(GLenum, GLenum, GLsizei, GLenum, GLenum, in void*) glConvolutionFilter1D; - void function(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, in void*) glConvolutionFilter2D; - void function(GLenum, GLenum, GLfloat) glConvolutionParameterf; - void function(GLenum, GLenum, in GLfloat*) glConvolutionParameterfv; - void function(GLenum, GLenum, GLint) glConvolutionParameteri; - void function(GLenum, GLenum, in GLint*) glConvolutionParameteriv; - void function(GLenum, GLenum, GLint, GLint, GLsizei) glCopyConvolutionFilter1D; - void function(GLenum, GLenum, GLint, GLint, GLsizei, GLsizei) glCopyConvolutionFilter2D; - void function(GLenum, GLenum, GLenum, void*) glGetConvolutionFilter; - void function(GLenum, GLenum, GLfloat*) glGetConvolutionParameterfv; - void function(GLenum, GLenum, GLint*) glGetConvolutionParameteriv; - void function(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, in void*, in void*) glSeparableFilter2D; - void function(GLenum, GLenum, GLenum, void*, void*, void*) glGetSeparableFilter; - - // GL_ARB_instanced_arrays - void function(GLuint, GLuint) glVertexAttribDivisorARB; - - // GL_ARB_map_buffer_range - void* function(GLenum, GLintptr, GLsizeiptr, GLbitfield) glMapBufferRange; - void function(GLenum, GLintptr, GLsizeiptr) glFlushMappedBufferRange; - - // GL_ARB_texture_buffer_object - void function(GLenum, GLenum, GLuint) glTexBufferARB; - - // GL_ARB_vertex_array_object - void function(GLuint) glBindVertexArray; - void function(GLsizei, in GLuint*) glDeleteVertexArrays; - void function(GLsizei, GLuint*) glGenVertexArrays; - GLboolean function(GLuint) glIsVertexArray; - - // GL_ARB_copy_buffer - void function(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr) glCopyBufferSubData; - - // GL_ARB_uniform_buffer_object - void function(GLuint, GLsizei, in char**, GLuint*) glGetUniformIndices; - void function(GLuint, GLsizei, in GLuint*, GLenum, GLint*) glGetActiveUniformsiv; - void function(GLuint, GLuint, GLsizei, GLsizei*, char*) glGetActiveUniformName; - GLuint function(GLuint, in char*) glGetUniformBlockIndex; - void function(GLuint, GLuint, GLenum, int*) glGetActiveUniformBlockiv; - void function(GLuint, GLuint, GLsizei, GLsizei*, char*) glGetActiveUniformBlockName; - void function(GLuint, GLuint, GLuint) glUniformBlockBinding; - - // GL_ARB_draw_elements_base_vertex - void function(GLenum, GLsizei, GLenum, const(GLvoid)*, GLint) glDrawElementsBaseVertex; - void function(GLenum, GLuint, GLuint, GLsizei, GLenum, const(GLvoid)*, GLint) glDrawRangeElementsBaseVertex; - void function(GLenum, GLsizei, GLenum, const(GLvoid)*, GLsizei, GLint) glDrawElementsInstancedBaseVertex; - void function(GLenum, const(GLsizei)*, GLenum, const(GLvoid*)*, GLsizei, const(GLint)*) glMultiDrawElementsBaseVertex; - - // GL_ARB_vertex_attrib_64bit - void function(GLuint, GLenum, GLdouble*) glGetVertexAttribLdv; - void function(GLuint, GLdouble) glVertexAttribL1d; - void function(GLuint, in GLdouble*) glVertexAttribL1dv; - void function(GLuint, GLdouble, GLdouble) glVertexAttribL2d; - void function(GLuint, in GLdouble*) glVertexAttribL2dv; - void function(GLuint, GLdouble, GLdouble, GLdouble) glVertexAttribL3d; - void function(GLuint, in GLdouble*) glVertexAttribL3dv; - void function(GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glVertexAttribL4d; - void function(GLuint, in GLdouble*) glVertexAttribL4dv; - void function(GLuint, GLint, GLenum, GLsizei, in void*) glVertexAttribLPointer; - - // GL_ARB_provoking_vertex - void function(GLenum) glProvokingVertex; - - // GL_ARB_sync - GLsync function(GLenum, GLbitfield) glFenceSync; - GLboolean function(GLsync) glIsSync; - void function(GLsync) glDeleteSync; - GLenum function(GLsync, GLbitfield, GLuint64) glClientWaitSync; - void function(GLsync, GLbitfield, GLuint64) glWaitSync; - void function(GLsync, GLint64*) glGetInteger64v; - void function(GLsync, GLenum, GLsizei, GLsizei*, GLint*) glGetSynciv; - - // GL_ARB_texture_multisample - void function(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLboolean) glTexImage2DMultisample; - void function(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLsizei, GLboolean) glTexImage3DMultisample; - void function(GLenum, GLuint, GLfloat*) glGetMultisamplefv; - void function(GLuint, GLbitfield) glSampleMaski; - - // GL_ARB_viewport_array - void function(GLuint, GLsizei, in GLclampd*) glDepthRangeArrayv; - void function(GLuint, GLclampd, GLclampd) glDepthRangeIndexed; - void function(GLenum, GLuint, GLdouble*) glGetDoublei_v; - void function(GLenum, GLuint, GLfloat*) glGetFloati_v; - void function(GLuint, GLsizei, in GLint*) glScissorArrayv; - void function(GLuint, GLint, GLint, GLsizei, GLsizei) glScissorArrayIndexed; - void function(GLuint, GLint*) glScissorArrayIndexedv; - void function(GLuint, GLsizei, in GLfloat*) glViewportArrayv; - void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glViewportIndexedf; - void function(GLuint, in GLfloat*) glViewportIndexedfv; - - // GL_ARB_cl_event - void function(cl_context, cl_event, GLbitfield) glCreateSyncFromCLeventARB; - - // GL_ARB_debug_output - void function(GLDEBUGPROCARB, void*) glDebugMessageCallbackARB; - void function(GLenum, GLenum, GLenum, GLsizei, in GLuint*, GLboolean) glDebugMessageControlARB; - void function(GLenum, GLenum, GLuint, GLenum, GLsizei, in char*) glDebugMessageInsertARB; - GLuint function(GLuint, GLsizei, GLenum*, GLenum*, GLint*, GLenum*, GLsizei*, char*) glGetDebugMessageLogARB; - - // GL_ARB_robustness - void function(GLenum, GLenum, GLenum, GLsizei, void*) glGetnColorTableARB; - void function(GLenum, GLint, GLsizei, void*) glGetnCompressedTexImageARB; - void function(GLenum, GLenum, GLenum, GLsizei, void*) glGetnConvolutionFilterARB; - void function(GLenum, GLboolean, GLsizei, GLdouble*) glGetnHistogramARB; - void function(GLenum, GLenum, GLsizei, GLdouble*) glGetnMapdvARB; - void function(GLenum, GLenum, GLsizei, GLfloat*) glGetnMapfvARB; - void function(GLenum, GLenum, GLsizei, GLint*) glGetnMapivARB; - void function(GLenum, GLboolean, GLenum, GLenum, GLsizei, void*) glGetnMinMaxARB; - void function(GLenum, GLsizei, GLfloat*) glGetnPixelMapfvARB; - void function(GLenum, GLsizei, GLuint*) glGetnPixelMapuivARB; - void function(GLenum, GLsizei, GLushort*) glGetnPixelMapusvARB; - void function(GLsizei, GLubyte*) glGetnPolygonStippleARB; - void function(GLenum, GLenum, GLenum, GLsizei, void*, GLsizei, GLvoid*) glGetnSeparableFilterARB; - void function(GLenum, GLint, GLenum, GLenum, GLsizei, void*) glGetnTexImageARB; - void function(GLuint, GLint, GLsizei, GLdouble*) glGetnUniformdvARB; - void function(GLuint, GLint, GLsizei, GLfloat*) glGetnUniformfvARB; - void function(GLuint, GLint, GLsizei, GLint*) glGetnUniformivARB; - void function(GLuint, GLint, GLsizei, GLuint*) glGetUniformuivARB; - void function(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLsizei, void*) glReadnPixelsARB; - - // GL_ARB_blend_func_extended - void function(GLuint, GLuint, GLuint, const(GLchar)*) glBindFragDataLocationIndexed; - GLint function(GLuint, const(GLchar)*) glGetFragDataIndex; - - // GL_ARB_sampler_objects - void function(GLuint, GLuint*) glGenSamplers; - void function(GLsizei, in GLuint*) glDeleteSamplers; - GLboolean function(GLuint) glIsSampler; - void function(GLuint, GLuint) glBindSampler; - void function(GLuint, GLenum, GLint) glSamplerParameteri; - void function(GLuint, GLenum, in GLint*) glSamplerParameteriv; - void function(GLuint, GLenum, GLfloat) glSamplerParameterf; - void function(GLuint, GLenum, in GLfloat*) glSamplerParameterfv; - void function(GLuint, GLenum, in GLint*) glSamplerParameterIiv; - void function(GLuint, GLenum, in GLuint*) glSamplerParameterIuiv; - void function(GLuint, GLenum, GLint*) glGetSamplerParameteriv; - void function(GLuint, GLenum, GLint*) glGetSamplerParameterIiv; - void function(GLuint, GLenum, GLfloat*) glGetSamplerParameterfv; - void function(GLuint, GLenum, GLuint*) glGetSamplerParameterIuiv; - - // GL_ARB_timer_query - void function(GLuint, GLenum) glQueryCounter; - void function(GLuint, GLenum, GLint64*) glGetQueryObjecti64v; - void function(GLuint, GLenum, GLuint64*) glGetQueryObjectui64v; - - // GL_ARB_vertex_type_2_10_10_10_rev - void function(GLenum, GLuint) glVertexP2ui; - void function(GLenum, const(GLuint)*) glVertexP2uiv; - void function(GLenum, GLuint) glVertexP3ui; - void function(GLenum, const(GLuint)*) glVertexP3uiv; - void function(GLenum, GLuint) glVertexP4ui; - void function(GLenum, const(GLuint)*) glVertexP4uiv; - void function(GLenum, GLuint) glTexCoordP1ui; - void function(GLenum, const(GLuint)*) glTexCoordP1uiv; - void function(GLenum, GLuint) glTexCoordP2ui; - void function(GLenum, const(GLuint)*) glTexCoordP2uiv; - void function(GLenum, GLuint) glTexCoordP3ui; - void function(GLenum, const(GLuint)*) glTexCoordP3uiv; - void function(GLenum, GLuint) glTexCoordP4ui; - void function(GLenum, const(GLuint)*) glTexCoordP4uiv; - void function(GLenum, GLenum, GLuint) glMultiTexCoordP1ui; - void function(GLenum, GLenum, const(GLuint)*) glMultiTexCoordP1uiv; - void function(GLenum, GLenum, GLuint) glMultiTexCoordP2ui; - void function(GLenum, GLenum, const(GLuint)*) glMultiTexCoordP2uiv; - void function(GLenum, GLenum, GLuint) glMultiTexCoordP3ui; - void function(GLenum, GLenum, const(GLuint)*) glMultiTexCoordP3uiv; - void function(GLenum, GLenum, GLuint) glMultiTexCoordP4ui; - void function(GLenum, GLenum, const(GLuint)*) glMultiTexCoordP4uiv; - void function(GLenum, GLuint) glNormalP3ui; - void function(GLenum, const(GLuint)*) glNormalP3uiv; - void function(GLenum, GLuint) glColorP3ui; - void function(GLenum, const(GLuint)*) glColorP3uiv; - void function(GLenum, GLuint) glColorP4ui; - void function(GLenum, const(GLuint)*) glColorP4uiv; - void function(GLenum, GLuint) glSecondaryColorP3ui; - void function(GLenum, const(GLuint)*) glSecondaryColorP3uiv; - void function(GLuint, GLenum, GLboolean, GLuint) glVertexAttribP1ui; - void function(GLuint, GLenum, GLboolean, const(GLuint)*) glVertexAttribP1uiv; - void function(GLuint, GLenum, GLboolean, GLuint) glVertexAttribP2ui; - void function(GLuint, GLenum, GLboolean, const(GLuint)*) glVertexAttribP2uiv; - void function(GLuint, GLenum, GLboolean, GLuint) glVertexAttribP3ui; - void function(GLuint, GLenum, GLboolean, const(GLuint)*) glVertexAttribP3uiv; - void function(GLuint, GLenum, GLboolean, GLuint) glVertexAttribP4ui; - void function(GLuint, GLenum, GLboolean, const(GLuint)*) glVertexAttribP4uiv; - } - - version(DerelictGL_EXT) - { - // GL_EXT_blend_color - void function(GLclampf, GLclampf, GLclampf, GLclampf) glBlendColorEXT; - - // GL_EXT_polygon_offset - void function(GLfloat, GLfloat) glPolygonOffsetEXT; - - // GL_EXT_texture3D - void function(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, GLvoid*) glTexImage3DEXT; - void function(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, GLvoid*) glTexSubImage3DEXT; - - // GL_EXT_subtexture - void function(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, in GLvoid*) glTexSubImage1DEXT; - void function(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glTexSubImage21DEXT; - - // GL_EXT_copy_texture - void function(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint) glCopyTexImage1DEXT; - void function(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint)glCopyTexImage2DEXT; - void function(GLenum, GLint, GLint, GLint, GLint, GLsizei) glCopyTexSubImage1DEXT; - void function(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) glCopyTexSubImage2DEXT; - void function(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) glCopyTexSubImage3DEXT; - - // GL_EXT_histogram - void function(GLenum, GLboolean, GLenum, GLenum, GLvoid*) glGetHistogramEXT; - void function(GLenum, GLenum, GLfloat*) glGetHistogramParameterfvEXT; - void function(GLenum, GLenum, GLint*) glGetHistogramParameterivEXT; - void function(GLenum, GLboolean, GLenum, GLenum, GLvoid*) glGetMinmaxEXT; - void function(GLenum, GLenum, GLfloat*) glGetMinmaxParameterfvEXT; - void function(GLenum, GLsizei, GLenum, GLint*) glGetMinmaxParameterivEXT; - void function(GLenum, GLsizei, GLenum, GLboolean) glHistogramEXT; - void function(GLenum, GLenum, GLboolean) glMinmaxEXT; - void function(GLenum) glResetHistogramEXT; - void function(GLenum) glResetMinmaxEXT; - - // GL_EXT_convolution - void function(GLenum, GLenum, GLsizei, GLenum, GLenum, GLvoid*) glConvolutionFilter1DEXT; - void function(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, GLvoid*) glConvolutionFilter2DEXT; - void function(GLenum, GLenum, GLfloat) glConvolutionParameterfEXT; - void function(GLenum, GLenum, GLfloat*) glConvolutionParameterfvEXT; - void function(GLenum, GLenum, GLint) glConvolutionParameteriEXT; - void function(GLenum, GLenum, GLint*) glConvolutionParameterivEXT; - void function(GLenum, GLenum, GLint, GLint, GLsizei) glCopyConvolutionFilter1DEXT; - void function(GLenum, GLenum, GLint, GLint, GLsizei, GLsizei) glCopyConvolutionFilter2DEXT; - void function(GLenum, GLenum, GLenum, GLvoid*) glGetConvolutionFilterEXT; - void function(GLenum, GLenum, GLfloat*) glGetConvolutionParameterfvEXT; - void function(GLenum, GLenum, GLint*) glGetConvolutionParameterivEXT; - void function(GLenum, GLenum, GLenum, GLvoid*, GLvoid*, GLvoid*) glGetSeparableFilterEXT; - void function(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, GLvoid*, GLvoid*) glSeparableFilter2DEXT; - - // GL_EXT_texture_object - GLboolean function(GLsizei, in GLuint*, GLboolean*) glAreTexturesResidentEXT; - void function(GLenum, GLuint) glBindTextureEXT; - void function(GLsizei, in GLuint*) glDeleteTexturesEXT; - void function(GLsizei, GLuint*) glGenTexturesEXT; - GLboolean function(GLuint) glIsTextureEXT; - void function(GLsizei, in GLuint*, in GLclampf*) glPrioritizeTexturesEXT; - - // GL_EXT_vertex_array - void function(GLint) glArrayElementEXT; - void function(GLint, GLenum, GLsizei, GLsizei, in GLvoid*) glColorPointerEXT; - void function(GLenum, GLint, GLsizei) glDrawArraysEXT; - void function(GLsizei, GLsizei, in GLboolean*) glEdgeFlagPointerEXT; - void function(GLenum, GLvoid**) glGetPointervEXT; - void function(GLenum, GLsizei, GLsizei, in GLvoid*) glIndexPointerEXT; - void function(GLenum, GLsizei, GLsizei, in GLvoid*) glNormalPointerEXT; - void function(GLint, GLenum, GLsizei, GLsizei, in GLvoid*) glTexCoordPointerEXT; - void function(GLint, GLenum, GLsizei, GLsizei, in GLvoid*) glVertexPointerEXT; - - // GL_EXT_blend_minmax - void function(GLenum) glBlendEquationEXT; - - // GL_EXT_point_parameters - void function(GLenum, GLfloat) glPointParameterfEXT; - void function(GLenum, in GLfloat*) glPointParameterfvEXT; - - // GL_EXT_color_subtable - void function(GLenum, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glColorSubTableEXT; - void function(GLenum, GLsizei, GLint, GLint, GLsizei) glCopyColorSubTableEXT; - - // GL_EXT_paletted_texture - void function(GLenum, GLenum, GLsizei, GLenum, GLenum, in GLvoid*) glColorTableEXT; - void function(GLenum, GLenum, GLenum, GLvoid*) glGetColorTableEXT; - void function(GLenum, GLenum, GLint*) glGetColorTableParameterivEXT; - void function(GLenum, GLenum, GLfloat*) glGetColorTableParameterfvEXT; - - //GL_EXT_index_material - void function(GLenum, GLenum) glIndexMaterialEXT; - - // GL_EXT_index_func - void function(GLenum, GLclampf) glIndexFuncEXT; - - // GL_EXT_compiled_vertex_array - void function(GLint, GLsizei) glLockArraysEXT; - void function() glUnlockArraysEXT; - - // GL_EXT_cull_vertex - void function(GLenum, GLdouble*) glCullParameterdvEXT; - void function(GLenum, GLfloat*) glCullParameterfvEXT; - - // GL_EXT_draw_range_elements - void function(GLenum, GLuint, GLuint, GLsizei, GLenum, in GLvoid*) glDrawRangeElementsEXT; - - // GL_EXT_light_texture - void function(GLenum) glApplyTextureEXT; - void function(GLenum) glTextureLightEXT; - void function(GLenum, GLenum) glTextureMaterialEXT; - - // GL_EXT_pixel_transform - void function(GLenum, GLenum, GLint) glPixelTransformParameteriEXT; - void function(GLenum, GLenum, GLfloat) glPixelTransformParameterfEXT; - void function(GLenum, GLenum, in GLint*) glPixelTransformParameterivEXT; - void function(GLenum, GLenum, in GLfloat*) glPixelTransformParameterfvEXT; - - // GL_EXT_secondary_color - void function(GLbyte, GLbyte, GLbyte) glSecondaryColor3bEXT; - void function(in GLbyte*) glSecondaryColor3bvEXT; - void function(GLdouble, GLdouble, GLdouble) glSecondaryColor3dEXT; - void function(in GLdouble*) glSecondaryColor3dvEXT; - void function(GLfloat, GLfloat, GLfloat) glSecondaryColor3fEXT; - void function(in GLfloat*) glSecondaryColor3fvEXT; - void function(GLint, GLint, GLint) glSecondaryColor3iEXT; - void function(in GLint*) glSecondaryColor3ivEXT; - void function(GLshort, GLshort, GLshort) glSecondaryColor3sEXT; - void function(in GLshort*) glSecondaryColor3svEXT; - void function(GLubyte, GLubyte, GLubyte) glSecondaryColor3ubEXT; - void function(in GLubyte*) glSecondaryColor3ubvEXT; - void function(GLuint, GLuint, GLuint) glSecondaryColor3uiEXT; - void function(in GLuint*) glSecondaryColor3uivEXT; - void function(GLushort, GLushort, GLushort) glSecondaryColor3usEXT; - void function(in GLushort*) glSecondaryColor3usvEXT; - void function(GLint, GLenum, GLsizei, in GLvoid*) glSecondaryColorPointerEXT; - - // GL_EXT_texture_perturb_normal - void function(GLenum) glTextureNormalEXT; - - // GL_EXT_multi_draw_arrays - void function(GLenum, GLint*, GLsizei*, GLsizei) glMultiDrawArraysEXT; - void function(GLenum, in GLsizei*, GLenum, in GLvoid**, GLsizei) glMultiDrawElementsEXT; - - // GL_EXT_fog_coord - void function(GLfloat) glFogCoordfEXT; - void function(in GLfloat*) glFogCoordfvEXT; - void function(GLdouble) glFogCoorddEXT; - void function(in GLdouble*) glFogCoorddvEXT; - void function(GLenum, GLsizei, in GLvoid*) glFogCoordPointerEXT; - - // GL_EXT_coordinate_frame - void function(GLbyte, GLbyte, GLbyte) glTangent3bEXT; - void function(in GLbyte*) glTangent3bvEXT; - void function(GLdouble, GLdouble, GLdouble) glTangent3dEXT; - void function(in GLdouble*) glTangent3dvEXT; - void function(GLfloat, GLfloat, GLfloat) glTangent3fEXT; - void function(in GLfloat*) glTangent3fvEXT; - void function(GLint, GLint, GLint) glTangent3iEXT; - void function(in GLint*) glTangent3ivEXT; - void function(GLshort, GLshort, GLshort) glTangent3sEXT; - void function(in GLshort*) glTangent3svEXT; - void function(GLbyte, GLbyte, GLbyte) glBinormal3bEXT; - void function(in GLbyte*) glBinormal3bvEXT; - void function(GLdouble, GLdouble, GLdouble) glBinormal3dEXT; - void function(in GLdouble*) glBinormal3dvEXT; - void function(GLfloat, GLfloat, GLfloat) glBinormal3fEXT; - void function(in GLfloat*) glBinormal3fvEXT; - void function(GLint, GLint, GLint) glBinormal3iEXT; - void function(in GLint*) glBinormal3ivEXT; - void function(GLshort, GLshort, GLshort) glBinormal3sEXT; - void function(in GLshort*) glBinormal3svEXT; - void function(GLenum, GLsizei, in GLvoid*) glTangentPointerEXT; - void function(GLenum, GLsizei, in GLvoid*) glBinormalPointerEXT; - - // GL_EXT_blend_func_separate - void function(GLenum, GLenum, GLenum, GLenum) glBlendFuncSeparateEXT; - - // GL_EXT_vertex_weighting - void function(GLfloat) glVertexWeightfEXT; - void function(in GLfloat*) glVertexWeightfvEXT; - void function(GLsizei, GLenum, GLsizei, in GLvoid*) glVertexWeightPointerEXT; - - // GL_EXT_multisample - void function(GLclampf, GLboolean) glSampleMaskEXT; - void function(GLenum) glSamplePatternEXT; - - // GL_EXT_vertex_shader - void function() glBeginVertexShaderEXT; - void function() glEndVertexShaderEXT; - void function(GLuint) glBindVertexShaderEXT; - GLuint function(GLuint) glGenVertexShadersEXT; - void function(GLuint) glDeleteVertexShaderEXT; - void function(GLenum, GLuint, GLuint) glShaderOp1EXT; - void function(GLenum, GLuint, GLuint, GLuint) glShaderOp2EXT; - void function(GLenum, GLuint, GLuint, GLuint, GLuint) glShaderOp3EXT; - void function(GLuint, GLuint, GLenum, GLenum, GLenum, GLenum) glSwizzleEXT; - void function(GLuint, GLuint, GLenum, GLenum, GLenum, GLenum) glWriteMaskEXT; - void function(GLuint, GLuint, GLuint) glInsertComponentEXT; - void function(GLuint, GLuint, GLuint) glExtractComponentEXT; - GLuint function(GLenum, GLenum, GLenum, GLuint) glGenSymbolsEXT; - void function(GLuint, GLenum, in GLvoid*) glSetInvariantEXT; - void function(GLuint, GLenum, in GLvoid*) glSetLocalConstantEXT; - void function(GLuint, in GLbyte*) glVariantbvEXT; - void function(GLuint, in GLshort*) glVariantsvEXT; - void function(GLuint, in GLint*) glVariantivEXT; - void function(GLuint, in GLfloat*) glVariantfvEXT; - void function(GLuint, in GLdouble*) glVariantdvEXT; - void function(GLuint, in GLubyte*) glVariantubvEXT; - void function(GLuint, in GLushort*) glVariantusvEXT; - void function(GLuint, in GLuint*) glVariantuivEXT; - void function(GLuint, GLenum, GLuint, in GLvoid*) glVariantPointerEXT; - void function(GLuint) glEnableVariantClientStateEXT; - void function(GLuint) glDisableVariantClientStateEXT; - GLuint function(GLenum, GLenum) glBindLightParameterEXT; - GLuint function(GLenum, GLenum) glBindMaterialParameterEXT; - GLuint function(GLenum, GLenum, GLenum) glBindTexGenParameterEXT; - GLuint function(GLenum, GLenum) glBindTextureUnitParameterEXT; - GLuint function(GLenum) glBindParameterEXT; - GLboolean function(GLuint, GLenum) glIsVariantEnabledEXT; - void function(GLuint, GLenum, GLboolean*) glGetVariantBooleanvEXT; - void function(GLuint, GLenum, GLint*) glGetVariantIntegervEXT; - void function(GLuint, GLenum, GLfloat*) glGetVariantFloatvEXT; - void function(GLuint, GLenum, GLvoid**) glGetVariantPointervEXT; - void function(GLuint, GLenum, GLboolean*) glGetInvariantBooleanvEXT; - void function(GLuint, GLenum, GLint*) glGetInvariantIntegervEXT; - void function(GLuint, GLenum, GLfloat*) glGetInvariantFloatvEXT; - void function(GLuint, GLenum, GLboolean*) glGetLocalConstantBooleanvEXT; - void function(GLuint, GLenum, GLint*) glGetLocalConstantIntegervEXT; - void function(GLuint, GLenum, GLfloat*) glGetLocalConstantFloatvEXT; - - // GL_EXT_stencil_two_side - void function(GLenum) glActiveStencilFaceEXT; - - // GL_EXT_depth_bounds_test - void function(GLclampd, GLclampd) glDepthBoundsEXT; - - // GL_EXT_blend_equation_separate - void function(GLenum, GLenum) glBlendEquationSeparateEXT; - - // GL_EXT_framebuffer_object - GLboolean function(GLuint) glIsRenderbufferEXT; - void function(GLenum, GLuint) glBindRenderbufferEXT; - void function(GLsizei, in GLuint*) glDeleteRenderbuffersEXT; - void function(GLsizei, GLuint*) glGenRenderbuffersEXT; - void function(GLenum, GLenum, GLsizei, GLsizei) glRenderbufferStorageEXT; - void function(GLenum, GLenum, GLint*) glGetRenderbufferParameterivEXT; - GLboolean function(GLuint) glIsFramebufferEXT; - void function(GLenum, GLuint) glBindFramebufferEXT; - void function(GLsizei, in GLuint*) glDeleteFramebuffersEXT; - void function(GLsizei, GLuint*) glGenFramebuffersEXT; - GLenum function(GLenum) glCheckFramebufferStatusEXT; - void function(GLenum, GLenum, GLenum, GLuint, GLint) glFramebufferTexture1DEXT; - void function(GLenum, GLenum, GLenum, GLuint, GLint) glFramebufferTexture2DEXT; - void function(GLenum, GLenum, GLenum, GLuint, GLint, GLint) glFramebufferTexture3DEXT; - void function(GLenum, GLenum, GLenum, GLuint) glFramebufferRenderbufferEXT; - void function(GLenum, GLenum, GLenum, GLint*) glGetFramebufferAttachmentParameterivEXT; - void function(GLenum) glGenerateMipmapEXT; - - // GL_EXT_stencil_clear_tag - void function(GLsizei, GLuint) glStencilClearTagEXT; - - // GL_EXT_framebuffer_blit - void function(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum) glBlitFramebufferEXT; - - // GL_EXT_framebuffer_multisample - void function(GLenum, GLsizei, GLenum, GLsizei, GLsizei) glRenderbufferStorageMultisampleEXT; - - // GL_EXT_timer_query - void function(GLuint, GLenum, GLint64EXT*) glGetQueryObjecti64vEXT; - void function(GLuint, GLenum, GLuint64EXT*) glGetQueryObjectui64vEXT; - - // GL_EXT_gpu_program_parameters - void function(GLenum, GLuint, GLsizei, in GLfloat*) glProgramEnvParameters4fvEXT; - void function(GLenum, GLuint, GLsizei, in GLfloat*) glProgramLocalParameters4fvEXT; - - // GL_EXT_geometry_shader4 - void function(GLuint, GLenum, GLint) glProgramParameteriEXT; - - // GL_EXT_gpu_shader4 - void function(GLuint, GLint, GLuint*) glGetUniformuivEXT; - void function(GLuint, GLuint, in GLchar*) glBindFragDataLocationEXT; - GLint function(GLuint, in GLchar*) glGetFragDataLocationEXT; - void function(GLint, GLuint) glUniform1uiEXT; - void function(GLint, GLuint, GLuint) glUniform2uiEXT; - void function(GLint, GLuint, GLuint, GLuint) glUniform3uiEXT; - void function(GLint, GLuint, GLuint, GLuint, GLuint) glUniform4uiEXT; - void function(GLint, GLsizei, in GLuint*) glUniform1uivEXT; - void function(GLint, GLsizei, in GLuint*) glUniform2uivEXT; - void function(GLint, GLsizei, in GLuint*) glUniform3uivEXT; - void function(GLint, GLsizei, in GLuint*) glUniform4uivEXT; - - // GL_EXT_draw_instanced - void function(GLenum, GLint, GLsizei, GLsizei) glDrawArraysInstancedEXT; - void function(GLenum, GLsizei, GLenum, in GLvoid*, GLsizei) glDrawElementsInstancedEXT; - - // GL_EXT_texture_buffer_object - void function(GLenum, GLenum, GLuint) glTexBufferEXT; - - // GL_EXT_draw_buffers2 - void function(GLuint, GLboolean, GLboolean, GLboolean, GLboolean) glColorMaskIndexedEXT; - void function(GLenum, GLuint, GLboolean*) glGetBooleanIndexedvEXT; - void function(GLenum, GLuint, GLint*) glGetIntegerIndexedvEXT; - void function(GLenum, GLuint) glEnableIndexedEXT; - void function(GLenum, GLuint) glDisableIndexedEXT; - GLboolean function(GLenum, GLuint) glIsEnabledIndexedEXT; - - // GL_EXT_bindable_uniform - void function(GLuint, GLint, GLuint) glUniformBufferEXT; - void function(GLuint, GLint) glGetUniformBufferSizeEXT; - void function(GLuint, GLint) glGetUniformOffsetEXT; - - // GL_EXT_texture_integer - void function(GLenum, GLenum, in GLint*) glTexParameterIivEXT; - void function(GLenum, GLenum, in GLuint*) glTexParameterIuivEXT; - void function(GLenum, GLenum, GLint*) glGetTexParameterIivEXT; - void function(GLenum, GLenum, GLuint*) glGetTexParameterIuivEXT; - void function(GLint, GLint, GLint, GLint) glClearColorIiEXT; - void function(GLuint, GLuint, GLuint, GLuint) glClearColorIuiEXT; - - // GL_EXT_transform_feedback - void function(GLenum) glBeginTransformFeedbackEXT; - void function() glEndTransformFeedbackEXT; - void function(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr) glBindBufferRangeEXT; - void function(GLenum, GLuint, GLuint, GLintptr) glBindBufferOffsetEXT; - void function(GLenum, GLuint, GLuint) glBindBufferBaseEXT; - void function(GLuint, GLsizei, in GLchar**, GLenum) glTransformFeedbackVaryingsEXT; - void function(GLuint, GLuint, GLsizei, GLsizei*, GLsizei*, GLenum*, GLchar*) glGetTransformFeedbackVaryingEXT; - - // GL_EXT_direct_state_access - void function(GLbitfield) glClientAttribDefaultEXT; - void function(GLbitfield) glPushClientAttribDefaultEXT; - void function(GLenum, in GLfloat*) glMatrixLoadfEXT; - void function(GLenum, in GLdouble*) glMatrixLoaddEXT; - void function(GLenum, in GLfloat*) glMatrixMultfEXT; - void function(GLenum, in GLdouble*) glMatrixMultdEXT; - void function(GLenum) glMatrixLoadIdentityEXT; - void function(GLenum, GLfloat, GLfloat, GLfloat, GLfloat) glMatrixRotatefEXT; - void function(GLenum, GLdouble, GLdouble, GLdouble, GLdouble) glMatrixRotatedEXT; - void function(GLenum, GLfloat, GLfloat, GLfloat) glMatrixScalefEXT; - void function(GLenum, GLdouble, GLdouble, GLdouble) glMatrixScaledEXT; - void function(GLenum, GLfloat, GLfloat, GLfloat) glMatrixTranslatefEXT; - void function(GLenum, GLdouble, GLdouble, GLdouble) glMatrixTranslatedEXT; - void function(GLenum, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble) glMatrixFrustumEXT; - void function(GLenum, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble) glMatrixOrthoEXT; - void function(GLenum) glMatrixPopEXT; - void function(GLenum) glMatrixPushEXT; - void function(GLenum, in GLfloat*) glMatrixLoadTransposefEXT; - void function(GLenum, in GLdouble*) glMatrixLoadTransposedEXT; - void function(GLenum, in GLfloat*) glMatrixMultTransposefEXT; - void function(GLenum, in GLdouble*) glMatrixMultTransposedEXT; - void function(GLuint, GLenum, GLenum, GLfloat) glTextureParameterfEXT; - void function(GLuint, GLenum, GLenum, in GLfloat*) glTextureParameterfvEXT; - void function(GLuint, GLenum, GLenum, GLint) glTextureParameteriEXT; - void function(GLuint, GLenum, GLenum, in GLint*) glTextureParameterivEXT; - void function(GLuint, GLenum, GLint, GLenum, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glTextureImage1DEXT; - void function(GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glTextureImage2DEXT; - void function(GLuint, GLenum, GLint, GLint, GLsizei, GLenum, GLenum, in GLvoid*) glTextureSubImage1DEXT; - void function(GLuint, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glTextureSubImage2DEXT; - void function(GLuint, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint) glCopyTextureImage1DEXT; - void function(GLuint, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint) glCopyTextureImage2DEXT; - void function(GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei) glCopyTextureSubImage1DEXT; - void function(GLuint, GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) glCopyTextureSubImage2DEXT; - void function(GLuint, GLenum, GLint, GLenum, GLenum, GLvoid*) glGetTextureImageEXT; - void function(GLuint, GLenum, GLenum, GLfloat*) glGetTextureParameterfvEXT; - void function(GLuint, GLenum, GLenum, GLint*) glGetTextureParameterivEXT; - void function(GLuint, GLenum, GLint, GLenum, GLfloat*) glGetTextureLevelParameterfvEXT; - void function(GLuint, GLenum, GLint, GLenum, GLint*) glGetTextureLevelParameterivEXT; - void function(GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glTextureImage3DEXT; - void function(GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glTextureSubImage3DEXT; - void function(GLuint, GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) glCopyTextureSubImage3DEXT; - void function(GLenum, GLenum, GLenum, GLfloat) glMultiTexParameterfEXT; - void function(GLenum, GLenum, GLenum, in GLfloat*) glMultiTexParameterfvEXT; - void function(GLenum, GLenum, GLenum, GLint) glMultiTexParameteriEXT; - void function(GLenum, GLenum, GLenum, in GLint*) glMultiTexParameterivEXT; - void function(GLenum, GLenum, GLint, GLenum, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glMultiTexImage1DEXT; - void function(GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glMultiTexImage2DEXT; - void function(GLenum, GLenum, GLint, GLint, GLsizei, GLenum, GLenum, in GLvoid*) glMultiTexSubImage1DEXT; - void function(GLenum, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glMultiTexSubImage2DEXT; - void function(GLenum, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint) glCopyMultiTexImage1DEXT; - void function(GLenum, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint) glCopyMultiTexImage2DEXT; - void function(GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei) glCopyMultiTexSubImage1DEXT; - void function(GLenum, GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) glCopyMultiTexSubImage2DEXT; - void function(GLenum, GLenum, GLint, GLenum, GLenum, GLvoid*) glGetMultiTexImageEXT; - void function(GLenum, GLenum, GLenum, GLfloat*) glGetMultiTexParameterfvEXT; - void function(GLenum, GLenum, GLenum, GLint*) glGetMultiTexParameterivEXT; - void function(GLenum, GLenum, GLint, GLenum, GLfloat*) glGetMultiTexLevelParameterfvEXT; - void function(GLenum, GLenum, GLint, GLenum, GLint*) glGetMultiTexLevelParameterivEXT; - void function(GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glMultiTexImage3DEXT; - void function(GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glMultiTexSubImage3DEXT; - void function(GLenum, GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) glCopyMultiTexSubImage3DEXT; - void function(GLenum, GLenum, GLuint) glBindMultiTextureEXT; - void function(GLenum, GLuint) glEnableClientStateIndexedEXT; - void function(GLenum, GLuint) glDisableClientStateIndexedEXT; - void function(GLenum, GLint, GLenum, GLsizei, in GLvoid*) glMultiTexCoordPointerEXT; - void function(GLenum, GLenum, GLenum, GLfloat) glMultiTexEnvfEXT; - void function(GLenum, GLenum, GLenum, in GLfloat*) glMultiTexEnvfvEXT; - void function(GLenum, GLenum, GLenum, GLint) glMultiTexEnviEXT; - void function(GLenum, GLenum, GLenum, in GLint*) glMultiTexEnvivEXT; - void function(GLenum, GLenum, GLenum, GLdouble) glMultiTexGendEXT; - void function(GLenum, GLenum, GLenum, in GLdouble*) glMultiTexGendvEXT; - void function(GLenum, GLenum, GLenum, GLfloat) glMultiTexGenfEXT; - void function(GLenum, GLenum, GLenum, in GLfloat*) glMultiTexGenfvEXT; - void function(GLenum, GLenum, GLenum, GLint) glMultiTexGeniEXT; - void function(GLenum, GLenum, GLenum, in GLint*) glMultiTexGenivEXT; - void function(GLenum, GLenum, GLenum, GLfloat*) glGetMultiTexEnvfvEXT; - void function(GLenum, GLenum, GLenum, GLint*) glGetMultiTexEnvivEXT; - void function(GLenum, GLenum, GLenum, GLdouble*) glGetMultiTexGendvEXT; - void function(GLenum, GLenum, GLenum, GLfloat*) glGetMultiTexGenfvEXT; - void function(GLenum, GLenum, GLenum, GLint*) glGetMultiTexGenivEXT; - void function(GLenum, GLuint, GLfloat*) glGetFloatIndexedvEXT; - void function(GLenum, GLuint, GLdouble*) glGetDoubleIndexedvEXT; - void function(GLenum, GLuint, GLvoid**) glGetPointerIndexedvEXT; - void function(GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedTextureImage3DEXT; - void function(GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedTextureImage2DEXT; - void function(GLuint, GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedTextureImage1DEXT; - void function(GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedTextureSubImage3DEXT; - void function(GLuint, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedTextureSubImage2DEXT; - void function(GLuint, GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedTextureSubImage1DEXT; - void function(GLuint, GLenum, GLint, GLvoid*) glGetCompressedTextureImageEXT; - void function(GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedMultiTexImage3DEXT; - void function(GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedMultiTexImage2DEXT; - void function(GLenum, GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedMultiTexImage1DEXT; - void function(GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedMultiTexSubImage3DEXT; - void function(GLenum, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedMultiTexSubImage2DEXT; - void function(GLenum, GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedMultiTexSubImage1DEXT; - void function(GLenum, GLenum, GLint, GLvoid*) glGetCompressedMultiTexImageEXT; - void function(GLuint, GLenum, GLenum, GLsizei, in GLvoid*) glNamedProgramStringEXT; - void function(GLuint, GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glNamedProgramLocalParameter4dEXT; - void function(GLuint, GLenum, GLuint, in GLdouble*) glNamedProgramLocalParameter4dvEXT; - void function(GLuint, GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glNamedProgramLocalParameter4fEXT; - void function(GLuint, GLenum, GLuint, in GLfloat*) glNamedProgramLocalParameter4fvEXT; - void function(GLuint, GLenum, GLuint, GLdouble*) glGetNamedProgramLocalParameterdvEXT; - void function(GLuint, GLenum, GLuint, GLfloat*) glGetNamedProgramLocalParameterfvEXT; - void function(GLuint, GLenum, GLenum, GLint*) glGetNamedProgramivEXT; - void function(GLuint, GLenum, GLenum, GLvoid*) glGetNamedProgramStringEXT; - void function(GLuint, GLenum, GLuint, GLsizei, in GLfloat*) glNamedProgramLocalParameters4fvEXT; - void function(GLuint, GLenum, GLuint, GLint, GLint, GLint, GLint) glNamedProgramLocalParameterI4iEXT; - void function(GLuint, GLenum, GLuint, in GLint*) glNamedProgramLocalParameterI4ivEXT; - void function(GLuint, GLenum, GLuint, GLsizei, in GLint*) glNamedProgramLocalParametersI4ivEXT; - void function(GLuint, GLenum, GLuint, GLuint, GLuint, GLuint, GLuint) glNamedProgramLocalParameterI4uiEXT; - void function(GLuint, GLenum, GLuint, in GLuint*) glNamedProgramLocalParameterI4uivEXT; - void function(GLuint, GLenum, GLuint, GLsizei, in GLuint*) glNamedProgramLocalParametersI4uivEXT; - void function(GLuint, GLenum, GLuint, GLint*) glGetNamedProgramLocalParameterIivEXT; - void function(GLuint, GLenum, GLuint, GLuint*) glGetNamedProgramLocalParameterIuivEXT; - void function(GLuint, GLenum, GLenum, in GLint*) glTextureParameterIivEXT; - void function(GLuint, GLenum, GLenum, in GLuint*) glTextureParameterIuivEXT; - void function(GLuint, GLenum, GLenum, GLint*) glGetTextureParameterIivEXT; - void function(GLuint, GLenum, GLenum, GLuint*) glGetTextureParameterIuivEXT; - void function(GLenum, GLenum, GLenum, in GLint*) glMultiTexParameterIivEXT; - void function(GLenum, GLenum, GLenum, in GLuint*) glMultiTexParameterIuivEXT; - void function(GLenum, GLenum, GLenum, GLint*) glGetMultiTexParameterIivEXT; - void function(GLenum, GLenum, GLenum, GLuint*) glGetMultiTexParameterIuivEXT; - void function(GLuint, GLint, GLfloat) glProgramUniform1fEXT; - void function(GLuint, GLint, GLfloat, GLfloat) glProgramUniform2fEXT; - void function(GLuint, GLint, GLfloat, GLfloat, GLfloat) glProgramUniform3fEXT; - void function(GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat) glProgramUniform4fEXT; - void function(GLuint, GLint, GLint) glProgramUniform1iEXT; - void function(GLuint, GLint, GLint, GLint) glProgramUniform2iEXT; - void function(GLuint, GLint, GLint, GLint, GLint) glProgramUniform3iEXT; - void function(GLuint, GLint, GLint, GLint, GLint, GLint) glProgramUniform4iEXT; - void function(GLuint, GLint, GLsizei, in GLfloat*) glProgramUniform1fvEXT; - void function(GLuint, GLint, GLsizei, in GLfloat*) glProgramUniform2fvEXT; - void function(GLuint, GLint, GLsizei, in GLfloat*) glProgramUniform3fvEXT; - void function(GLuint, GLint, GLsizei, in GLfloat*) glProgramUniform4fvEXT; - void function(GLuint, GLint, GLsizei, in GLint*) glProgramUniform1ivEXT; - void function(GLuint, GLint, GLsizei, in GLint*) glProgramUniform2ivEXT; - void function(GLuint, GLint, GLsizei, in GLint*) glProgramUniform3ivEXT; - void function(GLuint, GLint, GLsizei, in GLint*) glProgramUniform4ivEXT; - void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix2fvEXT; - void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix3fvEXT; - void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix4fvEXT; - void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix2x3fvEXT; - void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix3x2fvEXT; - void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix2x4fvEXT; - void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix4x2fvEXT; - void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix3x4fvEXT; - void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix4x3fvEXT; - void function(GLuint, GLint, GLuint) glProgramUniform1uiEXT; - void function(GLuint, GLint, GLuint, GLuint) glProgramUniform2uiEXT; - void function(GLuint, GLint, GLuint, GLuint, GLuint) glProgramUniform3uiEXT; - void function(GLuint, GLint, GLuint, GLuint, GLuint, GLuint) glProgramUniform4uiEXT; - void function(GLuint, GLint, GLsizei, in GLuint*) glProgramUniform1uivEXT; - void function(GLuint, GLint, GLsizei, in GLuint*) glProgramUniform2uivEXT; - void function(GLuint, GLint, GLsizei, in GLuint*) glProgramUniform3uivEXT; - void function(GLuint, GLint, GLsizei, in GLuint*) glProgramUniform4uivEXT; - void function(GLuint, GLsizeiptr, in GLvoid*, GLenum) glNamedBufferDataEXT; - void function(GLuint, GLintptr, GLsizeiptr, in GLvoid*) glNamedBufferSubDataEXT; - GLvoid* function(GLuint, GLenum) glMapNamedBufferEXT; - GLboolean function(GLuint) glUnmapNamedBufferEXT; - void function(GLuint, GLenum, GLint*) glGetNamedBufferParameterivEXT; - void function(GLuint, GLenum, GLvoid**) glGetNamedBufferPointervEXT; - void function(GLuint, GLintptr, GLsizeiptr, GLvoid*) glGetNamedBufferSubDataEXT; - void function(GLuint, GLenum, GLenum, GLuint) glTextureBufferEXT; - void function(GLenum, GLenum, GLenum, GLuint) glMultiTexBufferEXT; - void function(GLuint, GLenum, GLsizei, GLsizei) glNamedRenderbufferStorageEXT; - void function(GLuint, GLenum, GLint*) glGetNamedRenderbufferParameterivEXT; - GLenum function(GLuint, GLenum) glCheckNamedFramebufferStatusEXT; - void function(GLuint, GLenum, GLenum, GLuint, GLint) glNamedFramebufferTexture1DEXT; - void function(GLuint, GLenum, GLenum, GLuint, GLint) glNamedFramebufferTexture2DEXT; - void function(GLuint, GLenum, GLenum, GLuint, GLint, GLint) glNamedFramebufferTexture3DEXT; - void function(GLuint, GLenum, GLenum, GLuint) glNamedFramebufferRenderbufferEXT; - void function(GLuint, GLenum, GLenum, GLint*) glGetNamedFramebufferAttachmentParameterivEXT; - void function(GLuint, GLenum) glGenerateTextureMipmapEXT; - void function(GLenum, GLenum) glGenerateMultiTexMipmapEXT; - void function(GLuint, GLenum) glFramebufferDrawBufferEXT; - void function(GLuint, GLsizei, in GLenum*) glFramebufferDrawBuffersEXT; - void function(GLuint, GLenum) glFramebufferReadBufferEXT; - void function(GLuint, GLenum, GLint*) glGetFramebufferParameterivEXT; - void function(GLuint, GLsizei, GLenum, GLsizei, GLsizei) glNamedRenderbufferStorageMultisampleEXT; - void function(GLuint, GLsizei, GLsizei, GLenum, GLsizei, GLsizei) glNamedRenderbufferStorageMultisampleCoverageEXT; - void function(GLuint, GLenum, GLuint, GLint) glNamedFramebufferTextureEXT; - void function(GLuint, GLenum, GLuint, GLint, GLint) glNamedFramebufferTextureLayerEXT; - void function(GLuint, GLenum, GLuint, GLint, GLenum) glNamedFramebufferTextureFaceEXT; - void function(GLuint, GLenum, GLuint) glTextureRenderbufferEXT; - void function(GLenum, GLenum, GLuint) glMultiTexRenderbufferEXT; - - // GL_EXT_provoking_vertex - void function(GLenum) glProvokingVertexEXT; - - // GL_EXT_separate_shader_objects - void function(GLenum, GLuint) glUseShaderProgramEXT; - void function(GLuint) glActiveProgramEXT; - GLuint function(GLenum, in GLchar*) glCreateShaderProgramEXT; - } - - version(DerelictGL_NV) - { - // GL_NV_vertex_array_range - void function() glFlushVertexArrayRangeNV; - void function(GLsizei, in GLvoid*) glVertexArrayRangeNV; - - // GL_NV_register_combiners - void function(GLenum, in GLfloat*) glCombinerParameterfvNV; - void function(GLenum, GLfloat) glCombinerParameterfNV; - void function(GLenum, in GLint*) glCombinerParameterivNV; - void function(GLenum, GLint) glCombinerParameteriNV; - void function(GLenum, GLenum, GLenum, GLenum, GLenum, GLenum) glCombinerInputNV; - void function(GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean) glCombinerOutputNV; - void function(GLenum, GLenum, GLenum, GLenum) glFinalCombinerInputNV; - void function(GLenum, GLenum, GLenum, GLenum, GLfloat*) glGetCombinerInputParameterfvNV; - void function(GLenum, GLenum, GLenum, GLenum, GLint*) glGetCombinerInputParameterivNV; - void function(GLenum, GLenum, GLenum, GLfloat*) glGetCombinerOutputParameterfvNV; - void function(GLenum, GLenum, GLenum, GLint*) glGetCombinerOutputParameterivNV; - void function(GLenum, GLenum, GLfloat*) glGetFinalCombinerInputParameterfvNV; - void function(GLenum, GLenum, GLint*) glGetFinalCombinerInputParameterivNV; - - // GL_NV_fence - void function(GLsizei, in GLuint*) glDeleteFencesNV; - void function(GLsizei, GLuint*) glGenFencesNV; - GLboolean function(GLuint) glIsFenceNV; - GLboolean function(GLuint) glTestFenceNV; - void function(GLuint, GLenum, GLint*) glGetFenceivNV; - void function(GLuint) glFinishFenceNV; - void function(GLuint, GLenum) glSetFenceNV; - - // GL_NV_evaluators - void function(GLenum, GLuint, GLenum, GLsizei, GLsizei, GLint, GLint, GLboolean, in GLvoid*) glMapControlPointsNV; - void function(GLenum, GLenum, in GLint*) glMapParameterivNV; - void function(GLenum, GLenum, in GLfloat*) glMapParameterfvNV; - void function(GLenum, GLuint, GLenum, GLsizei, GLsizei, GLboolean, GLvoid*) glGetMapControlPointsNV; - void function(GLenum, GLenum, GLint*) glGetMapParameterivNV; - void function(GLenum, GLenum, GLfloat*) glGetMapParameterfvNV; - void function(GLenum, GLuint, GLenum, GLint*) glGetMapAttribParameterivNV; - void function(GLenum, GLuint, GLenum, GLfloat*) glGetMapAttribParameterfvNV; - - // GL_NV_register_combiners2 - void function(GLenum, GLenum, in GLfloat*) glCombinerStageParameterfvNV; - void function(GLenum, GLenum, GLfloat*) glGetCombinerStageParameterfvNV; - - // GL_NV_vertex_program - GLboolean function(GLsizei, in GLuint*, GLboolean*) glAreProgramsResidentNV; - void function(GLenum, GLuint) glBindProgramNV; - void function(GLsizei, in GLuint*) glDeleteProgramsNV; - void function(GLenum, GLuint, in GLfloat*) glExecuteProgramNV; - void function(GLsizei, GLuint*) glGenProgramsNV; - void function(GLenum, GLuint, GLenum, GLdouble*) glGetProgramParameterdvNV; - void function(GLenum, GLuint, GLenum, GLfloat*) glGetProgramParameterfvNV; - void function(GLuint, GLenum, GLint*) glGetProgramivNV; - void function(GLuint, GLenum, GLubyte*) glGetProgramStringNV; - void function(GLenum, GLuint, GLenum, GLint*) glGetTrackMatrixivNV; - void function(GLuint, GLenum, GLdouble*) glGetVertexAttribdvNV; - void function(GLuint, GLenum, GLfloat*) glGetVertexAttribfvNV; - void function(GLuint, GLenum, GLint*) glGetVertexAttribivNV; - void function(GLuint, GLenum, GLvoid**) glGetVertexAttribPointervNV; - GLboolean function(GLuint) glIsProgramNV; - void function(GLenum, GLuint, GLsizei, in GLubyte*) glLoadProgramNV; - void function(GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glProgramParameter4dNV; - void function(GLenum, GLuint, in GLdouble*) glProgramParameter4dvNV; - void function(GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glProgramParameter4fNV; - void function(GLenum, GLuint, in GLfloat*) glProgramParameter4fvNV; - void function(GLenum, GLuint, GLuint, in GLdouble*) glProgramParameters4dvNV; - void function(GLenum, GLuint, GLuint, in GLfloat*) glProgramParameters4fvNV; - void function(GLsizei, in GLuint*) glRequestResidentProgramsNV; - void function(GLenum, GLuint, GLenum, GLenum) glTrackMatrixNV; - void function(GLuint, GLint, GLenum, GLsizei, in GLvoid*) glVertexAttribPointerNV; - void function(GLuint, GLdouble) glVertexAttrib1dNV; - void function(GLuint, in GLdouble*) glVertexAttrib1dvNV; - void function(GLuint, GLfloat) glVertexAttrib1fNV; - void function(GLuint, in GLfloat*) glVertexAttrib1fvNV; - void function(GLuint, GLshort) glVertexAttrib1sNV; - void function(GLuint, in GLshort*) glVertexAttrib1svNV; - void function(GLuint, GLdouble, GLdouble) glVertexAttrib2dNV; - void function(GLuint, in GLdouble*) glVertexAttrib2dvNV; - void function(GLuint, GLfloat, GLfloat) glVertexAttrib2fNV; - void function(GLuint, in GLfloat*) glVertexAttrib2fvNV; - void function(GLuint, GLshort, GLshort) glVertexAttrib2sNV; - void function(GLuint, in GLshort*) glVertexAttrib2svNV; - void function(GLuint, GLdouble, GLdouble, GLdouble) glVertexAttrib3dNV; - void function(GLuint, in GLdouble*) glVertexAttrib3dvNV; - void function(GLuint, GLfloat, GLfloat, GLfloat) glVertexAttrib3fNV; - void function(GLuint, in GLfloat*) glVertexAttrib3fvNV; - void function(GLuint, GLshort, GLshort, GLshort) glVertexAttrib3sNV; - void function(GLuint, in GLshort*) glVertexAttrib3svNV; - void function(GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glVertexAttrib4dNV; - void function(GLuint, in GLdouble*) glVertexAttrib4dvNV; - void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glVertexAttrib4fNV; - void function(GLuint, in GLfloat*) glVertexAttrib4fvNV; - void function(GLuint, GLshort, GLshort, GLshort, GLshort) glVertexAttrib4sNV; - void function(GLuint, in GLshort*) glVertexAttrib4svNV; - void function(GLuint, GLubyte, GLubyte, GLubyte, GLubyte) glVertexAttrib4ubNV; - void function(GLuint, in GLubyte*) glVertexAttrib4ubvNV; - void function(GLuint, GLsizei, in GLdouble*) glVertexAttribs1dvNV; - void function(GLuint, GLsizei, in GLfloat*) glVertexAttribs1fvNV; - void function(GLuint, GLsizei, in GLshort*) glVertexAttribs1svNV; - void function(GLuint, GLsizei, in GLdouble*) glVertexAttribs2dvNV; - void function(GLuint, GLsizei, in GLfloat*) glVertexAttribs2fvNV; - void function(GLuint, GLsizei, in GLshort*) glVertexAttribs2svNV; - void function(GLuint, GLsizei, in GLdouble*) glVertexAttribs3dvNV; - void function(GLuint, GLsizei, in GLfloat*) glVertexAttribs3fvNV; - void function(GLuint, GLsizei, in GLshort*) glVertexAttribs3svNV; - void function(GLuint, GLsizei, in GLdouble*) glVertexAttribs4dvNV; - void function(GLuint, GLsizei, in GLfloat*) glVertexAttribs4fvNV; - void function(GLuint, GLsizei, in GLshort*) glVertexAttribs4svNV; - void function(GLuint, GLsizei, in GLubyte*) glVertexAttribs4ubvNV; - - // GL_NV_occlusion_query - void function(GLsizei, GLuint*) glGenOcclusionQueriesNV; - void function(GLsizei, in GLuint*) glDeleteOcclusionQueriesNV; - GLboolean function(GLuint) glIsOcclusionQueryNV; - void function(GLuint) glBeginOcclusionQueryNV; - void function() glEndOcclusionQueryNV; - void function(GLuint, GLenum, GLint*) glGetOcclusionQueryivNV; - void function(GLuint, GLenum, GLuint*) glGetOcclusionQueryuivNV; - - // GL_NV_point_sprite - void function(GLenum, GLint) glPointParameteriNV; - void function(GLenum, in GLint*) glPointParameterivNV; - - // GL_NV_fragment_program - void function(GLuint, GLsizei, in GLubyte*, GLfloat, GLfloat, GLfloat, GLfloat) glProgramNamedParameter4fNV; - void function(GLuint, GLsizei, in GLubyte*, GLdouble, GLdouble, GLdouble, GLdouble) glProgramNamedParameter4dNV; - void function(GLuint, GLsizei, in GLubyte*, in GLfloat*) glProgramNamedParameter4fvNV; - void function(GLuint, GLsizei, in GLubyte*, in GLdouble*) glProgramNamedParameter4dvNV; - void function(GLuint, GLsizei, in GLubyte*, GLfloat*) glGetProgramNamedParameterfvNV; - void function(GLuint, GLsizei, in GLubyte*, GLdouble*) glGetProgramNamedParameterdvNV; - - // GL_NV_half_float - void function(GLhalfNV, GLhalfNV) glVertex2hNV; - void function(in GLhalfNV*) glVertex2hvNV; - void function(GLhalfNV, GLhalfNV, GLhalfNV) glVertex3hNV; - void function(in GLhalfNV*) glVertex3hvNV; - void function(GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV) glVertex4hNV; - void function(in GLhalfNV*) glVertex4hvNV; - void function(GLhalfNV, GLhalfNV, GLhalfNV) glNormal3hNV; - void function(in GLhalfNV*) glNormal3hvNV; - void function(GLhalfNV, GLhalfNV, GLhalfNV) glColor3hNV; - void function(in GLhalfNV*) glColor3hvNV; - void function(GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV) glColor4hNV; - void function(in GLhalfNV*) glColor4hvNV; - void function(GLhalfNV) glTexCoord1hNV; - void function(in GLhalfNV*) glTexCoord1hvNV; - void function(GLhalfNV, GLhalfNV) glTexCoord2hNV; - void function(in GLhalfNV*) glTexCoord2hvNV; - void function(GLhalfNV, GLhalfNV, GLhalfNV) glTexCoord3hNV; - void function(in GLhalfNV*) glTexCoord3hvNV; - void function(GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV) glTexCoord4hNV; - void function(in GLhalfNV*) glTexCoord4hvNV; - void function(GLenum, GLhalfNV) glMultiTexCoord1hNV; - void function(GLenum, in GLhalfNV*) glMultiTexCoord1hvNV; - void function(GLenum, GLhalfNV, GLhalfNV) glMultiTexCoord2hNV; - void function(GLenum, in GLhalfNV*) glMultiTexCoord2hvNV; - void function(GLenum, GLhalfNV, GLhalfNV, GLhalfNV) glMultiTexCoord3hNV; - void function(GLenum, in GLhalfNV*) glMultiTexCoord3hvNV; - void function(GLenum, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV) glMultiTexCoord4hNV; - void function(GLenum, in GLhalfNV*) glMultiTexCoord4hvNV; - void function(GLhalfNV) glFogCoordhNV; - void function(in GLhalfNV*) glFogCoordhvNV; - void function(GLhalfNV, GLhalfNV, GLhalfNV) glSecondaryColor3hNV; - void function(in GLhalfNV*) glSecondaryColor3hvNV; - - // These two funcs seem not to be present in the NVIDIA drivers -// void function(GLhalfNV) glVertexWeighthNV; -// void function(in GLhalfNV*) glVertexWeighthvNV; - - void function(GLuint, GLhalfNV) glVertexAttrib1hNV; - void function(GLuint, in GLhalfNV*) glVertexAttrib1hvNV; - void function(GLuint, GLhalfNV, GLhalfNV) glVertexAttrib2hNV; - void function(GLuint, in GLhalfNV*) glVertexAttrib2hvNV; - void function(GLuint, GLhalfNV, GLhalfNV, GLhalfNV) glVertexAttrib3hNV; - void function(GLuint, in GLhalfNV*) glVertexAttrib3hvNV; - void function(GLuint, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV) glVertexAttrib4hNV; - void function(GLuint, in GLhalfNV*) glVertexAttrib4hvNV; - void function(GLuint, GLsizei, in GLhalfNV*) glVertexAttribs1hvNV; - void function(GLuint, GLsizei, in GLhalfNV*) glVertexAttribs2hvNV; - void function(GLuint, GLsizei, in GLhalfNV*) glVertexAttribs3hvNV; - void function(GLuint, GLsizei, in GLhalfNV*) glVertexAttribs4hvNV; - - // GL_NV_pixel_data_range - void function(GLenum, GLsizei, GLvoid*) glPixelDataRangeNV; - void function(GLenum) glFlushPixelDataRangeNV; - - // GL_NV_primitive_restart - void function() glPrimitiveRestartNV; - void function(GLuint) glPrimitiveRestartIndexNV; - - // GL_NV_gpu_program4 - void function(GLenum, GLuint, GLint, GLint, GLint, GLint) glProgramLocalParameterI4iNV; - void function(GLenum, GLuint, in GLint*) glProgramLocalParameterI4ivNV; - void function(GLenum, GLuint, GLsizei, in GLint*) glProgramLocalParametersI4ivNV; - void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint) glProgramLocalParameterI4uiNV; - void function(GLenum, GLuint, in GLuint*) glProgramLocalParameterI4uivNV; - void function(GLenum, GLuint, GLsizei, in GLuint*) glProgramLocalParametersI4uivNV; - void function(GLenum, GLuint, GLint, GLint, GLint, GLint) glProgramEnvParameterI4iNV; - void function(GLenum, GLuint, in GLint*) glProgramEnvParameterI4ivNV; - void function(GLenum, GLuint, GLsizei, in GLint*) glProgramEnvParametersI4ivNV; - void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint) glProgramEnvParameterI4uiNV; - void function(GLenum, GLuint, in GLuint*) glProgramEnvParameterI4uivNV; - void function(GLenum, GLuint, GLsizei, in GLuint*) glProgramEnvParametersI4uivNV; - void function(GLenum, GLuint, GLint*) glGetProgramLocalParameterIivNV; - void function(GLenum, GLuint, GLuint*) glGetProgramLocalParameterIuivNV; - void function(GLenum, GLuint, GLint*) glGetProgramEnvParameterIivNV; - void function(GLenum, GLuint, GLuint*) glGetProgramEnvParameterIuivNV; - - // GL_NV_geometry_program4 - void function(GLenum, GLint) glProgramVertexLimitNV; - void function(GLenum, GLenum, GLuint, GLint) glFramebufferTextureEXT; - void function(GLenum, GLenum, GLuint, GLint, GLint) glFramebufferTextureLayerEXT; - void function(GLenum, GLenum, GLuint, GLint, GLenum) glFramebufferTextureFaceEXT; - - // GL_NV_vertex_program4 - void function(GLuint, GLint) glVertexAttribI1iEXT; - void function(GLuint, GLint, GLint) glVertexAttribI2iEXT; - void function(GLuint, GLint, GLint, GLint) glVertexAttribI3iEXT; - void function(GLuint, GLint, GLint, GLint, GLint) glVertexAttribI4iEXT; - void function(GLuint, GLuint) glVertexAttribI1uiEXT; - void function(GLuint, GLuint, GLuint) glVertexAttribI2uiEXT; - void function(GLuint, GLuint, GLuint, GLuint) glVertexAttribI3uiEXT; - void function(GLuint, GLuint, GLuint, GLuint, GLuint) glVertexAttribI4uiEXT; - void function(GLuint, in GLint*) glVertexAttribI1ivEXT; - void function(GLuint, in GLint*) glVertexAttribI2ivEXT; - void function(GLuint, in GLint*) glVertexAttribI3ivEXT; - void function(GLuint, in GLint*) glVertexAttribI4ivEXT; - void function(GLuint, in GLuint*) glVertexAttribI1uivEXT; - void function(GLuint, in GLuint*) glVertexAttribI2uivEXT; - void function(GLuint, in GLuint*) glVertexAttribI3uivEXT; - void function(GLuint, in GLuint*) glVertexAttribI4uivEXT; - void function(GLuint, in GLbyte*) glVertexAttribI4bvEXT; - void function(GLuint, in GLshort*) glVertexAttribI4svEXT; - void function(GLuint, in GLubyte*) glVertexAttribI4ubvEXT; - void function(GLuint, in GLushort*) glVertexAttribI4usvEXT; - void function(GLuint, GLint, GLenum, GLsizei, in GLvoid*) glVertexAttribIPointerEXT; - void function(GLuint, GLenum, GLint*) glGetVertexAttribIivEXT; - void function(GLuint, GLenum, GLuint*) glGetVertexAttribIuivEXT; - - // GL_NV_depth_buffer_float - void function(GLdouble, GLdouble) glDepthRangedNV; - void function(GLdouble) glClearDepthdNV; - void function(GLdouble, GLdouble) glDepthBoundsdNV; - - // GL_NV_framebuffer_multisample_coverage - void function(GLenum, GLsizei, GLsizei, GLenum, GLsizei, GLsizei) glRenderbufferStorageMultisampleCoverageNV; - - // GL_NV_transform_feedback - void function(GLenum) glBeginTransformFeedbackNV; - void function() glEndTransformFeedbackNV; - void function(GLuint, in GLint*, GLenum) glTransformFeedbackAttribsNV; - void function(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr) glBindBufferRangeNV; - void function(GLenum, GLuint, GLuint, GLintptr) glBindBufferOffsetNV; - void function(GLenum, GLuint, GLuint) glBindBufferBaseNV; - void function(GLuint, GLsizei, in GLchar**, GLenum) glTransformFeedbackVaryingsNV; - void function(GLuint, in GLchar*) glActiveVaryingNV; - GLint function(GLuint, in GLchar*) glGetVaryingLocationNV; - void function(GLuint, GLuint, GLsizei, GLsizei*, GLsizei*, GLenum*, GLchar*) glGetActiveVaryingNV; - void function(GLuint, GLuint, GLint*) glGetTransformFeedbackVaryingNV; - - // GL_NV_conditional_render - void function(GLuint, GLenum) glBeginConditionalRenderNV; - void function() glEndConditionalRenderNV; - - // GL_NV_present_video - void function(GLuint, GLuint64EXT, GLuint, GLuint, GLenum, GLenum, GLuint, GLuint, GLenum, GLuint, GLuint) glPresentFrameKeyedNV; - void function(GLuint, GLuint64EXT, GLuint, GLuint, GLenum, GLenum, GLuint, GLenum, GLuint, GLenum, GLuint, GLenum, GLuint) glPresentFrameDualFillNV; - void function(GLuint, GLenum, GLint*) glGetVideoivNV; - void function(GLuint, GLenum, GLuint*) glGetVideouivNV; - void function(GLuint, GLenum, GLint64EXT*) glGetVideoi64vNV; - void function(GLuint, GLenum, GLuint64EXT*) glGetVideoui64vNV; - - // GL_NV_explicit_multisample - void function(GLenum, GLuint, GLfloat*) glGetMultisamplefvNV; - void function(GLuint, GLbitfield) glSampleMaskIndexedNV; - void function(GLenum, GLuint) glTexRenderbufferNV; - - // GL_NV_transform_feedback2 - void function(GLenum, GLuint) glBindTransformFeedbackNV; - void function(GLsizei, in GLuint*) glDeleteTransformFeedbacksNV; - void function(GLsizei, GLuint*) glGenTransformFeedbacksNV; - GLboolean function(GLuint) glIsTransformFeedbackNV; - void function() glPauseTransformFeedbackNV; - void function() glResumeTransformFeedbackNV; - void function(GLenum, GLuint) glDrawTransformFeedbackNV; - - // GL_NV_video_capture - void function(GLuint) glBeginVideoCaptureNV; - void function(GLuint, GLuint, GLenum, GLintptrARB) glBindVideoCaptureStreamBufferNV; - void function(GLuint, GLuint, GLenum, GLenum, GLuint) glBindVideoCaptureStreamTextureNV; - void function(GLuint) glEndVideoCaptureNV; - void function(GLuint, GLenum, GLint*) glGetVideoCaptureivNV; - void function(GLuint, GLuint, GLenum, GLint*) glGetVideoCaptureStreamivNV; - void function(GLuint, GLuint, GLenum, GLfloat*) glGetVideoCaptureStreamfvNV; - void function(GLuint, GLuint, GLenum, GLdouble*) glGetVideoCaptureStreamdvNV; - GLenum function(GLuint, GLuint*, GLuint64EXT*) glVideoCaptureNV; - void function(GLuint, GLuint, GLenum, in GLint*) glVideoCaptureStreamParameterivNV; - void function(GLuint, GLuint, GLenum, in GLfloat*) glVideoCaptureStreamParameterfvNV; - void function(GLuint, GLuint, GLenum, in GLdouble*) glVideoCaptureStreamParameterdvNV; - - // GL_NV_copy_image - void function(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei) glCopyImageSubDataNV; - - // GL_NV_shader_buffer_load - void function(GLenum, GLenum) glMakeBufferResidentNV; - void function(GLenum) glMakeBufferNonResidentNV; - GLboolean function(GLenum) glIsBufferResidentNV; - void function(GLuint, GLenum) glNamedMakeBufferResidentNV; - void function(GLuint) glNamedMakeBufferNonResidentNV; - GLboolean function(GLuint) glIsNamedBufferResidentNV; - void function(GLenum, GLenum, GLuint64EXT*) glGetBufferParameterui64vNV; - void function(GLuint, GLenum, GLuint64EXT*) glGetNamedBufferParameterui64vNV; - void function(GLenum, GLuint64EXT*) glGetIntegerui64vNV; - void function(GLint, GLuint64EXT) glUniformui64NV; - void function(GLint, GLsizei, in GLuint64EXT*) glUniformui64vNV; - void function(GLuint, GLint, GLuint64EXT*) glGetUniformui64vNV; - void function(GLuint, GLint, GLuint64EXT) glProgramUniformui64NV; - void function(GLuint, GLint, GLsizei, in GLuint64EXT*) glProgramUniformui64vNV; - - // GL_NV_vertex_buffer_unified_memory - void function(GLenum, GLuint, GLuint64EXT, GLsizeiptr) glBufferAddressRangeNV; - void function(GLint, GLenum, GLsizei) glVertexFormatNV; - void function(GLenum, GLsizei) glNormalFormatNV; - void function(GLint, GLenum, GLsizei) glColorFormatNV; - void function(GLenum, GLsizei) glIndexFormatNV; - void function(GLint, GLenum, GLsizei) glTexCoordFormatNV; - void function(GLsizei) glEdgeFlagFormatNV; - void function(GLint, GLenum, GLsizei) glSecondaryColorFormatNV; - void function(GLenum, GLsizei) glFogCoordFormatNV; - void function(GLuint, GLint, GLenum, GLboolean, GLsizei) glVertexAttribFormatNV; - void function(GLuint, GLint, GLenum, GLsizei) glVertexAttribIFormatNV; - void function(GLenum, GLuint, GLuint64EXT*) glGetIntegerui64i_vNV; - - // GL_NV_texture_barrier - void function() glTextureBarrierNV; - } - - version(DerelictGL_ATI) - { - // GL_ATI_envmap_bumpmap - void function(GLenum, in GLint*) glTexBumpParameterivATI; - void function(GLenum, in GLfloat*) glTexBumpParameterfvATI; - void function(GLenum, GLint*) glGetTexBumpParameterivATI; - void function(GLenum, GLfloat*) glGetTexBumpParameterfvATI; - - // GL_ATI_fragment_shader - GLuint function(GLuint) glGenFragmentShadersATI; - void function(GLuint) glBindFragmentShaderATI; - void function(GLuint) glDeleteFragmentShaderATI; - void function() glBeginFragmentShaderATI; - void function() glEndFragmentShaderATI; - void function(GLuint, GLuint, GLenum) glPassTexCoordATI; - void function(GLuint, GLuint, GLenum) glSampleMapATI; - void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint) glColorFragmentOp1ATI; - void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint) glColorFragmentOp2ATI; - void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint) glColorFragmentOp3ATI; - void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint) glAlphaFragmentOp1ATI; - void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint) glAlphaFragmentOp2ATI; - void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint) glAlphaFragmentOp3ATI; - void function(GLuint, in GLfloat*) glSetFragmentShaderConstantATI; - - // GL_ATI_pn_triangles - void function(GLenum, GLint) glPNTrianglesiATI; - void function(GLenum, GLint) glPNTrianglesfATI; - - // GL_ATI_vertex_array_object - GLuint function(GLsizei, in GLvoid*, GLenum) glNewObjectBufferATI; - GLboolean function(GLuint) glIsObjectBufferATI; - void function(GLuint, GLuint, GLsizei, in GLvoid*, GLenum) glUpdateObjectBufferATI; - void function(GLuint, GLenum, GLfloat*) glGetObjectBufferfvATI; - void function(GLuint, GLenum, GLint*) glGetObjectBufferivATI; - void function(GLuint) glFreeObjectBufferATI; - void function(GLenum, GLint, GLenum, GLsizei, GLuint, GLuint) glArrayObjectATI; - void function(GLenum, GLenum, GLfloat*) glGetArrayObjectfvATI; - void function(GLenum, GLenum, GLint*) glGetArrayObjectivATI; - void function(GLuint, GLenum, GLsizei, GLuint, GLuint) glVariantArrayObjectATI; - void function(GLuint, GLenum, GLfloat*) glGetVariantArrayObjectfvATI; - void function(GLuint, GLenum, GLint*) glGetVariantArrayObjectivATI; - - // GL_ATI_vertex_streams - void function(GLenum, GLshort) glVertexStream1sATI; - void function(GLenum, in GLshort*) glVertexStream1svATI; - void function(GLenum, GLint) glVertexStream1iATI; - void function(GLenum, in GLint*) glVertexStream1ivATI; - void function(GLenum, GLfloat) glVertexStream1fATI; - void function(GLenum, in GLfloat*) glVertexStream1fvATI; - void function(GLenum, GLdouble) glVertexStream1dATI; - void function(GLenum, in GLdouble*) glVertexStream1dvATI; - void function(GLenum, GLshort, GLshort) glVertexStream2sATI; - void function(GLenum, in GLshort*) glVertexStream2svATI; - void function(GLenum, GLint, GLint) glVertexStream2iATI; - void function(GLenum, in GLint*) glVertexStream2ivATI; - void function(GLenum, GLfloat, GLfloat) glVertexStream2fATI; - void function(GLenum, in GLfloat*) glVertexStream2fvATI; - void function(GLenum, GLdouble, GLdouble) glVertexStream2dATI; - void function(GLenum, in GLdouble*) glVertexStream2dvATI; - void function(GLenum, GLshort, GLshort, GLshort) glVertexStream3sATI; - void function(GLenum, in GLshort*) glVertexStream3svATI; - void function(GLenum, GLint, GLint, GLint) glVertexStream3iATI; - void function(GLenum, in GLint*) glVertexStream3ivATI; - void function(GLenum, GLfloat, GLfloat, GLfloat) glVertexStream3fATI; - void function(GLenum, in GLfloat*) glVertexStream3fvATI; - void function(GLenum, GLdouble, GLdouble, GLdouble) glVertexStream3dATI; - void function(GLenum, in GLdouble*) glVertexStream3dvATI; - void function(GLenum, GLshort, GLshort, GLshort, GLshort) glVertexStream4sATI; - void function(GLenum, in GLshort*) glVertexStream4svATI; - void function(GLenum, GLint, GLint, GLint, GLint) glVertexStream4iATI; - void function(GLenum, in GLint*) glVertexStream4ivATI; - void function(GLenum, GLfloat, GLfloat, GLfloat, GLfloat) glVertexStream4fATI; - void function(GLenum, in GLfloat*) glVertexStream4fvATI; - void function(GLenum, GLdouble, GLdouble, GLdouble, GLdouble) glVertexStream4dATI; - void function(GLenum, in GLdouble*) glVertexStream4dvATI; - void function(GLenum, GLbyte, GLbyte, GLbyte) glNormalStream3bATI; - void function(GLenum, in GLbyte*) glNormalStream3bvATI; - void function(GLenum, GLshort, GLshort, GLshort) glNormalStream3sATI; - void function(GLenum, in GLshort*) glNormalStream3svATI; - void function(GLenum, GLint, GLint, GLint) glNormalStream3iATI; - void function(GLenum, in GLint*) glNormalStream3ivATI; - void function(GLenum, GLfloat, GLfloat, GLfloat) glNormalStream3fATI; - void function(GLenum, in GLfloat*) glNormalStream3fvATI; - void function(GLenum, GLdouble, GLdouble, GLdouble) glNormalStream3dATI; - void function(GLenum, in GLdouble*) glNormalStream3dvATI; - void function(GLenum) glClientActiveVertexStreamATI; - void function(GLenum, GLint) glVertexBlendEnviATI; - void function(GLenum, GLfloat) glVertexBlendEnvfATI; - - // GL_ATI_element_array - void function(GLenum, in GLvoid*) glElementPointerATI; - void function(GLenum, GLsizei) glDrawElementArrayATI; - void function(GLenum, GLuint, GLuint, GLsizei) glDrawRangeElementArrayATI; - - // GL_ATI_draw_buffers - void function(GLsizei, in GLenum*) glDrawBuffersATI; - - // GL_ATI_map_object_buffer - GLvoid* function(GLuint) glMapBufferATI; - void function(GLuint) glUnmapBufferATI; - - // GL_ATI_separate_stencil - void function(GLenum, GLenum, GLenum, GLenum) glStencilOpSeparateATI; - void function(GLenum, GLenum, GLint, GLuint) glStencilFuncSeparateATI; - - // GL_ATI_vertex_attrib_array_object - void function(GLuint, GLint, GLenum, GLboolean, GLsizei, GLuint, GLuint) glVertexAttribArrayObjectATI; - void function(GLuint, GLenum, GLfloat*) glGetVertexAttribArrayObjectfvATI; - void function(GLuint, GLenum, GLint*) glGetVertexAttribArrayObjectivATI; - } - - version(DerelictGL_AMD) - { - // GL_AMD_performance_monitor - void function(GLint*, GLsizei, GLuint*) glGetPerfMonitorGroupsAMD; - void function(GLuint, GLint*, GLint*, GLsizei, GLuint*) glGetPerfMonitorCountersAMD; - void function(GLuint, GLsizei, GLsizei*, GLchar*) glGetPerfMonitorGroupStringAMD; - void function(GLuint, GLuint, GLsizei, GLsizei*, GLchar*) glGetPerfMonitorCounterStringAMD; - void function(GLuint, GLuint, GLenum, void*) glGetPerfMonitorCounterInfoAMD; - void function(GLsizei, GLuint*) glGenPerfMonitorsAMD; - void function(GLsizei, GLuint*) glDeletePerfMonitorsAMD; - void function(GLuint, GLboolean, GLuint, GLint, GLuint*) glSelectPerfMonitorCountersAMD; - void function(GLuint) glBeginPerfMonitorAMD; - void function(GLuint) glEndPerfMonitorAMD; - void function(GLuint, GLenum, GLsizei, GLuint*, GLint*) glGetPerfMonitorCounterDataAMD; - - // GL_AMD_vertex_shader_tesselator - void function(GLfloat) glTessellationFactorAMD; - void function(GLenum) glTessellationModeAMD; - - // GL_AMD_draw_buffers_blend - void function(GLuint, GLenum, GLenum) glBlendFuncIndexedAMD; - void function(GLuint, GLenum, GLenum, GLenum, GLenum) glBlendFuncSeparateIndexedAMD; - void function(GLuint, GLenum) glBlendEquationIndexedAMD; - void function(GLuint, GLenum, GLenum) glBlendEquationSeparateIndexedAMD; - } - - version(DerelictGL_SGI) - { - // GL_SGI_color_table - void function(GLenum, GLenum, GLsizei, GLenum, GLenum, in GLvoid*) glColorTableSGI; - void function(GLenum, GLenum, in GLfloat*) glColorTableParameterfvSGI; - void function(GLenum, GLenum, in GLint*) glColorTableParameterivSGI; - void function(GLenum, GLenum, GLint, GLint, GLsizei) glCopyColorTableSGI; - void function(GLenum, GLenum, GLenum, GLvoid*) glGetColorTableSGI; - void function(GLenum, GLenum, GLfloat*) glGetColorTableParameterfvSGI; - void function(GLenum, GLenum, GLint*) glGetColorTableParameterivSGI; - } - - version(DerelictGL_SGIS) - { - // GL_SGIS_texture_filter4 - void function(GLenum, GLenum, GLfloat*) glGetTexFilterFuncSGIS; - void function(GLenum, GLenum, in GLfloat*) glTexFilterFuncSGIS; - - // GL_SGIS_pixel_texture - void function(GLenum, GLint) glPixelTexGenParameteriSGIS; - void function(GLenum, in GLint*) glPixelTexGenParameterivSGIS; - void function(GLenum, GLfloat) glPixelTexGenParameterfSGIS; - void function(GLenum, in GLfloat*) glPixelTexGenParameterfvSGIS; - void function(GLenum, GLint*) glGetPixelTexGenParameterivSGIS; - void function(GLenum, GLfloat*) glGetPixelTexGenParameterfvSGIS; - - // GL_SGIS_texture4D - void function(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glTexImage4DSGIS; - void function(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glTexSubImage4DSGIS; - - // GL_SGIS_detail_texture - void function(GLenum, GLsizei, in GLfloat*) glDetailTexFuncSGIS; - void function(GLenum, GLfloat*) glGetDetailTexFuncSGIS; - - // GL_SGIS_sharpen_texture - void function(GLenum, GLsizei, in GLfloat*) glSharpenTexFuncSGIS; - void function(GLenum, GLfloat*) glGetSharpenTexFuncSGIS; - - // GL_SGIS_multisample - void function(GLclampf, GLboolean) glSampleMaskSGIS; - void function(GLenum) glSamplePatternSGIS; - - // GL_SGIS_point_parameters - void function(GLenum, GLfloat) glPointParameterfSGIS; - void function(GLenum, in GLfloat*) glPointParameterfvSGIS; - - // GL_SGIS_fog_function - void function(GLsizei, in GLfloat*) glFogFuncSGIS; - void function(GLfloat*) glGetFogFuncSGIS; - - // GL_SGIS_texture_color_mask - void function(GLboolean, GLboolean, GLboolean, GLboolean) glTextureColorMaskSGIS; - } - - version(DerelictGL_SGIX) - { - // GL_SGIX_pixel_texture - void function(GLenum) glPixelTexGenSGIX; - - // GL_SGIX_sprite - void function(GLenum, GLfloat) glSpriteParameterfSGIX; - void function(GLenum, in GLfloat*) glSpriteParameterfvSGIX; - void function(GLenum, GLint) glSpriteParameteriSGIX; - void function(GLenum, in GLint*) glSpriteParameterivSGIX; - - // GL_SGIX_instruments - GLint function() glGetInstrumentsSGIX; - void function(GLsizei, GLint*) glInstrumentsBufferSGIX; - GLint function(GLint*) glPollInstrumentsSGIX; - void function(GLint) glReadInstrumentsSGIX; - void function() glStartInstrumentsSGIX; - void function(GLint) glStopInstrumentsSGIX; - - // GL_SGIX_framezoom - void function(GLint) glFrameZoomSGIX; - - // GL_SGIX_tag_sample_buffer - void function() glTagSampleBufferSGIX; - - // GL_SGIX_polynomial_ffd - void function(GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, in GLdouble*) glDeformationMap3dSGIX; - void function(GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, in GLfloat*) glDeformationMap3fSGIX; - void function(GLbitfield) glDeformSGIX; - void function(GLbitfield) glLoadIdentityDeformationMapSGIX; - - // GL_SGIX_reference_plane - void function(in GLdouble*) glReferencePlaneSGIX; - - // GL_SGIX_flush_raster - void function() glFLushRasterSGIX; - - // GL_SGIX_list_priority - void function(GLuint, GLenum, GLfloat*) glGetListParameterfvSGIX; - void function(GLuint, GLenum, GLint*) glGetListParameterivSGIX; - void function(GLuint, GLenum, GLfloat) glListParameterfSGIX; - void function(GLuint, GLenum, in GLfloat*) glListParameterfvSGIX; - void function(GLuint, GLenum, GLint) glListParameteriSGIX; - void function(GLuint, GLenum, in GLint*) glListParameterivSGIX; - - // GL_SGIX_fragment_lighting - void function(GLenum, GLenum) glFragmentColorMaterialSGIX; - void function(GLenum, GLenum, GLfloat) glFragmentLightfSGIX; - void function(GLenum, GLenum, in GLfloat*) glFragmentLightfvSGIX; - void function(GLenum, GLenum, GLint) glFragmentLightiSGIX; - void function(GLenum, GLenum, in GLint*) glFragmentLightivSGIX; - void function(GLenum, GLfloat) glFragmentLightModelfSGIX; - void function(GLenum, in GLfloat*) glFragmentLightModelfvSGIX; - void function(GLenum, GLint) glFragmentLightModeliSGIX; - void function(GLenum, in GLint*) glFragmentLightModelivSGIX; - void function(GLenum, GLenum, GLfloat) glFragmentMaterialfSGIX; - void function(GLenum, GLenum, in GLfloat*) glFragmentMaterialfvSGIX; - void function(GLenum, GLenum, GLint) glFragmentMaterialiSGIX; - void function(GLenum, GLenum, in GLint*) glFragmentMaterialivSGIX; - void function(GLenum, GLenum, GLfloat*) glGetFragmentLightfvSGIX; - void function(GLenum, GLenum, GLint*) glGetFragmentLightivSGIX; - void function(GLenum, GLenum, GLfloat*) glGetFragmentMaterialfvSGIX; - void function(GLenum, GLenum, GLint*) glGetFragmentMaterialivSGIX; - void function(GLenum, GLint) glLightEnviSGIX; - - // GL_SGIX_async - void function(GLuint) glAsyncMarkerSGIX; - GLint function(GLuint*) glFinishAsyncSGIX; - GLint function(GLuint*) glPollAsyncSGIX; - GLuint function(GLsizei) glGenAsyncMarkersSGIX; - void function(GLuint, GLsizei) glDeleteAsyncMarkersSGIX; - GLboolean function(GLuint) glIsAsyncMarkerSGIX; - } - - version(DerelictGL_HP) - { - // GL_HP_image_transform - void function(GLenum, GLenum, GLint) glImageTransformParameteriHP; - void function(GLenum, GLenum, GLfloat) glImageTransformParameterfHP; - void function(GLenum, GLenum, in GLint*) glImageTransformParameterivHP; - void function(GLenum, GLenum, in GLfloat*) glImageTransformParameterfvHP; - void function(GLenum, GLenum, GLint*) glGetImageTransformParameterivHP; - void function(GLenum, GLenum, GLfloat*) glGetImageTransformParameterfvHP; - } - - version(DerelictGL_PGI) - { - // GL_PGI_misc_hints - void function(GLenum, GLint) glHintPGI; - } - - version(DerelictGL_IBM) - { - // GL_IBM_multimode_draw_arrays - void function(in GLenum*, in GLint*, in GLsizei*, GLsizei, GLint) glMultiModeDrawArraysIBM; - void function(in GLenum*, in GLsizei*, GLenum, in GLvoid**, GLsizei, GLint) glMultiModeDrawElementsIBM; - - // GL_IBM_vertex_array_lists - void function(GLint, GLenum, GLint, in GLvoid**, GLint) glColorPointerListIBM; - void function(GLint, GLenum, GLint, in GLvoid**, GLint) glSecondaryColorPointerListIBM; - void function(GLint, in GLboolean**, GLint) glEdgeFlagPointerListIBM; - void function(GLenum, GLint, in GLvoid**, GLint) glFogCoordPointerListIBM; - void function(GLenum, GLint, in GLvoid**, GLint) glIndexPointerListIBM; - void function(GLenum, GLint, in GLvoid**, GLint) glNormalPointerListIBM; - void function(GLint, GLenum, GLint, in GLvoid**, GLint) glTexCoordPointerListIBM; - void function(GLint, GLenum, GLint, in GLvoid**, GLint) glVertexPointerListIBM; - } - - version(DerelictGL_WIN) - { - } - - version(DerelictGL_INTEL) - { - // GL_INTEL_parallel_arrays - void function(GLint, GLenum, in GLvoid**) glVertexPointervINTEL; - void function(GLenum, in GLvoid**) glNormalPointervINTEL; - void function(GLint, GLenum, in GLvoid**) glColorPointervINTEL; - void function(GLint, GLenum, in GLvoid**) glTexCoordPointervINTEL; - } - - version(DerelictGL_REND) - { - } - - version(DerelictGL_APPLE) - { - // GL_APPLE_element_array - void function(GLenum, in GLvoid*) glElementPointerAPPLE; - void function(GLenum, GLint, GLsizei) glDrawElementArrayAPPLE; - void function(GLenum, GLuint, GLuint, GLint, GLsizei) glDrawRangeElementArrayAPPLE; - void function(GLenum, in GLint*, in GLsizei*, GLsizei) glMultiDrawElementArrayAPPLE; - void function(GLenum, GLuint, GLuint, in GLint*, in GLsizei*, GLsizei) glMultiDrawRangeElementArrayAPPLE; - - // GL_APPLE_fence - void function(GLsizei, GLuint*) glGenFencesAPPLE; - void function(GLsizei, in GLuint*) glDeleteFencesAPPLE; - void function(GLuint) glSetFenceAPPLE; - GLboolean function(GLuint) glIsFenceAPPLE; - GLboolean function(GLuint) glTestFenceAPPLE; - void function(GLuint) glFinishFenceAPPLE; - GLboolean function(GLenum, GLuint) glTestObjectAPPLE; - void function(GLenum, GLint) glFinishObjectAPPLE; - - // GL_APPLE_vertex_array_object - void function(GLuint) glBindVertexArrayAPPLE; - void function(GLsizei, in GLuint*) glDeleteVertexArraysAPPLE; - void function(GLsizei, GLuint*) glGenVertexArraysAPPLE; - GLboolean function(GLuint) glIsVertexArrayAPPLE; - - // GL_APPLE_vertex_array_range - void function(GLsizei, GLvoid*) glVertexArrayRangeAPPLE; - void function(GLsizei, GLvoid*) glFlushVertexArrayRangeAPPLE; - void function(GLenum, GLint) glVertexArrayParameteriAPPLE; - - // GL_APPLE_flush_buffer_range - void function(GLenum, GLenum, GLint) glBufferParameteriAPPLE; - void function(GLenum, GLintptr, GLsizeiptr) glFlushMappedBufferRangeAPPLE; - - // GL_APPLE_texture_range - void function(GLenum, GLsizei, in GLvoid*) glTextureRangeAPPLE; - void function(GLenum, GLenum, GLvoid**) glGetTexParameterPointervAPPLE; - - // GL_APPLE_vertex_program_evaluators - void function(GLuint, GLenum) glEnableVertexAttribAPPLE; - void function(GLuint, GLenum) glDisableVertexAttribAPPLE; - GLboolean function(GLuint, GLenum) glIsVertexAttribAPPLE; - void function(GLuint, GLuint, GLdouble, GLdouble, GLint, GLint, in GLdouble*) glMapVertexAttrib1dAPPLE; - void function(GLuint, GLuint, GLfloat, GLfloat, GLint, GLint, in GLfloat*) glMapVertexAttrib1fAPPLE; - void function(GLuint, GLuint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, in GLdouble*) glMapVertexAttrib2dAPPLE; - void function(GLuint, GLuint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, in GLfloat*) glMapVertexAttrib2fAPPLE; - - // GL_APPLE_object_purgeable - GLenum function(GLenum, GLuint, GLenum) glObjectPurgeableAPPLE; - GLenum function(GLenum, GLuint, GLenum) glObjectUnpurgeableAPPLE; - void function(GLenum, GLuint, GLenum, GLuint*) glGetObjectParameterivAPPLE; - } - - version(DerelictGL_SUNX) - { - // GL_SUNX_inant_data - void function() glFinishTextureSUNX; - } - - version(DerelictGL_SUN) - { - // GL_SUN_global_alpha - void function(GLbyte) glGlobalAlphaFactorbSUN; - void function(GLshort) glGlobalAlphaFactorsSUN; - void function(GLint) glGlobalAlphaFactoriSUN; - void function(GLfloat) glGlobalAlphaFactorfSUN; - void function(GLdouble) glGlobalAlphaFactordSUN; - void function(GLubyte) glGlobalAlphaFactorubSUN; - void function(GLushort) glGlobalAlphaFactorusSUN; - void function(GLuint) glGlobalAlphaFactoruiSUN; - - // GL_SUN_triangle_list - void function(GLuint) glReplacementCodeuiSUN; - void function(GLushort) glReplacementCodeusSUN; - void function(GLubyte) glReplacementCodeubSUN; - void function(in GLuint*) glReplacementCodeuivSUN; - void function(in GLushort*) glReplacementCodeusvSUN; - void function(in GLubyte*) glReplacementCodeubvSUN; - void function(GLenum, GLsizei, in GLvoid**) glReplacementCodePointerSUN; - - // GL_SUN_vertex - void function(GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat) glColor4ubVertex2fSUN; - void function(in GLubyte*, in GLfloat*) glColor4ubVertex2fvSUN; - void function(GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat) glColor4ubVertex3fSUN; - void function(in GLubyte*, in GLfloat*) glColor4ubVertex3fvSUN; - void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glColor3fVertex3fSUN; - void function(in GLfloat*, in GLfloat*) glColor3fVertex3fvSUN; - void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glNormal3fVertex3fSUN; - void function(in GLfloat*, in GLfloat*) glNormal3fVertex3fvSUN; - void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glColor4fNormal3fVertex3fSUN; - void function(in GLfloat*, in GLfloat*, in GLfloat*) glColor4fNormal3fVertex3fvSUN; - void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glTexCoord2fVertex3fSUN; - void function(in GLfloat*, in GLfloat*) glTexCoord2fVertex3fvSUN; - void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glTexCoord4fVertex4fSUN; - void function(in GLfloat*, in GLfloat*) glTexCoord4fVertex4fvSUN; - void function(GLfloat, GLfloat, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat) glTexCoord2fColor4ubVertex3fSUN; - void function(in GLfloat*, in GLubyte*, in GLfloat*) glTexCoord2fColor4ubVertex3fvSUN; - void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glTexCoord2fColor3fVertex3fSUN; - void function(in GLfloat*, in GLfloat*, in GLfloat*) glTexCoord2fColor3fVertex3fvSUN; - void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glTexCoord2fNormal3fVertex3fSUN; - void function(in GLfloat*, in GLfloat*, in GLfloat*) glTexCoord2fNormal3fVertex3fvSUN; - void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glTexCoord2fColor4fNormal3fVertex3fSUN; - void function(in GLfloat*, in GLfloat*, in GLfloat*, in GLfloat*) glTexCoord2fColor4fNormal3fVertex3fvSUN; - void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glTexCoord4fColor4fNormal3fVertex4fSUN; - void function(in GLfloat*, in GLfloat*, in GLfloat*, in GLfloat*) glTexCoord4fColor4fNormal3fVertex4fvSUN; - void function(GLuint, GLfloat, GLfloat, GLfloat) glReplacementCodeuiVertex3fSUN; - void function(in GLuint*, in GLfloat*) glReplacementCodeuiVertex3fvSUN; - void function(GLuint, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat) glReplacementCodeuiColor4ubVertex3fSUN; - void function(in GLuint*, in GLubyte*, in GLfloat*) glReplacementCodeuiColor4ubVertex3fvSUN; - void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glReplacementCodeuiColor3fVertex3fSUN; - void function(in GLuint*, in GLfloat*, in GLfloat*) glReplacementCodeuiColor3fVertex3fvSUN; - void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glReplacementCodeuiNormal3fVertex3fSUN; - void function(in GLuint*, in GLfloat*, in GLfloat*) glReplacementCodeuiNormal3fVertex3fvSUN; - void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glReplacementCodeuiColor4fNormal3fVertex3fSUN; - void function(in GLuint*, in GLfloat*, in GLfloat*, in GLfloat*) glReplacementCodeuiColor4fNormal3fVertex3fvSUN; - void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glReplacementCodeuiTexCoord2fVertex3fSUN; - void function(in GLuint*, in GLfloat*, in GLfloat*) glReplacementCodeuiTexCoord2fVertex3fvSUN; - void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN; - void function(in GLuint*, in GLfloat*, in GLfloat*, in GLfloat*) glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN; - void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN; - void function(in GLuint*, in GLfloat*, in GLfloat*, in GLfloat*, in GLfloat*) glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN; - - // GL_SUN_mesh_array - void function(GLenum, GLint, GLsizei, GLsizei) glDrawMeshArraysSUN; - } - - version(DerelictGL_INGR) - { - } - - version(DerelictGL_MESA) - { - // GL_MESA_resize_buffers - void function() glResizeBuffersMESA; - - // GL_MESA_window_pos - void function(GLdouble, GLdouble) glWindowPos2dMESA; - void function(in GLdouble*) glWindowPos2dvMESA; - void function(GLfloat, GLfloat) glWindowPos2fMESA; - void function(in GLfloat*) glWindowPos2fvMESA; - void function(GLint, GLint) glWindowPos2iMESA; - void function(in GLint*) glWindowPos2ivMESA; - void function(GLshort, GLshort) glWindowPos2sMESA; - void function(in GLshort*) glWindowPos2svMESA; - void function(GLdouble, GLdouble, GLdouble) glWindowPos3dMESA; - void function(in GLdouble*) glWindowPos3dvMESA; - void function(GLfloat, GLfloat, GLfloat) glWindowPos3fMESA; - void function(in GLfloat*) glWindowPos3fvMESA; - void function(GLint, GLint, GLint) glWindowPos3iMESA; - void function(in GLint*) glWindowPos3ivMESA; - void function(GLshort, GLshort, GLshort) glWindowPos3sMESA; - void function(in GLshort*) glWindowPos3svMESA; - void function(GLdouble, GLdouble, GLdouble, GLdouble) glWindowPos4dMESA; - void function(in GLdouble*) glWindowPos4dvMESA; - void function(GLfloat, GLfloat, GLfloat, GLfloat) glWindowPos4fMESA; - void function(in GLfloat*) glWindowPos4fvMESA; - void function(GLint, GLint, GLint, GLint) glWindowPos4iMESA; - void function(in GLint*) glWindowPos4ivMESA; - void function(GLshort, GLshort, GLshort, GLshort) glWindowPos4sMESA; - void function(in GLshort*) glWindowPos4svMESA; - } - - version(DerelictGL_3DFX) - { - // GL_3DFX_tbuffer - void function(GLuint) glTbufferMask3DFX; - } - - version(DerelictGL_OML) - { - } - - version(DerelictGL_S3) - { - } - - version(DerelictGL_OES) - { - } - - version(DerelictGL_GREMEDY) - { - // GL_GREMEDY_string_marker - void function(GLsizei, in GLvoid*) glStringMarkerGREMEDY; - - // GL_GREMEDY_frame_terminator - void function() glFrameTerminatorGREMEDY; - } - - version(DerelictGL_MESAX) - { - } - - version(Windows) - { - version(DerelictGL_ARB) - { - // WGL_ARB_buffer_region - HANDLE function(HDC, int, UINT) wglCreateBufferRegionARB; - void function(HANDLE) wglDeleteBufferRegionARB; - BOOL function(HANDLE, int, int, int, int) wglSaveBufferRegionARB; - BOOL function(HANDLE, int, int, int, int, int, int) wglRestoreBufferRegionARB; - - // WGL_ARB_extensions_string - CCPTR function(HDC) wglGetExtensionsStringARB; - - // WGL_ARB_pixel_format - BOOL function(HDC, int, int, UINT, in int*, int*) wglGetPixelFormatAttribivARB; - BOOL function(HDC, int, int, UINT, in int*, float*) wglGetPixelFormatAttribfvARB; - BOOL function(HDC, in int*, in float*, UINT, int*, UINT*) wglChoosePixelFormatARB; - - // WGL_ARB_make_current_read - BOOL function(HDC, HDC, HGLRC) wglMakeContextCurrentARB; - HDC function() wglGetCurrentReadDCARB; - - // WGL_ARB_pbuffer - HPBUFFERARB function(HDC, int, int, int, in int*) wglCreatePbufferARB; - HDC function(HPBUFFERARB) wglGetPbufferDCARB; - int function(HPBUFFERARB, HDC) wglReleasePbufferDCARB; - BOOL function(HPBUFFERARB) wglDestroyPbufferARB; - BOOL function(HPBUFFERARB, int, int*) wglQueryPbufferARB; - - // WGL_ARB_render_texture - BOOL function(HPBUFFERARB, int) wglBindTexImageARB; - BOOL function(HPBUFFERARB, int) wglReleaseTexImageARB; - BOOL function(HPBUFFERARB, in int*) wglSetPbufferAttribARB; - - // WGL_ARB_create_context - HGLRC function(HDC, HGLRC, in int*) wglCreateContextAttribsARB; - } - - version(DerelictGL_EXT) - { - // WGL_EXT_display_color_table - GLboolean function(GLushort) wglBindDisplayColorTableEXT; - GLboolean function(GLushort) wglCreateDisplayColorTableEXT; - void function(GLushort) wglDestroyDisplayColorTableEXT; - GLboolean function(GLushort*, GLuint) wglLoadDisplayColorTableEXT; - - // WGL_EXT_extensions_string - CCPTR function() wglGetExtensionsStringEXT; - - // WGL_EXT_make_current_read - BOOL function(HDC, HDC, HGLRC) wglMakeContextCurrentEXT; - HDC function() wglGetCurrentReadDCEXT; - - // WGL_EXT_pbuffer - HPBUFFEREXT function(HDC, int, int, int, in int*) wglCreatePbufferEXT; - BOOL function(HPBUFFEREXT) wglDestroyPbufferEXT; - HDC function(HPBUFFEREXT) wglGetPbufferDCEXT; - BOOL function(HPBUFFEREXT, int, int*) wglQueryPbufferEXT; - int function(HPBUFFEREXT, HDC) wglReleasePbufferDCEXT; - - // WGL_EXT_pixel_format - BOOL function(HDC, in int*, in FLOAT*, UINT, int*, UINT*) wglChoosePixelFormatEXT; - BOOL function(HDC, int, int, UINT, int*, FLOAT*) wglGetPixelFormatAttribfvEXT; - BOOL function(HDC, int, int, UINT, int*, int*) wglGetPixelFormatAttribivEXT; - - // WGL_EXT_swap_control - int function() wglGetSwapIntervalEXT; - BOOL function(int) wglSwapIntervalEXT; - } - - version(DerelictGL_NV) - { - // WGL_NV_copy_image - BOOL function(HGLRC, GLuint, GLenum, GLint, GLint, GLint, GLint, HGLRC, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei) wglCopyImageSubDataNV; - - // WGL_NV_gpu_affinity - HDC function(in HGPUNV*) wglCreateAffinityDCNV; - BOOL function(HDC) wglDeleteDCNV; - BOOL function(HGPUNV, UINT, PGPU_DEVICE) wglEnumGpuDevicesNV; - BOOL function(HDC, UINT, HGPUNV*) wglEnumGpusFromAffinityDCNV; - BOOL function(UINT, HGPUNV*) wglEnumGpusNV; - - // WGL_NV_present_video - BOOL function(HDC, uint, HVIDEOOUTPUTDEVICENV, in int*) wglBindVideoDeviceNV; - int function(HDC, HVIDEOOUTPUTDEVICENV*) wglEnumerateVideoDevicesNV; - BOOL function(HDC, int, int*) wglQueryCurrentContextNV; - - // WGL_NV_swap_group - BOOL function(GLuint, GLuint) wglBindSwapBarrierNV; - BOOL function(HDC, GLuint) wglJoinSwapGroupNV; - BOOL function(HDC, GLuint*) wglQueryFrameCountNV; - BOOL function(HDC, GLuint*, GLuint*) wglQueryMaxSwapGroupsNV; - BOOL function(HDC, GLuint*, GLuint*) wglQuerySwapGroupNV; - BOOL function(HDC) wglResetFrameCountNV; - - // WGL_NV_vertex_array_range - void* function(GLsizei, GLfloat, GLfloat, GLfloat) wglAllocateMemoryNV; - void function(void*) wglFreeMemoryNV; - - // WGL_NV_video_output - BOOL function(HPVIDEODEV, HPBUFFERARB, int) wglBindVideoImageNV; - BOOL function(HDC, int, HPVIDEODEV*) wglGetVideoDeviceNV; - BOOL function(HPVIDEODEV, uint*, uint*) wglGetVideoInfoNV; - BOOL function(HPVIDEODEV) wglReleaseVideoDeviceNV; - BOOL function(HPBUFFERARB, int) wglReleaseVideoImageNV; - BOOL function(HPBUFFERARB, int, uint*, BOOL) wglSendPbufferToVideoNV; - } - - version(DerelictGL_AMD) - { - // WGL_AMD_gpu_association - void function(HGLRC, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum) wglBlitContextFramebufferAMD; - HGLRC function(UINT) wglCreateAssociatedContextAMD; - HGLRC function(UINT, HGLRC, in int*) wglCreateAssociatedContextAttribsAMD; - BOOL function(HGLRC) wglDeleteAssociatedContextAMD; - UINT function(HGLRC) wglGetContextGPUIDAMD; - HGLRC function() wglGetCurrentAssociatedContextAMD; - UINT function(UINT, UINT*) wglGetGPUIDsAMD; - INT function(UINT, INT, GLenum, UINT, void*) wglGetGPUInfoAMD; - BOOL function(HGLRC) wglMakeAssociatedContextCurrentAMD; - } - - version(DerelictGL_I3D) - { - // WGL_I3D_digital_video_control - BOOL function(HDC, int, int*) wglGetDigitalVideoParametersI3D; - BOOL function(HDC, int, in int*) wglSetDigitalVideoParametersI3D; - - // WGL_I3D_gamma - BOOL function(HDC, int, USHORT*, USHORT*, USHORT*) wglGetGammaTableI3D; - BOOL function(HDC, int, int*) wglGetGammaTableParametersI3D; - BOOL function(HDC, int, in USHORT*, in USHORT*, in USHORT*) wglSetGammaTableI3D; - BOOL function(HDC, int, in int*) wglSetGammaTableParametersI3D; - - // WGL_I3D_genlock - BOOL function(HDC) wglDisableGenlockI3D; - BOOL function(HDC) wglEnableGenlockI3D; - BOOL function(HDC, UINT) wglGenlockSampleRateI3D; - BOOL function(HDC, UINT) wglGenlockSourceDelayI3D; - BOOL function(HDC, UINT) wglGenlockSourceEdgeI3D; - BOOL function(HDC, UINT) wglGenlockSourceI3D; - BOOL function(HDC, UINT*) wglGetGenlockSampleRateI3D; - BOOL function(HDC, UINT*) wglGetGenlockSourceDelayI3D; - BOOL function(HDC, UINT*) wglGetGenlockSourceEdgeI3D; - BOOL function(HDC, UINT*) wglGetGenlockSourceI3D; - BOOL function(HDC, BOOL*) wglIsEnabledGenlockI3D; - BOOL function(HDC, UINT*, UINT*) wglQueryGenlockMaxSourceDelayI3D; - - // WGL_I3D_image_buffer - BOOL function(HDC, HANDLE*, LPVOID*, DWORD*, UINT) wglAssociateImageBufferEventsI3D; - LPVOID function(HDC, DWORD, UINT) wglCreateImageBufferI3D; - BOOL function(HDC, LPVOID) wglDestroyImageBufferI3D; - BOOL function(HDC, LPVOID*, UINT) wglReleaseImageBufferEventsI3D; - - // WGL_I3D_swap_frame_lock - BOOL function() wglDisableFrameLockI3D; - BOOL function() wglEnableFrameLockI3D; - BOOL function(BOOL*) wglIsEnabledFrameLockI3D; - BOOL function(BOOL*) wglQueryFrameLockMasterI3D; - - // WGL_I3D_swap_frame_usage - BOOL function() wglBeginFrameTrackingI3D; - BOOL function() wglEndFrameTrackingI3D; - BOOL function(float*) wglGetFrameUsageI3D; - BOOL function(DWORD*, DWORD*, float*) wglQueryFrameTrackingI3D; - } - - version(DerelictGL_OML) - { - // WGL_OML_sync_control - BOOL function(HDC, int*, int*) wglGetMscRateOML; - BOOL function(HDC, long*, long*, long*) wglGetSyncValuesOML; - long function(HDC, long, long, long) wglSwapBuffersMscOML; - long function(HDC, int, long, long, long) wglSwapLayerBuffersMscOML; - BOOL function(HDC, long, long, long, long*, long*, long*) wglWaitForMscOML; - BOOL function(HDC, long, long*, long*, long*) wglWaitForSbcOML; - } - - version(DerelictGL_3DL) - { - // WGL_3DL_stereo_control - BOOL function(HDC, UINT) wglSetStereoEmitterState3DL; - } - } - "); +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license(the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.opengl.extfuncs; + +private +{ + version(Windows) + { + import derelict.util.wintypes; + } + import derelict.util.compat; + import derelict.opengl.gltypes; + import derelict.opengl.exttypes; +} + +version = DerelictGL_ALL; + +version(DerelictGL_ALL) +{ + version = DerelictGL_ARB; + version = DerelictGL_EXT; + version = DerelictGL_NV; + version = DerelictGL_ATI; + version = DerelictGL_AMD; + version = DerelictGL_SGI; + version = DerelictGL_SGIS; + version = DerelictGL_SGIX; + version = DerelictGL_HP; + version = DerelictGL_PGI; + version = DerelictGL_IBM; + version = DerelictGL_WIN; + version = DerelictGL_INTEL; + version = DerelictGL_REND; + version = DerelictGL_APPLE; + version = DerelictGL_SUNX; + version = DerelictGL_SUN; + version = DerelictGL_INGR; + version = DerelictGL_MESA; + version = DerelictGL_3DFX; + version = DerelictGL_OML; + version = DerelictGL_S3; + version = DerelictGL_OES; + version = DerelictGL_GREMEDY; + version = DerelictGL_MESAX; + version = DerelictGL_I3D; + version = DerelictGL_3DL; +} + +extern(System) +{ + mixin(gsharedString!() ~ + " + version(DerelictGL_ARB) + { + // GL_ARB_multitexture + void function(GLenum) glActiveTextureARB; + void function(GLenum) glClientActiveTextureARB; + void function(GLenum, GLdouble) glMultiTexCoord1dARB; + void function(GLenum, in GLdouble*) glMultiTexCoord1dvARB; + void function(GLenum, GLfloat) glMultiTexCoord1fARB; + void function(GLenum, in GLfloat*) glMultiTexCoord1fvARB; + void function(GLenum, GLint) glMultiTexCoord1iARB; + void function(GLenum, in GLint*) glMultiTexCoord1ivARB; + void function(GLenum, GLshort) glMultiTexCoord1sARB; + void function(GLenum, in GLshort*) glMultiTexCoord1svARB; + void function(GLenum, GLdouble, GLdouble) glMultiTexCoord2dARB; + void function(GLenum, in GLdouble*) glMultiTexCoord2dvARB; + void function(GLenum, GLfloat, GLfloat) glMultiTexCoord2fARB; + void function(GLenum, in GLfloat*) glMultiTexCoord2fvARB; + void function(GLenum, GLint, GLint) glMultiTexCoord2iARB; + void function(GLenum, in GLint*) glMultiTexCoord2ivARB; + void function(GLenum, GLshort, GLshort) glMultiTexCoord2sARB; + void function(GLenum, in GLshort*) glMultiTexCoord2svARB; + void function(GLenum, GLdouble, GLdouble, GLdouble) glMultiTexCoord3dARB; + void function(GLenum, in GLdouble*) glMultiTexCoord3dvARB; + void function(GLenum, GLfloat, GLfloat, GLfloat) glMultiTexCoord3fARB; + void function(GLenum, in GLfloat*) glMultiTexCoord3fvARB; + void function(GLenum, GLint, GLint, GLint) glMultiTexCoord3iARB; + void function(GLenum, in GLint*) glMultiTexCoord3ivARB; + void function(GLenum, GLshort, GLshort, GLshort) glMultiTexCoord3sARB; + void function(GLenum, in GLshort*) glMultiTexCoord3svARB; + void function(GLenum, GLdouble, GLdouble, GLdouble, GLdouble) glMultiTexCoord4dARB; + void function(GLenum, in GLdouble*) glMultiTexCoord4dvARB; + void function(GLenum, GLfloat, GLfloat, GLfloat, GLfloat) glMultiTexCoord4fARB; + void function(GLenum, in GLfloat*) glMultiTexCoord4fvARB; + void function(GLenum, GLint, GLint, GLint, GLint) glMultiTexCoord4iARB; + void function(GLenum, in GLint*) glMultiTexCoord4ivARB; + void function(GLenum, GLshort, GLshort, GLshort, GLshort) glMultiTexCoord4sARB; + void function(GLenum, in GLshort*) glMultiTexCoord4svARB; + + // GL_ARB_transpose_matrix + void function(GLfloat*) glLoadTransposeMatrixfARB; + void function(GLdouble*) glLoadTransposeMatrixdARB; + void function(GLfloat*) glMultTransposeMatrixfARB; + void function(GLdouble*) glMultTransposeMatrixdARB; + + // GL_ARB_multisample + void function(GLclampf, GLboolean) glSampleCoverageARB; + + // GL_ARB_texture_compression + void function(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedTexImage3DARB; + void function(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedTexImage2DARB; + void function(GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedTexImage1DARB; + void function(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedTexSubImage3DARB; + void function(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedTexSubImage2DARB; + void function(GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedTexSubImage1DARB; + void function(GLenum, GLint, GLvoid*) glGetCompressedTexImageARB; + + // GL_ARB_point_parameters + void function(GLenum, GLfloat) glPointParameterfARB; + void function(GLenum, GLfloat*) glPointParameterfvARB; + + // GL_ARB_vertex_blend + void function(GLint, GLbyte*) glWeightbvARB; + void function(GLint, GLshort*) glWeightsvARB; + void function(GLint, GLint*) glWeightivARB; + void function(GLint, GLfloat*) glWeightfvARB; + void function(GLint, GLdouble*) glWeightdvARB; + void function(GLint, GLubyte*) glWeightubvARB; + void function(GLint, GLushort*) glWeightusvARB; + void function(GLint, GLuint*) glWeightuivARB; + void function(GLint, GLenum, GLsizei, GLvoid*) glWeightPointerARB; + void function(GLint) glVertexBlendARB; + + // GL_ARB_matrix_palette + void function(GLint) glCurrentPaletteMatrixARB; + void function(GLint, GLubyte*) glMatrixIndexubvARB; + void function(GLint, GLushort*) glMatrixIndexusvARB; + void function(GLint, GLuint*) glMatrixIndexuivARB; + void function(GLint, GLenum, GLsizei, GLvoid*) glMatrixIndexPointerARB; + + // GL_ARB_window_pos + void function(GLdouble, GLdouble) glWindowPos2dARB; + void function(in GLdouble*) glWindowPos2dvARB; + void function(GLfloat, GLfloat) glWindowPos2fARB; + void function(in GLfloat*) glWindowPos2fvARB; + void function(GLint, GLint) glWindowPos2iARB; + void function(in GLint*) glWindowPos2ivARB; + void function(GLshort, GLshort) glWindowPos2sARB; + void function(in GLshort*) glWindowPos2svARB; + void function(GLdouble, GLdouble, GLdouble) glWindowPos3dARB; + void function(in GLdouble*) glWindowPos3dvARB; + void function(GLfloat, GLfloat, GLfloat) glWindowPos3fARB; + void function(in GLfloat*) glWindowPos3fvARB; + void function(GLint, GLint, GLint) glWindowPos3iARB; + void function(in GLint*) glWindowPos3ivARB; + void function(GLshort, GLshort, GLshort) glWindowPos3sARB; + void function(in GLshort*) glWindowPos3svARB; + + // GL_ARB_vertex_program + void function(GLuint, GLdouble) glVertexAttrib1dARB; + void function(GLuint, in GLdouble*) glVertexAttrib1dvARB; + void function(GLuint, GLfloat) glVertexAttrib1fARB; + void function(GLuint, in GLfloat*) glVertexAttrib1fvARB; + void function(GLuint, GLshort) glVertexAttrib1sARB; + void function(GLuint, in GLshort*) glVertexAttrib1svARB; + void function(GLuint, GLdouble, GLdouble) glVertexAttrib2dARB; + void function(GLuint, in GLdouble*) glVertexAttrib2dvARB; + void function(GLuint, GLfloat, GLfloat) glVertexAttrib2fARB; + void function(GLuint, in GLfloat*) glVertexAttrib2fvARB; + void function(GLuint, GLshort, GLshort) glVertexAttrib2sARB; + void function(GLuint, in GLshort*) glVertexAttrib2svARB; + void function(GLuint, GLdouble, GLdouble, GLdouble) glVertexAttrib3dARB; + void function(GLuint, in GLdouble*) glVertexAttrib3dvARB; + void function(GLuint, GLfloat, GLfloat, GLfloat) glVertexAttrib3fARB; + void function(GLuint, in GLfloat*) glVertexAttrib3fvARB; + void function(GLuint, GLshort, GLshort, GLshort) glVertexAttrib3sARB; + void function(GLuint, in GLshort*) glVertexAttrib3svARB; + void function(GLuint, in GLbyte*) glVertexAttrib4NbvARB; + void function(GLuint, in GLint*) glVertexAttrib4NivARB; + void function(GLuint, in GLshort*) glVertexAttrib4NsvARB; + void function(GLuint, GLubyte, GLubyte, GLubyte, GLubyte) glVertexAttrib4NubARB; + void function(GLuint, in GLubyte*) glVertexAttrib4NubvARB; + void function(GLuint, in GLuint*) glVertexAttrib4NuivARB; + void function(GLuint, in GLushort*) glVertexAttrib4NusvARB; + void function(GLuint, in GLbyte*) glVertexAttrib4bvARB; + void function(GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glVertexAttrib4dARB; + void function(GLuint, in GLdouble*) glVertexAttrib4dvARB; + void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glVertexAttrib4fARB; + void function(GLuint, in GLfloat*) glVertexAttrib4fvARB; + void function(GLuint, in GLint*) glVertexAttrib4ivARB; + void function(GLuint, GLshort, GLshort, GLshort, GLshort) glVertexAttrib4sARB; + void function(GLuint, in GLshort*) glVertexAttrib4svARB; + void function(GLuint, in GLubyte*) glVertexAttrib4ubvARB; + void function(GLuint, in GLuint*) glVertexAttrib4uivARB; + void function(GLuint, in GLushort*) glVertexAttrib4usvARB; + void function(GLuint, GLint, GLenum, GLboolean, GLsizei, in GLvoid*) glVertexAttribPointerARB; + void function(GLuint) glEnableVertexAttribArrayARB; + void function(GLuint) glDisableVertexAttribArrayARB; + void function(GLenum, GLenum, GLsizei, in GLvoid*) glProgramStringARB; + void function(GLenum, GLuint) glBindProgramARB; + void function(GLsizei, in GLuint*) glDeleteProgramsARB; + void function(GLsizei, GLuint*) glGenProgramsARB; + void function(GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glProgramEnvParameter4dARB; + void function(GLenum, GLuint, in GLdouble*) glProgramEnvParameter4dvARB; + void function(GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glProgramEnvParameter4fARB; + void function(GLenum, GLuint, in GLfloat*) glProgramEnvParameter4fvARB; + void function(GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glProgramLocalParameter4dARB; + void function(GLenum, GLuint, in GLdouble*) glProgramLocalParameter4dvARB; + void function(GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glProgramLocalParameter4fARB; + void function(GLenum, GLuint, in GLfloat*) glProgramLocalParameter4fvARB; + void function(GLenum, GLuint, GLdouble*) glGetProgramEnvParameterdvARB; + void function(GLenum, GLuint, GLfloat*) glGetProgramEnvParameterfvARB; + void function(GLenum, GLuint, GLdouble*) glGetProgramLocalParameterdvARB; + void function(GLenum, GLuint, GLfloat*) glGetProgramLocalParameterfvARB; + void function(GLenum, GLenum, GLint*) glGetProgramivARB; + void function(GLenum, GLenum, GLvoid*) glGetProgramStringARB; + void function(GLuint, GLenum, GLdouble*) glGetVertexAttribdvARB; + void function(GLuint, GLenum, GLfloat*) glGetVertexAttribfvARB; + void function(GLuint, GLenum, GLint*) glGetVertexAttribivARB; + void function(GLuint, GLenum, GLvoid*) glGetVertexAttribPointervARB; + GLboolean function(GLuint) glIsProgramARB; + + // GL_ARB_vertex_buffer_object + void function(GLenum, GLuint) glBindBufferARB; + void function(GLsizei, in GLuint*) glDeleteBuffersARB; + void function(GLsizei, GLuint*) glGenBuffersARB; + GLboolean function(GLuint) glIsBufferARB; + void function(GLenum, GLsizeiptrARB, in GLvoid*, GLenum) glBufferDataARB; + void function(GLenum, GLintptrARB, GLsizeiptrARB, in GLvoid*) glBufferSubDataARB; + void function(GLenum, GLintptrARB, GLsizeiptrARB, GLvoid*) glGetBufferSubDataARB; + GLvoid* function(GLenum, GLenum) glMapBufferARB; + GLboolean function(GLenum) glUnmapBufferARB; + void function(GLenum, GLenum, GLint*) glGetBufferParameterivARB; + void function(GLenum, GLenum, GLvoid*) glGetBufferPointervARB; + + // GL_ARB_occlusion_query + void function(GLsizei, GLuint*) glGenQueriesARB; + void function(GLsizei, in GLuint*) glDeleteQueriesARB; + GLboolean function(GLuint) glIsQueryARB; + void function(GLenum, GLuint) glBeginQueryARB; + void function(GLenum) glEndQueryARB; + void function(GLenum, GLenum, GLint*) glGetQueryivARB; + void function(GLuint, GLenum, GLint*) glGetQueryObjectivARB; + void function(GLuint, GLenum, GLuint*) glGetQueryObjectuivARB; + + // GL_ARB_shader_objects + void function(GLhandleARB) glDeleteObjectARB; + GLhandleARB function(GLenum) glGetHandleARB; + void function(GLhandleARB, GLhandleARB) glDetachObjectARB; + GLhandleARB function(GLenum) glCreateShaderObjectARB; + void function(GLhandleARB, GLsizei, in GLcharARB**, in GLint*) glShaderSourceARB; + void function(GLhandleARB) glCompileShaderARB; + GLhandleARB function() glCreateProgramObjectARB; + void function(GLhandleARB, GLhandleARB) glAttachObjectARB; + void function(GLhandleARB) glLinkProgramARB; + void function(GLhandleARB) glUseProgramObjectARB; + void function(GLhandleARB) glValidateProgramARB; + void function(GLint, GLfloat) glUniform1fARB; + void function(GLint, GLfloat, GLfloat) glUniform2fARB; + void function(GLint, GLfloat, GLfloat, GLfloat) glUniform3fARB; + void function(GLint, GLfloat, GLfloat, GLfloat, GLfloat) glUniform4fARB; + void function(GLint, GLint) glUniform1iARB; + void function(GLint, GLint, GLint) glUniform2iARB; + void function(GLint, GLint, GLint, GLint) glUniform3iARB; + void function(GLint, GLint, GLint, GLint, GLint) glUniform4iARB; + void function(GLint, GLsizei, in GLfloat*) glUniform1fvARB; + void function(GLint, GLsizei, in GLfloat*) glUniform2fvARB; + void function(GLint, GLsizei, in GLfloat*) glUniform3fvARB; + void function(GLint, GLsizei, in GLfloat*) glUniform4fvARB; + void function(GLint, GLsizei, in GLint*) glUniform1ivARB; + void function(GLint, GLsizei, in GLint*) glUniform2ivARB; + void function(GLint, GLsizei, in GLint*) glUniform3ivARB; + void function(GLint, GLsizei, in GLint*) glUniform4ivARB; + void function(GLint, GLsizei, GLboolean, in GLfloat*) glUniformMatrix2fvARB; + void function(GLint, GLsizei, GLboolean, in GLfloat*) glUniformMatrix3fvARB; + void function(GLint, GLsizei, GLboolean, in GLfloat*) glUniformMatrix4fvARB; + void function(GLhandleARB, GLenum, GLfloat*) glGetObjectParameterfvARB; + void function(GLhandleARB, GLenum, GLint*) glGetObjectParameterivARB; + void function(GLhandleARB, GLsizei, GLsizei*, GLcharARB*) glGetInfoLogARB; + void function(GLhandleARB, GLsizei, GLsizei*, GLhandleARB*) glGetAttachedObjectsARB; + GLint function(GLhandleARB, in GLcharARB*) glGetUniformLocationARB; + void function(GLhandleARB, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLcharARB*) glGetActiveUniformARB; + void function(GLhandleARB, GLint, GLfloat*) glGetUniformfvARB; + void function(GLhandleARB, GLint, GLint*) glGetUniformivARB; + void function(GLhandleARB, GLsizei, GLsizei*, GLcharARB*) glGetShaderSourceARB; + + // GL_ARB_vertex_shader + void function(GLhandleARB, GLuint, in GLcharARB*) glBindAttribLocationARB; + void function(GLhandleARB, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLcharARB*) glGetActiveAttribARB; + GLint function(GLhandleARB, in GLcharARB* name) glGetAttribLocationARB; + + // GL_ARB_draw_buffers + void function(GLsizei, in GLenum*) glDrawBuffersARB; + + // GL_ARB_color_buffer_float + void function(GLenum, GLenum) glClampColorARB; + + // GL_ARB_draw_instanced + void function(GLenum, GLint, GLsizei, GLsizei) glDrawArraysInstancedARB; + void function(GLenum, GLsizei, GLenum, in void*, GLsizei) glDrawElementsInstancedARB; + + // GL_ARB_framebuffer_object + GLboolean function(GLuint) glIsRenderbuffer; + void function(GLenum, GLuint) glBindRenderbuffer; + void function(GLsizei, in GLuint*) glDeleteRenderbuffers; + void function(GLsizei, GLuint*) glGenRenderbuffers; + void function(GLenum, GLenum, GLsizei, GLsizei) glRenderbufferStorage; + void function(GLenum, GLsizei, GLenum, GLsizei, GLsizei) glRenderbufferStorageMultisample; + void function(GLenum, GLenum, GLint*) glGetRenderbufferParameteriv; + GLboolean function(GLuint) glIsFramebuffer; + void function(GLenum, GLuint) glBindFramebuffer; + void function(GLsizei, in GLuint*) glDeleteFramebuffers; + void function(GLsizei, GLuint*) glGenFramebuffers; + GLenum function(GLenum) glCheckFramebufferStatus; + void function(GLenum, GLenum, GLenum, GLuint, GLint) glFramebufferTexture1D; + void function(GLenum, GLenum, GLenum, GLuint, GLint) glFramebufferTexture2D; + void function(GLenum, GLenum, GLenum, GLuint, GLint, GLint) glFramebufferTexture3D; + void function(GLenum, GLenum, GLuint, GLint, GLint) glFramebufferTextureLayer; + void function(GLenum, GLenum, GLenum, GLuint) glFramebufferRenderbuffer; + void function(GLenum, GLenum, GLenum, GLint*) glGetFramebufferAttachmentParameteriv; + void function(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum) glBlitFramebuffer; + void function(GLenum) glGenerateMipmap; + + // GL_ARB_geometry_shader4 + void function(GLuint, GLenum, GLint) glProgramParameteriARB; + void function(GLenum, GLenum, GLuint, GLint) glFramebufferTextureARB; + void function(GLenum, GLenum, GLuint, GLint, GLint) glFramebufferTextureLayerARB; + void function(GLenum, GLenum, GLuint, GLint, GLenum) glFramebufferTextureFaceARB; + + // GL_ARB_imaging + void function(GLenum, GLenum, GLsizei, GLenum, GLenum, in void*) glColorTable; + void function(GLenum, GLsizei, GLsizei, GLenum, GLenum, in void*) glColorSubTable; + void function(GLenum, GLenum, in GLint*) glColorTableParameteriv; + void function(GLenum, GLenum, in GLfloat*) glColorTableParameterfv; + void function(GLenum, GLsizei, GLint, GLint, GLsizei) glCopyColorSubTable; + void function(GLenum, GLenum, GLint, GLint, GLsizei) glCopyColorTable; + void function(GLenum, GLenum, GLenum, void*) glGetColorTable; + void function(GLenum, GLenum, GLfloat*) glGetColorTableParameterfv; + void function(GLenum, GLenum, GLint*) glGetColorTableParameteriv; + void function(GLenum, GLsizei, GLenum, GLboolean) glHistogram; + void function(GLenum) glResetHistogram; + void function(GLenum, GLboolean, GLenum, GLenum, void*) glGetHistogram; + void function(GLenum, GLenum, GLfloat*) glGetHistogramParameterfv; + void function(GLenum, GLenum, GLint*) glGetHistogramParameteriv; + void function(GLenum, GLenum, GLboolean) glMinmax; + void function(GLenum) glResetMinmax; + void function(GLenum, GLboolean, GLenum, GLenum, void*) glGetMinmax; + void function(GLenum, GLenum, GLfloat*) glGetMinmaxParameterfv; + void function(GLenum, GLenum, GLint*) glGetMinmaxParameteriv; + void function(GLenum, GLenum, GLsizei, GLenum, GLenum, in void*) glConvolutionFilter1D; + void function(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, in void*) glConvolutionFilter2D; + void function(GLenum, GLenum, GLfloat) glConvolutionParameterf; + void function(GLenum, GLenum, in GLfloat*) glConvolutionParameterfv; + void function(GLenum, GLenum, GLint) glConvolutionParameteri; + void function(GLenum, GLenum, in GLint*) glConvolutionParameteriv; + void function(GLenum, GLenum, GLint, GLint, GLsizei) glCopyConvolutionFilter1D; + void function(GLenum, GLenum, GLint, GLint, GLsizei, GLsizei) glCopyConvolutionFilter2D; + void function(GLenum, GLenum, GLenum, void*) glGetConvolutionFilter; + void function(GLenum, GLenum, GLfloat*) glGetConvolutionParameterfv; + void function(GLenum, GLenum, GLint*) glGetConvolutionParameteriv; + void function(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, in void*, in void*) glSeparableFilter2D; + void function(GLenum, GLenum, GLenum, void*, void*, void*) glGetSeparableFilter; + + // GL_ARB_instanced_arrays + void function(GLuint, GLuint) glVertexAttribDivisorARB; + + // GL_ARB_map_buffer_range + void* function(GLenum, GLintptr, GLsizeiptr, GLbitfield) glMapBufferRange; + void function(GLenum, GLintptr, GLsizeiptr) glFlushMappedBufferRange; + + // GL_ARB_texture_buffer_object + void function(GLenum, GLenum, GLuint) glTexBufferARB; + + // GL_ARB_vertex_array_object + void function(GLuint) glBindVertexArray; + void function(GLsizei, in GLuint*) glDeleteVertexArrays; + void function(GLsizei, GLuint*) glGenVertexArrays; + GLboolean function(GLuint) glIsVertexArray; + + // GL_ARB_copy_buffer + void function(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr) glCopyBufferSubData; + + // GL_ARB_uniform_buffer_object + void function(GLuint, GLsizei, in char**, GLuint*) glGetUniformIndices; + void function(GLuint, GLsizei, in GLuint*, GLenum, GLint*) glGetActiveUniformsiv; + void function(GLuint, GLuint, GLsizei, GLsizei*, char*) glGetActiveUniformName; + GLuint function(GLuint, in char*) glGetUniformBlockIndex; + void function(GLuint, GLuint, GLenum, int*) glGetActiveUniformBlockiv; + void function(GLuint, GLuint, GLsizei, GLsizei*, char*) glGetActiveUniformBlockName; + void function(GLuint, GLuint, GLuint) glUniformBlockBinding; + + // GL_ARB_draw_elements_base_vertex + void function(GLenum, GLsizei, GLenum, const(GLvoid)*, GLint) glDrawElementsBaseVertex; + void function(GLenum, GLuint, GLuint, GLsizei, GLenum, const(GLvoid)*, GLint) glDrawRangeElementsBaseVertex; + void function(GLenum, GLsizei, GLenum, const(GLvoid)*, GLsizei, GLint) glDrawElementsInstancedBaseVertex; + void function(GLenum, const(GLsizei)*, GLenum, const(GLvoid*)*, GLsizei, const(GLint)*) glMultiDrawElementsBaseVertex; + + // GL_ARB_vertex_attrib_64bit + void function(GLuint, GLenum, GLdouble*) glGetVertexAttribLdv; + void function(GLuint, GLdouble) glVertexAttribL1d; + void function(GLuint, in GLdouble*) glVertexAttribL1dv; + void function(GLuint, GLdouble, GLdouble) glVertexAttribL2d; + void function(GLuint, in GLdouble*) glVertexAttribL2dv; + void function(GLuint, GLdouble, GLdouble, GLdouble) glVertexAttribL3d; + void function(GLuint, in GLdouble*) glVertexAttribL3dv; + void function(GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glVertexAttribL4d; + void function(GLuint, in GLdouble*) glVertexAttribL4dv; + void function(GLuint, GLint, GLenum, GLsizei, in void*) glVertexAttribLPointer; + + // GL_ARB_provoking_vertex + void function(GLenum) glProvokingVertex; + + // GL_ARB_sync + GLsync function(GLenum, GLbitfield) glFenceSync; + GLboolean function(GLsync) glIsSync; + void function(GLsync) glDeleteSync; + GLenum function(GLsync, GLbitfield, GLuint64) glClientWaitSync; + void function(GLsync, GLbitfield, GLuint64) glWaitSync; + void function(GLsync, GLint64*) glGetInteger64v; + void function(GLsync, GLenum, GLsizei, GLsizei*, GLint*) glGetSynciv; + + // GL_ARB_texture_multisample + void function(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLboolean) glTexImage2DMultisample; + void function(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLsizei, GLboolean) glTexImage3DMultisample; + void function(GLenum, GLuint, GLfloat*) glGetMultisamplefv; + void function(GLuint, GLbitfield) glSampleMaski; + + // GL_ARB_viewport_array + void function(GLuint, GLsizei, in GLclampd*) glDepthRangeArrayv; + void function(GLuint, GLclampd, GLclampd) glDepthRangeIndexed; + void function(GLenum, GLuint, GLdouble*) glGetDoublei_v; + void function(GLenum, GLuint, GLfloat*) glGetFloati_v; + void function(GLuint, GLsizei, in GLint*) glScissorArrayv; + void function(GLuint, GLint, GLint, GLsizei, GLsizei) glScissorArrayIndexed; + void function(GLuint, GLint*) glScissorArrayIndexedv; + void function(GLuint, GLsizei, in GLfloat*) glViewportArrayv; + void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glViewportIndexedf; + void function(GLuint, in GLfloat*) glViewportIndexedfv; + + // GL_ARB_cl_event + void function(cl_context, cl_event, GLbitfield) glCreateSyncFromCLeventARB; + + // GL_ARB_debug_output + void function(GLDEBUGPROCARB, void*) glDebugMessageCallbackARB; + void function(GLenum, GLenum, GLenum, GLsizei, in GLuint*, GLboolean) glDebugMessageControlARB; + void function(GLenum, GLenum, GLuint, GLenum, GLsizei, in char*) glDebugMessageInsertARB; + GLuint function(GLuint, GLsizei, GLenum*, GLenum*, GLint*, GLenum*, GLsizei*, char*) glGetDebugMessageLogARB; + + // GL_ARB_robustness + void function(GLenum, GLenum, GLenum, GLsizei, void*) glGetnColorTableARB; + void function(GLenum, GLint, GLsizei, void*) glGetnCompressedTexImageARB; + void function(GLenum, GLenum, GLenum, GLsizei, void*) glGetnConvolutionFilterARB; + void function(GLenum, GLboolean, GLsizei, GLdouble*) glGetnHistogramARB; + void function(GLenum, GLenum, GLsizei, GLdouble*) glGetnMapdvARB; + void function(GLenum, GLenum, GLsizei, GLfloat*) glGetnMapfvARB; + void function(GLenum, GLenum, GLsizei, GLint*) glGetnMapivARB; + void function(GLenum, GLboolean, GLenum, GLenum, GLsizei, void*) glGetnMinMaxARB; + void function(GLenum, GLsizei, GLfloat*) glGetnPixelMapfvARB; + void function(GLenum, GLsizei, GLuint*) glGetnPixelMapuivARB; + void function(GLenum, GLsizei, GLushort*) glGetnPixelMapusvARB; + void function(GLsizei, GLubyte*) glGetnPolygonStippleARB; + void function(GLenum, GLenum, GLenum, GLsizei, void*, GLsizei, GLvoid*) glGetnSeparableFilterARB; + void function(GLenum, GLint, GLenum, GLenum, GLsizei, void*) glGetnTexImageARB; + void function(GLuint, GLint, GLsizei, GLdouble*) glGetnUniformdvARB; + void function(GLuint, GLint, GLsizei, GLfloat*) glGetnUniformfvARB; + void function(GLuint, GLint, GLsizei, GLint*) glGetnUniformivARB; + void function(GLuint, GLint, GLsizei, GLuint*) glGetUniformuivARB; + void function(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLsizei, void*) glReadnPixelsARB; + + // GL_ARB_blend_func_extended + void function(GLuint, GLuint, GLuint, const(GLchar)*) glBindFragDataLocationIndexed; + GLint function(GLuint, const(GLchar)*) glGetFragDataIndex; + + // GL_ARB_sampler_objects + void function(GLuint, GLuint*) glGenSamplers; + void function(GLsizei, in GLuint*) glDeleteSamplers; + GLboolean function(GLuint) glIsSampler; + void function(GLuint, GLuint) glBindSampler; + void function(GLuint, GLenum, GLint) glSamplerParameteri; + void function(GLuint, GLenum, in GLint*) glSamplerParameteriv; + void function(GLuint, GLenum, GLfloat) glSamplerParameterf; + void function(GLuint, GLenum, in GLfloat*) glSamplerParameterfv; + void function(GLuint, GLenum, in GLint*) glSamplerParameterIiv; + void function(GLuint, GLenum, in GLuint*) glSamplerParameterIuiv; + void function(GLuint, GLenum, GLint*) glGetSamplerParameteriv; + void function(GLuint, GLenum, GLint*) glGetSamplerParameterIiv; + void function(GLuint, GLenum, GLfloat*) glGetSamplerParameterfv; + void function(GLuint, GLenum, GLuint*) glGetSamplerParameterIuiv; + + // GL_ARB_timer_query + void function(GLuint, GLenum) glQueryCounter; + void function(GLuint, GLenum, GLint64*) glGetQueryObjecti64v; + void function(GLuint, GLenum, GLuint64*) glGetQueryObjectui64v; + + // GL_ARB_vertex_type_2_10_10_10_rev + void function(GLenum, GLuint) glVertexP2ui; + void function(GLenum, const(GLuint)*) glVertexP2uiv; + void function(GLenum, GLuint) glVertexP3ui; + void function(GLenum, const(GLuint)*) glVertexP3uiv; + void function(GLenum, GLuint) glVertexP4ui; + void function(GLenum, const(GLuint)*) glVertexP4uiv; + void function(GLenum, GLuint) glTexCoordP1ui; + void function(GLenum, const(GLuint)*) glTexCoordP1uiv; + void function(GLenum, GLuint) glTexCoordP2ui; + void function(GLenum, const(GLuint)*) glTexCoordP2uiv; + void function(GLenum, GLuint) glTexCoordP3ui; + void function(GLenum, const(GLuint)*) glTexCoordP3uiv; + void function(GLenum, GLuint) glTexCoordP4ui; + void function(GLenum, const(GLuint)*) glTexCoordP4uiv; + void function(GLenum, GLenum, GLuint) glMultiTexCoordP1ui; + void function(GLenum, GLenum, const(GLuint)*) glMultiTexCoordP1uiv; + void function(GLenum, GLenum, GLuint) glMultiTexCoordP2ui; + void function(GLenum, GLenum, const(GLuint)*) glMultiTexCoordP2uiv; + void function(GLenum, GLenum, GLuint) glMultiTexCoordP3ui; + void function(GLenum, GLenum, const(GLuint)*) glMultiTexCoordP3uiv; + void function(GLenum, GLenum, GLuint) glMultiTexCoordP4ui; + void function(GLenum, GLenum, const(GLuint)*) glMultiTexCoordP4uiv; + void function(GLenum, GLuint) glNormalP3ui; + void function(GLenum, const(GLuint)*) glNormalP3uiv; + void function(GLenum, GLuint) glColorP3ui; + void function(GLenum, const(GLuint)*) glColorP3uiv; + void function(GLenum, GLuint) glColorP4ui; + void function(GLenum, const(GLuint)*) glColorP4uiv; + void function(GLenum, GLuint) glSecondaryColorP3ui; + void function(GLenum, const(GLuint)*) glSecondaryColorP3uiv; + void function(GLuint, GLenum, GLboolean, GLuint) glVertexAttribP1ui; + void function(GLuint, GLenum, GLboolean, const(GLuint)*) glVertexAttribP1uiv; + void function(GLuint, GLenum, GLboolean, GLuint) glVertexAttribP2ui; + void function(GLuint, GLenum, GLboolean, const(GLuint)*) glVertexAttribP2uiv; + void function(GLuint, GLenum, GLboolean, GLuint) glVertexAttribP3ui; + void function(GLuint, GLenum, GLboolean, const(GLuint)*) glVertexAttribP3uiv; + void function(GLuint, GLenum, GLboolean, GLuint) glVertexAttribP4ui; + void function(GLuint, GLenum, GLboolean, const(GLuint)*) glVertexAttribP4uiv; + } + + version(DerelictGL_EXT) + { + // GL_EXT_blend_color + void function(GLclampf, GLclampf, GLclampf, GLclampf) glBlendColorEXT; + + // GL_EXT_polygon_offset + void function(GLfloat, GLfloat) glPolygonOffsetEXT; + + // GL_EXT_texture3D + void function(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, GLvoid*) glTexImage3DEXT; + void function(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, GLvoid*) glTexSubImage3DEXT; + + // GL_EXT_subtexture + void function(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, in GLvoid*) glTexSubImage1DEXT; + void function(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glTexSubImage21DEXT; + + // GL_EXT_copy_texture + void function(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint) glCopyTexImage1DEXT; + void function(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint)glCopyTexImage2DEXT; + void function(GLenum, GLint, GLint, GLint, GLint, GLsizei) glCopyTexSubImage1DEXT; + void function(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) glCopyTexSubImage2DEXT; + void function(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) glCopyTexSubImage3DEXT; + + // GL_EXT_histogram + void function(GLenum, GLboolean, GLenum, GLenum, GLvoid*) glGetHistogramEXT; + void function(GLenum, GLenum, GLfloat*) glGetHistogramParameterfvEXT; + void function(GLenum, GLenum, GLint*) glGetHistogramParameterivEXT; + void function(GLenum, GLboolean, GLenum, GLenum, GLvoid*) glGetMinmaxEXT; + void function(GLenum, GLenum, GLfloat*) glGetMinmaxParameterfvEXT; + void function(GLenum, GLsizei, GLenum, GLint*) glGetMinmaxParameterivEXT; + void function(GLenum, GLsizei, GLenum, GLboolean) glHistogramEXT; + void function(GLenum, GLenum, GLboolean) glMinmaxEXT; + void function(GLenum) glResetHistogramEXT; + void function(GLenum) glResetMinmaxEXT; + + // GL_EXT_convolution + void function(GLenum, GLenum, GLsizei, GLenum, GLenum, GLvoid*) glConvolutionFilter1DEXT; + void function(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, GLvoid*) glConvolutionFilter2DEXT; + void function(GLenum, GLenum, GLfloat) glConvolutionParameterfEXT; + void function(GLenum, GLenum, GLfloat*) glConvolutionParameterfvEXT; + void function(GLenum, GLenum, GLint) glConvolutionParameteriEXT; + void function(GLenum, GLenum, GLint*) glConvolutionParameterivEXT; + void function(GLenum, GLenum, GLint, GLint, GLsizei) glCopyConvolutionFilter1DEXT; + void function(GLenum, GLenum, GLint, GLint, GLsizei, GLsizei) glCopyConvolutionFilter2DEXT; + void function(GLenum, GLenum, GLenum, GLvoid*) glGetConvolutionFilterEXT; + void function(GLenum, GLenum, GLfloat*) glGetConvolutionParameterfvEXT; + void function(GLenum, GLenum, GLint*) glGetConvolutionParameterivEXT; + void function(GLenum, GLenum, GLenum, GLvoid*, GLvoid*, GLvoid*) glGetSeparableFilterEXT; + void function(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, GLvoid*, GLvoid*) glSeparableFilter2DEXT; + + // GL_EXT_texture_object + GLboolean function(GLsizei, in GLuint*, GLboolean*) glAreTexturesResidentEXT; + void function(GLenum, GLuint) glBindTextureEXT; + void function(GLsizei, in GLuint*) glDeleteTexturesEXT; + void function(GLsizei, GLuint*) glGenTexturesEXT; + GLboolean function(GLuint) glIsTextureEXT; + void function(GLsizei, in GLuint*, in GLclampf*) glPrioritizeTexturesEXT; + + // GL_EXT_vertex_array + void function(GLint) glArrayElementEXT; + void function(GLint, GLenum, GLsizei, GLsizei, in GLvoid*) glColorPointerEXT; + void function(GLenum, GLint, GLsizei) glDrawArraysEXT; + void function(GLsizei, GLsizei, in GLboolean*) glEdgeFlagPointerEXT; + void function(GLenum, GLvoid**) glGetPointervEXT; + void function(GLenum, GLsizei, GLsizei, in GLvoid*) glIndexPointerEXT; + void function(GLenum, GLsizei, GLsizei, in GLvoid*) glNormalPointerEXT; + void function(GLint, GLenum, GLsizei, GLsizei, in GLvoid*) glTexCoordPointerEXT; + void function(GLint, GLenum, GLsizei, GLsizei, in GLvoid*) glVertexPointerEXT; + + // GL_EXT_blend_minmax + void function(GLenum) glBlendEquationEXT; + + // GL_EXT_point_parameters + void function(GLenum, GLfloat) glPointParameterfEXT; + void function(GLenum, in GLfloat*) glPointParameterfvEXT; + + // GL_EXT_color_subtable + void function(GLenum, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glColorSubTableEXT; + void function(GLenum, GLsizei, GLint, GLint, GLsizei) glCopyColorSubTableEXT; + + // GL_EXT_paletted_texture + void function(GLenum, GLenum, GLsizei, GLenum, GLenum, in GLvoid*) glColorTableEXT; + void function(GLenum, GLenum, GLenum, GLvoid*) glGetColorTableEXT; + void function(GLenum, GLenum, GLint*) glGetColorTableParameterivEXT; + void function(GLenum, GLenum, GLfloat*) glGetColorTableParameterfvEXT; + + //GL_EXT_index_material + void function(GLenum, GLenum) glIndexMaterialEXT; + + // GL_EXT_index_func + void function(GLenum, GLclampf) glIndexFuncEXT; + + // GL_EXT_compiled_vertex_array + void function(GLint, GLsizei) glLockArraysEXT; + void function() glUnlockArraysEXT; + + // GL_EXT_cull_vertex + void function(GLenum, GLdouble*) glCullParameterdvEXT; + void function(GLenum, GLfloat*) glCullParameterfvEXT; + + // GL_EXT_draw_range_elements + void function(GLenum, GLuint, GLuint, GLsizei, GLenum, in GLvoid*) glDrawRangeElementsEXT; + + // GL_EXT_light_texture + void function(GLenum) glApplyTextureEXT; + void function(GLenum) glTextureLightEXT; + void function(GLenum, GLenum) glTextureMaterialEXT; + + // GL_EXT_pixel_transform + void function(GLenum, GLenum, GLint) glPixelTransformParameteriEXT; + void function(GLenum, GLenum, GLfloat) glPixelTransformParameterfEXT; + void function(GLenum, GLenum, in GLint*) glPixelTransformParameterivEXT; + void function(GLenum, GLenum, in GLfloat*) glPixelTransformParameterfvEXT; + + // GL_EXT_secondary_color + void function(GLbyte, GLbyte, GLbyte) glSecondaryColor3bEXT; + void function(in GLbyte*) glSecondaryColor3bvEXT; + void function(GLdouble, GLdouble, GLdouble) glSecondaryColor3dEXT; + void function(in GLdouble*) glSecondaryColor3dvEXT; + void function(GLfloat, GLfloat, GLfloat) glSecondaryColor3fEXT; + void function(in GLfloat*) glSecondaryColor3fvEXT; + void function(GLint, GLint, GLint) glSecondaryColor3iEXT; + void function(in GLint*) glSecondaryColor3ivEXT; + void function(GLshort, GLshort, GLshort) glSecondaryColor3sEXT; + void function(in GLshort*) glSecondaryColor3svEXT; + void function(GLubyte, GLubyte, GLubyte) glSecondaryColor3ubEXT; + void function(in GLubyte*) glSecondaryColor3ubvEXT; + void function(GLuint, GLuint, GLuint) glSecondaryColor3uiEXT; + void function(in GLuint*) glSecondaryColor3uivEXT; + void function(GLushort, GLushort, GLushort) glSecondaryColor3usEXT; + void function(in GLushort*) glSecondaryColor3usvEXT; + void function(GLint, GLenum, GLsizei, in GLvoid*) glSecondaryColorPointerEXT; + + // GL_EXT_texture_perturb_normal + void function(GLenum) glTextureNormalEXT; + + // GL_EXT_multi_draw_arrays + void function(GLenum, GLint*, GLsizei*, GLsizei) glMultiDrawArraysEXT; + void function(GLenum, in GLsizei*, GLenum, in GLvoid**, GLsizei) glMultiDrawElementsEXT; + + // GL_EXT_fog_coord + void function(GLfloat) glFogCoordfEXT; + void function(in GLfloat*) glFogCoordfvEXT; + void function(GLdouble) glFogCoorddEXT; + void function(in GLdouble*) glFogCoorddvEXT; + void function(GLenum, GLsizei, in GLvoid*) glFogCoordPointerEXT; + + // GL_EXT_coordinate_frame + void function(GLbyte, GLbyte, GLbyte) glTangent3bEXT; + void function(in GLbyte*) glTangent3bvEXT; + void function(GLdouble, GLdouble, GLdouble) glTangent3dEXT; + void function(in GLdouble*) glTangent3dvEXT; + void function(GLfloat, GLfloat, GLfloat) glTangent3fEXT; + void function(in GLfloat*) glTangent3fvEXT; + void function(GLint, GLint, GLint) glTangent3iEXT; + void function(in GLint*) glTangent3ivEXT; + void function(GLshort, GLshort, GLshort) glTangent3sEXT; + void function(in GLshort*) glTangent3svEXT; + void function(GLbyte, GLbyte, GLbyte) glBinormal3bEXT; + void function(in GLbyte*) glBinormal3bvEXT; + void function(GLdouble, GLdouble, GLdouble) glBinormal3dEXT; + void function(in GLdouble*) glBinormal3dvEXT; + void function(GLfloat, GLfloat, GLfloat) glBinormal3fEXT; + void function(in GLfloat*) glBinormal3fvEXT; + void function(GLint, GLint, GLint) glBinormal3iEXT; + void function(in GLint*) glBinormal3ivEXT; + void function(GLshort, GLshort, GLshort) glBinormal3sEXT; + void function(in GLshort*) glBinormal3svEXT; + void function(GLenum, GLsizei, in GLvoid*) glTangentPointerEXT; + void function(GLenum, GLsizei, in GLvoid*) glBinormalPointerEXT; + + // GL_EXT_blend_func_separate + void function(GLenum, GLenum, GLenum, GLenum) glBlendFuncSeparateEXT; + + // GL_EXT_vertex_weighting + void function(GLfloat) glVertexWeightfEXT; + void function(in GLfloat*) glVertexWeightfvEXT; + void function(GLsizei, GLenum, GLsizei, in GLvoid*) glVertexWeightPointerEXT; + + // GL_EXT_multisample + void function(GLclampf, GLboolean) glSampleMaskEXT; + void function(GLenum) glSamplePatternEXT; + + // GL_EXT_vertex_shader + void function() glBeginVertexShaderEXT; + void function() glEndVertexShaderEXT; + void function(GLuint) glBindVertexShaderEXT; + GLuint function(GLuint) glGenVertexShadersEXT; + void function(GLuint) glDeleteVertexShaderEXT; + void function(GLenum, GLuint, GLuint) glShaderOp1EXT; + void function(GLenum, GLuint, GLuint, GLuint) glShaderOp2EXT; + void function(GLenum, GLuint, GLuint, GLuint, GLuint) glShaderOp3EXT; + void function(GLuint, GLuint, GLenum, GLenum, GLenum, GLenum) glSwizzleEXT; + void function(GLuint, GLuint, GLenum, GLenum, GLenum, GLenum) glWriteMaskEXT; + void function(GLuint, GLuint, GLuint) glInsertComponentEXT; + void function(GLuint, GLuint, GLuint) glExtractComponentEXT; + GLuint function(GLenum, GLenum, GLenum, GLuint) glGenSymbolsEXT; + void function(GLuint, GLenum, in GLvoid*) glSetInvariantEXT; + void function(GLuint, GLenum, in GLvoid*) glSetLocalConstantEXT; + void function(GLuint, in GLbyte*) glVariantbvEXT; + void function(GLuint, in GLshort*) glVariantsvEXT; + void function(GLuint, in GLint*) glVariantivEXT; + void function(GLuint, in GLfloat*) glVariantfvEXT; + void function(GLuint, in GLdouble*) glVariantdvEXT; + void function(GLuint, in GLubyte*) glVariantubvEXT; + void function(GLuint, in GLushort*) glVariantusvEXT; + void function(GLuint, in GLuint*) glVariantuivEXT; + void function(GLuint, GLenum, GLuint, in GLvoid*) glVariantPointerEXT; + void function(GLuint) glEnableVariantClientStateEXT; + void function(GLuint) glDisableVariantClientStateEXT; + GLuint function(GLenum, GLenum) glBindLightParameterEXT; + GLuint function(GLenum, GLenum) glBindMaterialParameterEXT; + GLuint function(GLenum, GLenum, GLenum) glBindTexGenParameterEXT; + GLuint function(GLenum, GLenum) glBindTextureUnitParameterEXT; + GLuint function(GLenum) glBindParameterEXT; + GLboolean function(GLuint, GLenum) glIsVariantEnabledEXT; + void function(GLuint, GLenum, GLboolean*) glGetVariantBooleanvEXT; + void function(GLuint, GLenum, GLint*) glGetVariantIntegervEXT; + void function(GLuint, GLenum, GLfloat*) glGetVariantFloatvEXT; + void function(GLuint, GLenum, GLvoid**) glGetVariantPointervEXT; + void function(GLuint, GLenum, GLboolean*) glGetInvariantBooleanvEXT; + void function(GLuint, GLenum, GLint*) glGetInvariantIntegervEXT; + void function(GLuint, GLenum, GLfloat*) glGetInvariantFloatvEXT; + void function(GLuint, GLenum, GLboolean*) glGetLocalConstantBooleanvEXT; + void function(GLuint, GLenum, GLint*) glGetLocalConstantIntegervEXT; + void function(GLuint, GLenum, GLfloat*) glGetLocalConstantFloatvEXT; + + // GL_EXT_stencil_two_side + void function(GLenum) glActiveStencilFaceEXT; + + // GL_EXT_depth_bounds_test + void function(GLclampd, GLclampd) glDepthBoundsEXT; + + // GL_EXT_blend_equation_separate + void function(GLenum, GLenum) glBlendEquationSeparateEXT; + + // GL_EXT_framebuffer_object + GLboolean function(GLuint) glIsRenderbufferEXT; + void function(GLenum, GLuint) glBindRenderbufferEXT; + void function(GLsizei, in GLuint*) glDeleteRenderbuffersEXT; + void function(GLsizei, GLuint*) glGenRenderbuffersEXT; + void function(GLenum, GLenum, GLsizei, GLsizei) glRenderbufferStorageEXT; + void function(GLenum, GLenum, GLint*) glGetRenderbufferParameterivEXT; + GLboolean function(GLuint) glIsFramebufferEXT; + void function(GLenum, GLuint) glBindFramebufferEXT; + void function(GLsizei, in GLuint*) glDeleteFramebuffersEXT; + void function(GLsizei, GLuint*) glGenFramebuffersEXT; + GLenum function(GLenum) glCheckFramebufferStatusEXT; + void function(GLenum, GLenum, GLenum, GLuint, GLint) glFramebufferTexture1DEXT; + void function(GLenum, GLenum, GLenum, GLuint, GLint) glFramebufferTexture2DEXT; + void function(GLenum, GLenum, GLenum, GLuint, GLint, GLint) glFramebufferTexture3DEXT; + void function(GLenum, GLenum, GLenum, GLuint) glFramebufferRenderbufferEXT; + void function(GLenum, GLenum, GLenum, GLint*) glGetFramebufferAttachmentParameterivEXT; + void function(GLenum) glGenerateMipmapEXT; + + // GL_EXT_stencil_clear_tag + void function(GLsizei, GLuint) glStencilClearTagEXT; + + // GL_EXT_framebuffer_blit + void function(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum) glBlitFramebufferEXT; + + // GL_EXT_framebuffer_multisample + void function(GLenum, GLsizei, GLenum, GLsizei, GLsizei) glRenderbufferStorageMultisampleEXT; + + // GL_EXT_timer_query + void function(GLuint, GLenum, GLint64EXT*) glGetQueryObjecti64vEXT; + void function(GLuint, GLenum, GLuint64EXT*) glGetQueryObjectui64vEXT; + + // GL_EXT_gpu_program_parameters + void function(GLenum, GLuint, GLsizei, in GLfloat*) glProgramEnvParameters4fvEXT; + void function(GLenum, GLuint, GLsizei, in GLfloat*) glProgramLocalParameters4fvEXT; + + // GL_EXT_geometry_shader4 + void function(GLuint, GLenum, GLint) glProgramParameteriEXT; + + // GL_EXT_gpu_shader4 + void function(GLuint, GLint, GLuint*) glGetUniformuivEXT; + void function(GLuint, GLuint, in GLchar*) glBindFragDataLocationEXT; + GLint function(GLuint, in GLchar*) glGetFragDataLocationEXT; + void function(GLint, GLuint) glUniform1uiEXT; + void function(GLint, GLuint, GLuint) glUniform2uiEXT; + void function(GLint, GLuint, GLuint, GLuint) glUniform3uiEXT; + void function(GLint, GLuint, GLuint, GLuint, GLuint) glUniform4uiEXT; + void function(GLint, GLsizei, in GLuint*) glUniform1uivEXT; + void function(GLint, GLsizei, in GLuint*) glUniform2uivEXT; + void function(GLint, GLsizei, in GLuint*) glUniform3uivEXT; + void function(GLint, GLsizei, in GLuint*) glUniform4uivEXT; + + // GL_EXT_draw_instanced + void function(GLenum, GLint, GLsizei, GLsizei) glDrawArraysInstancedEXT; + void function(GLenum, GLsizei, GLenum, in GLvoid*, GLsizei) glDrawElementsInstancedEXT; + + // GL_EXT_texture_buffer_object + void function(GLenum, GLenum, GLuint) glTexBufferEXT; + + // GL_EXT_draw_buffers2 + void function(GLuint, GLboolean, GLboolean, GLboolean, GLboolean) glColorMaskIndexedEXT; + void function(GLenum, GLuint, GLboolean*) glGetBooleanIndexedvEXT; + void function(GLenum, GLuint, GLint*) glGetIntegerIndexedvEXT; + void function(GLenum, GLuint) glEnableIndexedEXT; + void function(GLenum, GLuint) glDisableIndexedEXT; + GLboolean function(GLenum, GLuint) glIsEnabledIndexedEXT; + + // GL_EXT_bindable_uniform + void function(GLuint, GLint, GLuint) glUniformBufferEXT; + void function(GLuint, GLint) glGetUniformBufferSizeEXT; + void function(GLuint, GLint) glGetUniformOffsetEXT; + + // GL_EXT_texture_integer + void function(GLenum, GLenum, in GLint*) glTexParameterIivEXT; + void function(GLenum, GLenum, in GLuint*) glTexParameterIuivEXT; + void function(GLenum, GLenum, GLint*) glGetTexParameterIivEXT; + void function(GLenum, GLenum, GLuint*) glGetTexParameterIuivEXT; + void function(GLint, GLint, GLint, GLint) glClearColorIiEXT; + void function(GLuint, GLuint, GLuint, GLuint) glClearColorIuiEXT; + + // GL_EXT_transform_feedback + void function(GLenum) glBeginTransformFeedbackEXT; + void function() glEndTransformFeedbackEXT; + void function(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr) glBindBufferRangeEXT; + void function(GLenum, GLuint, GLuint, GLintptr) glBindBufferOffsetEXT; + void function(GLenum, GLuint, GLuint) glBindBufferBaseEXT; + void function(GLuint, GLsizei, in GLchar**, GLenum) glTransformFeedbackVaryingsEXT; + void function(GLuint, GLuint, GLsizei, GLsizei*, GLsizei*, GLenum*, GLchar*) glGetTransformFeedbackVaryingEXT; + + // GL_EXT_direct_state_access + void function(GLbitfield) glClientAttribDefaultEXT; + void function(GLbitfield) glPushClientAttribDefaultEXT; + void function(GLenum, in GLfloat*) glMatrixLoadfEXT; + void function(GLenum, in GLdouble*) glMatrixLoaddEXT; + void function(GLenum, in GLfloat*) glMatrixMultfEXT; + void function(GLenum, in GLdouble*) glMatrixMultdEXT; + void function(GLenum) glMatrixLoadIdentityEXT; + void function(GLenum, GLfloat, GLfloat, GLfloat, GLfloat) glMatrixRotatefEXT; + void function(GLenum, GLdouble, GLdouble, GLdouble, GLdouble) glMatrixRotatedEXT; + void function(GLenum, GLfloat, GLfloat, GLfloat) glMatrixScalefEXT; + void function(GLenum, GLdouble, GLdouble, GLdouble) glMatrixScaledEXT; + void function(GLenum, GLfloat, GLfloat, GLfloat) glMatrixTranslatefEXT; + void function(GLenum, GLdouble, GLdouble, GLdouble) glMatrixTranslatedEXT; + void function(GLenum, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble) glMatrixFrustumEXT; + void function(GLenum, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble) glMatrixOrthoEXT; + void function(GLenum) glMatrixPopEXT; + void function(GLenum) glMatrixPushEXT; + void function(GLenum, in GLfloat*) glMatrixLoadTransposefEXT; + void function(GLenum, in GLdouble*) glMatrixLoadTransposedEXT; + void function(GLenum, in GLfloat*) glMatrixMultTransposefEXT; + void function(GLenum, in GLdouble*) glMatrixMultTransposedEXT; + void function(GLuint, GLenum, GLenum, GLfloat) glTextureParameterfEXT; + void function(GLuint, GLenum, GLenum, in GLfloat*) glTextureParameterfvEXT; + void function(GLuint, GLenum, GLenum, GLint) glTextureParameteriEXT; + void function(GLuint, GLenum, GLenum, in GLint*) glTextureParameterivEXT; + void function(GLuint, GLenum, GLint, GLenum, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glTextureImage1DEXT; + void function(GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glTextureImage2DEXT; + void function(GLuint, GLenum, GLint, GLint, GLsizei, GLenum, GLenum, in GLvoid*) glTextureSubImage1DEXT; + void function(GLuint, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glTextureSubImage2DEXT; + void function(GLuint, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint) glCopyTextureImage1DEXT; + void function(GLuint, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint) glCopyTextureImage2DEXT; + void function(GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei) glCopyTextureSubImage1DEXT; + void function(GLuint, GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) glCopyTextureSubImage2DEXT; + void function(GLuint, GLenum, GLint, GLenum, GLenum, GLvoid*) glGetTextureImageEXT; + void function(GLuint, GLenum, GLenum, GLfloat*) glGetTextureParameterfvEXT; + void function(GLuint, GLenum, GLenum, GLint*) glGetTextureParameterivEXT; + void function(GLuint, GLenum, GLint, GLenum, GLfloat*) glGetTextureLevelParameterfvEXT; + void function(GLuint, GLenum, GLint, GLenum, GLint*) glGetTextureLevelParameterivEXT; + void function(GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glTextureImage3DEXT; + void function(GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glTextureSubImage3DEXT; + void function(GLuint, GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) glCopyTextureSubImage3DEXT; + void function(GLenum, GLenum, GLenum, GLfloat) glMultiTexParameterfEXT; + void function(GLenum, GLenum, GLenum, in GLfloat*) glMultiTexParameterfvEXT; + void function(GLenum, GLenum, GLenum, GLint) glMultiTexParameteriEXT; + void function(GLenum, GLenum, GLenum, in GLint*) glMultiTexParameterivEXT; + void function(GLenum, GLenum, GLint, GLenum, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glMultiTexImage1DEXT; + void function(GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glMultiTexImage2DEXT; + void function(GLenum, GLenum, GLint, GLint, GLsizei, GLenum, GLenum, in GLvoid*) glMultiTexSubImage1DEXT; + void function(GLenum, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glMultiTexSubImage2DEXT; + void function(GLenum, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint) glCopyMultiTexImage1DEXT; + void function(GLenum, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint) glCopyMultiTexImage2DEXT; + void function(GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei) glCopyMultiTexSubImage1DEXT; + void function(GLenum, GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) glCopyMultiTexSubImage2DEXT; + void function(GLenum, GLenum, GLint, GLenum, GLenum, GLvoid*) glGetMultiTexImageEXT; + void function(GLenum, GLenum, GLenum, GLfloat*) glGetMultiTexParameterfvEXT; + void function(GLenum, GLenum, GLenum, GLint*) glGetMultiTexParameterivEXT; + void function(GLenum, GLenum, GLint, GLenum, GLfloat*) glGetMultiTexLevelParameterfvEXT; + void function(GLenum, GLenum, GLint, GLenum, GLint*) glGetMultiTexLevelParameterivEXT; + void function(GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glMultiTexImage3DEXT; + void function(GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glMultiTexSubImage3DEXT; + void function(GLenum, GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) glCopyMultiTexSubImage3DEXT; + void function(GLenum, GLenum, GLuint) glBindMultiTextureEXT; + void function(GLenum, GLuint) glEnableClientStateIndexedEXT; + void function(GLenum, GLuint) glDisableClientStateIndexedEXT; + void function(GLenum, GLint, GLenum, GLsizei, in GLvoid*) glMultiTexCoordPointerEXT; + void function(GLenum, GLenum, GLenum, GLfloat) glMultiTexEnvfEXT; + void function(GLenum, GLenum, GLenum, in GLfloat*) glMultiTexEnvfvEXT; + void function(GLenum, GLenum, GLenum, GLint) glMultiTexEnviEXT; + void function(GLenum, GLenum, GLenum, in GLint*) glMultiTexEnvivEXT; + void function(GLenum, GLenum, GLenum, GLdouble) glMultiTexGendEXT; + void function(GLenum, GLenum, GLenum, in GLdouble*) glMultiTexGendvEXT; + void function(GLenum, GLenum, GLenum, GLfloat) glMultiTexGenfEXT; + void function(GLenum, GLenum, GLenum, in GLfloat*) glMultiTexGenfvEXT; + void function(GLenum, GLenum, GLenum, GLint) glMultiTexGeniEXT; + void function(GLenum, GLenum, GLenum, in GLint*) glMultiTexGenivEXT; + void function(GLenum, GLenum, GLenum, GLfloat*) glGetMultiTexEnvfvEXT; + void function(GLenum, GLenum, GLenum, GLint*) glGetMultiTexEnvivEXT; + void function(GLenum, GLenum, GLenum, GLdouble*) glGetMultiTexGendvEXT; + void function(GLenum, GLenum, GLenum, GLfloat*) glGetMultiTexGenfvEXT; + void function(GLenum, GLenum, GLenum, GLint*) glGetMultiTexGenivEXT; + void function(GLenum, GLuint, GLfloat*) glGetFloatIndexedvEXT; + void function(GLenum, GLuint, GLdouble*) glGetDoubleIndexedvEXT; + void function(GLenum, GLuint, GLvoid**) glGetPointerIndexedvEXT; + void function(GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedTextureImage3DEXT; + void function(GLuint, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedTextureImage2DEXT; + void function(GLuint, GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedTextureImage1DEXT; + void function(GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedTextureSubImage3DEXT; + void function(GLuint, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedTextureSubImage2DEXT; + void function(GLuint, GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedTextureSubImage1DEXT; + void function(GLuint, GLenum, GLint, GLvoid*) glGetCompressedTextureImageEXT; + void function(GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedMultiTexImage3DEXT; + void function(GLenum, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedMultiTexImage2DEXT; + void function(GLenum, GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, in GLvoid*) glCompressedMultiTexImage1DEXT; + void function(GLenum, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedMultiTexSubImage3DEXT; + void function(GLenum, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedMultiTexSubImage2DEXT; + void function(GLenum, GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, in GLvoid*) glCompressedMultiTexSubImage1DEXT; + void function(GLenum, GLenum, GLint, GLvoid*) glGetCompressedMultiTexImageEXT; + void function(GLuint, GLenum, GLenum, GLsizei, in GLvoid*) glNamedProgramStringEXT; + void function(GLuint, GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glNamedProgramLocalParameter4dEXT; + void function(GLuint, GLenum, GLuint, in GLdouble*) glNamedProgramLocalParameter4dvEXT; + void function(GLuint, GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glNamedProgramLocalParameter4fEXT; + void function(GLuint, GLenum, GLuint, in GLfloat*) glNamedProgramLocalParameter4fvEXT; + void function(GLuint, GLenum, GLuint, GLdouble*) glGetNamedProgramLocalParameterdvEXT; + void function(GLuint, GLenum, GLuint, GLfloat*) glGetNamedProgramLocalParameterfvEXT; + void function(GLuint, GLenum, GLenum, GLint*) glGetNamedProgramivEXT; + void function(GLuint, GLenum, GLenum, GLvoid*) glGetNamedProgramStringEXT; + void function(GLuint, GLenum, GLuint, GLsizei, in GLfloat*) glNamedProgramLocalParameters4fvEXT; + void function(GLuint, GLenum, GLuint, GLint, GLint, GLint, GLint) glNamedProgramLocalParameterI4iEXT; + void function(GLuint, GLenum, GLuint, in GLint*) glNamedProgramLocalParameterI4ivEXT; + void function(GLuint, GLenum, GLuint, GLsizei, in GLint*) glNamedProgramLocalParametersI4ivEXT; + void function(GLuint, GLenum, GLuint, GLuint, GLuint, GLuint, GLuint) glNamedProgramLocalParameterI4uiEXT; + void function(GLuint, GLenum, GLuint, in GLuint*) glNamedProgramLocalParameterI4uivEXT; + void function(GLuint, GLenum, GLuint, GLsizei, in GLuint*) glNamedProgramLocalParametersI4uivEXT; + void function(GLuint, GLenum, GLuint, GLint*) glGetNamedProgramLocalParameterIivEXT; + void function(GLuint, GLenum, GLuint, GLuint*) glGetNamedProgramLocalParameterIuivEXT; + void function(GLuint, GLenum, GLenum, in GLint*) glTextureParameterIivEXT; + void function(GLuint, GLenum, GLenum, in GLuint*) glTextureParameterIuivEXT; + void function(GLuint, GLenum, GLenum, GLint*) glGetTextureParameterIivEXT; + void function(GLuint, GLenum, GLenum, GLuint*) glGetTextureParameterIuivEXT; + void function(GLenum, GLenum, GLenum, in GLint*) glMultiTexParameterIivEXT; + void function(GLenum, GLenum, GLenum, in GLuint*) glMultiTexParameterIuivEXT; + void function(GLenum, GLenum, GLenum, GLint*) glGetMultiTexParameterIivEXT; + void function(GLenum, GLenum, GLenum, GLuint*) glGetMultiTexParameterIuivEXT; + void function(GLuint, GLint, GLfloat) glProgramUniform1fEXT; + void function(GLuint, GLint, GLfloat, GLfloat) glProgramUniform2fEXT; + void function(GLuint, GLint, GLfloat, GLfloat, GLfloat) glProgramUniform3fEXT; + void function(GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat) glProgramUniform4fEXT; + void function(GLuint, GLint, GLint) glProgramUniform1iEXT; + void function(GLuint, GLint, GLint, GLint) glProgramUniform2iEXT; + void function(GLuint, GLint, GLint, GLint, GLint) glProgramUniform3iEXT; + void function(GLuint, GLint, GLint, GLint, GLint, GLint) glProgramUniform4iEXT; + void function(GLuint, GLint, GLsizei, in GLfloat*) glProgramUniform1fvEXT; + void function(GLuint, GLint, GLsizei, in GLfloat*) glProgramUniform2fvEXT; + void function(GLuint, GLint, GLsizei, in GLfloat*) glProgramUniform3fvEXT; + void function(GLuint, GLint, GLsizei, in GLfloat*) glProgramUniform4fvEXT; + void function(GLuint, GLint, GLsizei, in GLint*) glProgramUniform1ivEXT; + void function(GLuint, GLint, GLsizei, in GLint*) glProgramUniform2ivEXT; + void function(GLuint, GLint, GLsizei, in GLint*) glProgramUniform3ivEXT; + void function(GLuint, GLint, GLsizei, in GLint*) glProgramUniform4ivEXT; + void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix2fvEXT; + void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix3fvEXT; + void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix4fvEXT; + void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix2x3fvEXT; + void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix3x2fvEXT; + void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix2x4fvEXT; + void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix4x2fvEXT; + void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix3x4fvEXT; + void function(GLuint, GLint, GLsizei, GLboolean, in GLfloat*) glProgramUniformMatrix4x3fvEXT; + void function(GLuint, GLint, GLuint) glProgramUniform1uiEXT; + void function(GLuint, GLint, GLuint, GLuint) glProgramUniform2uiEXT; + void function(GLuint, GLint, GLuint, GLuint, GLuint) glProgramUniform3uiEXT; + void function(GLuint, GLint, GLuint, GLuint, GLuint, GLuint) glProgramUniform4uiEXT; + void function(GLuint, GLint, GLsizei, in GLuint*) glProgramUniform1uivEXT; + void function(GLuint, GLint, GLsizei, in GLuint*) glProgramUniform2uivEXT; + void function(GLuint, GLint, GLsizei, in GLuint*) glProgramUniform3uivEXT; + void function(GLuint, GLint, GLsizei, in GLuint*) glProgramUniform4uivEXT; + void function(GLuint, GLsizeiptr, in GLvoid*, GLenum) glNamedBufferDataEXT; + void function(GLuint, GLintptr, GLsizeiptr, in GLvoid*) glNamedBufferSubDataEXT; + GLvoid* function(GLuint, GLenum) glMapNamedBufferEXT; + GLboolean function(GLuint) glUnmapNamedBufferEXT; + void function(GLuint, GLenum, GLint*) glGetNamedBufferParameterivEXT; + void function(GLuint, GLenum, GLvoid**) glGetNamedBufferPointervEXT; + void function(GLuint, GLintptr, GLsizeiptr, GLvoid*) glGetNamedBufferSubDataEXT; + void function(GLuint, GLenum, GLenum, GLuint) glTextureBufferEXT; + void function(GLenum, GLenum, GLenum, GLuint) glMultiTexBufferEXT; + void function(GLuint, GLenum, GLsizei, GLsizei) glNamedRenderbufferStorageEXT; + void function(GLuint, GLenum, GLint*) glGetNamedRenderbufferParameterivEXT; + GLenum function(GLuint, GLenum) glCheckNamedFramebufferStatusEXT; + void function(GLuint, GLenum, GLenum, GLuint, GLint) glNamedFramebufferTexture1DEXT; + void function(GLuint, GLenum, GLenum, GLuint, GLint) glNamedFramebufferTexture2DEXT; + void function(GLuint, GLenum, GLenum, GLuint, GLint, GLint) glNamedFramebufferTexture3DEXT; + void function(GLuint, GLenum, GLenum, GLuint) glNamedFramebufferRenderbufferEXT; + void function(GLuint, GLenum, GLenum, GLint*) glGetNamedFramebufferAttachmentParameterivEXT; + void function(GLuint, GLenum) glGenerateTextureMipmapEXT; + void function(GLenum, GLenum) glGenerateMultiTexMipmapEXT; + void function(GLuint, GLenum) glFramebufferDrawBufferEXT; + void function(GLuint, GLsizei, in GLenum*) glFramebufferDrawBuffersEXT; + void function(GLuint, GLenum) glFramebufferReadBufferEXT; + void function(GLuint, GLenum, GLint*) glGetFramebufferParameterivEXT; + void function(GLuint, GLsizei, GLenum, GLsizei, GLsizei) glNamedRenderbufferStorageMultisampleEXT; + void function(GLuint, GLsizei, GLsizei, GLenum, GLsizei, GLsizei) glNamedRenderbufferStorageMultisampleCoverageEXT; + void function(GLuint, GLenum, GLuint, GLint) glNamedFramebufferTextureEXT; + void function(GLuint, GLenum, GLuint, GLint, GLint) glNamedFramebufferTextureLayerEXT; + void function(GLuint, GLenum, GLuint, GLint, GLenum) glNamedFramebufferTextureFaceEXT; + void function(GLuint, GLenum, GLuint) glTextureRenderbufferEXT; + void function(GLenum, GLenum, GLuint) glMultiTexRenderbufferEXT; + + // GL_EXT_provoking_vertex + void function(GLenum) glProvokingVertexEXT; + + // GL_EXT_separate_shader_objects + void function(GLenum, GLuint) glUseShaderProgramEXT; + void function(GLuint) glActiveProgramEXT; + GLuint function(GLenum, in GLchar*) glCreateShaderProgramEXT; + } + + version(DerelictGL_NV) + { + // GL_NV_vertex_array_range + void function() glFlushVertexArrayRangeNV; + void function(GLsizei, in GLvoid*) glVertexArrayRangeNV; + + // GL_NV_register_combiners + void function(GLenum, in GLfloat*) glCombinerParameterfvNV; + void function(GLenum, GLfloat) glCombinerParameterfNV; + void function(GLenum, in GLint*) glCombinerParameterivNV; + void function(GLenum, GLint) glCombinerParameteriNV; + void function(GLenum, GLenum, GLenum, GLenum, GLenum, GLenum) glCombinerInputNV; + void function(GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean) glCombinerOutputNV; + void function(GLenum, GLenum, GLenum, GLenum) glFinalCombinerInputNV; + void function(GLenum, GLenum, GLenum, GLenum, GLfloat*) glGetCombinerInputParameterfvNV; + void function(GLenum, GLenum, GLenum, GLenum, GLint*) glGetCombinerInputParameterivNV; + void function(GLenum, GLenum, GLenum, GLfloat*) glGetCombinerOutputParameterfvNV; + void function(GLenum, GLenum, GLenum, GLint*) glGetCombinerOutputParameterivNV; + void function(GLenum, GLenum, GLfloat*) glGetFinalCombinerInputParameterfvNV; + void function(GLenum, GLenum, GLint*) glGetFinalCombinerInputParameterivNV; + + // GL_NV_fence + void function(GLsizei, in GLuint*) glDeleteFencesNV; + void function(GLsizei, GLuint*) glGenFencesNV; + GLboolean function(GLuint) glIsFenceNV; + GLboolean function(GLuint) glTestFenceNV; + void function(GLuint, GLenum, GLint*) glGetFenceivNV; + void function(GLuint) glFinishFenceNV; + void function(GLuint, GLenum) glSetFenceNV; + + // GL_NV_evaluators + void function(GLenum, GLuint, GLenum, GLsizei, GLsizei, GLint, GLint, GLboolean, in GLvoid*) glMapControlPointsNV; + void function(GLenum, GLenum, in GLint*) glMapParameterivNV; + void function(GLenum, GLenum, in GLfloat*) glMapParameterfvNV; + void function(GLenum, GLuint, GLenum, GLsizei, GLsizei, GLboolean, GLvoid*) glGetMapControlPointsNV; + void function(GLenum, GLenum, GLint*) glGetMapParameterivNV; + void function(GLenum, GLenum, GLfloat*) glGetMapParameterfvNV; + void function(GLenum, GLuint, GLenum, GLint*) glGetMapAttribParameterivNV; + void function(GLenum, GLuint, GLenum, GLfloat*) glGetMapAttribParameterfvNV; + + // GL_NV_register_combiners2 + void function(GLenum, GLenum, in GLfloat*) glCombinerStageParameterfvNV; + void function(GLenum, GLenum, GLfloat*) glGetCombinerStageParameterfvNV; + + // GL_NV_vertex_program + GLboolean function(GLsizei, in GLuint*, GLboolean*) glAreProgramsResidentNV; + void function(GLenum, GLuint) glBindProgramNV; + void function(GLsizei, in GLuint*) glDeleteProgramsNV; + void function(GLenum, GLuint, in GLfloat*) glExecuteProgramNV; + void function(GLsizei, GLuint*) glGenProgramsNV; + void function(GLenum, GLuint, GLenum, GLdouble*) glGetProgramParameterdvNV; + void function(GLenum, GLuint, GLenum, GLfloat*) glGetProgramParameterfvNV; + void function(GLuint, GLenum, GLint*) glGetProgramivNV; + void function(GLuint, GLenum, GLubyte*) glGetProgramStringNV; + void function(GLenum, GLuint, GLenum, GLint*) glGetTrackMatrixivNV; + void function(GLuint, GLenum, GLdouble*) glGetVertexAttribdvNV; + void function(GLuint, GLenum, GLfloat*) glGetVertexAttribfvNV; + void function(GLuint, GLenum, GLint*) glGetVertexAttribivNV; + void function(GLuint, GLenum, GLvoid**) glGetVertexAttribPointervNV; + GLboolean function(GLuint) glIsProgramNV; + void function(GLenum, GLuint, GLsizei, in GLubyte*) glLoadProgramNV; + void function(GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glProgramParameter4dNV; + void function(GLenum, GLuint, in GLdouble*) glProgramParameter4dvNV; + void function(GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glProgramParameter4fNV; + void function(GLenum, GLuint, in GLfloat*) glProgramParameter4fvNV; + void function(GLenum, GLuint, GLuint, in GLdouble*) glProgramParameters4dvNV; + void function(GLenum, GLuint, GLuint, in GLfloat*) glProgramParameters4fvNV; + void function(GLsizei, in GLuint*) glRequestResidentProgramsNV; + void function(GLenum, GLuint, GLenum, GLenum) glTrackMatrixNV; + void function(GLuint, GLint, GLenum, GLsizei, in GLvoid*) glVertexAttribPointerNV; + void function(GLuint, GLdouble) glVertexAttrib1dNV; + void function(GLuint, in GLdouble*) glVertexAttrib1dvNV; + void function(GLuint, GLfloat) glVertexAttrib1fNV; + void function(GLuint, in GLfloat*) glVertexAttrib1fvNV; + void function(GLuint, GLshort) glVertexAttrib1sNV; + void function(GLuint, in GLshort*) glVertexAttrib1svNV; + void function(GLuint, GLdouble, GLdouble) glVertexAttrib2dNV; + void function(GLuint, in GLdouble*) glVertexAttrib2dvNV; + void function(GLuint, GLfloat, GLfloat) glVertexAttrib2fNV; + void function(GLuint, in GLfloat*) glVertexAttrib2fvNV; + void function(GLuint, GLshort, GLshort) glVertexAttrib2sNV; + void function(GLuint, in GLshort*) glVertexAttrib2svNV; + void function(GLuint, GLdouble, GLdouble, GLdouble) glVertexAttrib3dNV; + void function(GLuint, in GLdouble*) glVertexAttrib3dvNV; + void function(GLuint, GLfloat, GLfloat, GLfloat) glVertexAttrib3fNV; + void function(GLuint, in GLfloat*) glVertexAttrib3fvNV; + void function(GLuint, GLshort, GLshort, GLshort) glVertexAttrib3sNV; + void function(GLuint, in GLshort*) glVertexAttrib3svNV; + void function(GLuint, GLdouble, GLdouble, GLdouble, GLdouble) glVertexAttrib4dNV; + void function(GLuint, in GLdouble*) glVertexAttrib4dvNV; + void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat) glVertexAttrib4fNV; + void function(GLuint, in GLfloat*) glVertexAttrib4fvNV; + void function(GLuint, GLshort, GLshort, GLshort, GLshort) glVertexAttrib4sNV; + void function(GLuint, in GLshort*) glVertexAttrib4svNV; + void function(GLuint, GLubyte, GLubyte, GLubyte, GLubyte) glVertexAttrib4ubNV; + void function(GLuint, in GLubyte*) glVertexAttrib4ubvNV; + void function(GLuint, GLsizei, in GLdouble*) glVertexAttribs1dvNV; + void function(GLuint, GLsizei, in GLfloat*) glVertexAttribs1fvNV; + void function(GLuint, GLsizei, in GLshort*) glVertexAttribs1svNV; + void function(GLuint, GLsizei, in GLdouble*) glVertexAttribs2dvNV; + void function(GLuint, GLsizei, in GLfloat*) glVertexAttribs2fvNV; + void function(GLuint, GLsizei, in GLshort*) glVertexAttribs2svNV; + void function(GLuint, GLsizei, in GLdouble*) glVertexAttribs3dvNV; + void function(GLuint, GLsizei, in GLfloat*) glVertexAttribs3fvNV; + void function(GLuint, GLsizei, in GLshort*) glVertexAttribs3svNV; + void function(GLuint, GLsizei, in GLdouble*) glVertexAttribs4dvNV; + void function(GLuint, GLsizei, in GLfloat*) glVertexAttribs4fvNV; + void function(GLuint, GLsizei, in GLshort*) glVertexAttribs4svNV; + void function(GLuint, GLsizei, in GLubyte*) glVertexAttribs4ubvNV; + + // GL_NV_occlusion_query + void function(GLsizei, GLuint*) glGenOcclusionQueriesNV; + void function(GLsizei, in GLuint*) glDeleteOcclusionQueriesNV; + GLboolean function(GLuint) glIsOcclusionQueryNV; + void function(GLuint) glBeginOcclusionQueryNV; + void function() glEndOcclusionQueryNV; + void function(GLuint, GLenum, GLint*) glGetOcclusionQueryivNV; + void function(GLuint, GLenum, GLuint*) glGetOcclusionQueryuivNV; + + // GL_NV_point_sprite + void function(GLenum, GLint) glPointParameteriNV; + void function(GLenum, in GLint*) glPointParameterivNV; + + // GL_NV_fragment_program + void function(GLuint, GLsizei, in GLubyte*, GLfloat, GLfloat, GLfloat, GLfloat) glProgramNamedParameter4fNV; + void function(GLuint, GLsizei, in GLubyte*, GLdouble, GLdouble, GLdouble, GLdouble) glProgramNamedParameter4dNV; + void function(GLuint, GLsizei, in GLubyte*, in GLfloat*) glProgramNamedParameter4fvNV; + void function(GLuint, GLsizei, in GLubyte*, in GLdouble*) glProgramNamedParameter4dvNV; + void function(GLuint, GLsizei, in GLubyte*, GLfloat*) glGetProgramNamedParameterfvNV; + void function(GLuint, GLsizei, in GLubyte*, GLdouble*) glGetProgramNamedParameterdvNV; + + // GL_NV_half_float + void function(GLhalfNV, GLhalfNV) glVertex2hNV; + void function(in GLhalfNV*) glVertex2hvNV; + void function(GLhalfNV, GLhalfNV, GLhalfNV) glVertex3hNV; + void function(in GLhalfNV*) glVertex3hvNV; + void function(GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV) glVertex4hNV; + void function(in GLhalfNV*) glVertex4hvNV; + void function(GLhalfNV, GLhalfNV, GLhalfNV) glNormal3hNV; + void function(in GLhalfNV*) glNormal3hvNV; + void function(GLhalfNV, GLhalfNV, GLhalfNV) glColor3hNV; + void function(in GLhalfNV*) glColor3hvNV; + void function(GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV) glColor4hNV; + void function(in GLhalfNV*) glColor4hvNV; + void function(GLhalfNV) glTexCoord1hNV; + void function(in GLhalfNV*) glTexCoord1hvNV; + void function(GLhalfNV, GLhalfNV) glTexCoord2hNV; + void function(in GLhalfNV*) glTexCoord2hvNV; + void function(GLhalfNV, GLhalfNV, GLhalfNV) glTexCoord3hNV; + void function(in GLhalfNV*) glTexCoord3hvNV; + void function(GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV) glTexCoord4hNV; + void function(in GLhalfNV*) glTexCoord4hvNV; + void function(GLenum, GLhalfNV) glMultiTexCoord1hNV; + void function(GLenum, in GLhalfNV*) glMultiTexCoord1hvNV; + void function(GLenum, GLhalfNV, GLhalfNV) glMultiTexCoord2hNV; + void function(GLenum, in GLhalfNV*) glMultiTexCoord2hvNV; + void function(GLenum, GLhalfNV, GLhalfNV, GLhalfNV) glMultiTexCoord3hNV; + void function(GLenum, in GLhalfNV*) glMultiTexCoord3hvNV; + void function(GLenum, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV) glMultiTexCoord4hNV; + void function(GLenum, in GLhalfNV*) glMultiTexCoord4hvNV; + void function(GLhalfNV) glFogCoordhNV; + void function(in GLhalfNV*) glFogCoordhvNV; + void function(GLhalfNV, GLhalfNV, GLhalfNV) glSecondaryColor3hNV; + void function(in GLhalfNV*) glSecondaryColor3hvNV; + + // These two funcs seem not to be present in the NVIDIA drivers +// void function(GLhalfNV) glVertexWeighthNV; +// void function(in GLhalfNV*) glVertexWeighthvNV; + + void function(GLuint, GLhalfNV) glVertexAttrib1hNV; + void function(GLuint, in GLhalfNV*) glVertexAttrib1hvNV; + void function(GLuint, GLhalfNV, GLhalfNV) glVertexAttrib2hNV; + void function(GLuint, in GLhalfNV*) glVertexAttrib2hvNV; + void function(GLuint, GLhalfNV, GLhalfNV, GLhalfNV) glVertexAttrib3hNV; + void function(GLuint, in GLhalfNV*) glVertexAttrib3hvNV; + void function(GLuint, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV) glVertexAttrib4hNV; + void function(GLuint, in GLhalfNV*) glVertexAttrib4hvNV; + void function(GLuint, GLsizei, in GLhalfNV*) glVertexAttribs1hvNV; + void function(GLuint, GLsizei, in GLhalfNV*) glVertexAttribs2hvNV; + void function(GLuint, GLsizei, in GLhalfNV*) glVertexAttribs3hvNV; + void function(GLuint, GLsizei, in GLhalfNV*) glVertexAttribs4hvNV; + + // GL_NV_pixel_data_range + void function(GLenum, GLsizei, GLvoid*) glPixelDataRangeNV; + void function(GLenum) glFlushPixelDataRangeNV; + + // GL_NV_primitive_restart + void function() glPrimitiveRestartNV; + void function(GLuint) glPrimitiveRestartIndexNV; + + // GL_NV_gpu_program4 + void function(GLenum, GLuint, GLint, GLint, GLint, GLint) glProgramLocalParameterI4iNV; + void function(GLenum, GLuint, in GLint*) glProgramLocalParameterI4ivNV; + void function(GLenum, GLuint, GLsizei, in GLint*) glProgramLocalParametersI4ivNV; + void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint) glProgramLocalParameterI4uiNV; + void function(GLenum, GLuint, in GLuint*) glProgramLocalParameterI4uivNV; + void function(GLenum, GLuint, GLsizei, in GLuint*) glProgramLocalParametersI4uivNV; + void function(GLenum, GLuint, GLint, GLint, GLint, GLint) glProgramEnvParameterI4iNV; + void function(GLenum, GLuint, in GLint*) glProgramEnvParameterI4ivNV; + void function(GLenum, GLuint, GLsizei, in GLint*) glProgramEnvParametersI4ivNV; + void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint) glProgramEnvParameterI4uiNV; + void function(GLenum, GLuint, in GLuint*) glProgramEnvParameterI4uivNV; + void function(GLenum, GLuint, GLsizei, in GLuint*) glProgramEnvParametersI4uivNV; + void function(GLenum, GLuint, GLint*) glGetProgramLocalParameterIivNV; + void function(GLenum, GLuint, GLuint*) glGetProgramLocalParameterIuivNV; + void function(GLenum, GLuint, GLint*) glGetProgramEnvParameterIivNV; + void function(GLenum, GLuint, GLuint*) glGetProgramEnvParameterIuivNV; + + // GL_NV_geometry_program4 + void function(GLenum, GLint) glProgramVertexLimitNV; + void function(GLenum, GLenum, GLuint, GLint) glFramebufferTextureEXT; + void function(GLenum, GLenum, GLuint, GLint, GLint) glFramebufferTextureLayerEXT; + void function(GLenum, GLenum, GLuint, GLint, GLenum) glFramebufferTextureFaceEXT; + + // GL_NV_vertex_program4 + void function(GLuint, GLint) glVertexAttribI1iEXT; + void function(GLuint, GLint, GLint) glVertexAttribI2iEXT; + void function(GLuint, GLint, GLint, GLint) glVertexAttribI3iEXT; + void function(GLuint, GLint, GLint, GLint, GLint) glVertexAttribI4iEXT; + void function(GLuint, GLuint) glVertexAttribI1uiEXT; + void function(GLuint, GLuint, GLuint) glVertexAttribI2uiEXT; + void function(GLuint, GLuint, GLuint, GLuint) glVertexAttribI3uiEXT; + void function(GLuint, GLuint, GLuint, GLuint, GLuint) glVertexAttribI4uiEXT; + void function(GLuint, in GLint*) glVertexAttribI1ivEXT; + void function(GLuint, in GLint*) glVertexAttribI2ivEXT; + void function(GLuint, in GLint*) glVertexAttribI3ivEXT; + void function(GLuint, in GLint*) glVertexAttribI4ivEXT; + void function(GLuint, in GLuint*) glVertexAttribI1uivEXT; + void function(GLuint, in GLuint*) glVertexAttribI2uivEXT; + void function(GLuint, in GLuint*) glVertexAttribI3uivEXT; + void function(GLuint, in GLuint*) glVertexAttribI4uivEXT; + void function(GLuint, in GLbyte*) glVertexAttribI4bvEXT; + void function(GLuint, in GLshort*) glVertexAttribI4svEXT; + void function(GLuint, in GLubyte*) glVertexAttribI4ubvEXT; + void function(GLuint, in GLushort*) glVertexAttribI4usvEXT; + void function(GLuint, GLint, GLenum, GLsizei, in GLvoid*) glVertexAttribIPointerEXT; + void function(GLuint, GLenum, GLint*) glGetVertexAttribIivEXT; + void function(GLuint, GLenum, GLuint*) glGetVertexAttribIuivEXT; + + // GL_NV_depth_buffer_float + void function(GLdouble, GLdouble) glDepthRangedNV; + void function(GLdouble) glClearDepthdNV; + void function(GLdouble, GLdouble) glDepthBoundsdNV; + + // GL_NV_framebuffer_multisample_coverage + void function(GLenum, GLsizei, GLsizei, GLenum, GLsizei, GLsizei) glRenderbufferStorageMultisampleCoverageNV; + + // GL_NV_transform_feedback + void function(GLenum) glBeginTransformFeedbackNV; + void function() glEndTransformFeedbackNV; + void function(GLuint, in GLint*, GLenum) glTransformFeedbackAttribsNV; + void function(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr) glBindBufferRangeNV; + void function(GLenum, GLuint, GLuint, GLintptr) glBindBufferOffsetNV; + void function(GLenum, GLuint, GLuint) glBindBufferBaseNV; + void function(GLuint, GLsizei, in GLchar**, GLenum) glTransformFeedbackVaryingsNV; + void function(GLuint, in GLchar*) glActiveVaryingNV; + GLint function(GLuint, in GLchar*) glGetVaryingLocationNV; + void function(GLuint, GLuint, GLsizei, GLsizei*, GLsizei*, GLenum*, GLchar*) glGetActiveVaryingNV; + void function(GLuint, GLuint, GLint*) glGetTransformFeedbackVaryingNV; + + // GL_NV_conditional_render + void function(GLuint, GLenum) glBeginConditionalRenderNV; + void function() glEndConditionalRenderNV; + + // GL_NV_present_video + void function(GLuint, GLuint64EXT, GLuint, GLuint, GLenum, GLenum, GLuint, GLuint, GLenum, GLuint, GLuint) glPresentFrameKeyedNV; + void function(GLuint, GLuint64EXT, GLuint, GLuint, GLenum, GLenum, GLuint, GLenum, GLuint, GLenum, GLuint, GLenum, GLuint) glPresentFrameDualFillNV; + void function(GLuint, GLenum, GLint*) glGetVideoivNV; + void function(GLuint, GLenum, GLuint*) glGetVideouivNV; + void function(GLuint, GLenum, GLint64EXT*) glGetVideoi64vNV; + void function(GLuint, GLenum, GLuint64EXT*) glGetVideoui64vNV; + + // GL_NV_explicit_multisample + void function(GLenum, GLuint, GLfloat*) glGetMultisamplefvNV; + void function(GLuint, GLbitfield) glSampleMaskIndexedNV; + void function(GLenum, GLuint) glTexRenderbufferNV; + + // GL_NV_transform_feedback2 + void function(GLenum, GLuint) glBindTransformFeedbackNV; + void function(GLsizei, in GLuint*) glDeleteTransformFeedbacksNV; + void function(GLsizei, GLuint*) glGenTransformFeedbacksNV; + GLboolean function(GLuint) glIsTransformFeedbackNV; + void function() glPauseTransformFeedbackNV; + void function() glResumeTransformFeedbackNV; + void function(GLenum, GLuint) glDrawTransformFeedbackNV; + + // GL_NV_video_capture + void function(GLuint) glBeginVideoCaptureNV; + void function(GLuint, GLuint, GLenum, GLintptrARB) glBindVideoCaptureStreamBufferNV; + void function(GLuint, GLuint, GLenum, GLenum, GLuint) glBindVideoCaptureStreamTextureNV; + void function(GLuint) glEndVideoCaptureNV; + void function(GLuint, GLenum, GLint*) glGetVideoCaptureivNV; + void function(GLuint, GLuint, GLenum, GLint*) glGetVideoCaptureStreamivNV; + void function(GLuint, GLuint, GLenum, GLfloat*) glGetVideoCaptureStreamfvNV; + void function(GLuint, GLuint, GLenum, GLdouble*) glGetVideoCaptureStreamdvNV; + GLenum function(GLuint, GLuint*, GLuint64EXT*) glVideoCaptureNV; + void function(GLuint, GLuint, GLenum, in GLint*) glVideoCaptureStreamParameterivNV; + void function(GLuint, GLuint, GLenum, in GLfloat*) glVideoCaptureStreamParameterfvNV; + void function(GLuint, GLuint, GLenum, in GLdouble*) glVideoCaptureStreamParameterdvNV; + + // GL_NV_copy_image + void function(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei) glCopyImageSubDataNV; + + // GL_NV_shader_buffer_load + void function(GLenum, GLenum) glMakeBufferResidentNV; + void function(GLenum) glMakeBufferNonResidentNV; + GLboolean function(GLenum) glIsBufferResidentNV; + void function(GLuint, GLenum) glNamedMakeBufferResidentNV; + void function(GLuint) glNamedMakeBufferNonResidentNV; + GLboolean function(GLuint) glIsNamedBufferResidentNV; + void function(GLenum, GLenum, GLuint64EXT*) glGetBufferParameterui64vNV; + void function(GLuint, GLenum, GLuint64EXT*) glGetNamedBufferParameterui64vNV; + void function(GLenum, GLuint64EXT*) glGetIntegerui64vNV; + void function(GLint, GLuint64EXT) glUniformui64NV; + void function(GLint, GLsizei, in GLuint64EXT*) glUniformui64vNV; + void function(GLuint, GLint, GLuint64EXT*) glGetUniformui64vNV; + void function(GLuint, GLint, GLuint64EXT) glProgramUniformui64NV; + void function(GLuint, GLint, GLsizei, in GLuint64EXT*) glProgramUniformui64vNV; + + // GL_NV_vertex_buffer_unified_memory + void function(GLenum, GLuint, GLuint64EXT, GLsizeiptr) glBufferAddressRangeNV; + void function(GLint, GLenum, GLsizei) glVertexFormatNV; + void function(GLenum, GLsizei) glNormalFormatNV; + void function(GLint, GLenum, GLsizei) glColorFormatNV; + void function(GLenum, GLsizei) glIndexFormatNV; + void function(GLint, GLenum, GLsizei) glTexCoordFormatNV; + void function(GLsizei) glEdgeFlagFormatNV; + void function(GLint, GLenum, GLsizei) glSecondaryColorFormatNV; + void function(GLenum, GLsizei) glFogCoordFormatNV; + void function(GLuint, GLint, GLenum, GLboolean, GLsizei) glVertexAttribFormatNV; + void function(GLuint, GLint, GLenum, GLsizei) glVertexAttribIFormatNV; + void function(GLenum, GLuint, GLuint64EXT*) glGetIntegerui64i_vNV; + + // GL_NV_texture_barrier + void function() glTextureBarrierNV; + } + + version(DerelictGL_ATI) + { + // GL_ATI_envmap_bumpmap + void function(GLenum, in GLint*) glTexBumpParameterivATI; + void function(GLenum, in GLfloat*) glTexBumpParameterfvATI; + void function(GLenum, GLint*) glGetTexBumpParameterivATI; + void function(GLenum, GLfloat*) glGetTexBumpParameterfvATI; + + // GL_ATI_fragment_shader + GLuint function(GLuint) glGenFragmentShadersATI; + void function(GLuint) glBindFragmentShaderATI; + void function(GLuint) glDeleteFragmentShaderATI; + void function() glBeginFragmentShaderATI; + void function() glEndFragmentShaderATI; + void function(GLuint, GLuint, GLenum) glPassTexCoordATI; + void function(GLuint, GLuint, GLenum) glSampleMapATI; + void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint) glColorFragmentOp1ATI; + void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint) glColorFragmentOp2ATI; + void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint) glColorFragmentOp3ATI; + void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint) glAlphaFragmentOp1ATI; + void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint) glAlphaFragmentOp2ATI; + void function(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint) glAlphaFragmentOp3ATI; + void function(GLuint, in GLfloat*) glSetFragmentShaderConstantATI; + + // GL_ATI_pn_triangles + void function(GLenum, GLint) glPNTrianglesiATI; + void function(GLenum, GLint) glPNTrianglesfATI; + + // GL_ATI_vertex_array_object + GLuint function(GLsizei, in GLvoid*, GLenum) glNewObjectBufferATI; + GLboolean function(GLuint) glIsObjectBufferATI; + void function(GLuint, GLuint, GLsizei, in GLvoid*, GLenum) glUpdateObjectBufferATI; + void function(GLuint, GLenum, GLfloat*) glGetObjectBufferfvATI; + void function(GLuint, GLenum, GLint*) glGetObjectBufferivATI; + void function(GLuint) glFreeObjectBufferATI; + void function(GLenum, GLint, GLenum, GLsizei, GLuint, GLuint) glArrayObjectATI; + void function(GLenum, GLenum, GLfloat*) glGetArrayObjectfvATI; + void function(GLenum, GLenum, GLint*) glGetArrayObjectivATI; + void function(GLuint, GLenum, GLsizei, GLuint, GLuint) glVariantArrayObjectATI; + void function(GLuint, GLenum, GLfloat*) glGetVariantArrayObjectfvATI; + void function(GLuint, GLenum, GLint*) glGetVariantArrayObjectivATI; + + // GL_ATI_vertex_streams + void function(GLenum, GLshort) glVertexStream1sATI; + void function(GLenum, in GLshort*) glVertexStream1svATI; + void function(GLenum, GLint) glVertexStream1iATI; + void function(GLenum, in GLint*) glVertexStream1ivATI; + void function(GLenum, GLfloat) glVertexStream1fATI; + void function(GLenum, in GLfloat*) glVertexStream1fvATI; + void function(GLenum, GLdouble) glVertexStream1dATI; + void function(GLenum, in GLdouble*) glVertexStream1dvATI; + void function(GLenum, GLshort, GLshort) glVertexStream2sATI; + void function(GLenum, in GLshort*) glVertexStream2svATI; + void function(GLenum, GLint, GLint) glVertexStream2iATI; + void function(GLenum, in GLint*) glVertexStream2ivATI; + void function(GLenum, GLfloat, GLfloat) glVertexStream2fATI; + void function(GLenum, in GLfloat*) glVertexStream2fvATI; + void function(GLenum, GLdouble, GLdouble) glVertexStream2dATI; + void function(GLenum, in GLdouble*) glVertexStream2dvATI; + void function(GLenum, GLshort, GLshort, GLshort) glVertexStream3sATI; + void function(GLenum, in GLshort*) glVertexStream3svATI; + void function(GLenum, GLint, GLint, GLint) glVertexStream3iATI; + void function(GLenum, in GLint*) glVertexStream3ivATI; + void function(GLenum, GLfloat, GLfloat, GLfloat) glVertexStream3fATI; + void function(GLenum, in GLfloat*) glVertexStream3fvATI; + void function(GLenum, GLdouble, GLdouble, GLdouble) glVertexStream3dATI; + void function(GLenum, in GLdouble*) glVertexStream3dvATI; + void function(GLenum, GLshort, GLshort, GLshort, GLshort) glVertexStream4sATI; + void function(GLenum, in GLshort*) glVertexStream4svATI; + void function(GLenum, GLint, GLint, GLint, GLint) glVertexStream4iATI; + void function(GLenum, in GLint*) glVertexStream4ivATI; + void function(GLenum, GLfloat, GLfloat, GLfloat, GLfloat) glVertexStream4fATI; + void function(GLenum, in GLfloat*) glVertexStream4fvATI; + void function(GLenum, GLdouble, GLdouble, GLdouble, GLdouble) glVertexStream4dATI; + void function(GLenum, in GLdouble*) glVertexStream4dvATI; + void function(GLenum, GLbyte, GLbyte, GLbyte) glNormalStream3bATI; + void function(GLenum, in GLbyte*) glNormalStream3bvATI; + void function(GLenum, GLshort, GLshort, GLshort) glNormalStream3sATI; + void function(GLenum, in GLshort*) glNormalStream3svATI; + void function(GLenum, GLint, GLint, GLint) glNormalStream3iATI; + void function(GLenum, in GLint*) glNormalStream3ivATI; + void function(GLenum, GLfloat, GLfloat, GLfloat) glNormalStream3fATI; + void function(GLenum, in GLfloat*) glNormalStream3fvATI; + void function(GLenum, GLdouble, GLdouble, GLdouble) glNormalStream3dATI; + void function(GLenum, in GLdouble*) glNormalStream3dvATI; + void function(GLenum) glClientActiveVertexStreamATI; + void function(GLenum, GLint) glVertexBlendEnviATI; + void function(GLenum, GLfloat) glVertexBlendEnvfATI; + + // GL_ATI_element_array + void function(GLenum, in GLvoid*) glElementPointerATI; + void function(GLenum, GLsizei) glDrawElementArrayATI; + void function(GLenum, GLuint, GLuint, GLsizei) glDrawRangeElementArrayATI; + + // GL_ATI_draw_buffers + void function(GLsizei, in GLenum*) glDrawBuffersATI; + + // GL_ATI_map_object_buffer + GLvoid* function(GLuint) glMapBufferATI; + void function(GLuint) glUnmapBufferATI; + + // GL_ATI_separate_stencil + void function(GLenum, GLenum, GLenum, GLenum) glStencilOpSeparateATI; + void function(GLenum, GLenum, GLint, GLuint) glStencilFuncSeparateATI; + + // GL_ATI_vertex_attrib_array_object + void function(GLuint, GLint, GLenum, GLboolean, GLsizei, GLuint, GLuint) glVertexAttribArrayObjectATI; + void function(GLuint, GLenum, GLfloat*) glGetVertexAttribArrayObjectfvATI; + void function(GLuint, GLenum, GLint*) glGetVertexAttribArrayObjectivATI; + } + + version(DerelictGL_AMD) + { + // GL_AMD_performance_monitor + void function(GLint*, GLsizei, GLuint*) glGetPerfMonitorGroupsAMD; + void function(GLuint, GLint*, GLint*, GLsizei, GLuint*) glGetPerfMonitorCountersAMD; + void function(GLuint, GLsizei, GLsizei*, GLchar*) glGetPerfMonitorGroupStringAMD; + void function(GLuint, GLuint, GLsizei, GLsizei*, GLchar*) glGetPerfMonitorCounterStringAMD; + void function(GLuint, GLuint, GLenum, void*) glGetPerfMonitorCounterInfoAMD; + void function(GLsizei, GLuint*) glGenPerfMonitorsAMD; + void function(GLsizei, GLuint*) glDeletePerfMonitorsAMD; + void function(GLuint, GLboolean, GLuint, GLint, GLuint*) glSelectPerfMonitorCountersAMD; + void function(GLuint) glBeginPerfMonitorAMD; + void function(GLuint) glEndPerfMonitorAMD; + void function(GLuint, GLenum, GLsizei, GLuint*, GLint*) glGetPerfMonitorCounterDataAMD; + + // GL_AMD_vertex_shader_tesselator + void function(GLfloat) glTessellationFactorAMD; + void function(GLenum) glTessellationModeAMD; + + // GL_AMD_draw_buffers_blend + void function(GLuint, GLenum, GLenum) glBlendFuncIndexedAMD; + void function(GLuint, GLenum, GLenum, GLenum, GLenum) glBlendFuncSeparateIndexedAMD; + void function(GLuint, GLenum) glBlendEquationIndexedAMD; + void function(GLuint, GLenum, GLenum) glBlendEquationSeparateIndexedAMD; + } + + version(DerelictGL_SGI) + { + // GL_SGI_color_table + void function(GLenum, GLenum, GLsizei, GLenum, GLenum, in GLvoid*) glColorTableSGI; + void function(GLenum, GLenum, in GLfloat*) glColorTableParameterfvSGI; + void function(GLenum, GLenum, in GLint*) glColorTableParameterivSGI; + void function(GLenum, GLenum, GLint, GLint, GLsizei) glCopyColorTableSGI; + void function(GLenum, GLenum, GLenum, GLvoid*) glGetColorTableSGI; + void function(GLenum, GLenum, GLfloat*) glGetColorTableParameterfvSGI; + void function(GLenum, GLenum, GLint*) glGetColorTableParameterivSGI; + } + + version(DerelictGL_SGIS) + { + // GL_SGIS_texture_filter4 + void function(GLenum, GLenum, GLfloat*) glGetTexFilterFuncSGIS; + void function(GLenum, GLenum, in GLfloat*) glTexFilterFuncSGIS; + + // GL_SGIS_pixel_texture + void function(GLenum, GLint) glPixelTexGenParameteriSGIS; + void function(GLenum, in GLint*) glPixelTexGenParameterivSGIS; + void function(GLenum, GLfloat) glPixelTexGenParameterfSGIS; + void function(GLenum, in GLfloat*) glPixelTexGenParameterfvSGIS; + void function(GLenum, GLint*) glGetPixelTexGenParameterivSGIS; + void function(GLenum, GLfloat*) glGetPixelTexGenParameterfvSGIS; + + // GL_SGIS_texture4D + void function(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, in GLvoid*) glTexImage4DSGIS; + void function(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLsizei, GLenum, GLenum, in GLvoid*) glTexSubImage4DSGIS; + + // GL_SGIS_detail_texture + void function(GLenum, GLsizei, in GLfloat*) glDetailTexFuncSGIS; + void function(GLenum, GLfloat*) glGetDetailTexFuncSGIS; + + // GL_SGIS_sharpen_texture + void function(GLenum, GLsizei, in GLfloat*) glSharpenTexFuncSGIS; + void function(GLenum, GLfloat*) glGetSharpenTexFuncSGIS; + + // GL_SGIS_multisample + void function(GLclampf, GLboolean) glSampleMaskSGIS; + void function(GLenum) glSamplePatternSGIS; + + // GL_SGIS_point_parameters + void function(GLenum, GLfloat) glPointParameterfSGIS; + void function(GLenum, in GLfloat*) glPointParameterfvSGIS; + + // GL_SGIS_fog_function + void function(GLsizei, in GLfloat*) glFogFuncSGIS; + void function(GLfloat*) glGetFogFuncSGIS; + + // GL_SGIS_texture_color_mask + void function(GLboolean, GLboolean, GLboolean, GLboolean) glTextureColorMaskSGIS; + } + + version(DerelictGL_SGIX) + { + // GL_SGIX_pixel_texture + void function(GLenum) glPixelTexGenSGIX; + + // GL_SGIX_sprite + void function(GLenum, GLfloat) glSpriteParameterfSGIX; + void function(GLenum, in GLfloat*) glSpriteParameterfvSGIX; + void function(GLenum, GLint) glSpriteParameteriSGIX; + void function(GLenum, in GLint*) glSpriteParameterivSGIX; + + // GL_SGIX_instruments + GLint function() glGetInstrumentsSGIX; + void function(GLsizei, GLint*) glInstrumentsBufferSGIX; + GLint function(GLint*) glPollInstrumentsSGIX; + void function(GLint) glReadInstrumentsSGIX; + void function() glStartInstrumentsSGIX; + void function(GLint) glStopInstrumentsSGIX; + + // GL_SGIX_framezoom + void function(GLint) glFrameZoomSGIX; + + // GL_SGIX_tag_sample_buffer + void function() glTagSampleBufferSGIX; + + // GL_SGIX_polynomial_ffd + void function(GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, in GLdouble*) glDeformationMap3dSGIX; + void function(GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, in GLfloat*) glDeformationMap3fSGIX; + void function(GLbitfield) glDeformSGIX; + void function(GLbitfield) glLoadIdentityDeformationMapSGIX; + + // GL_SGIX_reference_plane + void function(in GLdouble*) glReferencePlaneSGIX; + + // GL_SGIX_flush_raster + void function() glFLushRasterSGIX; + + // GL_SGIX_list_priority + void function(GLuint, GLenum, GLfloat*) glGetListParameterfvSGIX; + void function(GLuint, GLenum, GLint*) glGetListParameterivSGIX; + void function(GLuint, GLenum, GLfloat) glListParameterfSGIX; + void function(GLuint, GLenum, in GLfloat*) glListParameterfvSGIX; + void function(GLuint, GLenum, GLint) glListParameteriSGIX; + void function(GLuint, GLenum, in GLint*) glListParameterivSGIX; + + // GL_SGIX_fragment_lighting + void function(GLenum, GLenum) glFragmentColorMaterialSGIX; + void function(GLenum, GLenum, GLfloat) glFragmentLightfSGIX; + void function(GLenum, GLenum, in GLfloat*) glFragmentLightfvSGIX; + void function(GLenum, GLenum, GLint) glFragmentLightiSGIX; + void function(GLenum, GLenum, in GLint*) glFragmentLightivSGIX; + void function(GLenum, GLfloat) glFragmentLightModelfSGIX; + void function(GLenum, in GLfloat*) glFragmentLightModelfvSGIX; + void function(GLenum, GLint) glFragmentLightModeliSGIX; + void function(GLenum, in GLint*) glFragmentLightModelivSGIX; + void function(GLenum, GLenum, GLfloat) glFragmentMaterialfSGIX; + void function(GLenum, GLenum, in GLfloat*) glFragmentMaterialfvSGIX; + void function(GLenum, GLenum, GLint) glFragmentMaterialiSGIX; + void function(GLenum, GLenum, in GLint*) glFragmentMaterialivSGIX; + void function(GLenum, GLenum, GLfloat*) glGetFragmentLightfvSGIX; + void function(GLenum, GLenum, GLint*) glGetFragmentLightivSGIX; + void function(GLenum, GLenum, GLfloat*) glGetFragmentMaterialfvSGIX; + void function(GLenum, GLenum, GLint*) glGetFragmentMaterialivSGIX; + void function(GLenum, GLint) glLightEnviSGIX; + + // GL_SGIX_async + void function(GLuint) glAsyncMarkerSGIX; + GLint function(GLuint*) glFinishAsyncSGIX; + GLint function(GLuint*) glPollAsyncSGIX; + GLuint function(GLsizei) glGenAsyncMarkersSGIX; + void function(GLuint, GLsizei) glDeleteAsyncMarkersSGIX; + GLboolean function(GLuint) glIsAsyncMarkerSGIX; + } + + version(DerelictGL_HP) + { + // GL_HP_image_transform + void function(GLenum, GLenum, GLint) glImageTransformParameteriHP; + void function(GLenum, GLenum, GLfloat) glImageTransformParameterfHP; + void function(GLenum, GLenum, in GLint*) glImageTransformParameterivHP; + void function(GLenum, GLenum, in GLfloat*) glImageTransformParameterfvHP; + void function(GLenum, GLenum, GLint*) glGetImageTransformParameterivHP; + void function(GLenum, GLenum, GLfloat*) glGetImageTransformParameterfvHP; + } + + version(DerelictGL_PGI) + { + // GL_PGI_misc_hints + void function(GLenum, GLint) glHintPGI; + } + + version(DerelictGL_IBM) + { + // GL_IBM_multimode_draw_arrays + void function(in GLenum*, in GLint*, in GLsizei*, GLsizei, GLint) glMultiModeDrawArraysIBM; + void function(in GLenum*, in GLsizei*, GLenum, in GLvoid**, GLsizei, GLint) glMultiModeDrawElementsIBM; + + // GL_IBM_vertex_array_lists + void function(GLint, GLenum, GLint, in GLvoid**, GLint) glColorPointerListIBM; + void function(GLint, GLenum, GLint, in GLvoid**, GLint) glSecondaryColorPointerListIBM; + void function(GLint, in GLboolean**, GLint) glEdgeFlagPointerListIBM; + void function(GLenum, GLint, in GLvoid**, GLint) glFogCoordPointerListIBM; + void function(GLenum, GLint, in GLvoid**, GLint) glIndexPointerListIBM; + void function(GLenum, GLint, in GLvoid**, GLint) glNormalPointerListIBM; + void function(GLint, GLenum, GLint, in GLvoid**, GLint) glTexCoordPointerListIBM; + void function(GLint, GLenum, GLint, in GLvoid**, GLint) glVertexPointerListIBM; + } + + version(DerelictGL_WIN) + { + } + + version(DerelictGL_INTEL) + { + // GL_INTEL_parallel_arrays + void function(GLint, GLenum, in GLvoid**) glVertexPointervINTEL; + void function(GLenum, in GLvoid**) glNormalPointervINTEL; + void function(GLint, GLenum, in GLvoid**) glColorPointervINTEL; + void function(GLint, GLenum, in GLvoid**) glTexCoordPointervINTEL; + } + + version(DerelictGL_REND) + { + } + + version(DerelictGL_APPLE) + { + // GL_APPLE_element_array + void function(GLenum, in GLvoid*) glElementPointerAPPLE; + void function(GLenum, GLint, GLsizei) glDrawElementArrayAPPLE; + void function(GLenum, GLuint, GLuint, GLint, GLsizei) glDrawRangeElementArrayAPPLE; + void function(GLenum, in GLint*, in GLsizei*, GLsizei) glMultiDrawElementArrayAPPLE; + void function(GLenum, GLuint, GLuint, in GLint*, in GLsizei*, GLsizei) glMultiDrawRangeElementArrayAPPLE; + + // GL_APPLE_fence + void function(GLsizei, GLuint*) glGenFencesAPPLE; + void function(GLsizei, in GLuint*) glDeleteFencesAPPLE; + void function(GLuint) glSetFenceAPPLE; + GLboolean function(GLuint) glIsFenceAPPLE; + GLboolean function(GLuint) glTestFenceAPPLE; + void function(GLuint) glFinishFenceAPPLE; + GLboolean function(GLenum, GLuint) glTestObjectAPPLE; + void function(GLenum, GLint) glFinishObjectAPPLE; + + // GL_APPLE_vertex_array_object + void function(GLuint) glBindVertexArrayAPPLE; + void function(GLsizei, in GLuint*) glDeleteVertexArraysAPPLE; + void function(GLsizei, GLuint*) glGenVertexArraysAPPLE; + GLboolean function(GLuint) glIsVertexArrayAPPLE; + + // GL_APPLE_vertex_array_range + void function(GLsizei, GLvoid*) glVertexArrayRangeAPPLE; + void function(GLsizei, GLvoid*) glFlushVertexArrayRangeAPPLE; + void function(GLenum, GLint) glVertexArrayParameteriAPPLE; + + // GL_APPLE_flush_buffer_range + void function(GLenum, GLenum, GLint) glBufferParameteriAPPLE; + void function(GLenum, GLintptr, GLsizeiptr) glFlushMappedBufferRangeAPPLE; + + // GL_APPLE_texture_range + void function(GLenum, GLsizei, in GLvoid*) glTextureRangeAPPLE; + void function(GLenum, GLenum, GLvoid**) glGetTexParameterPointervAPPLE; + + // GL_APPLE_vertex_program_evaluators + void function(GLuint, GLenum) glEnableVertexAttribAPPLE; + void function(GLuint, GLenum) glDisableVertexAttribAPPLE; + GLboolean function(GLuint, GLenum) glIsVertexAttribAPPLE; + void function(GLuint, GLuint, GLdouble, GLdouble, GLint, GLint, in GLdouble*) glMapVertexAttrib1dAPPLE; + void function(GLuint, GLuint, GLfloat, GLfloat, GLint, GLint, in GLfloat*) glMapVertexAttrib1fAPPLE; + void function(GLuint, GLuint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, in GLdouble*) glMapVertexAttrib2dAPPLE; + void function(GLuint, GLuint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, in GLfloat*) glMapVertexAttrib2fAPPLE; + + // GL_APPLE_object_purgeable + GLenum function(GLenum, GLuint, GLenum) glObjectPurgeableAPPLE; + GLenum function(GLenum, GLuint, GLenum) glObjectUnpurgeableAPPLE; + void function(GLenum, GLuint, GLenum, GLuint*) glGetObjectParameterivAPPLE; + } + + version(DerelictGL_SUNX) + { + // GL_SUNX_inant_data + void function() glFinishTextureSUNX; + } + + version(DerelictGL_SUN) + { + // GL_SUN_global_alpha + void function(GLbyte) glGlobalAlphaFactorbSUN; + void function(GLshort) glGlobalAlphaFactorsSUN; + void function(GLint) glGlobalAlphaFactoriSUN; + void function(GLfloat) glGlobalAlphaFactorfSUN; + void function(GLdouble) glGlobalAlphaFactordSUN; + void function(GLubyte) glGlobalAlphaFactorubSUN; + void function(GLushort) glGlobalAlphaFactorusSUN; + void function(GLuint) glGlobalAlphaFactoruiSUN; + + // GL_SUN_triangle_list + void function(GLuint) glReplacementCodeuiSUN; + void function(GLushort) glReplacementCodeusSUN; + void function(GLubyte) glReplacementCodeubSUN; + void function(in GLuint*) glReplacementCodeuivSUN; + void function(in GLushort*) glReplacementCodeusvSUN; + void function(in GLubyte*) glReplacementCodeubvSUN; + void function(GLenum, GLsizei, in GLvoid**) glReplacementCodePointerSUN; + + // GL_SUN_vertex + void function(GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat) glColor4ubVertex2fSUN; + void function(in GLubyte*, in GLfloat*) glColor4ubVertex2fvSUN; + void function(GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat) glColor4ubVertex3fSUN; + void function(in GLubyte*, in GLfloat*) glColor4ubVertex3fvSUN; + void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glColor3fVertex3fSUN; + void function(in GLfloat*, in GLfloat*) glColor3fVertex3fvSUN; + void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glNormal3fVertex3fSUN; + void function(in GLfloat*, in GLfloat*) glNormal3fVertex3fvSUN; + void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glColor4fNormal3fVertex3fSUN; + void function(in GLfloat*, in GLfloat*, in GLfloat*) glColor4fNormal3fVertex3fvSUN; + void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glTexCoord2fVertex3fSUN; + void function(in GLfloat*, in GLfloat*) glTexCoord2fVertex3fvSUN; + void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glTexCoord4fVertex4fSUN; + void function(in GLfloat*, in GLfloat*) glTexCoord4fVertex4fvSUN; + void function(GLfloat, GLfloat, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat) glTexCoord2fColor4ubVertex3fSUN; + void function(in GLfloat*, in GLubyte*, in GLfloat*) glTexCoord2fColor4ubVertex3fvSUN; + void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glTexCoord2fColor3fVertex3fSUN; + void function(in GLfloat*, in GLfloat*, in GLfloat*) glTexCoord2fColor3fVertex3fvSUN; + void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glTexCoord2fNormal3fVertex3fSUN; + void function(in GLfloat*, in GLfloat*, in GLfloat*) glTexCoord2fNormal3fVertex3fvSUN; + void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glTexCoord2fColor4fNormal3fVertex3fSUN; + void function(in GLfloat*, in GLfloat*, in GLfloat*, in GLfloat*) glTexCoord2fColor4fNormal3fVertex3fvSUN; + void function(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glTexCoord4fColor4fNormal3fVertex4fSUN; + void function(in GLfloat*, in GLfloat*, in GLfloat*, in GLfloat*) glTexCoord4fColor4fNormal3fVertex4fvSUN; + void function(GLuint, GLfloat, GLfloat, GLfloat) glReplacementCodeuiVertex3fSUN; + void function(in GLuint*, in GLfloat*) glReplacementCodeuiVertex3fvSUN; + void function(GLuint, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat) glReplacementCodeuiColor4ubVertex3fSUN; + void function(in GLuint*, in GLubyte*, in GLfloat*) glReplacementCodeuiColor4ubVertex3fvSUN; + void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glReplacementCodeuiColor3fVertex3fSUN; + void function(in GLuint*, in GLfloat*, in GLfloat*) glReplacementCodeuiColor3fVertex3fvSUN; + void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glReplacementCodeuiNormal3fVertex3fSUN; + void function(in GLuint*, in GLfloat*, in GLfloat*) glReplacementCodeuiNormal3fVertex3fvSUN; + void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glReplacementCodeuiColor4fNormal3fVertex3fSUN; + void function(in GLuint*, in GLfloat*, in GLfloat*, in GLfloat*) glReplacementCodeuiColor4fNormal3fVertex3fvSUN; + void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glReplacementCodeuiTexCoord2fVertex3fSUN; + void function(in GLuint*, in GLfloat*, in GLfloat*) glReplacementCodeuiTexCoord2fVertex3fvSUN; + void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN; + void function(in GLuint*, in GLfloat*, in GLfloat*, in GLfloat*) glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN; + void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat) glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN; + void function(in GLuint*, in GLfloat*, in GLfloat*, in GLfloat*, in GLfloat*) glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN; + + // GL_SUN_mesh_array + void function(GLenum, GLint, GLsizei, GLsizei) glDrawMeshArraysSUN; + } + + version(DerelictGL_INGR) + { + } + + version(DerelictGL_MESA) + { + // GL_MESA_resize_buffers + void function() glResizeBuffersMESA; + + // GL_MESA_window_pos + void function(GLdouble, GLdouble) glWindowPos2dMESA; + void function(in GLdouble*) glWindowPos2dvMESA; + void function(GLfloat, GLfloat) glWindowPos2fMESA; + void function(in GLfloat*) glWindowPos2fvMESA; + void function(GLint, GLint) glWindowPos2iMESA; + void function(in GLint*) glWindowPos2ivMESA; + void function(GLshort, GLshort) glWindowPos2sMESA; + void function(in GLshort*) glWindowPos2svMESA; + void function(GLdouble, GLdouble, GLdouble) glWindowPos3dMESA; + void function(in GLdouble*) glWindowPos3dvMESA; + void function(GLfloat, GLfloat, GLfloat) glWindowPos3fMESA; + void function(in GLfloat*) glWindowPos3fvMESA; + void function(GLint, GLint, GLint) glWindowPos3iMESA; + void function(in GLint*) glWindowPos3ivMESA; + void function(GLshort, GLshort, GLshort) glWindowPos3sMESA; + void function(in GLshort*) glWindowPos3svMESA; + void function(GLdouble, GLdouble, GLdouble, GLdouble) glWindowPos4dMESA; + void function(in GLdouble*) glWindowPos4dvMESA; + void function(GLfloat, GLfloat, GLfloat, GLfloat) glWindowPos4fMESA; + void function(in GLfloat*) glWindowPos4fvMESA; + void function(GLint, GLint, GLint, GLint) glWindowPos4iMESA; + void function(in GLint*) glWindowPos4ivMESA; + void function(GLshort, GLshort, GLshort, GLshort) glWindowPos4sMESA; + void function(in GLshort*) glWindowPos4svMESA; + } + + version(DerelictGL_3DFX) + { + // GL_3DFX_tbuffer + void function(GLuint) glTbufferMask3DFX; + } + + version(DerelictGL_OML) + { + } + + version(DerelictGL_S3) + { + } + + version(DerelictGL_OES) + { + } + + version(DerelictGL_GREMEDY) + { + // GL_GREMEDY_string_marker + void function(GLsizei, in GLvoid*) glStringMarkerGREMEDY; + + // GL_GREMEDY_frame_terminator + void function() glFrameTerminatorGREMEDY; + } + + version(DerelictGL_MESAX) + { + } + + version(Windows) + { + version(DerelictGL_ARB) + { + // WGL_ARB_buffer_region + HANDLE function(HDC, int, UINT) wglCreateBufferRegionARB; + void function(HANDLE) wglDeleteBufferRegionARB; + BOOL function(HANDLE, int, int, int, int) wglSaveBufferRegionARB; + BOOL function(HANDLE, int, int, int, int, int, int) wglRestoreBufferRegionARB; + + // WGL_ARB_extensions_string + CCPTR function(HDC) wglGetExtensionsStringARB; + + // WGL_ARB_pixel_format + BOOL function(HDC, int, int, UINT, in int*, int*) wglGetPixelFormatAttribivARB; + BOOL function(HDC, int, int, UINT, in int*, float*) wglGetPixelFormatAttribfvARB; + BOOL function(HDC, in int*, in float*, UINT, int*, UINT*) wglChoosePixelFormatARB; + + // WGL_ARB_make_current_read + BOOL function(HDC, HDC, HGLRC) wglMakeContextCurrentARB; + HDC function() wglGetCurrentReadDCARB; + + // WGL_ARB_pbuffer + HPBUFFERARB function(HDC, int, int, int, in int*) wglCreatePbufferARB; + HDC function(HPBUFFERARB) wglGetPbufferDCARB; + int function(HPBUFFERARB, HDC) wglReleasePbufferDCARB; + BOOL function(HPBUFFERARB) wglDestroyPbufferARB; + BOOL function(HPBUFFERARB, int, int*) wglQueryPbufferARB; + + // WGL_ARB_render_texture + BOOL function(HPBUFFERARB, int) wglBindTexImageARB; + BOOL function(HPBUFFERARB, int) wglReleaseTexImageARB; + BOOL function(HPBUFFERARB, in int*) wglSetPbufferAttribARB; + + // WGL_ARB_create_context + HGLRC function(HDC, HGLRC, in int*) wglCreateContextAttribsARB; + } + + version(DerelictGL_EXT) + { + // WGL_EXT_display_color_table + GLboolean function(GLushort) wglBindDisplayColorTableEXT; + GLboolean function(GLushort) wglCreateDisplayColorTableEXT; + void function(GLushort) wglDestroyDisplayColorTableEXT; + GLboolean function(GLushort*, GLuint) wglLoadDisplayColorTableEXT; + + // WGL_EXT_extensions_string + CCPTR function() wglGetExtensionsStringEXT; + + // WGL_EXT_make_current_read + BOOL function(HDC, HDC, HGLRC) wglMakeContextCurrentEXT; + HDC function() wglGetCurrentReadDCEXT; + + // WGL_EXT_pbuffer + HPBUFFEREXT function(HDC, int, int, int, in int*) wglCreatePbufferEXT; + BOOL function(HPBUFFEREXT) wglDestroyPbufferEXT; + HDC function(HPBUFFEREXT) wglGetPbufferDCEXT; + BOOL function(HPBUFFEREXT, int, int*) wglQueryPbufferEXT; + int function(HPBUFFEREXT, HDC) wglReleasePbufferDCEXT; + + // WGL_EXT_pixel_format + BOOL function(HDC, in int*, in FLOAT*, UINT, int*, UINT*) wglChoosePixelFormatEXT; + BOOL function(HDC, int, int, UINT, int*, FLOAT*) wglGetPixelFormatAttribfvEXT; + BOOL function(HDC, int, int, UINT, int*, int*) wglGetPixelFormatAttribivEXT; + + // WGL_EXT_swap_control + int function() wglGetSwapIntervalEXT; + BOOL function(int) wglSwapIntervalEXT; + } + + version(DerelictGL_NV) + { + // WGL_NV_copy_image + BOOL function(HGLRC, GLuint, GLenum, GLint, GLint, GLint, GLint, HGLRC, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei) wglCopyImageSubDataNV; + + // WGL_NV_gpu_affinity + HDC function(in HGPUNV*) wglCreateAffinityDCNV; + BOOL function(HDC) wglDeleteDCNV; + BOOL function(HGPUNV, UINT, PGPU_DEVICE) wglEnumGpuDevicesNV; + BOOL function(HDC, UINT, HGPUNV*) wglEnumGpusFromAffinityDCNV; + BOOL function(UINT, HGPUNV*) wglEnumGpusNV; + + // WGL_NV_present_video + BOOL function(HDC, uint, HVIDEOOUTPUTDEVICENV, in int*) wglBindVideoDeviceNV; + int function(HDC, HVIDEOOUTPUTDEVICENV*) wglEnumerateVideoDevicesNV; + BOOL function(HDC, int, int*) wglQueryCurrentContextNV; + + // WGL_NV_swap_group + BOOL function(GLuint, GLuint) wglBindSwapBarrierNV; + BOOL function(HDC, GLuint) wglJoinSwapGroupNV; + BOOL function(HDC, GLuint*) wglQueryFrameCountNV; + BOOL function(HDC, GLuint*, GLuint*) wglQueryMaxSwapGroupsNV; + BOOL function(HDC, GLuint*, GLuint*) wglQuerySwapGroupNV; + BOOL function(HDC) wglResetFrameCountNV; + + // WGL_NV_vertex_array_range + void* function(GLsizei, GLfloat, GLfloat, GLfloat) wglAllocateMemoryNV; + void function(void*) wglFreeMemoryNV; + + // WGL_NV_video_output + BOOL function(HPVIDEODEV, HPBUFFERARB, int) wglBindVideoImageNV; + BOOL function(HDC, int, HPVIDEODEV*) wglGetVideoDeviceNV; + BOOL function(HPVIDEODEV, uint*, uint*) wglGetVideoInfoNV; + BOOL function(HPVIDEODEV) wglReleaseVideoDeviceNV; + BOOL function(HPBUFFERARB, int) wglReleaseVideoImageNV; + BOOL function(HPBUFFERARB, int, uint*, BOOL) wglSendPbufferToVideoNV; + } + + version(DerelictGL_AMD) + { + // WGL_AMD_gpu_association + void function(HGLRC, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum) wglBlitContextFramebufferAMD; + HGLRC function(UINT) wglCreateAssociatedContextAMD; + HGLRC function(UINT, HGLRC, in int*) wglCreateAssociatedContextAttribsAMD; + BOOL function(HGLRC) wglDeleteAssociatedContextAMD; + UINT function(HGLRC) wglGetContextGPUIDAMD; + HGLRC function() wglGetCurrentAssociatedContextAMD; + UINT function(UINT, UINT*) wglGetGPUIDsAMD; + INT function(UINT, INT, GLenum, UINT, void*) wglGetGPUInfoAMD; + BOOL function(HGLRC) wglMakeAssociatedContextCurrentAMD; + } + + version(DerelictGL_I3D) + { + // WGL_I3D_digital_video_control + BOOL function(HDC, int, int*) wglGetDigitalVideoParametersI3D; + BOOL function(HDC, int, in int*) wglSetDigitalVideoParametersI3D; + + // WGL_I3D_gamma + BOOL function(HDC, int, USHORT*, USHORT*, USHORT*) wglGetGammaTableI3D; + BOOL function(HDC, int, int*) wglGetGammaTableParametersI3D; + BOOL function(HDC, int, in USHORT*, in USHORT*, in USHORT*) wglSetGammaTableI3D; + BOOL function(HDC, int, in int*) wglSetGammaTableParametersI3D; + + // WGL_I3D_genlock + BOOL function(HDC) wglDisableGenlockI3D; + BOOL function(HDC) wglEnableGenlockI3D; + BOOL function(HDC, UINT) wglGenlockSampleRateI3D; + BOOL function(HDC, UINT) wglGenlockSourceDelayI3D; + BOOL function(HDC, UINT) wglGenlockSourceEdgeI3D; + BOOL function(HDC, UINT) wglGenlockSourceI3D; + BOOL function(HDC, UINT*) wglGetGenlockSampleRateI3D; + BOOL function(HDC, UINT*) wglGetGenlockSourceDelayI3D; + BOOL function(HDC, UINT*) wglGetGenlockSourceEdgeI3D; + BOOL function(HDC, UINT*) wglGetGenlockSourceI3D; + BOOL function(HDC, BOOL*) wglIsEnabledGenlockI3D; + BOOL function(HDC, UINT*, UINT*) wglQueryGenlockMaxSourceDelayI3D; + + // WGL_I3D_image_buffer + BOOL function(HDC, HANDLE*, LPVOID*, DWORD*, UINT) wglAssociateImageBufferEventsI3D; + LPVOID function(HDC, DWORD, UINT) wglCreateImageBufferI3D; + BOOL function(HDC, LPVOID) wglDestroyImageBufferI3D; + BOOL function(HDC, LPVOID*, UINT) wglReleaseImageBufferEventsI3D; + + // WGL_I3D_swap_frame_lock + BOOL function() wglDisableFrameLockI3D; + BOOL function() wglEnableFrameLockI3D; + BOOL function(BOOL*) wglIsEnabledFrameLockI3D; + BOOL function(BOOL*) wglQueryFrameLockMasterI3D; + + // WGL_I3D_swap_frame_usage + BOOL function() wglBeginFrameTrackingI3D; + BOOL function() wglEndFrameTrackingI3D; + BOOL function(float*) wglGetFrameUsageI3D; + BOOL function(DWORD*, DWORD*, float*) wglQueryFrameTrackingI3D; + } + + version(DerelictGL_OML) + { + // WGL_OML_sync_control + BOOL function(HDC, int*, int*) wglGetMscRateOML; + BOOL function(HDC, long*, long*, long*) wglGetSyncValuesOML; + long function(HDC, long, long, long) wglSwapBuffersMscOML; + long function(HDC, int, long, long, long) wglSwapLayerBuffersMscOML; + BOOL function(HDC, long, long, long, long*, long*, long*) wglWaitForMscOML; + BOOL function(HDC, long, long*, long*, long*) wglWaitForSbcOML; + } + + version(DerelictGL_3DL) + { + // WGL_3DL_stereo_control + BOOL function(HDC, UINT) wglSetStereoEmitterState3DL; + } + } + "); } \ No newline at end of file diff --git a/src/derelict/opengl/extloader.d b/src/derelict/opengl/extloader.d old mode 100755 new mode 100644 index ff818218..492ee89d --- a/src/derelict/opengl/extloader.d +++ b/src/derelict/opengl/extloader.d @@ -1,6637 +1,6637 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.opengl.extloader; - -private +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.opengl.extloader; + +private { import std.algorithm; - - import derelict.opengl.extfuncs; - import derelict.opengl.gltypes; - import derelict.opengl.glfuncs; - import derelict.util.compat; - import derelict.util.exception; - - version (darwin) version = CGL; - else version (OSX) version = CGL; - else version (linux) version = GLX; - else version (freebsd) version = GLX; - else version (FreeBSD) version = GLX; - - version(Windows) - { - import derelict.opengl.wgl; - import derelict.util.wintypes; - } - - version(GLX) - { - import derelict.opengl.glx; - } - - version (CGL) - { - import derelict.opengl.cgl; - import derelict.opengl.gl; - } -} - -version = DerelictGL_ALL; - -version(DerelictGL_ALL) -{ - version = DerelictGL_ARB; - version = DerelictGL_EXT; - version = DerelictGL_NV; - version = DerelictGL_ATI; - version = DerelictGL_AMD; - version = DerelictGL_SGI; - version = DerelictGL_SGIS; - version = DerelictGL_SGIX; - version = DerelictGL_HP; - version = DerelictGL_PGI; - version = DerelictGL_IBM; - version = DerelictGL_WIN; - version = DerelictGL_INTEL; - version = DerelictGL_REND; - version = DerelictGL_APPLE; - version = DerelictGL_SUNX; - version = DerelictGL_SUN; - version = DerelictGL_INGR; - version = DerelictGL_MESA; - version = DerelictGL_3DFX; - version = DerelictGL_OML; - version = DerelictGL_S3; - version = DerelictGL_OES; - version = DerelictGL_GREMEDY; - version = DerelictGL_MESAX; - version = DerelictGL_I3D; - version = DerelictGL_3DL; -} - -private -{ - string extStr; - version(Windows) string winExtStr; - GLExtensionState[string] loaded; -} - -package -{ - void extLoadAll() - { - extLoadCommon(); - extLoadPlatform(); - } - - string[] getLoadedExtensionNames() - { - auto keys = loaded.keys; - string[] ret; - foreach(key; keys) - { - if(GLExtensionState.Loaded == loaded[key]) - ret ~= key; - } - sort(ret); //ret.sort; - return ret; - } - - string[] getNotLoadedExtensionNames() - { - auto keys = loaded.keys; - string[] ret; - foreach(key; keys) - { - GLExtensionState state = loaded[key]; - if(GLExtensionState.Loaded != state) - { - if(GLExtensionState.DriverUnsupported == state) - ret ~= key ~ " (Unsupported by Driver)"; - else - ret ~= key ~ " (Failed to Load)"; - } - } - sort(ret); //ret.sort; - return ret; - } - - bool extIsSupported(string extName) - { - if(extStr is null) extStr = toDString(glGetString(GL_EXTENSIONS)); - auto index = extStr.findStr(extName); - - bool verify(string s) - { - auto idx = index + extName.length; - if(idx >= s.length || s[idx] == ' ' || s[idx] == '\0') - return true; - return false; - } - - bool found; - if(index != -1) - found = verify(extStr); - version(Windows) - { - if(!found && winExtStr !is null) - { - index = winExtStr.findStr(extName); - if(index != -1) - found = verify(winExtStr); - } - } - return found; - } - - GLExtensionState extGetState(string extName) - { - GLExtensionState* state = (extName in loaded); - return (state !is null) ? *state : GLExtensionState.DerelictUnsupported; - } -} - -private -{ - void extLoadCommon() - { - version(DerelictGL_ARB) - { - loaded["GL_ARB_multitexture"] = load_GL_ARB_multitexture(); - loaded["GL_ARB_transpose_matrix"] = load_GL_ARB_transpose_matrix(); - loaded["GL_ARB_multisample"] = load_GL_ARB_multisample(); - loaded["GL_ARB_texture_env_add"] = load_GL_ARB_texture_env_add(); - loaded["GL_ARB_texture_cube_map"] = load_GL_ARB_texture_cube_map(); - loaded["GL_ARB_texture_compression"] = load_GL_ARB_texture_compression(); - loaded["GL_ARB_texture_border_clamp"] = load_GL_ARB_texture_border_clamp(); - loaded["GL_ARB_point_parameters"] = load_GL_ARB_point_parameters(); - loaded["GL_ARB_vertex_blend"] = load_GL_ARB_vertex_blend(); - loaded["GL_ARB_matrix_palette"] = load_GL_ARB_matrix_palette(); - loaded["GL_ARB_texture_env_combine"] = load_GL_ARB_texture_env_combine(); - loaded["GL_ARB_texture_env_crossbar"] = load_GL_ARB_texture_env_crossbar(); - loaded["GL_ARB_texture_env_dot3"] = load_GL_ARB_texture_env_dot3(); - loaded["GL_ARB_texture_mirrored_repeat"] = load_GL_ARB_texture_mirrored_repeat(); - loaded["GL_ARB_depth_texture"] = load_GL_ARB_depth_texture(); - loaded["GL_ARB_shadow"] = load_GL_ARB_shadow(); - loaded["GL_ARB_shadow_ambient"] = load_GL_ARB_shadow_ambient(); - loaded["GL_ARB_window_pos"] = load_GL_ARB_window_pos(); - loaded["GL_ARB_vertex_program"] = load_GL_ARB_vertex_program(); - loaded["GL_ARB_fragment_program"] = load_GL_ARB_fragment_program(); - loaded["GL_ARB_vertex_buffer_object"] = load_GL_ARB_vertex_buffer_object(); - loaded["GL_ARB_occlusion_query"] = load_GL_ARB_occlusion_query(); - loaded["GL_ARB_shader_objects"] = load_GL_ARB_shader_objects(); - loaded["GL_ARB_vertex_shader"] = load_GL_ARB_vertex_shader(); - loaded["GL_ARB_fragment_shader"] = load_GL_ARB_fragment_shader(); - loaded["GL_ARB_shading_language_100"] = load_GL_ARB_shading_language_100(); - loaded["GL_ARB_texture_non_power_of_two"] = load_GL_ARB_texture_non_power_of_two(); - loaded["GL_ARB_point_sprite"] = load_GL_ARB_point_sprite(); - loaded["GL_ARB_fragment_program_shadow"] = load_GL_ARB_fragment_program_shadow(); - loaded["GL_ARB_draw_buffers"] = load_GL_ARB_draw_buffers(); - loaded["GL_ARB_texture_rectangle"] = load_GL_ARB_texture_rectangle(); - loaded["GL_ARB_color_buffer_float"] = load_GL_ARB_color_buffer_float(); - loaded["GL_ARB_half_float_pixel"] = load_GL_ARB_half_float_pixel(); - loaded["GL_ARB_texture_float"] = load_GL_ARB_texture_float(); - loaded["GL_ARB_pixel_buffer_object"] = load_GL_ARB_pixel_buffer_object(); - loaded["GL_ARB_depth_buffer_float"] = load_GL_ARB_depth_buffer_float(); - loaded["GL_ARB_draw_instanced"] = load_GL_ARB_draw_instanced(); - loaded["GL_ARB_framebuffer_object"] = load_GL_ARB_framebuffer_object(); - loaded["GL_ARB_framebuffer_sRGB"] = load_GL_ARB_framebuffer_sRGB(); - loaded["GL_ARB_geometry_shader4"] = load_GL_ARB_geometry_shader4(); - loaded["GL_ARB_half_float_vertex"] = load_GL_ARB_half_float_vertex(); - loaded["GL_ARB_imaging"] = load_GL_ARB_imaging(); - loaded["GL_ARB_instanced_arrays"] = load_GL_ARB_instanced_arrays(); - loaded["GL_ARB_texture_buffer_object"] = load_GL_ARB_texture_buffer_object(); - loaded["GL_ARB_texture_compression_rgtc"] = load_GL_ARB_texture_compression_rgtc(); - loaded["GL_ARB_texture_rg"] = load_GL_ARB_texture_rg(); - loaded["GL_ARB_vertex_array_object"] = load_GL_ARB_vertex_array_object(); - loaded["GL_ARB_copy_buffer"] = load_GL_ARB_copy_buffer(); - loaded["GL_ARB_uniform_buffer_object"] = load_GL_ARB_uniform_buffer_object(); - loaded["GL_ARB_vertex_array_bgra"] = load_GL_ARB_vertex_array_bgra(); - loaded["GL_ARB_draw_elements_base_vertex"] = load_GL_ARB_draw_elements_base_vertex(); - loaded["GL_ARB_vertex_attrib_64bit"] = load_GL_ARB_vertex_attrib_64bit(); - loaded["GL_ARB_provoking_vertex"] = load_GL_ARB_provoking_vertex(); - loaded["GL_ARB_sync"] = load_GL_ARB_sync(); - loaded["GL_ARB_texture_multisample"] = load_GL_ARB_texture_multisample(); - loaded["GL_ARB_viewport_array"] = load_GL_ARB_viewport_array(); - loaded["GL_ARB_cl_event"] = load_GL_ARB_cl_event(); - loaded["GL_ARB_debug_output"] = load_GL_ARB_debug_output(); - loaded["GL_ARB_robustness"] = load_GL_ARB_robustness(); - loaded["GL_ARB_shader_stencil_export"] = load_GL_ARB_shader_stencil_export(); - loaded["GL_ARB_compatibility"] = load_GL_ARB_compatibility(); - loaded["GL_ARB_depth_clamp"] = load_GL_ARB_depth_clamp(); - loaded["GL_ARB_blend_func_extended"] = load_GL_ARB_blend_func_extended(); - loaded["GL_ARB_sampler_objects"] = load_GL_ARB_sampler_objects(); - loaded["GL_ARB_timer_query"] = load_GL_ARB_timer_query(); - } - - version(DerelictGL_EXT) - { - loaded["GL_EXT_abgr"] = load_GL_EXT_abgr(); - loaded["GL_EXT_blend_color"] = load_GL_EXT_blend_color(); - loaded["GL_EXT_polygon_offset"] = load_GL_EXT_polygon_offset(); - loaded["GL_EXT_texture"] = load_GL_EXT_texture(); - loaded["GL_EXT_texture3D"] = load_GL_EXT_texture3D(); - loaded["GL_EXT_subtexture"] = load_GL_EXT_subtexture(); - loaded["GL_EXT_copy_texture"] = load_GL_EXT_copy_texture(); - loaded["GL_EXT_histogram"] = load_GL_EXT_histogram(); - loaded["GL_EXT_convolution"] = load_GL_EXT_convolution(); - loaded["GL_EXT_cmyka"] = load_GL_EXT_cmyka(); - loaded["GL_EXT_texture_object"] = load_GL_EXT_texture_object(); - loaded["GL_EXT_packed_pixels"] = load_GL_EXT_packed_pixels(); - loaded["GL_EXT_rescale_normal"] = load_GL_EXT_rescale_normal(); - loaded["GL_EXT_vertex_array"] = load_GL_EXT_vertex_array(); - loaded["GL_EXT_misc_attribute"] = load_GL_EXT_misc_attribute(); - loaded["GL_EXT_blend_minmax"] = load_GL_EXT_blend_minmax(); - loaded["GL_EXT_blend_subtract"] = load_GL_EXT_blend_subtract(); - loaded["GL_EXT_blend_logic_op"] = load_GL_EXT_blend_logic_op(); - loaded["GL_EXT_point_parameters"] = load_GL_EXT_point_parameters(); - loaded["GL_EXT_color_subtable"] = load_GL_EXT_color_subtable(); - loaded["GL_EXT_paletted_texture"] = load_GL_EXT_paletted_texture(); - loaded["GL_EXT_clip_volume_hint"] = load_GL_EXT_clip_volume_hint(); - loaded["GL_EXT_index_texture"] = load_GL_EXT_index_texture(); - loaded["GL_EXT_index_material"] = load_GL_EXT_index_material(); - loaded["GL_EXT_index_func"] = load_GL_EXT_index_func(); - loaded["GL_EXT_index_array_formats"] = load_GL_EXT_index_array_formats(); - loaded["GL_EXT_compiled_vertex_array"] = load_GL_EXT_compiled_vertex_array(); - loaded["GL_EXT_cull_vertex"] = load_GL_EXT_cull_vertex(); - loaded["GL_EXT_draw_range_elements"] = load_GL_EXT_draw_range_elements(); - loaded["GL_EXT_light_texture"] = load_GL_EXT_light_texture(); - loaded["GL_EXT_bgra"] = load_GL_EXT_bgra(); - loaded["GL_EXT_pixel_transform"] = load_GL_EXT_pixel_transform(); - loaded["GL_EXT_pixel_transform_color_table"] = load_GL_EXT_pixel_transform_color_table(); - loaded["GL_EXT_shared_texture_palette"] = load_GL_EXT_shared_texture_palette(); - loaded["GL_EXT_separate_specular_color"] = load_GL_EXT_separate_specular_color(); - loaded["GL_EXT_secondary_color"] = load_GL_EXT_secondary_color(); - loaded["GL_EXT_texture_perturb_normal"] = load_GL_EXT_texture_perturb_normal(); - loaded["GL_EXT_multi_draw_arrays"] = load_GL_EXT_multi_draw_arrays(); - loaded["GL_EXT_fog_coord"] = load_GL_EXT_fog_coord(); - loaded["GL_EXT_coordinate_frame"] = load_GL_EXT_coordinate_frame(); - loaded["GL_EXT_texture_env_combine"] = load_GL_EXT_texture_env_combine(); - loaded["GL_EXT_blend_func_separate"] = load_GL_EXT_blend_func_separate(); - loaded["GL_EXT_stencil_wrap"] = load_GL_EXT_stencil_wrap(); - loaded["GL_EXT_422_pixels"] = load_GL_EXT_422_pixels(); - loaded["GL_EXT_texture_cube_map"] = load_GL_EXT_texture_cube_map(); - loaded["GL_EXT_texture_env_add"] = load_GL_EXT_texture_env_add(); - loaded["GL_EXT_texture_lod_bias"] = load_GL_EXT_texture_lod_bias(); - loaded["GL_EXT_texture_filter_anisotropic"] = load_GL_EXT_texture_filter_anisotropic(); - loaded["GL_EXT_vertex_weighting"] = load_GL_EXT_vertex_weighting(); - loaded["GL_EXT_texture_compression_s3tc"] = load_GL_EXT_texture_compression_s3tc(); - loaded["GL_EXT_multisample"] = load_GL_EXT_multisample(); - loaded["GL_EXT_texture_env_dot3"] = load_GL_EXT_texture_env_dot3(); - loaded["GL_EXT_vertex_shader"] = load_GL_EXT_vertex_shader(); - loaded["GL_EXT_shadow_funcs"] = load_GL_EXT_shadow_funcs(); - loaded["GL_EXT_stencil_two_side"] = load_GL_EXT_stencil_two_side(); - loaded["GL_EXT_depth_bounds_test"] = load_GL_EXT_depth_bounds_test(); - loaded["GL_EXT_texture_mirror_clamp"] = load_GL_EXT_texture_mirror_clamp(); - loaded["GL_EXT_blend_equation_separate"] = load_GL_EXT_blend_equation_separate(); - loaded["GL_EXT_pixel_buffer_object"] = load_GL_EXT_pixel_buffer_object(); - loaded["GL_EXT_framebuffer_object"] = load_GL_EXT_framebuffer_object(); - loaded["GL_EXT_packed_depth_stencil"] = load_GL_EXT_packed_depth_stencil(); - loaded["GL_EXT_stencil_clear_tag"] = load_GL_EXT_stencil_clear_tag(); - loaded["GL_EXT_texture_sRGB"] = load_GL_EXT_texture_sRGB(); - loaded["GL_EXT_framebuffer_blit"] = load_GL_EXT_framebuffer_blit(); - loaded["GL_EXT_framebuffer_multisample"] = load_GL_EXT_framebuffer_multisample(); - loaded["GL_EXT_timer_query"] = load_GL_EXT_timer_query(); - loaded["GL_EXT_gpu_program_parameters"] = load_GL_EXT_gpu_program_parameters(); - loaded["GL_EXT_geometry_shader4"] = load_GL_EXT_geometry_shader4(); - loaded["GL_EXT_gpu_shader4"] = load_GL_EXT_gpu_shader4(); - loaded["GL_EXT_draw_instanced"] = load_GL_EXT_draw_instanced(); - loaded["GL_EXT_packed_float"] = load_GL_EXT_packed_float(); - loaded["GL_EXT_texture_array"] = load_GL_EXT_texture_array(); - loaded["GL_EXT_texture_buffer_object"] = load_GL_EXT_texture_buffer_object(); - loaded["GL_EXT_texture_compression_latc"] = load_GL_EXT_texture_compression_latc(); - loaded["GL_EXT_texture_compression_rgtc"] = load_GL_EXT_texture_compression_rgtc(); - loaded["GL_EXT_texture_shared_exponent"] = load_GL_EXT_texture_shared_exponent(); - loaded["GL_EXT_framebuffer_sRGB"] = load_GL_EXT_framebuffer_sRGB(); - loaded["GL_EXT_draw_buffers2"] = load_GL_EXT_draw_buffers2(); - loaded["GL_EXT_bindable_uniform"] = load_GL_EXT_bindable_uniform(); - loaded["GL_EXT_texture_integer"] = load_GL_EXT_texture_integer(); - loaded["GL_EXT_transform_feedback"] = load_GL_EXT_transform_feedback(); - loaded["GL_EXT_direct_state_access"] = load_GL_EXT_direct_state_access(); - loaded["GL_EXT_vertex_array_bgra"] = load_GL_EXT_vertex_array_bgra(); - loaded["GL_EXT_texture_swizzle"] = load_GL_EXT_texture_swizzle(); - loaded["GL_EXT_provoking_vertex"] = load_GL_EXT_provoking_vertex(); - loaded["GL_EXT_texture_snorm"] = load_GL_EXT_texture_snorm(); - loaded["GL_EXT_separate_shader_objects"] = load_GL_EXT_separate_shader_objects(); - } - - version(DerelictGL_NV) - { - loaded["GL_NV_texgen_reflection"] = load_GL_NV_texgen_reflection(); - loaded["GL_NV_light_max_exponent"] = load_GL_NV_light_max_exponent(); - loaded["GL_NV_vertex_array_range"] = load_GL_NV_vertex_array_range(); - loaded["GL_NV_register_combiners"] = load_GL_NV_register_combiners(); - loaded["GL_NV_fog_distance"] = load_GL_NV_fog_distance(); - loaded["GL_NV_texgen_emboss"] = load_GL_NV_texgen_emboss(); - loaded["GL_NV_blend_square"] = load_GL_NV_blend_square(); - loaded["GL_NV_texture_env_combine4"] = load_GL_NV_texture_env_combine4(); - loaded["GL_NV_fence"] = load_GL_NV_fence(); - loaded["GL_NV_evaluators"] = load_GL_NV_evaluators(); - loaded["GL_NV_packed_depth_stencil"] = load_GL_NV_packed_depth_stencil(); - loaded["GL_NV_register_combiners2"] = load_GL_NV_register_combiners2(); - loaded["GL_NV_texture_compression_vtc"] = load_GL_NV_texture_compression_vtc(); - loaded["GL_NV_texture_rectangle"] = load_GL_NV_texture_rectangle(); - loaded["GL_NV_texture_shader"] = load_GL_NV_texture_shader(); - loaded["GL_NV_texture_shader2"] = load_GL_NV_texture_shader2(); - loaded["GL_NV_vertex_array_range2"] = load_GL_NV_vertex_array_range2(); - loaded["GL_NV_vertex_program"] = load_GL_NV_vertex_program(); - loaded["GL_NV_copy_depth_to_color"] = load_GL_NV_copy_depth_to_color(); - loaded["GL_NV_multisample_filter_hint"] = load_GL_NV_multisample_filter_hint(); - loaded["GL_NV_depth_clamp"] = load_GL_NV_depth_clamp(); - loaded["GL_NV_occlusion_query"] = load_GL_NV_occlusion_query(); - loaded["GL_NV_point_sprite"] = load_GL_NV_point_sprite(); - loaded["GL_NV_texture_shader3"] = load_GL_NV_texture_shader3(); - loaded["GL_NV_vertex_program1_1"] = load_GL_NV_vertex_program1_1(); - loaded["GL_NV_float_buffer"] = load_GL_NV_float_buffer(); - loaded["GL_NV_fragment_program"] = load_GL_NV_fragment_program(); - loaded["GL_NV_half_float"] = load_GL_NV_half_float(); - loaded["GL_NV_pixel_data_range"] = load_GL_NV_pixel_data_range(); - loaded["GL_NV_primitive_restart"] = load_GL_NV_primitive_restart(); - loaded["GL_NV_texture_expand_normal"] = load_GL_NV_texture_expand_normal(); - loaded["GL_NV_vertex_program2"] = load_GL_NV_vertex_program2(); - loaded["GL_NV_fragment_program_option"] = load_GL_NV_fragment_program_option(); - loaded["GL_NV_fragment_program2"] = load_GL_NV_fragment_program2(); - loaded["GL_NV_vertex_program2_option"] = load_GL_NV_vertex_program2_option(); - loaded["GL_NV_vertex_program3"] = load_GL_NV_vertex_program3(); - loaded["GL_NV_gpu_program4"] = load_GL_NV_gpu_program4(); - loaded["GL_NV_geometry_program4"] = load_GL_NV_geometry_program4(); - loaded["GL_NV_vertex_program4"] = load_GL_NV_vertex_program4(); - loaded["GL_NV_depth_buffer_float"] = load_GL_NV_depth_buffer_float(); - loaded["GL_NV_fragment_program4"] = load_GL_NV_fragment_program4(); - loaded["GL_NV_framebuffer_multisample_coverage"] = load_GL_NV_framebuffer_multisample_coverage(); - loaded["GL_NV_geometry_shader4"] = load_GL_NV_geometry_shader4(); - loaded["GL_NV_transform_feedback"] = load_GL_NV_transform_feedback(); - loaded["GL_NV_conditional_render"] = load_GL_NV_conditional_render(); - loaded["GL_NV_present_video"] = load_GL_NV_present_video(); - loaded["GL_NV_explicit_multisample"] = load_GL_NV_explicit_multisample(); - loaded["GL_NV_transform_feedback2"] = load_GL_NV_transform_feedback2(); - loaded["GL_NV_video_capture"] = load_GL_NV_video_capture(); - loaded["GL_NV_copy_image"] = load_GL_NV_copy_image(); - loaded["GL_NV_parameter_buffer_object2"] = load_GL_NV_parameter_buffer_object2(); - loaded["GL_NV_shader_buffer_load"] = load_GL_NV_shader_buffer_load(); - loaded["GL_NV_vertex_buffer_unified_memory"] = load_GL_NV_vertex_buffer_unified_memory(); - loaded["GL_NV_texture_barrier"] = load_GL_NV_texture_barrier(); - } - - version(DerelictGL_ATI) - { - loaded["GL_ATI_texture_mirror_once"] = load_GL_ATI_texture_mirror_once(); - loaded["GL_ATI_envmap_bumpmap"] = load_GL_ATI_envmap_bumpmap(); - loaded["GL_ATI_fragment_shader"] = load_GL_ATI_fragment_shader(); - loaded["GL_ATI_pn_triangles"] = load_GL_ATI_pn_triangles(); - loaded["GL_ATI_vertex_array_object"] = load_GL_ATI_vertex_array_object(); - loaded["GL_ATI_vertex_streams"] = load_GL_ATI_vertex_streams(); - loaded["GL_ATI_element_array"] = load_GL_ATI_element_array(); - loaded["GL_ATI_text_fragment_shader"] = load_GL_ATI_text_fragment_shader(); - loaded["GL_ATI_draw_buffers"] = load_GL_ATI_draw_buffers(); - loaded["GL_ATI_pixel_format_float"] = load_GL_ATI_pixel_format_float(); - loaded["GL_ATI_texture_env_combine3"] = load_GL_ATI_texture_env_combine3(); - loaded["GL_ATI_texture_float"] = load_GL_ATI_texture_float(); - loaded["GL_ATI_map_object_buffer"] = load_GL_ATI_map_object_buffer(); - loaded["GL_ATI_separate_stencil"] = load_GL_ATI_separate_stencil(); - loaded["GL_ATI_vertex_attrib_array_object"] = load_GL_ATI_vertex_attrib_array_object(); - loaded["GL_ATI_meminfo"] = load_GL_ATI_meminfo(); - } - - version(DerelictGL_AMD) - { - loaded["GL_AMD_performance_monitor"] = load_GL_AMD_performance_monitor(); - loaded["GL_AMD_texture_texture4"] = load_GL_AMD_texture_texture4(); - loaded["GL_AMD_vertex_shader_tesselator"] = load_GL_AMD_vertex_shader_tesselator(); - loaded["GL_AMD_draw_buffers_blend"] = load_GL_AMD_draw_buffers_blend(); - } - - version(DerelictGL_SGI) - { - loaded["GL_SGI_color_matrix"] = load_GL_SGI_color_matrix(); - loaded["GL_SGI_color_table"] = load_GL_SGI_color_table(); - loaded["GL_SGI_texture_color_table"] = load_GL_SGI_texture_color_table(); - } - - version(DerelictGL_SGIS) - { - loaded["GL_SGIS_texture_filter4"] = load_GL_SGIS_texture_filter4; - loaded["GL_SGIS_pixel_texture"] = load_GL_SGIS_pixel_texture(); - loaded["GL_SGIS_texture4D"] = load_GL_SGIS_texture4D(); - loaded["GL_SGIS_detail_texture"] = load_GL_SGIS_detail_texture(); - loaded["GL_SGIS_sharpen_texture"] = load_GL_SGIS_sharpen_texture(); - loaded["GL_SGIS_texture_lod"] = load_GL_SGIS_texture_lod(); - loaded["GL_SGIS_multisample"] = load_GL_SGIS_multisample(); - loaded["GL_SGIS_generate_mipmap"] = load_GL_SGIS_generate_mipmap(); - loaded["GL_SGIS_texture_edge_clamp"] = load_GL_SGIS_texture_edge_clamp(); - loaded["GL_SGIS_texture_border_clamp"] = load_GL_SGIS_texture_border_clamp(); - loaded["GL_SGIS_texture_select"] = load_GL_SGIS_texture_select(); - loaded["GL_SGIS_point_parameters"] = load_GL_SGIS_point_parameters(); - loaded["GL_SGIS_fog_function"] = load_GL_SGIS_fog_function(); - loaded["GL_SGIS_point_line_texgen"] = load_GL_SGIS_point_line_texgen(); - loaded["GL_SGIS_texture_color_mask"] = load_GL_SGIS_texture_color_mask(); - } - - version(DerelictGL_SGIX) - { - loaded["GL_SGIX_pixel_texture"] = load_GL_SGIX_pixel_texture(); - loaded["GL_SGIX_clipmap"] = load_GL_SGIX_clipmap(); - loaded["GL_SGIX_shadow"] = load_GL_SGIX_shadow(); - loaded["GL_SGIX_interlace"] = load_GL_SGIX_interlace(); - loaded["GL_SGIX_pixel_tiles"] = load_GL_SGIX_pixel_tiles(); - loaded["GL_SGIX_sprite"] = load_GL_SGIX_sprite(); - loaded["GL_SGIX_texture_multi_buffer"] = load_GL_SGIX_texture_multi_buffer(); - loaded["GL_SGIX_instruments"] = load_GL_SGIX_instruments(); - loaded["GL_SGIX_texture_scale_bias"] = load_GL_SGIX_texture_scale_bias(); - loaded["GL_SGIX_framezoom"] = load_GL_SGIX_framezoom(); - loaded["GL_SGIX_tag_sample_buffer"] = load_GL_SGIX_tag_sample_buffer(); - loaded["GL_SGIX_polynomial_ffd"] = load_GL_SGIX_polynomial_ffd(); - loaded["GL_SGIX_reference_plane"] = load_GL_SGIX_reference_plane(); - loaded["GL_SGIX_flush_raster"] = load_GL_SGIX_flush_raster(); - loaded["GL_SGIX_depth_texture"] = load_GL_SGIX_depth_texture(); - loaded["GL_SGIX_fog_offset"] = load_GL_SGIX_fog_offset(); - loaded["GL_SGIX_texture_add_env"] = load_GL_SGIX_texture_add_env(); - loaded["GL_SGIX_list_priority"] = load_GL_SGIX_list_priority(); - loaded["GL_SGIX_ir_instrument1"] = load_GL_SGIX_ir_instrument1(); - loaded["GL_SGIX_calligraphic_fragment"] = load_GL_SGIX_calligraphic_fragment(); - loaded["GL_SGIX_texture_lod_bias"] = load_GL_SGIX_texture_lod_bias(); - loaded["GL_SGIX_shadow_ambient"] = load_GL_SGIX_shadow_ambient(); - loaded["GL_SGIX_ycrcb"] = load_GL_SGIX_ycrcb(); - loaded["GL_SGIX_fragment_lighting"] = load_GL_SGIX_fragment_lighting(); - loaded["GL_SGIX_blend_alpha_minmax"] = load_GL_SGIX_blend_alpha_minmax(); - loaded["GL_SGIX_impact_pixel_texture"] = load_GL_SGIX_impact_pixel_texture(); - loaded["GL_SGIX_async"] = load_GL_SGIX_async(); - loaded["GL_SGIX_async_pixel"] = load_GL_SGIX_async_pixel(); - loaded["GL_SGIX_async_histogram"] = load_GL_SGIX_async_histogram(); - loaded["GL_SGIX_fog_scale"] = load_GL_SGIX_fog_scale(); - loaded["GL_SGIX_subsample"] = load_GL_SGIX_subsample(); - loaded["GL_SGIX_ycrcb_subsample"] = load_GL_SGIX_ycrcb_subsample(); - loaded["GL_SGIX_ycrcba"] = load_GL_SGIX_ycrcba(); - loaded["GL_SGIX_depth_pass_instrument"] = load_GL_SGIX_depth_pass_instrument(); - loaded["GL_SGIX_vertex_preclip"] = load_GL_SGIX_vertex_preclip(); - loaded["GL_SGIX_convolution_accuracy"] = load_GL_SGIX_convolution_accuracy(); - loaded["GL_SGIX_resample"] = load_GL_SGIX_resample(); - loaded["GL_SGIX_texture_coordinate_clamp"] = load_GL_SGIX_texture_coordinate_clamp(); - loaded["GL_SGIX_scalebias_hint"] = load_GL_SGIX_scalebias_hint(); - - } - - version(DerelictGL_HP) - { - loaded["GL_HP_image_transform"] = load_GL_HP_image_transform(); - loaded["GL_HP_convolution_border_modes"] = load_GL_HP_convolution_border_modes(); - loaded["GL_HP_texture_lighting"] = load_GL_HP_texture_lighting(); - loaded["GL_HP_occlusion_test"] = load_GL_HP_occlusion_test(); - } - - version(DerelictGL_PGI) - { - loaded["GL_PGI_vertex_hints"] = load_GL_PGI_vertex_hints(); - loaded["GL_PGI_misc_hints"] = load_GL_PGI_misc_hints(); - } - - version(DerelictGL_IBM) - { - loaded["GL_IBM_rasterpos_clip"] = load_GL_IBM_rasterpos_clip(); - loaded["GL_IBM_cull_vertex"] = load_GL_IBM_cull_vertex(); - loaded["GL_IBM_multimode_draw_arrays"] = load_GL_IBM_multimode_draw_arrays(); - loaded["GL_IBM_vertex_array_lists"] = load_GL_IBM_vertex_array_lists(); - loaded["GL_IBM_texture_mirrored_repeat"] = load_GL_IBM_texture_mirrored_repeat(); - } - - version(DerelictGL_WIN) - { - loaded["GL_WIN_phong_shading"] = load_GL_WIN_phong_shading(); - loaded["GL_WIN_specular_fog"] = load_GL_WIN_specular_fog(); - } - - version(DerelictGL_INTEL) - { - loaded["GL_INTEL_parallel_arrays"] = load_GL_INTEL_parallel_arrays(); - } - - version(DerelictGL_REND) - { - loaded["GL_REND_screen_coordinates"] = load_GL_REND_screen_coordinates(); - } - - version(DerelictGL_APPLE) - { - loaded["GL_APPLE_specular_vector"] = load_GL_APPLE_specular_vector(); - loaded["GL_APPLE_transform_hint"] = load_GL_APPLE_transform_hint(); - loaded["GL_APPLE_client_storage"] = load_GL_APPLE_client_storage(); - loaded["GL_APPLE_element_array"] = load_GL_APPLE_element_array(); - loaded["GL_APPLE_fence"] = load_GL_APPLE_fence(); - loaded["GL_APPLE_vertex_array_object"] = load_GL_APPLE_vertex_array_object(); - loaded["GL_APPLE_vertex_array_range"] = load_GL_APPLE_vertex_array_range(); - loaded["GL_APPLE_ycbcr_422"] = load_GL_APPLE_ycbcr_422(); - loaded["GL_APPLE_flush_buffer_range"] = load_GL_APPLE_flush_buffer_range(); - loaded["GL_APPLE_texture_range"] = load_GL_APPLE_texture_range(); - loaded["GL_APPLE_float_pixels"] = load_GL_APPLE_float_pixels(); - loaded["GL_APPLE_vertex_program_evaluators"] = load_GL_APPLE_vertex_program_evaluators(); - loaded["GL_APPLE_aux_depth_stencil"] = load_GL_APPLE_aux_depth_stencil(); - loaded["GL_APPLE_object_purgeable"] = load_GL_APPLE_object_purgeable(); - loaded["GL_APPLE_row_bytes"] = load_GL_APPLE_row_bytes(); - loaded["GL_APPLE_rgb_422"] = load_GL_APPLE_rgb_422(); - } - - version(DerelictGL_SUNX) - { - loaded["GL_SUNX_constant_data"] = load_GL_SUNX_constant_data(); - } - - version(DerelictGL_SUN) - { - loaded["GL_SUN_global_alpha"] = load_GL_SUN_global_alpha(); - loaded["GL_SUN_triangle_list"] = load_GL_SUN_triangle_list(); - loaded["GL_SUN_vertex"] = load_GL_SUN_vertex(); - loaded["GL_SUN_convolution_border_modes"] = load_GL_SUN_convolution_border_modes(); - loaded["GL_SUN_mesh_array"] = load_GL_SUN_mesh_array(); - loaded["GL_SUN_slice_accum"] = load_GL_SUN_slice_accum(); - } - - version(DerelictGL_INGR) - { - loaded["GL_INGR_color_clamp"] = load_GL_INGR_color_clamp(); - loaded["GL_INGR_interlace_read"] = load_GL_INGR_interlace_read(); - } - - version(DerelictGL_MESA) - { - loaded["GL_MESA_resize_buffers"] = load_GL_MESA_resize_buffers(); - loaded["GL_MESA_window_pos"] = load_GL_MESA_window_pos(); - loaded["GL_MESA_pack_invert"] = load_GL_MESA_pack_invert(); - loaded["GL_MESA_ycbcr_texture"] = load_GL_MESA_ycbcr_texture(); - } - - version(DerelictGL_3DFX) - { - loaded["GL_3DFX_texture_compression_FXT1"] = load_GL_3DFX_texture_compression_FXT1(); - loaded["GL_3DFX_multisample"] = load_GL_3DFX_multisample(); - loaded["GL_3DFX_tbuffer"] = load_GL_3DFX_tbuffer(); - } - - version(DerelictGL_OML) - { - loaded["GL_OML_interlace"] = load_GL_OML_interlace(); - loaded["GL_OML_subsample"] = load_GL_OML_subsample(); - loaded["GL_OML_resample"] = load_GL_OML_resample(); - } - - version(DerelictGL_S3) - { - loaded["GL_S3_s3tc"] = load_GL_S3_s3tc(); - } - - version(DerelictGL_OES) - { - loaded["GL_OES_read_format"] = load_GL_OES_read_format(); - } - - version(DerelictGL_GREMEDY) - { - loaded["GL_GREMEDY_string_marker"] = load_GL_GREMEDY_string_marker(); - loaded["GL_GREMEDY_frame_terminator"] = load_GL_GREMEDY_frame_terminator(); - } - - version(DerelictGL_MESAX) - { - loaded["GL_MESAX_texture_stack"] = load_GL_MESAX_texture_stack(); - } - } - - void extLoadPlatform() - { - version (Windows) - { - // wgl extensions (mostly) all rely on WGL_ARB_extensions_string or WGL_EXT_extensions_string, - // so load them first and always, regardless of whether or not DerelictGL_ARB/EXT is active. - loaded["WGL_ARB_extensions_string"] = load_WGL_ARB_extensions_string(); - loaded["WGL_EXT_extensions_string"] = load_WGL_EXT_extensions_string(); - - // load the wgl extensions string - if(wglGetExtensionsStringARB !is null) - { - HDC dc = wglGetCurrentDC(); - if(dc !is null) - winExtStr = toDString(wglGetExtensionsStringARB(dc)); - else - throw new DerelictException("Cannot load WGL extensions: No valid Device Context!"); - } - else if(wglGetExtensionsStringEXT !is null) - { - winExtStr = toDString(wglGetExtensionsStringEXT()); - } - - if(winExtStr is null || winExtStr == "") - return; - - // now load the other WGL extensions - version(DerelictGL_ARB) - { - loaded["WGL_ARB_buffer_region"] = load_WGL_ARB_buffer_region(); - loaded["WGL_ARB_multisample"] = load_WGL_ARB_multisample(); - loaded["WGL_ARB_pixel_format"] = load_WGL_ARB_pixel_format(); - loaded["WGL_ARB_make_current_read"] = load_WGL_ARB_make_current_read(); - loaded["WGL_ARB_pbuffer"] = load_WGL_ARB_pbuffer(); - loaded["WGL_ARB_render_texture"] = load_WGL_ARB_render_texture(); - loaded["WGL_ARB_pixel_format_float"] = load_WGL_ARB_pixel_format_float(); - loaded["WGL_ARB_create_context"] = load_WGL_ARB_create_context(); - loaded["WGL_ARB_create_context_profile"] = load_WGL_ARB_create_context_profile(); - loaded["WGL_ARB_framebuffer_sRGB"] = load_WGL_ARB_framebuffer_sRGB(); - } - - version(DerelictGL_EXT) - { - loaded["WGL_EXT_depth_float"] = load_WGL_EXT_depth_float(); - loaded["WGL_EXT_display_color_table"] = load_WGL_EXT_display_color_table(); - loaded["WGL_EXT_framebuffer_sRGB"] = load_WGL_EXT_framebuffer_sRGB(); - loaded["WGL_EXT_make_current_read"] = load_WGL_EXT_make_current_read(); - loaded["WGL_EXT_multisample"] = load_WGL_EXT_multisample(); - loaded["WGL_EXT_pbuffer"] = load_WGL_EXT_pbuffer(); - loaded["WGL_EXT_pixel_format"] = load_WGL_EXT_pixel_format(); - loaded["WGL_EXT_pixel_format_packed_float"] = load_WGL_EXT_pixel_format_packed_float(); - loaded["WGL_EXT_swap_control"] = load_WGL_EXT_swap_control(); - } - - version(DerelictGL_NV) - { - loaded["WGL_NV_copy_image"] = load_WGL_NV_copy_image(); - loaded["WGL_NV_float_buffer"] = load_WGL_NV_float_buffer(); - loaded["WGL_NV_gpu_affinity"] = load_WGL_NV_gpu_affinity(); - loaded["WGL_NV_multisample_coverage"] = load_WGL_NV_multisample_coverage(); - loaded["WGL_NV_present_video"] = load_WGL_NV_present_video(); - loaded["WGL_NV_render_depth_texture"] = load_WGL_NV_render_depth_texture(); - loaded["WGL_NV_render_texture_rectangle"] = load_WGL_NV_render_texture_rectangle(); - loaded["WGL_NV_swap_group"] = load_WGL_NV_swap_group(); - loaded["WGL_NV_vertex_array_range"] = load_WGL_NV_vertex_array_range(); - loaded["WGL_NV_video_output"] = load_WGL_NV_video_output(); - } - - version(DerelictGL_ATI) - { - loaded["WGL_ATI_pixel_format_float"] = load_WGL_ATI_pixel_format_float(); - loaded["WGL_ATI_render_texture_rectangle"] = load_WGL_ATI_render_texture_rectangle(); - } - - version(DerelictGL_AMD) - { - loaded["WGL_AMD_gpu_association"] = load_WGL_AMD_gpu_association(); - } - - version(DerelictGL_I3D) - { - loaded["WGL_I3D_digital_video_control"] = load_WGL_I3D_digital_video_control(); - loaded["WGL_I3D_gamma"] = load_WGL_I3D_gamma(); - loaded["WGL_I3D_genlock"] = load_WGL_I3D_genlock(); - loaded["WGL_I3D_image_buffer"] = load_WGL_I3D_image_buffer(); - loaded["WGL_I3D_swap_frame_lock"] = load_WGL_I3D_swap_frame_lock(); - loaded["WGL_I3D_swap_frame_usage"] = load_WGL_I3D_swap_frame_usage(); - } - - version(DerelictGL_OML) - { - loaded["WGL_OML_sync_control"] = load_WGL_OML_sync_control(); - } - - version(DerelictGL_3DFX) - { - loaded["WGL_3DFX_multisample"] = load_WGL_3DFX_multisample(); - } - - version(DerelictGL_3DL) - { - loaded["WGL_3DL_stereo_control"] = load_WGL_3DL_stereo_control(); - } - } - } - - bool bindExtFunc(void** ptr, string funcName) - { - version(CGL) - { - debug bool doThrow = true; - else bool doThrow = false; - - DerelictGL.bindExtendedFunc(ptr, funcName, doThrow); - - return (*ptr !is null); - } - - else - { - *ptr = loadGLSymbol(funcName); - return (*ptr !is null); - } - } - - version(DerelictGL_ARB) - { - GLExtensionState load_GL_ARB_multitexture() - { - if(!extIsSupported("GL_ARB_multitexture")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glActiveTextureARB, "glActiveTextureARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glClientActiveTextureARB, "glClientActiveTextureARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord1dARB, "glMultiTexCoord1dARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord1dvARB, "glMultiTexCoord1dvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord1fARB, "glMultiTexCoord1fARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord1fvARB, "glMultiTexCoord1fvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord1iARB, "glMultiTexCoord1iARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord1ivARB, "glMultiTexCoord1ivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord1sARB, "glMultiTexCoord1sARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord1svARB, "glMultiTexCoord1svARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord2dARB, "glMultiTexCoord2dARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord2dvARB, "glMultiTexCoord2dvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord2fARB, "glMultiTexCoord2fARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord2fvARB, "glMultiTexCoord2fvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord2iARB, "glMultiTexCoord2iARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord2ivARB, "glMultiTexCoord2ivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord2sARB, "glMultiTexCoord2sARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord2svARB, "glMultiTexCoord2svARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord3dARB, "glMultiTexCoord3dARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord3dvARB, "glMultiTexCoord3dvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord3fARB, "glMultiTexCoord3fARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord3fvARB, "glMultiTexCoord3fvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord3iARB, "glMultiTexCoord3iARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord3ivARB, "glMultiTexCoord3ivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord3sARB, "glMultiTexCoord3sARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord3svARB, "glMultiTexCoord3svARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord4dARB, "glMultiTexCoord4dARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord4dvARB, "glMultiTexCoord4dvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord4fARB, "glMultiTexCoord4fARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord4fvARB, "glMultiTexCoord4fvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord4iARB, "glMultiTexCoord4iARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord4ivARB, "glMultiTexCoord4ivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord4sARB, "glMultiTexCoord4sARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord4svARB, "glMultiTexCoord4svARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_transpose_matrix() - { - if(!extIsSupported("GL_ARB_transpose_matrix")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glLoadTransposeMatrixfARB, "glLoadTransposeMatrixfARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glLoadTransposeMatrixdARB, "glLoadTransposeMatrixdARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultTransposeMatrixfARB, "glMultTransposeMatrixfARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultTransposeMatrixdARB, "glMultTransposeMatrixdARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_multisample() - { - if(!extIsSupported("GL_ARB_multisample")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glSampleCoverageARB, "glSampleCoverageARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_texture_env_add() - { - if(!extIsSupported("GL_ARB_texture_env_add")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_texture_cube_map() - { - if(!extIsSupported("GL_ARB_texture_cube_map")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_texture_compression() - { - if(!extIsSupported("GL_ARB_texture_compression")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glCompressedTexImage3DARB, "glCompressedTexImage3DARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCompressedTexImage2DARB, "glCompressedTexImage2DARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCompressedTexImage1DARB, "glCompressedTexImage1DARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCompressedTexSubImage3DARB, "glCompressedTexSubImage3DARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCompressedTexSubImage2DARB, "glCompressedTexSubImage2DARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCompressedTexSubImage1DARB, "glCompressedTexSubImage1DARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetCompressedTexImageARB, "glGetCompressedTexImageARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_texture_border_clamp() - { - if(!extIsSupported("GL_ARB_texture_border_clamp")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_point_parameters() - { - if(!extIsSupported("GL_ARB_point_parameters")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glPointParameterfARB, "glPointParameterfARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glPointParameterfvARB, "glPointParameterfvARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_vertex_blend() - { - if(!extIsSupported("GL_ARB_vertex_blend")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glWeightbvARB, "glWeightbvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWeightsvARB, "glWeightsvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWeightivARB, "glWeightivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWeightfvARB, "glWeightfvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWeightdvARB, "glWeightdvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWeightubvARB, "glMatrixIndexPointerARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWeightusvARB, "glWeightusvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWeightuivARB, "glWeightuivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWeightPointerARB, "glWeightPointerARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexBlendARB, "glVertexBlendARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_matrix_palette() - { - if(!extIsSupported("GL_ARB_matrix_palette")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glCurrentPaletteMatrixARB, "glCurrentPaletteMatrixARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixIndexubvARB, "glMatrixIndexubvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixIndexusvARB, "glMatrixIndexusvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixIndexuivARB, "glMatrixIndexuivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixIndexPointerARB, "glMatrixIndexPointerARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_texture_env_combine() - { - if(!extIsSupported("GL_ARB_texture_env_combine")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_texture_env_crossbar() - { - if(!extIsSupported("GL_ARB_texture_env_crossbar")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_texture_env_dot3() - { - if(!extIsSupported("GL_ARB_texture_env_dot3")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_texture_mirrored_repeat() - { - if(!extIsSupported("GL_ARB_texture_mirrored_repeat")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_depth_texture() - { - if(!extIsSupported("GL_ARB_depth_texture")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_shadow() - { - if(!extIsSupported("GL_ARB_shadow")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_shadow_ambient() - { - if(!extIsSupported("GL_ARB_shadow_ambient")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_window_pos() - { - if(!extIsSupported("GL_ARB_window_pos")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glWindowPos2dARB, "glWindowPos2dARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos2dvARB, "glWindowPos2dvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos2fARB, "glWindowPos2fARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos2fvARB, "glWindowPos2fvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos2iARB, "glWindowPos2iARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos2ivARB, "glWindowPos2ivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos2sARB, "glWindowPos2sARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos2svARB, "glWindowPos2svARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos3dARB, "glWindowPos3dARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos3dvARB, "glWindowPos3dvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos3fARB, "glWindowPos3fARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos3fvARB, "glWindowPos3fvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos3iARB, "glWindowPos3iARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos3ivARB, "glWindowPos3ivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos3sARB, "glWindowPos3sARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos3svARB, "glWindowPos3svARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_vertex_program() - { - if(!extIsSupported("GL_ARB_vertex_program")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glVertexAttrib1dARB, "glVertexAttrib1dARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib1dvARB, "glVertexAttrib1dvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib1fARB, "glVertexAttrib1fARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib1fvARB, "glVertexAttrib1fvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib1sARB, "glVertexAttrib1sARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib1svARB, "glVertexAttrib1svARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib2dARB, "glVertexAttrib2dARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib2dvARB, "glVertexAttrib2dvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib2fARB, "glVertexAttrib2fARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib2fvARB, "glVertexAttrib2fvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib2sARB, "glVertexAttrib2sARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib2svARB, "glVertexAttrib2svARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib3dARB, "glVertexAttrib3dARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib3dvARB, "glVertexAttrib3dvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib3fARB, "glVertexAttrib3fARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib3fvARB, "glVertexAttrib3fvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib3sARB, "glVertexAttrib3sARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib3svARB, "glVertexAttrib3svARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4NbvARB, "glVertexAttrib4NbvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4NivARB, "glVertexAttrib4NivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4NsvARB, "glVertexAttrib4NsvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4NubARB, "glVertexAttrib4NubARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4NubvARB, "glVertexAttrib4NubvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4NuivARB, "glVertexAttrib4NuivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4NusvARB, "glVertexAttrib4NusvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4bvARB, "glVertexAttrib4bvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4dARB, "glVertexAttrib4dARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4dvARB, "glVertexAttrib4dvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4fARB, "glVertexAttrib4fARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4fvARB, "glVertexAttrib4fvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4ivARB, "glVertexAttrib4ivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4sARB, "glVertexAttrib4sARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4svARB, "glVertexAttrib4svARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4ubvARB, "glVertexAttrib4ubvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4uivARB, "glVertexAttrib4uivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4usvARB, "glVertexAttrib4usvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribPointerARB, "glVertexAttribPointerARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glEnableVertexAttribArrayARB, "glEnableVertexAttribArrayARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDisableVertexAttribArrayARB, "glDisableVertexAttribArrayARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramStringARB, "glProgramStringARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindProgramARB, "glBindProgramARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeleteProgramsARB, "glDeleteProgramsARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenProgramsARB, "glGenProgramsARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramEnvParameter4dARB, "glProgramEnvParameter4dARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramEnvParameter4dvARB, "glProgramEnvParameter4dvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramEnvParameter4fARB, "glProgramEnvParameter4fARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramEnvParameter4fvARB, "glProgramEnvParameter4fvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramLocalParameter4dARB, "glProgramLocalParameter4dARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramLocalParameter4dvARB, "glProgramLocalParameter4dvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramLocalParameter4fARB, "glProgramLocalParameter4fARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramLocalParameter4fvARB, "glProgramLocalParameter4fvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetProgramEnvParameterdvARB, "glGetProgramEnvParameterdvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetProgramEnvParameterfvARB, "glGetProgramEnvParameterfvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetProgramLocalParameterdvARB, "glGetProgramLocalParameterdvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetProgramLocalParameterfvARB, "glGetProgramLocalParameterfvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetProgramivARB, "glGetProgramivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetProgramStringARB, "glGetProgramStringARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVertexAttribdvARB, "glGetVertexAttribdvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVertexAttribfvARB, "glGetVertexAttribfvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVertexAttribivARB, "glGetVertexAttribivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVertexAttribPointervARB, "glGetVertexAttribPointervARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsProgramARB, "glIsProgramARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_fragment_program() - { - if(!extIsSupported("GL_ARB_fragment_program")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_vertex_buffer_object() - { - if(!extIsSupported("GL_ARB_vertex_buffer_object")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glBindBufferARB, "glBindBufferARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeleteBuffersARB, "glDeleteBuffersARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenBuffersARB, "glGenBuffersARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsBufferARB, "glIsBufferARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBufferDataARB, "glBufferDataARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBufferSubDataARB, "glBufferSubDataARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetBufferSubDataARB, "glGetBufferSubDataARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMapBufferARB, "glMapBufferARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUnmapBufferARB, "glUnmapBufferARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetBufferParameterivARB, "glGetBufferParameterivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetBufferPointervARB, "glGetBufferPointervARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_occlusion_query() - { - if(!extIsSupported("GL_ARB_occlusion_query")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glGenQueriesARB, "glGenQueriesARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeleteQueriesARB, "glDeleteQueriesARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsQueryARB, "glIsQueryARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBeginQueryARB, "glBeginQueryARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glEndQueryARB, "glEndQueryARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetQueryivARB, "glGetQueryivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetQueryObjectivARB, "glGetQueryObjectivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetQueryObjectuivARB, "glGetQueryObjectuivARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_shader_objects() - { - if(!extIsSupported("GL_ARB_shader_objects")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glDeleteObjectARB, "glDeleteObjectARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetHandleARB, "glGetHandleARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDetachObjectARB, "glDetachObjectARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCreateShaderObjectARB, "glCreateShaderObjectARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glShaderSourceARB, "glShaderSourceARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCompileShaderARB, "glCompileShaderARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCreateProgramObjectARB, "glCreateProgramObjectARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glAttachObjectARB, "glAttachObjectARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glLinkProgramARB, "glLinkProgramARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUseProgramObjectARB, "glUseProgramObjectARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glValidateProgramARB, "glValidateProgramARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform1fARB, "glUniform1fARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform2fARB, "glUniform2fARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform3fARB, "glUniform3fARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform4fARB, "glUniform4fARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform1iARB, "glUniform1iARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform2iARB, "glUniform2iARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform3iARB, "glUniform3iARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform4iARB, "glUniform4iARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform1fvARB, "glUniform1fvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform2fvARB, "glUniform2fvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform3fvARB, "glUniform3fvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform4fvARB, "glUniform4fvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform1ivARB, "glUniform1ivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform2ivARB, "glUniform2ivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform3ivARB, "glUniform3ivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform4ivARB, "glUniform4ivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniformMatrix2fvARB, "glUniformMatrix2fvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniformMatrix3fvARB, "glUniformMatrix3fvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniformMatrix4fvARB, "glUniformMatrix4fvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetObjectParameterfvARB, "glGetObjectParameterfvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetObjectParameterivARB, "glGetObjectParameterivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetInfoLogARB, "glGetInfoLogARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetAttachedObjectsARB, "glGetAttachedObjectsARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetUniformLocationARB, "glGetUniformLocationARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetActiveUniformARB, "glGetActiveUniformARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetUniformfvARB, "glGetUniformfvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetUniformivARB, "glGetUniformivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetShaderSourceARB, "glGetShaderSourceARB")) - return GLExtensionState.FailedToLoad; - - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_vertex_shader() - { - if(!extIsSupported("GL_ARB_vertex_shader")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glBindAttribLocationARB, "glBindAttribLocationARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetActiveAttribARB, "glGetActiveAttribARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetAttribLocationARB, "glGetAttribLocationARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_fragment_shader() - { - if(!extIsSupported("GL_ARB_fragment_shader")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_shading_language_100() - { - if(!extIsSupported("GL_ARB_shading_language_100")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_texture_non_power_of_two() - { - if(!extIsSupported("GL_ARB_texture_non_power_of_two")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_point_sprite() - { - if(!extIsSupported("GL_ARB_point_sprite")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_fragment_program_shadow() - { - if(!extIsSupported("GL_ARB_fragment_program_shadow")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_draw_buffers() - { - if(!extIsSupported("GL_ARB_draw_buffers")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glDrawBuffersARB, "glDrawBuffersARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_texture_rectangle() - { - if(!extIsSupported("GL_ARB_texture_rectangle")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_color_buffer_float() - { - if(!extIsSupported("GL_ARB_color_buffer_float")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glClampColorARB, "glClampColorARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_half_float_pixel() - { - if(!extIsSupported("GL_ARB_half_float_pixel")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_texture_float() - { - if(!extIsSupported("GL_ARB_texture_float")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_pixel_buffer_object() - { - if(!extIsSupported("GL_ARB_pixel_buffer_object")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_depth_buffer_float() - { - if(!extIsSupported("GL_ARB_depth_buffer_float")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_draw_instanced() - { - if(!extIsSupported("GL_ARB_draw_instanced")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glDrawArraysInstancedARB, "glDrawArraysInstancedARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDrawElementsInstancedARB, "glDrawElementsInstancedARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_framebuffer_object() - { - if(!extIsSupported("GL_ARB_framebuffer_object")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glIsRenderbuffer, "glIsRenderbuffer")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindRenderbuffer, "glBindRenderbuffer")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeleteRenderbuffers, "glDeleteRenderbuffers")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenRenderbuffers, "glGenRenderbuffers")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glRenderbufferStorage, "glRenderbufferStorage")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glRenderbufferStorageMultisample, "glRenderbufferStorageMultisample")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetRenderbufferParameteriv, "glGetRenderbufferParameteriv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsFramebuffer, "glIsFramebuffer")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindFramebuffer, "glBindFramebuffer")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeleteFramebuffers, "glDeleteFramebuffers")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenFramebuffers, "glGenFramebuffers")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCheckFramebufferStatus, "glCheckFramebufferStatus")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFramebufferTexture1D, "glFramebufferTexture1D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFramebufferTexture2D, "glFramebufferTexture2D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFramebufferTexture3D, "glFramebufferTexture3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFramebufferTextureLayer, "glFramebufferTextureLayer")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFramebufferRenderbuffer, "glFramebufferRenderbuffer")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetFramebufferAttachmentParameteriv, "glGetFramebufferAttachmentParameteriv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBlitFramebuffer, "glBlitFramebuffer")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenerateMipmap, "glGenerateMipmap")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_framebuffer_sRGB() - { - if(!extIsSupported("GL_ARB_framebuffer_sRGB")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_geometry_shader4() - { - if(!extIsSupported("GL_ARB_geometry_shader4")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glProgramParameteriARB, "glProgramParameteriARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFramebufferTextureARB, "glFramebufferTextureARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFramebufferTextureLayerARB, "glFramebufferTextureLayerARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFramebufferTextureFaceARB, "glFramebufferTextureFaceARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_half_float_vertex() - { - if(!extIsSupported("GL_ARB_half_float_vertex")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_imaging() - { - if(!extIsSupported("GL_ARB_imaging")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glColorTable, "glColorTable")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColorSubTable, "glColorSubTable")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColorTableParameteriv, "glColorTableParameteriv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColorTableParameterfv, "glColorTableParameterfv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyColorSubTable, "glCopyColorSubTable")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyColorTable, "glCopyColorTable")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetColorTable, "glGetColorTable")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetColorTableParameterfv, "glGetColorTableParameterfv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetColorTableParameteriv, "glGetColorTableParameteriv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glHistogram, "glHistogram")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glResetHistogram, "glResetHistogram")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetHistogram, "glGetHistogram")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetHistogramParameterfv, "glGetHistogramParameterfv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetHistogramParameteriv, "glGetHistogramParameteriv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMinmax, "glMinmax")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glResetMinmax, "glResetMinmax")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMinmax, "glGetMinmax")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMinmaxParameterfv, "glGetMinmaxParameterfv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMinmaxParameteriv, "glGetMinmaxParameteriv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glConvolutionFilter1D, "glConvolutionFilter1D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glConvolutionFilter2D, "glConvolutionFilter2D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glConvolutionParameterf, "glConvolutionParameterf")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glConvolutionParameterfv, "glConvolutionParameterfv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glConvolutionParameteri, "glConvolutionParameteri")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glConvolutionParameteriv, "glConvolutionParameteriv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyConvolutionFilter1D, "glCopyConvolutionFilter1D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyConvolutionFilter2D, "glCopyConvolutionFilter2D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetConvolutionFilter, "glGetConvolutionFilter")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetConvolutionParameterfv, "glGetConvolutionParameterfv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetConvolutionParameteriv, "glGetConvolutionParameteriv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSeparableFilter2D, "glSeparableFilter2D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetSeparableFilter, "glGetSeparableFilter")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_instanced_arrays() - { - if(!extIsSupported("GL_ARB_instanced_arrays")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glVertexAttribDivisorARB, "glVertexAttribDivisorARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_map_buffer_range() - { - if(!extIsSupported("GL_ARB_map_buffer_range")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glMapBufferRange, "glMapBufferRange")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFlushMappedBufferRange, "glFlushMappedBufferRange")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_texture_buffer_object() - { - if(!extIsSupported("GL_ARB_texture_buffer_object")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glTexBufferARB, "glTexBufferARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_texture_compression_rgtc() - { - if(!extIsSupported("GL_ARB_texture_compression_rgtc")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_texture_rg() - { - if(!extIsSupported("GL_ARB_texture_rg")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_vertex_array_object() - { - if(!extIsSupported("GL_ARB_vertex_array_object")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glBindVertexArray, "glBindVertexArray")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeleteVertexArrays, "glDeleteVertexArrays")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenVertexArrays, "glGenVertexArrays")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsVertexArray, "glIsVertexArray")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_copy_buffer() - { - if(!extIsSupported("GL_ARB_copy_bffer")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glCopyBufferSubData, "glCopyBufferSubData")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_uniform_buffer_object() - { - if(!extIsSupported("GL_ARB_uniform_buffer_object")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glGetUniformIndices, "glGetUniformIndices")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetActiveUniformsiv, "glGetActiveUniformsiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetActiveUniformName, "glGetActiveUniformName")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetUniformBlockIndex, "glGetUniformBlockIndex")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetActiveUniformBlockiv, "glGetActiveUniformBlockiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetActiveUniformBlockName, "glGetActiveUniformBlockName")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniformBlockBinding, "glUniformBlockBinding")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_vertex_array_bgra() - { - if(!extIsSupported("GL_ARB_vertex_array_bgra")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_draw_elements_base_vertex() - { - if(!extIsSupported("GL_ARB_uniform_buffer_object")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glDrawElementsBaseVertex, "glDrawElementsBaseVertex")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDrawRangeElementsBaseVertex, "glDrawRangeElementsBaseVertex")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDrawElementsInstancedBaseVertex, "glDrawElementsInstancedBaseVertex")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiDrawElementsBaseVertex, "glMultiDrawElementsBaseVertex")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_vertex_attrib_64bit() - { - if(!extIsSupported("GL_ARB_vertex_attrib_64bit")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glGetVertexAttribLdv, "glGetVertexAttribLdv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribL1d, "glVertexAttribL1d")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribL1dv, "glVertexAttribL1dv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribL2d, "glVertexAttribL2d")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribL2dv, "glVertexAttribL2dv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribL3d, "glVertexAttribL3d")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribL3dv, "glVertexAttribL3dv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribL4d, "glVertexAttribL4d")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribL4dv, "glVertexAttribL4dv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribLPointer, "glVertexAttribLPointer")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_provoking_vertex() - { - if(!extIsSupported("GL_ARB_provoking_vertex")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glProvokingVertex, "glProvokingVertex")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_sync() - { - if(!extIsSupported("GL_ARB_sync")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glFenceSync, "glFenceSync")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsSync, "glIsSync")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeleteSync, "glDeleteSync")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glClientWaitSync, "glClientWaitSync")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWaitSync, "glWaitSync")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetInteger64v, "glGetInteger64v")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetSynciv, "glGetSynciv")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_texture_multisample() - { - if(!extIsSupported("GL_ARB_texture_multisample")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glTexImage2DMultisample, "glTexImage2DMultisample")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexImage3DMultisample, "glTexImage3DMultisample")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMultisamplefv, "glGetMultisamplefv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSampleMaski, "glSampleMaski")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_viewport_array() - { - if(!extIsSupported("GL_ARB_viewport_array")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glDepthRangeArrayv, "glDepthRangeArrayv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDepthRangeIndexed, "glDepthRangeIndexed")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetDoublei_v, "glGetDoublei_v")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetFloati_v, "glGetFloati_v")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glScissorArrayv, "glScissorArrayv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glScissorArrayIndexed, "glScissorArrayIndexed")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glScissorArrayIndexedv, "glScissorArrayIndexedv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glViewportArrayv, "glViewportArrayv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glViewportIndexedf, "glViewportIndexedf")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glViewportIndexedfv, "glViewportIndexedfv")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_cl_event() - { - if(!extIsSupported("GL_ARB_cl_event")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glCreateSyncFromCLeventARB, "glCreateSyncFromCLeventARB")) - return GLExtensionState.FailedToLoad; - - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_debug_output() - { - if(!extIsSupported("GL_ARB_debug_output")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glDebugMessageCallbackARB, "glDebugMessageCallbackARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDebugMessageControlARB, "glDebugMessageControlARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDebugMessageInsertARB, "glDebugMessageInsertARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetDebugMessageLogARB, "glGetDebugMessageLogARB")) - return GLExtensionState.FailedToLoad; - - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_robustness() - { - if(!extIsSupported("GL_ARB_robustness")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glGetnColorTableARB, "glGetnColorTableARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetnCompressedTexImageARB, "glGetnCompressedTexImageARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetnConvolutionFilterARB, "glGetnConvolutionFilterARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetnHistogramARB, "glGetnHistogramARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetnMapdvARB, "glGetnMapdvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetnMapfvARB, "glGetnMapfvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetnMapivARB, "glGetnMapivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetnMinMaxARB, "glGetnMinMaxARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetnPixelMapfvARB, "glGetnPixelMapfvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetnPixelMapuivARB, "glGetnPixelMapuivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetnPixelMapusvARB, "glGetnPixelMapusvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetnPolygonStippleARB, "glGetnPolygonStippleARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetnSeparableFilterARB, "glGetnSeparableFilterARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetnTexImageARB, "glGetnTexImageARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetnUniformdvARB, "glGetnUniformdvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetnUniformfvARB, "glGetnUniformfvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetnUniformivARB, "glGetnUniformivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetUniformuivARB, "glGetUniformuivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReadnPixelsARB, "glReadnPixelsARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_shader_stencil_export() - { - if(!extIsSupported("GL_ARB_shader_stencil_export")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_compatibility() - { - if(!extIsSupported("GL_ARB_compatibility")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_depth_clamp() - { - if(!extIsSupported("GL_ARB_depth_clamp")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_blend_func_extended() - { - if(!extIsSupported("GL_ARB_blend_func_extended")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glBindFragDataLocationIndexed, "glBindFragDataLocationIndexed")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetFragDataIndex, "glGetFragDataIndex")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_sampler_objects() - { - if(!extIsSupported("GL_ARB_sampler_objects")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glGenSamplers, "glGenSamplers")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeleteSamplers, "glDeleteSamplers")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsSampler, "glIsSampler")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindSampler, "glBindSampler")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSamplerParameteri, "glSamplerParameteri")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSamplerParameteriv, "glSamplerParameteriv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSamplerParameterf, "glSamplerParameterf")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSamplerParameterfv, "glSamplerParameterfv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSamplerParameterIiv, "glSamplerParameterIiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSamplerParameterIuiv, "glSamplerParameterIuiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetSamplerParameteriv, "glGetSamplerParameteriv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetSamplerParameterIiv, "glGetSamplerParameterIiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetSamplerParameterfv, "glGetSamplerParameterfv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetSamplerParameterIuiv, "glGetSamplerParameterIuiv")) - return GLExtensionState.FailedToLoad; - - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_timer_query() - { - if(!extIsSupported("GL_ARB_timer_query")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glQueryCounter, "glQueryCounter")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetQueryObjecti64v, "glGetQueryObjecti64v")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetQueryObjectui64v, "glGetQueryObjectui64v")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ARB_vertex_type_2_10_10_10_rev() - { - if(!extIsSupported("GL_ARB_vertex_type_2_10_10_10_rev")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glVertexP2ui, "glVertexP2ui")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexP2uiv, "glVertexP2uiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexP3ui, "glVertexP3ui")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexP3uiv, "glVertexP3uiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexP4ui, "glVertexP4ui")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexP4uiv, "glVertexP4uiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoordP1ui, "glTexCoordP1ui")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoordP1uiv, "glTexCoordP1uiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoordP2ui, "glTexCoordP2ui")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoordP2uiv, "glTexCoordP2uiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoordP3ui, "glTexCoordP3ui")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoordP3uiv, "glTexCoordP3uiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoordP4ui, "glTexCoordP4ui")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoordP4uiv, "glTexCoordP4uiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoordP1ui, "glMultiTexCoordP1ui")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoordP1uiv, "glMultiTexCoordP1uiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoordP2ui, "glMultiTexCoordP2ui")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoordP2uiv, "glMultiTexCoordP2uiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoordP3ui, "glMultiTexCoordP3ui")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoordP3uiv, "glMultiTexCoordP3uiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoordP4ui, "glMultiTexCoordP4ui")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoordP4uiv, "glMultiTexCoordP4uiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormalP3ui, "glNormalP3ui")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormalP3uiv, "glNormalP3uiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColorP3ui, "glColorP3ui")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColorP3uiv, "glColorP3uiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColorP4ui, "glColorP4ui")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColorP4uiv, "glColorP4uiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColorP3ui, "glSecondaryColorP3ui")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColorP3uiv, "glSecondaryColorP3uiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribP1ui, "glVertexAttribP1ui")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribP1uiv, "glVertexAttribP1uiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribP2ui, "glVertexAttribP2ui")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribP2uiv, "glVertexAttribP2uiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribP3ui, "glVertexAttribP3ui")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribP3uiv, "glVertexAttribP3uiv")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribP4ui, "glVertexAttribP4ui")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribP4uiv, "glVertexAttribP4uiv")) - return GLExtensionState.FailedToLoad; - - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_EXT) - { - GLExtensionState load_GL_EXT_abgr() - { - if(!extIsSupported("GL_EXT_abgr")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_blend_color() - { - if(!extIsSupported("GL_EXT_blend_color")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glBlendColorEXT, "glBlendColorEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_polygon_offset() - { - if(!extIsSupported("GL_EXT_polygon_offset")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glPolygonOffsetEXT, "glPolygonOffsetEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture() - { - if(!extIsSupported("GL_EXT_texture")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glTexImage3DEXT, "glTexImage3DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexSubImage3DEXT, "glTexSubImage3DEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture3D() - { - if(!extIsSupported("GL_EXT_texture3D")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_subtexture() - { - if(!extIsSupported("GL_EXT_subtexture")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glTexSubImage1DEXT, "glTexSubImage1DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexSubImage21DEXT, "glTexSubImage21DEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_copy_texture() - { - if(!extIsSupported("GL_EXT_copy_texture")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glCopyTexImage1DEXT, "glCopyTexImage1DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyTexImage2DEXT, "glCopyTexImage2DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyTexSubImage1DEXT, "glCopyTexSubImage1DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyTexSubImage2DEXT, "glCopyTexSubImage2DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyTexSubImage3DEXT, "glCopyTexSubImage3DEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_histogram() - { - if(!extIsSupported("GL_EXT_histogram")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glGetHistogramEXT, "glGetHistogramEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetHistogramParameterfvEXT, "glGetHistogramParameterfvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetHistogramParameterivEXT, "glGetHistogramParameterivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMinmaxEXT, "glGetMinmaxEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMinmaxParameterfvEXT, "glGetMinmaxParameterfvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMinmaxParameterivEXT, "glGetMinmaxParameterivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glHistogramEXT, "glHistogramEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMinmaxEXT, "glMinmaxEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glResetHistogramEXT, "glResetHistogramEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glResetMinmaxEXT, "glResetMinmaxEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_convolution() - { - if(!extIsSupported("GL_EXT_convolution")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glConvolutionFilter1DEXT, "glConvolutionFilter1DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glConvolutionFilter2DEXT, "glConvolutionFilter2DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glConvolutionParameterfEXT, "glConvolutionParameterfEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glConvolutionParameterfvEXT, "glConvolutionParameterfvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glConvolutionParameteriEXT, "glConvolutionParameteriEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glConvolutionParameterivEXT, "glConvolutionParameterivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyConvolutionFilter1DEXT, "glCopyConvolutionFilter1DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyConvolutionFilter2DEXT, "glCopyConvolutionFilter2DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetConvolutionFilterEXT, "glGetConvolutionFilterEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetConvolutionParameterfvEXT, "glGetConvolutionParameterfvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetConvolutionParameterivEXT, "glGetConvolutionParameterivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetSeparableFilterEXT, "glGetSeparableFilterEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSeparableFilter2DEXT, "glSeparableFilter2DEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_cmyka() - { - if(!extIsSupported("GL_EXT_cmyka")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture_object() - { - if(!extIsSupported("GL_EXT_texture_object")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glAreTexturesResidentEXT, "glAreTexturesResidentEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindTextureEXT, "glBindTextureEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeleteTexturesEXT, "glDeleteTexturesEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenTexturesEXT, "glGenTexturesEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsTextureEXT, "glIsTextureEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glPrioritizeTexturesEXT, "glPrioritizeTexturesEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_packed_pixels() - { - if(!extIsSupported("GL_EXT_packed_pixels")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_rescale_normal() - { - if(!extIsSupported("GL_EXT_rescale_normal")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_vertex_array() - { - if(!extIsSupported("GL_EXT_vertex_array")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glArrayElementEXT, "glArrayElementEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColorPointerEXT, "glColorPointerEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDrawArraysEXT, "glDrawArraysEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glEdgeFlagPointerEXT, "glEdgeFlagPointerEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetPointervEXT, "glGetPointervEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIndexPointerEXT, "glIndexPointerEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDrawArraysEXT, "glDrawArraysEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormalPointerEXT, "glNormalPointerEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoordPointerEXT, "glTexCoordPointerEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexPointerEXT, "glVertexPointerEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_misc_attribute() - { - if(!extIsSupported("GL_EXT_misc_attribute")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_blend_minmax() - { - if(!extIsSupported("GL_EXT_blend_minmax")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glBlendEquationEXT, "glBlendEquationEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_blend_subtract() - { - if(!extIsSupported("GL_EXT_blend_subtract")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_blend_logic_op() - { - if(!extIsSupported("GL_EXT_blend_logic_op")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_point_parameters() - { - if(!extIsSupported("GL_EXT_point_parameters")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glPointParameterfEXT, "glPointParameterfEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glPointParameterfvEXT, "glPointParameterfvEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_color_subtable() - { - if(!extIsSupported("GL_EXT_color_subtable")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glColorSubTableEXT, "glColorSubTableEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyColorSubTableEXT, "glCopyColorSubTableEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_paletted_texture() - { - if(!extIsSupported("GL_EXT_paletted_texture")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glColorTableEXT, "glColorTableEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetColorTableEXT, "glGetColorTableEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetColorTableParameterivEXT, "glGetColorTableParameterivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetColorTableParameterfvEXT, "glGetColorTableParameterfvEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_clip_volume_hint() - { - if(!extIsSupported("GL_EXT_clip_volume_hint")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_index_texture() - { - if(!extIsSupported("GL_EXT_index_texture")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_index_material() - { - if(!extIsSupported("GL_EXT_index_material")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glIndexMaterialEXT, "glIndexMaterialEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_index_func() - { - if(!extIsSupported("GL_EXT_index_func")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glIndexFuncEXT, "glIndexFuncEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_index_array_formats() - { - if(!extIsSupported("GL_EXT_index_array_formats")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_compiled_vertex_array() - { - if(!extIsSupported("GL_EXT_compiled_vertex_array")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glLockArraysEXT, "glLockArraysEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUnlockArraysEXT, "glUnlockArraysEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_cull_vertex() - { - if(!extIsSupported("GL_EXT_cull_vertex")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glCullParameterdvEXT, "glCullParameterdvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCullParameterfvEXT, "glCullParameterfvEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_draw_range_elements() - { - if(!extIsSupported("GL_EXT_draw_range_elements")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glDrawRangeElementsEXT, "glDrawRangeElementsEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_light_texture() - { - if(!extIsSupported("GL_EXT_light_texture")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glApplyTextureEXT, "glApplyTextureEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTextureLightEXT, "glTextureLightEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTextureMaterialEXT, "glTextureMaterialEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_bgra() - { - if(!extIsSupported("GL_EXT_bgra")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_pixel_transform() - { - if(!extIsSupported("GL_EXT_pixel_transform")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glPixelTransformParameteriEXT, "glPixelTransformParameteriEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glPixelTransformParameterfEXT, "glPixelTransformParameterfEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glPixelTransformParameterivEXT, "glPixelTransformParameterivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glPixelTransformParameterfvEXT, "glPixelTransformParameterfvEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_pixel_transform_color_table() - { - if(!extIsSupported("GL_EXT_pixel_transform_color_table")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_shared_texture_palette() - { - if(!extIsSupported("GL_EXT_shared_texture_palette")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_separate_specular_color() - { - if(!extIsSupported("GL_EXT_separate_specular_color")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_secondary_color() - { - if(!extIsSupported("GL_EXT_secondary_color")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glSecondaryColor3bEXT, "glSecondaryColor3bEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColor3bvEXT, "glSecondaryColor3bvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColor3dEXT, "glSecondaryColor3dEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColor3dvEXT, "glSecondaryColor3dvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColor3fEXT, "glSecondaryColor3fEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColor3fvEXT, "glSecondaryColor3fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColor3iEXT, "glSecondaryColor3iEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColor3ivEXT, "glSecondaryColor3ivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColor3sEXT, "glSecondaryColor3sEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColor3svEXT, "glSecondaryColor3svEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColor3ubEXT, "glSecondaryColor3ubEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColor3ubvEXT, "glSecondaryColor3ubvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColor3uiEXT, "glSecondaryColor3uiEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColor3uivEXT, "glSecondaryColor3uivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColor3usEXT, "glSecondaryColor3usEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColor3usvEXT, "glSecondaryColor3usvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColorPointerEXT, "glSecondaryColorPointerEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture_perturb_normal() - { - if(!extIsSupported("GL_EXT_texture_perturb_normal")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glTextureNormalEXT, "glTextureNormalEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_multi_draw_arrays() - { - if(!extIsSupported("GL_EXT_multi_draw_arrays")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glMultiDrawArraysEXT, "glMultiDrawArraysEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiDrawElementsEXT, "glMultiDrawElementsEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_fog_coord() - { - if(!extIsSupported("GL_EXT_fog_coord")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glFogCoordfEXT, "glFogCoordfEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFogCoordfvEXT, "glFogCoordfvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFogCoorddEXT, "glFogCoorddEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFogCoorddvEXT, "glFogCoorddvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFogCoordPointerEXT, "glFogCoordPointerEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_coordinate_frame() - { - if(!extIsSupported("GL_EXT_coordinate_frame")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glTangent3bEXT, "glTangent3bEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTangent3bvEXT, "glTangent3bvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTangent3dEXT, "glTangent3dEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTangent3dvEXT, "glTangent3dvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTangent3fEXT, "glTangent3fEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTangent3fvEXT, "glTangent3fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTangent3iEXT, "glTangent3iEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTangent3ivEXT, "glTangent3ivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTangent3sEXT, "glTangent3sEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTangent3svEXT, "glTangent3svEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBinormal3bEXT, "glBinormal3bEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBinormal3bvEXT, "glBinormal3bvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBinormal3dEXT, "glBinormal3dEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBinormal3dvEXT, "glBinormal3dvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBinormal3fEXT, "glBinormal3fEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBinormal3fvEXT, "glBinormal3fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBinormal3iEXT, "glBinormal3iEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBinormal3ivEXT, "glBinormal3ivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBinormal3sEXT, "glBinormal3sEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBinormal3svEXT, "glBinormal3svEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTangentPointerEXT, "glTangentPointerEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBinormalPointerEXT, "glBinormalPointerEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_blend_func_separate() - { - if(!extIsSupported("GL_EXT_blend_func_separate")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glBlendFuncSeparateEXT, "glBlendFuncSeparateEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture_env_combine() - { - if(!extIsSupported("GL_EXT_texture_env_combine")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_stencil_wrap() - { - if(!extIsSupported("GL_EXT_stencil_wrap")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_422_pixels() - { - if(!extIsSupported("GL_EXT_422_pixels")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture_cube_map() - { - if(!extIsSupported("GL_EXT_texture_cube_map")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture_env_add() - { - if(!extIsSupported("GL_EXT_texture_env_add")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture_lod_bias() - { - if(!extIsSupported("GL_EXT_texture_lod_bias")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture_filter_anisotropic() - { - if(!extIsSupported("GL_EXT_texture_filter_anisotropic")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_vertex_weighting() - { - if(!extIsSupported("GL_EXT_vertex_weighting")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glVertexWeightfEXT, "glVertexWeightfEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexWeightfvEXT, "glVertexWeightfvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexWeightPointerEXT, "glVertexWeightPointerEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture_compression_s3tc() - { - if(!extIsSupported("GL_EXT_texture_compression_s3tc")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_multisample() - { - if(!extIsSupported("GL_EXT_multisample")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glSampleMaskEXT, "glSampleMaskEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSamplePatternEXT, "glSamplePatternEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture_env_dot3() - { - if(!extIsSupported("GL_EXT_texture_env_dot3")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_vertex_shader() - { - if(!extIsSupported("GL_EXT_vertex_shader")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glBeginVertexShaderEXT, "glBeginVertexShaderEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glEndVertexShaderEXT, "glEndVertexShaderEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindVertexShaderEXT, "glBindVertexShaderEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenVertexShadersEXT, "glGenVertexShadersEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeleteVertexShaderEXT, "glDeleteVertexShaderEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glShaderOp1EXT, "glShaderOp1EXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glShaderOp2EXT, "glShaderOp2EXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glShaderOp3EXT, "glShaderOp3EXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSwizzleEXT, "glSwizzleEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWriteMaskEXT, "glWriteMaskEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glInsertComponentEXT, "glInsertComponentEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glExtractComponentEXT, "glExtractComponentEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenSymbolsEXT, "glGenSymbolsEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSetInvariantEXT, "glSetInvariantEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSetLocalConstantEXT, "glSetLocalConstantEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVariantbvEXT, "glVariantbvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVariantsvEXT, "glVariantsvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVariantivEXT, "glVariantivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVariantfvEXT, "glVariantfvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVariantdvEXT, "glVariantdvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVariantubvEXT, "glVariantubvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVariantusvEXT, "glVariantusvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVariantuivEXT, "glVariantuivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVariantPointerEXT, "glVariantPointerEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glEnableVariantClientStateEXT, "glEnableVariantClientStateEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDisableVariantClientStateEXT, "glDisableVariantClientStateEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindLightParameterEXT, "glBindLightParameterEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindMaterialParameterEXT, "glBindMaterialParameterEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindTexGenParameterEXT, "glBindTexGenParameterEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindTextureUnitParameterEXT, "glBindTextureUnitParameterEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindParameterEXT, "glBindParameterEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsVariantEnabledEXT, "glIsVariantEnabledEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVariantBooleanvEXT, "glGetVariantBooleanvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVariantIntegervEXT, "glGetVariantIntegervEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVariantFloatvEXT, "glGetVariantFloatvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVariantPointervEXT, "glGetVariantPointervEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetInvariantBooleanvEXT, "glGetInvariantBooleanvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetInvariantIntegervEXT, "glGetInvariantIntegervEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetInvariantFloatvEXT, "glGetInvariantFloatvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetLocalConstantBooleanvEXT, "glGetLocalConstantBooleanvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetLocalConstantIntegervEXT, "glGetLocalConstantIntegervEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetLocalConstantFloatvEXT, "glGetLocalConstantFloatvEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_shadow_funcs() - { - if(!extIsSupported("GL_EXT_shadow_funcs")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_stencil_two_side() - { - if(!extIsSupported("GL_EXT_stencil_two_side")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glActiveStencilFaceEXT, "glActiveStencilFaceEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_depth_bounds_test() - { - if(!extIsSupported("GL_EXT_depth_bounds_test")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glDepthBoundsEXT, "glDepthBoundsEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture_mirror_clamp() - { - if(!extIsSupported("GL_EXT_texture_mirror_clamp")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_blend_equation_separate() - { - if(!extIsSupported("GL_EXT_blend_equation_separate")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glBlendEquationSeparateEXT, "glBlendEquationSeparateEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_pixel_buffer_object() - { - if(!extIsSupported("GL_EXT_pixel_buffer_object")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_framebuffer_object() - { - if(!extIsSupported("GL_EXT_framebuffer_object")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glIsRenderbufferEXT, "glIsRenderbufferEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindRenderbufferEXT, "glBindRenderbufferEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeleteRenderbuffersEXT, "glDeleteRenderbuffersEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenRenderbuffersEXT, "glGenRenderbuffersEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glRenderbufferStorageEXT, "glRenderbufferStorageEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetRenderbufferParameterivEXT, "glGetRenderbufferParameterivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsFramebufferEXT, "glIsFramebufferEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindFramebufferEXT, "glBindFramebufferEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeleteFramebuffersEXT, "glDeleteFramebuffersEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenFramebuffersEXT, "glGenFramebuffersEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCheckFramebufferStatusEXT, "glCheckFramebufferStatusEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFramebufferTexture1DEXT, "glFramebufferTexture1DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFramebufferTexture2DEXT, "glFramebufferTexture2DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFramebufferTexture3DEXT, "glFramebufferTexture3DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFramebufferRenderbufferEXT, "glFramebufferRenderbufferEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetFramebufferAttachmentParameterivEXT, "glGetFramebufferAttachmentParameterivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenerateMipmapEXT, "glGenerateMipmapEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_packed_depth_stencil() - { - if(!extIsSupported("GL_EXT_packed_depth_stencil")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_stencil_clear_tag() - { - if(!extIsSupported("GL_EXT_stencil_clear_tag")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glStencilClearTagEXT, "glStencilClearTagEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture_sRGB() - { - if(!extIsSupported("GL_EXT_texture_sRGB")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_framebuffer_blit() - { - if(!extIsSupported("GL_EXT_framebuffer_blit")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glBlitFramebufferEXT, "glBlitFramebufferEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_framebuffer_multisample() - { - if(!extIsSupported("GL_EXT_framebuffer_multisample")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glRenderbufferStorageMultisampleEXT, "glRenderbufferStorageMultisampleEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_timer_query() - { - if(!extIsSupported("GL_EXT_timer_query")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glGetQueryObjecti64vEXT, "glGetQueryObjecti64vEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetQueryObjectui64vEXT, "glGetQueryObjectui64vEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_gpu_program_parameters() - { - if(!extIsSupported("GL_EXT_gpu_program_parameters")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glProgramEnvParameters4fvEXT, "glProgramEnvParameters4fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramLocalParameters4fvEXT, "glProgramLocalParameters4fvEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_geometry_shader4() - { - if(!extIsSupported("GL_EXT_geometry_shader4")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glProgramParameteriEXT, "glProgramParameteriEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_gpu_shader4() - { - if(!extIsSupported("GL_EXT_gpu_shader4")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glGetUniformuivEXT, "glGetUniformuivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindFragDataLocationEXT, "glBindFragDataLocationEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetFragDataLocationEXT, "glGetFragDataLocationEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform1uiEXT, "glUniform1uiEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform2uiEXT, "glUniform2uiEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform3uiEXT, "glUniform3uiEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform4uiEXT, "glUniform4uiEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform1uivEXT, "glUniform1uivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform2uivEXT, "glUniform2uivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform3uivEXT, "glUniform3uivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniform4uivEXT, "glUniform4uivEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_draw_instanced() - { - if(!extIsSupported("GL_EXT_draw_instanced")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glDrawArraysInstancedEXT, "glDrawArraysInstancedEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDrawElementsInstancedEXT, "glDrawElementsInstancedEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_packed_float() - { - if(!extIsSupported("GL_EXT_packed_float")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture_array() - { - if(!extIsSupported("GL_EXT_texture_array")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture_buffer_object() - { - if(!extIsSupported("GL_EXT_texture_buffer_object")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glTexBufferEXT, "glTexBufferEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture_compression_latc() - { - if(!extIsSupported("GL_EXT_texture_compression_latc")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture_compression_rgtc() - { - if(!extIsSupported("GL_EXT_texture_compression_rgtc")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture_shared_exponent() - { - if(!extIsSupported("GL_EXT_texture_shared_exponent")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_framebuffer_sRGB() - { - if(!extIsSupported("GL_EXT_framebuffer_sRGB")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_draw_buffers2() - { - if(!extIsSupported("GL_EXT_draw_buffers2")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glColorMaskIndexedEXT, "glColorMaskIndexedEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetBooleanIndexedvEXT, "glGetBooleanIndexedvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetIntegerIndexedvEXT, "glGetIntegerIndexedvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glEnableIndexedEXT, "glEnableIndexedEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDisableIndexedEXT, "glDisableIndexedEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsEnabledIndexedEXT, "glIsEnabledIndexedEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_bindable_uniform() - { - if(!extIsSupported("GL_EXT_texture_buffer_object")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glUniformBufferEXT, "glUniformBufferEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetUniformBufferSizeEXT, "glGetUniformBufferSizeEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetUniformOffsetEXT, "glGetUniformOffsetEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture_integer() - { - if(!extIsSupported("GL_EXT_texture_integer")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glTexParameterIivEXT, "glTexParameterIivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexParameterIuivEXT, "glTexParameterIuivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetTexParameterIivEXT, "glGetTexParameterIivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetTexParameterIuivEXT, "glGetTexParameterIuivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glClearColorIiEXT, "glClearColorIiEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glClearColorIuiEXT, "glClearColorIuiEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_transform_feedback() - { - if(!extIsSupported("GL_EXT_transform_feedback")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glBeginTransformFeedbackEXT, "glBeginTransformFeedbackEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glEndTransformFeedbackEXT, "glEndTransformFeedbackEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindBufferRangeEXT, "glBindBufferRangeEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindBufferOffsetEXT, "glBindBufferOffsetEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindBufferBaseEXT, "glBindBufferBaseEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTransformFeedbackVaryingsEXT, "glTransformFeedbackVaryingsEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetTransformFeedbackVaryingEXT, "glGetTransformFeedbackVaryingEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_direct_state_access() - { - if(!extIsSupported("GL_EXT_direct_state_access")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glClientAttribDefaultEXT, "glClientAttribDefaultEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glPushClientAttribDefaultEXT, "glPushClientAttribDefaultEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixLoadfEXT, "glMatrixLoadfEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixLoaddEXT, "glMatrixLoaddEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixMultfEXT, "glMatrixMultfEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixMultdEXT, "glMatrixMultdEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixLoadIdentityEXT, "glMatrixLoadIdentityEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixRotatefEXT, "glMatrixRotatefEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixRotatedEXT, "glMatrixRotatedEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixScalefEXT, "glMatrixScalefEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixScaledEXT, "glMatrixScaledEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixTranslatefEXT, "glMatrixTranslatefEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixTranslatedEXT, "glMatrixTranslatedEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixFrustumEXT, "glMatrixFrustumEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixOrthoEXT, "glMatrixOrthoEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixPopEXT, "glMatrixPopEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixPushEXT, "glMatrixPushEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixLoadTransposefEXT, "glMatrixLoadTransposefEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixLoadTransposedEXT, "glMatrixLoadTransposedEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixMultTransposefEXT, "glMatrixMultTransposefEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMatrixMultTransposedEXT, "glMatrixMultTransposedEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTextureParameterfEXT, "glTextureParameterfEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTextureParameterfvEXT, "glTextureParameterfvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTextureParameteriEXT, "glTextureParameteriEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTextureParameterivEXT, "glTextureParameterivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTextureImage1DEXT, "glTextureImage1DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTextureImage2DEXT, "glTextureImage2DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTextureSubImage1DEXT, "glTextureSubImage1DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTextureSubImage2DEXT, "glTextureSubImage2DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyTextureImage1DEXT, "glCopyTextureImage1DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyTextureImage2DEXT, "glCopyTextureImage2DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyTextureSubImage1DEXT, "glCopyTextureSubImage1DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyTextureSubImage2DEXT, "glCopyTextureSubImage2DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetTextureImageEXT, "glGetTextureImageEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetTextureParameterfvEXT, "glGetTextureParameterfvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetTextureParameterivEXT, "glGetTextureParameterivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetTextureLevelParameterfvEXT, "glGetTextureLevelParameterfvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetTextureLevelParameterivEXT, "glGetTextureLevelParameterivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTextureImage3DEXT, "glTextureImage3DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTextureSubImage3DEXT, "glTextureSubImage3DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyTextureSubImage3DEXT, "glCopyTextureSubImage3DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexParameterfEXT, "glMultiTexParameterfEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexParameterfvEXT, "glMultiTexParameterfvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexParameteriEXT, "glMultiTexParameteriEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexParameterivEXT, "glMultiTexParameterivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexImage1DEXT, "glMultiTexImage1DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexImage2DEXT, "glMultiTexImage2DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexSubImage1DEXT, "glMultiTexSubImage1DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexSubImage2DEXT, "glMultiTexSubImage2DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyMultiTexImage1DEXT, "glCopyMultiTexImage1DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyMultiTexImage2DEXT, "glCopyMultiTexImage2DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyMultiTexSubImage1DEXT, "glCopyMultiTexSubImage1DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyMultiTexSubImage2DEXT, "glCopyMultiTexSubImage2DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMultiTexImageEXT, "glGetMultiTexImageEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMultiTexParameterfvEXT, "glGetMultiTexParameterfvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMultiTexParameterivEXT, "glGetMultiTexParameterivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMultiTexLevelParameterfvEXT, "glGetMultiTexLevelParameterfvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMultiTexLevelParameterivEXT, "glGetMultiTexLevelParameterivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexImage3DEXT, "glMultiTexImage3DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexSubImage3DEXT, "glMultiTexSubImage3DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyMultiTexSubImage3DEXT, "glCopyMultiTexSubImage3DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindMultiTextureEXT, "glBindMultiTextureEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glEnableClientStateIndexedEXT, "glEnableClientStateIndexedEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDisableClientStateIndexedEXT, "glDisableClientStateIndexedEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoordPointerEXT, "glMultiTexCoordPointerEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexEnvfEXT, "glMultiTexEnvfEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexEnvfvEXT, "glMultiTexEnvfvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexEnviEXT, "glMultiTexEnviEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexEnvivEXT, "glMultiTexEnvivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexGendEXT, "glMultiTexGendEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexGendvEXT, "glMultiTexGendvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexGenfEXT, "glMultiTexGenfEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexGenfvEXT, "glMultiTexGenfvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexGeniEXT, "glMultiTexGeniEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexGenivEXT, "glMultiTexGenivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMultiTexEnvfvEXT, "glGetMultiTexEnvfvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMultiTexEnvivEXT, "glGetMultiTexEnvivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMultiTexGendvEXT, "glGetMultiTexGendvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMultiTexGenfvEXT, "glGetMultiTexGenfvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMultiTexGenivEXT, "glGetMultiTexGenivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetFloatIndexedvEXT, "glGetFloatIndexedvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetDoubleIndexedvEXT, "glGetDoubleIndexedvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetPointerIndexedvEXT, "glGetPointerIndexedvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCompressedTextureImage3DEXT, "glCompressedTextureImage3DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCompressedTextureImage2DEXT, "glCompressedTextureImage2DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCompressedTextureImage1DEXT, "glCompressedTextureImage1DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCompressedTextureSubImage3DEXT, "glCompressedTextureSubImage3DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCompressedTextureSubImage2DEXT, "glCompressedTextureSubImage2DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCompressedTextureSubImage1DEXT, "glCompressedTextureSubImage1DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetCompressedTextureImageEXT, "glGetCompressedTextureImageEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCompressedMultiTexImage3DEXT, "glCompressedMultiTexImage3DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCompressedMultiTexImage2DEXT, "glCompressedMultiTexImage2DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCompressedMultiTexImage1DEXT, "glCompressedMultiTexImage1DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCompressedMultiTexSubImage3DEXT, "glCompressedMultiTexSubImage3DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCompressedMultiTexSubImage2DEXT, "glCompressedMultiTexSubImage2DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCompressedMultiTexSubImage1DEXT, "glCompressedMultiTexSubImage1DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetCompressedMultiTexImageEXT, "glGetCompressedMultiTexImageEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedProgramStringEXT, "glNamedProgramStringEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameter4dEXT, "glNamedProgramLocalParameter4dEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameter4dvEXT, "glNamedProgramLocalParameter4dvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameter4fEXT, "glNamedProgramLocalParameter4fEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameter4fvEXT, "glNamedProgramLocalParameter4fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetNamedProgramLocalParameterdvEXT, "glGetNamedProgramLocalParameterdvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetNamedProgramLocalParameterfvEXT, "glGetNamedProgramLocalParameterfvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetNamedProgramivEXT, "glGetNamedProgramivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetNamedProgramStringEXT, "glGetNamedProgramStringEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameters4fvEXT, "glNamedProgramLocalParameters4fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameterI4iEXT, "glNamedProgramLocalParameterI4iEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameterI4ivEXT, "glNamedProgramLocalParameterI4ivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedProgramLocalParametersI4ivEXT, "glNamedProgramLocalParametersI4ivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameterI4uiEXT, "glNamedProgramLocalParameterI4uiEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameterI4uivEXT, "glNamedProgramLocalParameterI4uivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedProgramLocalParametersI4uivEXT, "glNamedProgramLocalParametersI4uivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetNamedProgramLocalParameterIivEXT, "glGetNamedProgramLocalParameterIivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetNamedProgramLocalParameterIuivEXT, "glGetNamedProgramLocalParameterIuivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTextureParameterIivEXT, "glTextureParameterIivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTextureParameterIuivEXT, "glTextureParameterIuivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetTextureParameterIivEXT, "glGetTextureParameterIivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetTextureParameterIuivEXT, "glGetTextureParameterIuivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexParameterIivEXT, "glMultiTexParameterIivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexParameterIuivEXT, "glMultiTexParameterIuivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMultiTexParameterIivEXT, "glGetMultiTexParameterIivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMultiTexParameterIuivEXT, "glGetMultiTexParameterIuivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform1fEXT, "glProgramUniform1fEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform2fEXT, "glProgramUniform2fEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform3fEXT, "glProgramUniform3fEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform4fEXT, "glProgramUniform4fEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform1iEXT, "glProgramUniform1iEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform2iEXT, "glProgramUniform2iEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform3iEXT, "glProgramUniform3iEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform4iEXT, "glProgramUniform4iEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform1fvEXT, "glProgramUniform1fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform2fvEXT, "glProgramUniform2fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform3fvEXT, "glProgramUniform3fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform4fvEXT, "glProgramUniform4fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform1ivEXT, "glProgramUniform1ivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform2ivEXT, "glProgramUniform2ivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform3ivEXT, "glProgramUniform3ivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform4ivEXT, "glProgramUniform4ivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformMatrix2fvEXT, "glProgramUniformMatrix2fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformMatrix3fvEXT, "glProgramUniformMatrix3fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformMatrix4fvEXT, "glProgramUniformMatrix4fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformMatrix2x3fvEXT, "glProgramUniformMatrix2x3fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformMatrix3x2fvEXT, "glProgramUniformMatrix3x2fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformMatrix2x4fvEXT, "glProgramUniformMatrix2x4fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformMatrix4x2fvEXT, "glProgramUniformMatrix4x2fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformMatrix3x4fvEXT, "glProgramUniformMatrix3x4fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformMatrix4x3fvEXT, "glProgramUniformMatrix4x3fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform1uiEXT, "glProgramUniform1uiEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform2uiEXT, "glProgramUniform2uiEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMultiTexParameterIuivEXT, "glGetMultiTexParameterIuivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform1fEXT, "glProgramUniform1fEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform2fEXT, "glProgramUniform2fEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform3fEXT, "glProgramUniform3fEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform4fEXT, "glProgramUniform4fEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform1iEXT, "glProgramUniform1iEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform2iEXT, "glProgramUniform2iEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform3iEXT, "glProgramUniform3iEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform4iEXT, "glProgramUniform4iEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform1fvEXT, "glProgramUniform1fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform2fvEXT, "glProgramUniform2fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform3fvEXT, "glProgramUniform3fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform4fvEXT, "glProgramUniform4fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform1ivEXT, "glProgramUniform1ivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform2ivEXT, "glProgramUniform2ivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform3ivEXT, "glProgramUniform3ivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform4ivEXT, "glProgramUniform4ivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformMatrix2fvEXT, "glProgramUniformMatrix2fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformMatrix3fvEXT, "glProgramUniformMatrix3fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformMatrix4fvEXT, "glProgramUniformMatrix4fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformMatrix2x3fvEXT, "glProgramUniformMatrix2x3fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformMatrix3x2fvEXT, "glProgramUniformMatrix3x2fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformMatrix2x4fvEXT, "glProgramUniformMatrix2x4fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformMatrix4x2fvEXT, "glProgramUniformMatrix4x2fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformMatrix3x4fvEXT, "glProgramUniformMatrix3x4fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformMatrix4x3fvEXT, "glProgramUniformMatrix4x3fvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform1uiEXT, "glProgramUniform1uiEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform2uiEXT, "glProgramUniform2uiEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform3uiEXT, "glProgramUniform3uiEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform4uiEXT, "glProgramUniform4uiEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform1uivEXT, "glProgramUniform1uivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform2uivEXT, "glProgramUniform2uivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform3uivEXT, "glProgramUniform3uivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniform4uivEXT, "glProgramUniform4uivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedBufferDataEXT, "glNamedBufferDataEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedBufferSubDataEXT, "glNamedBufferSubDataEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMapNamedBufferEXT, "glMapNamedBufferEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUnmapNamedBufferEXT, "glUnmapNamedBufferEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetNamedBufferParameterivEXT, "glGetNamedBufferParameterivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetNamedBufferPointervEXT, "glGetNamedBufferPointervEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetNamedBufferSubDataEXT, "glGetNamedBufferSubDataEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTextureBufferEXT, "glTextureBufferEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexBufferEXT, "glMultiTexBufferEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedRenderbufferStorageEXT, "glNamedRenderbufferStorageEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetNamedRenderbufferParameterivEXT, "glGetNamedRenderbufferParameterivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCheckNamedFramebufferStatusEXT, "glCheckNamedFramebufferStatusEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedFramebufferTexture1DEXT, "glNamedFramebufferTexture1DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedFramebufferTexture2DEXT, "glNamedFramebufferTexture2DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedFramebufferTexture3DEXT, "glNamedFramebufferTexture3DEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedFramebufferRenderbufferEXT, "glNamedFramebufferRenderbufferEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetNamedFramebufferAttachmentParameterivEXT, "glGetNamedFramebufferAttachmentParameterivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenerateTextureMipmapEXT, "glGenerateTextureMipmapEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenerateMultiTexMipmapEXT, "glGenerateMultiTexMipmapEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFramebufferDrawBufferEXT, "glFramebufferDrawBufferEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFramebufferDrawBuffersEXT, "glFramebufferDrawBuffersEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFramebufferReadBufferEXT, "glFramebufferReadBufferEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetFramebufferParameterivEXT, "glGetFramebufferParameterivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedRenderbufferStorageMultisampleEXT, "glNamedRenderbufferStorageMultisampleEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedRenderbufferStorageMultisampleCoverageEXT, "glNamedRenderbufferStorageMultisampleCoverageEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedFramebufferTextureEXT, "glNamedFramebufferTextureEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedFramebufferTextureLayerEXT, "glNamedFramebufferTextureLayerEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedFramebufferTextureFaceEXT, "glNamedFramebufferTextureFaceEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTextureRenderbufferEXT, "glTextureRenderbufferEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexRenderbufferEXT, "glMultiTexRenderbufferEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_vertex_array_bgra() - { - if(!extIsSupported("GL_EXT_vertex_array_bgra")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture_swizzle() - { - if(!extIsSupported("GL_EXT_texture_swizzle")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_provoking_vertex() - { - if(!extIsSupported("GL_EXT_provoking_vertex")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glProvokingVertexEXT, "glProvokingVertexEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_texture_snorm() - { - if(!extIsSupported("GL_EXT_texture_snorm")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_EXT_separate_shader_objects() - { - if(!extIsSupported("GL_EXT_separate_shader_objects")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glUseShaderProgramEXT, "glUseShaderProgramEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glActiveProgramEXT, "glActiveProgramEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCreateShaderProgramEXT, "glCreateShaderProgramEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_NV) - { - GLExtensionState load_GL_NV_texgen_reflection() - { - if(!extIsSupported("GL_NV_texgen_reflection")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_light_max_exponent() - { - if(!extIsSupported("GL_NV_light_max_exponent")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_vertex_array_range() - { - if(!extIsSupported("GL_NV_vertex_array_range")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glFlushVertexArrayRangeNV, "glFlushVertexArrayRangeNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexArrayRangeNV, "glVertexArrayRangeNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_register_combiners() - { - if(!extIsSupported("GL_NV_register_combiners")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glCombinerParameterfvNV, "glCombinerParameterfvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCombinerParameterfNV, "glCombinerParameterfNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCombinerParameterivNV, "glCombinerParameterivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCombinerParameteriNV, "glCombinerParameteriNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCombinerInputNV, "glCombinerInputNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCombinerOutputNV, "glCombinerOutputNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFinalCombinerInputNV, "glFinalCombinerInputNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetCombinerInputParameterfvNV, "glGetCombinerInputParameterfvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetCombinerInputParameterivNV, "glGetCombinerInputParameterivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetCombinerOutputParameterfvNV, "glGetCombinerOutputParameterfvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetCombinerOutputParameterivNV, "glGetCombinerOutputParameterivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetFinalCombinerInputParameterfvNV, "glGetFinalCombinerInputParameterfvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetFinalCombinerInputParameterivNV, "glGetFinalCombinerInputParameterivNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_fog_distance() - { - if(!extIsSupported("GL_NV_fog_distance")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_texgen_emboss() - { - if(!extIsSupported("GL_NV_texgen_emboss")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_blend_square() - { - if(!extIsSupported("GL_NV_blend_square")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_texture_env_combine4() - { - if(!extIsSupported("GL_NV_texture_env_combine4")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_fence() - { - if(!extIsSupported("GL_NV_fence")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glDeleteFencesNV, "glDeleteFencesNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenFencesNV, "glGenFencesNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsFenceNV, "glIsFenceNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTestFenceNV, "glTestFenceNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetFenceivNV, "glGetFenceivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFinishFenceNV, "glFinishFenceNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSetFenceNV, "glSetFenceNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_evaluators() - { - if(!extIsSupported("GL_NV_evaluators")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glMapControlPointsNV, "glMapControlPointsNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMapParameterivNV, "glMapParameterivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMapParameterfvNV, "glMapParameterfvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMapControlPointsNV, "glGetMapControlPointsNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMapParameterivNV, "glGetMapParameterivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMapParameterfvNV, "glGetMapParameterfvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMapAttribParameterivNV, "glGetMapAttribParameterivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetMapAttribParameterfvNV, "glGetMapAttribParameterfvNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_packed_depth_stencil() - { - if(!extIsSupported("GL_NV_packed_depth_stencil")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_register_combiners2() - { - if(!extIsSupported("GL_NV_register_combiners2")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glCombinerStageParameterfvNV, "glCombinerStageParameterfvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetCombinerStageParameterfvNV, "glGetCombinerStageParameterfvNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_texture_compression_vtc() - { - if(!extIsSupported("GL_NV_texture_compression_vtc")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_texture_rectangle() - { - if(!extIsSupported("GL_NV_texture_shader")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_texture_shader() - { - if(!extIsSupported("GL_NV_texture_shader")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_texture_shader2() - { - if(!extIsSupported("GL_NV_texture_shader2")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_vertex_array_range2() - { - if(!extIsSupported("GL_NV_vertex_array_range2")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_vertex_program() - { - if(!extIsSupported("GL_NV_vertex_program")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glAreProgramsResidentNV, "glAreProgramsResidentNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindProgramNV, "glBindProgramNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeleteProgramsNV, "glDeleteProgramsNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glExecuteProgramNV, "glExecuteProgramNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenProgramsNV, "glGenProgramsNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetProgramParameterdvNV, "glGetProgramParameterdvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetProgramParameterfvNV, "glGetProgramParameterfvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetProgramivNV, "glGetProgramivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetProgramStringNV, "glGetProgramStringNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetTrackMatrixivNV, "glGetTrackMatrixivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVertexAttribdvNV, "glGetVertexAttribdvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVertexAttribfvNV, "glGetVertexAttribfvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVertexAttribivNV, "glGetVertexAttribivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVertexAttribPointervNV, "glGetVertexAttribPointervNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsProgramNV, "glIsProgramNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glLoadProgramNV, "glLoadProgramNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramParameter4dNV, "glProgramParameter4dNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramParameter4dvNV, "glProgramParameter4dvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramParameter4fNV, "glProgramParameter4fNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramParameter4fvNV, "glProgramParameter4fvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramParameters4dvNV, "glProgramParameters4dvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramParameters4fvNV, "glProgramParameters4fvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glRequestResidentProgramsNV, "glRequestResidentProgramsNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTrackMatrixNV, "glTrackMatrixNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribPointerNV, "glVertexAttribPointerNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib1dNV, "glVertexAttrib1dNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib1dvNV, "glVertexAttrib1dvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib1fNV, "glVertexAttrib1fNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib1fvNV, "glVertexAttrib1fvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib1sNV, "glVertexAttrib1sNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib1svNV, "glVertexAttrib1svNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib2dNV, "glVertexAttrib2dNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib2dvNV, "glVertexAttrib2dvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib2fNV, "glVertexAttrib2fNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib2fvNV, "glVertexAttrib2fvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib2sNV, "glVertexAttrib2sNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib2svNV, "glVertexAttrib2svNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib3dNV, "glVertexAttrib3dNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib3dvNV, "glVertexAttrib3dvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib3fNV, "glVertexAttrib3fNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib3fvNV, "glVertexAttrib3fvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib3sNV, "glVertexAttrib3sNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib3svNV, "glVertexAttrib3svNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4dNV, "glVertexAttrib4dNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4dvNV, "glVertexAttrib4dvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4fNV, "glVertexAttrib4fNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4fvNV, "glVertexAttrib4fvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4sNV, "glVertexAttrib4sNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4svNV, "glVertexAttrib4svNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4ubNV, "glVertexAttrib4ubNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4ubvNV, "glVertexAttrib4ubvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribs1dvNV, "glVertexAttribs1dvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribs1fvNV, "glVertexAttribs1fvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribs1svNV, "glVertexAttribs1svNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribs2dvNV, "glVertexAttribs2dvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribs2fvNV, "glVertexAttribs2fvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribs2svNV, "glVertexAttribs2svNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribs3dvNV, "glVertexAttribs3dvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribs3fvNV, "glVertexAttribs3fvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribs3svNV, "glVertexAttribs3svNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribs4dvNV, "glVertexAttribs4dvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribs4fvNV, "glVertexAttribs4fvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribs4svNV, "glVertexAttribs4svNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribs4ubvNV, "glVertexAttribs4ubvNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_copy_depth_to_color() - { - if(!extIsSupported("GL_NV_copy_depth_to_color")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_multisample_filter_hint() - { - if(!extIsSupported("GL_NV_multisample_filter_hint")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_depth_clamp() - { - if(!extIsSupported("GL_NV_depth_clamp")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_occlusion_query() - { - if(!extIsSupported("GL_NV_occlusion_query")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glGenOcclusionQueriesNV, "glGenOcclusionQueriesNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeleteOcclusionQueriesNV, "glDeleteOcclusionQueriesNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsOcclusionQueryNV, "glIsOcclusionQueryNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBeginOcclusionQueryNV, "glBeginOcclusionQueryNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glEndOcclusionQueryNV, "glEndOcclusionQueryNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetOcclusionQueryivNV, "glGetOcclusionQueryivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetOcclusionQueryuivNV, "glGetOcclusionQueryuivNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_point_sprite() - { - if(!extIsSupported("GL_NV_point_sprite")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glPointParameteriNV, "glPointParameteriNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glPointParameterivNV, "glPointParameterivNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_texture_shader3() - { - if(!extIsSupported("GL_NV_texture_shader3")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_vertex_program1_1() - { - if(!extIsSupported("GL_NV_vertex_program1_1")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_float_buffer() - { - if(!extIsSupported("GL_NV_float_buffer")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_fragment_program() - { - if(!extIsSupported("GL_NV_fragment_program")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glProgramNamedParameter4fNV, "glProgramNamedParameter4fNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramNamedParameter4dNV, "glProgramNamedParameter4dNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramNamedParameter4fvNV, "glProgramNamedParameter4fvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramNamedParameter4dvNV, "glProgramNamedParameter4dvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetProgramNamedParameterfvNV, "glGetProgramNamedParameterfvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetProgramNamedParameterdvNV, "glGetProgramNamedParameterdvNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_half_float() - { - if(!extIsSupported("GL_NV_half_float")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glVertex2hNV, "glVertex2hNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertex2hvNV, "glVertex2hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertex3hNV, "glVertex3hNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertex3hvNV, "glVertex3hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertex4hNV, "glVertex4hNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertex4hvNV, "glVertex4hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormal3hNV, "glNormal3hNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormal3hvNV, "glNormal3hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColor3hNV, "glColor3hNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColor3hvNV, "glColor3hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColor4hNV, "glColor4hNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColor4hvNV, "glColor4hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord1hNV, "glTexCoord1hNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord1hvNV, "glTexCoord1hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord2hNV, "glTexCoord2hNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord2hvNV, "glTexCoord2hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord3hNV, "glTexCoord3hNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord3hvNV, "glTexCoord3hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord4hNV, "glTexCoord4hNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord4hvNV, "glTexCoord4hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord1hNV, "glMultiTexCoord1hNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord1hvNV, "glMultiTexCoord1hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord2hNV, "glMultiTexCoord2hNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord2hvNV, "glMultiTexCoord2hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord3hNV, "glMultiTexCoord3hNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord3hvNV, "glMultiTexCoord3hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord4hNV, "glMultiTexCoord4hNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiTexCoord4hvNV, "glMultiTexCoord4hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFogCoordhNV, "glFogCoordhNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFogCoordhvNV, "glFogCoordhvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColor3hNV, "glSecondaryColor3hNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColor3hvNV, "glSecondaryColor3hvNV")) - return GLExtensionState.FailedToLoad; -// if(!bindExtFunc(cast(void**)&glVertexWeighthNV, "glVertexWeighthNV")) -// return GLExtensionState.FailedToLoad; -// if(!bindExtFunc(cast(void**)&glVertexWeighthvNV, "glVertexWeighthvNV")) -// return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib1hNV, "glVertexAttrib1hNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib1hvNV, "glVertexAttrib1hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib2hNV, "glVertexAttrib2hNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib2hvNV, "glVertexAttrib2hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib3hNV, "glVertexAttrib3hNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib3hvNV, "glVertexAttrib3hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4hNV, "glVertexAttrib4hNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttrib4hvNV, "glVertexAttrib4hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribs1hvNV, "glVertexAttribs1hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribs2hvNV, "glVertexAttribs2hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribs3hvNV, "glVertexAttribs3hvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribs4hvNV, "glVertexAttribs4hvNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_pixel_data_range() - { - if(!extIsSupported("GL_NV_pixel_data_range")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glPixelDataRangeNV, "glPixelDataRangeNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFlushPixelDataRangeNV, "glFlushPixelDataRangeNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_primitive_restart() - { - if(!extIsSupported("GL_NV_primitive_restart")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glPrimitiveRestartNV, "glPrimitiveRestartNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glPrimitiveRestartIndexNV, "glPrimitiveRestartIndexNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_texture_expand_normal() - { - if(!extIsSupported("GL_NV_texture_expand_normal")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_vertex_program2() - { - if(!extIsSupported("GL_NV_vertex_program2")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_fragment_program_option() - { - if(!extIsSupported("GL_NV_fragment_program_option")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_fragment_program2() - { - if(!extIsSupported("GL_NV_fragment_program2")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_vertex_program2_option() - { - if(!extIsSupported("GL_NV_vertex_program2_option")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_vertex_program3() - { - if(!extIsSupported("GL_NV_vertex_program3")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_gpu_program4() - { - if(!extIsSupported("GL_NV_gpu_program4")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glProgramLocalParameterI4iNV, "glProgramLocalParameterI4iNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramLocalParameterI4ivNV, "glProgramLocalParameterI4ivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramLocalParametersI4ivNV, "glProgramLocalParametersI4ivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramLocalParameterI4uiNV, "glProgramLocalParameterI4uiNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramLocalParameterI4uivNV, "glProgramLocalParameterI4uivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramLocalParametersI4uivNV, "glProgramLocalParametersI4uivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramEnvParameterI4iNV, "glProgramEnvParameterI4iNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramEnvParameterI4ivNV, "glProgramEnvParameterI4ivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramEnvParametersI4ivNV, "glProgramEnvParametersI4ivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramEnvParameterI4uiNV, "glProgramEnvParameterI4uiNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramEnvParameterI4uivNV, "glProgramEnvParameterI4uivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramEnvParametersI4uivNV, "glProgramEnvParametersI4uivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetProgramLocalParameterIivNV, "glGetProgramLocalParameterIivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetProgramLocalParameterIuivNV, "glGetProgramLocalParameterIuivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetProgramEnvParameterIivNV, "glGetProgramEnvParameterIivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetProgramEnvParameterIuivNV, "glGetProgramEnvParameterIuivNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_geometry_program4() - { - if(!extIsSupported("GL_NV_geometry_program4")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glProgramVertexLimitNV, "glProgramVertexLimitNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFramebufferTextureEXT, "glFramebufferTextureEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFramebufferTextureLayerEXT, "glFramebufferTextureLayerEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFramebufferTextureFaceEXT, "glFramebufferTextureFaceEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_vertex_program4() - { - if(!extIsSupported("GL_NV_vertex_program4")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glVertexAttribI1iEXT, "glVertexAttribI1iEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribI2iEXT, "glVertexAttribI2iEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribI3iEXT, "glVertexAttribI3iEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribI4iEXT, "glVertexAttribI4iEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribI1uiEXT, "glVertexAttribI1uiEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribI2uiEXT, "glVertexAttribI2uiEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribI3uiEXT, "glVertexAttribI3uiEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribI4uiEXT, "glVertexAttribI4uiEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribI1ivEXT, "glVertexAttribI1ivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribI2ivEXT, "glVertexAttribI2ivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribI3ivEXT, "glVertexAttribI3ivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribI4ivEXT, "glVertexAttribI4ivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribI1uivEXT, "glVertexAttribI1uivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribI2uivEXT, "glVertexAttribI2uivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribI3uivEXT, "glVertexAttribI3uivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribI4uivEXT, "glVertexAttribI4uivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribI4bvEXT, "glVertexAttribI4bvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribI4svEXT, "glVertexAttribI4svEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribI4ubvEXT, "glVertexAttribI4ubvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribI4usvEXT, "glVertexAttribI4usvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribIPointerEXT, "glVertexAttribIPointerEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVertexAttribIivEXT, "glGetVertexAttribIivEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVertexAttribIuivEXT, "glGetVertexAttribIuivEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_depth_buffer_float() - { - if(!extIsSupported("GL_NV_depth_buffer_float")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glDepthRangedNV, "glDepthRangedNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glClearDepthdNV, "glClearDepthdNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDepthBoundsdNV, "glDepthBoundsdNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_fragment_program4() - { - if(!extIsSupported("GL_NV_fragment_program4")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_framebuffer_multisample_coverage() - { - if(!extIsSupported("GL_NV_framebuffer_multisample_coverage")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glRenderbufferStorageMultisampleCoverageNV, "glRenderbufferStorageMultisampleCoverageNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_geometry_shader4() - { - if(!extIsSupported("GL_NV_geometry_shader4")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_transform_feedback() - { - if(!extIsSupported("GL_NV_transform_feedback")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glBeginTransformFeedbackNV, "glBeginTransformFeedbackNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glEndTransformFeedbackNV, "glEndTransformFeedbackNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTransformFeedbackAttribsNV, "glTransformFeedbackAttribsNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindBufferRangeNV, "glBindBufferRangeNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindBufferOffsetNV, "glBindBufferOffsetNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindBufferBaseNV, "glBindBufferBaseNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTransformFeedbackVaryingsNV, "glTransformFeedbackVaryingsNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glActiveVaryingNV, "glActiveVaryingNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVaryingLocationNV, "glGetVaryingLocationNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetActiveVaryingNV, "glGetActiveVaryingNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetTransformFeedbackVaryingNV, "glGetTransformFeedbackVaryingNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_conditional_render() - { - if(!extIsSupported("GL_NV_conditional_render")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glBeginConditionalRenderNV, "glBeginConditionalRenderNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glEndConditionalRenderNV, "glEndConditionalRenderNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_present_video() - { - if(!extIsSupported("GL_NV_present_video")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glPresentFrameKeyedNV, "glPresentFrameKeyedNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glPresentFrameDualFillNV, "glPresentFrameDualFillNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVideoivNV, "glGetVideoivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVideouivNV, "glGetVideouivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVideoi64vNV, "glGetVideoi64vNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVideoui64vNV, "glGetVideoui64vNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_explicit_multisample() - { - if(!extIsSupported("GL_NV_explicit_multisample")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glGetMultisamplefvNV, "glGetMultisamplefvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSampleMaskIndexedNV, "glSampleMaskIndexedNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexRenderbufferNV, "glTexRenderbufferNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_transform_feedback2() - { - if(!extIsSupported("GL_NV_transform_feedback2")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glBindTransformFeedbackNV, "glBindTransformFeedbackNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeleteTransformFeedbacksNV, "glDeleteTransformFeedbacksNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenTransformFeedbacksNV, "glGenTransformFeedbacksNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsTransformFeedbackNV, "glIsTransformFeedbackNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glPauseTransformFeedbackNV, "glPauseTransformFeedbackNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glResumeTransformFeedbackNV, "glResumeTransformFeedbackNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDrawTransformFeedbackNV, "glDrawTransformFeedbackNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_video_capture() - { - if(!extIsSupported("GL_NV_video_capture")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glBeginVideoCaptureNV, "glBeginVideoCaptureNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindVideoCaptureStreamBufferNV, "glBindVideoCaptureStreamBufferNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindVideoCaptureStreamTextureNV, "glBindVideoCaptureStreamTextureNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glEndVideoCaptureNV, "glEndVideoCaptureNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVideoCaptureivNV, "glGetVideoCaptureivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVideoCaptureStreamivNV, "glGetVideoCaptureStreamivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVideoCaptureStreamfvNV, "glGetVideoCaptureStreamfvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVideoCaptureStreamdvNV, "glGetVideoCaptureStreamdvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVideoCaptureNV, "glVideoCaptureNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVideoCaptureStreamParameterivNV, "glVideoCaptureStreamParameterivNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVideoCaptureStreamParameterfvNV, "glVideoCaptureStreamParameterfvNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVideoCaptureStreamParameterdvNV, "glVideoCaptureStreamParameterdvNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_copy_image() - { - if(!extIsSupported("GL_NV_copy_image")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glCopyImageSubDataNV, "glCopyImageSubDataNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_parameter_buffer_object2() - { - if(!extIsSupported("GL_NV_parameter_buffer_object2")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_shader_buffer_load() - { - if(!extIsSupported("GL_NV_shader_buffer_load")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glMakeBufferResidentNV, "glMakeBufferResidentNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMakeBufferNonResidentNV, "glMakeBufferNonResidentNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsBufferResidentNV, "glIsBufferResidentNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedMakeBufferResidentNV, "glNamedMakeBufferResidentNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNamedMakeBufferNonResidentNV, "glNamedMakeBufferNonResidentNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsNamedBufferResidentNV, "glIsNamedBufferResidentNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetBufferParameterui64vNV, "glGetBufferParameterui64vNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetNamedBufferParameterui64vNV, "glGetNamedBufferParameterui64vNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetIntegerui64vNV, "glGetIntegerui64vNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniformui64NV, "glUniformui64NV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUniformui64vNV, "glUniformui64vNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetUniformui64vNV, "glGetUniformui64vNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformui64NV, "glProgramUniformui64NV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glProgramUniformui64vNV, "glProgramUniformui64vNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_vertex_buffer_unified_memory() - { - if(!extIsSupported("GL_NV_vertex_buffer_unified_memory")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glBufferAddressRangeNV, "glBufferAddressRangeNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexFormatNV, "glVertexFormatNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormalFormatNV, "glNormalFormatNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColorFormatNV, "glColorFormatNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIndexFormatNV, "glIndexFormatNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoordFormatNV, "glTexCoordFormatNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glEdgeFlagFormatNV, "glEdgeFlagFormatNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColorFormatNV, "glSecondaryColorFormatNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFogCoordFormatNV, "glFogCoordFormatNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribFormatNV, "glVertexAttribFormatNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexAttribIFormatNV, "glVertexAttribIFormatNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetIntegerui64i_vNV, "glGetIntegerui64i_vNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_NV_texture_barrier() - { - if(!extIsSupported("GL_NV_texture_barrier")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glTextureBarrierNV, "glTextureBarrierNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_ATI) - { - GLExtensionState load_GL_ATI_texture_mirror_once() - { - if(!extIsSupported("GL_ATI_texture_mirror_once")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ATI_envmap_bumpmap() - { - if(!extIsSupported("GL_ATI_envmap_bumpmap")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glTexBumpParameterivATI, "glTexBumpParameterivATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexBumpParameterfvATI, "glTexBumpParameterfvATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetTexBumpParameterivATI, "glGetTexBumpParameterivATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetTexBumpParameterfvATI, "glGetTexBumpParameterfvATI")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ATI_fragment_shader() - { - if(!extIsSupported("GL_ATI_fragment_shader")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glGenFragmentShadersATI, "glGenFragmentShadersATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBindFragmentShaderATI, "glBindFragmentShaderATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeleteFragmentShaderATI, "glDeleteFragmentShaderATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBeginFragmentShaderATI, "glBeginFragmentShaderATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glEndFragmentShaderATI, "glEndFragmentShaderATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glPassTexCoordATI, "glPassTexCoordATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSampleMapATI, "glSampleMapATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColorFragmentOp1ATI, "glColorFragmentOp1ATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColorFragmentOp2ATI, "glColorFragmentOp2ATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColorFragmentOp3ATI, "glColorFragmentOp3ATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glAlphaFragmentOp1ATI, "glAlphaFragmentOp1ATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glAlphaFragmentOp2ATI, "glAlphaFragmentOp2ATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glAlphaFragmentOp3ATI, "glAlphaFragmentOp3ATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSetFragmentShaderConstantATI, "glSetFragmentShaderConstantATI")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ATI_pn_triangles() - { - if(!extIsSupported("GL_ATI_pn_triangles")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glPNTrianglesiATI, "glPNTrianglesiATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glPNTrianglesfATI, "glPNTrianglesfATI")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ATI_vertex_array_object() - { - if(!extIsSupported("GL_ATI_vertex_array_object")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glNewObjectBufferATI, "glNewObjectBufferATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsObjectBufferATI, "glIsObjectBufferATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUpdateObjectBufferATI, "glUpdateObjectBufferATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetObjectBufferfvATI, "glGetObjectBufferfvATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetObjectBufferivATI, "glGetObjectBufferivATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFreeObjectBufferATI, "glFreeObjectBufferATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glArrayObjectATI, "glArrayObjectATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetArrayObjectfvATI, "glGetArrayObjectfvATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetArrayObjectivATI, "glGetArrayObjectivATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVariantArrayObjectATI, "glVariantArrayObjectATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVariantArrayObjectfvATI, "glGetVariantArrayObjectfvATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVariantArrayObjectivATI, "glGetVariantArrayObjectivATI")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ATI_vertex_streams() - { - if(!extIsSupported("GL_ATI_vertex_streams")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glVertexStream1sATI, "glVertexStream1sATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream1svATI, "glVertexStream1svATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream1iATI, "glVertexStream1iATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream1ivATI, "glVertexStream1ivATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream1fATI, "glVertexStream1fATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream1fvATI, "glVertexStream1fvATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream1dATI, "glVertexStream1dATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream1dvATI, "glVertexStream1dvATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream2sATI, "glVertexStream2sATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream2svATI, "glVertexStream2svATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream2iATI, "glVertexStream2iATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream2ivATI, "glVertexStream2ivATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream2fATI, "glVertexStream2fATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream2fvATI, "glVertexStream2fvATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream2dATI, "glVertexStream2dATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream2dvATI, "glVertexStream2dvATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream3sATI, "glVertexStream3sATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream3svATI, "glVertexStream3svATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream3iATI, "glVertexStream3iATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream3ivATI, "glVertexStream3ivATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream3fATI, "glVertexStream3fATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream3fvATI, "glVertexStream3fvATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream3dATI, "glVertexStream3dATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream3dvATI, "glVertexStream3dvATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream4sATI, "glVertexStream4sATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream4svATI, "glVertexStream4svATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream4iATI, "glVertexStream4iATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream4ivATI, "glVertexStream4ivATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream4fATI, "glVertexStream4fATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream4fvATI, "glVertexStream4fvATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream4dATI, "glVertexStream4dATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexStream4dvATI, "glVertexStream4dvATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormalStream3bATI, "glNormalStream3bATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormalStream3bvATI, "glNormalStream3bvATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormalStream3sATI, "glNormalStream3sATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormalStream3svATI, "glNormalStream3svATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormalStream3iATI, "glNormalStream3iATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormalStream3ivATI, "glNormalStream3ivATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormalStream3fATI, "glNormalStream3fATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormalStream3fvATI, "glNormalStream3fvATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormalStream3dATI, "glNormalStream3dATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormalStream3dvATI, "glNormalStream3dvATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glClientActiveVertexStreamATI, "glClientActiveVertexStreamATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexBlendEnviATI, "glVertexBlendEnviATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexBlendEnvfATI, "glVertexBlendEnvfATI")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ATI_element_array() - { - if(!extIsSupported("GL_ATI_element_array")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glElementPointerATI, "glElementPointerATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDrawElementArrayATI, "glDrawElementArrayATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDrawRangeElementArrayATI, "glDrawRangeElementArrayATI")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ATI_text_fragment_shader() - { - if(!extIsSupported("GL_ATI_text_fragment_shader")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ATI_draw_buffers() - { - if(!extIsSupported("GL_ATI_draw_buffers")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glDrawBuffersATI, "glDrawBuffersATI")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ATI_pixel_format_float() - { - if(!extIsSupported("GL_ATI_pixel_format_float")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ATI_texture_env_combine3() - { - if(!extIsSupported("GL_ATI_texture_env_combine3")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ATI_texture_float() - { - if(!extIsSupported("GL_ATI_texture_float")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ATI_map_object_buffer() - { - if(!extIsSupported("GL_ATI_map_object_buffer")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glMapBufferATI, "glMapBufferATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glUnmapBufferATI, "glUnmapBufferATI")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ATI_separate_stencil() - { - if(!extIsSupported("GL_ATI_separate_stencil")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glStencilOpSeparateATI, "glStencilOpSeparateATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glStencilFuncSeparateATI, "glStencilFuncSeparateATI")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ATI_vertex_attrib_array_object() - { - if(!extIsSupported("GL_ATI_vertex_attrib_array_object")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glVertexAttribArrayObjectATI, "glVertexAttribArrayObjectATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVertexAttribArrayObjectfvATI, "glGetVertexAttribArrayObjectfvATI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetVertexAttribArrayObjectivATI, "glGetVertexAttribArrayObjectivATI")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_ATI_meminfo() - { - if(!extIsSupported("GL_ATI_meminfo")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_AMD) - { - GLExtensionState load_GL_AMD_performance_monitor() - { - if(!extIsSupported("GL_AMD_performance_monitor")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glGetPerfMonitorGroupsAMD, "glGetPerfMonitorGroupsAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetPerfMonitorCountersAMD, "glGetPerfMonitorCountersAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetPerfMonitorGroupStringAMD, "glGetPerfMonitorGroupStringAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetPerfMonitorCounterStringAMD, "glGetPerfMonitorCounterStringAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetPerfMonitorCounterInfoAMD, "glGetPerfMonitorCounterInfoAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenPerfMonitorsAMD, "glGenPerfMonitorsAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeletePerfMonitorsAMD, "glDeletePerfMonitorsAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSelectPerfMonitorCountersAMD, "glSelectPerfMonitorCountersAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBeginPerfMonitorAMD, "glBeginPerfMonitorAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glEndPerfMonitorAMD, "glEndPerfMonitorAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetPerfMonitorCounterDataAMD, "glGetPerfMonitorCounterDataAMD")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_AMD_texture_texture4() - { - if(!extIsSupported("GL_AMD_texture_texture4")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_AMD_vertex_shader_tesselator() - { - if(!extIsSupported("GL_AMD_vertex_shader_tesselator")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glTessellationFactorAMD, "glTessellationFactorAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTessellationModeAMD, "glTessellationModeAMD")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_AMD_draw_buffers_blend() - { - if(!extIsSupported("GL_AMD_draw_buffers_blend")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glBlendFuncIndexedAMD, "glBlendFuncIndexedAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBlendFuncSeparateIndexedAMD, "glBlendFuncSeparateIndexedAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBlendEquationIndexedAMD, "glBlendEquationIndexedAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glBlendEquationSeparateIndexedAMD, "glBlendEquationSeparateIndexedAMD")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_SGI) - { - GLExtensionState load_GL_SGI_color_matrix() - { - if(!extIsSupported("GL_SGI_color_matrix")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGI_color_table() - { - if(!extIsSupported("GL_SGI_color_table")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glColorTableSGI, "glColorTableSGI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColorTableParameterfvSGI, "glColorTableParameterfvSGI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColorTableParameterivSGI, "glColorTableParameterivSGI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glCopyColorTableSGI, "glCopyColorTableSGI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetColorTableSGI, "glGetColorTableSGI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetColorTableParameterfvSGI, "glGetColorTableParameterfvSGI")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetColorTableParameterivSGI, "glGetColorTableParameterivSGI")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGI_texture_color_table() - { - if(!extIsSupported("GL_SGI_texture_color_table")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_SGIS) - { - GLExtensionState load_GL_SGIS_texture_filter4() - { - if(!extIsSupported("GL_SGIS_texture_filter4")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glGetTexFilterFuncSGIS, "glGetTexFilterFuncSGIS")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexFilterFuncSGIS, "glTexFilterFuncSGIS")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIS_pixel_texture() - { - if(!extIsSupported("GL_SGIS_pixel_texture")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glPixelTexGenParameteriSGIS, "glPixelTexGenParameteriSGIS")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glPixelTexGenParameterivSGIS, "glPixelTexGenParameterivSGIS")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glPixelTexGenParameterfSGIS, "glPixelTexGenParameterfSGIS")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glPixelTexGenParameterfvSGIS, "glPixelTexGenParameterfvSGIS")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetPixelTexGenParameterivSGIS, "glGetPixelTexGenParameterivSGIS")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetPixelTexGenParameterfvSGIS, "glGetPixelTexGenParameterfvSGIS")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIS_texture4D() - { - if(!extIsSupported("GL_SGIS_texture4D")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glTexImage4DSGIS, "glTexImage4DSGIS")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexSubImage4DSGIS, "glTexSubImage4DSGIS")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIS_detail_texture() - { - if(!extIsSupported("GL_SGIS_detail_texture")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glDetailTexFuncSGIS, "glDetailTexFuncSGIS")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetDetailTexFuncSGIS, "glGetDetailTexFuncSGIS")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIS_sharpen_texture() - { - if(!extIsSupported("GL_SGIS_sharpen_texture")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glSharpenTexFuncSGIS, "glSharpenTexFuncSGIS")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetSharpenTexFuncSGIS, "glGetSharpenTexFuncSGIS")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIS_texture_lod() - { - if(!extIsSupported("GL_SGIS_texture_lod")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIS_multisample() - { - if(!extIsSupported("GL_SGIS_multisample")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glSampleMaskSGIS, "glSampleMaskSGIS")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSamplePatternSGIS, "glSamplePatternSGIS")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIS_generate_mipmap() - { - if(!extIsSupported("GL_SGIS_generate_mipmap")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIS_texture_edge_clamp() - { - if(!extIsSupported("GL_SGIS_texture_edge_clamp")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIS_texture_border_clamp() - { - if(!extIsSupported("GL_SGIS_texture_border_clamp")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIS_texture_select() - { - if(!extIsSupported("GL_SGIS_texture_select")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIS_point_parameters() - { - if(!extIsSupported("GL_SGIS_point_parameters")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glPointParameterfSGIS, "glPointParameterfSGIS")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glPointParameterfvSGIS, "glPointParameterfvSGIS")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIS_fog_function() - { - if(!extIsSupported("GL_SGIS_fog_function")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glFogFuncSGIS, "glFogFuncSGIS")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetFogFuncSGIS, "glGetFogFuncSGIS")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIS_point_line_texgen() - { - if(!extIsSupported("GL_SGIS_point_line_texgen")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIS_texture_color_mask() - { - if(!extIsSupported("GL_SGIS_texture_color_mask")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glTextureColorMaskSGIS, "glTextureColorMaskSGIS")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_SGIX) - { - GLExtensionState load_GL_SGIX_pixel_texture() - { - if(!extIsSupported("GL_SGIX_pixel_texture")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glPixelTexGenSGIX, "glPixelTexGenSGIX")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_clipmap() - { - if(!extIsSupported("GL_SGIX_clipmap")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_shadow() - { - if(!extIsSupported("GL_SGIX_shadow")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_interlace() - { - if(!extIsSupported("GL_SGIX_interlace")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_pixel_tiles() - { - if(!extIsSupported("GL_SGIX_pixel_tiles")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - - GLExtensionState load_GL_SGIX_sprite() - { - if(!extIsSupported("GL_SGIX_sprite")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glSpriteParameterfSGIX, "glSpriteParameterfSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSpriteParameterfvSGIX, "glSpriteParameterfvSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSpriteParameteriSGIX, "glSpriteParameteriSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSpriteParameterivSGIX, "glSpriteParameterivSGIX")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_texture_multi_buffer() - { - if(!extIsSupported("GL_SGIX_texture_multi_buffer")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_instruments() - { - if(!extIsSupported("GL_SGIX_instruments")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glGetInstrumentsSGIX, "glGetInstrumentsSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glInstrumentsBufferSGIX, "glInstrumentsBufferSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glPollInstrumentsSGIX, "glPollInstrumentsSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReadInstrumentsSGIX, "glReadInstrumentsSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glStartInstrumentsSGIX, "glStartInstrumentsSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glStopInstrumentsSGIX, "glStopInstrumentsSGIX")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_texture_scale_bias() - { - if(!extIsSupported("GL_SGIX_texture_scale_bias")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_framezoom() - { - if(!extIsSupported("GL_SGIX_framezoom")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glFrameZoomSGIX, "glFrameZoomSGIX")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_tag_sample_buffer() - { - if(!extIsSupported("GL_SGIX_tag_sample_buffer")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glTagSampleBufferSGIX, "glTagSampleBufferSGIX")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_polynomial_ffd() - { - if(!extIsSupported("GL_SGIX_polynomial_ffd")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glDeformationMap3dSGIX, "glDeformationMap3dSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeformationMap3fSGIX, "glDeformationMap3fSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeformSGIX, "glDeformSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glLoadIdentityDeformationMapSGIX, "glLoadIdentityDeformationMapSGIX")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_reference_plane() - { - if(!extIsSupported("GL_SGIX_reference_plane")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glReferencePlaneSGIX, "glReferencePlaneSGIX")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_flush_raster() - { - if(!extIsSupported("GL_SGIX_flush_raster")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glFLushRasterSGIX, "glFLushRasterSGIX")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_depth_texture() - { - if(!extIsSupported("GL_SGIX_depth_texture")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_fog_offset() - { - if(!extIsSupported("GL_SGIX_fog_offset")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_texture_add_env() - { - if(!extIsSupported("GL_SGIX_texture_add_env")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_list_priority() - { - if(!extIsSupported("GL_SGIX_list_priority")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glGetListParameterfvSGIX, "glGetListParameterfvSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetListParameterivSGIX, "glGetListParameterivSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glListParameterfSGIX, "glListParameterfSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glListParameterfvSGIX, "glListParameterfvSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glListParameteriSGIX, "glListParameteriSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glListParameterivSGIX, "glListParameterivSGIX")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_ir_instrument1() - { - if(!extIsSupported("GL_SGIX_ir_instrument1")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_calligraphic_fragment() - { - if(!extIsSupported("GL_SGIX_calligraphic_fragment")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_texture_lod_bias() - { - if(!extIsSupported("GL_SGIX_texture_lod_bias")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_shadow_ambient() - { - if(!extIsSupported("GL_SGIX_shadow_ambient")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_ycrcb() - { - if(!extIsSupported("GL_SGIX_ycrcb")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_fragment_lighting() - { - if(!extIsSupported("GL_SGIX_fragment_lighting")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glFragmentColorMaterialSGIX, "glFragmentColorMaterialSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFragmentLightfSGIX, "glFragmentLightfSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFragmentLightfvSGIX, "glFragmentLightfvSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFragmentLightiSGIX, "glFragmentLightiSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFragmentLightivSGIX, "glFragmentLightivSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFragmentLightModelfSGIX, "glFragmentLightModelfSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFragmentLightModelfvSGIX, "glFragmentLightModelfvSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFragmentLightModeliSGIX, "glFragmentLightModeliSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFragmentLightModelivSGIX, "glFragmentLightModelivSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFragmentMaterialfSGIX, "glFragmentMaterialfSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFragmentMaterialfvSGIX, "glFragmentMaterialfvSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFragmentMaterialiSGIX, "glFragmentMaterialiSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFragmentMaterialivSGIX, "glFragmentMaterialivSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetFragmentLightfvSGIX, "glGetFragmentLightfvSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetFragmentLightivSGIX, "glGetFragmentLightivSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetFragmentMaterialfvSGIX, "glGetFragmentMaterialfvSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetFragmentMaterialivSGIX, "glGetFragmentMaterialivSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glLightEnviSGIX, "glLightEnviSGIX")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_blend_alpha_minmax() - { - if(!extIsSupported("GL_SGIX_blend_alpha_minmax")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_impact_pixel_texture() - { - if(!extIsSupported("GL_SGIX_impact_pixel_texture")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_async() - { - if(!extIsSupported("GL_SGIX_async")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glAsyncMarkerSGIX, "glAsyncMarkerSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFinishAsyncSGIX, "glFinishAsyncSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glPollAsyncSGIX, "glPollAsyncSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenAsyncMarkersSGIX, "glGenAsyncMarkersSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeleteAsyncMarkersSGIX, "glDeleteAsyncMarkersSGIX")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsAsyncMarkerSGIX, "glIsAsyncMarkerSGIX")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_async_pixel() - { - if(!extIsSupported("GL_SGIX_async_pixel")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_async_histogram() - { - if(!extIsSupported("GL_SGIX_async_histogram")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_fog_scale() - { - if(!extIsSupported("GL_SGIX_fog_scale")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_subsample() - { - if(!extIsSupported("GL_SGIX_subsample")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_ycrcb_subsample() - { - if(!extIsSupported("GL_SGIX_ycrcb_subsample")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_ycrcba() - { - if(!extIsSupported("GL_SGIX_ycrcba")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_depth_pass_instrument() - { - if(!extIsSupported("GL_SGIX_depth_pass_instrument")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_vertex_preclip() - { - if(!extIsSupported("GL_SGIX_vertex_preclip")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_convolution_accuracy() - { - if(!extIsSupported("GL_SGIX_convolution_accuracy")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_resample() - { - if(!extIsSupported("GL_SGIX_resample")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_texture_coordinate_clamp() - { - if(!extIsSupported("GL_SGIX_texture_coordinate_clamp")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SGIX_scalebias_hint() - { - if(!extIsSupported("GL_SGIX_scalebias_hint")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_HP) - { - GLExtensionState load_GL_HP_image_transform() - { - if(!extIsSupported("GL_HP_image_transform")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glImageTransformParameteriHP, "glImageTransformParameteriHP")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glImageTransformParameterfHP, "glImageTransformParameterfHP")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glImageTransformParameterivHP, "glImageTransformParameterivHP")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glImageTransformParameterfvHP, "glImageTransformParameterfvHP")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetImageTransformParameterivHP, "glGetImageTransformParameterivHP")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetImageTransformParameterfvHP, "glGetImageTransformParameterfvHP")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_HP_convolution_border_modes() - { - if(!extIsSupported("GL_HP_convolution_border_modes")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_HP_texture_lighting() - { - if(!extIsSupported("GL_HP_texture_lighting")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_HP_occlusion_test() - { - if(!extIsSupported("GL_HP_occlusion_test")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_PGI) - { - GLExtensionState load_GL_PGI_vertex_hints() - { - if(!extIsSupported("GL_PGI_vertex_hints")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_PGI_misc_hints() - { - if(!extIsSupported("GL_PGI_misc_hints")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glHintPGI, "glHintPGI")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_IBM) - { - GLExtensionState load_GL_IBM_rasterpos_clip() - { - if(!extIsSupported("GL_IBM_rasterpos_clip")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_IBM_cull_vertex() - { - if(!extIsSupported("GL_IBM_cull_vertex")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_IBM_multimode_draw_arrays() - { - if(!extIsSupported("GL_IBM_multimode_draw_arrays")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glMultiModeDrawArraysIBM, "glMultiModeDrawArraysIBM")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiModeDrawElementsIBM, "glMultiModeDrawElementsIBM")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_IBM_vertex_array_lists() - { - if(!extIsSupported("GL_IBM_vertex_array_lists")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glColorPointerListIBM, "glColorPointerListIBM")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSecondaryColorPointerListIBM, "glSecondaryColorPointerListIBM")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glEdgeFlagPointerListIBM, "glEdgeFlagPointerListIBM")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFogCoordPointerListIBM, "glFogCoordPointerListIBM")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIndexPointerListIBM, "glIndexPointerListIBM")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormalPointerListIBM, "glNormalPointerListIBM")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoordPointerListIBM, "glTexCoordPointerListIBM")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexPointerListIBM, "glVertexPointerListIBM")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_IBM_texture_mirrored_repeat() - { - if(!extIsSupported("GL_IBM_texture_mirrored_repeat")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_WIN) - { - GLExtensionState load_GL_WIN_phong_shading() - { - if(!extIsSupported("GL_WIN_phong_shading")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_WIN_specular_fog() - { - if(!extIsSupported("GL_WIN_specular_fog")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_INTEL) - { - GLExtensionState load_GL_INTEL_parallel_arrays() - { - if(!extIsSupported("GL_INTEL_parallel_arrays")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glVertexPointervINTEL, "glVertexPointervINTEL")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormalPointervINTEL, "glNormalPointervINTEL")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColorPointervINTEL, "glColorPointervINTEL")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoordPointervINTEL, "glTexCoordPointervINTEL")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_REND) - { - GLExtensionState load_GL_REND_screen_coordinates() - { - if(!extIsSupported("GL_REND_screen_coordinates")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_APPLE) - { - GLExtensionState load_GL_APPLE_specular_vector() - { - if(!extIsSupported("GL_APPLE_specular_vector")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_APPLE_transform_hint() - { - if(!extIsSupported("GL_APPLE_transform_hint")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_APPLE_client_storage() - { - if(!extIsSupported("GL_APPLE_client_storage")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_APPLE_element_array() - { - if(!extIsSupported("GL_APPLE_element_array")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glElementPointerAPPLE, "glElementPointerAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDrawElementArrayAPPLE, "glDrawElementArrayAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDrawRangeElementArrayAPPLE, "glDrawRangeElementArrayAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiDrawElementArrayAPPLE, "glMultiDrawElementArrayAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMultiDrawRangeElementArrayAPPLE, "glMultiDrawRangeElementArrayAPPLE")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_APPLE_fence() - { - if(!extIsSupported("GL_APPLE_fence")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glGenFencesAPPLE, "glGenFencesAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeleteFencesAPPLE, "glDeleteFencesAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glSetFenceAPPLE, "glSetFenceAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsFenceAPPLE, "glIsFenceAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTestFenceAPPLE, "glTestFenceAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFinishFenceAPPLE, "glFinishFenceAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTestObjectAPPLE, "glTestObjectAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFinishObjectAPPLE, "glFinishObjectAPPLE")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_APPLE_vertex_array_object() - { - if(!extIsSupported("GL_APPLE_vertex_array_object")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glBindVertexArrayAPPLE, "glBindVertexArrayAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDeleteVertexArraysAPPLE, "glDeleteVertexArraysAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGenVertexArraysAPPLE, "glGenVertexArraysAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsVertexArrayAPPLE, "glIsVertexArrayAPPLE")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_APPLE_vertex_array_range() - { - if(!extIsSupported("GL_APPLE_vertex_array_range")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glVertexArrayRangeAPPLE, "glVertexArrayRangeAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFlushVertexArrayRangeAPPLE, "glFlushVertexArrayRangeAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glVertexArrayParameteriAPPLE, "glVertexArrayParameteriAPPLE")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_APPLE_ycbcr_422() - { - if(!extIsSupported("GL_APPLE_ycbcr_422")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_APPLE_flush_buffer_range() - { - if(!extIsSupported("GL_APPLE_flush_buffer_range")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glBufferParameteriAPPLE, "glBufferParameteriAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glFlushMappedBufferRangeAPPLE, "glFlushMappedBufferRangeAPPLE")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_APPLE_texture_range() - { - if(!extIsSupported("GL_APPLE_texture_range")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glTextureRangeAPPLE, "glTextureRangeAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetTexParameterPointervAPPLE, "glGetTexParameterPointervAPPLE")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_APPLE_float_pixels() - { - if(!extIsSupported("GL_APPLE_float_pixels")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_APPLE_vertex_program_evaluators() - { - if(!extIsSupported("GL_APPLE_vertex_program_evaluators")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glEnableVertexAttribAPPLE, "glEnableVertexAttribAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glDisableVertexAttribAPPLE, "glDisableVertexAttribAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glIsVertexAttribAPPLE, "glIsVertexAttribAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMapVertexAttrib1dAPPLE, "glMapVertexAttrib1dAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMapVertexAttrib1fAPPLE, "glMapVertexAttrib1fAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMapVertexAttrib2dAPPLE, "glMapVertexAttrib2dAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glMapVertexAttrib2fAPPLE, "glMapVertexAttrib2fAPPLE")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_APPLE_aux_depth_stencil() - { - if(!extIsSupported("GL_APPLE_aux_depth_stencil")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_APPLE_object_purgeable() - { - if(!extIsSupported("GL_APPLE_object_purgeable")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glObjectPurgeableAPPLE, "glObjectPurgeableAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glObjectUnpurgeableAPPLE, "glObjectUnpurgeableAPPLE")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGetObjectParameterivAPPLE, "glGetObjectParameterivAPPLE")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_APPLE_row_bytes() - { - if(!extIsSupported("GL_APPLE_row_bytes")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_APPLE_rgb_422() - { - if(!extIsSupported("GL_APPLE_rgb_422")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_SUNX) - { - GLExtensionState load_GL_SUNX_constant_data() - { - if(!extIsSupported("GL_SUNX_constant_data")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glFinishTextureSUNX, "glFinishTextureSUNX")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_SUN) - { - GLExtensionState load_GL_SUN_global_alpha() - { - if(!extIsSupported("GL_SUN_global_alpha")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glGlobalAlphaFactorbSUN, "glGlobalAlphaFactorbSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGlobalAlphaFactorsSUN, "glGlobalAlphaFactorsSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGlobalAlphaFactoriSUN, "glGlobalAlphaFactoriSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGlobalAlphaFactorfSUN, "glGlobalAlphaFactorfSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGlobalAlphaFactordSUN, "glGlobalAlphaFactordSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGlobalAlphaFactorubSUN, "glGlobalAlphaFactorubSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGlobalAlphaFactorusSUN, "glGlobalAlphaFactorusSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glGlobalAlphaFactoruiSUN, "glGlobalAlphaFactoruiSUN")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SUN_triangle_list() - { - if(!extIsSupported("GL_SUN_triangle_list")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glReplacementCodeuiSUN, "glReplacementCodeuiSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeusSUN, "glReplacementCodeusSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeubSUN, "glReplacementCodeubSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeuivSUN, "glReplacementCodeuivSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeusvSUN, "glReplacementCodeusvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeubvSUN, "glReplacementCodeubvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodePointerSUN, "glReplacementCodePointerSUN")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SUN_vertex() - { - if(!extIsSupported("GL_SUN_vertex")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glColor4ubVertex2fSUN, "glColor4ubVertex2fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColor4ubVertex2fvSUN, "glColor4ubVertex2fvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColor4ubVertex3fSUN, "glColor4ubVertex3fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColor4ubVertex3fvSUN, "glColor4ubVertex3fvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColor3fVertex3fSUN, "glColor3fVertex3fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColor3fVertex3fvSUN, "glColor3fVertex3fvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormal3fVertex3fSUN, "glNormal3fVertex3fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glNormal3fVertex3fvSUN, "glNormal3fVertex3fvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColor4fNormal3fVertex3fSUN, "glColor4fNormal3fVertex3fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glColor4fNormal3fVertex3fvSUN, "glColor4fNormal3fVertex3fvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord2fVertex3fSUN, "glTexCoord2fVertex3fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord2fVertex3fvSUN, "glTexCoord2fVertex3fvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord4fVertex4fSUN, "glTexCoord4fVertex4fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord4fVertex4fvSUN, "glTexCoord4fVertex4fvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord2fColor4ubVertex3fSUN, "glTexCoord2fColor4ubVertex3fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord2fColor4ubVertex3fvSUN, "glTexCoord2fColor4ubVertex3fvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord2fColor3fVertex3fSUN, "glTexCoord2fColor3fVertex3fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord2fColor3fVertex3fvSUN, "glTexCoord2fColor3fVertex3fvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord2fNormal3fVertex3fSUN, "glTexCoord2fNormal3fVertex3fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord2fNormal3fVertex3fvSUN, "glTexCoord2fNormal3fVertex3fvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord2fColor4fNormal3fVertex3fSUN, "glTexCoord2fColor4fNormal3fVertex3fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord2fColor4fNormal3fVertex3fvSUN, "glTexCoord2fColor4fNormal3fVertex3fvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord4fColor4fNormal3fVertex4fSUN, "glTexCoord4fColor4fNormal3fVertex4fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glTexCoord4fColor4fNormal3fVertex4fvSUN, "glTexCoord4fColor4fNormal3fVertex4fvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeuiVertex3fSUN, "glReplacementCodeuiVertex3fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeuiVertex3fvSUN, "glReplacementCodeuiVertex3fvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeuiColor4ubVertex3fSUN, "glReplacementCodeuiColor4ubVertex3fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeuiColor4ubVertex3fvSUN, "glReplacementCodeuiColor4ubVertex3fvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeuiColor3fVertex3fSUN, "glReplacementCodeuiColor3fVertex3fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeuiColor3fVertex3fvSUN, "glReplacementCodeuiColor3fVertex3fvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeuiNormal3fVertex3fSUN, "glReplacementCodeuiNormal3fVertex3fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeuiNormal3fVertex3fvSUN, "glReplacementCodeuiNormal3fVertex3fvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeuiColor4fNormal3fVertex3fSUN, "glReplacementCodeuiColor4fNormal3fVertex3fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeuiColor4fNormal3fVertex3fvSUN, "glReplacementCodeuiColor4fNormal3fVertex3fvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeuiTexCoord2fVertex3fSUN, "glReplacementCodeuiTexCoord2fVertex3fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeuiTexCoord2fVertex3fvSUN, "glReplacementCodeuiTexCoord2fVertex3fvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN, "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN, "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN, "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN, "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SUN_convolution_border_modes() - { - if(!extIsSupported("GL_SUN_convolution_border_modes")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SUN_mesh_array() - { - if(!extIsSupported("GL_SUN_mesh_array")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glDrawMeshArraysSUN, "glDrawMeshArraysSUN")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_SUN_slice_accum() - { - if(!extIsSupported("GL_SUN_slice_accum")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_INGR) - { - GLExtensionState load_GL_INGR_color_clamp() - { - if(!extIsSupported("GL_INGR_color_clamp")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_INGR_interlace_read() - { - if(!extIsSupported("GL_INGR_interlace_read")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_MESA) - { - GLExtensionState load_GL_MESA_resize_buffers() - { - if(!extIsSupported("GL_MESA_resize_buffers")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glResizeBuffersMESA, "glResizeBuffersMESA")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_MESA_window_pos() - { - if(!extIsSupported("GL_MESA_window_pos")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glWindowPos2dMESA, "glWindowPos2dMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos2dvMESA, "glWindowPos2dvMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos2fMESA, "glWindowPos2fMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos2fvMESA, "glWindowPos2fvMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos2iMESA, "glWindowPos2iMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos2ivMESA, "glWindowPos2ivMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos2sMESA, "glWindowPos2sMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos2svMESA, "glWindowPos2svMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos3dMESA, "glWindowPos3dMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos3dvMESA, "glWindowPos3dvMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos3fMESA, "glWindowPos3fMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos3fvMESA, "glWindowPos3fvMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos3iMESA, "glWindowPos3iMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos3ivMESA, "glWindowPos3ivMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos3sMESA, "glWindowPos3sMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos3svMESA, "glWindowPos3svMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos4dMESA, "glWindowPos4dMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos4dvMESA, "glWindowPos4dvMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos4fMESA, "glWindowPos4fMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos4fvMESA, "glWindowPos4fvMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos4iMESA, "glWindowPos4iMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos4ivMESA, "glWindowPos4ivMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos4sMESA, "glWindowPos4sMESA")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&glWindowPos4svMESA, "glWindowPos4svMESA")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_MESA_pack_invert() - { - if(!extIsSupported("GL_MESA_pack_invert")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_MESA_ycbcr_texture() - { - if(!extIsSupported("GL_MESA_ycbcr_texture")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_3DFX) - { - GLExtensionState load_GL_3DFX_texture_compression_FXT1() - { - if(!extIsSupported("GL_3DFX_texture_compression_FXT1")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_3DFX_multisample() - { - if(!extIsSupported("GL_3DFX_multisample")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_3DFX_tbuffer() - { - if(!extIsSupported("GL_3DFX_tbuffer")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glTbufferMask3DFX, "glTbufferMask3DFX")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_OML) - { - GLExtensionState load_GL_OML_interlace() - { - if(!extIsSupported("GL_OML_interlace")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_OML_subsample() - { - if(!extIsSupported("GL_OML_subsample")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_OML_resample() - { - if(!extIsSupported("GL_OML_resample")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_S3) - { - GLExtensionState load_GL_S3_s3tc() - { - if(!extIsSupported("GL_S3_s3tc")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_OES) - { - GLExtensionState load_GL_OES_read_format() - { - if(!extIsSupported("GL_OES_read_format")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_GREMEDY) - { - GLExtensionState load_GL_GREMEDY_string_marker() - { - if(!extIsSupported("GL_GREMEDY_string_marker")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glStringMarkerGREMEDY, "glStringMarkerGREMEDY")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_GL_GREMEDY_frame_terminator() - { - if(!extIsSupported("GL_GREMEDY_frame_terminator")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&glFrameTerminatorGREMEDY, "glFrameTerminatorGREMEDY")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_MESAX) - { - GLExtensionState load_GL_MESAX_texture_stack() - { - if(!extIsSupported("GL_MESAX_texture_stack")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - } - - version(Windows) - { - // These two functions should always be compiled in. - GLExtensionState load_WGL_ARB_extensions_string() - { - // don't bother checking for support, as it probably won't even be reported by the driver - if(!bindExtFunc(cast(void**)&wglGetExtensionsStringARB, "wglGetExtensionsStringARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_EXT_extensions_string() - { - if(!extIsSupported("WGL_EXT_extensions_string")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglGetExtensionsStringEXT, "wglGetExtensionsStringEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - version(DerelictGL_ARB) - { - GLExtensionState load_WGL_ARB_buffer_region() - { - if(!extIsSupported("WGL_ARB_buffer_region")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglCreateBufferRegionARB, "wglCreateBufferRegionARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglDeleteBufferRegionARB, "wglDeleteBufferRegionARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglSaveBufferRegionARB, "wglSaveBufferRegionARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglRestoreBufferRegionARB, "wglRestoreBufferRegionARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_ARB_multisample() - { - if(!extIsSupported("WGL_ARB_multisample")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_ARB_pixel_format() - { - if(!extIsSupported("WGL_ARB_pixel_format")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglGetPixelFormatAttribivARB, "wglGetPixelFormatAttribivARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetPixelFormatAttribfvARB, "wglGetPixelFormatAttribfvARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglChoosePixelFormatARB, "wglChoosePixelFormatARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_ARB_make_current_read() - { - if(!extIsSupported("WGL_ARB_make_current_read")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglMakeContextCurrentARB, "wglMakeContextCurrentARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetCurrentReadDCARB, "wglGetCurrentReadDCARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_ARB_pbuffer() - { - if(!extIsSupported("WGL_ARB_pbuffer")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglCreatePbufferARB, "wglCreatePbufferARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetPbufferDCARB, "wglGetPbufferDCARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglReleasePbufferDCARB, "wglReleasePbufferDCARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglDestroyPbufferARB, "wglDestroyPbufferARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglQueryPbufferARB, "wglQueryPbufferARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_ARB_render_texture() - { - if(!extIsSupported("WGL_ARB_render_texture")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglBindTexImageARB, "wglBindTexImageARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglReleaseTexImageARB, "wglReleaseTexImageARB")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglSetPbufferAttribARB, "wglSetPbufferAttribARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_ARB_pixel_format_float() - { - if(!extIsSupported("WGL_ARB_pixel_format_float")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_ARB_create_context() - { - if(!extIsSupported("WGL_ARB_create_context")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglCreateContextAttribsARB, "wglCreateContextAttribsARB")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_ARB_framebuffer_sRGB() - { - if(!extIsSupported("WGL_ARB_framebuffer_sRGB")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_ARB_create_context_profile() - { - if(!extIsSupported("WGL_ARB_create_context_profile")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_EXT) - { - GLExtensionState load_WGL_EXT_depth_float() - { - if(!extIsSupported("WGL_EXT_depth_float")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_EXT_display_color_table() - { - if(!extIsSupported("WGL_EXT_display_color_table")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglBindDisplayColorTableEXT, "wglBindDisplayColorTableEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglCreateDisplayColorTableEXT, "wglCreateDisplayColorTableEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglDestroyDisplayColorTableEXT, "wglDestroyDisplayColorTableEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglLoadDisplayColorTableEXT, "wglLoadDisplayColorTableEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_EXT_framebuffer_sRGB() - { - if(!extIsSupported("WGL_EXT_framebuffer_sRGB")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_EXT_make_current_read() - { - if(!extIsSupported("WGL_EXT_make_current_read")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglMakeContextCurrentEXT, "wglMakeContextCurrentEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetCurrentReadDCEXT, "wglGetCurrentReadDCEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_EXT_multisample() - { - if(!extIsSupported("WGL_EXT_multisample")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_EXT_pbuffer() - { - if(!extIsSupported("WGL_EXT_pbuffer")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglCreatePbufferEXT, "wglCreatePbufferEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglDestroyPbufferEXT, "wglDestroyPbufferEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetPbufferDCEXT, "wglGetPbufferDCEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglQueryPbufferEXT, "wglQueryPbufferEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglReleasePbufferDCEXT, "wglReleasePbufferDCEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_EXT_pixel_format() - { - if(!extIsSupported("WGL_EXT_pixel_format")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglChoosePixelFormatEXT, "wglChoosePixelFormatEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetPixelFormatAttribfvEXT, "wglGetPixelFormatAttribfvEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetPixelFormatAttribivEXT, "wglGetPixelFormatAttribivEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_EXT_pixel_format_packed_float() - { - if(!extIsSupported("WGL_EXT_pixel_format_packed_float")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_EXT_swap_control() - { - if(!extIsSupported("WGL_EXT_swap_control")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglGetSwapIntervalEXT, "wglGetSwapIntervalEXT")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglSwapIntervalEXT, "wglSwapIntervalEXT")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_NV) - { - GLExtensionState load_WGL_NV_copy_image() - { - if(!extIsSupported("WGL_NV_copy_image")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglCopyImageSubDataNV, "wglCopyImageSubDataNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_NV_float_buffer() - { - if(!extIsSupported("WGL_NV_float_buffer")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_NV_gpu_affinity() - { - if(!extIsSupported("WGL_NV_gpu_affinity")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglCreateAffinityDCNV, "wglCreateAffinityDCNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglDeleteDCNV, "wglDeleteDCNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglEnumGpuDevicesNV, "wglEnumGpuDevicesNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglEnumGpusFromAffinityDCNV, "wglEnumGpusFromAffinityDCNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglEnumGpusNV, "wglEnumGpusNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_NV_multisample_coverage() - { - if(!extIsSupported("WGL_NV_multisample_coverage")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_NV_present_video() - { - if(!extIsSupported("WGL_NV_present_video")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglBindVideoDeviceNV, "wglBindVideoDeviceNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglEnumerateVideoDevicesNV, "wglEnumerateVideoDevicesNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglQueryCurrentContextNV, "wglQueryCurrentContextNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_NV_render_depth_texture() - { - if(!extIsSupported("WGL_NV_render_depth_texture")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_NV_render_texture_rectangle() - { - if(!extIsSupported("WGL_NV_render_texture_rectangle")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_NV_swap_group() - { - if(!extIsSupported("WGL_NV_swap_group")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglBindSwapBarrierNV, "wglBindSwapBarrierNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglJoinSwapGroupNV, "wglJoinSwapGroupNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglQueryFrameCountNV, "wglQueryFrameCountNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglQueryMaxSwapGroupsNV, "wglQueryMaxSwapGroupsNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglQuerySwapGroupNV, "wglQuerySwapGroupNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglResetFrameCountNV, "wglResetFrameCountNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_NV_vertex_array_range() - { - if(!extIsSupported("WGL_NV_vertex_array_range")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglAllocateMemoryNV, "wglAllocateMemoryNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglFreeMemoryNV, "wglFreeMemoryNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_NV_video_output() - { - if(!extIsSupported("WGL_NV_video_output")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglBindVideoImageNV, "wglBindVideoImageNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetVideoDeviceNV, "wglGetVideoDeviceNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetVideoInfoNV, "wglGetVideoInfoNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglReleaseVideoDeviceNV, "wglReleaseVideoDeviceNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglReleaseVideoImageNV, "wglReleaseVideoImageNV")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglSendPbufferToVideoNV, "wglSendPbufferToVideoNV")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_ATI) - { - GLExtensionState load_WGL_ATI_pixel_format_float() - { - if(!extIsSupported("WGL_ATI_pixel_format_float")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_ATI_render_texture_rectangle() - { - if(!extIsSupported("WGL_ATI_render_texture_rectangle")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_AMD) - { - GLExtensionState load_WGL_AMD_gpu_association() - { - if(!extIsSupported("WGL_AMD_gpu_association")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglBlitContextFramebufferAMD, "wglBlitContextFramebufferAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglCreateAssociatedContextAMD, "wglCreateAssociatedContextAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglCreateAssociatedContextAttribsAMD, "wglCreateAssociatedContextAttribsAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglDeleteAssociatedContextAMD, "wglDeleteAssociatedContextAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetContextGPUIDAMD, "wglGetContextGPUIDAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetCurrentAssociatedContextAMD, "wglGetCurrentAssociatedContextAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetGPUIDsAMD, "wglGetGPUIDsAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetGPUInfoAMD, "wglGetGPUInfoAMD")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglMakeAssociatedContextCurrentAMD, "wglMakeAssociatedContextCurrentAMD")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_I3D) - { - GLExtensionState load_WGL_I3D_digital_video_control() - { - if(!extIsSupported("WGL_I3D_digital_video_control")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglGetDigitalVideoParametersI3D, "wglGetDigitalVideoParametersI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglSetDigitalVideoParametersI3D, "wglSetDigitalVideoParametersI3D")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_I3D_gamma() - { - if(!extIsSupported("WGL_I3D_gamma")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglGetGammaTableI3D, "wglGetGammaTableI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetGammaTableParametersI3D, "wglGetGammaTableParametersI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglSetGammaTableI3D, "wglSetGammaTableI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglSetGammaTableParametersI3D, "wglSetGammaTableParametersI3D")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_I3D_genlock() - { - if(!extIsSupported("WGL_I3D_genlock")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglDisableGenlockI3D, "wglDisableGenlockI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglEnableGenlockI3D, "wglEnableGenlockI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGenlockSampleRateI3D, "wglGenlockSampleRateI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGenlockSourceDelayI3D, "wglGenlockSourceDelayI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGenlockSourceEdgeI3D, "wglGenlockSourceEdgeI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGenlockSourceI3D, "wglGenlockSourceI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetGenlockSampleRateI3D, "wglGetGenlockSampleRateI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetGenlockSourceDelayI3D, "wglGetGenlockSourceDelayI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetGenlockSourceEdgeI3D, "wglGetGenlockSourceEdgeI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetGenlockSourceI3D, "wglGetGenlockSourceI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglIsEnabledGenlockI3D, "wglIsEnabledGenlockI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglQueryGenlockMaxSourceDelayI3D, "wglQueryGenlockMaxSourceDelayI3D")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_I3D_image_buffer() - { - if(!extIsSupported("WGL_I3D_image_buffer")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglAssociateImageBufferEventsI3D, "wglAssociateImageBufferEventsI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglCreateImageBufferI3D, "wglCreateImageBufferI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglDestroyImageBufferI3D, "wglDestroyImageBufferI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglReleaseImageBufferEventsI3D, "wglReleaseImageBufferEventsI3D")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_I3D_swap_frame_lock() - { - if(!extIsSupported("WGL_I3D_swap_frame_lock")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglDisableFrameLockI3D, "wglDisableFrameLockI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglEnableFrameLockI3D, "wglEnableFrameLockI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglIsEnabledFrameLockI3D, "wglIsEnabledFrameLockI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglQueryFrameLockMasterI3D, "wglQueryFrameLockMasterI3D")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - - GLExtensionState load_WGL_I3D_swap_frame_usage() - { - if(!extIsSupported("WGL_I3D_swap_frame_usage")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglBeginFrameTrackingI3D, "wglBeginFrameTrackingI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglEndFrameTrackingI3D, "wglEndFrameTrackingI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetFrameUsageI3D, "wglGetFrameUsageI3D")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglQueryFrameTrackingI3D, "wglQueryFrameTrackingI3D")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_OML) - { - GLExtensionState load_WGL_OML_sync_control() - { - if(!extIsSupported("WGL_OML_sync_control")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglGetMscRateOML, "wglGetMscRateOML")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglGetSyncValuesOML, "wglGetSyncValuesOML")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglSwapBuffersMscOML, "wglSwapBuffersMscOML")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglSwapLayerBuffersMscOML, "wglSwapLayerBuffersMscOML")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglWaitForMscOML, "wglWaitForMscOML")) - return GLExtensionState.FailedToLoad; - if(!bindExtFunc(cast(void**)&wglWaitForSbcOML, "wglWaitForSbcOML")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_3DFX) - { - GLExtensionState load_WGL_3DFX_multisample() - { - if(!extIsSupported("WGL_3DFX_multisample")) - return GLExtensionState.DriverUnsupported; - return GLExtensionState.Loaded; - } - } - - version(DerelictGL_3DL) - { - GLExtensionState load_WGL_3DL_stereo_control() - { - if(!extIsSupported("WGL_3DL_stereo_control")) - return GLExtensionState.DriverUnsupported; - if(!bindExtFunc(cast(void**)&wglSetStereoEmitterState3DL, "wglSetStereoEmitterState3DL")) - return GLExtensionState.FailedToLoad; - return GLExtensionState.Loaded; - } - } - } -} + + import derelict.opengl.extfuncs; + import derelict.opengl.gltypes; + import derelict.opengl.glfuncs; + import derelict.util.compat; + import derelict.util.exception; + + version (darwin) version = CGL; + else version (OSX) version = CGL; + else version (linux) version = GLX; + else version (freebsd) version = GLX; + else version (FreeBSD) version = GLX; + + version(Windows) + { + import derelict.opengl.wgl; + import derelict.util.wintypes; + } + + version(GLX) + { + import derelict.opengl.glx; + } + + version (CGL) + { + import derelict.opengl.cgl; + import derelict.opengl.gl; + } +} + +version = DerelictGL_ALL; + +version(DerelictGL_ALL) +{ + version = DerelictGL_ARB; + version = DerelictGL_EXT; + version = DerelictGL_NV; + version = DerelictGL_ATI; + version = DerelictGL_AMD; + version = DerelictGL_SGI; + version = DerelictGL_SGIS; + version = DerelictGL_SGIX; + version = DerelictGL_HP; + version = DerelictGL_PGI; + version = DerelictGL_IBM; + version = DerelictGL_WIN; + version = DerelictGL_INTEL; + version = DerelictGL_REND; + version = DerelictGL_APPLE; + version = DerelictGL_SUNX; + version = DerelictGL_SUN; + version = DerelictGL_INGR; + version = DerelictGL_MESA; + version = DerelictGL_3DFX; + version = DerelictGL_OML; + version = DerelictGL_S3; + version = DerelictGL_OES; + version = DerelictGL_GREMEDY; + version = DerelictGL_MESAX; + version = DerelictGL_I3D; + version = DerelictGL_3DL; +} + +private +{ + string extStr; + version(Windows) string winExtStr; + GLExtensionState[string] loaded; +} + +package +{ + void extLoadAll() + { + extLoadCommon(); + extLoadPlatform(); + } + + string[] getLoadedExtensionNames() + { + auto keys = loaded.keys; + string[] ret; + foreach(key; keys) + { + if(GLExtensionState.Loaded == loaded[key]) + ret ~= key; + } + sort(ret); //ret.sort; + return ret; + } + + string[] getNotLoadedExtensionNames() + { + auto keys = loaded.keys; + string[] ret; + foreach(key; keys) + { + GLExtensionState state = loaded[key]; + if(GLExtensionState.Loaded != state) + { + if(GLExtensionState.DriverUnsupported == state) + ret ~= key ~ " (Unsupported by Driver)"; + else + ret ~= key ~ " (Failed to Load)"; + } + } + sort(ret); //ret.sort; + return ret; + } + + bool extIsSupported(string extName) + { + if(extStr is null) extStr = toDString(glGetString(GL_EXTENSIONS)); + auto index = extStr.findStr(extName); + + bool verify(string s) + { + auto idx = index + extName.length; + if(idx >= s.length || s[idx] == ' ' || s[idx] == '\0') + return true; + return false; + } + + bool found; + if(index != -1) + found = verify(extStr); + version(Windows) + { + if(!found && winExtStr !is null) + { + index = winExtStr.findStr(extName); + if(index != -1) + found = verify(winExtStr); + } + } + return found; + } + + GLExtensionState extGetState(string extName) + { + GLExtensionState* state = (extName in loaded); + return (state !is null) ? *state : GLExtensionState.DerelictUnsupported; + } +} + +private +{ + void extLoadCommon() + { + version(DerelictGL_ARB) + { + loaded["GL_ARB_multitexture"] = load_GL_ARB_multitexture(); + loaded["GL_ARB_transpose_matrix"] = load_GL_ARB_transpose_matrix(); + loaded["GL_ARB_multisample"] = load_GL_ARB_multisample(); + loaded["GL_ARB_texture_env_add"] = load_GL_ARB_texture_env_add(); + loaded["GL_ARB_texture_cube_map"] = load_GL_ARB_texture_cube_map(); + loaded["GL_ARB_texture_compression"] = load_GL_ARB_texture_compression(); + loaded["GL_ARB_texture_border_clamp"] = load_GL_ARB_texture_border_clamp(); + loaded["GL_ARB_point_parameters"] = load_GL_ARB_point_parameters(); + loaded["GL_ARB_vertex_blend"] = load_GL_ARB_vertex_blend(); + loaded["GL_ARB_matrix_palette"] = load_GL_ARB_matrix_palette(); + loaded["GL_ARB_texture_env_combine"] = load_GL_ARB_texture_env_combine(); + loaded["GL_ARB_texture_env_crossbar"] = load_GL_ARB_texture_env_crossbar(); + loaded["GL_ARB_texture_env_dot3"] = load_GL_ARB_texture_env_dot3(); + loaded["GL_ARB_texture_mirrored_repeat"] = load_GL_ARB_texture_mirrored_repeat(); + loaded["GL_ARB_depth_texture"] = load_GL_ARB_depth_texture(); + loaded["GL_ARB_shadow"] = load_GL_ARB_shadow(); + loaded["GL_ARB_shadow_ambient"] = load_GL_ARB_shadow_ambient(); + loaded["GL_ARB_window_pos"] = load_GL_ARB_window_pos(); + loaded["GL_ARB_vertex_program"] = load_GL_ARB_vertex_program(); + loaded["GL_ARB_fragment_program"] = load_GL_ARB_fragment_program(); + loaded["GL_ARB_vertex_buffer_object"] = load_GL_ARB_vertex_buffer_object(); + loaded["GL_ARB_occlusion_query"] = load_GL_ARB_occlusion_query(); + loaded["GL_ARB_shader_objects"] = load_GL_ARB_shader_objects(); + loaded["GL_ARB_vertex_shader"] = load_GL_ARB_vertex_shader(); + loaded["GL_ARB_fragment_shader"] = load_GL_ARB_fragment_shader(); + loaded["GL_ARB_shading_language_100"] = load_GL_ARB_shading_language_100(); + loaded["GL_ARB_texture_non_power_of_two"] = load_GL_ARB_texture_non_power_of_two(); + loaded["GL_ARB_point_sprite"] = load_GL_ARB_point_sprite(); + loaded["GL_ARB_fragment_program_shadow"] = load_GL_ARB_fragment_program_shadow(); + loaded["GL_ARB_draw_buffers"] = load_GL_ARB_draw_buffers(); + loaded["GL_ARB_texture_rectangle"] = load_GL_ARB_texture_rectangle(); + loaded["GL_ARB_color_buffer_float"] = load_GL_ARB_color_buffer_float(); + loaded["GL_ARB_half_float_pixel"] = load_GL_ARB_half_float_pixel(); + loaded["GL_ARB_texture_float"] = load_GL_ARB_texture_float(); + loaded["GL_ARB_pixel_buffer_object"] = load_GL_ARB_pixel_buffer_object(); + loaded["GL_ARB_depth_buffer_float"] = load_GL_ARB_depth_buffer_float(); + loaded["GL_ARB_draw_instanced"] = load_GL_ARB_draw_instanced(); + loaded["GL_ARB_framebuffer_object"] = load_GL_ARB_framebuffer_object(); + loaded["GL_ARB_framebuffer_sRGB"] = load_GL_ARB_framebuffer_sRGB(); + loaded["GL_ARB_geometry_shader4"] = load_GL_ARB_geometry_shader4(); + loaded["GL_ARB_half_float_vertex"] = load_GL_ARB_half_float_vertex(); + loaded["GL_ARB_imaging"] = load_GL_ARB_imaging(); + loaded["GL_ARB_instanced_arrays"] = load_GL_ARB_instanced_arrays(); + loaded["GL_ARB_texture_buffer_object"] = load_GL_ARB_texture_buffer_object(); + loaded["GL_ARB_texture_compression_rgtc"] = load_GL_ARB_texture_compression_rgtc(); + loaded["GL_ARB_texture_rg"] = load_GL_ARB_texture_rg(); + loaded["GL_ARB_vertex_array_object"] = load_GL_ARB_vertex_array_object(); + loaded["GL_ARB_copy_buffer"] = load_GL_ARB_copy_buffer(); + loaded["GL_ARB_uniform_buffer_object"] = load_GL_ARB_uniform_buffer_object(); + loaded["GL_ARB_vertex_array_bgra"] = load_GL_ARB_vertex_array_bgra(); + loaded["GL_ARB_draw_elements_base_vertex"] = load_GL_ARB_draw_elements_base_vertex(); + loaded["GL_ARB_vertex_attrib_64bit"] = load_GL_ARB_vertex_attrib_64bit(); + loaded["GL_ARB_provoking_vertex"] = load_GL_ARB_provoking_vertex(); + loaded["GL_ARB_sync"] = load_GL_ARB_sync(); + loaded["GL_ARB_texture_multisample"] = load_GL_ARB_texture_multisample(); + loaded["GL_ARB_viewport_array"] = load_GL_ARB_viewport_array(); + loaded["GL_ARB_cl_event"] = load_GL_ARB_cl_event(); + loaded["GL_ARB_debug_output"] = load_GL_ARB_debug_output(); + loaded["GL_ARB_robustness"] = load_GL_ARB_robustness(); + loaded["GL_ARB_shader_stencil_export"] = load_GL_ARB_shader_stencil_export(); + loaded["GL_ARB_compatibility"] = load_GL_ARB_compatibility(); + loaded["GL_ARB_depth_clamp"] = load_GL_ARB_depth_clamp(); + loaded["GL_ARB_blend_func_extended"] = load_GL_ARB_blend_func_extended(); + loaded["GL_ARB_sampler_objects"] = load_GL_ARB_sampler_objects(); + loaded["GL_ARB_timer_query"] = load_GL_ARB_timer_query(); + } + + version(DerelictGL_EXT) + { + loaded["GL_EXT_abgr"] = load_GL_EXT_abgr(); + loaded["GL_EXT_blend_color"] = load_GL_EXT_blend_color(); + loaded["GL_EXT_polygon_offset"] = load_GL_EXT_polygon_offset(); + loaded["GL_EXT_texture"] = load_GL_EXT_texture(); + loaded["GL_EXT_texture3D"] = load_GL_EXT_texture3D(); + loaded["GL_EXT_subtexture"] = load_GL_EXT_subtexture(); + loaded["GL_EXT_copy_texture"] = load_GL_EXT_copy_texture(); + loaded["GL_EXT_histogram"] = load_GL_EXT_histogram(); + loaded["GL_EXT_convolution"] = load_GL_EXT_convolution(); + loaded["GL_EXT_cmyka"] = load_GL_EXT_cmyka(); + loaded["GL_EXT_texture_object"] = load_GL_EXT_texture_object(); + loaded["GL_EXT_packed_pixels"] = load_GL_EXT_packed_pixels(); + loaded["GL_EXT_rescale_normal"] = load_GL_EXT_rescale_normal(); + loaded["GL_EXT_vertex_array"] = load_GL_EXT_vertex_array(); + loaded["GL_EXT_misc_attribute"] = load_GL_EXT_misc_attribute(); + loaded["GL_EXT_blend_minmax"] = load_GL_EXT_blend_minmax(); + loaded["GL_EXT_blend_subtract"] = load_GL_EXT_blend_subtract(); + loaded["GL_EXT_blend_logic_op"] = load_GL_EXT_blend_logic_op(); + loaded["GL_EXT_point_parameters"] = load_GL_EXT_point_parameters(); + loaded["GL_EXT_color_subtable"] = load_GL_EXT_color_subtable(); + loaded["GL_EXT_paletted_texture"] = load_GL_EXT_paletted_texture(); + loaded["GL_EXT_clip_volume_hint"] = load_GL_EXT_clip_volume_hint(); + loaded["GL_EXT_index_texture"] = load_GL_EXT_index_texture(); + loaded["GL_EXT_index_material"] = load_GL_EXT_index_material(); + loaded["GL_EXT_index_func"] = load_GL_EXT_index_func(); + loaded["GL_EXT_index_array_formats"] = load_GL_EXT_index_array_formats(); + loaded["GL_EXT_compiled_vertex_array"] = load_GL_EXT_compiled_vertex_array(); + loaded["GL_EXT_cull_vertex"] = load_GL_EXT_cull_vertex(); + loaded["GL_EXT_draw_range_elements"] = load_GL_EXT_draw_range_elements(); + loaded["GL_EXT_light_texture"] = load_GL_EXT_light_texture(); + loaded["GL_EXT_bgra"] = load_GL_EXT_bgra(); + loaded["GL_EXT_pixel_transform"] = load_GL_EXT_pixel_transform(); + loaded["GL_EXT_pixel_transform_color_table"] = load_GL_EXT_pixel_transform_color_table(); + loaded["GL_EXT_shared_texture_palette"] = load_GL_EXT_shared_texture_palette(); + loaded["GL_EXT_separate_specular_color"] = load_GL_EXT_separate_specular_color(); + loaded["GL_EXT_secondary_color"] = load_GL_EXT_secondary_color(); + loaded["GL_EXT_texture_perturb_normal"] = load_GL_EXT_texture_perturb_normal(); + loaded["GL_EXT_multi_draw_arrays"] = load_GL_EXT_multi_draw_arrays(); + loaded["GL_EXT_fog_coord"] = load_GL_EXT_fog_coord(); + loaded["GL_EXT_coordinate_frame"] = load_GL_EXT_coordinate_frame(); + loaded["GL_EXT_texture_env_combine"] = load_GL_EXT_texture_env_combine(); + loaded["GL_EXT_blend_func_separate"] = load_GL_EXT_blend_func_separate(); + loaded["GL_EXT_stencil_wrap"] = load_GL_EXT_stencil_wrap(); + loaded["GL_EXT_422_pixels"] = load_GL_EXT_422_pixels(); + loaded["GL_EXT_texture_cube_map"] = load_GL_EXT_texture_cube_map(); + loaded["GL_EXT_texture_env_add"] = load_GL_EXT_texture_env_add(); + loaded["GL_EXT_texture_lod_bias"] = load_GL_EXT_texture_lod_bias(); + loaded["GL_EXT_texture_filter_anisotropic"] = load_GL_EXT_texture_filter_anisotropic(); + loaded["GL_EXT_vertex_weighting"] = load_GL_EXT_vertex_weighting(); + loaded["GL_EXT_texture_compression_s3tc"] = load_GL_EXT_texture_compression_s3tc(); + loaded["GL_EXT_multisample"] = load_GL_EXT_multisample(); + loaded["GL_EXT_texture_env_dot3"] = load_GL_EXT_texture_env_dot3(); + loaded["GL_EXT_vertex_shader"] = load_GL_EXT_vertex_shader(); + loaded["GL_EXT_shadow_funcs"] = load_GL_EXT_shadow_funcs(); + loaded["GL_EXT_stencil_two_side"] = load_GL_EXT_stencil_two_side(); + loaded["GL_EXT_depth_bounds_test"] = load_GL_EXT_depth_bounds_test(); + loaded["GL_EXT_texture_mirror_clamp"] = load_GL_EXT_texture_mirror_clamp(); + loaded["GL_EXT_blend_equation_separate"] = load_GL_EXT_blend_equation_separate(); + loaded["GL_EXT_pixel_buffer_object"] = load_GL_EXT_pixel_buffer_object(); + loaded["GL_EXT_framebuffer_object"] = load_GL_EXT_framebuffer_object(); + loaded["GL_EXT_packed_depth_stencil"] = load_GL_EXT_packed_depth_stencil(); + loaded["GL_EXT_stencil_clear_tag"] = load_GL_EXT_stencil_clear_tag(); + loaded["GL_EXT_texture_sRGB"] = load_GL_EXT_texture_sRGB(); + loaded["GL_EXT_framebuffer_blit"] = load_GL_EXT_framebuffer_blit(); + loaded["GL_EXT_framebuffer_multisample"] = load_GL_EXT_framebuffer_multisample(); + loaded["GL_EXT_timer_query"] = load_GL_EXT_timer_query(); + loaded["GL_EXT_gpu_program_parameters"] = load_GL_EXT_gpu_program_parameters(); + loaded["GL_EXT_geometry_shader4"] = load_GL_EXT_geometry_shader4(); + loaded["GL_EXT_gpu_shader4"] = load_GL_EXT_gpu_shader4(); + loaded["GL_EXT_draw_instanced"] = load_GL_EXT_draw_instanced(); + loaded["GL_EXT_packed_float"] = load_GL_EXT_packed_float(); + loaded["GL_EXT_texture_array"] = load_GL_EXT_texture_array(); + loaded["GL_EXT_texture_buffer_object"] = load_GL_EXT_texture_buffer_object(); + loaded["GL_EXT_texture_compression_latc"] = load_GL_EXT_texture_compression_latc(); + loaded["GL_EXT_texture_compression_rgtc"] = load_GL_EXT_texture_compression_rgtc(); + loaded["GL_EXT_texture_shared_exponent"] = load_GL_EXT_texture_shared_exponent(); + loaded["GL_EXT_framebuffer_sRGB"] = load_GL_EXT_framebuffer_sRGB(); + loaded["GL_EXT_draw_buffers2"] = load_GL_EXT_draw_buffers2(); + loaded["GL_EXT_bindable_uniform"] = load_GL_EXT_bindable_uniform(); + loaded["GL_EXT_texture_integer"] = load_GL_EXT_texture_integer(); + loaded["GL_EXT_transform_feedback"] = load_GL_EXT_transform_feedback(); + loaded["GL_EXT_direct_state_access"] = load_GL_EXT_direct_state_access(); + loaded["GL_EXT_vertex_array_bgra"] = load_GL_EXT_vertex_array_bgra(); + loaded["GL_EXT_texture_swizzle"] = load_GL_EXT_texture_swizzle(); + loaded["GL_EXT_provoking_vertex"] = load_GL_EXT_provoking_vertex(); + loaded["GL_EXT_texture_snorm"] = load_GL_EXT_texture_snorm(); + loaded["GL_EXT_separate_shader_objects"] = load_GL_EXT_separate_shader_objects(); + } + + version(DerelictGL_NV) + { + loaded["GL_NV_texgen_reflection"] = load_GL_NV_texgen_reflection(); + loaded["GL_NV_light_max_exponent"] = load_GL_NV_light_max_exponent(); + loaded["GL_NV_vertex_array_range"] = load_GL_NV_vertex_array_range(); + loaded["GL_NV_register_combiners"] = load_GL_NV_register_combiners(); + loaded["GL_NV_fog_distance"] = load_GL_NV_fog_distance(); + loaded["GL_NV_texgen_emboss"] = load_GL_NV_texgen_emboss(); + loaded["GL_NV_blend_square"] = load_GL_NV_blend_square(); + loaded["GL_NV_texture_env_combine4"] = load_GL_NV_texture_env_combine4(); + loaded["GL_NV_fence"] = load_GL_NV_fence(); + loaded["GL_NV_evaluators"] = load_GL_NV_evaluators(); + loaded["GL_NV_packed_depth_stencil"] = load_GL_NV_packed_depth_stencil(); + loaded["GL_NV_register_combiners2"] = load_GL_NV_register_combiners2(); + loaded["GL_NV_texture_compression_vtc"] = load_GL_NV_texture_compression_vtc(); + loaded["GL_NV_texture_rectangle"] = load_GL_NV_texture_rectangle(); + loaded["GL_NV_texture_shader"] = load_GL_NV_texture_shader(); + loaded["GL_NV_texture_shader2"] = load_GL_NV_texture_shader2(); + loaded["GL_NV_vertex_array_range2"] = load_GL_NV_vertex_array_range2(); + loaded["GL_NV_vertex_program"] = load_GL_NV_vertex_program(); + loaded["GL_NV_copy_depth_to_color"] = load_GL_NV_copy_depth_to_color(); + loaded["GL_NV_multisample_filter_hint"] = load_GL_NV_multisample_filter_hint(); + loaded["GL_NV_depth_clamp"] = load_GL_NV_depth_clamp(); + loaded["GL_NV_occlusion_query"] = load_GL_NV_occlusion_query(); + loaded["GL_NV_point_sprite"] = load_GL_NV_point_sprite(); + loaded["GL_NV_texture_shader3"] = load_GL_NV_texture_shader3(); + loaded["GL_NV_vertex_program1_1"] = load_GL_NV_vertex_program1_1(); + loaded["GL_NV_float_buffer"] = load_GL_NV_float_buffer(); + loaded["GL_NV_fragment_program"] = load_GL_NV_fragment_program(); + loaded["GL_NV_half_float"] = load_GL_NV_half_float(); + loaded["GL_NV_pixel_data_range"] = load_GL_NV_pixel_data_range(); + loaded["GL_NV_primitive_restart"] = load_GL_NV_primitive_restart(); + loaded["GL_NV_texture_expand_normal"] = load_GL_NV_texture_expand_normal(); + loaded["GL_NV_vertex_program2"] = load_GL_NV_vertex_program2(); + loaded["GL_NV_fragment_program_option"] = load_GL_NV_fragment_program_option(); + loaded["GL_NV_fragment_program2"] = load_GL_NV_fragment_program2(); + loaded["GL_NV_vertex_program2_option"] = load_GL_NV_vertex_program2_option(); + loaded["GL_NV_vertex_program3"] = load_GL_NV_vertex_program3(); + loaded["GL_NV_gpu_program4"] = load_GL_NV_gpu_program4(); + loaded["GL_NV_geometry_program4"] = load_GL_NV_geometry_program4(); + loaded["GL_NV_vertex_program4"] = load_GL_NV_vertex_program4(); + loaded["GL_NV_depth_buffer_float"] = load_GL_NV_depth_buffer_float(); + loaded["GL_NV_fragment_program4"] = load_GL_NV_fragment_program4(); + loaded["GL_NV_framebuffer_multisample_coverage"] = load_GL_NV_framebuffer_multisample_coverage(); + loaded["GL_NV_geometry_shader4"] = load_GL_NV_geometry_shader4(); + loaded["GL_NV_transform_feedback"] = load_GL_NV_transform_feedback(); + loaded["GL_NV_conditional_render"] = load_GL_NV_conditional_render(); + loaded["GL_NV_present_video"] = load_GL_NV_present_video(); + loaded["GL_NV_explicit_multisample"] = load_GL_NV_explicit_multisample(); + loaded["GL_NV_transform_feedback2"] = load_GL_NV_transform_feedback2(); + loaded["GL_NV_video_capture"] = load_GL_NV_video_capture(); + loaded["GL_NV_copy_image"] = load_GL_NV_copy_image(); + loaded["GL_NV_parameter_buffer_object2"] = load_GL_NV_parameter_buffer_object2(); + loaded["GL_NV_shader_buffer_load"] = load_GL_NV_shader_buffer_load(); + loaded["GL_NV_vertex_buffer_unified_memory"] = load_GL_NV_vertex_buffer_unified_memory(); + loaded["GL_NV_texture_barrier"] = load_GL_NV_texture_barrier(); + } + + version(DerelictGL_ATI) + { + loaded["GL_ATI_texture_mirror_once"] = load_GL_ATI_texture_mirror_once(); + loaded["GL_ATI_envmap_bumpmap"] = load_GL_ATI_envmap_bumpmap(); + loaded["GL_ATI_fragment_shader"] = load_GL_ATI_fragment_shader(); + loaded["GL_ATI_pn_triangles"] = load_GL_ATI_pn_triangles(); + loaded["GL_ATI_vertex_array_object"] = load_GL_ATI_vertex_array_object(); + loaded["GL_ATI_vertex_streams"] = load_GL_ATI_vertex_streams(); + loaded["GL_ATI_element_array"] = load_GL_ATI_element_array(); + loaded["GL_ATI_text_fragment_shader"] = load_GL_ATI_text_fragment_shader(); + loaded["GL_ATI_draw_buffers"] = load_GL_ATI_draw_buffers(); + loaded["GL_ATI_pixel_format_float"] = load_GL_ATI_pixel_format_float(); + loaded["GL_ATI_texture_env_combine3"] = load_GL_ATI_texture_env_combine3(); + loaded["GL_ATI_texture_float"] = load_GL_ATI_texture_float(); + loaded["GL_ATI_map_object_buffer"] = load_GL_ATI_map_object_buffer(); + loaded["GL_ATI_separate_stencil"] = load_GL_ATI_separate_stencil(); + loaded["GL_ATI_vertex_attrib_array_object"] = load_GL_ATI_vertex_attrib_array_object(); + loaded["GL_ATI_meminfo"] = load_GL_ATI_meminfo(); + } + + version(DerelictGL_AMD) + { + loaded["GL_AMD_performance_monitor"] = load_GL_AMD_performance_monitor(); + loaded["GL_AMD_texture_texture4"] = load_GL_AMD_texture_texture4(); + loaded["GL_AMD_vertex_shader_tesselator"] = load_GL_AMD_vertex_shader_tesselator(); + loaded["GL_AMD_draw_buffers_blend"] = load_GL_AMD_draw_buffers_blend(); + } + + version(DerelictGL_SGI) + { + loaded["GL_SGI_color_matrix"] = load_GL_SGI_color_matrix(); + loaded["GL_SGI_color_table"] = load_GL_SGI_color_table(); + loaded["GL_SGI_texture_color_table"] = load_GL_SGI_texture_color_table(); + } + + version(DerelictGL_SGIS) + { + loaded["GL_SGIS_texture_filter4"] = load_GL_SGIS_texture_filter4; + loaded["GL_SGIS_pixel_texture"] = load_GL_SGIS_pixel_texture(); + loaded["GL_SGIS_texture4D"] = load_GL_SGIS_texture4D(); + loaded["GL_SGIS_detail_texture"] = load_GL_SGIS_detail_texture(); + loaded["GL_SGIS_sharpen_texture"] = load_GL_SGIS_sharpen_texture(); + loaded["GL_SGIS_texture_lod"] = load_GL_SGIS_texture_lod(); + loaded["GL_SGIS_multisample"] = load_GL_SGIS_multisample(); + loaded["GL_SGIS_generate_mipmap"] = load_GL_SGIS_generate_mipmap(); + loaded["GL_SGIS_texture_edge_clamp"] = load_GL_SGIS_texture_edge_clamp(); + loaded["GL_SGIS_texture_border_clamp"] = load_GL_SGIS_texture_border_clamp(); + loaded["GL_SGIS_texture_select"] = load_GL_SGIS_texture_select(); + loaded["GL_SGIS_point_parameters"] = load_GL_SGIS_point_parameters(); + loaded["GL_SGIS_fog_function"] = load_GL_SGIS_fog_function(); + loaded["GL_SGIS_point_line_texgen"] = load_GL_SGIS_point_line_texgen(); + loaded["GL_SGIS_texture_color_mask"] = load_GL_SGIS_texture_color_mask(); + } + + version(DerelictGL_SGIX) + { + loaded["GL_SGIX_pixel_texture"] = load_GL_SGIX_pixel_texture(); + loaded["GL_SGIX_clipmap"] = load_GL_SGIX_clipmap(); + loaded["GL_SGIX_shadow"] = load_GL_SGIX_shadow(); + loaded["GL_SGIX_interlace"] = load_GL_SGIX_interlace(); + loaded["GL_SGIX_pixel_tiles"] = load_GL_SGIX_pixel_tiles(); + loaded["GL_SGIX_sprite"] = load_GL_SGIX_sprite(); + loaded["GL_SGIX_texture_multi_buffer"] = load_GL_SGIX_texture_multi_buffer(); + loaded["GL_SGIX_instruments"] = load_GL_SGIX_instruments(); + loaded["GL_SGIX_texture_scale_bias"] = load_GL_SGIX_texture_scale_bias(); + loaded["GL_SGIX_framezoom"] = load_GL_SGIX_framezoom(); + loaded["GL_SGIX_tag_sample_buffer"] = load_GL_SGIX_tag_sample_buffer(); + loaded["GL_SGIX_polynomial_ffd"] = load_GL_SGIX_polynomial_ffd(); + loaded["GL_SGIX_reference_plane"] = load_GL_SGIX_reference_plane(); + loaded["GL_SGIX_flush_raster"] = load_GL_SGIX_flush_raster(); + loaded["GL_SGIX_depth_texture"] = load_GL_SGIX_depth_texture(); + loaded["GL_SGIX_fog_offset"] = load_GL_SGIX_fog_offset(); + loaded["GL_SGIX_texture_add_env"] = load_GL_SGIX_texture_add_env(); + loaded["GL_SGIX_list_priority"] = load_GL_SGIX_list_priority(); + loaded["GL_SGIX_ir_instrument1"] = load_GL_SGIX_ir_instrument1(); + loaded["GL_SGIX_calligraphic_fragment"] = load_GL_SGIX_calligraphic_fragment(); + loaded["GL_SGIX_texture_lod_bias"] = load_GL_SGIX_texture_lod_bias(); + loaded["GL_SGIX_shadow_ambient"] = load_GL_SGIX_shadow_ambient(); + loaded["GL_SGIX_ycrcb"] = load_GL_SGIX_ycrcb(); + loaded["GL_SGIX_fragment_lighting"] = load_GL_SGIX_fragment_lighting(); + loaded["GL_SGIX_blend_alpha_minmax"] = load_GL_SGIX_blend_alpha_minmax(); + loaded["GL_SGIX_impact_pixel_texture"] = load_GL_SGIX_impact_pixel_texture(); + loaded["GL_SGIX_async"] = load_GL_SGIX_async(); + loaded["GL_SGIX_async_pixel"] = load_GL_SGIX_async_pixel(); + loaded["GL_SGIX_async_histogram"] = load_GL_SGIX_async_histogram(); + loaded["GL_SGIX_fog_scale"] = load_GL_SGIX_fog_scale(); + loaded["GL_SGIX_subsample"] = load_GL_SGIX_subsample(); + loaded["GL_SGIX_ycrcb_subsample"] = load_GL_SGIX_ycrcb_subsample(); + loaded["GL_SGIX_ycrcba"] = load_GL_SGIX_ycrcba(); + loaded["GL_SGIX_depth_pass_instrument"] = load_GL_SGIX_depth_pass_instrument(); + loaded["GL_SGIX_vertex_preclip"] = load_GL_SGIX_vertex_preclip(); + loaded["GL_SGIX_convolution_accuracy"] = load_GL_SGIX_convolution_accuracy(); + loaded["GL_SGIX_resample"] = load_GL_SGIX_resample(); + loaded["GL_SGIX_texture_coordinate_clamp"] = load_GL_SGIX_texture_coordinate_clamp(); + loaded["GL_SGIX_scalebias_hint"] = load_GL_SGIX_scalebias_hint(); + + } + + version(DerelictGL_HP) + { + loaded["GL_HP_image_transform"] = load_GL_HP_image_transform(); + loaded["GL_HP_convolution_border_modes"] = load_GL_HP_convolution_border_modes(); + loaded["GL_HP_texture_lighting"] = load_GL_HP_texture_lighting(); + loaded["GL_HP_occlusion_test"] = load_GL_HP_occlusion_test(); + } + + version(DerelictGL_PGI) + { + loaded["GL_PGI_vertex_hints"] = load_GL_PGI_vertex_hints(); + loaded["GL_PGI_misc_hints"] = load_GL_PGI_misc_hints(); + } + + version(DerelictGL_IBM) + { + loaded["GL_IBM_rasterpos_clip"] = load_GL_IBM_rasterpos_clip(); + loaded["GL_IBM_cull_vertex"] = load_GL_IBM_cull_vertex(); + loaded["GL_IBM_multimode_draw_arrays"] = load_GL_IBM_multimode_draw_arrays(); + loaded["GL_IBM_vertex_array_lists"] = load_GL_IBM_vertex_array_lists(); + loaded["GL_IBM_texture_mirrored_repeat"] = load_GL_IBM_texture_mirrored_repeat(); + } + + version(DerelictGL_WIN) + { + loaded["GL_WIN_phong_shading"] = load_GL_WIN_phong_shading(); + loaded["GL_WIN_specular_fog"] = load_GL_WIN_specular_fog(); + } + + version(DerelictGL_INTEL) + { + loaded["GL_INTEL_parallel_arrays"] = load_GL_INTEL_parallel_arrays(); + } + + version(DerelictGL_REND) + { + loaded["GL_REND_screen_coordinates"] = load_GL_REND_screen_coordinates(); + } + + version(DerelictGL_APPLE) + { + loaded["GL_APPLE_specular_vector"] = load_GL_APPLE_specular_vector(); + loaded["GL_APPLE_transform_hint"] = load_GL_APPLE_transform_hint(); + loaded["GL_APPLE_client_storage"] = load_GL_APPLE_client_storage(); + loaded["GL_APPLE_element_array"] = load_GL_APPLE_element_array(); + loaded["GL_APPLE_fence"] = load_GL_APPLE_fence(); + loaded["GL_APPLE_vertex_array_object"] = load_GL_APPLE_vertex_array_object(); + loaded["GL_APPLE_vertex_array_range"] = load_GL_APPLE_vertex_array_range(); + loaded["GL_APPLE_ycbcr_422"] = load_GL_APPLE_ycbcr_422(); + loaded["GL_APPLE_flush_buffer_range"] = load_GL_APPLE_flush_buffer_range(); + loaded["GL_APPLE_texture_range"] = load_GL_APPLE_texture_range(); + loaded["GL_APPLE_float_pixels"] = load_GL_APPLE_float_pixels(); + loaded["GL_APPLE_vertex_program_evaluators"] = load_GL_APPLE_vertex_program_evaluators(); + loaded["GL_APPLE_aux_depth_stencil"] = load_GL_APPLE_aux_depth_stencil(); + loaded["GL_APPLE_object_purgeable"] = load_GL_APPLE_object_purgeable(); + loaded["GL_APPLE_row_bytes"] = load_GL_APPLE_row_bytes(); + loaded["GL_APPLE_rgb_422"] = load_GL_APPLE_rgb_422(); + } + + version(DerelictGL_SUNX) + { + loaded["GL_SUNX_constant_data"] = load_GL_SUNX_constant_data(); + } + + version(DerelictGL_SUN) + { + loaded["GL_SUN_global_alpha"] = load_GL_SUN_global_alpha(); + loaded["GL_SUN_triangle_list"] = load_GL_SUN_triangle_list(); + loaded["GL_SUN_vertex"] = load_GL_SUN_vertex(); + loaded["GL_SUN_convolution_border_modes"] = load_GL_SUN_convolution_border_modes(); + loaded["GL_SUN_mesh_array"] = load_GL_SUN_mesh_array(); + loaded["GL_SUN_slice_accum"] = load_GL_SUN_slice_accum(); + } + + version(DerelictGL_INGR) + { + loaded["GL_INGR_color_clamp"] = load_GL_INGR_color_clamp(); + loaded["GL_INGR_interlace_read"] = load_GL_INGR_interlace_read(); + } + + version(DerelictGL_MESA) + { + loaded["GL_MESA_resize_buffers"] = load_GL_MESA_resize_buffers(); + loaded["GL_MESA_window_pos"] = load_GL_MESA_window_pos(); + loaded["GL_MESA_pack_invert"] = load_GL_MESA_pack_invert(); + loaded["GL_MESA_ycbcr_texture"] = load_GL_MESA_ycbcr_texture(); + } + + version(DerelictGL_3DFX) + { + loaded["GL_3DFX_texture_compression_FXT1"] = load_GL_3DFX_texture_compression_FXT1(); + loaded["GL_3DFX_multisample"] = load_GL_3DFX_multisample(); + loaded["GL_3DFX_tbuffer"] = load_GL_3DFX_tbuffer(); + } + + version(DerelictGL_OML) + { + loaded["GL_OML_interlace"] = load_GL_OML_interlace(); + loaded["GL_OML_subsample"] = load_GL_OML_subsample(); + loaded["GL_OML_resample"] = load_GL_OML_resample(); + } + + version(DerelictGL_S3) + { + loaded["GL_S3_s3tc"] = load_GL_S3_s3tc(); + } + + version(DerelictGL_OES) + { + loaded["GL_OES_read_format"] = load_GL_OES_read_format(); + } + + version(DerelictGL_GREMEDY) + { + loaded["GL_GREMEDY_string_marker"] = load_GL_GREMEDY_string_marker(); + loaded["GL_GREMEDY_frame_terminator"] = load_GL_GREMEDY_frame_terminator(); + } + + version(DerelictGL_MESAX) + { + loaded["GL_MESAX_texture_stack"] = load_GL_MESAX_texture_stack(); + } + } + + void extLoadPlatform() + { + version (Windows) + { + // wgl extensions (mostly) all rely on WGL_ARB_extensions_string or WGL_EXT_extensions_string, + // so load them first and always, regardless of whether or not DerelictGL_ARB/EXT is active. + loaded["WGL_ARB_extensions_string"] = load_WGL_ARB_extensions_string(); + loaded["WGL_EXT_extensions_string"] = load_WGL_EXT_extensions_string(); + + // load the wgl extensions string + if(wglGetExtensionsStringARB !is null) + { + HDC dc = wglGetCurrentDC(); + if(dc !is null) + winExtStr = toDString(wglGetExtensionsStringARB(dc)); + else + throw new DerelictException("Cannot load WGL extensions: No valid Device Context!"); + } + else if(wglGetExtensionsStringEXT !is null) + { + winExtStr = toDString(wglGetExtensionsStringEXT()); + } + + if(winExtStr is null || winExtStr == "") + return; + + // now load the other WGL extensions + version(DerelictGL_ARB) + { + loaded["WGL_ARB_buffer_region"] = load_WGL_ARB_buffer_region(); + loaded["WGL_ARB_multisample"] = load_WGL_ARB_multisample(); + loaded["WGL_ARB_pixel_format"] = load_WGL_ARB_pixel_format(); + loaded["WGL_ARB_make_current_read"] = load_WGL_ARB_make_current_read(); + loaded["WGL_ARB_pbuffer"] = load_WGL_ARB_pbuffer(); + loaded["WGL_ARB_render_texture"] = load_WGL_ARB_render_texture(); + loaded["WGL_ARB_pixel_format_float"] = load_WGL_ARB_pixel_format_float(); + loaded["WGL_ARB_create_context"] = load_WGL_ARB_create_context(); + loaded["WGL_ARB_create_context_profile"] = load_WGL_ARB_create_context_profile(); + loaded["WGL_ARB_framebuffer_sRGB"] = load_WGL_ARB_framebuffer_sRGB(); + } + + version(DerelictGL_EXT) + { + loaded["WGL_EXT_depth_float"] = load_WGL_EXT_depth_float(); + loaded["WGL_EXT_display_color_table"] = load_WGL_EXT_display_color_table(); + loaded["WGL_EXT_framebuffer_sRGB"] = load_WGL_EXT_framebuffer_sRGB(); + loaded["WGL_EXT_make_current_read"] = load_WGL_EXT_make_current_read(); + loaded["WGL_EXT_multisample"] = load_WGL_EXT_multisample(); + loaded["WGL_EXT_pbuffer"] = load_WGL_EXT_pbuffer(); + loaded["WGL_EXT_pixel_format"] = load_WGL_EXT_pixel_format(); + loaded["WGL_EXT_pixel_format_packed_float"] = load_WGL_EXT_pixel_format_packed_float(); + loaded["WGL_EXT_swap_control"] = load_WGL_EXT_swap_control(); + } + + version(DerelictGL_NV) + { + loaded["WGL_NV_copy_image"] = load_WGL_NV_copy_image(); + loaded["WGL_NV_float_buffer"] = load_WGL_NV_float_buffer(); + loaded["WGL_NV_gpu_affinity"] = load_WGL_NV_gpu_affinity(); + loaded["WGL_NV_multisample_coverage"] = load_WGL_NV_multisample_coverage(); + loaded["WGL_NV_present_video"] = load_WGL_NV_present_video(); + loaded["WGL_NV_render_depth_texture"] = load_WGL_NV_render_depth_texture(); + loaded["WGL_NV_render_texture_rectangle"] = load_WGL_NV_render_texture_rectangle(); + loaded["WGL_NV_swap_group"] = load_WGL_NV_swap_group(); + loaded["WGL_NV_vertex_array_range"] = load_WGL_NV_vertex_array_range(); + loaded["WGL_NV_video_output"] = load_WGL_NV_video_output(); + } + + version(DerelictGL_ATI) + { + loaded["WGL_ATI_pixel_format_float"] = load_WGL_ATI_pixel_format_float(); + loaded["WGL_ATI_render_texture_rectangle"] = load_WGL_ATI_render_texture_rectangle(); + } + + version(DerelictGL_AMD) + { + loaded["WGL_AMD_gpu_association"] = load_WGL_AMD_gpu_association(); + } + + version(DerelictGL_I3D) + { + loaded["WGL_I3D_digital_video_control"] = load_WGL_I3D_digital_video_control(); + loaded["WGL_I3D_gamma"] = load_WGL_I3D_gamma(); + loaded["WGL_I3D_genlock"] = load_WGL_I3D_genlock(); + loaded["WGL_I3D_image_buffer"] = load_WGL_I3D_image_buffer(); + loaded["WGL_I3D_swap_frame_lock"] = load_WGL_I3D_swap_frame_lock(); + loaded["WGL_I3D_swap_frame_usage"] = load_WGL_I3D_swap_frame_usage(); + } + + version(DerelictGL_OML) + { + loaded["WGL_OML_sync_control"] = load_WGL_OML_sync_control(); + } + + version(DerelictGL_3DFX) + { + loaded["WGL_3DFX_multisample"] = load_WGL_3DFX_multisample(); + } + + version(DerelictGL_3DL) + { + loaded["WGL_3DL_stereo_control"] = load_WGL_3DL_stereo_control(); + } + } + } + + bool bindExtFunc(void** ptr, string funcName) + { + version(CGL) + { + debug bool doThrow = true; + else bool doThrow = false; + + DerelictGL.bindExtendedFunc(ptr, funcName, doThrow); + + return (*ptr !is null); + } + + else + { + *ptr = loadGLSymbol(funcName); + return (*ptr !is null); + } + } + + version(DerelictGL_ARB) + { + GLExtensionState load_GL_ARB_multitexture() + { + if(!extIsSupported("GL_ARB_multitexture")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glActiveTextureARB, "glActiveTextureARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glClientActiveTextureARB, "glClientActiveTextureARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord1dARB, "glMultiTexCoord1dARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord1dvARB, "glMultiTexCoord1dvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord1fARB, "glMultiTexCoord1fARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord1fvARB, "glMultiTexCoord1fvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord1iARB, "glMultiTexCoord1iARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord1ivARB, "glMultiTexCoord1ivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord1sARB, "glMultiTexCoord1sARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord1svARB, "glMultiTexCoord1svARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord2dARB, "glMultiTexCoord2dARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord2dvARB, "glMultiTexCoord2dvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord2fARB, "glMultiTexCoord2fARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord2fvARB, "glMultiTexCoord2fvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord2iARB, "glMultiTexCoord2iARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord2ivARB, "glMultiTexCoord2ivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord2sARB, "glMultiTexCoord2sARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord2svARB, "glMultiTexCoord2svARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord3dARB, "glMultiTexCoord3dARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord3dvARB, "glMultiTexCoord3dvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord3fARB, "glMultiTexCoord3fARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord3fvARB, "glMultiTexCoord3fvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord3iARB, "glMultiTexCoord3iARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord3ivARB, "glMultiTexCoord3ivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord3sARB, "glMultiTexCoord3sARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord3svARB, "glMultiTexCoord3svARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord4dARB, "glMultiTexCoord4dARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord4dvARB, "glMultiTexCoord4dvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord4fARB, "glMultiTexCoord4fARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord4fvARB, "glMultiTexCoord4fvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord4iARB, "glMultiTexCoord4iARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord4ivARB, "glMultiTexCoord4ivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord4sARB, "glMultiTexCoord4sARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord4svARB, "glMultiTexCoord4svARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_transpose_matrix() + { + if(!extIsSupported("GL_ARB_transpose_matrix")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glLoadTransposeMatrixfARB, "glLoadTransposeMatrixfARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glLoadTransposeMatrixdARB, "glLoadTransposeMatrixdARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultTransposeMatrixfARB, "glMultTransposeMatrixfARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultTransposeMatrixdARB, "glMultTransposeMatrixdARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_multisample() + { + if(!extIsSupported("GL_ARB_multisample")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glSampleCoverageARB, "glSampleCoverageARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_texture_env_add() + { + if(!extIsSupported("GL_ARB_texture_env_add")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_texture_cube_map() + { + if(!extIsSupported("GL_ARB_texture_cube_map")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_texture_compression() + { + if(!extIsSupported("GL_ARB_texture_compression")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glCompressedTexImage3DARB, "glCompressedTexImage3DARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCompressedTexImage2DARB, "glCompressedTexImage2DARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCompressedTexImage1DARB, "glCompressedTexImage1DARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCompressedTexSubImage3DARB, "glCompressedTexSubImage3DARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCompressedTexSubImage2DARB, "glCompressedTexSubImage2DARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCompressedTexSubImage1DARB, "glCompressedTexSubImage1DARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetCompressedTexImageARB, "glGetCompressedTexImageARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_texture_border_clamp() + { + if(!extIsSupported("GL_ARB_texture_border_clamp")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_point_parameters() + { + if(!extIsSupported("GL_ARB_point_parameters")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glPointParameterfARB, "glPointParameterfARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glPointParameterfvARB, "glPointParameterfvARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_vertex_blend() + { + if(!extIsSupported("GL_ARB_vertex_blend")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glWeightbvARB, "glWeightbvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWeightsvARB, "glWeightsvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWeightivARB, "glWeightivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWeightfvARB, "glWeightfvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWeightdvARB, "glWeightdvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWeightubvARB, "glMatrixIndexPointerARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWeightusvARB, "glWeightusvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWeightuivARB, "glWeightuivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWeightPointerARB, "glWeightPointerARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexBlendARB, "glVertexBlendARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_matrix_palette() + { + if(!extIsSupported("GL_ARB_matrix_palette")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glCurrentPaletteMatrixARB, "glCurrentPaletteMatrixARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixIndexubvARB, "glMatrixIndexubvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixIndexusvARB, "glMatrixIndexusvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixIndexuivARB, "glMatrixIndexuivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixIndexPointerARB, "glMatrixIndexPointerARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_texture_env_combine() + { + if(!extIsSupported("GL_ARB_texture_env_combine")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_texture_env_crossbar() + { + if(!extIsSupported("GL_ARB_texture_env_crossbar")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_texture_env_dot3() + { + if(!extIsSupported("GL_ARB_texture_env_dot3")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_texture_mirrored_repeat() + { + if(!extIsSupported("GL_ARB_texture_mirrored_repeat")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_depth_texture() + { + if(!extIsSupported("GL_ARB_depth_texture")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_shadow() + { + if(!extIsSupported("GL_ARB_shadow")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_shadow_ambient() + { + if(!extIsSupported("GL_ARB_shadow_ambient")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_window_pos() + { + if(!extIsSupported("GL_ARB_window_pos")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glWindowPos2dARB, "glWindowPos2dARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos2dvARB, "glWindowPos2dvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos2fARB, "glWindowPos2fARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos2fvARB, "glWindowPos2fvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos2iARB, "glWindowPos2iARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos2ivARB, "glWindowPos2ivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos2sARB, "glWindowPos2sARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos2svARB, "glWindowPos2svARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos3dARB, "glWindowPos3dARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos3dvARB, "glWindowPos3dvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos3fARB, "glWindowPos3fARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos3fvARB, "glWindowPos3fvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos3iARB, "glWindowPos3iARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos3ivARB, "glWindowPos3ivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos3sARB, "glWindowPos3sARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos3svARB, "glWindowPos3svARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_vertex_program() + { + if(!extIsSupported("GL_ARB_vertex_program")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glVertexAttrib1dARB, "glVertexAttrib1dARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib1dvARB, "glVertexAttrib1dvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib1fARB, "glVertexAttrib1fARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib1fvARB, "glVertexAttrib1fvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib1sARB, "glVertexAttrib1sARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib1svARB, "glVertexAttrib1svARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib2dARB, "glVertexAttrib2dARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib2dvARB, "glVertexAttrib2dvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib2fARB, "glVertexAttrib2fARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib2fvARB, "glVertexAttrib2fvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib2sARB, "glVertexAttrib2sARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib2svARB, "glVertexAttrib2svARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib3dARB, "glVertexAttrib3dARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib3dvARB, "glVertexAttrib3dvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib3fARB, "glVertexAttrib3fARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib3fvARB, "glVertexAttrib3fvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib3sARB, "glVertexAttrib3sARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib3svARB, "glVertexAttrib3svARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4NbvARB, "glVertexAttrib4NbvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4NivARB, "glVertexAttrib4NivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4NsvARB, "glVertexAttrib4NsvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4NubARB, "glVertexAttrib4NubARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4NubvARB, "glVertexAttrib4NubvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4NuivARB, "glVertexAttrib4NuivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4NusvARB, "glVertexAttrib4NusvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4bvARB, "glVertexAttrib4bvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4dARB, "glVertexAttrib4dARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4dvARB, "glVertexAttrib4dvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4fARB, "glVertexAttrib4fARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4fvARB, "glVertexAttrib4fvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4ivARB, "glVertexAttrib4ivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4sARB, "glVertexAttrib4sARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4svARB, "glVertexAttrib4svARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4ubvARB, "glVertexAttrib4ubvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4uivARB, "glVertexAttrib4uivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4usvARB, "glVertexAttrib4usvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribPointerARB, "glVertexAttribPointerARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glEnableVertexAttribArrayARB, "glEnableVertexAttribArrayARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDisableVertexAttribArrayARB, "glDisableVertexAttribArrayARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramStringARB, "glProgramStringARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindProgramARB, "glBindProgramARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeleteProgramsARB, "glDeleteProgramsARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenProgramsARB, "glGenProgramsARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramEnvParameter4dARB, "glProgramEnvParameter4dARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramEnvParameter4dvARB, "glProgramEnvParameter4dvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramEnvParameter4fARB, "glProgramEnvParameter4fARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramEnvParameter4fvARB, "glProgramEnvParameter4fvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramLocalParameter4dARB, "glProgramLocalParameter4dARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramLocalParameter4dvARB, "glProgramLocalParameter4dvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramLocalParameter4fARB, "glProgramLocalParameter4fARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramLocalParameter4fvARB, "glProgramLocalParameter4fvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetProgramEnvParameterdvARB, "glGetProgramEnvParameterdvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetProgramEnvParameterfvARB, "glGetProgramEnvParameterfvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetProgramLocalParameterdvARB, "glGetProgramLocalParameterdvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetProgramLocalParameterfvARB, "glGetProgramLocalParameterfvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetProgramivARB, "glGetProgramivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetProgramStringARB, "glGetProgramStringARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVertexAttribdvARB, "glGetVertexAttribdvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVertexAttribfvARB, "glGetVertexAttribfvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVertexAttribivARB, "glGetVertexAttribivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVertexAttribPointervARB, "glGetVertexAttribPointervARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsProgramARB, "glIsProgramARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_fragment_program() + { + if(!extIsSupported("GL_ARB_fragment_program")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_vertex_buffer_object() + { + if(!extIsSupported("GL_ARB_vertex_buffer_object")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glBindBufferARB, "glBindBufferARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeleteBuffersARB, "glDeleteBuffersARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenBuffersARB, "glGenBuffersARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsBufferARB, "glIsBufferARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBufferDataARB, "glBufferDataARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBufferSubDataARB, "glBufferSubDataARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetBufferSubDataARB, "glGetBufferSubDataARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMapBufferARB, "glMapBufferARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUnmapBufferARB, "glUnmapBufferARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetBufferParameterivARB, "glGetBufferParameterivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetBufferPointervARB, "glGetBufferPointervARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_occlusion_query() + { + if(!extIsSupported("GL_ARB_occlusion_query")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glGenQueriesARB, "glGenQueriesARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeleteQueriesARB, "glDeleteQueriesARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsQueryARB, "glIsQueryARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBeginQueryARB, "glBeginQueryARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glEndQueryARB, "glEndQueryARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetQueryivARB, "glGetQueryivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetQueryObjectivARB, "glGetQueryObjectivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetQueryObjectuivARB, "glGetQueryObjectuivARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_shader_objects() + { + if(!extIsSupported("GL_ARB_shader_objects")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glDeleteObjectARB, "glDeleteObjectARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetHandleARB, "glGetHandleARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDetachObjectARB, "glDetachObjectARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCreateShaderObjectARB, "glCreateShaderObjectARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glShaderSourceARB, "glShaderSourceARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCompileShaderARB, "glCompileShaderARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCreateProgramObjectARB, "glCreateProgramObjectARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glAttachObjectARB, "glAttachObjectARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glLinkProgramARB, "glLinkProgramARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUseProgramObjectARB, "glUseProgramObjectARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glValidateProgramARB, "glValidateProgramARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform1fARB, "glUniform1fARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform2fARB, "glUniform2fARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform3fARB, "glUniform3fARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform4fARB, "glUniform4fARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform1iARB, "glUniform1iARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform2iARB, "glUniform2iARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform3iARB, "glUniform3iARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform4iARB, "glUniform4iARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform1fvARB, "glUniform1fvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform2fvARB, "glUniform2fvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform3fvARB, "glUniform3fvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform4fvARB, "glUniform4fvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform1ivARB, "glUniform1ivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform2ivARB, "glUniform2ivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform3ivARB, "glUniform3ivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform4ivARB, "glUniform4ivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniformMatrix2fvARB, "glUniformMatrix2fvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniformMatrix3fvARB, "glUniformMatrix3fvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniformMatrix4fvARB, "glUniformMatrix4fvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetObjectParameterfvARB, "glGetObjectParameterfvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetObjectParameterivARB, "glGetObjectParameterivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetInfoLogARB, "glGetInfoLogARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetAttachedObjectsARB, "glGetAttachedObjectsARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetUniformLocationARB, "glGetUniformLocationARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetActiveUniformARB, "glGetActiveUniformARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetUniformfvARB, "glGetUniformfvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetUniformivARB, "glGetUniformivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetShaderSourceARB, "glGetShaderSourceARB")) + return GLExtensionState.FailedToLoad; + + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_vertex_shader() + { + if(!extIsSupported("GL_ARB_vertex_shader")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glBindAttribLocationARB, "glBindAttribLocationARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetActiveAttribARB, "glGetActiveAttribARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetAttribLocationARB, "glGetAttribLocationARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_fragment_shader() + { + if(!extIsSupported("GL_ARB_fragment_shader")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_shading_language_100() + { + if(!extIsSupported("GL_ARB_shading_language_100")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_texture_non_power_of_two() + { + if(!extIsSupported("GL_ARB_texture_non_power_of_two")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_point_sprite() + { + if(!extIsSupported("GL_ARB_point_sprite")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_fragment_program_shadow() + { + if(!extIsSupported("GL_ARB_fragment_program_shadow")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_draw_buffers() + { + if(!extIsSupported("GL_ARB_draw_buffers")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glDrawBuffersARB, "glDrawBuffersARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_texture_rectangle() + { + if(!extIsSupported("GL_ARB_texture_rectangle")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_color_buffer_float() + { + if(!extIsSupported("GL_ARB_color_buffer_float")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glClampColorARB, "glClampColorARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_half_float_pixel() + { + if(!extIsSupported("GL_ARB_half_float_pixel")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_texture_float() + { + if(!extIsSupported("GL_ARB_texture_float")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_pixel_buffer_object() + { + if(!extIsSupported("GL_ARB_pixel_buffer_object")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_depth_buffer_float() + { + if(!extIsSupported("GL_ARB_depth_buffer_float")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_draw_instanced() + { + if(!extIsSupported("GL_ARB_draw_instanced")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glDrawArraysInstancedARB, "glDrawArraysInstancedARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDrawElementsInstancedARB, "glDrawElementsInstancedARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_framebuffer_object() + { + if(!extIsSupported("GL_ARB_framebuffer_object")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glIsRenderbuffer, "glIsRenderbuffer")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindRenderbuffer, "glBindRenderbuffer")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeleteRenderbuffers, "glDeleteRenderbuffers")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenRenderbuffers, "glGenRenderbuffers")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glRenderbufferStorage, "glRenderbufferStorage")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glRenderbufferStorageMultisample, "glRenderbufferStorageMultisample")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetRenderbufferParameteriv, "glGetRenderbufferParameteriv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsFramebuffer, "glIsFramebuffer")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindFramebuffer, "glBindFramebuffer")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeleteFramebuffers, "glDeleteFramebuffers")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenFramebuffers, "glGenFramebuffers")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCheckFramebufferStatus, "glCheckFramebufferStatus")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFramebufferTexture1D, "glFramebufferTexture1D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFramebufferTexture2D, "glFramebufferTexture2D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFramebufferTexture3D, "glFramebufferTexture3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFramebufferTextureLayer, "glFramebufferTextureLayer")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFramebufferRenderbuffer, "glFramebufferRenderbuffer")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetFramebufferAttachmentParameteriv, "glGetFramebufferAttachmentParameteriv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBlitFramebuffer, "glBlitFramebuffer")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenerateMipmap, "glGenerateMipmap")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_framebuffer_sRGB() + { + if(!extIsSupported("GL_ARB_framebuffer_sRGB")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_geometry_shader4() + { + if(!extIsSupported("GL_ARB_geometry_shader4")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glProgramParameteriARB, "glProgramParameteriARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFramebufferTextureARB, "glFramebufferTextureARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFramebufferTextureLayerARB, "glFramebufferTextureLayerARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFramebufferTextureFaceARB, "glFramebufferTextureFaceARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_half_float_vertex() + { + if(!extIsSupported("GL_ARB_half_float_vertex")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_imaging() + { + if(!extIsSupported("GL_ARB_imaging")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glColorTable, "glColorTable")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColorSubTable, "glColorSubTable")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColorTableParameteriv, "glColorTableParameteriv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColorTableParameterfv, "glColorTableParameterfv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyColorSubTable, "glCopyColorSubTable")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyColorTable, "glCopyColorTable")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetColorTable, "glGetColorTable")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetColorTableParameterfv, "glGetColorTableParameterfv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetColorTableParameteriv, "glGetColorTableParameteriv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glHistogram, "glHistogram")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glResetHistogram, "glResetHistogram")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetHistogram, "glGetHistogram")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetHistogramParameterfv, "glGetHistogramParameterfv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetHistogramParameteriv, "glGetHistogramParameteriv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMinmax, "glMinmax")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glResetMinmax, "glResetMinmax")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMinmax, "glGetMinmax")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMinmaxParameterfv, "glGetMinmaxParameterfv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMinmaxParameteriv, "glGetMinmaxParameteriv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glConvolutionFilter1D, "glConvolutionFilter1D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glConvolutionFilter2D, "glConvolutionFilter2D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glConvolutionParameterf, "glConvolutionParameterf")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glConvolutionParameterfv, "glConvolutionParameterfv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glConvolutionParameteri, "glConvolutionParameteri")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glConvolutionParameteriv, "glConvolutionParameteriv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyConvolutionFilter1D, "glCopyConvolutionFilter1D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyConvolutionFilter2D, "glCopyConvolutionFilter2D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetConvolutionFilter, "glGetConvolutionFilter")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetConvolutionParameterfv, "glGetConvolutionParameterfv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetConvolutionParameteriv, "glGetConvolutionParameteriv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSeparableFilter2D, "glSeparableFilter2D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetSeparableFilter, "glGetSeparableFilter")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_instanced_arrays() + { + if(!extIsSupported("GL_ARB_instanced_arrays")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glVertexAttribDivisorARB, "glVertexAttribDivisorARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_map_buffer_range() + { + if(!extIsSupported("GL_ARB_map_buffer_range")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glMapBufferRange, "glMapBufferRange")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFlushMappedBufferRange, "glFlushMappedBufferRange")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_texture_buffer_object() + { + if(!extIsSupported("GL_ARB_texture_buffer_object")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glTexBufferARB, "glTexBufferARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_texture_compression_rgtc() + { + if(!extIsSupported("GL_ARB_texture_compression_rgtc")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_texture_rg() + { + if(!extIsSupported("GL_ARB_texture_rg")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_vertex_array_object() + { + if(!extIsSupported("GL_ARB_vertex_array_object")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glBindVertexArray, "glBindVertexArray")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeleteVertexArrays, "glDeleteVertexArrays")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenVertexArrays, "glGenVertexArrays")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsVertexArray, "glIsVertexArray")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_copy_buffer() + { + if(!extIsSupported("GL_ARB_copy_bffer")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glCopyBufferSubData, "glCopyBufferSubData")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_uniform_buffer_object() + { + if(!extIsSupported("GL_ARB_uniform_buffer_object")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glGetUniformIndices, "glGetUniformIndices")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetActiveUniformsiv, "glGetActiveUniformsiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetActiveUniformName, "glGetActiveUniformName")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetUniformBlockIndex, "glGetUniformBlockIndex")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetActiveUniformBlockiv, "glGetActiveUniformBlockiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetActiveUniformBlockName, "glGetActiveUniformBlockName")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniformBlockBinding, "glUniformBlockBinding")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_vertex_array_bgra() + { + if(!extIsSupported("GL_ARB_vertex_array_bgra")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_draw_elements_base_vertex() + { + if(!extIsSupported("GL_ARB_uniform_buffer_object")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glDrawElementsBaseVertex, "glDrawElementsBaseVertex")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDrawRangeElementsBaseVertex, "glDrawRangeElementsBaseVertex")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDrawElementsInstancedBaseVertex, "glDrawElementsInstancedBaseVertex")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiDrawElementsBaseVertex, "glMultiDrawElementsBaseVertex")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_vertex_attrib_64bit() + { + if(!extIsSupported("GL_ARB_vertex_attrib_64bit")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glGetVertexAttribLdv, "glGetVertexAttribLdv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribL1d, "glVertexAttribL1d")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribL1dv, "glVertexAttribL1dv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribL2d, "glVertexAttribL2d")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribL2dv, "glVertexAttribL2dv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribL3d, "glVertexAttribL3d")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribL3dv, "glVertexAttribL3dv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribL4d, "glVertexAttribL4d")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribL4dv, "glVertexAttribL4dv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribLPointer, "glVertexAttribLPointer")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_provoking_vertex() + { + if(!extIsSupported("GL_ARB_provoking_vertex")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glProvokingVertex, "glProvokingVertex")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_sync() + { + if(!extIsSupported("GL_ARB_sync")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glFenceSync, "glFenceSync")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsSync, "glIsSync")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeleteSync, "glDeleteSync")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glClientWaitSync, "glClientWaitSync")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWaitSync, "glWaitSync")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetInteger64v, "glGetInteger64v")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetSynciv, "glGetSynciv")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_texture_multisample() + { + if(!extIsSupported("GL_ARB_texture_multisample")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glTexImage2DMultisample, "glTexImage2DMultisample")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexImage3DMultisample, "glTexImage3DMultisample")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMultisamplefv, "glGetMultisamplefv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSampleMaski, "glSampleMaski")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_viewport_array() + { + if(!extIsSupported("GL_ARB_viewport_array")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glDepthRangeArrayv, "glDepthRangeArrayv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDepthRangeIndexed, "glDepthRangeIndexed")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetDoublei_v, "glGetDoublei_v")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetFloati_v, "glGetFloati_v")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glScissorArrayv, "glScissorArrayv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glScissorArrayIndexed, "glScissorArrayIndexed")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glScissorArrayIndexedv, "glScissorArrayIndexedv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glViewportArrayv, "glViewportArrayv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glViewportIndexedf, "glViewportIndexedf")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glViewportIndexedfv, "glViewportIndexedfv")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_cl_event() + { + if(!extIsSupported("GL_ARB_cl_event")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glCreateSyncFromCLeventARB, "glCreateSyncFromCLeventARB")) + return GLExtensionState.FailedToLoad; + + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_debug_output() + { + if(!extIsSupported("GL_ARB_debug_output")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glDebugMessageCallbackARB, "glDebugMessageCallbackARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDebugMessageControlARB, "glDebugMessageControlARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDebugMessageInsertARB, "glDebugMessageInsertARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetDebugMessageLogARB, "glGetDebugMessageLogARB")) + return GLExtensionState.FailedToLoad; + + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_robustness() + { + if(!extIsSupported("GL_ARB_robustness")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glGetnColorTableARB, "glGetnColorTableARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetnCompressedTexImageARB, "glGetnCompressedTexImageARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetnConvolutionFilterARB, "glGetnConvolutionFilterARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetnHistogramARB, "glGetnHistogramARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetnMapdvARB, "glGetnMapdvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetnMapfvARB, "glGetnMapfvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetnMapivARB, "glGetnMapivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetnMinMaxARB, "glGetnMinMaxARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetnPixelMapfvARB, "glGetnPixelMapfvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetnPixelMapuivARB, "glGetnPixelMapuivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetnPixelMapusvARB, "glGetnPixelMapusvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetnPolygonStippleARB, "glGetnPolygonStippleARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetnSeparableFilterARB, "glGetnSeparableFilterARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetnTexImageARB, "glGetnTexImageARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetnUniformdvARB, "glGetnUniformdvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetnUniformfvARB, "glGetnUniformfvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetnUniformivARB, "glGetnUniformivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetUniformuivARB, "glGetUniformuivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReadnPixelsARB, "glReadnPixelsARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_shader_stencil_export() + { + if(!extIsSupported("GL_ARB_shader_stencil_export")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_compatibility() + { + if(!extIsSupported("GL_ARB_compatibility")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_depth_clamp() + { + if(!extIsSupported("GL_ARB_depth_clamp")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_blend_func_extended() + { + if(!extIsSupported("GL_ARB_blend_func_extended")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glBindFragDataLocationIndexed, "glBindFragDataLocationIndexed")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetFragDataIndex, "glGetFragDataIndex")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_sampler_objects() + { + if(!extIsSupported("GL_ARB_sampler_objects")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glGenSamplers, "glGenSamplers")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeleteSamplers, "glDeleteSamplers")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsSampler, "glIsSampler")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindSampler, "glBindSampler")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSamplerParameteri, "glSamplerParameteri")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSamplerParameteriv, "glSamplerParameteriv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSamplerParameterf, "glSamplerParameterf")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSamplerParameterfv, "glSamplerParameterfv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSamplerParameterIiv, "glSamplerParameterIiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSamplerParameterIuiv, "glSamplerParameterIuiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetSamplerParameteriv, "glGetSamplerParameteriv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetSamplerParameterIiv, "glGetSamplerParameterIiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetSamplerParameterfv, "glGetSamplerParameterfv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetSamplerParameterIuiv, "glGetSamplerParameterIuiv")) + return GLExtensionState.FailedToLoad; + + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_timer_query() + { + if(!extIsSupported("GL_ARB_timer_query")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glQueryCounter, "glQueryCounter")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetQueryObjecti64v, "glGetQueryObjecti64v")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetQueryObjectui64v, "glGetQueryObjectui64v")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ARB_vertex_type_2_10_10_10_rev() + { + if(!extIsSupported("GL_ARB_vertex_type_2_10_10_10_rev")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glVertexP2ui, "glVertexP2ui")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexP2uiv, "glVertexP2uiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexP3ui, "glVertexP3ui")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexP3uiv, "glVertexP3uiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexP4ui, "glVertexP4ui")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexP4uiv, "glVertexP4uiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoordP1ui, "glTexCoordP1ui")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoordP1uiv, "glTexCoordP1uiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoordP2ui, "glTexCoordP2ui")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoordP2uiv, "glTexCoordP2uiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoordP3ui, "glTexCoordP3ui")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoordP3uiv, "glTexCoordP3uiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoordP4ui, "glTexCoordP4ui")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoordP4uiv, "glTexCoordP4uiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoordP1ui, "glMultiTexCoordP1ui")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoordP1uiv, "glMultiTexCoordP1uiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoordP2ui, "glMultiTexCoordP2ui")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoordP2uiv, "glMultiTexCoordP2uiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoordP3ui, "glMultiTexCoordP3ui")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoordP3uiv, "glMultiTexCoordP3uiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoordP4ui, "glMultiTexCoordP4ui")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoordP4uiv, "glMultiTexCoordP4uiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormalP3ui, "glNormalP3ui")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormalP3uiv, "glNormalP3uiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColorP3ui, "glColorP3ui")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColorP3uiv, "glColorP3uiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColorP4ui, "glColorP4ui")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColorP4uiv, "glColorP4uiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColorP3ui, "glSecondaryColorP3ui")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColorP3uiv, "glSecondaryColorP3uiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribP1ui, "glVertexAttribP1ui")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribP1uiv, "glVertexAttribP1uiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribP2ui, "glVertexAttribP2ui")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribP2uiv, "glVertexAttribP2uiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribP3ui, "glVertexAttribP3ui")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribP3uiv, "glVertexAttribP3uiv")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribP4ui, "glVertexAttribP4ui")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribP4uiv, "glVertexAttribP4uiv")) + return GLExtensionState.FailedToLoad; + + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_EXT) + { + GLExtensionState load_GL_EXT_abgr() + { + if(!extIsSupported("GL_EXT_abgr")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_blend_color() + { + if(!extIsSupported("GL_EXT_blend_color")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glBlendColorEXT, "glBlendColorEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_polygon_offset() + { + if(!extIsSupported("GL_EXT_polygon_offset")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glPolygonOffsetEXT, "glPolygonOffsetEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture() + { + if(!extIsSupported("GL_EXT_texture")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glTexImage3DEXT, "glTexImage3DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexSubImage3DEXT, "glTexSubImage3DEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture3D() + { + if(!extIsSupported("GL_EXT_texture3D")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_subtexture() + { + if(!extIsSupported("GL_EXT_subtexture")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glTexSubImage1DEXT, "glTexSubImage1DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexSubImage21DEXT, "glTexSubImage21DEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_copy_texture() + { + if(!extIsSupported("GL_EXT_copy_texture")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glCopyTexImage1DEXT, "glCopyTexImage1DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyTexImage2DEXT, "glCopyTexImage2DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyTexSubImage1DEXT, "glCopyTexSubImage1DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyTexSubImage2DEXT, "glCopyTexSubImage2DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyTexSubImage3DEXT, "glCopyTexSubImage3DEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_histogram() + { + if(!extIsSupported("GL_EXT_histogram")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glGetHistogramEXT, "glGetHistogramEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetHistogramParameterfvEXT, "glGetHistogramParameterfvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetHistogramParameterivEXT, "glGetHistogramParameterivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMinmaxEXT, "glGetMinmaxEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMinmaxParameterfvEXT, "glGetMinmaxParameterfvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMinmaxParameterivEXT, "glGetMinmaxParameterivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glHistogramEXT, "glHistogramEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMinmaxEXT, "glMinmaxEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glResetHistogramEXT, "glResetHistogramEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glResetMinmaxEXT, "glResetMinmaxEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_convolution() + { + if(!extIsSupported("GL_EXT_convolution")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glConvolutionFilter1DEXT, "glConvolutionFilter1DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glConvolutionFilter2DEXT, "glConvolutionFilter2DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glConvolutionParameterfEXT, "glConvolutionParameterfEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glConvolutionParameterfvEXT, "glConvolutionParameterfvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glConvolutionParameteriEXT, "glConvolutionParameteriEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glConvolutionParameterivEXT, "glConvolutionParameterivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyConvolutionFilter1DEXT, "glCopyConvolutionFilter1DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyConvolutionFilter2DEXT, "glCopyConvolutionFilter2DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetConvolutionFilterEXT, "glGetConvolutionFilterEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetConvolutionParameterfvEXT, "glGetConvolutionParameterfvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetConvolutionParameterivEXT, "glGetConvolutionParameterivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetSeparableFilterEXT, "glGetSeparableFilterEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSeparableFilter2DEXT, "glSeparableFilter2DEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_cmyka() + { + if(!extIsSupported("GL_EXT_cmyka")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture_object() + { + if(!extIsSupported("GL_EXT_texture_object")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glAreTexturesResidentEXT, "glAreTexturesResidentEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindTextureEXT, "glBindTextureEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeleteTexturesEXT, "glDeleteTexturesEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenTexturesEXT, "glGenTexturesEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsTextureEXT, "glIsTextureEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glPrioritizeTexturesEXT, "glPrioritizeTexturesEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_packed_pixels() + { + if(!extIsSupported("GL_EXT_packed_pixels")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_rescale_normal() + { + if(!extIsSupported("GL_EXT_rescale_normal")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_vertex_array() + { + if(!extIsSupported("GL_EXT_vertex_array")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glArrayElementEXT, "glArrayElementEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColorPointerEXT, "glColorPointerEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDrawArraysEXT, "glDrawArraysEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glEdgeFlagPointerEXT, "glEdgeFlagPointerEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetPointervEXT, "glGetPointervEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIndexPointerEXT, "glIndexPointerEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDrawArraysEXT, "glDrawArraysEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormalPointerEXT, "glNormalPointerEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoordPointerEXT, "glTexCoordPointerEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexPointerEXT, "glVertexPointerEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_misc_attribute() + { + if(!extIsSupported("GL_EXT_misc_attribute")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_blend_minmax() + { + if(!extIsSupported("GL_EXT_blend_minmax")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glBlendEquationEXT, "glBlendEquationEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_blend_subtract() + { + if(!extIsSupported("GL_EXT_blend_subtract")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_blend_logic_op() + { + if(!extIsSupported("GL_EXT_blend_logic_op")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_point_parameters() + { + if(!extIsSupported("GL_EXT_point_parameters")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glPointParameterfEXT, "glPointParameterfEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glPointParameterfvEXT, "glPointParameterfvEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_color_subtable() + { + if(!extIsSupported("GL_EXT_color_subtable")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glColorSubTableEXT, "glColorSubTableEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyColorSubTableEXT, "glCopyColorSubTableEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_paletted_texture() + { + if(!extIsSupported("GL_EXT_paletted_texture")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glColorTableEXT, "glColorTableEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetColorTableEXT, "glGetColorTableEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetColorTableParameterivEXT, "glGetColorTableParameterivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetColorTableParameterfvEXT, "glGetColorTableParameterfvEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_clip_volume_hint() + { + if(!extIsSupported("GL_EXT_clip_volume_hint")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_index_texture() + { + if(!extIsSupported("GL_EXT_index_texture")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_index_material() + { + if(!extIsSupported("GL_EXT_index_material")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glIndexMaterialEXT, "glIndexMaterialEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_index_func() + { + if(!extIsSupported("GL_EXT_index_func")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glIndexFuncEXT, "glIndexFuncEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_index_array_formats() + { + if(!extIsSupported("GL_EXT_index_array_formats")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_compiled_vertex_array() + { + if(!extIsSupported("GL_EXT_compiled_vertex_array")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glLockArraysEXT, "glLockArraysEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUnlockArraysEXT, "glUnlockArraysEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_cull_vertex() + { + if(!extIsSupported("GL_EXT_cull_vertex")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glCullParameterdvEXT, "glCullParameterdvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCullParameterfvEXT, "glCullParameterfvEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_draw_range_elements() + { + if(!extIsSupported("GL_EXT_draw_range_elements")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glDrawRangeElementsEXT, "glDrawRangeElementsEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_light_texture() + { + if(!extIsSupported("GL_EXT_light_texture")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glApplyTextureEXT, "glApplyTextureEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTextureLightEXT, "glTextureLightEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTextureMaterialEXT, "glTextureMaterialEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_bgra() + { + if(!extIsSupported("GL_EXT_bgra")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_pixel_transform() + { + if(!extIsSupported("GL_EXT_pixel_transform")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glPixelTransformParameteriEXT, "glPixelTransformParameteriEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glPixelTransformParameterfEXT, "glPixelTransformParameterfEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glPixelTransformParameterivEXT, "glPixelTransformParameterivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glPixelTransformParameterfvEXT, "glPixelTransformParameterfvEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_pixel_transform_color_table() + { + if(!extIsSupported("GL_EXT_pixel_transform_color_table")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_shared_texture_palette() + { + if(!extIsSupported("GL_EXT_shared_texture_palette")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_separate_specular_color() + { + if(!extIsSupported("GL_EXT_separate_specular_color")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_secondary_color() + { + if(!extIsSupported("GL_EXT_secondary_color")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glSecondaryColor3bEXT, "glSecondaryColor3bEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColor3bvEXT, "glSecondaryColor3bvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColor3dEXT, "glSecondaryColor3dEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColor3dvEXT, "glSecondaryColor3dvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColor3fEXT, "glSecondaryColor3fEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColor3fvEXT, "glSecondaryColor3fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColor3iEXT, "glSecondaryColor3iEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColor3ivEXT, "glSecondaryColor3ivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColor3sEXT, "glSecondaryColor3sEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColor3svEXT, "glSecondaryColor3svEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColor3ubEXT, "glSecondaryColor3ubEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColor3ubvEXT, "glSecondaryColor3ubvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColor3uiEXT, "glSecondaryColor3uiEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColor3uivEXT, "glSecondaryColor3uivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColor3usEXT, "glSecondaryColor3usEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColor3usvEXT, "glSecondaryColor3usvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColorPointerEXT, "glSecondaryColorPointerEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture_perturb_normal() + { + if(!extIsSupported("GL_EXT_texture_perturb_normal")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glTextureNormalEXT, "glTextureNormalEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_multi_draw_arrays() + { + if(!extIsSupported("GL_EXT_multi_draw_arrays")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glMultiDrawArraysEXT, "glMultiDrawArraysEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiDrawElementsEXT, "glMultiDrawElementsEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_fog_coord() + { + if(!extIsSupported("GL_EXT_fog_coord")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glFogCoordfEXT, "glFogCoordfEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFogCoordfvEXT, "glFogCoordfvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFogCoorddEXT, "glFogCoorddEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFogCoorddvEXT, "glFogCoorddvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFogCoordPointerEXT, "glFogCoordPointerEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_coordinate_frame() + { + if(!extIsSupported("GL_EXT_coordinate_frame")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glTangent3bEXT, "glTangent3bEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTangent3bvEXT, "glTangent3bvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTangent3dEXT, "glTangent3dEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTangent3dvEXT, "glTangent3dvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTangent3fEXT, "glTangent3fEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTangent3fvEXT, "glTangent3fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTangent3iEXT, "glTangent3iEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTangent3ivEXT, "glTangent3ivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTangent3sEXT, "glTangent3sEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTangent3svEXT, "glTangent3svEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBinormal3bEXT, "glBinormal3bEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBinormal3bvEXT, "glBinormal3bvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBinormal3dEXT, "glBinormal3dEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBinormal3dvEXT, "glBinormal3dvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBinormal3fEXT, "glBinormal3fEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBinormal3fvEXT, "glBinormal3fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBinormal3iEXT, "glBinormal3iEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBinormal3ivEXT, "glBinormal3ivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBinormal3sEXT, "glBinormal3sEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBinormal3svEXT, "glBinormal3svEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTangentPointerEXT, "glTangentPointerEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBinormalPointerEXT, "glBinormalPointerEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_blend_func_separate() + { + if(!extIsSupported("GL_EXT_blend_func_separate")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glBlendFuncSeparateEXT, "glBlendFuncSeparateEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture_env_combine() + { + if(!extIsSupported("GL_EXT_texture_env_combine")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_stencil_wrap() + { + if(!extIsSupported("GL_EXT_stencil_wrap")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_422_pixels() + { + if(!extIsSupported("GL_EXT_422_pixels")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture_cube_map() + { + if(!extIsSupported("GL_EXT_texture_cube_map")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture_env_add() + { + if(!extIsSupported("GL_EXT_texture_env_add")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture_lod_bias() + { + if(!extIsSupported("GL_EXT_texture_lod_bias")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture_filter_anisotropic() + { + if(!extIsSupported("GL_EXT_texture_filter_anisotropic")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_vertex_weighting() + { + if(!extIsSupported("GL_EXT_vertex_weighting")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glVertexWeightfEXT, "glVertexWeightfEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexWeightfvEXT, "glVertexWeightfvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexWeightPointerEXT, "glVertexWeightPointerEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture_compression_s3tc() + { + if(!extIsSupported("GL_EXT_texture_compression_s3tc")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_multisample() + { + if(!extIsSupported("GL_EXT_multisample")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glSampleMaskEXT, "glSampleMaskEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSamplePatternEXT, "glSamplePatternEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture_env_dot3() + { + if(!extIsSupported("GL_EXT_texture_env_dot3")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_vertex_shader() + { + if(!extIsSupported("GL_EXT_vertex_shader")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glBeginVertexShaderEXT, "glBeginVertexShaderEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glEndVertexShaderEXT, "glEndVertexShaderEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindVertexShaderEXT, "glBindVertexShaderEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenVertexShadersEXT, "glGenVertexShadersEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeleteVertexShaderEXT, "glDeleteVertexShaderEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glShaderOp1EXT, "glShaderOp1EXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glShaderOp2EXT, "glShaderOp2EXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glShaderOp3EXT, "glShaderOp3EXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSwizzleEXT, "glSwizzleEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWriteMaskEXT, "glWriteMaskEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glInsertComponentEXT, "glInsertComponentEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glExtractComponentEXT, "glExtractComponentEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenSymbolsEXT, "glGenSymbolsEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSetInvariantEXT, "glSetInvariantEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSetLocalConstantEXT, "glSetLocalConstantEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVariantbvEXT, "glVariantbvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVariantsvEXT, "glVariantsvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVariantivEXT, "glVariantivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVariantfvEXT, "glVariantfvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVariantdvEXT, "glVariantdvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVariantubvEXT, "glVariantubvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVariantusvEXT, "glVariantusvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVariantuivEXT, "glVariantuivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVariantPointerEXT, "glVariantPointerEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glEnableVariantClientStateEXT, "glEnableVariantClientStateEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDisableVariantClientStateEXT, "glDisableVariantClientStateEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindLightParameterEXT, "glBindLightParameterEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindMaterialParameterEXT, "glBindMaterialParameterEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindTexGenParameterEXT, "glBindTexGenParameterEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindTextureUnitParameterEXT, "glBindTextureUnitParameterEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindParameterEXT, "glBindParameterEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsVariantEnabledEXT, "glIsVariantEnabledEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVariantBooleanvEXT, "glGetVariantBooleanvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVariantIntegervEXT, "glGetVariantIntegervEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVariantFloatvEXT, "glGetVariantFloatvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVariantPointervEXT, "glGetVariantPointervEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetInvariantBooleanvEXT, "glGetInvariantBooleanvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetInvariantIntegervEXT, "glGetInvariantIntegervEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetInvariantFloatvEXT, "glGetInvariantFloatvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetLocalConstantBooleanvEXT, "glGetLocalConstantBooleanvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetLocalConstantIntegervEXT, "glGetLocalConstantIntegervEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetLocalConstantFloatvEXT, "glGetLocalConstantFloatvEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_shadow_funcs() + { + if(!extIsSupported("GL_EXT_shadow_funcs")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_stencil_two_side() + { + if(!extIsSupported("GL_EXT_stencil_two_side")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glActiveStencilFaceEXT, "glActiveStencilFaceEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_depth_bounds_test() + { + if(!extIsSupported("GL_EXT_depth_bounds_test")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glDepthBoundsEXT, "glDepthBoundsEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture_mirror_clamp() + { + if(!extIsSupported("GL_EXT_texture_mirror_clamp")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_blend_equation_separate() + { + if(!extIsSupported("GL_EXT_blend_equation_separate")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glBlendEquationSeparateEXT, "glBlendEquationSeparateEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_pixel_buffer_object() + { + if(!extIsSupported("GL_EXT_pixel_buffer_object")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_framebuffer_object() + { + if(!extIsSupported("GL_EXT_framebuffer_object")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glIsRenderbufferEXT, "glIsRenderbufferEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindRenderbufferEXT, "glBindRenderbufferEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeleteRenderbuffersEXT, "glDeleteRenderbuffersEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenRenderbuffersEXT, "glGenRenderbuffersEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glRenderbufferStorageEXT, "glRenderbufferStorageEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetRenderbufferParameterivEXT, "glGetRenderbufferParameterivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsFramebufferEXT, "glIsFramebufferEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindFramebufferEXT, "glBindFramebufferEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeleteFramebuffersEXT, "glDeleteFramebuffersEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenFramebuffersEXT, "glGenFramebuffersEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCheckFramebufferStatusEXT, "glCheckFramebufferStatusEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFramebufferTexture1DEXT, "glFramebufferTexture1DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFramebufferTexture2DEXT, "glFramebufferTexture2DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFramebufferTexture3DEXT, "glFramebufferTexture3DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFramebufferRenderbufferEXT, "glFramebufferRenderbufferEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetFramebufferAttachmentParameterivEXT, "glGetFramebufferAttachmentParameterivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenerateMipmapEXT, "glGenerateMipmapEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_packed_depth_stencil() + { + if(!extIsSupported("GL_EXT_packed_depth_stencil")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_stencil_clear_tag() + { + if(!extIsSupported("GL_EXT_stencil_clear_tag")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glStencilClearTagEXT, "glStencilClearTagEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture_sRGB() + { + if(!extIsSupported("GL_EXT_texture_sRGB")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_framebuffer_blit() + { + if(!extIsSupported("GL_EXT_framebuffer_blit")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glBlitFramebufferEXT, "glBlitFramebufferEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_framebuffer_multisample() + { + if(!extIsSupported("GL_EXT_framebuffer_multisample")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glRenderbufferStorageMultisampleEXT, "glRenderbufferStorageMultisampleEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_timer_query() + { + if(!extIsSupported("GL_EXT_timer_query")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glGetQueryObjecti64vEXT, "glGetQueryObjecti64vEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetQueryObjectui64vEXT, "glGetQueryObjectui64vEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_gpu_program_parameters() + { + if(!extIsSupported("GL_EXT_gpu_program_parameters")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glProgramEnvParameters4fvEXT, "glProgramEnvParameters4fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramLocalParameters4fvEXT, "glProgramLocalParameters4fvEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_geometry_shader4() + { + if(!extIsSupported("GL_EXT_geometry_shader4")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glProgramParameteriEXT, "glProgramParameteriEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_gpu_shader4() + { + if(!extIsSupported("GL_EXT_gpu_shader4")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glGetUniformuivEXT, "glGetUniformuivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindFragDataLocationEXT, "glBindFragDataLocationEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetFragDataLocationEXT, "glGetFragDataLocationEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform1uiEXT, "glUniform1uiEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform2uiEXT, "glUniform2uiEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform3uiEXT, "glUniform3uiEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform4uiEXT, "glUniform4uiEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform1uivEXT, "glUniform1uivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform2uivEXT, "glUniform2uivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform3uivEXT, "glUniform3uivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniform4uivEXT, "glUniform4uivEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_draw_instanced() + { + if(!extIsSupported("GL_EXT_draw_instanced")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glDrawArraysInstancedEXT, "glDrawArraysInstancedEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDrawElementsInstancedEXT, "glDrawElementsInstancedEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_packed_float() + { + if(!extIsSupported("GL_EXT_packed_float")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture_array() + { + if(!extIsSupported("GL_EXT_texture_array")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture_buffer_object() + { + if(!extIsSupported("GL_EXT_texture_buffer_object")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glTexBufferEXT, "glTexBufferEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture_compression_latc() + { + if(!extIsSupported("GL_EXT_texture_compression_latc")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture_compression_rgtc() + { + if(!extIsSupported("GL_EXT_texture_compression_rgtc")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture_shared_exponent() + { + if(!extIsSupported("GL_EXT_texture_shared_exponent")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_framebuffer_sRGB() + { + if(!extIsSupported("GL_EXT_framebuffer_sRGB")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_draw_buffers2() + { + if(!extIsSupported("GL_EXT_draw_buffers2")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glColorMaskIndexedEXT, "glColorMaskIndexedEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetBooleanIndexedvEXT, "glGetBooleanIndexedvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetIntegerIndexedvEXT, "glGetIntegerIndexedvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glEnableIndexedEXT, "glEnableIndexedEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDisableIndexedEXT, "glDisableIndexedEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsEnabledIndexedEXT, "glIsEnabledIndexedEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_bindable_uniform() + { + if(!extIsSupported("GL_EXT_texture_buffer_object")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glUniformBufferEXT, "glUniformBufferEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetUniformBufferSizeEXT, "glGetUniformBufferSizeEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetUniformOffsetEXT, "glGetUniformOffsetEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture_integer() + { + if(!extIsSupported("GL_EXT_texture_integer")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glTexParameterIivEXT, "glTexParameterIivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexParameterIuivEXT, "glTexParameterIuivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetTexParameterIivEXT, "glGetTexParameterIivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetTexParameterIuivEXT, "glGetTexParameterIuivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glClearColorIiEXT, "glClearColorIiEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glClearColorIuiEXT, "glClearColorIuiEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_transform_feedback() + { + if(!extIsSupported("GL_EXT_transform_feedback")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glBeginTransformFeedbackEXT, "glBeginTransformFeedbackEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glEndTransformFeedbackEXT, "glEndTransformFeedbackEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindBufferRangeEXT, "glBindBufferRangeEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindBufferOffsetEXT, "glBindBufferOffsetEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindBufferBaseEXT, "glBindBufferBaseEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTransformFeedbackVaryingsEXT, "glTransformFeedbackVaryingsEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetTransformFeedbackVaryingEXT, "glGetTransformFeedbackVaryingEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_direct_state_access() + { + if(!extIsSupported("GL_EXT_direct_state_access")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glClientAttribDefaultEXT, "glClientAttribDefaultEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glPushClientAttribDefaultEXT, "glPushClientAttribDefaultEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixLoadfEXT, "glMatrixLoadfEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixLoaddEXT, "glMatrixLoaddEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixMultfEXT, "glMatrixMultfEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixMultdEXT, "glMatrixMultdEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixLoadIdentityEXT, "glMatrixLoadIdentityEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixRotatefEXT, "glMatrixRotatefEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixRotatedEXT, "glMatrixRotatedEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixScalefEXT, "glMatrixScalefEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixScaledEXT, "glMatrixScaledEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixTranslatefEXT, "glMatrixTranslatefEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixTranslatedEXT, "glMatrixTranslatedEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixFrustumEXT, "glMatrixFrustumEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixOrthoEXT, "glMatrixOrthoEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixPopEXT, "glMatrixPopEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixPushEXT, "glMatrixPushEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixLoadTransposefEXT, "glMatrixLoadTransposefEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixLoadTransposedEXT, "glMatrixLoadTransposedEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixMultTransposefEXT, "glMatrixMultTransposefEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMatrixMultTransposedEXT, "glMatrixMultTransposedEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTextureParameterfEXT, "glTextureParameterfEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTextureParameterfvEXT, "glTextureParameterfvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTextureParameteriEXT, "glTextureParameteriEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTextureParameterivEXT, "glTextureParameterivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTextureImage1DEXT, "glTextureImage1DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTextureImage2DEXT, "glTextureImage2DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTextureSubImage1DEXT, "glTextureSubImage1DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTextureSubImage2DEXT, "glTextureSubImage2DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyTextureImage1DEXT, "glCopyTextureImage1DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyTextureImage2DEXT, "glCopyTextureImage2DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyTextureSubImage1DEXT, "glCopyTextureSubImage1DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyTextureSubImage2DEXT, "glCopyTextureSubImage2DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetTextureImageEXT, "glGetTextureImageEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetTextureParameterfvEXT, "glGetTextureParameterfvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetTextureParameterivEXT, "glGetTextureParameterivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetTextureLevelParameterfvEXT, "glGetTextureLevelParameterfvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetTextureLevelParameterivEXT, "glGetTextureLevelParameterivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTextureImage3DEXT, "glTextureImage3DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTextureSubImage3DEXT, "glTextureSubImage3DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyTextureSubImage3DEXT, "glCopyTextureSubImage3DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexParameterfEXT, "glMultiTexParameterfEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexParameterfvEXT, "glMultiTexParameterfvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexParameteriEXT, "glMultiTexParameteriEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexParameterivEXT, "glMultiTexParameterivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexImage1DEXT, "glMultiTexImage1DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexImage2DEXT, "glMultiTexImage2DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexSubImage1DEXT, "glMultiTexSubImage1DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexSubImage2DEXT, "glMultiTexSubImage2DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyMultiTexImage1DEXT, "glCopyMultiTexImage1DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyMultiTexImage2DEXT, "glCopyMultiTexImage2DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyMultiTexSubImage1DEXT, "glCopyMultiTexSubImage1DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyMultiTexSubImage2DEXT, "glCopyMultiTexSubImage2DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMultiTexImageEXT, "glGetMultiTexImageEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMultiTexParameterfvEXT, "glGetMultiTexParameterfvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMultiTexParameterivEXT, "glGetMultiTexParameterivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMultiTexLevelParameterfvEXT, "glGetMultiTexLevelParameterfvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMultiTexLevelParameterivEXT, "glGetMultiTexLevelParameterivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexImage3DEXT, "glMultiTexImage3DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexSubImage3DEXT, "glMultiTexSubImage3DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyMultiTexSubImage3DEXT, "glCopyMultiTexSubImage3DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindMultiTextureEXT, "glBindMultiTextureEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glEnableClientStateIndexedEXT, "glEnableClientStateIndexedEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDisableClientStateIndexedEXT, "glDisableClientStateIndexedEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoordPointerEXT, "glMultiTexCoordPointerEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexEnvfEXT, "glMultiTexEnvfEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexEnvfvEXT, "glMultiTexEnvfvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexEnviEXT, "glMultiTexEnviEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexEnvivEXT, "glMultiTexEnvivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexGendEXT, "glMultiTexGendEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexGendvEXT, "glMultiTexGendvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexGenfEXT, "glMultiTexGenfEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexGenfvEXT, "glMultiTexGenfvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexGeniEXT, "glMultiTexGeniEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexGenivEXT, "glMultiTexGenivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMultiTexEnvfvEXT, "glGetMultiTexEnvfvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMultiTexEnvivEXT, "glGetMultiTexEnvivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMultiTexGendvEXT, "glGetMultiTexGendvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMultiTexGenfvEXT, "glGetMultiTexGenfvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMultiTexGenivEXT, "glGetMultiTexGenivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetFloatIndexedvEXT, "glGetFloatIndexedvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetDoubleIndexedvEXT, "glGetDoubleIndexedvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetPointerIndexedvEXT, "glGetPointerIndexedvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCompressedTextureImage3DEXT, "glCompressedTextureImage3DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCompressedTextureImage2DEXT, "glCompressedTextureImage2DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCompressedTextureImage1DEXT, "glCompressedTextureImage1DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCompressedTextureSubImage3DEXT, "glCompressedTextureSubImage3DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCompressedTextureSubImage2DEXT, "glCompressedTextureSubImage2DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCompressedTextureSubImage1DEXT, "glCompressedTextureSubImage1DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetCompressedTextureImageEXT, "glGetCompressedTextureImageEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCompressedMultiTexImage3DEXT, "glCompressedMultiTexImage3DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCompressedMultiTexImage2DEXT, "glCompressedMultiTexImage2DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCompressedMultiTexImage1DEXT, "glCompressedMultiTexImage1DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCompressedMultiTexSubImage3DEXT, "glCompressedMultiTexSubImage3DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCompressedMultiTexSubImage2DEXT, "glCompressedMultiTexSubImage2DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCompressedMultiTexSubImage1DEXT, "glCompressedMultiTexSubImage1DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetCompressedMultiTexImageEXT, "glGetCompressedMultiTexImageEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedProgramStringEXT, "glNamedProgramStringEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameter4dEXT, "glNamedProgramLocalParameter4dEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameter4dvEXT, "glNamedProgramLocalParameter4dvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameter4fEXT, "glNamedProgramLocalParameter4fEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameter4fvEXT, "glNamedProgramLocalParameter4fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetNamedProgramLocalParameterdvEXT, "glGetNamedProgramLocalParameterdvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetNamedProgramLocalParameterfvEXT, "glGetNamedProgramLocalParameterfvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetNamedProgramivEXT, "glGetNamedProgramivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetNamedProgramStringEXT, "glGetNamedProgramStringEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameters4fvEXT, "glNamedProgramLocalParameters4fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameterI4iEXT, "glNamedProgramLocalParameterI4iEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameterI4ivEXT, "glNamedProgramLocalParameterI4ivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedProgramLocalParametersI4ivEXT, "glNamedProgramLocalParametersI4ivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameterI4uiEXT, "glNamedProgramLocalParameterI4uiEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameterI4uivEXT, "glNamedProgramLocalParameterI4uivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedProgramLocalParametersI4uivEXT, "glNamedProgramLocalParametersI4uivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetNamedProgramLocalParameterIivEXT, "glGetNamedProgramLocalParameterIivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetNamedProgramLocalParameterIuivEXT, "glGetNamedProgramLocalParameterIuivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTextureParameterIivEXT, "glTextureParameterIivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTextureParameterIuivEXT, "glTextureParameterIuivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetTextureParameterIivEXT, "glGetTextureParameterIivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetTextureParameterIuivEXT, "glGetTextureParameterIuivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexParameterIivEXT, "glMultiTexParameterIivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexParameterIuivEXT, "glMultiTexParameterIuivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMultiTexParameterIivEXT, "glGetMultiTexParameterIivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMultiTexParameterIuivEXT, "glGetMultiTexParameterIuivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform1fEXT, "glProgramUniform1fEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform2fEXT, "glProgramUniform2fEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform3fEXT, "glProgramUniform3fEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform4fEXT, "glProgramUniform4fEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform1iEXT, "glProgramUniform1iEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform2iEXT, "glProgramUniform2iEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform3iEXT, "glProgramUniform3iEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform4iEXT, "glProgramUniform4iEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform1fvEXT, "glProgramUniform1fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform2fvEXT, "glProgramUniform2fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform3fvEXT, "glProgramUniform3fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform4fvEXT, "glProgramUniform4fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform1ivEXT, "glProgramUniform1ivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform2ivEXT, "glProgramUniform2ivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform3ivEXT, "glProgramUniform3ivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform4ivEXT, "glProgramUniform4ivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformMatrix2fvEXT, "glProgramUniformMatrix2fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformMatrix3fvEXT, "glProgramUniformMatrix3fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformMatrix4fvEXT, "glProgramUniformMatrix4fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformMatrix2x3fvEXT, "glProgramUniformMatrix2x3fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformMatrix3x2fvEXT, "glProgramUniformMatrix3x2fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformMatrix2x4fvEXT, "glProgramUniformMatrix2x4fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformMatrix4x2fvEXT, "glProgramUniformMatrix4x2fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformMatrix3x4fvEXT, "glProgramUniformMatrix3x4fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformMatrix4x3fvEXT, "glProgramUniformMatrix4x3fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform1uiEXT, "glProgramUniform1uiEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform2uiEXT, "glProgramUniform2uiEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMultiTexParameterIuivEXT, "glGetMultiTexParameterIuivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform1fEXT, "glProgramUniform1fEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform2fEXT, "glProgramUniform2fEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform3fEXT, "glProgramUniform3fEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform4fEXT, "glProgramUniform4fEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform1iEXT, "glProgramUniform1iEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform2iEXT, "glProgramUniform2iEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform3iEXT, "glProgramUniform3iEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform4iEXT, "glProgramUniform4iEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform1fvEXT, "glProgramUniform1fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform2fvEXT, "glProgramUniform2fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform3fvEXT, "glProgramUniform3fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform4fvEXT, "glProgramUniform4fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform1ivEXT, "glProgramUniform1ivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform2ivEXT, "glProgramUniform2ivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform3ivEXT, "glProgramUniform3ivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform4ivEXT, "glProgramUniform4ivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformMatrix2fvEXT, "glProgramUniformMatrix2fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformMatrix3fvEXT, "glProgramUniformMatrix3fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformMatrix4fvEXT, "glProgramUniformMatrix4fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformMatrix2x3fvEXT, "glProgramUniformMatrix2x3fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformMatrix3x2fvEXT, "glProgramUniformMatrix3x2fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformMatrix2x4fvEXT, "glProgramUniformMatrix2x4fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformMatrix4x2fvEXT, "glProgramUniformMatrix4x2fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformMatrix3x4fvEXT, "glProgramUniformMatrix3x4fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformMatrix4x3fvEXT, "glProgramUniformMatrix4x3fvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform1uiEXT, "glProgramUniform1uiEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform2uiEXT, "glProgramUniform2uiEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform3uiEXT, "glProgramUniform3uiEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform4uiEXT, "glProgramUniform4uiEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform1uivEXT, "glProgramUniform1uivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform2uivEXT, "glProgramUniform2uivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform3uivEXT, "glProgramUniform3uivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniform4uivEXT, "glProgramUniform4uivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedBufferDataEXT, "glNamedBufferDataEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedBufferSubDataEXT, "glNamedBufferSubDataEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMapNamedBufferEXT, "glMapNamedBufferEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUnmapNamedBufferEXT, "glUnmapNamedBufferEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetNamedBufferParameterivEXT, "glGetNamedBufferParameterivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetNamedBufferPointervEXT, "glGetNamedBufferPointervEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetNamedBufferSubDataEXT, "glGetNamedBufferSubDataEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTextureBufferEXT, "glTextureBufferEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexBufferEXT, "glMultiTexBufferEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedRenderbufferStorageEXT, "glNamedRenderbufferStorageEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetNamedRenderbufferParameterivEXT, "glGetNamedRenderbufferParameterivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCheckNamedFramebufferStatusEXT, "glCheckNamedFramebufferStatusEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedFramebufferTexture1DEXT, "glNamedFramebufferTexture1DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedFramebufferTexture2DEXT, "glNamedFramebufferTexture2DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedFramebufferTexture3DEXT, "glNamedFramebufferTexture3DEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedFramebufferRenderbufferEXT, "glNamedFramebufferRenderbufferEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetNamedFramebufferAttachmentParameterivEXT, "glGetNamedFramebufferAttachmentParameterivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenerateTextureMipmapEXT, "glGenerateTextureMipmapEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenerateMultiTexMipmapEXT, "glGenerateMultiTexMipmapEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFramebufferDrawBufferEXT, "glFramebufferDrawBufferEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFramebufferDrawBuffersEXT, "glFramebufferDrawBuffersEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFramebufferReadBufferEXT, "glFramebufferReadBufferEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetFramebufferParameterivEXT, "glGetFramebufferParameterivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedRenderbufferStorageMultisampleEXT, "glNamedRenderbufferStorageMultisampleEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedRenderbufferStorageMultisampleCoverageEXT, "glNamedRenderbufferStorageMultisampleCoverageEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedFramebufferTextureEXT, "glNamedFramebufferTextureEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedFramebufferTextureLayerEXT, "glNamedFramebufferTextureLayerEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedFramebufferTextureFaceEXT, "glNamedFramebufferTextureFaceEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTextureRenderbufferEXT, "glTextureRenderbufferEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexRenderbufferEXT, "glMultiTexRenderbufferEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_vertex_array_bgra() + { + if(!extIsSupported("GL_EXT_vertex_array_bgra")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture_swizzle() + { + if(!extIsSupported("GL_EXT_texture_swizzle")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_provoking_vertex() + { + if(!extIsSupported("GL_EXT_provoking_vertex")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glProvokingVertexEXT, "glProvokingVertexEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_texture_snorm() + { + if(!extIsSupported("GL_EXT_texture_snorm")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_EXT_separate_shader_objects() + { + if(!extIsSupported("GL_EXT_separate_shader_objects")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glUseShaderProgramEXT, "glUseShaderProgramEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glActiveProgramEXT, "glActiveProgramEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCreateShaderProgramEXT, "glCreateShaderProgramEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_NV) + { + GLExtensionState load_GL_NV_texgen_reflection() + { + if(!extIsSupported("GL_NV_texgen_reflection")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_light_max_exponent() + { + if(!extIsSupported("GL_NV_light_max_exponent")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_vertex_array_range() + { + if(!extIsSupported("GL_NV_vertex_array_range")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glFlushVertexArrayRangeNV, "glFlushVertexArrayRangeNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexArrayRangeNV, "glVertexArrayRangeNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_register_combiners() + { + if(!extIsSupported("GL_NV_register_combiners")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glCombinerParameterfvNV, "glCombinerParameterfvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCombinerParameterfNV, "glCombinerParameterfNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCombinerParameterivNV, "glCombinerParameterivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCombinerParameteriNV, "glCombinerParameteriNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCombinerInputNV, "glCombinerInputNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCombinerOutputNV, "glCombinerOutputNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFinalCombinerInputNV, "glFinalCombinerInputNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetCombinerInputParameterfvNV, "glGetCombinerInputParameterfvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetCombinerInputParameterivNV, "glGetCombinerInputParameterivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetCombinerOutputParameterfvNV, "glGetCombinerOutputParameterfvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetCombinerOutputParameterivNV, "glGetCombinerOutputParameterivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetFinalCombinerInputParameterfvNV, "glGetFinalCombinerInputParameterfvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetFinalCombinerInputParameterivNV, "glGetFinalCombinerInputParameterivNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_fog_distance() + { + if(!extIsSupported("GL_NV_fog_distance")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_texgen_emboss() + { + if(!extIsSupported("GL_NV_texgen_emboss")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_blend_square() + { + if(!extIsSupported("GL_NV_blend_square")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_texture_env_combine4() + { + if(!extIsSupported("GL_NV_texture_env_combine4")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_fence() + { + if(!extIsSupported("GL_NV_fence")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glDeleteFencesNV, "glDeleteFencesNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenFencesNV, "glGenFencesNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsFenceNV, "glIsFenceNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTestFenceNV, "glTestFenceNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetFenceivNV, "glGetFenceivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFinishFenceNV, "glFinishFenceNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSetFenceNV, "glSetFenceNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_evaluators() + { + if(!extIsSupported("GL_NV_evaluators")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glMapControlPointsNV, "glMapControlPointsNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMapParameterivNV, "glMapParameterivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMapParameterfvNV, "glMapParameterfvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMapControlPointsNV, "glGetMapControlPointsNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMapParameterivNV, "glGetMapParameterivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMapParameterfvNV, "glGetMapParameterfvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMapAttribParameterivNV, "glGetMapAttribParameterivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetMapAttribParameterfvNV, "glGetMapAttribParameterfvNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_packed_depth_stencil() + { + if(!extIsSupported("GL_NV_packed_depth_stencil")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_register_combiners2() + { + if(!extIsSupported("GL_NV_register_combiners2")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glCombinerStageParameterfvNV, "glCombinerStageParameterfvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetCombinerStageParameterfvNV, "glGetCombinerStageParameterfvNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_texture_compression_vtc() + { + if(!extIsSupported("GL_NV_texture_compression_vtc")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_texture_rectangle() + { + if(!extIsSupported("GL_NV_texture_shader")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_texture_shader() + { + if(!extIsSupported("GL_NV_texture_shader")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_texture_shader2() + { + if(!extIsSupported("GL_NV_texture_shader2")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_vertex_array_range2() + { + if(!extIsSupported("GL_NV_vertex_array_range2")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_vertex_program() + { + if(!extIsSupported("GL_NV_vertex_program")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glAreProgramsResidentNV, "glAreProgramsResidentNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindProgramNV, "glBindProgramNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeleteProgramsNV, "glDeleteProgramsNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glExecuteProgramNV, "glExecuteProgramNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenProgramsNV, "glGenProgramsNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetProgramParameterdvNV, "glGetProgramParameterdvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetProgramParameterfvNV, "glGetProgramParameterfvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetProgramivNV, "glGetProgramivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetProgramStringNV, "glGetProgramStringNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetTrackMatrixivNV, "glGetTrackMatrixivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVertexAttribdvNV, "glGetVertexAttribdvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVertexAttribfvNV, "glGetVertexAttribfvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVertexAttribivNV, "glGetVertexAttribivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVertexAttribPointervNV, "glGetVertexAttribPointervNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsProgramNV, "glIsProgramNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glLoadProgramNV, "glLoadProgramNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramParameter4dNV, "glProgramParameter4dNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramParameter4dvNV, "glProgramParameter4dvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramParameter4fNV, "glProgramParameter4fNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramParameter4fvNV, "glProgramParameter4fvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramParameters4dvNV, "glProgramParameters4dvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramParameters4fvNV, "glProgramParameters4fvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glRequestResidentProgramsNV, "glRequestResidentProgramsNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTrackMatrixNV, "glTrackMatrixNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribPointerNV, "glVertexAttribPointerNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib1dNV, "glVertexAttrib1dNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib1dvNV, "glVertexAttrib1dvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib1fNV, "glVertexAttrib1fNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib1fvNV, "glVertexAttrib1fvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib1sNV, "glVertexAttrib1sNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib1svNV, "glVertexAttrib1svNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib2dNV, "glVertexAttrib2dNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib2dvNV, "glVertexAttrib2dvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib2fNV, "glVertexAttrib2fNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib2fvNV, "glVertexAttrib2fvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib2sNV, "glVertexAttrib2sNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib2svNV, "glVertexAttrib2svNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib3dNV, "glVertexAttrib3dNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib3dvNV, "glVertexAttrib3dvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib3fNV, "glVertexAttrib3fNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib3fvNV, "glVertexAttrib3fvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib3sNV, "glVertexAttrib3sNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib3svNV, "glVertexAttrib3svNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4dNV, "glVertexAttrib4dNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4dvNV, "glVertexAttrib4dvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4fNV, "glVertexAttrib4fNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4fvNV, "glVertexAttrib4fvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4sNV, "glVertexAttrib4sNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4svNV, "glVertexAttrib4svNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4ubNV, "glVertexAttrib4ubNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4ubvNV, "glVertexAttrib4ubvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribs1dvNV, "glVertexAttribs1dvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribs1fvNV, "glVertexAttribs1fvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribs1svNV, "glVertexAttribs1svNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribs2dvNV, "glVertexAttribs2dvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribs2fvNV, "glVertexAttribs2fvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribs2svNV, "glVertexAttribs2svNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribs3dvNV, "glVertexAttribs3dvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribs3fvNV, "glVertexAttribs3fvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribs3svNV, "glVertexAttribs3svNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribs4dvNV, "glVertexAttribs4dvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribs4fvNV, "glVertexAttribs4fvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribs4svNV, "glVertexAttribs4svNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribs4ubvNV, "glVertexAttribs4ubvNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_copy_depth_to_color() + { + if(!extIsSupported("GL_NV_copy_depth_to_color")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_multisample_filter_hint() + { + if(!extIsSupported("GL_NV_multisample_filter_hint")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_depth_clamp() + { + if(!extIsSupported("GL_NV_depth_clamp")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_occlusion_query() + { + if(!extIsSupported("GL_NV_occlusion_query")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glGenOcclusionQueriesNV, "glGenOcclusionQueriesNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeleteOcclusionQueriesNV, "glDeleteOcclusionQueriesNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsOcclusionQueryNV, "glIsOcclusionQueryNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBeginOcclusionQueryNV, "glBeginOcclusionQueryNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glEndOcclusionQueryNV, "glEndOcclusionQueryNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetOcclusionQueryivNV, "glGetOcclusionQueryivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetOcclusionQueryuivNV, "glGetOcclusionQueryuivNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_point_sprite() + { + if(!extIsSupported("GL_NV_point_sprite")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glPointParameteriNV, "glPointParameteriNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glPointParameterivNV, "glPointParameterivNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_texture_shader3() + { + if(!extIsSupported("GL_NV_texture_shader3")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_vertex_program1_1() + { + if(!extIsSupported("GL_NV_vertex_program1_1")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_float_buffer() + { + if(!extIsSupported("GL_NV_float_buffer")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_fragment_program() + { + if(!extIsSupported("GL_NV_fragment_program")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glProgramNamedParameter4fNV, "glProgramNamedParameter4fNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramNamedParameter4dNV, "glProgramNamedParameter4dNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramNamedParameter4fvNV, "glProgramNamedParameter4fvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramNamedParameter4dvNV, "glProgramNamedParameter4dvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetProgramNamedParameterfvNV, "glGetProgramNamedParameterfvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetProgramNamedParameterdvNV, "glGetProgramNamedParameterdvNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_half_float() + { + if(!extIsSupported("GL_NV_half_float")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glVertex2hNV, "glVertex2hNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertex2hvNV, "glVertex2hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertex3hNV, "glVertex3hNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertex3hvNV, "glVertex3hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertex4hNV, "glVertex4hNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertex4hvNV, "glVertex4hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormal3hNV, "glNormal3hNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormal3hvNV, "glNormal3hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColor3hNV, "glColor3hNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColor3hvNV, "glColor3hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColor4hNV, "glColor4hNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColor4hvNV, "glColor4hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord1hNV, "glTexCoord1hNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord1hvNV, "glTexCoord1hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord2hNV, "glTexCoord2hNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord2hvNV, "glTexCoord2hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord3hNV, "glTexCoord3hNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord3hvNV, "glTexCoord3hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord4hNV, "glTexCoord4hNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord4hvNV, "glTexCoord4hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord1hNV, "glMultiTexCoord1hNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord1hvNV, "glMultiTexCoord1hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord2hNV, "glMultiTexCoord2hNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord2hvNV, "glMultiTexCoord2hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord3hNV, "glMultiTexCoord3hNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord3hvNV, "glMultiTexCoord3hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord4hNV, "glMultiTexCoord4hNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiTexCoord4hvNV, "glMultiTexCoord4hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFogCoordhNV, "glFogCoordhNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFogCoordhvNV, "glFogCoordhvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColor3hNV, "glSecondaryColor3hNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColor3hvNV, "glSecondaryColor3hvNV")) + return GLExtensionState.FailedToLoad; +// if(!bindExtFunc(cast(void**)&glVertexWeighthNV, "glVertexWeighthNV")) +// return GLExtensionState.FailedToLoad; +// if(!bindExtFunc(cast(void**)&glVertexWeighthvNV, "glVertexWeighthvNV")) +// return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib1hNV, "glVertexAttrib1hNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib1hvNV, "glVertexAttrib1hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib2hNV, "glVertexAttrib2hNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib2hvNV, "glVertexAttrib2hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib3hNV, "glVertexAttrib3hNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib3hvNV, "glVertexAttrib3hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4hNV, "glVertexAttrib4hNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttrib4hvNV, "glVertexAttrib4hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribs1hvNV, "glVertexAttribs1hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribs2hvNV, "glVertexAttribs2hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribs3hvNV, "glVertexAttribs3hvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribs4hvNV, "glVertexAttribs4hvNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_pixel_data_range() + { + if(!extIsSupported("GL_NV_pixel_data_range")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glPixelDataRangeNV, "glPixelDataRangeNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFlushPixelDataRangeNV, "glFlushPixelDataRangeNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_primitive_restart() + { + if(!extIsSupported("GL_NV_primitive_restart")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glPrimitiveRestartNV, "glPrimitiveRestartNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glPrimitiveRestartIndexNV, "glPrimitiveRestartIndexNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_texture_expand_normal() + { + if(!extIsSupported("GL_NV_texture_expand_normal")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_vertex_program2() + { + if(!extIsSupported("GL_NV_vertex_program2")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_fragment_program_option() + { + if(!extIsSupported("GL_NV_fragment_program_option")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_fragment_program2() + { + if(!extIsSupported("GL_NV_fragment_program2")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_vertex_program2_option() + { + if(!extIsSupported("GL_NV_vertex_program2_option")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_vertex_program3() + { + if(!extIsSupported("GL_NV_vertex_program3")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_gpu_program4() + { + if(!extIsSupported("GL_NV_gpu_program4")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glProgramLocalParameterI4iNV, "glProgramLocalParameterI4iNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramLocalParameterI4ivNV, "glProgramLocalParameterI4ivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramLocalParametersI4ivNV, "glProgramLocalParametersI4ivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramLocalParameterI4uiNV, "glProgramLocalParameterI4uiNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramLocalParameterI4uivNV, "glProgramLocalParameterI4uivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramLocalParametersI4uivNV, "glProgramLocalParametersI4uivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramEnvParameterI4iNV, "glProgramEnvParameterI4iNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramEnvParameterI4ivNV, "glProgramEnvParameterI4ivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramEnvParametersI4ivNV, "glProgramEnvParametersI4ivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramEnvParameterI4uiNV, "glProgramEnvParameterI4uiNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramEnvParameterI4uivNV, "glProgramEnvParameterI4uivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramEnvParametersI4uivNV, "glProgramEnvParametersI4uivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetProgramLocalParameterIivNV, "glGetProgramLocalParameterIivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetProgramLocalParameterIuivNV, "glGetProgramLocalParameterIuivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetProgramEnvParameterIivNV, "glGetProgramEnvParameterIivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetProgramEnvParameterIuivNV, "glGetProgramEnvParameterIuivNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_geometry_program4() + { + if(!extIsSupported("GL_NV_geometry_program4")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glProgramVertexLimitNV, "glProgramVertexLimitNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFramebufferTextureEXT, "glFramebufferTextureEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFramebufferTextureLayerEXT, "glFramebufferTextureLayerEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFramebufferTextureFaceEXT, "glFramebufferTextureFaceEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_vertex_program4() + { + if(!extIsSupported("GL_NV_vertex_program4")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glVertexAttribI1iEXT, "glVertexAttribI1iEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribI2iEXT, "glVertexAttribI2iEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribI3iEXT, "glVertexAttribI3iEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribI4iEXT, "glVertexAttribI4iEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribI1uiEXT, "glVertexAttribI1uiEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribI2uiEXT, "glVertexAttribI2uiEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribI3uiEXT, "glVertexAttribI3uiEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribI4uiEXT, "glVertexAttribI4uiEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribI1ivEXT, "glVertexAttribI1ivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribI2ivEXT, "glVertexAttribI2ivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribI3ivEXT, "glVertexAttribI3ivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribI4ivEXT, "glVertexAttribI4ivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribI1uivEXT, "glVertexAttribI1uivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribI2uivEXT, "glVertexAttribI2uivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribI3uivEXT, "glVertexAttribI3uivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribI4uivEXT, "glVertexAttribI4uivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribI4bvEXT, "glVertexAttribI4bvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribI4svEXT, "glVertexAttribI4svEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribI4ubvEXT, "glVertexAttribI4ubvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribI4usvEXT, "glVertexAttribI4usvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribIPointerEXT, "glVertexAttribIPointerEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVertexAttribIivEXT, "glGetVertexAttribIivEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVertexAttribIuivEXT, "glGetVertexAttribIuivEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_depth_buffer_float() + { + if(!extIsSupported("GL_NV_depth_buffer_float")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glDepthRangedNV, "glDepthRangedNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glClearDepthdNV, "glClearDepthdNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDepthBoundsdNV, "glDepthBoundsdNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_fragment_program4() + { + if(!extIsSupported("GL_NV_fragment_program4")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_framebuffer_multisample_coverage() + { + if(!extIsSupported("GL_NV_framebuffer_multisample_coverage")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glRenderbufferStorageMultisampleCoverageNV, "glRenderbufferStorageMultisampleCoverageNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_geometry_shader4() + { + if(!extIsSupported("GL_NV_geometry_shader4")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_transform_feedback() + { + if(!extIsSupported("GL_NV_transform_feedback")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glBeginTransformFeedbackNV, "glBeginTransformFeedbackNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glEndTransformFeedbackNV, "glEndTransformFeedbackNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTransformFeedbackAttribsNV, "glTransformFeedbackAttribsNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindBufferRangeNV, "glBindBufferRangeNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindBufferOffsetNV, "glBindBufferOffsetNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindBufferBaseNV, "glBindBufferBaseNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTransformFeedbackVaryingsNV, "glTransformFeedbackVaryingsNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glActiveVaryingNV, "glActiveVaryingNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVaryingLocationNV, "glGetVaryingLocationNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetActiveVaryingNV, "glGetActiveVaryingNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetTransformFeedbackVaryingNV, "glGetTransformFeedbackVaryingNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_conditional_render() + { + if(!extIsSupported("GL_NV_conditional_render")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glBeginConditionalRenderNV, "glBeginConditionalRenderNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glEndConditionalRenderNV, "glEndConditionalRenderNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_present_video() + { + if(!extIsSupported("GL_NV_present_video")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glPresentFrameKeyedNV, "glPresentFrameKeyedNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glPresentFrameDualFillNV, "glPresentFrameDualFillNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVideoivNV, "glGetVideoivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVideouivNV, "glGetVideouivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVideoi64vNV, "glGetVideoi64vNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVideoui64vNV, "glGetVideoui64vNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_explicit_multisample() + { + if(!extIsSupported("GL_NV_explicit_multisample")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glGetMultisamplefvNV, "glGetMultisamplefvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSampleMaskIndexedNV, "glSampleMaskIndexedNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexRenderbufferNV, "glTexRenderbufferNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_transform_feedback2() + { + if(!extIsSupported("GL_NV_transform_feedback2")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glBindTransformFeedbackNV, "glBindTransformFeedbackNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeleteTransformFeedbacksNV, "glDeleteTransformFeedbacksNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenTransformFeedbacksNV, "glGenTransformFeedbacksNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsTransformFeedbackNV, "glIsTransformFeedbackNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glPauseTransformFeedbackNV, "glPauseTransformFeedbackNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glResumeTransformFeedbackNV, "glResumeTransformFeedbackNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDrawTransformFeedbackNV, "glDrawTransformFeedbackNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_video_capture() + { + if(!extIsSupported("GL_NV_video_capture")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glBeginVideoCaptureNV, "glBeginVideoCaptureNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindVideoCaptureStreamBufferNV, "glBindVideoCaptureStreamBufferNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindVideoCaptureStreamTextureNV, "glBindVideoCaptureStreamTextureNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glEndVideoCaptureNV, "glEndVideoCaptureNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVideoCaptureivNV, "glGetVideoCaptureivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVideoCaptureStreamivNV, "glGetVideoCaptureStreamivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVideoCaptureStreamfvNV, "glGetVideoCaptureStreamfvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVideoCaptureStreamdvNV, "glGetVideoCaptureStreamdvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVideoCaptureNV, "glVideoCaptureNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVideoCaptureStreamParameterivNV, "glVideoCaptureStreamParameterivNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVideoCaptureStreamParameterfvNV, "glVideoCaptureStreamParameterfvNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVideoCaptureStreamParameterdvNV, "glVideoCaptureStreamParameterdvNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_copy_image() + { + if(!extIsSupported("GL_NV_copy_image")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glCopyImageSubDataNV, "glCopyImageSubDataNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_parameter_buffer_object2() + { + if(!extIsSupported("GL_NV_parameter_buffer_object2")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_shader_buffer_load() + { + if(!extIsSupported("GL_NV_shader_buffer_load")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glMakeBufferResidentNV, "glMakeBufferResidentNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMakeBufferNonResidentNV, "glMakeBufferNonResidentNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsBufferResidentNV, "glIsBufferResidentNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedMakeBufferResidentNV, "glNamedMakeBufferResidentNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNamedMakeBufferNonResidentNV, "glNamedMakeBufferNonResidentNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsNamedBufferResidentNV, "glIsNamedBufferResidentNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetBufferParameterui64vNV, "glGetBufferParameterui64vNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetNamedBufferParameterui64vNV, "glGetNamedBufferParameterui64vNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetIntegerui64vNV, "glGetIntegerui64vNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniformui64NV, "glUniformui64NV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUniformui64vNV, "glUniformui64vNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetUniformui64vNV, "glGetUniformui64vNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformui64NV, "glProgramUniformui64NV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glProgramUniformui64vNV, "glProgramUniformui64vNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_vertex_buffer_unified_memory() + { + if(!extIsSupported("GL_NV_vertex_buffer_unified_memory")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glBufferAddressRangeNV, "glBufferAddressRangeNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexFormatNV, "glVertexFormatNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormalFormatNV, "glNormalFormatNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColorFormatNV, "glColorFormatNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIndexFormatNV, "glIndexFormatNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoordFormatNV, "glTexCoordFormatNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glEdgeFlagFormatNV, "glEdgeFlagFormatNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColorFormatNV, "glSecondaryColorFormatNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFogCoordFormatNV, "glFogCoordFormatNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribFormatNV, "glVertexAttribFormatNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexAttribIFormatNV, "glVertexAttribIFormatNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetIntegerui64i_vNV, "glGetIntegerui64i_vNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_NV_texture_barrier() + { + if(!extIsSupported("GL_NV_texture_barrier")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glTextureBarrierNV, "glTextureBarrierNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_ATI) + { + GLExtensionState load_GL_ATI_texture_mirror_once() + { + if(!extIsSupported("GL_ATI_texture_mirror_once")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ATI_envmap_bumpmap() + { + if(!extIsSupported("GL_ATI_envmap_bumpmap")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glTexBumpParameterivATI, "glTexBumpParameterivATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexBumpParameterfvATI, "glTexBumpParameterfvATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetTexBumpParameterivATI, "glGetTexBumpParameterivATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetTexBumpParameterfvATI, "glGetTexBumpParameterfvATI")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ATI_fragment_shader() + { + if(!extIsSupported("GL_ATI_fragment_shader")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glGenFragmentShadersATI, "glGenFragmentShadersATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBindFragmentShaderATI, "glBindFragmentShaderATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeleteFragmentShaderATI, "glDeleteFragmentShaderATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBeginFragmentShaderATI, "glBeginFragmentShaderATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glEndFragmentShaderATI, "glEndFragmentShaderATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glPassTexCoordATI, "glPassTexCoordATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSampleMapATI, "glSampleMapATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColorFragmentOp1ATI, "glColorFragmentOp1ATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColorFragmentOp2ATI, "glColorFragmentOp2ATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColorFragmentOp3ATI, "glColorFragmentOp3ATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glAlphaFragmentOp1ATI, "glAlphaFragmentOp1ATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glAlphaFragmentOp2ATI, "glAlphaFragmentOp2ATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glAlphaFragmentOp3ATI, "glAlphaFragmentOp3ATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSetFragmentShaderConstantATI, "glSetFragmentShaderConstantATI")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ATI_pn_triangles() + { + if(!extIsSupported("GL_ATI_pn_triangles")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glPNTrianglesiATI, "glPNTrianglesiATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glPNTrianglesfATI, "glPNTrianglesfATI")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ATI_vertex_array_object() + { + if(!extIsSupported("GL_ATI_vertex_array_object")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glNewObjectBufferATI, "glNewObjectBufferATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsObjectBufferATI, "glIsObjectBufferATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUpdateObjectBufferATI, "glUpdateObjectBufferATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetObjectBufferfvATI, "glGetObjectBufferfvATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetObjectBufferivATI, "glGetObjectBufferivATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFreeObjectBufferATI, "glFreeObjectBufferATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glArrayObjectATI, "glArrayObjectATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetArrayObjectfvATI, "glGetArrayObjectfvATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetArrayObjectivATI, "glGetArrayObjectivATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVariantArrayObjectATI, "glVariantArrayObjectATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVariantArrayObjectfvATI, "glGetVariantArrayObjectfvATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVariantArrayObjectivATI, "glGetVariantArrayObjectivATI")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ATI_vertex_streams() + { + if(!extIsSupported("GL_ATI_vertex_streams")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glVertexStream1sATI, "glVertexStream1sATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream1svATI, "glVertexStream1svATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream1iATI, "glVertexStream1iATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream1ivATI, "glVertexStream1ivATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream1fATI, "glVertexStream1fATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream1fvATI, "glVertexStream1fvATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream1dATI, "glVertexStream1dATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream1dvATI, "glVertexStream1dvATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream2sATI, "glVertexStream2sATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream2svATI, "glVertexStream2svATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream2iATI, "glVertexStream2iATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream2ivATI, "glVertexStream2ivATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream2fATI, "glVertexStream2fATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream2fvATI, "glVertexStream2fvATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream2dATI, "glVertexStream2dATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream2dvATI, "glVertexStream2dvATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream3sATI, "glVertexStream3sATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream3svATI, "glVertexStream3svATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream3iATI, "glVertexStream3iATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream3ivATI, "glVertexStream3ivATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream3fATI, "glVertexStream3fATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream3fvATI, "glVertexStream3fvATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream3dATI, "glVertexStream3dATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream3dvATI, "glVertexStream3dvATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream4sATI, "glVertexStream4sATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream4svATI, "glVertexStream4svATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream4iATI, "glVertexStream4iATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream4ivATI, "glVertexStream4ivATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream4fATI, "glVertexStream4fATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream4fvATI, "glVertexStream4fvATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream4dATI, "glVertexStream4dATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexStream4dvATI, "glVertexStream4dvATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormalStream3bATI, "glNormalStream3bATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormalStream3bvATI, "glNormalStream3bvATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormalStream3sATI, "glNormalStream3sATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormalStream3svATI, "glNormalStream3svATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormalStream3iATI, "glNormalStream3iATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormalStream3ivATI, "glNormalStream3ivATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormalStream3fATI, "glNormalStream3fATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormalStream3fvATI, "glNormalStream3fvATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormalStream3dATI, "glNormalStream3dATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormalStream3dvATI, "glNormalStream3dvATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glClientActiveVertexStreamATI, "glClientActiveVertexStreamATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexBlendEnviATI, "glVertexBlendEnviATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexBlendEnvfATI, "glVertexBlendEnvfATI")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ATI_element_array() + { + if(!extIsSupported("GL_ATI_element_array")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glElementPointerATI, "glElementPointerATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDrawElementArrayATI, "glDrawElementArrayATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDrawRangeElementArrayATI, "glDrawRangeElementArrayATI")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ATI_text_fragment_shader() + { + if(!extIsSupported("GL_ATI_text_fragment_shader")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ATI_draw_buffers() + { + if(!extIsSupported("GL_ATI_draw_buffers")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glDrawBuffersATI, "glDrawBuffersATI")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ATI_pixel_format_float() + { + if(!extIsSupported("GL_ATI_pixel_format_float")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ATI_texture_env_combine3() + { + if(!extIsSupported("GL_ATI_texture_env_combine3")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ATI_texture_float() + { + if(!extIsSupported("GL_ATI_texture_float")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ATI_map_object_buffer() + { + if(!extIsSupported("GL_ATI_map_object_buffer")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glMapBufferATI, "glMapBufferATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glUnmapBufferATI, "glUnmapBufferATI")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ATI_separate_stencil() + { + if(!extIsSupported("GL_ATI_separate_stencil")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glStencilOpSeparateATI, "glStencilOpSeparateATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glStencilFuncSeparateATI, "glStencilFuncSeparateATI")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ATI_vertex_attrib_array_object() + { + if(!extIsSupported("GL_ATI_vertex_attrib_array_object")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glVertexAttribArrayObjectATI, "glVertexAttribArrayObjectATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVertexAttribArrayObjectfvATI, "glGetVertexAttribArrayObjectfvATI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetVertexAttribArrayObjectivATI, "glGetVertexAttribArrayObjectivATI")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_ATI_meminfo() + { + if(!extIsSupported("GL_ATI_meminfo")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_AMD) + { + GLExtensionState load_GL_AMD_performance_monitor() + { + if(!extIsSupported("GL_AMD_performance_monitor")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glGetPerfMonitorGroupsAMD, "glGetPerfMonitorGroupsAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetPerfMonitorCountersAMD, "glGetPerfMonitorCountersAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetPerfMonitorGroupStringAMD, "glGetPerfMonitorGroupStringAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetPerfMonitorCounterStringAMD, "glGetPerfMonitorCounterStringAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetPerfMonitorCounterInfoAMD, "glGetPerfMonitorCounterInfoAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenPerfMonitorsAMD, "glGenPerfMonitorsAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeletePerfMonitorsAMD, "glDeletePerfMonitorsAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSelectPerfMonitorCountersAMD, "glSelectPerfMonitorCountersAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBeginPerfMonitorAMD, "glBeginPerfMonitorAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glEndPerfMonitorAMD, "glEndPerfMonitorAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetPerfMonitorCounterDataAMD, "glGetPerfMonitorCounterDataAMD")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_AMD_texture_texture4() + { + if(!extIsSupported("GL_AMD_texture_texture4")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_AMD_vertex_shader_tesselator() + { + if(!extIsSupported("GL_AMD_vertex_shader_tesselator")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glTessellationFactorAMD, "glTessellationFactorAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTessellationModeAMD, "glTessellationModeAMD")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_AMD_draw_buffers_blend() + { + if(!extIsSupported("GL_AMD_draw_buffers_blend")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glBlendFuncIndexedAMD, "glBlendFuncIndexedAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBlendFuncSeparateIndexedAMD, "glBlendFuncSeparateIndexedAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBlendEquationIndexedAMD, "glBlendEquationIndexedAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glBlendEquationSeparateIndexedAMD, "glBlendEquationSeparateIndexedAMD")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_SGI) + { + GLExtensionState load_GL_SGI_color_matrix() + { + if(!extIsSupported("GL_SGI_color_matrix")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGI_color_table() + { + if(!extIsSupported("GL_SGI_color_table")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glColorTableSGI, "glColorTableSGI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColorTableParameterfvSGI, "glColorTableParameterfvSGI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColorTableParameterivSGI, "glColorTableParameterivSGI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glCopyColorTableSGI, "glCopyColorTableSGI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetColorTableSGI, "glGetColorTableSGI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetColorTableParameterfvSGI, "glGetColorTableParameterfvSGI")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetColorTableParameterivSGI, "glGetColorTableParameterivSGI")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGI_texture_color_table() + { + if(!extIsSupported("GL_SGI_texture_color_table")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_SGIS) + { + GLExtensionState load_GL_SGIS_texture_filter4() + { + if(!extIsSupported("GL_SGIS_texture_filter4")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glGetTexFilterFuncSGIS, "glGetTexFilterFuncSGIS")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexFilterFuncSGIS, "glTexFilterFuncSGIS")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIS_pixel_texture() + { + if(!extIsSupported("GL_SGIS_pixel_texture")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glPixelTexGenParameteriSGIS, "glPixelTexGenParameteriSGIS")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glPixelTexGenParameterivSGIS, "glPixelTexGenParameterivSGIS")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glPixelTexGenParameterfSGIS, "glPixelTexGenParameterfSGIS")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glPixelTexGenParameterfvSGIS, "glPixelTexGenParameterfvSGIS")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetPixelTexGenParameterivSGIS, "glGetPixelTexGenParameterivSGIS")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetPixelTexGenParameterfvSGIS, "glGetPixelTexGenParameterfvSGIS")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIS_texture4D() + { + if(!extIsSupported("GL_SGIS_texture4D")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glTexImage4DSGIS, "glTexImage4DSGIS")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexSubImage4DSGIS, "glTexSubImage4DSGIS")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIS_detail_texture() + { + if(!extIsSupported("GL_SGIS_detail_texture")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glDetailTexFuncSGIS, "glDetailTexFuncSGIS")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetDetailTexFuncSGIS, "glGetDetailTexFuncSGIS")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIS_sharpen_texture() + { + if(!extIsSupported("GL_SGIS_sharpen_texture")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glSharpenTexFuncSGIS, "glSharpenTexFuncSGIS")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetSharpenTexFuncSGIS, "glGetSharpenTexFuncSGIS")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIS_texture_lod() + { + if(!extIsSupported("GL_SGIS_texture_lod")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIS_multisample() + { + if(!extIsSupported("GL_SGIS_multisample")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glSampleMaskSGIS, "glSampleMaskSGIS")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSamplePatternSGIS, "glSamplePatternSGIS")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIS_generate_mipmap() + { + if(!extIsSupported("GL_SGIS_generate_mipmap")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIS_texture_edge_clamp() + { + if(!extIsSupported("GL_SGIS_texture_edge_clamp")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIS_texture_border_clamp() + { + if(!extIsSupported("GL_SGIS_texture_border_clamp")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIS_texture_select() + { + if(!extIsSupported("GL_SGIS_texture_select")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIS_point_parameters() + { + if(!extIsSupported("GL_SGIS_point_parameters")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glPointParameterfSGIS, "glPointParameterfSGIS")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glPointParameterfvSGIS, "glPointParameterfvSGIS")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIS_fog_function() + { + if(!extIsSupported("GL_SGIS_fog_function")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glFogFuncSGIS, "glFogFuncSGIS")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetFogFuncSGIS, "glGetFogFuncSGIS")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIS_point_line_texgen() + { + if(!extIsSupported("GL_SGIS_point_line_texgen")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIS_texture_color_mask() + { + if(!extIsSupported("GL_SGIS_texture_color_mask")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glTextureColorMaskSGIS, "glTextureColorMaskSGIS")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_SGIX) + { + GLExtensionState load_GL_SGIX_pixel_texture() + { + if(!extIsSupported("GL_SGIX_pixel_texture")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glPixelTexGenSGIX, "glPixelTexGenSGIX")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_clipmap() + { + if(!extIsSupported("GL_SGIX_clipmap")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_shadow() + { + if(!extIsSupported("GL_SGIX_shadow")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_interlace() + { + if(!extIsSupported("GL_SGIX_interlace")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_pixel_tiles() + { + if(!extIsSupported("GL_SGIX_pixel_tiles")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + + GLExtensionState load_GL_SGIX_sprite() + { + if(!extIsSupported("GL_SGIX_sprite")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glSpriteParameterfSGIX, "glSpriteParameterfSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSpriteParameterfvSGIX, "glSpriteParameterfvSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSpriteParameteriSGIX, "glSpriteParameteriSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSpriteParameterivSGIX, "glSpriteParameterivSGIX")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_texture_multi_buffer() + { + if(!extIsSupported("GL_SGIX_texture_multi_buffer")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_instruments() + { + if(!extIsSupported("GL_SGIX_instruments")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glGetInstrumentsSGIX, "glGetInstrumentsSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glInstrumentsBufferSGIX, "glInstrumentsBufferSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glPollInstrumentsSGIX, "glPollInstrumentsSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReadInstrumentsSGIX, "glReadInstrumentsSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glStartInstrumentsSGIX, "glStartInstrumentsSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glStopInstrumentsSGIX, "glStopInstrumentsSGIX")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_texture_scale_bias() + { + if(!extIsSupported("GL_SGIX_texture_scale_bias")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_framezoom() + { + if(!extIsSupported("GL_SGIX_framezoom")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glFrameZoomSGIX, "glFrameZoomSGIX")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_tag_sample_buffer() + { + if(!extIsSupported("GL_SGIX_tag_sample_buffer")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glTagSampleBufferSGIX, "glTagSampleBufferSGIX")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_polynomial_ffd() + { + if(!extIsSupported("GL_SGIX_polynomial_ffd")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glDeformationMap3dSGIX, "glDeformationMap3dSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeformationMap3fSGIX, "glDeformationMap3fSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeformSGIX, "glDeformSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glLoadIdentityDeformationMapSGIX, "glLoadIdentityDeformationMapSGIX")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_reference_plane() + { + if(!extIsSupported("GL_SGIX_reference_plane")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glReferencePlaneSGIX, "glReferencePlaneSGIX")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_flush_raster() + { + if(!extIsSupported("GL_SGIX_flush_raster")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glFLushRasterSGIX, "glFLushRasterSGIX")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_depth_texture() + { + if(!extIsSupported("GL_SGIX_depth_texture")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_fog_offset() + { + if(!extIsSupported("GL_SGIX_fog_offset")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_texture_add_env() + { + if(!extIsSupported("GL_SGIX_texture_add_env")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_list_priority() + { + if(!extIsSupported("GL_SGIX_list_priority")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glGetListParameterfvSGIX, "glGetListParameterfvSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetListParameterivSGIX, "glGetListParameterivSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glListParameterfSGIX, "glListParameterfSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glListParameterfvSGIX, "glListParameterfvSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glListParameteriSGIX, "glListParameteriSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glListParameterivSGIX, "glListParameterivSGIX")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_ir_instrument1() + { + if(!extIsSupported("GL_SGIX_ir_instrument1")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_calligraphic_fragment() + { + if(!extIsSupported("GL_SGIX_calligraphic_fragment")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_texture_lod_bias() + { + if(!extIsSupported("GL_SGIX_texture_lod_bias")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_shadow_ambient() + { + if(!extIsSupported("GL_SGIX_shadow_ambient")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_ycrcb() + { + if(!extIsSupported("GL_SGIX_ycrcb")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_fragment_lighting() + { + if(!extIsSupported("GL_SGIX_fragment_lighting")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glFragmentColorMaterialSGIX, "glFragmentColorMaterialSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFragmentLightfSGIX, "glFragmentLightfSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFragmentLightfvSGIX, "glFragmentLightfvSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFragmentLightiSGIX, "glFragmentLightiSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFragmentLightivSGIX, "glFragmentLightivSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFragmentLightModelfSGIX, "glFragmentLightModelfSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFragmentLightModelfvSGIX, "glFragmentLightModelfvSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFragmentLightModeliSGIX, "glFragmentLightModeliSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFragmentLightModelivSGIX, "glFragmentLightModelivSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFragmentMaterialfSGIX, "glFragmentMaterialfSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFragmentMaterialfvSGIX, "glFragmentMaterialfvSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFragmentMaterialiSGIX, "glFragmentMaterialiSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFragmentMaterialivSGIX, "glFragmentMaterialivSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetFragmentLightfvSGIX, "glGetFragmentLightfvSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetFragmentLightivSGIX, "glGetFragmentLightivSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetFragmentMaterialfvSGIX, "glGetFragmentMaterialfvSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetFragmentMaterialivSGIX, "glGetFragmentMaterialivSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glLightEnviSGIX, "glLightEnviSGIX")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_blend_alpha_minmax() + { + if(!extIsSupported("GL_SGIX_blend_alpha_minmax")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_impact_pixel_texture() + { + if(!extIsSupported("GL_SGIX_impact_pixel_texture")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_async() + { + if(!extIsSupported("GL_SGIX_async")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glAsyncMarkerSGIX, "glAsyncMarkerSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFinishAsyncSGIX, "glFinishAsyncSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glPollAsyncSGIX, "glPollAsyncSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenAsyncMarkersSGIX, "glGenAsyncMarkersSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeleteAsyncMarkersSGIX, "glDeleteAsyncMarkersSGIX")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsAsyncMarkerSGIX, "glIsAsyncMarkerSGIX")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_async_pixel() + { + if(!extIsSupported("GL_SGIX_async_pixel")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_async_histogram() + { + if(!extIsSupported("GL_SGIX_async_histogram")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_fog_scale() + { + if(!extIsSupported("GL_SGIX_fog_scale")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_subsample() + { + if(!extIsSupported("GL_SGIX_subsample")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_ycrcb_subsample() + { + if(!extIsSupported("GL_SGIX_ycrcb_subsample")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_ycrcba() + { + if(!extIsSupported("GL_SGIX_ycrcba")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_depth_pass_instrument() + { + if(!extIsSupported("GL_SGIX_depth_pass_instrument")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_vertex_preclip() + { + if(!extIsSupported("GL_SGIX_vertex_preclip")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_convolution_accuracy() + { + if(!extIsSupported("GL_SGIX_convolution_accuracy")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_resample() + { + if(!extIsSupported("GL_SGIX_resample")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_texture_coordinate_clamp() + { + if(!extIsSupported("GL_SGIX_texture_coordinate_clamp")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SGIX_scalebias_hint() + { + if(!extIsSupported("GL_SGIX_scalebias_hint")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_HP) + { + GLExtensionState load_GL_HP_image_transform() + { + if(!extIsSupported("GL_HP_image_transform")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glImageTransformParameteriHP, "glImageTransformParameteriHP")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glImageTransformParameterfHP, "glImageTransformParameterfHP")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glImageTransformParameterivHP, "glImageTransformParameterivHP")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glImageTransformParameterfvHP, "glImageTransformParameterfvHP")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetImageTransformParameterivHP, "glGetImageTransformParameterivHP")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetImageTransformParameterfvHP, "glGetImageTransformParameterfvHP")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_HP_convolution_border_modes() + { + if(!extIsSupported("GL_HP_convolution_border_modes")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_HP_texture_lighting() + { + if(!extIsSupported("GL_HP_texture_lighting")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_HP_occlusion_test() + { + if(!extIsSupported("GL_HP_occlusion_test")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_PGI) + { + GLExtensionState load_GL_PGI_vertex_hints() + { + if(!extIsSupported("GL_PGI_vertex_hints")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_PGI_misc_hints() + { + if(!extIsSupported("GL_PGI_misc_hints")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glHintPGI, "glHintPGI")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_IBM) + { + GLExtensionState load_GL_IBM_rasterpos_clip() + { + if(!extIsSupported("GL_IBM_rasterpos_clip")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_IBM_cull_vertex() + { + if(!extIsSupported("GL_IBM_cull_vertex")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_IBM_multimode_draw_arrays() + { + if(!extIsSupported("GL_IBM_multimode_draw_arrays")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glMultiModeDrawArraysIBM, "glMultiModeDrawArraysIBM")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiModeDrawElementsIBM, "glMultiModeDrawElementsIBM")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_IBM_vertex_array_lists() + { + if(!extIsSupported("GL_IBM_vertex_array_lists")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glColorPointerListIBM, "glColorPointerListIBM")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSecondaryColorPointerListIBM, "glSecondaryColorPointerListIBM")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glEdgeFlagPointerListIBM, "glEdgeFlagPointerListIBM")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFogCoordPointerListIBM, "glFogCoordPointerListIBM")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIndexPointerListIBM, "glIndexPointerListIBM")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormalPointerListIBM, "glNormalPointerListIBM")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoordPointerListIBM, "glTexCoordPointerListIBM")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexPointerListIBM, "glVertexPointerListIBM")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_IBM_texture_mirrored_repeat() + { + if(!extIsSupported("GL_IBM_texture_mirrored_repeat")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_WIN) + { + GLExtensionState load_GL_WIN_phong_shading() + { + if(!extIsSupported("GL_WIN_phong_shading")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_WIN_specular_fog() + { + if(!extIsSupported("GL_WIN_specular_fog")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_INTEL) + { + GLExtensionState load_GL_INTEL_parallel_arrays() + { + if(!extIsSupported("GL_INTEL_parallel_arrays")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glVertexPointervINTEL, "glVertexPointervINTEL")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormalPointervINTEL, "glNormalPointervINTEL")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColorPointervINTEL, "glColorPointervINTEL")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoordPointervINTEL, "glTexCoordPointervINTEL")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_REND) + { + GLExtensionState load_GL_REND_screen_coordinates() + { + if(!extIsSupported("GL_REND_screen_coordinates")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_APPLE) + { + GLExtensionState load_GL_APPLE_specular_vector() + { + if(!extIsSupported("GL_APPLE_specular_vector")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_APPLE_transform_hint() + { + if(!extIsSupported("GL_APPLE_transform_hint")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_APPLE_client_storage() + { + if(!extIsSupported("GL_APPLE_client_storage")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_APPLE_element_array() + { + if(!extIsSupported("GL_APPLE_element_array")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glElementPointerAPPLE, "glElementPointerAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDrawElementArrayAPPLE, "glDrawElementArrayAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDrawRangeElementArrayAPPLE, "glDrawRangeElementArrayAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiDrawElementArrayAPPLE, "glMultiDrawElementArrayAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMultiDrawRangeElementArrayAPPLE, "glMultiDrawRangeElementArrayAPPLE")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_APPLE_fence() + { + if(!extIsSupported("GL_APPLE_fence")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glGenFencesAPPLE, "glGenFencesAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeleteFencesAPPLE, "glDeleteFencesAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glSetFenceAPPLE, "glSetFenceAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsFenceAPPLE, "glIsFenceAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTestFenceAPPLE, "glTestFenceAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFinishFenceAPPLE, "glFinishFenceAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTestObjectAPPLE, "glTestObjectAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFinishObjectAPPLE, "glFinishObjectAPPLE")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_APPLE_vertex_array_object() + { + if(!extIsSupported("GL_APPLE_vertex_array_object")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glBindVertexArrayAPPLE, "glBindVertexArrayAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDeleteVertexArraysAPPLE, "glDeleteVertexArraysAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGenVertexArraysAPPLE, "glGenVertexArraysAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsVertexArrayAPPLE, "glIsVertexArrayAPPLE")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_APPLE_vertex_array_range() + { + if(!extIsSupported("GL_APPLE_vertex_array_range")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glVertexArrayRangeAPPLE, "glVertexArrayRangeAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFlushVertexArrayRangeAPPLE, "glFlushVertexArrayRangeAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glVertexArrayParameteriAPPLE, "glVertexArrayParameteriAPPLE")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_APPLE_ycbcr_422() + { + if(!extIsSupported("GL_APPLE_ycbcr_422")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_APPLE_flush_buffer_range() + { + if(!extIsSupported("GL_APPLE_flush_buffer_range")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glBufferParameteriAPPLE, "glBufferParameteriAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glFlushMappedBufferRangeAPPLE, "glFlushMappedBufferRangeAPPLE")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_APPLE_texture_range() + { + if(!extIsSupported("GL_APPLE_texture_range")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glTextureRangeAPPLE, "glTextureRangeAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetTexParameterPointervAPPLE, "glGetTexParameterPointervAPPLE")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_APPLE_float_pixels() + { + if(!extIsSupported("GL_APPLE_float_pixels")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_APPLE_vertex_program_evaluators() + { + if(!extIsSupported("GL_APPLE_vertex_program_evaluators")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glEnableVertexAttribAPPLE, "glEnableVertexAttribAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glDisableVertexAttribAPPLE, "glDisableVertexAttribAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glIsVertexAttribAPPLE, "glIsVertexAttribAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMapVertexAttrib1dAPPLE, "glMapVertexAttrib1dAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMapVertexAttrib1fAPPLE, "glMapVertexAttrib1fAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMapVertexAttrib2dAPPLE, "glMapVertexAttrib2dAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glMapVertexAttrib2fAPPLE, "glMapVertexAttrib2fAPPLE")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_APPLE_aux_depth_stencil() + { + if(!extIsSupported("GL_APPLE_aux_depth_stencil")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_APPLE_object_purgeable() + { + if(!extIsSupported("GL_APPLE_object_purgeable")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glObjectPurgeableAPPLE, "glObjectPurgeableAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glObjectUnpurgeableAPPLE, "glObjectUnpurgeableAPPLE")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGetObjectParameterivAPPLE, "glGetObjectParameterivAPPLE")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_APPLE_row_bytes() + { + if(!extIsSupported("GL_APPLE_row_bytes")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_APPLE_rgb_422() + { + if(!extIsSupported("GL_APPLE_rgb_422")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_SUNX) + { + GLExtensionState load_GL_SUNX_constant_data() + { + if(!extIsSupported("GL_SUNX_constant_data")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glFinishTextureSUNX, "glFinishTextureSUNX")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_SUN) + { + GLExtensionState load_GL_SUN_global_alpha() + { + if(!extIsSupported("GL_SUN_global_alpha")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glGlobalAlphaFactorbSUN, "glGlobalAlphaFactorbSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGlobalAlphaFactorsSUN, "glGlobalAlphaFactorsSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGlobalAlphaFactoriSUN, "glGlobalAlphaFactoriSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGlobalAlphaFactorfSUN, "glGlobalAlphaFactorfSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGlobalAlphaFactordSUN, "glGlobalAlphaFactordSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGlobalAlphaFactorubSUN, "glGlobalAlphaFactorubSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGlobalAlphaFactorusSUN, "glGlobalAlphaFactorusSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glGlobalAlphaFactoruiSUN, "glGlobalAlphaFactoruiSUN")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SUN_triangle_list() + { + if(!extIsSupported("GL_SUN_triangle_list")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glReplacementCodeuiSUN, "glReplacementCodeuiSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeusSUN, "glReplacementCodeusSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeubSUN, "glReplacementCodeubSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeuivSUN, "glReplacementCodeuivSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeusvSUN, "glReplacementCodeusvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeubvSUN, "glReplacementCodeubvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodePointerSUN, "glReplacementCodePointerSUN")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SUN_vertex() + { + if(!extIsSupported("GL_SUN_vertex")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glColor4ubVertex2fSUN, "glColor4ubVertex2fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColor4ubVertex2fvSUN, "glColor4ubVertex2fvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColor4ubVertex3fSUN, "glColor4ubVertex3fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColor4ubVertex3fvSUN, "glColor4ubVertex3fvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColor3fVertex3fSUN, "glColor3fVertex3fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColor3fVertex3fvSUN, "glColor3fVertex3fvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormal3fVertex3fSUN, "glNormal3fVertex3fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glNormal3fVertex3fvSUN, "glNormal3fVertex3fvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColor4fNormal3fVertex3fSUN, "glColor4fNormal3fVertex3fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glColor4fNormal3fVertex3fvSUN, "glColor4fNormal3fVertex3fvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord2fVertex3fSUN, "glTexCoord2fVertex3fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord2fVertex3fvSUN, "glTexCoord2fVertex3fvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord4fVertex4fSUN, "glTexCoord4fVertex4fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord4fVertex4fvSUN, "glTexCoord4fVertex4fvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord2fColor4ubVertex3fSUN, "glTexCoord2fColor4ubVertex3fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord2fColor4ubVertex3fvSUN, "glTexCoord2fColor4ubVertex3fvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord2fColor3fVertex3fSUN, "glTexCoord2fColor3fVertex3fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord2fColor3fVertex3fvSUN, "glTexCoord2fColor3fVertex3fvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord2fNormal3fVertex3fSUN, "glTexCoord2fNormal3fVertex3fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord2fNormal3fVertex3fvSUN, "glTexCoord2fNormal3fVertex3fvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord2fColor4fNormal3fVertex3fSUN, "glTexCoord2fColor4fNormal3fVertex3fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord2fColor4fNormal3fVertex3fvSUN, "glTexCoord2fColor4fNormal3fVertex3fvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord4fColor4fNormal3fVertex4fSUN, "glTexCoord4fColor4fNormal3fVertex4fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glTexCoord4fColor4fNormal3fVertex4fvSUN, "glTexCoord4fColor4fNormal3fVertex4fvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeuiVertex3fSUN, "glReplacementCodeuiVertex3fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeuiVertex3fvSUN, "glReplacementCodeuiVertex3fvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeuiColor4ubVertex3fSUN, "glReplacementCodeuiColor4ubVertex3fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeuiColor4ubVertex3fvSUN, "glReplacementCodeuiColor4ubVertex3fvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeuiColor3fVertex3fSUN, "glReplacementCodeuiColor3fVertex3fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeuiColor3fVertex3fvSUN, "glReplacementCodeuiColor3fVertex3fvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeuiNormal3fVertex3fSUN, "glReplacementCodeuiNormal3fVertex3fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeuiNormal3fVertex3fvSUN, "glReplacementCodeuiNormal3fVertex3fvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeuiColor4fNormal3fVertex3fSUN, "glReplacementCodeuiColor4fNormal3fVertex3fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeuiColor4fNormal3fVertex3fvSUN, "glReplacementCodeuiColor4fNormal3fVertex3fvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeuiTexCoord2fVertex3fSUN, "glReplacementCodeuiTexCoord2fVertex3fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeuiTexCoord2fVertex3fvSUN, "glReplacementCodeuiTexCoord2fVertex3fvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN, "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN, "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN, "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN, "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SUN_convolution_border_modes() + { + if(!extIsSupported("GL_SUN_convolution_border_modes")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SUN_mesh_array() + { + if(!extIsSupported("GL_SUN_mesh_array")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glDrawMeshArraysSUN, "glDrawMeshArraysSUN")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_SUN_slice_accum() + { + if(!extIsSupported("GL_SUN_slice_accum")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_INGR) + { + GLExtensionState load_GL_INGR_color_clamp() + { + if(!extIsSupported("GL_INGR_color_clamp")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_INGR_interlace_read() + { + if(!extIsSupported("GL_INGR_interlace_read")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_MESA) + { + GLExtensionState load_GL_MESA_resize_buffers() + { + if(!extIsSupported("GL_MESA_resize_buffers")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glResizeBuffersMESA, "glResizeBuffersMESA")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_MESA_window_pos() + { + if(!extIsSupported("GL_MESA_window_pos")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glWindowPos2dMESA, "glWindowPos2dMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos2dvMESA, "glWindowPos2dvMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos2fMESA, "glWindowPos2fMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos2fvMESA, "glWindowPos2fvMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos2iMESA, "glWindowPos2iMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos2ivMESA, "glWindowPos2ivMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos2sMESA, "glWindowPos2sMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos2svMESA, "glWindowPos2svMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos3dMESA, "glWindowPos3dMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos3dvMESA, "glWindowPos3dvMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos3fMESA, "glWindowPos3fMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos3fvMESA, "glWindowPos3fvMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos3iMESA, "glWindowPos3iMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos3ivMESA, "glWindowPos3ivMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos3sMESA, "glWindowPos3sMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos3svMESA, "glWindowPos3svMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos4dMESA, "glWindowPos4dMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos4dvMESA, "glWindowPos4dvMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos4fMESA, "glWindowPos4fMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos4fvMESA, "glWindowPos4fvMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos4iMESA, "glWindowPos4iMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos4ivMESA, "glWindowPos4ivMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos4sMESA, "glWindowPos4sMESA")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&glWindowPos4svMESA, "glWindowPos4svMESA")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_MESA_pack_invert() + { + if(!extIsSupported("GL_MESA_pack_invert")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_MESA_ycbcr_texture() + { + if(!extIsSupported("GL_MESA_ycbcr_texture")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_3DFX) + { + GLExtensionState load_GL_3DFX_texture_compression_FXT1() + { + if(!extIsSupported("GL_3DFX_texture_compression_FXT1")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_3DFX_multisample() + { + if(!extIsSupported("GL_3DFX_multisample")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_3DFX_tbuffer() + { + if(!extIsSupported("GL_3DFX_tbuffer")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glTbufferMask3DFX, "glTbufferMask3DFX")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_OML) + { + GLExtensionState load_GL_OML_interlace() + { + if(!extIsSupported("GL_OML_interlace")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_OML_subsample() + { + if(!extIsSupported("GL_OML_subsample")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_OML_resample() + { + if(!extIsSupported("GL_OML_resample")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_S3) + { + GLExtensionState load_GL_S3_s3tc() + { + if(!extIsSupported("GL_S3_s3tc")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_OES) + { + GLExtensionState load_GL_OES_read_format() + { + if(!extIsSupported("GL_OES_read_format")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_GREMEDY) + { + GLExtensionState load_GL_GREMEDY_string_marker() + { + if(!extIsSupported("GL_GREMEDY_string_marker")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glStringMarkerGREMEDY, "glStringMarkerGREMEDY")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_GL_GREMEDY_frame_terminator() + { + if(!extIsSupported("GL_GREMEDY_frame_terminator")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&glFrameTerminatorGREMEDY, "glFrameTerminatorGREMEDY")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_MESAX) + { + GLExtensionState load_GL_MESAX_texture_stack() + { + if(!extIsSupported("GL_MESAX_texture_stack")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + } + + version(Windows) + { + // These two functions should always be compiled in. + GLExtensionState load_WGL_ARB_extensions_string() + { + // don't bother checking for support, as it probably won't even be reported by the driver + if(!bindExtFunc(cast(void**)&wglGetExtensionsStringARB, "wglGetExtensionsStringARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_EXT_extensions_string() + { + if(!extIsSupported("WGL_EXT_extensions_string")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglGetExtensionsStringEXT, "wglGetExtensionsStringEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + version(DerelictGL_ARB) + { + GLExtensionState load_WGL_ARB_buffer_region() + { + if(!extIsSupported("WGL_ARB_buffer_region")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglCreateBufferRegionARB, "wglCreateBufferRegionARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglDeleteBufferRegionARB, "wglDeleteBufferRegionARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglSaveBufferRegionARB, "wglSaveBufferRegionARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglRestoreBufferRegionARB, "wglRestoreBufferRegionARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_ARB_multisample() + { + if(!extIsSupported("WGL_ARB_multisample")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_ARB_pixel_format() + { + if(!extIsSupported("WGL_ARB_pixel_format")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglGetPixelFormatAttribivARB, "wglGetPixelFormatAttribivARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetPixelFormatAttribfvARB, "wglGetPixelFormatAttribfvARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglChoosePixelFormatARB, "wglChoosePixelFormatARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_ARB_make_current_read() + { + if(!extIsSupported("WGL_ARB_make_current_read")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglMakeContextCurrentARB, "wglMakeContextCurrentARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetCurrentReadDCARB, "wglGetCurrentReadDCARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_ARB_pbuffer() + { + if(!extIsSupported("WGL_ARB_pbuffer")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglCreatePbufferARB, "wglCreatePbufferARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetPbufferDCARB, "wglGetPbufferDCARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglReleasePbufferDCARB, "wglReleasePbufferDCARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglDestroyPbufferARB, "wglDestroyPbufferARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglQueryPbufferARB, "wglQueryPbufferARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_ARB_render_texture() + { + if(!extIsSupported("WGL_ARB_render_texture")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglBindTexImageARB, "wglBindTexImageARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglReleaseTexImageARB, "wglReleaseTexImageARB")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglSetPbufferAttribARB, "wglSetPbufferAttribARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_ARB_pixel_format_float() + { + if(!extIsSupported("WGL_ARB_pixel_format_float")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_ARB_create_context() + { + if(!extIsSupported("WGL_ARB_create_context")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglCreateContextAttribsARB, "wglCreateContextAttribsARB")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_ARB_framebuffer_sRGB() + { + if(!extIsSupported("WGL_ARB_framebuffer_sRGB")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_ARB_create_context_profile() + { + if(!extIsSupported("WGL_ARB_create_context_profile")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_EXT) + { + GLExtensionState load_WGL_EXT_depth_float() + { + if(!extIsSupported("WGL_EXT_depth_float")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_EXT_display_color_table() + { + if(!extIsSupported("WGL_EXT_display_color_table")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglBindDisplayColorTableEXT, "wglBindDisplayColorTableEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglCreateDisplayColorTableEXT, "wglCreateDisplayColorTableEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglDestroyDisplayColorTableEXT, "wglDestroyDisplayColorTableEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglLoadDisplayColorTableEXT, "wglLoadDisplayColorTableEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_EXT_framebuffer_sRGB() + { + if(!extIsSupported("WGL_EXT_framebuffer_sRGB")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_EXT_make_current_read() + { + if(!extIsSupported("WGL_EXT_make_current_read")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglMakeContextCurrentEXT, "wglMakeContextCurrentEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetCurrentReadDCEXT, "wglGetCurrentReadDCEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_EXT_multisample() + { + if(!extIsSupported("WGL_EXT_multisample")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_EXT_pbuffer() + { + if(!extIsSupported("WGL_EXT_pbuffer")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglCreatePbufferEXT, "wglCreatePbufferEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglDestroyPbufferEXT, "wglDestroyPbufferEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetPbufferDCEXT, "wglGetPbufferDCEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglQueryPbufferEXT, "wglQueryPbufferEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglReleasePbufferDCEXT, "wglReleasePbufferDCEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_EXT_pixel_format() + { + if(!extIsSupported("WGL_EXT_pixel_format")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglChoosePixelFormatEXT, "wglChoosePixelFormatEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetPixelFormatAttribfvEXT, "wglGetPixelFormatAttribfvEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetPixelFormatAttribivEXT, "wglGetPixelFormatAttribivEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_EXT_pixel_format_packed_float() + { + if(!extIsSupported("WGL_EXT_pixel_format_packed_float")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_EXT_swap_control() + { + if(!extIsSupported("WGL_EXT_swap_control")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglGetSwapIntervalEXT, "wglGetSwapIntervalEXT")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglSwapIntervalEXT, "wglSwapIntervalEXT")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_NV) + { + GLExtensionState load_WGL_NV_copy_image() + { + if(!extIsSupported("WGL_NV_copy_image")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglCopyImageSubDataNV, "wglCopyImageSubDataNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_NV_float_buffer() + { + if(!extIsSupported("WGL_NV_float_buffer")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_NV_gpu_affinity() + { + if(!extIsSupported("WGL_NV_gpu_affinity")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglCreateAffinityDCNV, "wglCreateAffinityDCNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglDeleteDCNV, "wglDeleteDCNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglEnumGpuDevicesNV, "wglEnumGpuDevicesNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglEnumGpusFromAffinityDCNV, "wglEnumGpusFromAffinityDCNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglEnumGpusNV, "wglEnumGpusNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_NV_multisample_coverage() + { + if(!extIsSupported("WGL_NV_multisample_coverage")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_NV_present_video() + { + if(!extIsSupported("WGL_NV_present_video")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglBindVideoDeviceNV, "wglBindVideoDeviceNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglEnumerateVideoDevicesNV, "wglEnumerateVideoDevicesNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglQueryCurrentContextNV, "wglQueryCurrentContextNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_NV_render_depth_texture() + { + if(!extIsSupported("WGL_NV_render_depth_texture")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_NV_render_texture_rectangle() + { + if(!extIsSupported("WGL_NV_render_texture_rectangle")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_NV_swap_group() + { + if(!extIsSupported("WGL_NV_swap_group")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglBindSwapBarrierNV, "wglBindSwapBarrierNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglJoinSwapGroupNV, "wglJoinSwapGroupNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglQueryFrameCountNV, "wglQueryFrameCountNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglQueryMaxSwapGroupsNV, "wglQueryMaxSwapGroupsNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglQuerySwapGroupNV, "wglQuerySwapGroupNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglResetFrameCountNV, "wglResetFrameCountNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_NV_vertex_array_range() + { + if(!extIsSupported("WGL_NV_vertex_array_range")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglAllocateMemoryNV, "wglAllocateMemoryNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglFreeMemoryNV, "wglFreeMemoryNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_NV_video_output() + { + if(!extIsSupported("WGL_NV_video_output")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglBindVideoImageNV, "wglBindVideoImageNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetVideoDeviceNV, "wglGetVideoDeviceNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetVideoInfoNV, "wglGetVideoInfoNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglReleaseVideoDeviceNV, "wglReleaseVideoDeviceNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglReleaseVideoImageNV, "wglReleaseVideoImageNV")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglSendPbufferToVideoNV, "wglSendPbufferToVideoNV")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_ATI) + { + GLExtensionState load_WGL_ATI_pixel_format_float() + { + if(!extIsSupported("WGL_ATI_pixel_format_float")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_ATI_render_texture_rectangle() + { + if(!extIsSupported("WGL_ATI_render_texture_rectangle")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_AMD) + { + GLExtensionState load_WGL_AMD_gpu_association() + { + if(!extIsSupported("WGL_AMD_gpu_association")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglBlitContextFramebufferAMD, "wglBlitContextFramebufferAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglCreateAssociatedContextAMD, "wglCreateAssociatedContextAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglCreateAssociatedContextAttribsAMD, "wglCreateAssociatedContextAttribsAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglDeleteAssociatedContextAMD, "wglDeleteAssociatedContextAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetContextGPUIDAMD, "wglGetContextGPUIDAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetCurrentAssociatedContextAMD, "wglGetCurrentAssociatedContextAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetGPUIDsAMD, "wglGetGPUIDsAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetGPUInfoAMD, "wglGetGPUInfoAMD")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglMakeAssociatedContextCurrentAMD, "wglMakeAssociatedContextCurrentAMD")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_I3D) + { + GLExtensionState load_WGL_I3D_digital_video_control() + { + if(!extIsSupported("WGL_I3D_digital_video_control")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglGetDigitalVideoParametersI3D, "wglGetDigitalVideoParametersI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglSetDigitalVideoParametersI3D, "wglSetDigitalVideoParametersI3D")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_I3D_gamma() + { + if(!extIsSupported("WGL_I3D_gamma")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglGetGammaTableI3D, "wglGetGammaTableI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetGammaTableParametersI3D, "wglGetGammaTableParametersI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglSetGammaTableI3D, "wglSetGammaTableI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglSetGammaTableParametersI3D, "wglSetGammaTableParametersI3D")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_I3D_genlock() + { + if(!extIsSupported("WGL_I3D_genlock")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglDisableGenlockI3D, "wglDisableGenlockI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglEnableGenlockI3D, "wglEnableGenlockI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGenlockSampleRateI3D, "wglGenlockSampleRateI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGenlockSourceDelayI3D, "wglGenlockSourceDelayI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGenlockSourceEdgeI3D, "wglGenlockSourceEdgeI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGenlockSourceI3D, "wglGenlockSourceI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetGenlockSampleRateI3D, "wglGetGenlockSampleRateI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetGenlockSourceDelayI3D, "wglGetGenlockSourceDelayI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetGenlockSourceEdgeI3D, "wglGetGenlockSourceEdgeI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetGenlockSourceI3D, "wglGetGenlockSourceI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglIsEnabledGenlockI3D, "wglIsEnabledGenlockI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglQueryGenlockMaxSourceDelayI3D, "wglQueryGenlockMaxSourceDelayI3D")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_I3D_image_buffer() + { + if(!extIsSupported("WGL_I3D_image_buffer")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglAssociateImageBufferEventsI3D, "wglAssociateImageBufferEventsI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglCreateImageBufferI3D, "wglCreateImageBufferI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglDestroyImageBufferI3D, "wglDestroyImageBufferI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglReleaseImageBufferEventsI3D, "wglReleaseImageBufferEventsI3D")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_I3D_swap_frame_lock() + { + if(!extIsSupported("WGL_I3D_swap_frame_lock")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglDisableFrameLockI3D, "wglDisableFrameLockI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglEnableFrameLockI3D, "wglEnableFrameLockI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglIsEnabledFrameLockI3D, "wglIsEnabledFrameLockI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglQueryFrameLockMasterI3D, "wglQueryFrameLockMasterI3D")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + + GLExtensionState load_WGL_I3D_swap_frame_usage() + { + if(!extIsSupported("WGL_I3D_swap_frame_usage")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglBeginFrameTrackingI3D, "wglBeginFrameTrackingI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglEndFrameTrackingI3D, "wglEndFrameTrackingI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetFrameUsageI3D, "wglGetFrameUsageI3D")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglQueryFrameTrackingI3D, "wglQueryFrameTrackingI3D")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_OML) + { + GLExtensionState load_WGL_OML_sync_control() + { + if(!extIsSupported("WGL_OML_sync_control")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglGetMscRateOML, "wglGetMscRateOML")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglGetSyncValuesOML, "wglGetSyncValuesOML")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglSwapBuffersMscOML, "wglSwapBuffersMscOML")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglSwapLayerBuffersMscOML, "wglSwapLayerBuffersMscOML")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglWaitForMscOML, "wglWaitForMscOML")) + return GLExtensionState.FailedToLoad; + if(!bindExtFunc(cast(void**)&wglWaitForSbcOML, "wglWaitForSbcOML")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_3DFX) + { + GLExtensionState load_WGL_3DFX_multisample() + { + if(!extIsSupported("WGL_3DFX_multisample")) + return GLExtensionState.DriverUnsupported; + return GLExtensionState.Loaded; + } + } + + version(DerelictGL_3DL) + { + GLExtensionState load_WGL_3DL_stereo_control() + { + if(!extIsSupported("WGL_3DL_stereo_control")) + return GLExtensionState.DriverUnsupported; + if(!bindExtFunc(cast(void**)&wglSetStereoEmitterState3DL, "wglSetStereoEmitterState3DL")) + return GLExtensionState.FailedToLoad; + return GLExtensionState.Loaded; + } + } + } +} diff --git a/src/derelict/opengl/exttypes.d b/src/derelict/opengl/exttypes.d old mode 100755 new mode 100644 index fcdc737f..e712f998 --- a/src/derelict/opengl/exttypes.d +++ b/src/derelict/opengl/exttypes.d @@ -1,3727 +1,3727 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.opengl.exttypes; - -private -{ - import derelict.opengl.gltypes; -} - -version = DerelictGL_ALL; - -version(DerelictGL_ALL) -{ - version = DerelictGL_ARB; - version = DerelictGL_EXT; - version = DerelictGL_NV; - version = DerelictGL_ATI; - version = DerelictGL_AMD; - version = DerelictGL_SGI; - version = DerelictGL_SGIS; - version = DerelictGL_SGIX; - version = DerelictGL_HP; - version = DerelictGL_PGI; - version = DerelictGL_IBM; - version = DerelictGL_WIN; - version = DerelictGL_INTEL; - version = DerelictGL_REND; - version = DerelictGL_APPLE; - version = DerelictGL_SUNX; - version = DerelictGL_SUN; - version = DerelictGL_INGR; - version = DerelictGL_MESA; - version = DerelictGL_3DFX; - version = DerelictGL_OML; - version = DerelictGL_S3; - version = DerelictGL_OES; - version = DerelictGL_GREMEDY; - version = DerelictGL_MESAX; - version = DerelictGL_I3D; - version = DerelictGL_3DL; -} - -version(DerelictGL_ARB) -{ - // from GL_ARB_vertex_buffer_object - alias ptrdiff_t GLintptrARB; - alias ptrdiff_t GLsizeiptrARB; - - // from GL_ARB_shader_objects - alias char GLcharARB; - alias uint GLhandleARB; - - // from GL_ARB_half_float_pixel - alias ushort GLhalfARB; - - // from GL_ARB_cl_event - struct _cl_context; - struct _cl_event; - alias _cl_context* cl_context; - alias _cl_event* cl_event; - - // from GL_ARB_debug_output - alias extern(System) void function(GLenum, GLenum, GLuint, GLenum, GLsizei, in GLchar*, GLvoid*) GLDEBUGPROCARB; - - // from GL_ARB_sync - //alias long GLint64; - alias ulong GLuint64; - struct __GLsync {} - alias __GLsync* GLsync; - - enum : GLenum - { - // GL_ARB_multitexture - GL_TEXTURE0_ARB = 0x84C0, - GL_TEXTURE1_ARB = 0x84C1, - GL_TEXTURE2_ARB = 0x84C2, - GL_TEXTURE3_ARB = 0x84C3, - GL_TEXTURE4_ARB = 0x84C4, - GL_TEXTURE5_ARB = 0x84C5, - GL_TEXTURE6_ARB = 0x84C6, - GL_TEXTURE7_ARB = 0x84C7, - GL_TEXTURE8_ARB = 0x84C8, - GL_TEXTURE9_ARB = 0x84C9, - GL_TEXTURE10_ARB = 0x84CA, - GL_TEXTURE11_ARB = 0x84CB, - GL_TEXTURE12_ARB = 0x84CC, - GL_TEXTURE13_ARB = 0x84CD, - GL_TEXTURE14_ARB = 0x84CE, - GL_TEXTURE15_ARB = 0x84CF, - GL_TEXTURE16_ARB = 0x84D0, - GL_TEXTURE17_ARB = 0x84D1, - GL_TEXTURE18_ARB = 0x84D2, - GL_TEXTURE19_ARB = 0x84D3, - GL_TEXTURE20_ARB = 0x84D4, - GL_TEXTURE21_ARB = 0x84D5, - GL_TEXTURE22_ARB = 0x84D6, - GL_TEXTURE23_ARB = 0x84D7, - GL_TEXTURE24_ARB = 0x84D8, - GL_TEXTURE25_ARB = 0x84D9, - GL_TEXTURE26_ARB = 0x84DA, - GL_TEXTURE27_ARB = 0x84DB, - GL_TEXTURE28_ARB = 0x84DC, - GL_TEXTURE29_ARB = 0x84DD, - GL_TEXTURE30_ARB = 0x84DE, - GL_TEXTURE31_ARB = 0x84DF, - GL_ACTIVE_TEXTURE_ARB = 0x84E0, - GL_CLIENT_ACTIVE_TEXTURE_ARB = 0x84E1, - GL_MAX_TEXTURE_UNITS_ARB = 0x84E2, - - // GL_ARB_transpose_matrix - GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = 0x84E3, - GL_TRANSPOSE_PROJECTION_MATRIX_ARB = 0x84E4, - GL_TRANSPOSE_TEXTURE_MATRIX_ARB = 0x84E5, - GL_TRANSPOSE_COLOR_MATRIX_ARB = 0x84E6, - - // GL_ARB_multisample - GL_MULTISAMPLE_ARB = 0x809D, - GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = 0x809E, - GL_SAMPLE_ALPHA_TO_ONE_ARB = 0x809F, - GL_SAMPLE_COVERAGE_ARB = 0x80A0, - GL_SAMPLE_BUFFERS_ARB = 0x80A8, - GL_SAMPLES_ARB = 0x80A9, - GL_SAMPLE_COVERAGE_VALUE_ARB = 0x80AA, - GL_SAMPLE_COVERAGE_INVERT_ARB = 0x80AB, - GL_MULTISAMPLE_BIT_ARB = 0x20000000, - - // GL_ARB_texture_cube_map - GL_NORMAL_MAP_ARB = 0x8511, - GL_REFLECTION_MAP_ARB = 0x8512, - GL_TEXTURE_CUBE_MAP_ARB = 0x8513, - GL_TEXTURE_BINDING_CUBE_MAP_ARB = 0x8514, - GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = 0x8515, - GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = 0x8516, - GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = 0x8517, - GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = 0x8518, - GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = 0x8519, - GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = 0x851A, - GL_PROXY_TEXTURE_CUBE_MAP_ARB = 0x851B, - GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 0x851C, - - // GL_ARB_texture_compression - GL_COMPRESSED_ALPHA_ARB = 0x84E9, - GL_COMPRESSED_LUMINANCE_ARB = 0x84EA, - GL_COMPRESSED_LUMINANCE_ALPHA_ARB = 0x84EB, - GL_COMPRESSED_INTENSITY_ARB = 0x84EC, - GL_COMPRESSED_RGB_ARB = 0x84ED, - GL_COMPRESSED_RGBA_ARB = 0x84EE, - GL_TEXTURE_COMPRESSION_HINT_ARB = 0x84EF, - GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = 0x86A0, - GL_TEXTURE_COMPRESSED_ARB = 0x86A1, - GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A2, - GL_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A3, - - // GL_ARB_texture_border_clamp - GL_CLAMP_TO_BORDER_ARB = 0x812D, - - // GL_ARB_point_parameters - GL_POINT_SIZE_MIN_ARB = 0x8126, - GL_POINT_SIZE_MAX_ARB = 0x8127, - GL_POINT_FADE_THRESHOLD_SIZE_ARB = 0x8128, - GL_POINT_DISTANCE_ATTENUATION_ARB = 0x8129, - - // GL_ARB_vertex_blend - GL_MAX_VERTEX_UNITS_ARB = 0x86A4, - GL_ACTIVE_VERTEX_UNITS_ARB = 0x86A5, - GL_WEIGHT_SUM_UNITY_ARB = 0x86A6, - GL_VERTEX_BLEND_ARB = 0x86A7, - GL_CURRENT_WEIGHT_ARB = 0x86A8, - GL_WEIGHT_ARRAY_TYPE_ARB = 0x86A9, - GL_WEIGHT_ARRAY_STRIDE_ARB = 0x86AA, - GL_WEIGHT_ARRAY_SIZE_ARB = 0x86AB, - GL_WEIGHT_ARRAY_POINTER_ARB = 0x86AC, - GL_WEIGHT_ARRAY_ARB = 0x86AD, - GL_MODELVIEW0_ARB = 0x1700, - GL_MODELVIEW1_ARB = 0x850A, - GL_MODELVIEW2_ARB = 0x8722, - GL_MODELVIEW3_ARB = 0x8723, - GL_MODELVIEW4_ARB = 0x8724, - GL_MODELVIEW5_ARB = 0x8725, - GL_MODELVIEW6_ARB = 0x8726, - GL_MODELVIEW7_ARB = 0x8727, - GL_MODELVIEW8_ARB = 0x8728, - GL_MODELVIEW9_ARB = 0x8729, - GL_MODELVIEW10_ARB = 0x872A, - GL_MODELVIEW11_ARB = 0x872B, - GL_MODELVIEW12_ARB = 0x872C, - GL_MODELVIEW13_ARB = 0x872D, - GL_MODELVIEW14_ARB = 0x872E, - GL_MODELVIEW15_ARB = 0x872F, - GL_MODELVIEW16_ARB = 0x8730, - GL_MODELVIEW17_ARB = 0x8731, - GL_MODELVIEW18_ARB = 0x8732, - GL_MODELVIEW19_ARB = 0x8733, - GL_MODELVIEW20_ARB = 0x8734, - GL_MODELVIEW21_ARB = 0x8735, - GL_MODELVIEW22_ARB = 0x8736, - GL_MODELVIEW23_ARB = 0x8737, - GL_MODELVIEW24_ARB = 0x8738, - GL_MODELVIEW25_ARB = 0x8739, - GL_MODELVIEW26_ARB = 0x873A, - GL_MODELVIEW27_ARB = 0x873B, - GL_MODELVIEW28_ARB = 0x873C, - GL_MODELVIEW29_ARB = 0x873D, - GL_MODELVIEW30_ARB = 0x873E, - GL_MODELVIEW31_ARB = 0x873F, - - // GL_ARB_matrix_palette - GL_MATRIX_PALETTE_ARB = 0x8840, - GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = 0x8841, - GL_MAX_PALETTE_MATRICES_ARB = 0x8842, - GL_CURRENT_PALETTE_MATRIX_ARB = 0x8843, - GL_MATRIX_INDEX_ARRAY_ARB = 0x8844, - GL_CURRENT_MATRIX_INDEX_ARB = 0x8845, - GL_MATRIX_INDEX_ARRAY_SIZE_ARB = 0x8846, - GL_MATRIX_INDEX_ARRAY_TYPE_ARB = 0x8847, - GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = 0x8848, - GL_MATRIX_INDEX_ARRAY_POINTER_ARB = 0x8849, - - // GL_ARB_texture_env_combine - GL_COMBINE_ARB = 0x8570, - GL_COMBINE_RGB_ARB = 0x8571, - GL_COMBINE_ALPHA_ARB = 0x8572, - GL_SOURCE0_RGB_ARB = 0x8580, - GL_SOURCE1_RGB_ARB = 0x8581, - GL_SOURCE2_RGB_ARB = 0x8582, - GL_SOURCE0_ALPHA_ARB = 0x8588, - GL_SOURCE1_ALPHA_ARB = 0x8589, - GL_SOURCE2_ALPHA_ARB = 0x858A, - GL_OPERAND0_RGB_ARB = 0x8590, - GL_OPERAND1_RGB_ARB = 0x8591, - GL_OPERAND2_RGB_ARB = 0x8592, - GL_OPERAND0_ALPHA_ARB = 0x8598, - GL_OPERAND1_ALPHA_ARB = 0x8599, - GL_OPERAND2_ALPHA_ARB = 0x859A, - GL_RGB_SCALE_ARB = 0x8573, - GL_ADD_SIGNED_ARB = 0x8574, - GL_INTERPOLATE_ARB = 0x8575, - GL_SUBTRACT_ARB = 0x84E7, - GL_CONSTANT_ARB = 0x8576, - GL_PRIMARY_COLOR_ARB = 0x8577, - GL_PREVIOUS_ARB = 0x8578, - - // GL_ARB_texture_env_dot3 - GL_DOT3_RGB_ARB = 0x86AE, - GL_DOT3_RGBA_ARB = 0x86AF, - - // GL_ARB_texture_mirrored_repeat - GL_MIRRORED_REPEAT_ARB = 0x8370, - - // GL_ARB_depth_texture - GL_DEPTH_COMPONENT16_ARB = 0x81A5, - GL_DEPTH_COMPONENT24_ARB = 0x81A6, - GL_DEPTH_COMPONENT32_ARB = 0x81A7, - GL_TEXTURE_DEPTH_SIZE_ARB = 0x884A, - GL_DEPTH_TEXTURE_MODE_ARB = 0x884B, - - // GL_ARB_shadow - GL_TEXTURE_COMPARE_MODE_ARB = 0x884C, - GL_TEXTURE_COMPARE_FUNC_ARB = 0x884D, - GL_COMPARE_R_TO_TEXTURE_ARB = 0x884E, - - // GL_ARB_shadow_ambient - GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = 0x80BF, - - // GL_ARB_vertex_program - GL_COLOR_SUM_ARB = 0x8458, - GL_VERTEX_PROGRAM_ARB = 0x8620, - GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = 0x8622, - GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = 0x8623, - GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = 0x8624, - GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = 0x8625, - GL_CURRENT_VERTEX_ATTRIB_ARB = 0x8626, - GL_PROGRAM_LENGTH_ARB = 0x8627, - GL_PROGRAM_STRING_ARB = 0x8628, - GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E, - GL_MAX_PROGRAM_MATRICES_ARB = 0x862F, - GL_CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640, - GL_CURRENT_MATRIX_ARB = 0x8641, - GL_VERTEX_PROGRAM_POINT_SIZE_ARB = 0x8642, - GL_VERTEX_PROGRAM_TWO_SIDE_ARB = 0x8643, - GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = 0x8645, - GL_PROGRAM_ERROR_POSITION_ARB = 0x864B, - GL_PROGRAM_BINDING_ARB = 0x8677, - GL_MAX_VERTEX_ATTRIBS_ARB = 0x8869, - GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = 0x886A, - GL_PROGRAM_ERROR_STRING_ARB = 0x8874, - GL_PROGRAM_FORMAT_ASCII_ARB = 0x8875, - GL_PROGRAM_FORMAT_ARB = 0x8876, - GL_PROGRAM_INSTRUCTIONS_ARB = 0x88A0, - GL_MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1, - GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2, - GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3, - GL_PROGRAM_TEMPORARIES_ARB = 0x88A4, - GL_MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5, - GL_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6, - GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7, - GL_PROGRAM_PARAMETERS_ARB = 0x88A8, - GL_MAX_PROGRAM_PARAMETERS_ARB = 0x88A9, - GL_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA, - GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB, - GL_PROGRAM_ATTRIBS_ARB = 0x88AC, - GL_MAX_PROGRAM_ATTRIBS_ARB = 0x88AD, - GL_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE, - GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF, - GL_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B0, - GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B1, - GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B2, - GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B3, - GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4, - GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5, - GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6, - GL_TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7, - GL_MATRIX0_ARB = 0x88C0, - GL_MATRIX1_ARB = 0x88C1, - GL_MATRIX2_ARB = 0x88C2, - GL_MATRIX3_ARB = 0x88C3, - GL_MATRIX4_ARB = 0x88C4, - GL_MATRIX5_ARB = 0x88C5, - GL_MATRIX6_ARB = 0x88C6, - GL_MATRIX7_ARB = 0x88C7, - GL_MATRIX8_ARB = 0x88C8, - GL_MATRIX9_ARB = 0x88C9, - GL_MATRIX10_ARB = 0x88CA, - GL_MATRIX11_ARB = 0x88CB, - GL_MATRIX12_ARB = 0x88CC, - GL_MATRIX13_ARB = 0x88CD, - GL_MATRIX14_ARB = 0x88CE, - GL_MATRIX15_ARB = 0x88CF, - GL_MATRIX16_ARB = 0x88D0, - GL_MATRIX17_ARB = 0x88D1, - GL_MATRIX18_ARB = 0x88D2, - GL_MATRIX19_ARB = 0x88D3, - GL_MATRIX20_ARB = 0x88D4, - GL_MATRIX21_ARB = 0x88D5, - GL_MATRIX22_ARB = 0x88D6, - GL_MATRIX23_ARB = 0x88D7, - GL_MATRIX24_ARB = 0x88D8, - GL_MATRIX25_ARB = 0x88D9, - GL_MATRIX26_ARB = 0x88DA, - GL_MATRIX27_ARB = 0x88DB, - GL_MATRIX28_ARB = 0x88DC, - GL_MATRIX29_ARB = 0x88DD, - GL_MATRIX30_ARB = 0x88DE, - GL_MATRIX31_ARB = 0x88DF, - - // GL_ARB_fragment_program - GL_FRAGMENT_PROGRAM_ARB = 0x8804, - GL_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x8805, - GL_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x8806, - GL_PROGRAM_TEX_INDIRECTIONS_ARB = 0x8807, - GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x8808, - GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x8809, - GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x880A, - GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x880B, - GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x880C, - GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = 0x880D, - GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x880E, - GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x880F, - GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x8810, - GL_MAX_TEXTURE_COORDS_ARB = 0x8871, - GL_MAX_TEXTURE_IMAGE_UNITS_ARB = 0x8872, - - // GL_ARB_vertex_buffer_object - GL_BUFFER_SIZE_ARB = 0x8764, - GL_BUFFER_USAGE_ARB = 0x8765, - GL_ARRAY_BUFFER_ARB = 0x8892, - GL_ELEMENT_ARRAY_BUFFER_ARB = 0x8893, - GL_ARRAY_BUFFER_BINDING_ARB = 0x8894, - GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = 0x8895, - GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = 0x8896, - GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = 0x8897, - GL_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x8898, - GL_INDEX_ARRAY_BUFFER_BINDING_ARB = 0x8899, - GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = 0x889A, - GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = 0x889B, - GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x889C, - GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = 0x889D, - GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = 0x889E, - GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = 0x889F, - GL_READ_ONLY_ARB = 0x88B8, - GL_WRITE_ONLY_ARB = 0x88B9, - GL_READ_WRITE_ARB = 0x88BA, - GL_BUFFER_ACCESS_ARB = 0x88BB, - GL_BUFFER_MAPPED_ARB = 0x88BC, - GL_BUFFER_MAP_POINTER_ARB = 0x88BD, - GL_STREAM_DRAW_ARB = 0x88E0, - GL_STREAM_READ_ARB = 0x88E1, - GL_STREAM_COPY_ARB = 0x88E2, - GL_STATIC_DRAW_ARB = 0x88E4, - GL_STATIC_READ_ARB = 0x88E5, - GL_STATIC_COPY_ARB = 0x88E6, - GL_DYNAMIC_DRAW_ARB = 0x88E8, - GL_DYNAMIC_READ_ARB = 0x88E9, - GL_DYNAMIC_COPY_ARB = 0x88EA, - - // GL_ARB_occlusion_query - GL_QUERY_COUNTER_BITS_ARB = 0x8864, - GL_CURRENT_QUERY_ARB = 0x8865, - GL_QUERY_RESULT_ARB = 0x8866, - GL_QUERY_RESULT_AVAILABLE_ARB = 0x8867, - GL_SAMPLES_PASSED_ARB = 0x8914, - - // GL_ARB_shader_objects - GL_PROGRAM_OBJECT_ARB = 0x8B40, - GL_SHADER_OBJECT_ARB = 0x8B48, - GL_OBJECT_TYPE_ARB = 0x8B4E, - GL_OBJECT_SUBTYPE_ARB = 0x8B4F, - GL_FLOAT_VEC2_ARB = 0x8B50, - GL_FLOAT_VEC3_ARB = 0x8B51, - GL_FLOAT_VEC4_ARB = 0x8B52, - GL_INT_VEC2_ARB = 0x8B53, - GL_INT_VEC3_ARB = 0x8B54, - GL_INT_VEC4_ARB = 0x8B55, - GL_BOOL_ARB = 0x8B56, - GL_BOOL_VEC2_ARB = 0x8B57, - GL_BOOL_VEC3_ARB = 0x8B58, - GL_BOOL_VEC4_ARB = 0x8B59, - GL_FLOAT_MAT2_ARB = 0x8B5A, - GL_FLOAT_MAT3_ARB = 0x8B5B, - GL_FLOAT_MAT4_ARB = 0x8B5C, - GL_SAMPLER_1D_ARB = 0x8B5D, - GL_SAMPLER_2D_ARB = 0x8B5E, - GL_SAMPLER_3D_ARB = 0x8B5F, - GL_SAMPLER_CUBE_ARB = 0x8B60, - GL_SAMPLER_1D_SHADOW_ARB = 0x8B61, - GL_SAMPLER_2D_SHADOW_ARB = 0x8B62, - GL_SAMPLER_2D_RECT_ARB = 0x8B63, - GL_SAMPLER_2D_RECT_SHADOW_ARB = 0x8B64, - GL_OBJECT_DELETE_STATUS_ARB = 0x8B80, - GL_OBJECT_COMPILE_STATUS_ARB = 0x8B81, - GL_OBJECT_LINK_STATUS_ARB = 0x8B82, - GL_OBJECT_VALIDATE_STATUS_ARB = 0x8B83, - GL_OBJECT_INFO_LOG_LENGTH_ARB = 0x8B84, - GL_OBJECT_ATTACHED_OBJECTS_ARB = 0x8B85, - GL_OBJECT_ACTIVE_UNIFORMS_ARB = 0x8B86, - GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = 0x8B87, - GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = 0x8B88, - - // GL_ARB_vertex_shader - GL_VERTEX_SHADER_ARB = 0x8B31, - GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = 0x8B4A, - GL_MAX_VARYING_FLOATS_ARB = 0x8B4B, - GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = 0x8B4C, - GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = 0x8B4D, - GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = 0x8B89, - GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = 0x8B8A, - - // GL_ARB_fragment_shader - GL_FRAGMENT_SHADER_ARB = 0x8B30, - GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = 0x8B49, - GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = 0x8B8B, - - // GL_ARB_shading_language_100 - GL_SHADING_LANGUAGE_VERSION_ARB = 0x8B8C, - - // GL_ARB_point_sprite - GL_POINT_SPRITE_ARB = 0x8861, - GL_COORD_REPLACE_ARB = 0x8862, - - // GL_ARB_draw_buffers - GL_MAX_DRAW_BUFFERS_ARB = 0x8824, - GL_DRAW_BUFFER0_ARB = 0x8825, - GL_DRAW_BUFFER1_ARB = 0x8826, - GL_DRAW_BUFFER2_ARB = 0x8827, - GL_DRAW_BUFFER3_ARB = 0x8828, - GL_DRAW_BUFFER4_ARB = 0x8829, - GL_DRAW_BUFFER5_ARB = 0x882A, - GL_DRAW_BUFFER6_ARB = 0x882B, - GL_DRAW_BUFFER7_ARB = 0x882C, - GL_DRAW_BUFFER8_ARB = 0x882D, - GL_DRAW_BUFFER9_ARB = 0x882E, - GL_DRAW_BUFFER10_ARB = 0x882F, - GL_DRAW_BUFFER11_ARB = 0x8830, - GL_DRAW_BUFFER12_ARB = 0x8831, - GL_DRAW_BUFFER13_ARB = 0x8832, - GL_DRAW_BUFFER14_ARB = 0x8833, - GL_DRAW_BUFFER15_ARB = 0x8834, - - // GL_ARB_texture_rectangle - GL_TEXTURE_RECTANGLE_ARB = 0x84F5, - GL_TEXTURE_BINDING_RECTANGLE_ARB = 0x84F6, - GL_PROXY_TEXTURE_RECTANGLE_ARB = 0x84F7, - GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = 0x84F8, - - // GL_ARB_color_buffer_float - GL_RGBA_FLOAT_MODE_ARB = 0x8820, - GL_CLAMP_VERTEX_COLOR_ARB = 0x891A, - GL_CLAMP_FRAGMENT_COLOR_ARB = 0x891B, - GL_CLAMP_READ_COLOR_ARB = 0x891C, - GL_FIXED_ONLY_COLOR_ARB = 0x891D, - - // GL_ARB_half_float_pixel - GL_HALF_FLOAT_ARB = 0x140B, - - // GL_ARB_texture_float - GL_TEXTURE_RED_TYPE_ARB = 0x8C10, - GL_TEXTURE_GREEN_TYPE_ARB = 0x8C11, - GL_TEXTURE_BLUE_TYPE_ARB = 0x8C12, - GL_TEXTURE_ALPHA_TYPE_ARB = 0x8C13, - GL_TEXTURE_LUMINANCE_TYPE_ARB = 0x8C14, - GL_TEXTURE_INTENSITY_TYPE_ARB = 0x8C15, - GL_TEXTURE_DEPTH_TYPE_ARB = 0x8C16, - GL_UNSIGNED_NORMALIZED_ARB = 0x8C17, - GL_RGBA32F_ARB = 0x8814, - GL_RGB32F_ARB = 0x8815, - GL_ALPHA32F_ARB = 0x8816, - GL_INTENSITY32F_ARB = 0x8817, - GL_LUMINANCE32F_ARB = 0x8818, - GL_LUMINANCE_ALPHA32F_ARB = 0x8819, - GL_RGBA16F_ARB = 0x881A, - GL_RGB16F_ARB = 0x881B, - GL_ALPHA16F_ARB = 0x881C, - GL_INTENSITY16F_ARB = 0x881D, - GL_LUMINANCE16F_ARB = 0x881E, - GL_LUMINANCE_ALPHA16F_ARB = 0x881F, - - // GL_ARB_pixel_buffer_object - GL_PIXEL_PACK_BUFFER_ARB = 0x88EB, - GL_PIXEL_UNPACK_BUFFER_ARB = 0x88EC, - GL_PIXEL_PACK_BUFFER_BINDING_ARB = 0x88ED, - GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = 0x88EF, - - // GL_ARB_depth_buffer_float - GL_DEPTH_COMPONENT32F = 0x8CAC, - GL_DEPTH32F_STENCIL8 = 0x8CAD, - GL_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD, - - // GL_ARB_framebuffer_object - GL_INVALID_FRAMEBUFFER_OPERATION = 0x0506, - GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210, - GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211, - GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212, - GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213, - GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214, - GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215, - GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216, - GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217, - GL_FRAMEBUFFER_DEFAULT = 0x8218, - GL_FRAMEBUFFER_UNDEFINED = 0x8219, - GL_DEPTH_STENCIL_ATTACHMENT = 0x821A, - GL_INDEX = 0x8222, - GL_MAX_RENDERBUFFER_SIZE = 0x84E8, - GL_DEPTH_STENCIL = 0x84F9, - GL_UNSIGNED_INT_24_8 = 0x84FA, - GL_DEPTH24_STENCIL8 = 0x88F0, - GL_TEXTURE_STENCIL_SIZE = 0x88F1, - GL_UNSIGNED_NORMALIZED = 0x8C17, - GL_SRGB = 0x8C40, - GL_DRAW_FRAMEBUFFER_BINDING = 0x8CA6, - GL_FRAMEBUFFER_BINDING = 0x8CA6, - GL_RENDERBUFFER_BINDING = 0x8CA7, - GL_READ_FRAMEBUFFER = 0x8CA8, - GL_DRAW_FRAMEBUFFER = 0x8CA9, - GL_READ_FRAMEBUFFER_BINDING = 0x8CAA, - GL_RENDERBUFFER_SAMPLES = 0x8CAB, - GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0, - GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1, - GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2, - GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3, - GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4, - GL_FRAMEBUFFER_COMPLETE = 0x8CD5, - GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6, - GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7, - GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB, - GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC, - GL_FRAMEBUFFER_UNSUPPORTED = 0x8CDD, - GL_MAX_COLOR_ATTACHMENTS = 0x8CDF, - GL_COLOR_ATTACHMENT0 = 0x8CE0, - GL_COLOR_ATTACHMENT1 = 0x8CE1, - GL_COLOR_ATTACHMENT2 = 0x8CE2, - GL_COLOR_ATTACHMENT3 = 0x8CE3, - GL_COLOR_ATTACHMENT4 = 0x8CE4, - GL_COLOR_ATTACHMENT5 = 0x8CE5, - GL_COLOR_ATTACHMENT6 = 0x8CE6, - GL_COLOR_ATTACHMENT7 = 0x8CE7, - GL_COLOR_ATTACHMENT8 = 0x8CE8, - GL_COLOR_ATTACHMENT9 = 0x8CE9, - GL_COLOR_ATTACHMENT10 = 0x8CEA, - GL_COLOR_ATTACHMENT11 = 0x8CEB, - GL_COLOR_ATTACHMENT12 = 0x8CEC, - GL_COLOR_ATTACHMENT13 = 0x8CED, - GL_COLOR_ATTACHMENT14 = 0x8CEE, - GL_COLOR_ATTACHMENT15 = 0x8CEF, - GL_DEPTH_ATTACHMENT = 0x8D00, - GL_STENCIL_ATTACHMENT = 0x8D20, - GL_FRAMEBUFFER = 0x8D40, - GL_RENDERBUFFER = 0x8D41, - GL_RENDERBUFFER_WIDTH = 0x8D42, - GL_RENDERBUFFER_HEIGHT = 0x8D43, - GL_RENDERBUFFER_INTERNAL_FORMAT = 0x8D44, - GL_STENCIL_INDEX1 = 0x8D46, - GL_STENCIL_INDEX4 = 0x8D47, - GL_STENCIL_INDEX8 = 0x8D48, - GL_STENCIL_INDEX16 = 0x8D49, - GL_RENDERBUFFER_RED_SIZE = 0x8D50, - GL_RENDERBUFFER_GREEN_SIZE = 0x8D51, - GL_RENDERBUFFER_BLUE_SIZE = 0x8D52, - GL_RENDERBUFFER_ALPHA_SIZE = 0x8D53, - GL_RENDERBUFFER_DEPTH_SIZE = 0x8D54, - GL_RENDERBUFFER_STENCIL_SIZE = 0x8D55, - GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56, - GL_MAX_SAMPLES = 0x8D57, - - // GL_ARB_framebuffer_sRGB - GL_FRAMEBUFFER_SRGB = 0x8DB9, - - // GL_ARB_geometry_shader4 - GL_LINES_ADJACENCY_ARB = 0xA, - GL_LINE_STRIP_ADJACENCY_ARB = 0xB, - GL_TRIANGLES_ADJACENCY_ARB = 0xC, - GL_TRIANGLE_STRIP_ADJACENCY_ARB = 0xD, - GL_PROGRAM_POINT_SIZE_ARB = 0x8642, - GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = 0x8C29, - GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = 0x8DA7, - GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = 0x8DA8, - GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = 0x8DA9, - GL_GEOMETRY_SHADER_ARB = 0x8DD9, - GL_GEOMETRY_VERTICES_OUT_ARB = 0x8DDA, - GL_GEOMETRY_INPUT_TYPE_ARB = 0x8DDB, - GL_GEOMETRY_OUTPUT_TYPE_ARB = 0x8DDC, - GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = 0x8DDD, - GL_MAX_VERTEX_VARYING_COMPONENTS_ARB = 0x8DDE, - GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = 0x8DDF, - GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = 0x8DE0, - GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = 0x8DE1, - - // GL_ARB_half_float_vertex - GL_HALF_FLOAT = 0x140B, - - // GL_ARB_imaging - GL_CONVOLUTION_1D = 0x8010, - GL_CONVOLUTION_2D = 0x8011, - GL_SEPARABLE_2D = 0x8012, - GL_CONVOLUTION_BORDER_MODE = 0x8013, - GL_CONVOLUTION_FILTER_SCALE = 0x8014, - GL_CONVOLUTION_FILTER_BIAS = 0x8015, - GL_REDUCE = 0x8016, - GL_CONVOLUTION_FORMAT = 0x8017, - GL_CONVOLUTION_WIDTH = 0x8018, - GL_CONVOLUTION_HEIGHT = 0x8019, - GL_MAX_CONVOLUTION_WIDTH = 0x801A, - GL_MAX_CONVOLUTION_HEIGHT = 0x801B, - GL_POST_CONVOLUTION_RED_SCALE = 0x801C, - GL_POST_CONVOLUTION_GREEN_SCALE = 0x801D, - GL_POST_CONVOLUTION_BLUE_SCALE = 0x801E, - GL_POST_CONVOLUTION_ALPHA_SCALE = 0x801F, - GL_POST_CONVOLUTION_RED_BIAS = 0x8020, - GL_POST_CONVOLUTION_GREEN_BIAS = 0x8021, - GL_POST_CONVOLUTION_BLUE_BIAS = 0x8022, - GL_POST_CONVOLUTION_ALPHA_BIAS = 0x8023, - GL_HISTOGRAM = 0x8024, - GL_PROXY_HISTOGRAM = 0x8025, - GL_HISTOGRAM_WIDTH = 0x8026, - GL_HISTOGRAM_FORMAT = 0x8027, - GL_HISTOGRAM_RED_SIZE = 0x8028, - GL_HISTOGRAM_GREEN_SIZE = 0x8029, - GL_HISTOGRAM_BLUE_SIZE = 0x802A, - GL_HISTOGRAM_ALPHA_SIZE = 0x802B, - GL_HISTOGRAM_LUMINANCE_SIZE = 0x802C, - GL_HISTOGRAM_SINK = 0x802D, - GL_MINMAX = 0x802E, - GL_MINMAX_FORMAT = 0x802F, - GL_MINMAX_SINK = 0x8030, - GL_TABLE_TOO_LARGE = 0x8031, - GL_COLOR_MATRIX = 0x80B1, - GL_COLOR_MATRIX_STACK_DEPTH = 0x80B2, - GL_MAX_COLOR_MATRIX_STACK_DEPTH = 0x80B3, - GL_POST_COLOR_MATRIX_RED_SCALE = 0x80B4, - GL_POST_COLOR_MATRIX_GREEN_SCALE = 0x80B5, - GL_POST_COLOR_MATRIX_BLUE_SCALE = 0x80B6, - GL_POST_COLOR_MATRIX_ALPHA_SCALE = 0x80B7, - GL_POST_COLOR_MATRIX_RED_BIAS = 0x80B8, - GL_POST_COLOR_MATRIX_GREEN_BIAS = 0x80B9, - GL_POST_COLOR_MATRIX_BLUE_BIAS = 0x80BA, - GL_POST_COLOR_MATRIX_ALPHA_BIAS = 0x80BB, - GL_COLOR_TABLE = 0x80D0, - GL_POST_CONVOLUTION_COLOR_TABLE = 0x80D1, - GL_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D2, - GL_PROXY_COLOR_TABLE = 0x80D3, - GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = 0x80D4, - GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D5, - GL_COLOR_TABLE_SCALE = 0x80D6, - GL_COLOR_TABLE_BIAS = 0x80D7, - GL_COLOR_TABLE_FORMAT = 0x80D8, - GL_COLOR_TABLE_WIDTH = 0x80D9, - GL_COLOR_TABLE_RED_SIZE = 0x80DA, - GL_COLOR_TABLE_GREEN_SIZE = 0x80DB, - GL_COLOR_TABLE_BLUE_SIZE = 0x80DC, - GL_COLOR_TABLE_ALPHA_SIZE = 0x80DD, - GL_COLOR_TABLE_LUMINANCE_SIZE = 0x80DE, - GL_COLOR_TABLE_INTENSITY_SIZE = 0x80DF, - GL_IGNORE_BORDER = 0x8150, - GL_CONSTANT_BORDER = 0x8151, - GL_WRAP_BORDER = 0x8152, - GL_REPLICATE_BORDER = 0x8153, - GL_CONVOLUTION_BORDER_COLOR = 0x8154, - - // GL_ARB_instanced_arrays - GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE, - - // GL_ARB_map_buffer_range - GL_MAP_READ_BIT = 0x0001, - GL_MAP_WRITE_BIT = 0x0002, - GL_MAP_INVALIDATE_RANGE_BIT = 0x0004, - GL_MAP_INVALIDATE_BUFFER_BIT = 0x0008, - GL_MAP_FLUSH_EXPLICIT_BIT = 0x0010, - GL_MAP_UNSYNCHRONIZED_BIT = 0x0020, - - // GL_ARB_texture_buffer_object - GL_TEXTURE_BUFFER_ARB = 0x8C2A, - GL_MAX_TEXTURE_BUFFER_SIZE_ARB = 0x8C2B, - GL_TEXTURE_BINDING_BUFFER_ARB = 0x8C2C, - GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = 0x8C2D, - GL_TEXTURE_BUFFER_FORMAT_ARB = 0x8C2E, - - // GL_ARB_texture_compression_rgtc - GL_COMPRESSED_RED_RGTC1 = 0x8DBB, - GL_COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC, - GL_COMPRESSED_RG_RGTC2 = 0x8DBD, - GL_COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE, - - // GL_ARB_texture_rg - GL_RG = 0x8227, - GL_RG_INTEGER = 0x8228, - GL_R8 = 0x8229, - GL_R16 = 0x822A, - GL_RG8 = 0x822B, - GL_RG16 = 0x822C, - GL_R16F = 0x822D, - GL_R32F = 0x822E, - GL_RG16F = 0x822F, - GL_RG32F = 0x8230, - GL_R8I = 0x8231, - GL_R8UI = 0x8232, - GL_R16I = 0x8233, - GL_R16UI = 0x8234, - GL_R32I = 0x8235, - GL_R32UI = 0x8236, - GL_RG8I = 0x8237, - GL_RG8UI = 0x8238, - GL_RG16I = 0x8239, - GL_RG16UI = 0x823A, - GL_RG32I = 0x823B, - GL_RG32UI = 0x823C, - - // GL_ARB_vertex_array_object - GL_VERTEX_ARRAY_BINDING = 0x85B5, - - // GL_ARB_copy_buffer - GL_COPY_READ_BUFFER = 0x8F36, - GL_COPY_WRITE_BUFFER = 0x8F37, - - // GL_ARB_uniform_buffer_object - GL_UNIFORM_BUFFER = 0x8A11, - GL_UNIFORM_BUFFER_BINDING = 0x8A28, - GL_UNIFORM_BUFFER_START = 0x8A29, - GL_UNIFORM_BUFFER_SIZE = 0x8A2A, - GL_MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B, - GL_MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C, - GL_MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D, - GL_MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E, - GL_MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F, - GL_MAX_UNIFORM_BLOCK_SIZE = 0x8A30, - GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31, - GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32, - GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33, - GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34, - GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35, - GL_ACTIVE_UNIFORM_BLOCKS = 0x8A36, - GL_UNIFORM_TYPE = 0x8A37, - GL_UNIFORM_SIZE = 0x8A38, - GL_UNIFORM_NAME_LENGTH = 0x8A39, - GL_UNIFORM_BLOCK_INDEX = 0x8A3A, - GL_UNIFORM_OFFSET = 0x8A3B, - GL_UNIFORM_ARRAY_STRIDE = 0x8A3C, - GL_UNIFORM_MATRIX_STRIDE = 0x8A3D, - GL_UNIFORM_IS_ROW_MAJOR = 0x8A3E, - GL_UNIFORM_BLOCK_BINDING = 0x8A3F, - GL_UNIFORM_BLOCK_DATA_SIZE = 0x8A40, - GL_UNIFORM_BLOCK_NAME_LENGTH = 0x8A41, - GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42, - GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43, - GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44, - GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45, - GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46, - GL_INVALID_INDEX = 0xFFFFFFFFu, - - // GL_ARB_vertex_attrib_64bit - GL_DOUBLE_MAT2 = 0x8F46, - GL_DOUBLE_MAT3 = 0x8F47, - GL_DOUBLE_MAT4 = 0x8F48, - GL_DOUBLE_VEC2 = 0x8FFC, - GL_DOUBLE_VEC3 = 0x8FFD, - GL_DOUBLE_VEC4 = 0x8FFE, - - // GL_ARB_provoking_vertex - GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C, - GL_FIRST_VERTEX_CONVENTION = 0x8E4D, - GL_LAST_VERTEX_CONVENTION = 0x8E4E, - GL_PROVOKING_VERTEX = 0x8E4F, - - // GL_ARB_sync - GL_MAX_SERVER_WAIT_TIMEOUT = 0x9111, - GL_OBJECT_TYPE = 0x9112, - GL_SYNC_CONDITION = 0x9113, - GL_SYNC_STATUS = 0x9114, - GL_SYNC_FLAGS = 0x9115, - GL_SYNC_FENCE = 0x9116, - GL_SYNC_GPU_COMMANDS_COMPLETE = 0x9117, - GL_UNSIGNALED = 0x9118, - GL_SIGNALED = 0x9119, - GL_ALREADY_SIGNALED = 0x911A, - GL_TIMEOUT_EXPIRED = 0x911B, - GL_CONDITION_SATISFIED = 0x911C, - GL_WAIT_FAILED = 0x911D, - GL_SYNC_FLUSH_COMMANDS_BIT = 0x00000001, - - // GL_ARB_texture_multisample - GL_SAMPLE_POSITION = 0x8E50, - GL_SAMPLE_MASK = 0x8E51, - GL_SAMPLE_MASK_VALUE = 0x8E52, - GL_MAX_SAMPLE_MASK_WORDS = 0x8E59, - GL_TEXTURE_2D_MULTISAMPLE = 0x9100, - GL_PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101, - GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102, - GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103, - GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104, - GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105, - GL_TEXTURE_SAMPLES = 0x9106, - GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107, - GL_SAMPLER_2D_MULTISAMPLE = 0x9108, - GL_INT_SAMPLER_2D_MULTISAMPLE = 0x9109, - GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A, - GL_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B, - GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C, - GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D, - GL_MAX_COLOR_TEXTURE_SAMPLES = 0x910E, - GL_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F, - GL_MAX_INTEGER_SAMPLES = 0x9110, - - // GL_ARB_viewport_array - GL_MAX_VIEWPORTS = 0x825B, - GL_VIEWPORT_SUBPIXEL_BITS = 0x825C, - GL_VIEWPORT_BOUNDS_RANGE = 0x825D, - GL_LAYER_PROVOKING_VERTEX = 0x825E, - GL_VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F, - GL_UNDEFINED_VERTEX = 0x8260, - - // GL_ARB_cl_event - GL_SYNC_CL_EVENT_ARB = 0x8240, - GL_SYNC_CL_EVENT_COMPLETE_ARB = 0x8241, - - // GL_ARB_debug_output - GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = 0x8242, - GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = 0x8243, - GL_DEBUG_CALLBACK_FUNCTION_ARB = 0x8244, - GL_DEBUG_CALLBACK_USER_PARAM_ARB = 0x8245, - GL_DEBUG_SOURCE_API_ARB = 0x8246, - GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = 0x8247, - GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = 0x8248, - GL_DEBUG_SOURCE_THIRD_PARTY_ARB = 0x8249, - GL_DEBUG_SOURCE_APPLICATION_ARB = 0x824A, - GL_DEBUG_SOURCE_OTHER_ARB = 0x824B, - GL_DEBUG_TYPE_ERROR_ARB = 0x824C, - GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = 0x824D, - GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = 0x824E, - GL_DEBUG_TYPE_PORTABILITY_ARB = 0x824F, - GL_DEBUG_TYPE_PERFORMANCE_ARB = 0x8250, - GL_DEBUG_TYPE_OTHER_ARB = 0x8251, - GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = 0x9143, - GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = 0x9144, - GL_DEBUG_LOGGED_MESSAGES_ARB = 0x9145, - GL_DEBUG_SEVERITY_HIGH_ARB = 0x9146, - GL_DEBUG_SEVERITY_MEDIUM_ARB = 0x9147, - GL_DEBUG_SEVERITY_LOW_ARB = 0x9148, - - // GL_ARB_robustness - GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = 0x00000004, - GL_LOSE_CONTEXT_ON_RESET_ARB = 0x8252, - GL_GUILTY_CONTEXT_RESET_ARB = 0x8253, - GL_INNOCENT_CONTEXT_RESET_ARB = 0x8254, - GL_UNKNOWN_CONTEXT_RESET_ARB = 0x8255, - GL_RESET_NOTIFICATION_STRATEGY_ARB = 0x8256, - GL_NO_RESET_NOTIFICATION_ARB = 0x8261, - - // GL_ARB_depth_clamp - GL_DEPTH_CLAMP = 0x864F, - - // GL_ARB_blend_func_extended - GL_SRC1_COLOR = 0x88F9, - GL_ONE_MINUS_SRC1_COLOR = 0x88FA, - GL_ONE_MINUS_SRC1_ALPHA = 0x88FB, - GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC, - - // GL_ARB_sampler_objects - GL_SAMPLER_BINDING = 0x8919, - - // GL_ARB_timer_query - GL_TIME_ELAPSED = 0x88BF, - GL_TIMESTAMP = 0x8E28, - - // GL_ARB_vertex_type_2_10_10_10_rev - GL_INT_2_10_10_10_REV = 0x8D9F, - } -} - -version(DerelictGL_EXT) -{ - // from GL_EXT_timer_query - alias long GLint64EXT; - alias ulong GLuint64EXT; - - enum : GLenum - { - // GL_EXT_abgr - GL_ABGR_EXT = 0x8000, - - // GL_EXT_blend_color - GL_CONSTANT_COLOR_EXT = 0x8001, - GL_ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002, - GL_CONSTANT_ALPHA_EXT = 0x8003, - GL_ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004, - GL_BLEND_COLOR_EXT = 0x8005, - - // GL_EXT_polygon_offset - GL_POLYGON_OFFSET_EXT = 0x8037, - GL_POLYGON_OFFSET_FACTOR_EXT = 0x8038, - GL_POLYGON_OFFSET_BIAS_EXT = 0x8039, - - // GL_EXT_texture - GL_ALPHA4_EXT = 0x803B, - GL_ALPHA8_EXT = 0x803C, - GL_ALPHA12_EXT = 0x803D, - GL_ALPHA16_EXT = 0x803E, - GL_LUMINANCE4_EXT = 0x803F, - GL_LUMINANCE8_EXT = 0x8040, - GL_LUMINANCE12_EXT = 0x8041, - GL_LUMINANCE16_EXT = 0x8042, - GL_LUMINANCE4_ALPHA4_EXT = 0x8043, - GL_LUMINANCE6_ALPHA2_EXT = 0x8044, - GL_LUMINANCE8_ALPHA8_EXT = 0x8045, - GL_LUMINANCE12_ALPHA4_EXT = 0x8046, - GL_LUMINANCE12_ALPHA12_EXT = 0x8047, - GL_LUMINANCE16_ALPHA16_EXT = 0x8048, - GL_INTENSITY_EXT = 0x8049, - GL_INTENSITY4_EXT = 0x804A, - GL_INTENSITY8_EXT = 0x804B, - GL_INTENSITY12_EXT = 0x804C, - GL_INTENSITY16_EXT = 0x804D, - GL_RGB2_EXT = 0x804E, - GL_RGB4_EXT = 0x804F, - GL_RGB5_EXT = 0x8050, - GL_RGB8_EXT = 0x8051, - GL_RGB10_EXT = 0x8052, - GL_RGB12_EXT = 0x8053, - GL_RGB16_EXT = 0x8054, - GL_RGBA2_EXT = 0x8055, - GL_RGBA4_EXT = 0x8056, - GL_RGB5_A1_EXT = 0x8057, - GL_RGBA8_EXT = 0x8058, - GL_RGB10_A2_EXT = 0x8059, - GL_RGBA12_EXT = 0x805A, - GL_RGBA16_EXT = 0x805B, - GL_TEXTURE_RED_SIZE_EXT = 0x805C, - GL_TEXTURE_GREEN_SIZE_EXT = 0x805D, - GL_TEXTURE_BLUE_SIZE_EXT = 0x805E, - GL_TEXTURE_ALPHA_SIZE_EXT = 0x805F, - GL_TEXTURE_LUMINANCE_SIZE_EXT = 0x8060, - GL_TEXTURE_INTENSITY_SIZE_EXT = 0x8061, - GL_REPLACE_EXT = 0x8062, - GL_PROXY_TEXTURE_1D_EXT = 0x8063, - GL_PROXY_TEXTURE_2D_EXT = 0x8064, - GL_TEXTURE_TOO_LARGE_EXT = 0x8065, - - // GL_EXT_texture3D - GL_PACK_SKIP_IMAGES_EXT = 0x806B, - GL_PACK_IMAGE_HEIGHT_EXT = 0x806C, - GL_UNPACK_SKIP_IMAGES_EXT = 0x806D, - GL_UNPACK_IMAGE_HEIGHT_EXT = 0x806E, - GL_TEXTURE_3D_EXT = 0x806F, - GL_PROXY_TEXTURE_3D_EXT = 0x8070, - GL_TEXTURE_DEPTH_EXT = 0x8071, - GL_TEXTURE_WRAP_R_EXT = 0x8072, - GL_MAX_3D_TEXTURE_SIZE_EXT = 0x8073, - - // GL_EXT_histogram - GL_HISTOGRAM_EXT = 0x8024, - GL_PROXY_HISTOGRAM_EXT = 0x8025, - GL_HISTOGRAM_WIDTH_EXT = 0x8026, - GL_HISTOGRAM_FORMAT_EXT = 0x8027, - GL_HISTOGRAM_RED_SIZE_EXT = 0x8028, - GL_HISTOGRAM_GREEN_SIZE_EXT = 0x8029, - GL_HISTOGRAM_BLUE_SIZE_EXT = 0x802A, - GL_HISTOGRAM_ALPHA_SIZE_EXT = 0x802B, - GL_HISTOGRAM_LUMINANCE_SIZE_EXT = 0x802C, - GL_HISTOGRAM_SINK_EXT = 0x802D, - GL_MINMAX_EXT = 0x802E, - GL_MINMAX_FORMAT_EXT = 0x802F, - GL_MINMAX_SINK_EXT = 0x8030, - GL_TABLE_TOO_LARGE_EXT = 0x8031, - - // GL_EXT_convolution - GL_CONVOLUTION_1D_EXT = 0x8010, - GL_CONVOLUTION_2D_EXT = 0x8011, - GL_SEPARABLE_2D_EXT = 0x8012, - GL_CONVOLUTION_BORDER_MODE_EXT = 0x8013, - GL_CONVOLUTION_FILTER_SCALE_EXT = 0x8014, - GL_CONVOLUTION_FILTER_BIAS_EXT = 0x8015, - GL_REDUCE_EXT = 0x8016, - GL_CONVOLUTION_FORMAT_EXT = 0x8017, - GL_CONVOLUTION_WIDTH_EXT = 0x8018, - GL_CONVOLUTION_HEIGHT_EXT = 0x8019, - GL_MAX_CONVOLUTION_WIDTH_EXT = 0x801A, - GL_MAX_CONVOLUTION_HEIGHT_EXT = 0x801B, - GL_POST_CONVOLUTION_RED_SCALE_EXT = 0x801C, - GL_POST_CONVOLUTION_GREEN_SCALE_EXT = 0x801D, - GL_POST_CONVOLUTION_BLUE_SCALE_EXT = 0x801E, - GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = 0x801F, - GL_POST_CONVOLUTION_RED_BIAS_EXT = 0x8020, - GL_POST_CONVOLUTION_GREEN_BIAS_EXT = 0x8021, - GL_POST_CONVOLUTION_BLUE_BIAS_EXT = 0x8022, - GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = 0x8023, - - // GL_EXT_cmyka - GL_CMYK_EXT = 0x800C, - GL_CMYKA_EXT = 0x800D, - GL_PACK_CMYK_HINT_EXT = 0x800E, - GL_UNPACK_CMYK_HINT_EXT = 0x800F, - - // GL_EXT_texture_object - GL_TEXTURE_PRIORITY_EXT = 0x8066, - GL_TEXTURE_RESIDENT_EXT = 0x8067, - GL_TEXTURE_1D_BINDING_EXT = 0x8068, - GL_TEXTURE_2D_BINDING_EXT = 0x8069, - GL_TEXTURE_3D_BINDING_EXT = 0x806A, - - // GL_EXT_packed_pixels - GL_UNSIGNED_BYTE_3_3_2_EXT = 0x8032, - GL_UNSIGNED_SHORT_4_4_4_4_EXT = 0x8033, - GL_UNSIGNED_SHORT_5_5_5_1_EXT = 0x8034, - GL_UNSIGNED_INT_8_8_8_8_EXT = 0x8035, - GL_UNSIGNED_INT_10_10_10_2_EXT = 0x8036, - - // GL_EXT_rescale_normal - GL_RESCALE_NORMAL_EXT = 0x803A, - - // GL_EXT_vertex_array - GL_VERTEX_ARRAY_EXT = 0x8074, - GL_NORMAL_ARRAY_EXT = 0x8075, - GL_COLOR_ARRAY_EXT = 0x8076, - GL_INDEX_ARRAY_EXT = 0x8077, - GL_TEXTURE_COORD_ARRAY_EXT = 0x8078, - GL_EDGE_FLAG_ARRAY_EXT = 0x8079, - GL_VERTEX_ARRAY_SIZE_EXT = 0x807A, - GL_VERTEX_ARRAY_TYPE_EXT = 0x807B, - GL_VERTEX_ARRAY_STRIDE_EXT = 0x807C, - GL_VERTEX_ARRAY_COUNT_EXT = 0x807D, - GL_NORMAL_ARRAY_TYPE_EXT = 0x807E, - GL_NORMAL_ARRAY_STRIDE_EXT = 0x807F, - GL_NORMAL_ARRAY_COUNT_EXT = 0x8080, - GL_COLOR_ARRAY_SIZE_EXT = 0x8081, - GL_COLOR_ARRAY_TYPE_EXT = 0x8082, - GL_COLOR_ARRAY_STRIDE_EXT = 0x8083, - GL_COLOR_ARRAY_COUNT_EXT = 0x8084, - GL_INDEX_ARRAY_TYPE_EXT = 0x8085, - GL_INDEX_ARRAY_STRIDE_EXT = 0x8086, - GL_INDEX_ARRAY_COUNT_EXT = 0x8087, - GL_TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088, - GL_TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089, - GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A, - GL_TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B, - GL_EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C, - GL_EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D, - GL_VERTEX_ARRAY_POINTER_EXT = 0x808E, - GL_NORMAL_ARRAY_POINTER_EXT = 0x808F, - GL_COLOR_ARRAY_POINTER_EXT = 0x8090, - GL_INDEX_ARRAY_POINTER_EXT = 0x8091, - GL_TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092, - GL_EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093, - - // GL_EXT_blend_minmax - GL_FUNC_ADD_EXT = 0x8006, - GL_MIN_EXT = 0x8007, - GL_MAX_EXT = 0x8008, - GL_BLEND_EQUATION_EXT = 0x8009, - - // GL_EXT_blend_subtract - GL_FUNC_SUBTRACT_EXT = 0x800A, - GL_FUNC_REVERSE_SUBTRACT_EXT = 0x800B, - - // GL_EXT_point_parameters - GL_POINT_SIZE_MIN_EXT = 0x8126, - GL_POINT_SIZE_MAX_EXT = 0x8127, - GL_POINT_FADE_THRESHOLD_SIZE_EXT = 0x8128, - GL_DISTANCE_ATTENUATION_EXT = 0x8129, - - // GL_EXT_paletted_texture - GL_COLOR_INDEX1_EXT = 0x80E2, - GL_COLOR_INDEX2_EXT = 0x80E3, - GL_COLOR_INDEX4_EXT = 0x80E4, - GL_COLOR_INDEX8_EXT = 0x80E5, - GL_COLOR_INDEX12_EXT = 0x80E6, - GL_COLOR_INDEX16_EXT = 0x80E7, - GL_TEXTURE_INDEX_SIZE_EXT = 0x80ED, - - // GL_EXT_clip_volume_hint - GL_CLIP_VOLUME_CLIPPING_HINT_EXT = 0x80F0, - - // GL_EXT_index_material - GL_INDEX_MATERIAL_EXT = 0x81B8, - GL_INDEX_MATERIAL_PARAMETER_EXT = 0x81B9, - GL_INDEX_MATERIAL_FACE_EXT = 0x81BA, - - // GL_EXT_index_func - GL_INDEX_TEST_EXT = 0x81B5, - GL_INDEX_TEST_FUNC_EXT = 0x81B6, - GL_INDEX_TEST_REF_EXT = 0x81B7, - - // GL_EXT_index_array_formats - GL_IUI_V2F_EXT = 0x81AD, - GL_IUI_V3F_EXT = 0x81AE, - GL_IUI_N3F_V2F_EXT = 0x81AF, - GL_IUI_N3F_V3F_EXT = 0x81B0, - GL_T2F_IUI_V2F_EXT = 0x81B1, - GL_T2F_IUI_V3F_EXT = 0x81B2, - GL_T2F_IUI_N3F_V2F_EXT = 0x81B3, - GL_T2F_IUI_N3F_V3F_EXT = 0x81B4, - - // GL_EXT_compiled_vertex_array - GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = 0x81A8, - GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = 0x81A9, - - // GL_EXT_cull_vertex - GL_CULL_VERTEX_EXT = 0x81AA, - GL_CULL_VERTEX_EYE_POSITION_EXT = 0x81AB, - GL_CULL_VERTEX_OBJECT_POSITION_EXT = 0x81AC, - - // GL_EXT_draw_range_elements - GL_MAX_ELEMENTS_VERTICES_EXT = 0x80E8, - GL_MAX_ELEMENTS_INDICES_EXT = 0x80E9, - - // GL_EXT_light_texture - GL_FRAGMENT_MATERIAL_EXT = 0x8349, - GL_FRAGMENT_NORMAL_EXT = 0x834A, - GL_FRAGMENT_COLOR_EXT = 0x834C, - GL_ATTENUATION_EXT = 0x834D, - GL_SHADOW_ATTENUATION_EXT = 0x834E, - GL_TEXTURE_APPLICATION_MODE_EXT = 0x834F, - GL_TEXTURE_LIGHT_EXT = 0x8350, - GL_TEXTURE_MATERIAL_FACE_EXT = 0x8351, - GL_TEXTURE_MATERIAL_PARAMETER_EXT = 0x8352, - - // GL_EXT_bgra - GL_BGR_EXT = 0x80E0, - GL_BGRA_EXT = 0x80E1, - - // GL_EXT_pixel_transform - GL_PIXEL_TRANSFORM_2D_EXT = 0x8330, - GL_PIXEL_MAG_FILTER_EXT = 0x8331, - GL_PIXEL_MIN_FILTER_EXT = 0x8332, - GL_PIXEL_CUBIC_WEIGHT_EXT = 0x8333, - GL_CUBIC_EXT = 0x8334, - GL_AVERAGE_EXT = 0x8335, - GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8336, - GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8337, - GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = 0x8338, - - // GL_EXT_shared_texture_palette - GL_SHARED_TEXTURE_PALETTE_EXT = 0x81FB, - - // GL_EXT_separate_specular_color - GL_LIGHT_MODEL_COLOR_CONTROL_EXT = 0x81F8, - GL_SINGLE_COLOR_EXT = 0x81F9, - GL_SEPARATE_SPECULAR_COLOR_EXT = 0x81FA, - - // GL_EXT_secondary_color - GL_COLOR_SUM_EXT = 0x8458, - GL_CURRENT_SECONDARY_COLOR_EXT = 0x8459, - GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = 0x845A, - GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = 0x845B, - GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = 0x845C, - GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = 0x845D, - GL_SECONDARY_COLOR_ARRAY_EXT = 0x845E, - - // GL_EXT_texture_perturb_normal - GL_PERTURB_EXT = 0x85AE, - GL_TEXTURE_NORMAL_EXT = 0x85AF, - - // GL_EXT_fog_coord - GL_FOG_COORDINATE_SOURCE_EXT = 0x8450, - GL_FOG_COORDINATE_EXT = 0x8451, - GL_FRAGMENT_DEPTH_EXT = 0x8452, - GL_CURRENT_FOG_COORDINATE_EXT = 0x8453, - GL_FOG_COORDINATE_ARRAY_TYPE_EXT = 0x8454, - GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = 0x8455, - GL_FOG_COORDINATE_ARRAY_POINTER_EXT = 0x8456, - GL_FOG_COORDINATE_ARRAY_EXT = 0x8457, - - // GL_EXT_coordinate_frame - GL_TANGENT_ARRAY_EXT = 0x8439, - GL_BINORMAL_ARRAY_EXT = 0x843A, - GL_CURRENT_TANGENT_EXT = 0x843B, - GL_CURRENT_BINORMAL_EXT = 0x843C, - GL_TANGENT_ARRAY_TYPE_EXT = 0x843E, - GL_TANGENT_ARRAY_STRIDE_EXT = 0x843F, - GL_BINORMAL_ARRAY_TYPE_EXT = 0x8440, - GL_BINORMAL_ARRAY_STRIDE_EXT = 0x8441, - GL_TANGENT_ARRAY_POINTER_EXT = 0x8442, - GL_BINORMAL_ARRAY_POINTER_EXT = 0x8443, - GL_MAP1_TANGENT_EXT = 0x8444, - GL_MAP2_TANGENT_EXT = 0x8445, - GL_MAP1_BINORMAL_EXT = 0x8446, - GL_MAP2_BINORMAL_EXT = 0x8447, - - // GL_EXT_texture_env_combine - GL_COMBINE_EXT = 0x8570, - GL_COMBINE_RGB_EXT = 0x8571, - GL_COMBINE_ALPHA_EXT = 0x8572, - GL_RGB_SCALE_EXT = 0x8573, - GL_ADD_SIGNED_EXT = 0x8574, - GL_INTERPOLATE_EXT = 0x8575, - GL_CONSTANT_EXT = 0x8576, - GL_PRIMARY_COLOR_EXT = 0x8577, - GL_PREVIOUS_EXT = 0x8578, - GL_SOURCE0_RGB_EXT = 0x8580, - GL_SOURCE1_RGB_EXT = 0x8581, - GL_SOURCE2_RGB_EXT = 0x8582, - GL_SOURCE0_ALPHA_EXT = 0x8588, - GL_SOURCE1_ALPHA_EXT = 0x8589, - GL_SOURCE2_ALPHA_EXT = 0x858A, - GL_OPERAND0_RGB_EXT = 0x8590, - GL_OPERAND1_RGB_EXT = 0x8591, - GL_OPERAND2_RGB_EXT = 0x8592, - GL_OPERAND0_ALPHA_EXT = 0x8598, - GL_OPERAND1_ALPHA_EXT = 0x8599, - GL_OPERAND2_ALPHA_EXT = 0x859A, - - // GL_EXT_blend_func_separate - GL_BLEND_DST_RGB_EXT = 0x80C8, - GL_BLEND_SRC_RGB_EXT = 0x80C9, - GL_BLEND_DST_ALPHA_EXT = 0x80CA, - GL_BLEND_SRC_ALPHA_EXT = 0x80CB, - - // GL_EXT_stencil_wrap - GL_INCR_WRAP_EXT = 0x8507, - GL_DECR_WRAP_EXT = 0x8508, - - // GL_EXT_422_pixels - GL_422_EXT = 0x80CC, - GL_422_REV_EXT = 0x80CD, - GL_422_AVERAGE_EXT = 0x80CE, - GL_422_REV_AVERAGE_EXT = 0x80CF, - - // GL_EXT_texture_cube_map - GL_NORMAL_MAP_EXT = 0x8511, - GL_REFLECTION_MAP_EXT = 0x8512, - GL_TEXTURE_CUBE_MAP_EXT = 0x8513, - GL_TEXTURE_BINDING_CUBE_MAP_EXT = 0x8514, - GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = 0x8515, - GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = 0x8516, - GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = 0x8517, - GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = 0x8518, - GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = 0x8519, - GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = 0x851A, - GL_PROXY_TEXTURE_CUBE_MAP_EXT = 0x851B, - GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = 0x851C, - - // GL_EXT_texture_lod_bias - GL_MAX_TEXTURE_LOD_BIAS_EXT = 0x84FD, - GL_TEXTURE_FILTER_CONTROL_EXT = 0x8500, - GL_TEXTURE_LOD_BIAS_EXT = 0x8501, - - // GL_EXT_texture_filter_anisotropic - GL_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE, - GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF, - - // GL_EXT_vertex_weighting - GL_MODELVIEW0_STACK_DEPTH_EXT = GL_MODELVIEW_STACK_DEPTH, - GL_MODELVIEW1_STACK_DEPTH_EXT = 0x8502, - GL_MODELVIEW0_MATRIX_EXT = GL_MODELVIEW_MATRIX, - GL_MODELVIEW1_MATRIX_EXT = 0x8506, - GL_VERTEX_WEIGHTING_EXT = 0x8509, - GL_MODELVIEW0_EXT = GL_MODELVIEW, - GL_MODELVIEW1_EXT = 0x850A, - GL_CURRENT_VERTEX_WEIGHT_EXT = 0x850B, - GL_VERTEX_WEIGHT_ARRAY_EXT = 0x850C, - GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = 0x850D, - GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = 0x850E, - GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = 0x850F, - GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = 0x8510, - - // GL_EXT_texture_compression_s3tc - GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0, - GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1, - GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2, - GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3, - - // GL_EXT_multisample - GL_MULTISAMPLE_EXT = 0x809D, - GL_SAMPLE_ALPHA_TO_MASK_EXT = 0x809E, - GL_SAMPLE_ALPHA_TO_ONE_EXT = 0x809F, - GL_SAMPLE_MASK_EXT = 0x80A0, - GL_1PASS_EXT = 0x80A1, - GL_2PASS_0_EXT = 0x80A2, - GL_2PASS_1_EXT = 0x80A3, - GL_4PASS_0_EXT = 0x80A4, - GL_4PASS_1_EXT = 0x80A5, - GL_4PASS_2_EXT = 0x80A6, - GL_4PASS_3_EXT = 0x80A7, - GL_SAMPLE_BUFFERS_EXT = 0x80A8, - GL_SAMPLES_EXT = 0x80A9, - GL_SAMPLE_MASK_VALUE_EXT = 0x80AA, - GL_SAMPLE_MASK_INVERT_EXT = 0x80AB, - GL_SAMPLE_PATTERN_EXT = 0x80AC, - GL_MULTISAMPLE_BIT_EXT = 0x20000000, - - // GL_EXT_texture_env_dot3 - GL_DOT3_RGB_EXT = 0x8740, - GL_DOT3_RGBA_EXT = 0x8741, - - // GL_EXT_vertex_shader - GL_VERTEX_SHADER_EXT = 0x8780, - GL_VERTEX_SHADER_BINDING_EXT = 0x8781, - GL_OP_INDEX_EXT = 0x8782, - GL_OP_NEGATE_EXT = 0x8783, - GL_OP_DOT3_EXT = 0x8784, - GL_OP_DOT4_EXT = 0x8785, - GL_OP_MUL_EXT = 0x8786, - GL_OP_ADD_EXT = 0x8787, - GL_OP_MADD_EXT = 0x8788, - GL_OP_FRAC_EXT = 0x8789, - GL_OP_MAX_EXT = 0x878A, - GL_OP_MIN_EXT = 0x878B, - GL_OP_SET_GE_EXT = 0x878C, - GL_OP_SET_LT_EXT = 0x878D, - GL_OP_CLAMP_EXT = 0x878E, - GL_OP_FLOOR_EXT = 0x878F, - GL_OP_ROUND_EXT = 0x8790, - GL_OP_EXP_BASE_2_EXT = 0x8791, - GL_OP_LOG_BASE_2_EXT = 0x8792, - GL_OP_POWER_EXT = 0x8793, - GL_OP_RECIP_EXT = 0x8794, - GL_OP_RECIP_SQRT_EXT = 0x8795, - GL_OP_SUB_EXT = 0x8796, - GL_OP_CROSS_PRODUCT_EXT = 0x8797, - GL_OP_MULTIPLY_MATRIX_EXT = 0x8798, - GL_OP_MOV_EXT = 0x8799, - GL_OUTPUT_VERTEX_EXT = 0x879A, - GL_OUTPUT_COLOR0_EXT = 0x879B, - GL_OUTPUT_COLOR1_EXT = 0x879C, - GL_OUTPUT_TEXTURE_COORD0_EXT = 0x879D, - GL_OUTPUT_TEXTURE_COORD1_EXT = 0x879E, - GL_OUTPUT_TEXTURE_COORD2_EXT = 0x879F, - GL_OUTPUT_TEXTURE_COORD3_EXT = 0x87A0, - GL_OUTPUT_TEXTURE_COORD4_EXT = 0x87A1, - GL_OUTPUT_TEXTURE_COORD5_EXT = 0x87A2, - GL_OUTPUT_TEXTURE_COORD6_EXT = 0x87A3, - GL_OUTPUT_TEXTURE_COORD7_EXT = 0x87A4, - GL_OUTPUT_TEXTURE_COORD8_EXT = 0x87A5, - GL_OUTPUT_TEXTURE_COORD9_EXT = 0x87A6, - GL_OUTPUT_TEXTURE_COORD10_EXT = 0x87A7, - GL_OUTPUT_TEXTURE_COORD11_EXT = 0x87A8, - GL_OUTPUT_TEXTURE_COORD12_EXT = 0x87A9, - GL_OUTPUT_TEXTURE_COORD13_EXT = 0x87AA, - GL_OUTPUT_TEXTURE_COORD14_EXT = 0x87AB, - GL_OUTPUT_TEXTURE_COORD15_EXT = 0x87AC, - GL_OUTPUT_TEXTURE_COORD16_EXT = 0x87AD, - GL_OUTPUT_TEXTURE_COORD17_EXT = 0x87AE, - GL_OUTPUT_TEXTURE_COORD18_EXT = 0x87AF, - GL_OUTPUT_TEXTURE_COORD19_EXT = 0x87B0, - GL_OUTPUT_TEXTURE_COORD20_EXT = 0x87B1, - GL_OUTPUT_TEXTURE_COORD21_EXT = 0x87B2, - GL_OUTPUT_TEXTURE_COORD22_EXT = 0x87B3, - GL_OUTPUT_TEXTURE_COORD23_EXT = 0x87B4, - GL_OUTPUT_TEXTURE_COORD24_EXT = 0x87B5, - GL_OUTPUT_TEXTURE_COORD25_EXT = 0x87B6, - GL_OUTPUT_TEXTURE_COORD26_EXT = 0x87B7, - GL_OUTPUT_TEXTURE_COORD27_EXT = 0x87B8, - GL_OUTPUT_TEXTURE_COORD28_EXT = 0x87B9, - GL_OUTPUT_TEXTURE_COORD29_EXT = 0x87BA, - GL_OUTPUT_TEXTURE_COORD30_EXT = 0x87BB, - GL_OUTPUT_TEXTURE_COORD31_EXT = 0x87BC, - GL_OUTPUT_FOG_EXT = 0x87BD, - GL_SCALAR_EXT = 0x87BE, - GL_VECTOR_EXT = 0x87BF, - GL_MATRIX_EXT = 0x87C0, - GL_VARIANT_EXT = 0x87C1, - GL_INVARIANT_EXT = 0x87C2, - GL_LOCAL_CONSTANT_EXT = 0x87C3, - GL_LOCAL_EXT = 0x87C4, - GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87C5, - GL_MAX_VERTEX_SHADER_VARIANTS_EXT = 0x87C6, - GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = 0x87C7, - GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87C8, - GL_MAX_VERTEX_SHADER_LOCALS_EXT = 0x87C9, - GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CA, - GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = 0x87CB, - GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87CC, - GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = 0x87CD, - GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = 0x87CE, - GL_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CF, - GL_VERTEX_SHADER_VARIANTS_EXT = 0x87D0, - GL_VERTEX_SHADER_INVARIANTS_EXT = 0x87D1, - GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87D2, - GL_VERTEX_SHADER_LOCALS_EXT = 0x87D3, - GL_VERTEX_SHADER_OPTIMIZED_EXT = 0x87D4, - GL_X_EXT = 0x87D5, - GL_Y_EXT = 0x87D6, - GL_Z_EXT = 0x87D7, - GL_W_EXT = 0x87D8, - GL_NEGATIVE_X_EXT = 0x87D9, - GL_NEGATIVE_Y_EXT = 0x87DA, - GL_NEGATIVE_Z_EXT = 0x87DB, - GL_NEGATIVE_W_EXT = 0x87DC, - GL_ZERO_EXT = 0x87DD, - GL_ONE_EXT = 0x87DE, - GL_NEGATIVE_ONE_EXT = 0x87DF, - GL_NORMALIZED_RANGE_EXT = 0x87E0, - GL_FULL_RANGE_EXT = 0x87E1, - GL_CURRENT_VERTEX_EXT = 0x87E2, - GL_MVP_MATRIX_EXT = 0x87E3, - GL_VARIANT_VALUE_EXT = 0x87E4, - GL_VARIANT_DATATYPE_EXT = 0x87E5, - GL_VARIANT_ARRAY_STRIDE_EXT = 0x87E6, - GL_VARIANT_ARRAY_TYPE_EXT = 0x87E7, - GL_VARIANT_ARRAY_EXT = 0x87E8, - GL_VARIANT_ARRAY_POINTER_EXT = 0x87E9, - GL_INVARIANT_VALUE_EXT = 0x87EA, - GL_INVARIANT_DATATYPE_EXT = 0x87EB, - GL_LOCAL_CONSTANT_VALUE_EXT = 0x87EC, - GL_LOCAL_CONSTANT_DATATYPE_EXT = 0x87ED, - - // GL_EXT_stencil_two_side - GL_STENCIL_TEST_TWO_SIDE_EXT = 0x8910, - GL_ACTIVE_STENCIL_FACE_EXT = 0x8911, - - // GL_EXT_depth_bounds_test - GL_DEPTH_BOUNDS_TEST_EXT = 0x8890, - GL_DEPTH_BOUNDS_EXT = 0x8891, - - // GL_EXT_texture_mirror_clamp - GL_MIRROR_CLAMP_EXT = 0x8742, - GL_MIRROR_CLAMP_TO_EDGE_EXT = 0x8743, - GL_MIRROR_CLAMP_TO_BORDER_EXT = 0x8912, - - // GL_EXT_blend_equation_separate - GL_BLEND_EQUATION_RGB_EXT = 0x8009, - GL_BLEND_EQUATION_ALPHA_EXT = 0x883D, - - // GL_EXT_pixel_buffer_object - GL_PIXEL_PACK_BUFFER_EXT = 0x88EB, - GL_PIXEL_UNPACK_BUFFER_EXT = 0x88EC, - GL_PIXEL_PACK_BUFFER_BINDING_EXT = 0x88ED, - GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = 0x88EF, - - // GL_EXT_framebuffer_object - GL_INVALID_FRAMEBUFFER_OPERATION_EXT = 0x0506, - GL_MAX_RENDERBUFFER_SIZE_EXT = 0x84E8, - GL_FRAMEBUFFER_BINDING_EXT = 0x8CA6, - GL_RENDERBUFFER_BINDING_EXT = 0x8CA7, - GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = 0x8CD0, - GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = 0x8CD1, - GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = 0x8CD2, - GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = 0x8CD3, - GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = 0x8CD4, - GL_FRAMEBUFFER_COMPLETE_EXT = 0x8CD5, - GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = 0x8CD6, - GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = 0x8CD7, - GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = 0x8CD9, - GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = 0x8CDA, - GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = 0x8CDB, - GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = 0x8CDC, - GL_FRAMEBUFFER_UNSUPPORTED_EXT = 0x8CDD, - GL_MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF, - GL_COLOR_ATTACHMENT0_EXT = 0x8CE0, - GL_COLOR_ATTACHMENT1_EXT = 0x8CE1, - GL_COLOR_ATTACHMENT2_EXT = 0x8CE2, - GL_COLOR_ATTACHMENT3_EXT = 0x8CE3, - GL_COLOR_ATTACHMENT4_EXT = 0x8CE4, - GL_COLOR_ATTACHMENT5_EXT = 0x8CE5, - GL_COLOR_ATTACHMENT6_EXT = 0x8CE6, - GL_COLOR_ATTACHMENT7_EXT = 0x8CE7, - GL_COLOR_ATTACHMENT8_EXT = 0x8CE8, - GL_COLOR_ATTACHMENT9_EXT = 0x8CE9, - GL_COLOR_ATTACHMENT10_EXT = 0x8CEA, - GL_COLOR_ATTACHMENT11_EXT = 0x8CEB, - GL_COLOR_ATTACHMENT12_EXT = 0x8CEC, - GL_COLOR_ATTACHMENT13_EXT = 0x8CED, - GL_COLOR_ATTACHMENT14_EXT = 0x8CEE, - GL_COLOR_ATTACHMENT15_EXT = 0x8CEF, - GL_DEPTH_ATTACHMENT_EXT = 0x8D00, - GL_STENCIL_ATTACHMENT_EXT = 0x8D20, - GL_FRAMEBUFFER_EXT = 0x8D40, - GL_RENDERBUFFER_EXT = 0x8D41, - GL_RENDERBUFFER_WIDTH_EXT = 0x8D42, - GL_RENDERBUFFER_HEIGHT_EXT = 0x8D43, - GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = 0x8D44, - GL_STENCIL_INDEX1_EXT = 0x8D46, - GL_STENCIL_INDEX4_EXT = 0x8D47, - GL_STENCIL_INDEX8_EXT = 0x8D48, - GL_STENCIL_INDEX16_EXT = 0x8D49, - GL_RENDERBUFFER_RED_SIZE_EXT = 0x8D50, - GL_RENDERBUFFER_GREEN_SIZE_EXT = 0x8D51, - GL_RENDERBUFFER_BLUE_SIZE_EXT = 0x8D52, - GL_RENDERBUFFER_ALPHA_SIZE_EXT = 0x8D53, - GL_RENDERBUFFER_DEPTH_SIZE_EXT = 0x8D54, - GL_RENDERBUFFER_STENCIL_SIZE_EXT = 0x8D55, - - // GL_EXT_packed_depth_stencil - GL_DEPTH_STENCIL_EXT = 0x84F9, - GL_UNSIGNED_INT_24_8_EXT = 0x84FA, - GL_DEPTH24_STENCIL8_EXT = 0x88F0, - GL_TEXTURE_STENCIL_SIZE_EXT = 0x88F1, - - // GL_EXT_stencil_clear_tag - GL_STENCIL_TAG_BITS_EXT = 0x88F2, - GL_STENCIL_CLEAR_TAG_VALUE_EXT = 0x88F3, - - // GL_EXT_texture_sRGB - GL_SRGB_EXT = 0x8C40, - GL_SRGB8_EXT = 0x8C41, - GL_SRGB_ALPHA_EXT = 0x8C42, - GL_SRGB8_ALPHA8_EXT = 0x8C43, - GL_SLUMINANCE_ALPHA_EXT = 0x8C44, - GL_SLUMINANCE8_ALPHA8_EXT = 0x8C45, - GL_SLUMINANCE_EXT = 0x8C46, - GL_SLUMINANCE8_EXT = 0x8C47, - GL_COMPRESSED_SRGB_EXT = 0x8C48, - GL_COMPRESSED_SRGB_ALPHA_EXT = 0x8C49, - GL_COMPRESSED_SLUMINANCE_EXT = 0x8C4A, - GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = 0x8C4B, - GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C, - GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D, - GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E, - GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F, - - // GL_EXT_framebuffer_blit - GL_READ_FRAMEBUFFER_EXT = 0x8CA8, - GL_DRAW_FRAMEBUFFER_EXT = 0x8CA9, - GL_DRAW_FRAMEBUFFER_BINDING_EXT = GL_FRAMEBUFFER_BINDING_EXT, - GL_READ_FRAMEBUFFER_BINDING_EXT = 0x8CAA, - - // GL_EXT_framebuffer_multisample - GL_RENDERBUFFER_SAMPLES_EXT = 0x8CAB, - GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8D56, - GL_MAX_SAMPLES_EXT = 0x8D57, - - // GL_EXT_timer_query - GL_TIME_ELAPSED_EXT = 0x88BF, - - // GL_EXT_geometry_shader4 - GL_GEOMETRY_SHADER_EXT = 0x8DD9, - GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = 0x8DDD, - GL_MAX_VERTEX_VARYING_COMPONENTS_EXT = 0x8DDE, - GL_MAX_VARYING_COMPONENTS_EXT = 0x8B4B, - GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8DDF, - GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = 0x8DE0, - GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8DE1, - - // GL_EXT_gpu_shader4 - GL_SAMPLER_1D_ARRAY_EXT = 0x8DC0, - GL_SAMPLER_2D_ARRAY_EXT = 0x8DC1, - GL_SAMPLER_BUFFER_EXT = 0x8DC2, - GL_SAMPLER_1D_ARRAY_SHADOW_EXT = 0x8DC3, - GL_SAMPLER_2D_ARRAY_SHADOW_EXT = 0x8DC4, - GL_SAMPLER_CUBE_SHADOW_EXT = 0x8DC5, - GL_UNSIGNED_INT_VEC2_EXT = 0x8DC6, - GL_UNSIGNED_INT_VEC3_EXT = 0x8DC7, - GL_UNSIGNED_INT_VEC4_EXT = 0x8DC8, - GL_INT_SAMPLER_1D_EXT = 0x8DC9, - GL_INT_SAMPLER_2D_EXT = 0x8DCA, - GL_INT_SAMPLER_3D_EXT = 0x8DCB, - GL_INT_SAMPLER_CUBE_EXT = 0x8DCC, - GL_INT_SAMPLER_2D_RECT_EXT = 0x8DCD, - GL_INT_SAMPLER_1D_ARRAY_EXT = 0x8DCE, - GL_INT_SAMPLER_2D_ARRAY_EXT = 0x8DCF, - GL_INT_SAMPLER_BUFFER_EXT = 0x8DD0, - GL_UNSIGNED_INT_SAMPLER_1D_EXT = 0x8DD1, - GL_UNSIGNED_INT_SAMPLER_2D_EXT = 0x8DD2, - GL_UNSIGNED_INT_SAMPLER_3D_EXT = 0x8DD3, - GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = 0x8DD4, - GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = 0x8DD5, - GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = 0x8DD6, - GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = 0x8DD7, - GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8, - - // GL_EXT_packed_float - GL_R11F_G11F_B10F_EXT = 0x8C3A, - GL_UNSIGNED_INT_10F_11F_11F_REV_EXT = 0x8C3B, - GL_RGBA_SIGNED_COMPONENTS_EXT = 0x8C3C, - - // GL_EXT_texture_array - GL_TEXTURE_1D_ARRAY_EXT = 0x8C18, - GL_PROXY_TEXTURE_1D_ARRAY_EXT = 0x8C19, - GL_TEXTURE_2D_ARRAY_EXT = 0x8C1A, - GL_PROXY_TEXTURE_2D_ARRAY_EXT = 0x8C1B, - GL_TEXTURE_BINDING_1D_ARRAY_EXT = 0x8C1C, - GL_TEXTURE_BINDING_2D_ARRAY_EXT = 0x8C1D, - GL_MAX_ARRAY_TEXTURE_LAYERS_EXT = 0x88FF, - GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = 0x884E, - - // GL_EXT_texture_buffer_object - GL_TEXTURE_BUFFER_EXT = 0x8C2A, - GL_MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B, - GL_TEXTURE_BINDING_BUFFER_EXT = 0x8C2C, - GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D, - GL_TEXTURE_BUFFER_FORMAT_EXT = 0x8C2E, - - // GL_EXT_texture_compression_latc - GL_COMPRESSED_LUMINANCE_LATC1_EXT = 0x8C70, - GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = 0x8C71, - GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C72, - GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C73, - - // GL_EXT_texture_compression_rgtc - GL_COMPRESSED_RED_RGTC1_EXT = 0x8DBB, - GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = 0x8DBC, - GL_COMPRESSED_RED_GREEN_RGTC2_EXT = 0x8DBD, - GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 0x8DBE, - - // GL_EXT_texture_shared_exponent - GL_RGB9_E5_EXT = 0x8C3D, - GL_UNSIGNED_INT_5_9_9_9_REV_EXT = 0x8C3E, - GL_TEXTURE_SHARED_SIZE_EXT = 0x8C3F, - - // GL_EXT_framebuffer_sRGB - GL_FRAMEBUFFER_SRGB_EXT = 0x8DB9, - GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA, - - // GL_EXT_bindable_uniform - GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = 0x8DE2, - GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = 0x8DE3, - GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = 0x8DE4, - GL_MAX_BINDABLE_UNIFORM_SIZE_EXT = 0x8DED, - GL_UNIFORM_BUFFER_EXT = 0x8DEE, - GL_UNIFORM_BUFFER_BINDING_EXT = 0x8DEF, - - // GL_EXT_texture_integer - GL_RGBA32UI_EXT = 0x8D70, - GL_RGB32UI_EXT = 0x8D71, - GL_ALPHA32UI_EXT = 0x8D72, - GL_INTENSITY32UI_EXT = 0x8D73, - GL_LUMINANCE32UI_EXT = 0x8D74, - GL_LUMINANCE_ALPHA32UI_EXT = 0x8D75, - GL_RGBA16UI_EXT = 0x8D76, - GL_RGB16UI_EXT = 0x8D77, - GL_ALPHA16UI_EXT = 0x8D78, - GL_INTENSITY16UI_EXT = 0x8D79, - GL_LUMINANCE16UI_EXT = 0x8D7A, - GL_LUMINANCE_ALPHA16UI_EXT = 0x8D7B, - GL_RGBA8UI_EXT = 0x8D7C, - GL_RGB8UI_EXT = 0x8D7D, - GL_ALPHA8UI_EXT = 0x8D7E, - GL_INTENSITY8UI_EXT = 0x8D7F, - GL_LUMINANCE8UI_EXT = 0x8D80, - GL_LUMINANCE_ALPHA8UI_EXT = 0x8D81, - GL_RGBA32I_EXT = 0x8D82, - GL_RGB32I_EXT = 0x8D83, - GL_ALPHA32I_EXT = 0x8D84, - GL_INTENSITY32I_EXT = 0x8D85, - GL_LUMINANCE32I_EXT = 0x8D86, - GL_LUMINANCE_ALPHA32I_EXT = 0x8D87, - GL_RGBA16I_EXT = 0x8D88, - GL_RGB16I_EXT = 0x8D89, - GL_ALPHA16I_EXT = 0x8D8A, - GL_INTENSITY16I_EXT = 0x8D8B, - GL_LUMINANCE16I_EXT = 0x8D8C, - GL_LUMINANCE_ALPHA16I_EXT = 0x8D8D, - GL_RGBA8I_EXT = 0x8D8E, - GL_RGB8I_EXT = 0x8D8F, - GL_ALPHA8I_EXT = 0x8D90, - GL_INTENSITY8I_EXT = 0x8D91, - GL_LUMINANCE8I_EXT = 0x8D92, - GL_LUMINANCE_ALPHA8I_EXT = 0x8D93, - GL_RED_INTEGER_EXT = 0x8D94, - GL_GREEN_INTEGER_EXT = 0x8D95, - GL_BLUE_INTEGER_EXT = 0x8D96, - GL_ALPHA_INTEGER_EXT = 0x8D97, - GL_RGB_INTEGER_EXT = 0x8D98, - GL_RGBA_INTEGER_EXT = 0x8D99, - GL_BGR_INTEGER_EXT = 0x8D9A, - GL_BGRA_INTEGER_EXT = 0x8D9B, - GL_LUMINANCE_INTEGER_EXT = 0x8D9C, - GL_LUMINANCE_ALPHA_INTEGER_EXT = 0x8D9D, - GL_RGBA_INTEGER_MODE_EXT = 0x8D9E, - - // GL_EXT_transform_feedback - GL_TRANSFORM_FEEDBACK_BUFFER_EXT = 0x8C8E, - GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = 0x8C84, - GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = 0x8C85, - GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = 0x8C8F, - GL_INTERLEAVED_ATTRIBS_EXT = 0x8C8C, - GL_SEPARATE_ATTRIBS_EXT = 0x8C8D, - GL_PRIMITIVES_GENERATED_EXT = 0x8C87, - GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = 0x8C88, - GL_RASTERIZER_DISCARD_EXT = 0x8C89, - GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = 0x8C8A, - GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = 0x8C8B, - GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = 0x8C80, - GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = 0x8C83, - GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = 0x8C7F, - GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = 0x8C76, - - // GL_EXT_direct_state_access - GL_PROGRAM_MATRIX_EXT = 0x8E2D, - GL_TRANSPOSE_PROGRAM_MATRIX_EXT = 0x8E2E, - GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = 0x8E2F, - - // GL_EXT_texture_swizzle - GL_TEXTURE_SWIZZLE_R_EXT = 0x8E42, - GL_TEXTURE_SWIZZLE_G_EXT = 0x8E43, - GL_TEXTURE_SWIZZLE_B_EXT = 0x8E44, - GL_TEXTURE_SWIZZLE_A_EXT = 0x8E45, - GL_TEXTURE_SWIZZLE_RGBA_EXT = 0x8E46, - - // GL_EXT_provoking_vertex - GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = 0x8E4C, - GL_FIRST_VERTEX_CONVENTION_EXT = 0x8E4D, - GL_LAST_VERTEX_CONVENTION_EXT = 0x8E4E, - GL_PROVOKING_VERTEX_EXT = 0x8E4F, - - // GL_EXT_texture_snorm - GL_ALPHA_SNORM = 0x9010, - GL_LUMINANCE_SNORM = 0x9011, - GL_LUMINANCE_ALPHA_SNORM = 0x9012, - GL_INTENSITY_SNORM = 0x9013, - GL_ALPHA8_SNORM = 0x9014, - GL_LUMINANCE8_SNORM = 0x9015, - GL_LUMINANCE8_ALPHA8_SNORM = 0x9016, - GL_INTENSITY8_SNORM = 0x9017, - GL_ALPHA16_SNORM = 0x9018, - GL_LUMINANCE16_SNORM = 0x9019, - GL_LUMINANCE16_ALPHA16_SNORM = 0x901A, - GL_INTENSITY16_SNORM = 0x901B, - - // GL_EXT_separate_shader_objects - GL_ACTIVE_PROGRAM_EXT = 0x8B8D, - } -} - -version(DerelictGL_NV) -{ - // from GL_NV_half_float - alias ushort GLhalfNV; - - enum : GLenum - { - // GL_NV_texgen_reflection - GL_NORMAL_MAP_NV = 0x8511, - GL_REFLECTION_MAP_NV = 0x8512, - - // GL_NV_light_max_exponent - GL_MAX_SHININESS_NV = 0x8504, - GL_MAX_SPOT_EXPONENT_NV = 0x8505, - - // GL_NV_vertex_array_range - GL_VERTEX_ARRAY_RANGE_NV = 0x851D, - GL_VERTEX_ARRAY_RANGE_LENGTH_NV = 0x851E, - GL_VERTEX_ARRAY_RANGE_VALID_NV = 0x851F, - GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = 0x8520, - GL_VERTEX_ARRAY_RANGE_POINTER_NV = 0x8521, - - // GL_NV_register_combiners - GL_REGISTER_COMBINERS_NV = 0x8522, - GL_VARIABLE_A_NV = 0x8523, - GL_VARIABLE_B_NV = 0x8524, - GL_VARIABLE_C_NV = 0x8525, - GL_VARIABLE_D_NV = 0x8526, - GL_VARIABLE_E_NV = 0x8527, - GL_VARIABLE_F_NV = 0x8528, - GL_VARIABLE_G_NV = 0x8529, - GL_CONSTANT_COLOR0_NV = 0x852A, - GL_CONSTANT_COLOR1_NV = 0x852B, - GL_PRIMARY_COLOR_NV = 0x852C, - GL_SECONDARY_COLOR_NV = 0x852D, - GL_SPARE0_NV = 0x852E, - GL_SPARE1_NV = 0x852F, - GL_DISCARD_NV = 0x8530, - GL_E_TIMES_F_NV = 0x8531, - GL_SPARE0_PLUS_SECONDARY_COLOR_NV = 0x8532, - GL_UNSIGNED_IDENTITY_NV = 0x8536, - GL_UNSIGNED_INVERT_NV = 0x8537, - GL_EXPAND_NORMAL_NV = 0x8538, - GL_EXPAND_NEGATE_NV = 0x8539, - GL_HALF_BIAS_NORMAL_NV = 0x853A, - GL_HALF_BIAS_NEGATE_NV = 0x853B, - GL_SIGNED_IDENTITY_NV = 0x853C, - GL_SIGNED_NEGATE_NV = 0x853D, - GL_SCALE_BY_TWO_NV = 0x853E, - GL_SCALE_BY_FOUR_NV = 0x853F, - GL_SCALE_BY_ONE_HALF_NV = 0x8540, - GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = 0x8541, - GL_COMBINER_INPUT_NV = 0x8542, - GL_COMBINER_MAPPING_NV = 0x8543, - GL_COMBINER_COMPONENT_USAGE_NV = 0x8544, - GL_COMBINER_AB_DOT_PRODUCT_NV = 0x8545, - GL_COMBINER_CD_DOT_PRODUCT_NV = 0x8546, - GL_COMBINER_MUX_SUM_NV = 0x8547, - GL_COMBINER_SCALE_NV = 0x8548, - GL_COMBINER_BIAS_NV = 0x8549, - GL_COMBINER_AB_OUTPUT_NV = 0x854A, - GL_COMBINER_CD_OUTPUT_NV = 0x854B, - GL_COMBINER_SUM_OUTPUT_NV = 0x854C, - GL_MAX_GENERAL_COMBINERS_NV = 0x854D, - GL_NUM_GENERAL_COMBINERS_NV = 0x854E, - GL_COLOR_SUM_CLAMP_NV = 0x854F, - GL_COMBINER0_NV = 0x8550, - GL_COMBINER1_NV = 0x8551, - GL_COMBINER2_NV = 0x8552, - GL_COMBINER3_NV = 0x8553, - GL_COMBINER4_NV = 0x8554, - GL_COMBINER5_NV = 0x8555, - GL_COMBINER6_NV = 0x8556, - GL_COMBINER7_NV = 0x8557, - - // GL_NV_fog_distance - GL_FOG_DISTANCE_MODE_NV = 0x855A, - GL_EYE_RADIAL_NV = 0x855B, - GL_EYE_PLANE_ABSOLUTE_NV = 0x855C, - - // GL_NV_texgen_emboss - GL_EMBOSS_LIGHT_NV = 0x855D, - GL_EMBOSS_CONSTANT_NV = 0x855E, - GL_EMBOSS_MAP_NV = 0x855F, - - // GL_NV_texture_env_combine4 - GL_COMBINE4_NV = 0x8503, - GL_SOURCE3_RGB_NV = 0x8583, - GL_SOURCE3_ALPHA_NV = 0x858B, - GL_OPERAND3_RGB_NV = 0x8593, - GL_OPERAND3_ALPHA_NV = 0x859B, - - // GL_NV_fence - GL_ALL_COMPLETED_NV = 0x84F2, - GL_FENCE_STATUS_NV = 0x84F3, - GL_FENCE_CONDITION_NV = 0x84F4, - - // GL_NV_evaluators - GL_EVAL_2D_NV = 0x86C0, - GL_EVAL_TRIANGULAR_2D_NV = 0x86C1, - GL_MAP_TESSELLATION_NV = 0x86C2, - GL_MAP_ATTRIB_U_ORDER_NV = 0x86C3, - GL_MAP_ATTRIB_V_ORDER_NV = 0x86C4, - GL_EVAL_FRACTIONAL_TESSELLATION_NV = 0x86C5, - GL_EVAL_VERTEX_ATTRIB0_NV = 0x86C6, - GL_EVAL_VERTEX_ATTRIB1_NV = 0x86C7, - GL_EVAL_VERTEX_ATTRIB2_NV = 0x86C8, - GL_EVAL_VERTEX_ATTRIB3_NV = 0x86C9, - GL_EVAL_VERTEX_ATTRIB4_NV = 0x86CA, - GL_EVAL_VERTEX_ATTRIB5_NV = 0x86CB, - GL_EVAL_VERTEX_ATTRIB6_NV = 0x86CC, - GL_EVAL_VERTEX_ATTRIB7_NV = 0x86CD, - GL_EVAL_VERTEX_ATTRIB8_NV = 0x86CE, - GL_EVAL_VERTEX_ATTRIB9_NV = 0x86CF, - GL_EVAL_VERTEX_ATTRIB10_NV = 0x86D0, - GL_EVAL_VERTEX_ATTRIB11_NV = 0x86D1, - GL_EVAL_VERTEX_ATTRIB12_NV = 0x86D2, - GL_EVAL_VERTEX_ATTRIB13_NV = 0x86D3, - GL_EVAL_VERTEX_ATTRIB14_NV = 0x86D4, - GL_EVAL_VERTEX_ATTRIB15_NV = 0x86D5, - GL_MAX_MAP_TESSELLATION_NV = 0x86D6, - GL_MAX_RATIONAL_EVAL_ORDER_NV = 0x86D7, - - // GL_NV_packed_depth_stencil - GL_DEPTH_STENCIL_NV = 0x84F9, - GL_UNSIGNED_INT_24_8_NV = 0x84FA, - - // GL_NV_register_combiners2 - GL_PER_STAGE_CONSTANTS_NV = 0x8535, - - // GL_NV_texture_rectangle - GL_TEXTURE_RECTANGLE_NV = 0x84F5, - GL_TEXTURE_BINDING_RECTANGLE_NV = 0x84F6, - GL_PROXY_TEXTURE_RECTANGLE_NV = 0x84F7, - GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = 0x84F8, - - // GL_NV_texture_shader - GL_OFFSET_TEXTURE_RECTANGLE_NV = 0x864C, - GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = 0x864D, - GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = 0x864E, - GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = 0x86D9, - GL_UNSIGNED_INT_S8_S8_8_8_NV = 0x86DA, - GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = 0x86DB, - GL_DSDT_MAG_INTENSITY_NV = 0x86DC, - GL_SHADER_CONSISTENT_NV = 0x86DD, - GL_TEXTURE_SHADER_NV = 0x86DE, - GL_SHADER_OPERATION_NV = 0x86DF, - GL_CULL_MODES_NV = 0x86E0, - GL_OFFSET_TEXTURE_MATRIX_NV = 0x86E1, - GL_OFFSET_TEXTURE_SCALE_NV = 0x86E2, - GL_OFFSET_TEXTURE_BIAS_NV = 0x86E3, - GL_OFFSET_TEXTURE_2D_MATRIX_NV = GL_OFFSET_TEXTURE_MATRIX_NV, - GL_OFFSET_TEXTURE_2D_SCALE_NV = GL_OFFSET_TEXTURE_SCALE_NV, - GL_OFFSET_TEXTURE_2D_BIAS_NV = GL_OFFSET_TEXTURE_BIAS_NV, - GL_PREVIOUS_TEXTURE_INPUT_NV = 0x86E4, - GL_CONST_EYE_NV = 0x86E5, - GL_PASS_THROUGH_NV = 0x86E6, - GL_CULL_FRAGMENT_NV = 0x86E7, - GL_OFFSET_TEXTURE_2D_NV = 0x86E8, - GL_DEPENDENT_AR_TEXTURE_2D_NV = 0x86E9, - GL_DEPENDENT_GB_TEXTURE_2D_NV = 0x86EA, - GL_DOT_PRODUCT_NV = 0x86EC, - GL_DOT_PRODUCT_DEPTH_REPLACE_NV = 0x86ED, - GL_DOT_PRODUCT_TEXTURE_2D_NV = 0x86EE, - GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = 0x86F0, - GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = 0x86F1, - GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = 0x86F2, - GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = 0x86F3, - GL_HILO_NV = 0x86F4, - GL_DSDT_NV = 0x86F5, - GL_DSDT_MAG_NV = 0x86F6, - GL_DSDT_MAG_VIB_NV = 0x86F7, - GL_HILO16_NV = 0x86F8, - GL_SIGNED_HILO_NV = 0x86F9, - GL_SIGNED_HILO16_NV = 0x86FA, - GL_SIGNED_RGBA_NV = 0x86FB, - GL_SIGNED_RGBA8_NV = 0x86FC, - GL_SIGNED_RGB_NV = 0x86FE, - GL_SIGNED_RGB8_NV = 0x86FF, - GL_SIGNED_LUMINANCE_NV = 0x8701, - GL_SIGNED_LUMINANCE8_NV = 0x8702, - GL_SIGNED_LUMINANCE_ALPHA_NV = 0x8703, - GL_SIGNED_LUMINANCE8_ALPHA8_NV = 0x8704, - GL_SIGNED_ALPHA_NV = 0x8705, - GL_SIGNED_ALPHA8_NV = 0x8706, - GL_SIGNED_INTENSITY_NV = 0x8707, - GL_SIGNED_INTENSITY8_NV = 0x8708, - GL_DSDT8_NV = 0x8709, - GL_DSDT8_MAG8_NV = 0x870A, - GL_DSDT8_MAG8_INTENSITY8_NV = 0x870B, - GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = 0x870C, - GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = 0x870D, - GL_HI_SCALE_NV = 0x870E, - GL_LO_SCALE_NV = 0x870F, - GL_DS_SCALE_NV = 0x8710, - GL_DT_SCALE_NV = 0x8711, - GL_MAGNITUDE_SCALE_NV = 0x8712, - GL_VIBRANCE_SCALE_NV = 0x8713, - GL_HI_BIAS_NV = 0x8714, - GL_LO_BIAS_NV = 0x8715, - GL_DS_BIAS_NV = 0x8716, - GL_DT_BIAS_NV = 0x8717, - GL_MAGNITUDE_BIAS_NV = 0x8718, - GL_VIBRANCE_BIAS_NV = 0x8719, - GL_TEXTURE_BORDER_VALUES_NV = 0x871A, - GL_TEXTURE_HI_SIZE_NV = 0x871B, - GL_TEXTURE_LO_SIZE_NV = 0x871C, - GL_TEXTURE_DS_SIZE_NV = 0x871D, - GL_TEXTURE_DT_SIZE_NV = 0x871E, - GL_TEXTURE_MAG_SIZE_NV = 0x871F, - - // GL_NV_texture_shader2 - GL_DOT_PRODUCT_TEXTURE_3D_NV = 0x86EF, - - // GL_NV_vertex_array_range2 - GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = 0x8533, - - // GL_NV_vertex_program - GL_VERTEX_PROGRAM_NV = 0x8620, - GL_VERTEX_STATE_PROGRAM_NV = 0x8621, - GL_ATTRIB_ARRAY_SIZE_NV = 0x8623, - GL_ATTRIB_ARRAY_STRIDE_NV = 0x8624, - GL_ATTRIB_ARRAY_TYPE_NV = 0x8625, - GL_CURRENT_ATTRIB_NV = 0x8626, - GL_PROGRAM_LENGTH_NV = 0x8627, - GL_PROGRAM_STRING_NV = 0x8628, - GL_MODELVIEW_PROJECTION_NV = 0x8629, - GL_IDENTITY_NV = 0x862A, - GL_INVERSE_NV = 0x862B, - GL_TRANSPOSE_NV = 0x862C, - GL_INVERSE_TRANSPOSE_NV = 0x862D, - GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = 0x862E, - GL_MAX_TRACK_MATRICES_NV = 0x862F, - GL_MATRIX0_NV = 0x8630, - GL_MATRIX1_NV = 0x8631, - GL_MATRIX2_NV = 0x8632, - GL_MATRIX3_NV = 0x8633, - GL_MATRIX4_NV = 0x8634, - GL_MATRIX5_NV = 0x8635, - GL_MATRIX6_NV = 0x8636, - GL_MATRIX7_NV = 0x8637, - GL_CURRENT_MATRIX_STACK_DEPTH_NV = 0x8640, - GL_CURRENT_MATRIX_NV = 0x8641, - GL_VERTEX_PROGRAM_POINT_SIZE_NV = 0x8642, - GL_VERTEX_PROGRAM_TWO_SIDE_NV = 0x8643, - GL_PROGRAM_PARAMETER_NV = 0x8644, - GL_ATTRIB_ARRAY_POINTER_NV = 0x8645, - GL_PROGRAM_TARGET_NV = 0x8646, - GL_PROGRAM_RESIDENT_NV = 0x8647, - GL_TRACK_MATRIX_NV = 0x8648, - GL_TRACK_MATRIX_TRANSFORM_NV = 0x8649, - GL_VERTEX_PROGRAM_BINDING_NV = 0x864A, - GL_PROGRAM_ERROR_POSITION_NV = 0x864B, - GL_VERTEX_ATTRIB_ARRAY0_NV = 0x8650, - GL_VERTEX_ATTRIB_ARRAY1_NV = 0x8651, - GL_VERTEX_ATTRIB_ARRAY2_NV = 0x8652, - GL_VERTEX_ATTRIB_ARRAY3_NV = 0x8653, - GL_VERTEX_ATTRIB_ARRAY4_NV = 0x8654, - GL_VERTEX_ATTRIB_ARRAY5_NV = 0x8655, - GL_VERTEX_ATTRIB_ARRAY6_NV = 0x8656, - GL_VERTEX_ATTRIB_ARRAY7_NV = 0x8657, - GL_VERTEX_ATTRIB_ARRAY8_NV = 0x8658, - GL_VERTEX_ATTRIB_ARRAY9_NV = 0x8659, - GL_VERTEX_ATTRIB_ARRAY10_NV = 0x865A, - GL_VERTEX_ATTRIB_ARRAY11_NV = 0x865B, - GL_VERTEX_ATTRIB_ARRAY12_NV = 0x865C, - GL_VERTEX_ATTRIB_ARRAY13_NV = 0x865D, - GL_VERTEX_ATTRIB_ARRAY14_NV = 0x865E, - GL_VERTEX_ATTRIB_ARRAY15_NV = 0x865F, - GL_MAP1_VERTEX_ATTRIB0_4_NV = 0x8660, - GL_MAP1_VERTEX_ATTRIB1_4_NV = 0x8661, - GL_MAP1_VERTEX_ATTRIB2_4_NV = 0x8662, - GL_MAP1_VERTEX_ATTRIB3_4_NV = 0x8663, - GL_MAP1_VERTEX_ATTRIB4_4_NV = 0x8664, - GL_MAP1_VERTEX_ATTRIB5_4_NV = 0x8665, - GL_MAP1_VERTEX_ATTRIB6_4_NV = 0x8666, - GL_MAP1_VERTEX_ATTRIB7_4_NV = 0x8667, - GL_MAP1_VERTEX_ATTRIB8_4_NV = 0x8668, - GL_MAP1_VERTEX_ATTRIB9_4_NV = 0x8669, - GL_MAP1_VERTEX_ATTRIB10_4_NV = 0x866A, - GL_MAP1_VERTEX_ATTRIB11_4_NV = 0x866B, - GL_MAP1_VERTEX_ATTRIB12_4_NV = 0x866C, - GL_MAP1_VERTEX_ATTRIB13_4_NV = 0x866D, - GL_MAP1_VERTEX_ATTRIB14_4_NV = 0x866E, - GL_MAP1_VERTEX_ATTRIB15_4_NV = 0x866F, - GL_MAP2_VERTEX_ATTRIB0_4_NV = 0x8670, - GL_MAP2_VERTEX_ATTRIB1_4_NV = 0x8671, - GL_MAP2_VERTEX_ATTRIB2_4_NV = 0x8672, - GL_MAP2_VERTEX_ATTRIB3_4_NV = 0x8673, - GL_MAP2_VERTEX_ATTRIB4_4_NV = 0x8674, - GL_MAP2_VERTEX_ATTRIB5_4_NV = 0x8675, - GL_MAP2_VERTEX_ATTRIB6_4_NV = 0x8676, - GL_MAP2_VERTEX_ATTRIB7_4_NV = 0x8677, - GL_MAP2_VERTEX_ATTRIB8_4_NV = 0x8678, - GL_MAP2_VERTEX_ATTRIB9_4_NV = 0x8679, - GL_MAP2_VERTEX_ATTRIB10_4_NV = 0x867A, - GL_MAP2_VERTEX_ATTRIB11_4_NV = 0x867B, - GL_MAP2_VERTEX_ATTRIB12_4_NV = 0x867C, - GL_MAP2_VERTEX_ATTRIB13_4_NV = 0x867D, - GL_MAP2_VERTEX_ATTRIB14_4_NV = 0x867E, - GL_MAP2_VERTEX_ATTRIB15_4_NV = 0x867F, - - // GL_NV_copy_depth_to_color - GL_DEPTH_STENCIL_TO_RGBA_NV = 0x886E, - GL_DEPTH_STENCIL_TO_BGRA_NV = 0x886F, - - // GL_NV_multisample_filter_hint - GL_MULTISAMPLE_FILTER_HINT_NV = 0x8534, - - // GL_NV_depth_clamp - GL_DEPTH_CLAMP_NV = 0x864F, - - // GL_NV_occlusion_query - GL_PIXEL_COUNTER_BITS_NV = 0x8864, - GL_CURRENT_OCCLUSION_QUERY_ID_NV = 0x8865, - GL_PIXEL_COUNT_NV = 0x8866, - GL_PIXEL_COUNT_AVAILABLE_NV = 0x8867, - - // GL_NV_point_sprite - GL_POINT_SPRITE_NV = 0x8861, - GL_COORD_REPLACE_NV = 0x8862, - GL_POINT_SPRITE_R_MODE_NV = 0x8863, - - // GL_NV_texture_shader3 - GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = 0x8850, - GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = 0x8851, - GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8852, - GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = 0x8853, - GL_OFFSET_HILO_TEXTURE_2D_NV = 0x8854, - GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = 0x8855, - GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = 0x8856, - GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8857, - GL_DEPENDENT_HILO_TEXTURE_2D_NV = 0x8858, - GL_DEPENDENT_RGB_TEXTURE_3D_NV = 0x8859, - GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = 0x885A, - GL_DOT_PRODUCT_PASS_THROUGH_NV = 0x885B, - GL_DOT_PRODUCT_TEXTURE_1D_NV = 0x885C, - GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = 0x885D, - GL_HILO8_NV = 0x885E, - GL_SIGNED_HILO8_NV = 0x885F, - GL_FORCE_BLUE_TO_ONE_NV = 0x8860, - - // GL_NV_float_buffer - GL_FLOAT_R_NV = 0x8880, - GL_FLOAT_RG_NV = 0x8881, - GL_FLOAT_RGB_NV = 0x8882, - GL_FLOAT_RGBA_NV = 0x8883, - GL_FLOAT_R16_NV = 0x8884, - GL_FLOAT_R32_NV = 0x8885, - GL_FLOAT_RG16_NV = 0x8886, - GL_FLOAT_RG32_NV = 0x8887, - GL_FLOAT_RGB16_NV = 0x8888, - GL_FLOAT_RGB32_NV = 0x8889, - GL_FLOAT_RGBA16_NV = 0x888A, - GL_FLOAT_RGBA32_NV = 0x888B, - GL_TEXTURE_FLOAT_COMPONENTS_NV = 0x888C, - GL_FLOAT_CLEAR_COLOR_VALUE_NV = 0x888D, - GL_FLOAT_RGBA_MODE_NV = 0x888E, - - // GL_NV_fragment_program - GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = 0x8868, - GL_FRAGMENT_PROGRAM_NV = 0x8870, - GL_MAX_TEXTURE_COORDS_NV = 0x8871, - GL_MAX_TEXTURE_IMAGE_UNITS_NV = 0x8872, - GL_FRAGMENT_PROGRAM_BINDING_NV = 0x8873, - GL_PROGRAM_ERROR_STRING_NV = 0x8874, - - // GL_NV_half_float - GL_HALF_FLOAT_NV = 0x140B, - - // GL_NV_pixel_data_range - GL_WRITE_PIXEL_DATA_RANGE_NV = 0x8878, - GL_READ_PIXEL_DATA_RANGE_NV = 0x8879, - GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = 0x887A, - GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = 0x887B, - GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = 0x887C, - GL_READ_PIXEL_DATA_RANGE_POINTER_NV = 0x887D, - - // GL_NV_primitive_restart - GL_PRIMITIVE_RESTART_NV = 0x8558, - GL_PRIMITIVE_RESTART_INDEX_NV = 0x8559, - - // GL_NV_texture_expand_normal - GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = 0x888F, - - // GL_NV_fragment_program2 - GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = 0x88F4, - GL_MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5, - GL_MAX_PROGRAM_IF_DEPTH_NV = 0x88F6, - GL_MAX_PROGRAM_LOOP_DEPTH_NV = 0x88F7, - GL_MAX_PROGRAM_LOOP_COUNT_NV = 0x88F8, - - // GL_NV_gpu_program4 - GL_MIN_PROGRAM_TEXEL_OFFSET_NV = 0x8904, - GL_MAX_PROGRAM_TEXEL_OFFSET_NV = 0x8905, - GL_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8906, - GL_PROGRAM_RESULT_COMPONENTS_NV = 0x8907, - GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8908, - GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = 0x8909, - GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = 0x8DA5, - GL_MAX_PROGRAM_GENERIC_RESULTS_NV = 0x8DA6, - - // GL_NV_geometry_program4 - GL_LINES_ADJACENCY_EXT = 0x000A, - GL_LINE_STRIP_ADJACENCY_EXT = 0x000B, - GL_TRIANGLES_ADJACENCY_EXT = 0x000C, - GL_TRIANGLE_STRIP_ADJACENCY_EXT = 0x000D, - GL_GEOMETRY_PROGRAM_NV = 0x8C26, - GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = 0x8C27, - GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = 0x8C28, - GL_GEOMETRY_VERTICES_OUT_EXT = 0x8DDA, - GL_GEOMETRY_INPUT_TYPE_EXT = 0x8DDB, - GL_GEOMETRY_OUTPUT_TYPE_EXT = 0x8DDC, - GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = 0x8C29, - GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = 0x8DA7, - GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = 0x8DA8, - GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = 0x8DA9, - GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = 0x8CD4, - GL_PROGRAM_POINT_SIZE_EXT = 0x8642, - - // GL_NV_vertex_program4 - GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV = 0x88FD, - - // GL_NV_depth_buffer_float - GL_DEPTH_COMPONENT32F_NV = 0x8DAB, - GL_DEPTH32F_STENCIL8_NV = 0x8DAC, - GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = 0x8DAD, - GL_DEPTH_BUFFER_FLOAT_MODE_NV = 0x8DAF, - - // GL_NV_framebuffer_multisample_coverage - GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = 0x8CAB, - GL_RENDERBUFFER_COLOR_SAMPLES_NV = 0x8E10, - GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E11, - GL_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E12, - - // GL_NV_transform_feedback - GL_BACK_PRIMARY_COLOR_NV = 0x8C77, - GL_BACK_SECONDARY_COLOR_NV = 0x8C78, - GL_TEXTURE_COORD_NV = 0x8C79, - GL_CLIP_DISTANCE_NV = 0x8C7A, - GL_VERTEX_ID_NV = 0x8C7B, - GL_PRIMITIVE_ID_NV = 0x8C7C, - GL_GENERIC_ATTRIB_NV = 0x8C7D, - GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = 0x8C7E, - GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = 0x8C7F, - GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = 0x8C80, - GL_ACTIVE_VARYINGS_NV = 0x8C81, - GL_ACTIVE_VARYING_MAX_LENGTH_NV = 0x8C82, - GL_TRANSFORM_FEEDBACK_VARYINGS_NV = 0x8C83, - GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = 0x8C84, - GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = 0x8C85, - GL_TRANSFORM_FEEDBACK_RECORD_NV = 0x8C86, - GL_PRIMITIVES_GENERATED_NV = 0x8C87, - GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = 0x8C88, - GL_RASTERIZER_DISCARD_NV = 0x8C89, - GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV = 0x8C8A, - GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = 0x8C8B, - GL_INTERLEAVED_ATTRIBS_NV = 0x8C8C, - GL_SEPARATE_ATTRIBS_NV = 0x8C8D, - GL_TRANSFORM_FEEDBACK_BUFFER_NV = 0x8C8E, - GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = 0x8C8F, - - // GL_NV_conditional_render - GL_QUERY_WAIT_NV = 0x8E13, - GL_QUERY_NO_WAIT_NV = 0x8E14, - GL_QUERY_BY_REGION_WAIT_NV = 0x8E15, - GL_QUERY_BY_REGION_NO_WAIT_NV = 0x8E16, - - // GL_NV_present_video - GL_FRAME_NV = 0x8E26, - GL_FIELDS_NV = 0x8E27, - GL_CURRENT_TIME_NV = 0x8E28, - GL_NUM_FILL_STREAMS_NV = 0x8E29, - GL_PRESENT_TIME_NV = 0x8E2A, - GL_PRESENT_DURATION_NV = 0x8E2B, - - // GL_NV_explicit_multisample - GL_SAMPLE_POSITION_NV = 0x8E50, - GL_SAMPLE_MASK_NV = 0x8E51, - GL_SAMPLE_MASK_VALUE_NV = 0x8E52, - GL_TEXTURE_BINDING_RENDERBUFFER_NV = 0x8E53, - GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = 0x8E54, - GL_TEXTURE_RENDERBUFFER_NV = 0x8E55, - GL_SAMPLER_RENDERBUFFER_NV = 0x8E56, - GL_INT_SAMPLER_RENDERBUFFER_NV = 0x8E57, - GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = 0x8E58, - GL_MAX_SAMPLE_MASK_WORDS_NV = 0x8E59, - - // GL_NV_transform_feedback2 - GL_TRANSFORM_FEEDBACK_NV = 0x8E22, - GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = 0x8E23, - GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = 0x8E24, - GL_TRANSFORM_FEEDBACK_BINDING_NV = 0x8E25, - - // GL_NV_video_capture - GL_VIDEO_BUFFER_NV = 0x9020, - GL_VIDEO_BUFFER_BINDING_NV = 0x9021, - GL_FIELD_UPPER_NV = 0x9022, - GL_FIELD_LOWER_NV = 0x9023, - GL_NUM_VIDEO_CAPTURE_STREAMS_NV = 0x9024, - GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = 0x9025, - GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = 0x9026, - GL_LAST_VIDEO_CAPTURE_STATUS_NV = 0x9027, - GL_VIDEO_BUFFER_PITCH_NV = 0x9028, - GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = 0x9029, - GL_VIDEO_COLOR_CONVERSION_MAX_NV = 0x902A, - GL_VIDEO_COLOR_CONVERSION_MIN_NV = 0x902B, - GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = 0x902C, - GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = 0x902D, - GL_PARTIAL_SUCCESS_NV = 0x902E, - GL_SUCCESS_NV = 0x902F, - GL_FAILURE_NV = 0x9030, - GL_YCBYCR8_422_NV = 0x9031, - GL_YCBAYCR8A_4224_NV = 0x9032, - GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = 0x9033, - GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = 0x9034, - GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = 0x9035, - GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = 0x9036, - GL_Z4Y12Z4CB12Z4CR12_444_NV = 0x9037, - GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = 0x9038, - GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = 0x9039, - GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = 0x903A, - GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = 0x903B, - GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = 0x903C, - - // GL_NV_shader_buffer_load - GL_BUFFER_GPU_ADDRESS_NV = 0x8F1D, - GL_GPU_ADDRESS_NV = 0x8F34, - GL_MAX_SHADER_BUFFER_ADDRESS_NV = 0x8F35, - - // GL_NV_vertex_buffer_unified_memory - GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = 0x8F1E, - GL_ELEMENT_ARRAY_UNIFIED_NV = 0x8F1F, - GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = 0x8F20, - GL_VERTEX_ARRAY_ADDRESS_NV = 0x8F21, - GL_NORMAL_ARRAY_ADDRESS_NV = 0x8F22, - GL_COLOR_ARRAY_ADDRESS_NV = 0x8F23, - GL_INDEX_ARRAY_ADDRESS_NV = 0x8F24, - GL_TEXTURE_COORD_ARRAY_ADDRESS_NV = 0x8F25, - GL_EDGE_FLAG_ARRAY_ADDRESS_NV = 0x8F26, - GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV = 0x8F27, - GL_FOG_COORD_ARRAY_ADDRESS_NV = 0x8F28, - GL_ELEMENT_ARRAY_ADDRESS_NV = 0x8F29, - GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV = 0x8F2A, - GL_VERTEX_ARRAY_LENGTH_NV = 0x8F2B, - GL_NORMAL_ARRAY_LENGTH_NV = 0x8F2C, - GL_COLOR_ARRAY_LENGTH_NV = 0x8F2D, - GL_INDEX_ARRAY_LENGTH_NV = 0x8F2E, - GL_TEXTURE_COORD_ARRAY_LENGTH_NV = 0x8F2F, - GL_EDGE_FLAG_ARRAY_LENGTH_NV = 0x8F30, - GL_SECONDARY_COLOR_ARRAY_LENGTH_NV = 0x8F31, - GL_FOG_COORD_ARRAY_LENGTH_NV = 0x8F32, - GL_ELEMENT_ARRAY_LENGTH_NV = 0x8F33, - } -} - -version(DerelictGL_ATI) -{ - enum : GLenum - { - // GL_ATI_texture_mirror_once - GL_MIRROR_CLAMP_ATI = 0x8742, - GL_MIRROR_CLAMP_TO_EDGE_ATI = 0x8743, - - // GL_ATI_envmap_bumpmap - GL_BUMP_ROT_MATRIX_ATI = 0x8775, - GL_BUMP_ROT_MATRIX_SIZE_ATI = 0x8776, - GL_BUMP_NUM_TEX_UNITS_ATI = 0x8777, - GL_BUMP_TEX_UNITS_ATI = 0x8778, - GL_DUDV_ATI = 0x8779, - GL_DU8DV8_ATI = 0x877A, - GL_BUMP_ENVMAP_ATI = 0x877B, - GL_BUMP_TARGET_ATI = 0x877C, - - // GL_ATI_fragment_shader - GL_FRAGMENT_SHADER_ATI = 0x8920, - GL_REG_0_ATI = 0x8921, - GL_REG_1_ATI = 0x8922, - GL_REG_2_ATI = 0x8923, - GL_REG_3_ATI = 0x8924, - GL_REG_4_ATI = 0x8925, - GL_REG_5_ATI = 0x8926, - GL_REG_6_ATI = 0x8927, - GL_REG_7_ATI = 0x8928, - GL_REG_8_ATI = 0x8929, - GL_REG_9_ATI = 0x892A, - GL_REG_10_ATI = 0x892B, - GL_REG_11_ATI = 0x892C, - GL_REG_12_ATI = 0x892D, - GL_REG_13_ATI = 0x892E, - GL_REG_14_ATI = 0x892F, - GL_REG_15_ATI = 0x8930, - GL_REG_16_ATI = 0x8931, - GL_REG_17_ATI = 0x8932, - GL_REG_18_ATI = 0x8933, - GL_REG_19_ATI = 0x8934, - GL_REG_20_ATI = 0x8935, - GL_REG_21_ATI = 0x8936, - GL_REG_22_ATI = 0x8937, - GL_REG_23_ATI = 0x8938, - GL_REG_24_ATI = 0x8939, - GL_REG_25_ATI = 0x893A, - GL_REG_26_ATI = 0x893B, - GL_REG_27_ATI = 0x893C, - GL_REG_28_ATI = 0x893D, - GL_REG_29_ATI = 0x893E, - GL_REG_30_ATI = 0x893F, - GL_REG_31_ATI = 0x8940, - GL_CON_0_ATI = 0x8941, - GL_CON_1_ATI = 0x8942, - GL_CON_2_ATI = 0x8943, - GL_CON_3_ATI = 0x8944, - GL_CON_4_ATI = 0x8945, - GL_CON_5_ATI = 0x8946, - GL_CON_6_ATI = 0x8947, - GL_CON_7_ATI = 0x8948, - GL_CON_8_ATI = 0x8949, - GL_CON_9_ATI = 0x894A, - GL_CON_10_ATI = 0x894B, - GL_CON_11_ATI = 0x894C, - GL_CON_12_ATI = 0x894D, - GL_CON_13_ATI = 0x894E, - GL_CON_14_ATI = 0x894F, - GL_CON_15_ATI = 0x8950, - GL_CON_16_ATI = 0x8951, - GL_CON_17_ATI = 0x8952, - GL_CON_18_ATI = 0x8953, - GL_CON_19_ATI = 0x8954, - GL_CON_20_ATI = 0x8955, - GL_CON_21_ATI = 0x8956, - GL_CON_22_ATI = 0x8957, - GL_CON_23_ATI = 0x8958, - GL_CON_24_ATI = 0x8959, - GL_CON_25_ATI = 0x895A, - GL_CON_26_ATI = 0x895B, - GL_CON_27_ATI = 0x895C, - GL_CON_28_ATI = 0x895D, - GL_CON_29_ATI = 0x895E, - GL_CON_30_ATI = 0x895F, - GL_CON_31_ATI = 0x8960, - GL_MOV_ATI = 0x8961, - GL_ADD_ATI = 0x8963, - GL_MUL_ATI = 0x8964, - GL_SUB_ATI = 0x8965, - GL_DOT3_ATI = 0x8966, - GL_DOT4_ATI = 0x8967, - GL_MAD_ATI = 0x8968, - GL_LERP_ATI = 0x8969, - GL_CND_ATI = 0x896A, - GL_CND0_ATI = 0x896B, - GL_DOT2_ADD_ATI = 0x896C, - GL_SECONDARY_INTERPOLATOR_ATI = 0x896D, - GL_NUM_FRAGMENT_REGISTERS_ATI = 0x896E, - GL_NUM_FRAGMENT_CONSTANTS_ATI = 0x896F, - GL_NUM_PASSES_ATI = 0x8970, - GL_NUM_INSTRUCTIONS_PER_PASS_ATI = 0x8971, - GL_NUM_INSTRUCTIONS_TOTAL_ATI = 0x8972, - GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = 0x8973, - GL_NUM_LOOPBACK_COMPONENTS_ATI = 0x8974, - GL_COLOR_ALPHA_PAIRING_ATI = 0x8975, - GL_SWIZZLE_STR_ATI = 0x8976, - GL_SWIZZLE_STQ_ATI = 0x8977, - GL_SWIZZLE_STR_DR_ATI = 0x8978, - GL_SWIZZLE_STQ_DQ_ATI = 0x8979, - GL_SWIZZLE_STRQ_ATI = 0x897A, - GL_SWIZZLE_STRQ_DQ_ATI = 0x897B, - GL_RED_BIT_ATI = 0x00000001, - GL_GREEN_BIT_ATI = 0x00000002, - GL_BLUE_BIT_ATI = 0x00000004, - GL_2X_BIT_ATI = 0x00000001, - GL_4X_BIT_ATI = 0x00000002, - GL_8X_BIT_ATI = 0x00000004, - GL_HALF_BIT_ATI = 0x00000008, - GL_QUARTER_BIT_ATI = 0x00000010, - GL_EIGHTH_BIT_ATI = 0x00000020, - GL_SATURATE_BIT_ATI = 0x00000040, - GL_COMP_BIT_ATI = 0x00000002, - GL_NEGATE_BIT_ATI = 0x00000004, - GL_BIAS_BIT_ATI = 0x00000008, - - // GL_ATI_pn_triangles - GL_PN_TRIANGLES_ATI = 0x87F0, - GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F1, - GL_PN_TRIANGLES_POINT_MODE_ATI = 0x87F2, - GL_PN_TRIANGLES_NORMAL_MODE_ATI = 0x87F3, - GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F4, - GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = 0x87F5, - GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = 0x87F6, - GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = 0x87F7, - GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = 0x87F8, - - // GL_ATI_vertex_array_object - GL_STATIC_ATI = 0x8760, - GL_DYNAMIC_ATI = 0x8761, - GL_PRESERVE_ATI = 0x8762, - GL_DISCARD_ATI = 0x8763, - GL_OBJECT_BUFFER_SIZE_ATI = 0x8764, - GL_OBJECT_BUFFER_USAGE_ATI = 0x8765, - GL_ARRAY_OBJECT_BUFFER_ATI = 0x8766, - GL_ARRAY_OBJECT_OFFSET_ATI = 0x8767, - - // GL_ATI_vertex_streams - GL_MAX_VERTEX_STREAMS_ATI = 0x876B, - GL_VERTEX_STREAM0_ATI = 0x876C, - GL_VERTEX_STREAM1_ATI = 0x876D, - GL_VERTEX_STREAM2_ATI = 0x876E, - GL_VERTEX_STREAM3_ATI = 0x876F, - GL_VERTEX_STREAM4_ATI = 0x8770, - GL_VERTEX_STREAM5_ATI = 0x8771, - GL_VERTEX_STREAM6_ATI = 0x8772, - GL_VERTEX_STREAM7_ATI = 0x8773, - GL_VERTEX_SOURCE_ATI = 0x8774, - - // GL_ATI_element_array - GL_ELEMENT_ARRAY_ATI = 0x8768, - GL_ELEMENT_ARRAY_TYPE_ATI = 0x8769, - GL_ELEMENT_ARRAY_POINTER_ATI = 0x876A, - - // GL_ATI_text_fragment_shader - GL_TEXT_FRAGMENT_SHADER_ATI = 0x8200, - - // GL_ATI_draw_buffers - GL_MAX_DRAW_BUFFERS_ATI = 0x8824, - GL_DRAW_BUFFER0_ATI = 0x8825, - GL_DRAW_BUFFER1_ATI = 0x8826, - GL_DRAW_BUFFER2_ATI = 0x8827, - GL_DRAW_BUFFER3_ATI = 0x8828, - GL_DRAW_BUFFER4_ATI = 0x8829, - GL_DRAW_BUFFER5_ATI = 0x882A, - GL_DRAW_BUFFER6_ATI = 0x882B, - GL_DRAW_BUFFER7_ATI = 0x882C, - GL_DRAW_BUFFER8_ATI = 0x882D, - GL_DRAW_BUFFER9_ATI = 0x882E, - GL_DRAW_BUFFER10_ATI = 0x882F, - GL_DRAW_BUFFER11_ATI = 0x8830, - GL_DRAW_BUFFER12_ATI = 0x8831, - GL_DRAW_BUFFER13_ATI = 0x8832, - GL_DRAW_BUFFER14_ATI = 0x8833, - GL_DRAW_BUFFER15_ATI = 0x8834, - - // GL_ATI_pixel_format_float - GL_TYPE_RGBA_FLOAT_ATI = 0x8820, - GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = 0x8835, - - // GL_ATI_texture_env_combine3 - GL_MODULATE_ADD_ATI = 0x8744, - GL_MODULATE_SIGNED_ADD_ATI = 0x8745, - GL_MODULATE_SUBTRACT_ATI = 0x8746, - - // GL_ATI_texture_float - GL_RGBA_FLOAT32_ATI = 0x8814, - GL_RGB_FLOAT32_ATI = 0x8815, - GL_ALPHA_FLOAT32_ATI = 0x8816, - GL_INTENSITY_FLOAT32_ATI = 0x8817, - GL_LUMINANCE_FLOAT32_ATI = 0x8818, - GL_LUMINANCE_ALPHA_FLOAT32_ATI = 0x8819, - GL_RGBA_FLOAT16_ATI = 0x881A, - GL_RGB_FLOAT16_ATI = 0x881B, - GL_ALPHA_FLOAT16_ATI = 0x881C, - GL_INTENSITY_FLOAT16_ATI = 0x881D, - GL_LUMINANCE_FLOAT16_ATI = 0x881E, - GL_LUMINANCE_ALPHA_FLOAT16_ATI = 0x881F, - - // GL_ATI_separate_stencil - GL_STENCIL_BACK_FUNC_ATI = 0x8800, - GL_STENCIL_BACK_FAIL_ATI = 0x8801, - GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = 0x8802, - GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = 0x8803, - - // GL_ATI_meminfo - GL_VBO_FREE_MEMORY_ATI = 0x87FB, - GL_TEXTURE_FREE_MEMORY_ATI = 0x87FC, - GL_RENDERBUFFER_FREE_MEMORY_ATI = 0x87FD, - } -} - -version(DerelictGL_AMD) -{ - enum : GLenum - { - // GL_AMD_performance_monitor - GL_COUNTER_TYPE_AMD = 0x8BC0, - GL_COUNTER_RANGE_AMD = 0x8BC1, - GL_UNSIGNED_INT64_AMD = 0x8BC2, - GL_PERCENTAGE_AMD = 0x8BC3, - GL_PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4, - GL_PERFMON_RESULT_SIZE_AMD = 0x8BC5, - GL_PERFMON_RESULT_AMD = 0x8BC6, - - // GL_AMD_vertex_shader_tesselator - GL_SAMPLER_BUFFER_AMD = 0x9001, - GL_INT_SAMPLER_BUFFER_AMD = 0x9002, - GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD = 0x9003, - GL_TESSELLATION_MODE_AMD = 0x9004, - GL_TESSELLATION_FACTOR_AMD = 0x9005, - GL_DISCRETE_AMD = 0x9006, - GL_CONTINUOUS_AMD = 0x9007, - } -} - -version(DerelictGL_SGI) -{ - enum : GLenum - { - // GL_SGI_color_matrix - GL_COLOR_MATRIX_SGI = 0x80B1, - GL_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B2, - GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B3, - GL_POST_COLOR_MATRIX_RED_SCALE_SGI = 0x80B4, - GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = 0x80B5, - GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = 0x80B6, - GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = 0x80B7, - GL_POST_COLOR_MATRIX_RED_BIAS_SGI = 0x80B8, - GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = 0x80B9, - GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = 0x80BA, - GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = 0x80BB, - - // GL_SGI_color_table - GL_COLOR_TABLE_SGI = 0x80D0, - GL_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D1, - GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D2, - GL_PROXY_COLOR_TABLE_SGI = 0x80D3, - GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D4, - GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D5, - GL_COLOR_TABLE_SCALE_SGI = 0x80D6, - GL_COLOR_TABLE_BIAS_SGI = 0x80D7, - GL_COLOR_TABLE_FORMAT_SGI = 0x80D8, - GL_COLOR_TABLE_WIDTH_SGI = 0x80D9, - GL_COLOR_TABLE_RED_SIZE_SGI = 0x80DA, - GL_COLOR_TABLE_GREEN_SIZE_SGI = 0x80DB, - GL_COLOR_TABLE_BLUE_SIZE_SGI = 0x80DC, - GL_COLOR_TABLE_ALPHA_SIZE_SGI = 0x80DD, - GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = 0x80DE, - GL_COLOR_TABLE_INTENSITY_SIZE_SGI = 0x80DF, - - // GL_SGI_texture_color_table - GL_TEXTURE_COLOR_TABLE_SGI = 0x80BC, - GL_PROXY_TEXTURE_COLOR_TABLE_SGI = 0x80BD, - } -} - -version(DerelictGL_SGIS) -{ - enum : GLenum - { - // GL_SGIS_texture_filter4 - GL_FILTER4_SGIS = 0x8146, - GL_TEXTURE_FILTER4_SIZE_SGIS = 0x8147, - - // GL_SGIS_pixel_texture - GL_PIXEL_TEXTURE_SGIS = 0x8353, - GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = 0x8354, - GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = 0x8355, - GL_PIXEL_GROUP_COLOR_SGIS = 0x8356, - - // GL_SGIS_texture4D - GL_PACK_SKIP_VOLUMES_SGIS = 0x8130, - GL_PACK_IMAGE_DEPTH_SGIS = 0x8131, - GL_UNPACK_SKIP_VOLUMES_SGIS = 0x8132, - GL_UNPACK_IMAGE_DEPTH_SGIS = 0x8133, - GL_TEXTURE_4D_SGIS = 0x8134, - GL_PROXY_TEXTURE_4D_SGIS = 0x8135, - GL_TEXTURE_4DSIZE_SGIS = 0x8136, - GL_TEXTURE_WRAP_Q_SGIS = 0x8137, - GL_MAX_4D_TEXTURE_SIZE_SGIS = 0x8138, - GL_TEXTURE_4D_BINDING_SGIS = 0x814F, - - // GL_SGIS_detail_texture - GL_DETAIL_TEXTURE_2D_SGIS = 0x8095, - GL_DETAIL_TEXTURE_2D_BINDING_SGIS = 0x8096, - GL_LINEAR_DETAIL_SGIS = 0x8097, - GL_LINEAR_DETAIL_ALPHA_SGIS = 0x8098, - GL_LINEAR_DETAIL_COLOR_SGIS = 0x8099, - GL_DETAIL_TEXTURE_LEVEL_SGIS = 0x809A, - GL_DETAIL_TEXTURE_MODE_SGIS = 0x809B, - GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = 0x809C, - - // GL_SGIS_sharpen_texture - GL_LINEAR_SHARPEN_SGIS = 0x80AD, - GL_LINEAR_SHARPEN_ALPHA_SGIS = 0x80AE, - GL_LINEAR_SHARPEN_COLOR_SGIS = 0x80AF, - GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = 0x80B0, - - // GL_SGIS_texture_lod - GL_TEXTURE_MIN_LOD_SGIS = 0x813A, - GL_TEXTURE_MAX_LOD_SGIS = 0x813B, - GL_TEXTURE_BASE_LEVEL_SGIS = 0x813C, - GL_TEXTURE_MAX_LEVEL_SGIS = 0x813D, - - // GL_SGIS_multisample - GL_MULTISAMPLE_SGIS = 0x809D, - GL_SAMPLE_ALPHA_TO_MASK_SGIS = 0x809E, - GL_SAMPLE_ALPHA_TO_ONE_SGIS = 0x809F, - GL_SAMPLE_MASK_SGIS = 0x80A0, - GL_1PASS_SGIS = 0x80A1, - GL_2PASS_0_SGIS = 0x80A2, - GL_2PASS_1_SGIS = 0x80A3, - GL_4PASS_0_SGIS = 0x80A4, - GL_4PASS_1_SGIS = 0x80A5, - GL_4PASS_2_SGIS = 0x80A6, - GL_4PASS_3_SGIS = 0x80A7, - GL_SAMPLE_BUFFERS_SGIS = 0x80A8, - GL_SAMPLES_SGIS = 0x80A9, - GL_SAMPLE_MASK_VALUE_SGIS = 0x80AA, - GL_SAMPLE_MASK_INVERT_SGIS = 0x80AB, - GL_SAMPLE_PATTERN_SGIS = 0x80AC, - - // GL_SGIS_generate_mipmap - GL_GENERATE_MIPMAP_SGIS = 0x8191, - GL_GENERATE_MIPMAP_HINT_SGIS = 0x8192, - - // GL_SGIS_texture_edge_clamp - GL_CLAMP_TO_EDGE_SGIS = 0x812F, - - // GL_SGIS_texture_border_clamp - GL_CLAMP_TO_BORDER_SGIS = 0x812D, - - // GL_SGIS_texture_select - GL_DUAL_ALPHA4_SGIS = 0x8110, - GL_DUAL_ALPHA8_SGIS = 0x8111, - GL_DUAL_ALPHA12_SGIS = 0x8112, - GL_DUAL_ALPHA16_SGIS = 0x8113, - GL_DUAL_LUMINANCE4_SGIS = 0x8114, - GL_DUAL_LUMINANCE8_SGIS = 0x8115, - GL_DUAL_LUMINANCE12_SGIS = 0x8116, - GL_DUAL_LUMINANCE16_SGIS = 0x8117, - GL_DUAL_INTENSITY4_SGIS = 0x8118, - GL_DUAL_INTENSITY8_SGIS = 0x8119, - GL_DUAL_INTENSITY12_SGIS = 0x811A, - GL_DUAL_INTENSITY16_SGIS = 0x811B, - GL_DUAL_LUMINANCE_ALPHA4_SGIS = 0x811C, - GL_DUAL_LUMINANCE_ALPHA8_SGIS = 0x811D, - GL_QUAD_ALPHA4_SGIS = 0x811E, - GL_QUAD_ALPHA8_SGIS = 0x811F, - GL_QUAD_LUMINANCE4_SGIS = 0x8120, - GL_QUAD_LUMINANCE8_SGIS = 0x8121, - GL_QUAD_INTENSITY4_SGIS = 0x8122, - GL_QUAD_INTENSITY8_SGIS = 0x8123, - GL_DUAL_TEXTURE_SELECT_SGIS = 0x8124, - GL_QUAD_TEXTURE_SELECT_SGIS = 0x8125, - - // GL_SGIS_point_parameters - GL_POINT_SIZE_MIN_SGIS = 0x8126, - GL_POINT_SIZE_MAX_SGIS = 0x8127, - GL_POINT_FADE_THRESHOLD_SIZE_SGIS = 0x8128, - GL_DISTANCE_ATTENUATION_SGIS = 0x8129, - - // GL_SGIS_fog_function - GL_FOG_FUNC_SGIS = 0x812A, - GL_FOG_FUNC_POINTS_SGIS = 0x812B, - GL_MAX_FOG_FUNC_POINTS_SGIS = 0x812C, - - // GL_SGIS_point_line_texgen - GL_EYE_DISTANCE_TO_POINT_SGIS = 0x81F0, - GL_OBJECT_DISTANCE_TO_POINT_SGIS = 0x81F1, - GL_EYE_DISTANCE_TO_LINE_SGIS = 0x81F2, - GL_OBJECT_DISTANCE_TO_LINE_SGIS = 0x81F3, - GL_EYE_POINT_SGIS = 0x81F4, - GL_OBJECT_POINT_SGIS = 0x81F5, - GL_EYE_LINE_SGIS = 0x81F6, - GL_OBJECT_LINE_SGIS = 0x81F7, - - // GL_SGIS_texture_color_mask - GL_TEXTURE_COLOR_WRITEMASK_SGIS = 0x81EF, - } -} - -version(DerelictGL_SGIX) -{ - enum : GLenum - { - // GL_SGIX_pixel_texture - GL_PIXEL_TEX_GEN_SGIX = 0x8139, - GL_PIXEL_TEX_GEN_MODE_SGIX = 0x832B, - - // GL_SGIX_clipmap - GL_LINEAR_CLIPMAP_LINEAR_SGIX = 0x8170, - GL_TEXTURE_CLIPMAP_CENTER_SGIX = 0x8171, - GL_TEXTURE_CLIPMAP_FRAME_SGIX = 0x8172, - GL_TEXTURE_CLIPMAP_OFFSET_SGIX = 0x8173, - GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8174, - GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = 0x8175, - GL_TEXTURE_CLIPMAP_DEPTH_SGIX = 0x8176, - GL_MAX_CLIPMAP_DEPTH_SGIX = 0x8177, - GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8178, - GL_NEAREST_CLIPMAP_NEAREST_SGIX = 0x844D, - GL_NEAREST_CLIPMAP_LINEAR_SGIX = 0x844E, - GL_LINEAR_CLIPMAP_NEAREST_SGIX = 0x844F, - - // GL_SGIX_shadow - GL_TEXTURE_COMPARE_SGIX = 0x819A, - GL_TEXTURE_COMPARE_OPERATOR_SGIX = 0x819B, - GL_TEXTURE_LEQUAL_R_SGIX = 0x819C, - GL_TEXTURE_GEQUAL_R_SGIX = 0x819D, - - // GL_SGIX_interlace - GL_INTERLACE_SGIX = 0x8094, - - // GL_SGIX_pixel_tiles - GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = 0x813E, - GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = 0x813F, - GL_PIXEL_TILE_WIDTH_SGIX = 0x8140, - GL_PIXEL_TILE_HEIGHT_SGIX = 0x8141, - GL_PIXEL_TILE_GRID_WIDTH_SGIX = 0x8142, - GL_PIXEL_TILE_GRID_HEIGHT_SGIX = 0x8143, - GL_PIXEL_TILE_GRID_DEPTH_SGIX = 0x8144, - GL_PIXEL_TILE_CACHE_SIZE_SGIX = 0x8145, - - // GL_SGIX_sprite - GL_SPRITE_SGIX = 0x8148, - GL_SPRITE_MODE_SGIX = 0x8149, - GL_SPRITE_AXIS_SGIX = 0x814A, - GL_SPRITE_TRANSLATION_SGIX = 0x814B, - GL_SPRITE_AXIAL_SGIX = 0x814C, - GL_SPRITE_OBJECT_ALIGNED_SGIX = 0x814D, - GL_SPRITE_EYE_ALIGNED_SGIX = 0x814E, - - // GL_SGIX_texture_multi_buffer - GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = 0x812E, - - // GL_SGIX_instruments - GL_INSTRUMENT_BUFFER_POINTER_SGIX = 0x8180, - GL_INSTRUMENT_MEASUREMENTS_SGIX = 0x8181, - - // GL_SGIX_texture_scale_bias - GL_POST_TEXTURE_FILTER_BIAS_SGIX = 0x8179, - GL_POST_TEXTURE_FILTER_SCALE_SGIX = 0x817A, - GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = 0x817B, - GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = 0x817C, - - // GL_SGIX_framezoom - GL_FRAMEZOOM_SGIX = 0x818B, - GL_FRAMEZOOM_FACTOR_SGIX = 0x818C, - GL_MAX_FRAMEZOOM_FACTOR_SGIX = 0x818D, - - // GL_SGIX_polynomial_ffd - GL_GEOMETRY_DEFORMATION_SGIX = 0x8194, - GL_TEXTURE_DEFORMATION_SGIX = 0x8195, - GL_DEFORMATIONS_MASK_SGIX = 0x8196, - GL_MAX_DEFORMATION_ORDER_SGIX = 0x8197, - - // GL_SGIX_reference_plane - GL_REFERENCE_PLANE_SGIX = 0x817D, - GL_REFERENCE_PLANE_EQUATION_SGIX = 0x817E, - - // GL_SGIX_depth_texture - GL_DEPTH_COMPONENT16_SGIX = 0x81A5, - GL_DEPTH_COMPONENT24_SGIX = 0x81A6, - GL_DEPTH_COMPONENT32_SGIX = 0x81A7, - - // GL_SGIX_fog_offset - GL_FOG_OFFSET_SGIX = 0x8198, - GL_FOG_OFFSET_VALUE_SGIX = 0x8199, - - // GL_SGIX_texture_add_env - GL_TEXTURE_ENV_BIAS_SGIX = 0x80BE, - - // GL_SGIX_list_priority - GL_LIST_PRIORITY_SGIX = 0x8182, - - // GL_SGIX_ir_instrument1 - GL_IR_INSTRUMENT1_SGIX = 0x817F, - - // GL_SGIX_calligraphic_fragment - GL_CALLIGRAPHIC_FRAGMENT_SGIX = 0x8183, - - // GL_SGIX_texture_lod_bias - GL_TEXTURE_LOD_BIAS_S_SGIX = 0x818E, - GL_TEXTURE_LOD_BIAS_T_SGIX = 0x818F, - GL_TEXTURE_LOD_BIAS_R_SGIX = 0x8190, - - // GL_SGIX_shadow_ambient - GL_SHADOW_AMBIENT_SGIX = 0x80BF, - - // GL_SGIX_ycrcb - GL_YCRCB_422_SGIX = 0x81BB, - GL_YCRCB_444_SGIX = 0x81BC, - - // GL_SGIX_fragment_lighting - GL_FRAGMENT_LIGHTING_SGIX = 0x8400, - GL_FRAGMENT_COLOR_MATERIAL_SGIX = 0x8401, - GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = 0x8402, - GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = 0x8403, - GL_MAX_FRAGMENT_LIGHTS_SGIX = 0x8404, - GL_MAX_ACTIVE_LIGHTS_SGIX = 0x8405, - GL_CURRENT_RASTER_NORMAL_SGIX = 0x8406, - GL_LIGHT_ENV_MODE_SGIX = 0x8407, - GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = 0x8408, - GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = 0x8409, - GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = 0x840A, - GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = 0x840B, - GL_FRAGMENT_LIGHT0_SGIX = 0x840C, - GL_FRAGMENT_LIGHT1_SGIX = 0x840D, - GL_FRAGMENT_LIGHT2_SGIX = 0x840E, - GL_FRAGMENT_LIGHT3_SGIX = 0x840F, - GL_FRAGMENT_LIGHT4_SGIX = 0x8410, - GL_FRAGMENT_LIGHT5_SGIX = 0x8411, - GL_FRAGMENT_LIGHT6_SGIX = 0x8412, - GL_FRAGMENT_LIGHT7_SGIX = 0x8413, - - // GL_SGIX_blend_alpha_minmax - GL_ALPHA_MIN_SGIX = 0x8320, - GL_ALPHA_MAX_SGIX = 0x8321, - - // GL_SGIX_impact_pixel_texture - GL_PIXEL_TEX_GEN_Q_CEILING_SGIX = 0x8184, - GL_PIXEL_TEX_GEN_Q_ROUND_SGIX = 0x8185, - GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX = 0x8186, - GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = 0x8187, - GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = 0x8188, - GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX = 0x8189, - GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX = 0x818A, - - // GL_SGIX_async - GL_ASYNC_MARKER_SGIX = 0x8329, - - // GL_SGIX_async_pixel - GL_ASYNC_TEX_IMAGE_SGIX = 0x835C, - GL_ASYNC_DRAW_PIXELS_SGIX = 0x835D, - GL_ASYNC_READ_PIXELS_SGIX = 0x835E, - GL_MAX_ASYNC_TEX_IMAGE_SGIX = 0x835F, - GL_MAX_ASYNC_DRAW_PIXELS_SGIX = 0x8360, - GL_MAX_ASYNC_READ_PIXELS_SGIX = 0x8361, - - // GL_SGIX_async_histogram - GL_ASYNC_HISTOGRAM_SGIX = 0x832C, - GL_MAX_ASYNC_HISTOGRAM_SGIX = 0x832D, - - // GL_SGIX_fog_scale - GL_FOG_SCALE_SGIX = 0x81FC, - GL_FOG_SCALE_VALUE_SGIX = 0x81FD, - - // GL_SGIX_subsample - GL_PACK_SUBSAMPLE_RATE_SGIX = 0x85A0, - GL_UNPACK_SUBSAMPLE_RATE_SGIX = 0x85A1, - GL_PIXEL_SUBSAMPLE_4444_SGIX = 0x85A2, - GL_PIXEL_SUBSAMPLE_2424_SGIX = 0x85A3, - GL_PIXEL_SUBSAMPLE_4242_SGIX = 0x85A4, - - // GL_SGIX_ycrcba - GL_YCRCB_SGIX = 0x8318, - GL_YCRCBA_SGIX = 0x8319, - - // GL_SGIX_depth_pass_instrument - GL_DEPTH_PASS_INSTRUMENT_SGIX = 0x8310, - GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = 0x8311, - GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX = 0x8312, - - // GL_SGIX_vertex_preclip - GL_VERTEX_PRECLIP_SGIX = 0x83EE, - GL_VERTEX_PRECLIP_HINT_SGIX = 0x83EF, - - // GL_SGIX_convolution_accuracy - GL_CONVOLUTION_HINT_SGIX = 0x8316, - - // GL_SGIX_resample - GL_PACK_RESAMPLE_SGIX = 0x842C, - GL_UNPACK_RESAMPLE_SGIX = 0x842D, - GL_RESAMPLE_REPLICATE_SGIX = 0x842E, - GL_RESAMPLE_ZERO_FILL_SGIX = 0x842F, - GL_RESAMPLE_DECIMATE_SGIX = 0x8430, - - // GL_SGIX_texture_coordinate_clamp - GL_TEXTURE_MAX_CLAMP_S_SGIX = 0x8369, - GL_TEXTURE_MAX_CLAMP_T_SGIX = 0x836A, - GL_TEXTURE_MAX_CLAMP_R_SGIX = 0x836B, - - // GL_SGIX_scalebias_hint - GL_SCALEBIAS_HINT_SGIX = 0x8322, - } -} - -version(DerelictGL_HP) -{ - enum : GLenum - { - // GL_HP_image_transform - GL_IMAGE_SCALE_X_HP = 0x8155, - GL_IMAGE_SCALE_Y_HP = 0x8156, - GL_IMAGE_TRANSLATE_X_HP = 0x8157, - GL_IMAGE_TRANSLATE_Y_HP = 0x8158, - GL_IMAGE_ROTATE_ANGLE_HP = 0x8159, - GL_IMAGE_ROTATE_ORIGIN_X_HP = 0x815A, - GL_IMAGE_ROTATE_ORIGIN_Y_HP = 0x815B, - GL_IMAGE_MAG_FILTER_HP = 0x815C, - GL_IMAGE_MIN_FILTER_HP = 0x815D, - GL_IMAGE_CUBIC_WEIGHT_HP = 0x815E, - GL_CUBIC_HP = 0x815F, - GL_AVERAGE_HP = 0x8160, - GL_IMAGE_TRANSFORM_2D_HP = 0x8161, - GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8162, - GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8163, - - // GL_HP_convolution_border_modes - GL_IGNORE_BORDER_HP = 0x8150, - GL_CONSTANT_BORDER_HP = 0x8151, - GL_REPLICATE_BORDER_HP = 0x8153, - GL_CONVOLUTION_BORDER_COLOR_HP = 0x8154, - - // GL_HP_texture_lighting - GL_TEXTURE_LIGHTING_MODE_HP = 0x8167, - GL_TEXTURE_POST_SPECULAR_HP = 0x8168, - GL_TEXTURE_PRE_SPECULAR_HP = 0x8169, - - // GL_HP_occlusion_test - GL_OCCLUSION_TEST_HP = 0x8165, - GL_OCCLUSION_TEST_RESULT_HP = 0x8166, - } -} - -version(DerelictGL_PGI) -{ - enum : GLenum - { - // GL_PGI_vertex_hints - GL_VERTEX_DATA_HINT_PGI = 0x1A22A, - GL_VERTEX_CONSISTENT_HINT_PGI = 0x1A22B, - GL_MATERIAL_SIDE_HINT_PGI = 0x1A22C, - GL_MAX_VERTEX_HINT_PGI = 0x1A22D, - GL_COLOR3_BIT_PGI = 0x00010000, - GL_COLOR4_BIT_PGI = 0x00020000, - GL_EDGEFLAG_BIT_PGI = 0x00040000, - GL_INDEX_BIT_PGI = 0x00080000, - GL_MAT_AMBIENT_BIT_PGI = 0x00100000, - GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = 0x00200000, - GL_MAT_DIFFUSE_BIT_PGI = 0x00400000, - GL_MAT_EMISSION_BIT_PGI = 0x00800000, - GL_MAT_COLOR_INDEXES_BIT_PGI = 0x01000000, - GL_MAT_SHININESS_BIT_PGI = 0x02000000, - GL_MAT_SPECULAR_BIT_PGI = 0x04000000, - GL_NORMAL_BIT_PGI = 0x08000000, - GL_TEXCOORD1_BIT_PGI = 0x10000000, - GL_TEXCOORD2_BIT_PGI = 0x20000000, - GL_TEXCOORD3_BIT_PGI = 0x40000000, - GL_TEXCOORD4_BIT_PGI = 0x80000000, - GL_VERTEX23_BIT_PGI = 0x00000004, - GL_VERTEX4_BIT_PGI = 0x00000008, - - // GL_PGI_misc_hints - GL_PREFER_DOUBLEBUFFER_HINT_PGI = 0x1A1F8, - GL_CONSERVE_MEMORY_HINT_PGI = 0x1A1FD, - GL_RECLAIM_MEMORY_HINT_PGI = 0x1A1FE, - GL_NATIVE_GRAPHICS_HANDLE_PGI = 0x1A202, - GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = 0x1A203, - GL_NATIVE_GRAPHICS_END_HINT_PGI = 0x1A204, - GL_ALWAYS_FAST_HINT_PGI = 0x1A20C, - GL_ALWAYS_SOFT_HINT_PGI = 0x1A20D, - GL_ALLOW_DRAW_OBJ_HINT_PGI = 0x1A20E, - GL_ALLOW_DRAW_WIN_HINT_PGI = 0x1A20F, - GL_ALLOW_DRAW_FRG_HINT_PGI = 0x1A210, - GL_ALLOW_DRAW_MEM_HINT_PGI = 0x1A211, - GL_STRICT_DEPTHFUNC_HINT_PGI = 0x1A216, - GL_STRICT_LIGHTING_HINT_PGI = 0x1A217, - GL_STRICT_SCISSOR_HINT_PGI = 0x1A218, - GL_FULL_STIPPLE_HINT_PGI = 0x1A219, - GL_CLIP_NEAR_HINT_PGI = 0x1A220, - GL_CLIP_FAR_HINT_PGI = 0x1A221, - GL_WIDE_LINE_HINT_PGI = 0x1A222, - GL_BACK_NORMALS_HINT_PGI = 0x1A223, - } -} - -version(DerelictGL_IBM) -{ - enum : GLenum - { - // GL_IBM_rasterpos_clip - GL_RASTER_POSITION_UNCLIPPED_IBM = 0x19262, - - // GL_IBM_cull_vertex - GL_CULL_VERTEX_IBM = 103050, - - // GL_IBM_vertex_array_lists - GL_VERTEX_ARRAY_LIST_IBM = 103070, - GL_NORMAL_ARRAY_LIST_IBM = 103071, - GL_COLOR_ARRAY_LIST_IBM = 103072, - GL_INDEX_ARRAY_LIST_IBM = 103073, - GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074, - GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075, - GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076, - GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077, - GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080, - GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081, - GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082, - GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083, - GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084, - GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085, - GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086, - GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087, - - // GL_IBM_texture_mirrored_repeat - GL_MIRRORED_REPEAT_IBM = 0x8370, - } -} - -version(DerelictGL_WIN) -{ - enum : GLenum - { - // GL_WIN_phong_shading - GL_PHONG_WIN = 0x80EA, - GL_PHONG_HINT_WIN = 0x80EB, - - // GL_WIN_specular_fog - GL_FOG_SPECULAR_TEXTURE_WIN = 0x80EC, - } -} - -version(DerelictGL_INTEL) -{ - enum : GLenum - { - // GL_INTEL_parallel_arrays - GL_PARALLEL_ARRAYS_INTEL = 0x83F4, - GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F5, - GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F6, - GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F7, - GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F8, - } -} - -version(DerelictGL_REND) -{ - enum : GLenum - { - // GL_REND_screen_coordinates - GL_SCREEN_COORDINATES_REND = 0x8490, - GL_INVERTED_SCREEN_W_REND = 0x8491, - } -} - -version(DerelictGL_APPLE) -{ - enum : GLenum - { - // GL_APPLE_specular_vector - GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = 0x85B0, - - // GL_APPLE_transform_hint - GL_TRANSFORM_HINT_APPLE = 0x85B1, - - // GL_APPLE_client_storage - GL_UNPACK_CLIENT_STORAGE_APPLE = 0x85B2, - - // GL_APPLE_element_array - GL_ELEMENT_ARRAY_APPLE = 0x8768, - GL_ELEMENT_ARRAY_TYPE_APPLE = 0x8769, - GL_ELEMENT_ARRAY_POINTER_APPLE = 0x876A, - - // GL_APPLE_fence - GL_DRAW_PIXELS_APPLE = 0x8A0A, - GL_FENCE_APPLE = 0x8A0B, - - // GL_APPLE_vertex_array_object - GL_VERTEX_ARRAY_BINDING_APPLE = 0x85B5, - - // GL_APPLE_vertex_array_range - GL_VERTEX_ARRAY_RANGE_APPLE = 0x851D, - GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = 0x851E, - GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = 0x851F, - GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = 0x8521, - GL_STORAGE_CACHED_APPLE = 0x85BE, - GL_STORAGE_SHARED_APPLE = 0x85BF, - - // GL_APPLE_ycbcr_422 - GL_YCBCR_422_APPLE = 0x85B9, - GL_UNSIGNED_SHORT_8_8_APPLE = 0x85BA, - GL_UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB, - - // GL_APPLE_flush_buffer_range - GL_BUFFER_SERIALIZED_MODIFY_APPLE = 0x8A12, - GL_BUFFER_FLUSHING_UNMAP_APPLE = 0x8A13, - - // GL_APPLE_texture_range - GL_TEXTURE_RANGE_LENGTH_APPLE = 0x85B7, - GL_TEXTURE_RANGE_POINTER_APPLE = 0x85B8, - GL_TEXTURE_STORAGE_HINT_APPLE = 0x85BC, - GL_STORAGE_PRIVATE_APPLE = 0x85BD, - - // GL_APPLE_float_pixels - GL_HALF_APPLE = 0x140B, - GL_RGBA_FLOAT32_APPLE = 0x8814, - GL_RGB_FLOAT32_APPLE = 0x8815, - GL_ALPHA_FLOAT32_APPLE = 0x8816, - GL_INTENSITY_FLOAT32_APPLE = 0x8817, - GL_LUMINANCE_FLOAT32_APPLE = 0x8818, - GL_LUMINANCE_ALPHA_FLOAT32_APPLE = 0x8819, - GL_RGBA_FLOAT16_APPLE = 0x881A, - GL_RGB_FLOAT16_APPLE = 0x881B, - GL_ALPHA_FLOAT16_APPLE = 0x881C, - GL_INTENSITY_FLOAT16_APPLE = 0x881D, - GL_LUMINANCE_FLOAT16_APPLE = 0x881E, - GL_LUMINANCE_ALPHA_FLOAT16_APPLE = 0x881F, - GL_COLOR_FLOAT_APPLE = 0x8A0F, - - // GL_APPLE_vertex_program_evaluators - GL_VERTEX_ATTRIB_MAP1_APPLE = 0x8A00, - GL_VERTEX_ATTRIB_MAP2_APPLE = 0x8A01, - GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE = 0x8A02, - GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE = 0x8A03, - GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE = 0x8A04, - GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = 0x8A05, - GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE = 0x8A06, - GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE = 0x8A07, - GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE = 0x8A08, - GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = 0x8A09, - - // GL_APPLE_aux_depth_stencil - GL_AUX_DEPTH_STENCIL_APPLE = 0x8A14, - - // GL_APPLE_object_purgeable - GL_BUFFER_OBJECT_APPLE = 0x85B3, - GL_RELEASED_APPLE = 0x8A19, - GL_VOLATILE_APPLE = 0x8A1A, - GL_RETAINED_APPLE = 0x8A1B, - GL_UNDEFINED_APPLE = 0x8A1C, - GL_PURGEABLE_APPLE = 0x8A1D, - - // GL_APPLE_row_bytes - GL_PACK_ROW_BYTES_APPLE = 0x8A15, - GL_UNPACK_ROW_BYTES_APPLE = 0x8A16, - - // GL_APPLE_rgb_422 - GL_RGB_422_APPLE = 0x8A1F, - } -} - -version(DerelictGL_SUNX) -{ - enum : GLenum - { - // GL_SUNX_constant_data - GL_UNPACK_CONSTANT_DATA_SUNX = 0x81D5, - GL_TEXTURE_CONSTANT_DATA_SUNX = 0x81D6, - } -} - -version(DerelictGL_SUN) -{ - enum : GLenum - { - // GL_SUN_global_alpha - GL_GLOBAL_ALPHA_SUN = 0x81D9, - GL_GLOBAL_ALPHA_FACTOR_SUN = 0x81DA, - - // GL_SUN_triangle_list - GL_RESTART_SUN = 0x0001, - GL_REPLACE_MIDDLE_SUN = 0x0002, - GL_REPLACE_OLDEST_SUN = 0x0003, - GL_TRIANGLE_LIST_SUN = 0x81D7, - GL_REPLACEMENT_CODE_SUN = 0x81D8, - GL_REPLACEMENT_CODE_ARRAY_SUN = 0x85C0, - GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = 0x85C1, - GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = 0x85C2, - GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = 0x85C3, - GL_R1UI_V3F_SUN = 0x85C4, - GL_R1UI_C4UB_V3F_SUN = 0x85C5, - GL_R1UI_C3F_V3F_SUN = 0x85C6, - GL_R1UI_N3F_V3F_SUN = 0x85C7, - GL_R1UI_C4F_N3F_V3F_SUN = 0x85C8, - GL_R1UI_T2F_V3F_SUN = 0x85C9, - GL_R1UI_T2F_N3F_V3F_SUN = 0x85CA, - GL_R1UI_T2F_C4F_N3F_V3F_SUN = 0x85CB, - - // GL_SUN_convolution_border_modes - GL_WRAP_BORDER_SUN = 0x81D4, - - // GL_SUN_mesh_array - GL_QUAD_MESH_SUN = 0x8614, - GL_TRIANGLE_MESH_SUN = 0x8615, - - // GL_SUN_slice_accum - GL_SLICE_ACCUM_SUN = 0x85CC, - } -} - -version(DerelictGL_INGR) -{ - enum : GLenum - { - // GL_INGR_color_clamp - GL_RED_MIN_CLAMP_INGR = 0x8560, - GL_GREEN_MIN_CLAMP_INGR = 0x8561, - GL_BLUE_MIN_CLAMP_INGR = 0x8562, - GL_ALPHA_MIN_CLAMP_INGR = 0x8563, - GL_RED_MAX_CLAMP_INGR = 0x8564, - GL_GREEN_MAX_CLAMP_INGR = 0x8565, - GL_BLUE_MAX_CLAMP_INGR = 0x8566, - GL_ALPHA_MAX_CLAMP_INGR = 0x8567, - - // GL_INGR_interlace_read - GL_INTERLACE_READ_INGR = 0x8568, - } -} - -version(DerelictGL_MESA) -{ - enum : GLenum - { - // GL_MESA_pack_invert - GL_PACK_INVERT_MESA = 0x8758, - - // GL_MESA_ycbcr_texture - GL_UNSIGNED_SHORT_8_8_MESA = 0x85BA, - GL_UNSIGNED_SHORT_8_8_REV_MESA = 0x85BB, - GL_YCBCR_MESA = 0x8757, - } -} - -version(DerelictGL_3DFX) -{ - enum : GLenum - { - // GL_3DFX_texture_compression_FXT1 - GL_COMPRESSED_RGB_FXT1_3DFX = 0x86B0, - GL_COMPRESSED_RGBA_FXT1_3DFX = 0x86B1, - - // GL_3DFX_multisample - GL_MULTISAMPLE_3DFX = 0x86B2, - GL_SAMPLE_BUFFERS_3DFX = 0x86B3, - GL_SAMPLES_3DFX = 0x86B4, - GL_MULTISAMPLE_BIT_3DFX = 0x20000000, - } -} - -version(DerelictGL_OML) -{ - enum : GLenum - { - // GL_OML_interlace - GL_INTERLACE_OML = 0x8980, - GL_INTERLACE_READ_OML = 0x8981, - - // GL_OML_subsample - GL_FORMAT_SUBSAMPLE_24_24_OML = 0x8982, - GL_FORMAT_SUBSAMPLE_244_244_OML = 0x8983, - - // GL_OML_resample - GL_PACK_RESAMPLE_OML = 0x8984, - GL_UNPACK_RESAMPLE_OML = 0x8985, - GL_RESAMPLE_REPLICATE_OML = 0x8986, - GL_RESAMPLE_ZERO_FILL_OML = 0x8987, - GL_RESAMPLE_AVERAGE_OML = 0x8988, - GL_RESAMPLE_DECIMATE_OML = 0x8989, - } -} - -version(DerelictGL_S3) -{ - enum : GLenum - { - // GL_S3_s3tc - GL_RGB_S3TC = 0x83A0, - GL_RGB4_S3TC = 0x83A1, - GL_RGBA_S3TC = 0x83A2, - GL_RGBA4_S3TC = 0x83A3, - } -} - -version(DerelictGL_OES) -{ - enum : GLenum - { - // GL_OES_read_format - GL_IMPLEMENTATION_COLOR_READ_TYPE_OES = 0x8B9A, - GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES = 0x8B9B, - } -} - -version(DerelictGL_GREMEDY) -{ -} - -version(DerelictGL_MESAX) -{ - enum : GLenum - { - // GL_MESAX_texture_stack - GL_TEXTURE_1D_STACK_MESAX = 0x8759, - GL_TEXTURE_2D_STACK_MESAX = 0x875A, - GL_PROXY_TEXTURE_1D_STACK_MESAX = 0x875B, - GL_PROXY_TEXTURE_2D_STACK_MESAX = 0x875C, - GL_TEXTURE_1D_STACK_BINDING_MESAX = 0x875D, - GL_TEXTURE_2D_STACK_BINDING_MESAX = 0x875E, - } -} - -version(Windows) -{ - private - { - import derelict.util.wintypes; - } - - alias HANDLE HPBUFFERARB; - alias HANDLE HPBUFFEREXT; - - alias HANDLE HGPUNV; - alias GPU_DEVICE* PGPU_DEVICE; - alias HANDLE HVIDEOOUTPUTDEVICENV; - alias HANDLE HPVIDEODEV; - - struct GPU_DEVICE - { - DWORD cb; - char[32] DeviceName; - char[128] DeviceString; - DWORD flags; - RECT rcVirtualScreen; - } - - - version(DerelictGL_ARB) - { - enum : GLenum - { - // WGL_ARB_buffer_region - WGL_FRONT_COLOR_BUFFER_BIT_ARB = 0x00000001, - WGL_BACK_COLOR_BUFFER_BIT_ARB = 0x00000002, - WGL_DEPTH_BUFFER_BIT_ARB = 0x00000004, - WGL_STENCIL_BUFFER_BIT_ARB = 0x00000008, - - // WGL_ARB_multisample - WGL_SAMPLE_BUFFERS_ARB = 0x2041, - WGL_SAMPLES_ARB = 0x2042, - - // WGL_ARB_pixel_format - WGL_NUMBER_PIXEL_FORMATS_ARB = 0x2000, - WGL_DRAW_TO_WINDOW_ARB = 0x2001, - WGL_DRAW_TO_BITMAP_ARB = 0x2002, - WGL_ACCELERATION_ARB = 0x2003, - WGL_NEED_PALETTE_ARB = 0x2004, - WGL_NEED_SYSTEM_PALETTE_ARB = 0x2005, - WGL_SWAP_LAYER_BUFFERS_ARB = 0x2006, - WGL_SWAP_METHOD_ARB = 0x2007, - WGL_NUMBER_OVERLAYS_ARB = 0x2008, - WGL_NUMBER_UNDERLAYS_ARB = 0x2009, - WGL_TRANSPARENT_ARB = 0x200A, - WGL_TRANSPARENT_RED_VALUE_ARB = 0x2037, - WGL_TRANSPARENT_GREEN_VALUE_ARB = 0x2038, - WGL_TRANSPARENT_BLUE_VALUE_ARB = 0x2039, - WGL_TRANSPARENT_ALPHA_VALUE_ARB = 0x203A, - WGL_TRANSPARENT_INDEX_VALUE_ARB = 0x203B, - WGL_SHARE_DEPTH_ARB = 0x200C, - WGL_SHARE_STENCIL_ARB = 0x200D, - WGL_SHARE_ACCUM_ARB = 0x200E, - WGL_SUPPORT_GDI_ARB = 0x200F, - WGL_SUPPORT_OPENGL_ARB = 0x2010, - WGL_DOUBLE_BUFFER_ARB = 0x2011, - WGL_STEREO_ARB = 0x2012, - WGL_PIXEL_TYPE_ARB = 0x2013, - WGL_COLOR_BITS_ARB = 0x2014, - WGL_RED_BITS_ARB = 0x2015, - WGL_RED_SHIFT_ARB = 0x2016, - WGL_GREEN_BITS_ARB = 0x2017, - WGL_GREEN_SHIFT_ARB = 0x2018, - WGL_BLUE_BITS_ARB = 0x2019, - WGL_BLUE_SHIFT_ARB = 0x201A, - WGL_ALPHA_BITS_ARB = 0x201B, - WGL_ALPHA_SHIFT_ARB = 0x201C, - WGL_ACCUM_BITS_ARB = 0x201D, - WGL_ACCUM_RED_BITS_ARB = 0x201E, - WGL_ACCUM_GREEN_BITS_ARB = 0x201F, - WGL_ACCUM_BLUE_BITS_ARB = 0x2020, - WGL_ACCUM_ALPHA_BITS_ARB = 0x2021, - WGL_DEPTH_BITS_ARB = 0x2022, - WGL_STENCIL_BITS_ARB = 0x2023, - WGL_AUX_BUFFERS_ARB = 0x2024, - WGL_NO_ACCELERATION_ARB = 0x2025, - WGL_GENERIC_ACCELERATION_ARB = 0x2026, - WGL_FULL_ACCELERATION_ARB = 0x2027, - WGL_SWAP_EXCHANGE_ARB = 0x2028, - WGL_SWAP_COPY_ARB = 0x2029, - WGL_SWAP_UNDEFINED_ARB = 0x202A, - WGL_TYPE_RGBA_ARB = 0x202B, - WGL_TYPE_COLORINDEX_ARB = 0x202C, - - // WGL_ARB_make_current_read - ERROR_INVALID_PIXEL_TYPE_ARB = 0x2043, - ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB = 0x2054, - - // WGL_ARB_pbuffer - WGL_DRAW_TO_PBUFFER_ARB = 0x202D, - WGL_MAX_PBUFFER_PIXELS_ARB = 0x202E, - WGL_MAX_PBUFFER_WIDTH_ARB = 0x202F, - WGL_MAX_PBUFFER_HEIGHT_ARB = 0x2030, - WGL_PBUFFER_LARGEST_ARB = 0x2033, - WGL_PBUFFER_WIDTH_ARB = 0x2034, - WGL_PBUFFER_HEIGHT_ARB = 0x2035, - WGL_PBUFFER_LOST_ARB = 0x2036, - - // WGL_ARB_render_texture - WGL_BIND_TO_TEXTURE_RGB_ARB = 0x2070, - WGL_BIND_TO_TEXTURE_RGBA_ARB = 0x2071, - WGL_TEXTURE_FORMAT_ARB = 0x2072, - WGL_TEXTURE_TARGET_ARB = 0x2073, - WGL_MIPMAP_TEXTURE_ARB = 0x2074, - WGL_TEXTURE_RGB_ARB = 0x2075, - WGL_TEXTURE_RGBA_ARB = 0x2076, - WGL_NO_TEXTURE_ARB = 0x2077, - WGL_TEXTURE_CUBE_MAP_ARB = 0x2078, - WGL_TEXTURE_1D_ARB = 0x2079, - WGL_TEXTURE_2D_ARB = 0x207A, - WGL_MIPMAP_LEVEL_ARB = 0x207B, - WGL_CUBE_MAP_FACE_ARB = 0x207C, - WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = 0x207D, - WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = 0x207E, - WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = 0x207F, - WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = 0x2080, - WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = 0x2081, - WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = 0x2082, - WGL_FRONT_LEFT_ARB = 0x2083, - WGL_FRONT_RIGHT_ARB = 0x2084, - WGL_BACK_LEFT_ARB = 0x2085, - WGL_BACK_RIGHT_ARB = 0x2086, - WGL_AUX0_ARB = 0x2087, - WGL_AUX1_ARB = 0x2088, - WGL_AUX2_ARB = 0x2089, - WGL_AUX3_ARB = 0x208A, - WGL_AUX4_ARB = 0x208B, - WGL_AUX5_ARB = 0x208C, - WGL_AUX6_ARB = 0x208D, - WGL_AUX7_ARB = 0x208E, - WGL_AUX8_ARB = 0x208F, - WGL_AUX9_ARB = 0x2090, - - // WGL_ARB_pixel_format_float - WGL_TYPE_RGBA_FLOAT_ARB = 0x21A0, - - // WGL_ARB_create_context - WGL_CONTEXT_DEBUG_BIT_ARB = 0x0001, - WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = 0x0002, - WGL_CONTEXT_MAJOR_VERSION_ARB = 0x2091, - WGL_CONTEXT_MINOR_VERSION_ARB = 0x2092, - WGL_CONTEXT_LAYER_PLANE_ARB = 0x2093, - WGL_CONTEXT_FLAGS_ARB = 0x2094, - ERROR_INVALID_VERSION_ARB = 0x2095, - - // WGL_ARB_create_context_profile - WGL_CONTEXT_CORE_PROFILE_BIT_ARB = 0x00000001, - WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = 0x00000002, - WGL_CONTEXT_PROFILE_MASK_ARB = 0x9126, - - // WGL_ARB_framebuffer_sRGB - WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB = 0x20A9, - } - } - - version(DerelictGL_EXT) - { - enum : GLenum - { - // WGL_EXT_depth_float - WGL_DEPTH_FLOAT_EXT = 0x2040, - - // WGL_EXT_framebuffer_sRGB - WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x20A9, - - // WGL_EXT_make_current_read - ERROR_INVALID_PIXEL_TYPE_EXT = 0x2043, - - // WGL_EXT_multisample - WGL_SAMPLE_BUFFERS_EXT = 0x2041, - WGL_SAMPLES_EXT = 0x2042, - - // WGL_EXT_pbuffer - WGL_DRAW_TO_PBUFFER_EXT = 0x202D, - WGL_MAX_PBUFFER_PIXELS_EXT = 0x202E, - WGL_MAX_PBUFFER_WIDTH_EXT = 0x202F, - WGL_MAX_PBUFFER_HEIGHT_EXT = 0x2030, - WGL_OPTIMAL_PBUFFER_WIDTH_EXT = 0x2031, - WGL_OPTIMAL_PBUFFER_HEIGHT_EXT = 0x2032, - WGL_PBUFFER_LARGEST_EXT = 0x2033, - WGL_PBUFFER_WIDTH_EXT = 0x2034, - WGL_PBUFFER_HEIGHT_EXT = 0x2035, - - // WGL_EXT_pixel_format - WGL_NUMBER_PIXEL_FORMATS_EXT = 0x2000, - WGL_DRAW_TO_WINDOW_EXT = 0x2001, - WGL_DRAW_TO_BITMAP_EXT = 0x2002, - WGL_ACCELERATION_EXT = 0x2003, - WGL_NEED_PALETTE_EXT = 0x2004, - WGL_NEED_SYSTEM_PALETTE_EXT = 0x2005, - WGL_SWAP_LAYER_BUFFERS_EXT = 0x2006, - WGL_SWAP_METHOD_EXT = 0x2007, - WGL_NUMBER_OVERLAYS_EXT = 0x2008, - WGL_NUMBER_UNDERLAYS_EXT = 0x2009, - WGL_TRANSPARENT_EXT = 0x200A, - WGL_TRANSPARENT_VALUE_EXT = 0x200B, - WGL_SHARE_DEPTH_EXT = 0x200C, - WGL_SHARE_STENCIL_EXT = 0x200D, - WGL_SHARE_ACCUM_EXT = 0x200E, - WGL_SUPPORT_GDI_EXT = 0x200F, - WGL_SUPPORT_OPENGL_EXT = 0x2010, - WGL_DOUBLE_BUFFER_EXT = 0x2011, - WGL_STEREO_EXT = 0x2012, - WGL_PIXEL_TYPE_EXT = 0x2013, - WGL_COLOR_BITS_EXT = 0x2014, - WGL_RED_BITS_EXT = 0x2015, - WGL_RED_SHIFT_EXT = 0x2016, - WGL_GREEN_BITS_EXT = 0x2017, - WGL_GREEN_SHIFT_EXT = 0x2018, - WGL_BLUE_BITS_EXT = 0x2019, - WGL_BLUE_SHIFT_EXT = 0x201A, - WGL_ALPHA_BITS_EXT = 0x201B, - WGL_ALPHA_SHIFT_EXT = 0x201C, - WGL_ACCUM_BITS_EXT = 0x201D, - WGL_ACCUM_RED_BITS_EXT = 0x201E, - WGL_ACCUM_GREEN_BITS_EXT = 0x201F, - WGL_ACCUM_BLUE_BITS_EXT = 0x2020, - WGL_ACCUM_ALPHA_BITS_EXT = 0x2021, - WGL_DEPTH_BITS_EXT = 0x2022, - WGL_STENCIL_BITS_EXT = 0x2023, - WGL_AUX_BUFFERS_EXT = 0x2024, - WGL_NO_ACCELERATION_EXT = 0x2025, - WGL_GENERIC_ACCELERATION_EXT = 0x2026, - WGL_FULL_ACCELERATION_EXT = 0x2027, - WGL_SWAP_EXCHANGE_EXT = 0x2028, - WGL_SWAP_COPY_EXT = 0x2029, - WGL_SWAP_UNDEFINED_EXT = 0x202A, - WGL_TYPE_RGBA_EXT = 0x202B, - WGL_TYPE_COLORINDEX_EXT = 0x202C, - - // WGL_EXT_pixel_format_packed_float - WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT = 0x20A8, - } - } - - version(DerelictGL_NV) - { - enum : GLenum - { - // WGL_NV_float_buffer - WGL_FLOAT_COMPONENTS_NV = 0x20B0, - WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV = 0x20B1, - WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV = 0x20B2, - WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV = 0x20B3, - WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV = 0x20B4, - WGL_TEXTURE_FLOAT_R_NV = 0x20B5, - WGL_TEXTURE_FLOAT_RG_NV = 0x20B6, - WGL_TEXTURE_FLOAT_RGB_NV = 0x20B7, - WGL_TEXTURE_FLOAT_RGBA_NV = 0x20B8, - - // WGL_NV_multisample_coverage - WGL_COVERAGE_SAMPLES_NV = 0x2042, - WGL_COLOR_SAMPLES_NV = 0x20B9, - - // WGL_NV_render_depth_texture - // WGL_NO_TEXTURE_ARB = 0x2077, <-- Declared in WGL_ARB_render_texture - WGL_BIND_TO_TEXTURE_DEPTH_NV = 0x20A3, - WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV = 0x20A4, - WGL_DEPTH_TEXTURE_FORMAT_NV = 0x20A5, - WGL_TEXTURE_DEPTH_COMPONENT_NV = 0x20A6, - WGL_DEPTH_COMPONENT_NV = 0x20A7, - - // WGL_NV_render_texture_rectangle - WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV = 0x20A0, - WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV = 0x20A1, - WGL_TEXTURE_RECTANGLE_NV = 0x20A2, - - // WGL_NV_video_output - WGL_BIND_TO_VIDEO_RGB_NV = 0x20C0, - WGL_BIND_TO_VIDEO_RGBA_NV = 0x20C1, - WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV = 0x20C2, - WGL_VIDEO_OUT_COLOR_NV = 0x20C3, - WGL_VIDEO_OUT_ALPHA_NV = 0x20C4, - WGL_VIDEO_OUT_DEPTH_NV = 0x20C5, - WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV = 0x20C6, - WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV = 0x20C7, - WGL_VIDEO_OUT_FRAME = 0x20C8, - WGL_VIDEO_OUT_FIELD_1 = 0x20C9, - WGL_VIDEO_OUT_FIELD_2 = 0x20CA, - WGL_VIDEO_OUT_STACKED_FIELDS_1_2 = 0x20CB, - WGL_VIDEO_OUT_STACKED_FIELDS_2_1 = 0x20CC, - } - } - - version(DerelictGL_ATI) - { - enum : GLenum - { - // WGL_ATI_pixel_format_float - WGL_TYPE_RGBA_FLOAT_ATI = 0x21A0, - GL_RGBA_FLOAT_MODE_ATI = 0x8820, - //GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = 0x8835, <-- Already declared above. - - // WGL_ATI_render_texture_rectangle - WGL_TEXTURE_RECTANGLE_ATI = 0x21A5, - } - } - - version(DerelictGL_AMD) - { - enum : GLenum - { - // WGL_AMD_gpu_association - WGL_GPU_VENDOR_AMD = 0x1F00, - WGL_GPU_RENDERER_STRING_AMD = 0x1F01, - WGL_GPU_OPENGL_VERSION_STRING_AMD = 0x1F02, - WGL_GPU_FASTEST_TARGET_GPUS_AMD = 0x21A2, - WGL_GPU_RAM_AMD = 0x21A3, - WGL_GPU_CLOCK_AMD = 0x21A4, - WGL_GPU_NUM_PIPES_AMD = 0x21A5, - WGL_GPU_NUM_SIMD_AMD = 0x21A6, - WGL_GPU_NUM_RB_AMD = 0x21A7, - WGL_GPU_NUM_SPI_AMD = 0x21A8, - } - } - - version(DerelictGL_I3D) - { - enum : GLenum - { - // WGL_I3D_digital_video_control - WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D = 0x2050, - WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D = 0x2051, - WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D = 0x2052, - WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D = 0x2053, - - // WGL_I3D_gamma - WGL_GAMMA_TABLE_SIZE_I3D = 0x204E, - WGL_GAMMA_EXCLUDE_DESKTOP_I3D = 0x204F, - - // WGL_I3D_genlock - WGL_GENLOCK_SOURCE_MULTIVIEW_I3D = 0x2044, - WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D = 0x2045, - WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D = 0x2046, - WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D = 0x2047, - WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D = 0x2048, - WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D = 0x2049, - WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D = 0x204A, - WGL_GENLOCK_SOURCE_EDGE_RISING_I3D = 0x204B, - WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D = 0x204C, - - // WGL_I3D_image_buffer - WGL_IMAGE_BUFFER_MIN_ACCESS_I3D = 0x00000001, - WGL_IMAGE_BUFFER_LOCK_I3D = 0x00000002, - } - } - - version(DerelictGL_3DFX) - { - enum : GLenum - { - // WGL_3DFX_multisample - WGL_SAMPLE_BUFFERS_3DFX = 0x2060, - WGL_SAMPLES_3DFX = 0x2061, - } - } - - version(DerelictGL_3DL) - { - enum : GLenum - { - // WGL_3DL_stereo_control - WGL_STEREO_EMITTER_ENABLE_3DL = 0x2055, - WGL_STEREO_EMITTER_DISABLE_3DL = 0x2056, - WGL_STEREO_POLARITY_NORMAL_3DL = 0x2057, - WGL_STEREO_POLARITY_INVERT_3DL = 0x2058, - } - } +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.opengl.exttypes; + +private +{ + import derelict.opengl.gltypes; +} + +version = DerelictGL_ALL; + +version(DerelictGL_ALL) +{ + version = DerelictGL_ARB; + version = DerelictGL_EXT; + version = DerelictGL_NV; + version = DerelictGL_ATI; + version = DerelictGL_AMD; + version = DerelictGL_SGI; + version = DerelictGL_SGIS; + version = DerelictGL_SGIX; + version = DerelictGL_HP; + version = DerelictGL_PGI; + version = DerelictGL_IBM; + version = DerelictGL_WIN; + version = DerelictGL_INTEL; + version = DerelictGL_REND; + version = DerelictGL_APPLE; + version = DerelictGL_SUNX; + version = DerelictGL_SUN; + version = DerelictGL_INGR; + version = DerelictGL_MESA; + version = DerelictGL_3DFX; + version = DerelictGL_OML; + version = DerelictGL_S3; + version = DerelictGL_OES; + version = DerelictGL_GREMEDY; + version = DerelictGL_MESAX; + version = DerelictGL_I3D; + version = DerelictGL_3DL; +} + +version(DerelictGL_ARB) +{ + // from GL_ARB_vertex_buffer_object + alias ptrdiff_t GLintptrARB; + alias ptrdiff_t GLsizeiptrARB; + + // from GL_ARB_shader_objects + alias char GLcharARB; + alias uint GLhandleARB; + + // from GL_ARB_half_float_pixel + alias ushort GLhalfARB; + + // from GL_ARB_cl_event + struct _cl_context; + struct _cl_event; + alias _cl_context* cl_context; + alias _cl_event* cl_event; + + // from GL_ARB_debug_output + alias extern(System) void function(GLenum, GLenum, GLuint, GLenum, GLsizei, in GLchar*, GLvoid*) GLDEBUGPROCARB; + + // from GL_ARB_sync + //alias long GLint64; + alias ulong GLuint64; + struct __GLsync {} + alias __GLsync* GLsync; + + enum : GLenum + { + // GL_ARB_multitexture + GL_TEXTURE0_ARB = 0x84C0, + GL_TEXTURE1_ARB = 0x84C1, + GL_TEXTURE2_ARB = 0x84C2, + GL_TEXTURE3_ARB = 0x84C3, + GL_TEXTURE4_ARB = 0x84C4, + GL_TEXTURE5_ARB = 0x84C5, + GL_TEXTURE6_ARB = 0x84C6, + GL_TEXTURE7_ARB = 0x84C7, + GL_TEXTURE8_ARB = 0x84C8, + GL_TEXTURE9_ARB = 0x84C9, + GL_TEXTURE10_ARB = 0x84CA, + GL_TEXTURE11_ARB = 0x84CB, + GL_TEXTURE12_ARB = 0x84CC, + GL_TEXTURE13_ARB = 0x84CD, + GL_TEXTURE14_ARB = 0x84CE, + GL_TEXTURE15_ARB = 0x84CF, + GL_TEXTURE16_ARB = 0x84D0, + GL_TEXTURE17_ARB = 0x84D1, + GL_TEXTURE18_ARB = 0x84D2, + GL_TEXTURE19_ARB = 0x84D3, + GL_TEXTURE20_ARB = 0x84D4, + GL_TEXTURE21_ARB = 0x84D5, + GL_TEXTURE22_ARB = 0x84D6, + GL_TEXTURE23_ARB = 0x84D7, + GL_TEXTURE24_ARB = 0x84D8, + GL_TEXTURE25_ARB = 0x84D9, + GL_TEXTURE26_ARB = 0x84DA, + GL_TEXTURE27_ARB = 0x84DB, + GL_TEXTURE28_ARB = 0x84DC, + GL_TEXTURE29_ARB = 0x84DD, + GL_TEXTURE30_ARB = 0x84DE, + GL_TEXTURE31_ARB = 0x84DF, + GL_ACTIVE_TEXTURE_ARB = 0x84E0, + GL_CLIENT_ACTIVE_TEXTURE_ARB = 0x84E1, + GL_MAX_TEXTURE_UNITS_ARB = 0x84E2, + + // GL_ARB_transpose_matrix + GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = 0x84E3, + GL_TRANSPOSE_PROJECTION_MATRIX_ARB = 0x84E4, + GL_TRANSPOSE_TEXTURE_MATRIX_ARB = 0x84E5, + GL_TRANSPOSE_COLOR_MATRIX_ARB = 0x84E6, + + // GL_ARB_multisample + GL_MULTISAMPLE_ARB = 0x809D, + GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = 0x809E, + GL_SAMPLE_ALPHA_TO_ONE_ARB = 0x809F, + GL_SAMPLE_COVERAGE_ARB = 0x80A0, + GL_SAMPLE_BUFFERS_ARB = 0x80A8, + GL_SAMPLES_ARB = 0x80A9, + GL_SAMPLE_COVERAGE_VALUE_ARB = 0x80AA, + GL_SAMPLE_COVERAGE_INVERT_ARB = 0x80AB, + GL_MULTISAMPLE_BIT_ARB = 0x20000000, + + // GL_ARB_texture_cube_map + GL_NORMAL_MAP_ARB = 0x8511, + GL_REFLECTION_MAP_ARB = 0x8512, + GL_TEXTURE_CUBE_MAP_ARB = 0x8513, + GL_TEXTURE_BINDING_CUBE_MAP_ARB = 0x8514, + GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = 0x8515, + GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = 0x8516, + GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = 0x8517, + GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = 0x8518, + GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = 0x8519, + GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = 0x851A, + GL_PROXY_TEXTURE_CUBE_MAP_ARB = 0x851B, + GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 0x851C, + + // GL_ARB_texture_compression + GL_COMPRESSED_ALPHA_ARB = 0x84E9, + GL_COMPRESSED_LUMINANCE_ARB = 0x84EA, + GL_COMPRESSED_LUMINANCE_ALPHA_ARB = 0x84EB, + GL_COMPRESSED_INTENSITY_ARB = 0x84EC, + GL_COMPRESSED_RGB_ARB = 0x84ED, + GL_COMPRESSED_RGBA_ARB = 0x84EE, + GL_TEXTURE_COMPRESSION_HINT_ARB = 0x84EF, + GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = 0x86A0, + GL_TEXTURE_COMPRESSED_ARB = 0x86A1, + GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A2, + GL_COMPRESSED_TEXTURE_FORMATS_ARB = 0x86A3, + + // GL_ARB_texture_border_clamp + GL_CLAMP_TO_BORDER_ARB = 0x812D, + + // GL_ARB_point_parameters + GL_POINT_SIZE_MIN_ARB = 0x8126, + GL_POINT_SIZE_MAX_ARB = 0x8127, + GL_POINT_FADE_THRESHOLD_SIZE_ARB = 0x8128, + GL_POINT_DISTANCE_ATTENUATION_ARB = 0x8129, + + // GL_ARB_vertex_blend + GL_MAX_VERTEX_UNITS_ARB = 0x86A4, + GL_ACTIVE_VERTEX_UNITS_ARB = 0x86A5, + GL_WEIGHT_SUM_UNITY_ARB = 0x86A6, + GL_VERTEX_BLEND_ARB = 0x86A7, + GL_CURRENT_WEIGHT_ARB = 0x86A8, + GL_WEIGHT_ARRAY_TYPE_ARB = 0x86A9, + GL_WEIGHT_ARRAY_STRIDE_ARB = 0x86AA, + GL_WEIGHT_ARRAY_SIZE_ARB = 0x86AB, + GL_WEIGHT_ARRAY_POINTER_ARB = 0x86AC, + GL_WEIGHT_ARRAY_ARB = 0x86AD, + GL_MODELVIEW0_ARB = 0x1700, + GL_MODELVIEW1_ARB = 0x850A, + GL_MODELVIEW2_ARB = 0x8722, + GL_MODELVIEW3_ARB = 0x8723, + GL_MODELVIEW4_ARB = 0x8724, + GL_MODELVIEW5_ARB = 0x8725, + GL_MODELVIEW6_ARB = 0x8726, + GL_MODELVIEW7_ARB = 0x8727, + GL_MODELVIEW8_ARB = 0x8728, + GL_MODELVIEW9_ARB = 0x8729, + GL_MODELVIEW10_ARB = 0x872A, + GL_MODELVIEW11_ARB = 0x872B, + GL_MODELVIEW12_ARB = 0x872C, + GL_MODELVIEW13_ARB = 0x872D, + GL_MODELVIEW14_ARB = 0x872E, + GL_MODELVIEW15_ARB = 0x872F, + GL_MODELVIEW16_ARB = 0x8730, + GL_MODELVIEW17_ARB = 0x8731, + GL_MODELVIEW18_ARB = 0x8732, + GL_MODELVIEW19_ARB = 0x8733, + GL_MODELVIEW20_ARB = 0x8734, + GL_MODELVIEW21_ARB = 0x8735, + GL_MODELVIEW22_ARB = 0x8736, + GL_MODELVIEW23_ARB = 0x8737, + GL_MODELVIEW24_ARB = 0x8738, + GL_MODELVIEW25_ARB = 0x8739, + GL_MODELVIEW26_ARB = 0x873A, + GL_MODELVIEW27_ARB = 0x873B, + GL_MODELVIEW28_ARB = 0x873C, + GL_MODELVIEW29_ARB = 0x873D, + GL_MODELVIEW30_ARB = 0x873E, + GL_MODELVIEW31_ARB = 0x873F, + + // GL_ARB_matrix_palette + GL_MATRIX_PALETTE_ARB = 0x8840, + GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = 0x8841, + GL_MAX_PALETTE_MATRICES_ARB = 0x8842, + GL_CURRENT_PALETTE_MATRIX_ARB = 0x8843, + GL_MATRIX_INDEX_ARRAY_ARB = 0x8844, + GL_CURRENT_MATRIX_INDEX_ARB = 0x8845, + GL_MATRIX_INDEX_ARRAY_SIZE_ARB = 0x8846, + GL_MATRIX_INDEX_ARRAY_TYPE_ARB = 0x8847, + GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = 0x8848, + GL_MATRIX_INDEX_ARRAY_POINTER_ARB = 0x8849, + + // GL_ARB_texture_env_combine + GL_COMBINE_ARB = 0x8570, + GL_COMBINE_RGB_ARB = 0x8571, + GL_COMBINE_ALPHA_ARB = 0x8572, + GL_SOURCE0_RGB_ARB = 0x8580, + GL_SOURCE1_RGB_ARB = 0x8581, + GL_SOURCE2_RGB_ARB = 0x8582, + GL_SOURCE0_ALPHA_ARB = 0x8588, + GL_SOURCE1_ALPHA_ARB = 0x8589, + GL_SOURCE2_ALPHA_ARB = 0x858A, + GL_OPERAND0_RGB_ARB = 0x8590, + GL_OPERAND1_RGB_ARB = 0x8591, + GL_OPERAND2_RGB_ARB = 0x8592, + GL_OPERAND0_ALPHA_ARB = 0x8598, + GL_OPERAND1_ALPHA_ARB = 0x8599, + GL_OPERAND2_ALPHA_ARB = 0x859A, + GL_RGB_SCALE_ARB = 0x8573, + GL_ADD_SIGNED_ARB = 0x8574, + GL_INTERPOLATE_ARB = 0x8575, + GL_SUBTRACT_ARB = 0x84E7, + GL_CONSTANT_ARB = 0x8576, + GL_PRIMARY_COLOR_ARB = 0x8577, + GL_PREVIOUS_ARB = 0x8578, + + // GL_ARB_texture_env_dot3 + GL_DOT3_RGB_ARB = 0x86AE, + GL_DOT3_RGBA_ARB = 0x86AF, + + // GL_ARB_texture_mirrored_repeat + GL_MIRRORED_REPEAT_ARB = 0x8370, + + // GL_ARB_depth_texture + GL_DEPTH_COMPONENT16_ARB = 0x81A5, + GL_DEPTH_COMPONENT24_ARB = 0x81A6, + GL_DEPTH_COMPONENT32_ARB = 0x81A7, + GL_TEXTURE_DEPTH_SIZE_ARB = 0x884A, + GL_DEPTH_TEXTURE_MODE_ARB = 0x884B, + + // GL_ARB_shadow + GL_TEXTURE_COMPARE_MODE_ARB = 0x884C, + GL_TEXTURE_COMPARE_FUNC_ARB = 0x884D, + GL_COMPARE_R_TO_TEXTURE_ARB = 0x884E, + + // GL_ARB_shadow_ambient + GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = 0x80BF, + + // GL_ARB_vertex_program + GL_COLOR_SUM_ARB = 0x8458, + GL_VERTEX_PROGRAM_ARB = 0x8620, + GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = 0x8622, + GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = 0x8623, + GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = 0x8624, + GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = 0x8625, + GL_CURRENT_VERTEX_ATTRIB_ARB = 0x8626, + GL_PROGRAM_LENGTH_ARB = 0x8627, + GL_PROGRAM_STRING_ARB = 0x8628, + GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = 0x862E, + GL_MAX_PROGRAM_MATRICES_ARB = 0x862F, + GL_CURRENT_MATRIX_STACK_DEPTH_ARB = 0x8640, + GL_CURRENT_MATRIX_ARB = 0x8641, + GL_VERTEX_PROGRAM_POINT_SIZE_ARB = 0x8642, + GL_VERTEX_PROGRAM_TWO_SIDE_ARB = 0x8643, + GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = 0x8645, + GL_PROGRAM_ERROR_POSITION_ARB = 0x864B, + GL_PROGRAM_BINDING_ARB = 0x8677, + GL_MAX_VERTEX_ATTRIBS_ARB = 0x8869, + GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = 0x886A, + GL_PROGRAM_ERROR_STRING_ARB = 0x8874, + GL_PROGRAM_FORMAT_ASCII_ARB = 0x8875, + GL_PROGRAM_FORMAT_ARB = 0x8876, + GL_PROGRAM_INSTRUCTIONS_ARB = 0x88A0, + GL_MAX_PROGRAM_INSTRUCTIONS_ARB = 0x88A1, + GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A2, + GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 0x88A3, + GL_PROGRAM_TEMPORARIES_ARB = 0x88A4, + GL_MAX_PROGRAM_TEMPORARIES_ARB = 0x88A5, + GL_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A6, + GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 0x88A7, + GL_PROGRAM_PARAMETERS_ARB = 0x88A8, + GL_MAX_PROGRAM_PARAMETERS_ARB = 0x88A9, + GL_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AA, + GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 0x88AB, + GL_PROGRAM_ATTRIBS_ARB = 0x88AC, + GL_MAX_PROGRAM_ATTRIBS_ARB = 0x88AD, + GL_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AE, + GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 0x88AF, + GL_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B0, + GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = 0x88B1, + GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B2, + GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 0x88B3, + GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 0x88B4, + GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = 0x88B5, + GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = 0x88B6, + GL_TRANSPOSE_CURRENT_MATRIX_ARB = 0x88B7, + GL_MATRIX0_ARB = 0x88C0, + GL_MATRIX1_ARB = 0x88C1, + GL_MATRIX2_ARB = 0x88C2, + GL_MATRIX3_ARB = 0x88C3, + GL_MATRIX4_ARB = 0x88C4, + GL_MATRIX5_ARB = 0x88C5, + GL_MATRIX6_ARB = 0x88C6, + GL_MATRIX7_ARB = 0x88C7, + GL_MATRIX8_ARB = 0x88C8, + GL_MATRIX9_ARB = 0x88C9, + GL_MATRIX10_ARB = 0x88CA, + GL_MATRIX11_ARB = 0x88CB, + GL_MATRIX12_ARB = 0x88CC, + GL_MATRIX13_ARB = 0x88CD, + GL_MATRIX14_ARB = 0x88CE, + GL_MATRIX15_ARB = 0x88CF, + GL_MATRIX16_ARB = 0x88D0, + GL_MATRIX17_ARB = 0x88D1, + GL_MATRIX18_ARB = 0x88D2, + GL_MATRIX19_ARB = 0x88D3, + GL_MATRIX20_ARB = 0x88D4, + GL_MATRIX21_ARB = 0x88D5, + GL_MATRIX22_ARB = 0x88D6, + GL_MATRIX23_ARB = 0x88D7, + GL_MATRIX24_ARB = 0x88D8, + GL_MATRIX25_ARB = 0x88D9, + GL_MATRIX26_ARB = 0x88DA, + GL_MATRIX27_ARB = 0x88DB, + GL_MATRIX28_ARB = 0x88DC, + GL_MATRIX29_ARB = 0x88DD, + GL_MATRIX30_ARB = 0x88DE, + GL_MATRIX31_ARB = 0x88DF, + + // GL_ARB_fragment_program + GL_FRAGMENT_PROGRAM_ARB = 0x8804, + GL_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x8805, + GL_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x8806, + GL_PROGRAM_TEX_INDIRECTIONS_ARB = 0x8807, + GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x8808, + GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x8809, + GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x880A, + GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = 0x880B, + GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = 0x880C, + GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = 0x880D, + GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 0x880E, + GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 0x880F, + GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 0x8810, + GL_MAX_TEXTURE_COORDS_ARB = 0x8871, + GL_MAX_TEXTURE_IMAGE_UNITS_ARB = 0x8872, + + // GL_ARB_vertex_buffer_object + GL_BUFFER_SIZE_ARB = 0x8764, + GL_BUFFER_USAGE_ARB = 0x8765, + GL_ARRAY_BUFFER_ARB = 0x8892, + GL_ELEMENT_ARRAY_BUFFER_ARB = 0x8893, + GL_ARRAY_BUFFER_BINDING_ARB = 0x8894, + GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = 0x8895, + GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = 0x8896, + GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = 0x8897, + GL_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x8898, + GL_INDEX_ARRAY_BUFFER_BINDING_ARB = 0x8899, + GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = 0x889A, + GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = 0x889B, + GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = 0x889C, + GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = 0x889D, + GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = 0x889E, + GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = 0x889F, + GL_READ_ONLY_ARB = 0x88B8, + GL_WRITE_ONLY_ARB = 0x88B9, + GL_READ_WRITE_ARB = 0x88BA, + GL_BUFFER_ACCESS_ARB = 0x88BB, + GL_BUFFER_MAPPED_ARB = 0x88BC, + GL_BUFFER_MAP_POINTER_ARB = 0x88BD, + GL_STREAM_DRAW_ARB = 0x88E0, + GL_STREAM_READ_ARB = 0x88E1, + GL_STREAM_COPY_ARB = 0x88E2, + GL_STATIC_DRAW_ARB = 0x88E4, + GL_STATIC_READ_ARB = 0x88E5, + GL_STATIC_COPY_ARB = 0x88E6, + GL_DYNAMIC_DRAW_ARB = 0x88E8, + GL_DYNAMIC_READ_ARB = 0x88E9, + GL_DYNAMIC_COPY_ARB = 0x88EA, + + // GL_ARB_occlusion_query + GL_QUERY_COUNTER_BITS_ARB = 0x8864, + GL_CURRENT_QUERY_ARB = 0x8865, + GL_QUERY_RESULT_ARB = 0x8866, + GL_QUERY_RESULT_AVAILABLE_ARB = 0x8867, + GL_SAMPLES_PASSED_ARB = 0x8914, + + // GL_ARB_shader_objects + GL_PROGRAM_OBJECT_ARB = 0x8B40, + GL_SHADER_OBJECT_ARB = 0x8B48, + GL_OBJECT_TYPE_ARB = 0x8B4E, + GL_OBJECT_SUBTYPE_ARB = 0x8B4F, + GL_FLOAT_VEC2_ARB = 0x8B50, + GL_FLOAT_VEC3_ARB = 0x8B51, + GL_FLOAT_VEC4_ARB = 0x8B52, + GL_INT_VEC2_ARB = 0x8B53, + GL_INT_VEC3_ARB = 0x8B54, + GL_INT_VEC4_ARB = 0x8B55, + GL_BOOL_ARB = 0x8B56, + GL_BOOL_VEC2_ARB = 0x8B57, + GL_BOOL_VEC3_ARB = 0x8B58, + GL_BOOL_VEC4_ARB = 0x8B59, + GL_FLOAT_MAT2_ARB = 0x8B5A, + GL_FLOAT_MAT3_ARB = 0x8B5B, + GL_FLOAT_MAT4_ARB = 0x8B5C, + GL_SAMPLER_1D_ARB = 0x8B5D, + GL_SAMPLER_2D_ARB = 0x8B5E, + GL_SAMPLER_3D_ARB = 0x8B5F, + GL_SAMPLER_CUBE_ARB = 0x8B60, + GL_SAMPLER_1D_SHADOW_ARB = 0x8B61, + GL_SAMPLER_2D_SHADOW_ARB = 0x8B62, + GL_SAMPLER_2D_RECT_ARB = 0x8B63, + GL_SAMPLER_2D_RECT_SHADOW_ARB = 0x8B64, + GL_OBJECT_DELETE_STATUS_ARB = 0x8B80, + GL_OBJECT_COMPILE_STATUS_ARB = 0x8B81, + GL_OBJECT_LINK_STATUS_ARB = 0x8B82, + GL_OBJECT_VALIDATE_STATUS_ARB = 0x8B83, + GL_OBJECT_INFO_LOG_LENGTH_ARB = 0x8B84, + GL_OBJECT_ATTACHED_OBJECTS_ARB = 0x8B85, + GL_OBJECT_ACTIVE_UNIFORMS_ARB = 0x8B86, + GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = 0x8B87, + GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = 0x8B88, + + // GL_ARB_vertex_shader + GL_VERTEX_SHADER_ARB = 0x8B31, + GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = 0x8B4A, + GL_MAX_VARYING_FLOATS_ARB = 0x8B4B, + GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = 0x8B4C, + GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = 0x8B4D, + GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = 0x8B89, + GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = 0x8B8A, + + // GL_ARB_fragment_shader + GL_FRAGMENT_SHADER_ARB = 0x8B30, + GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = 0x8B49, + GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB = 0x8B8B, + + // GL_ARB_shading_language_100 + GL_SHADING_LANGUAGE_VERSION_ARB = 0x8B8C, + + // GL_ARB_point_sprite + GL_POINT_SPRITE_ARB = 0x8861, + GL_COORD_REPLACE_ARB = 0x8862, + + // GL_ARB_draw_buffers + GL_MAX_DRAW_BUFFERS_ARB = 0x8824, + GL_DRAW_BUFFER0_ARB = 0x8825, + GL_DRAW_BUFFER1_ARB = 0x8826, + GL_DRAW_BUFFER2_ARB = 0x8827, + GL_DRAW_BUFFER3_ARB = 0x8828, + GL_DRAW_BUFFER4_ARB = 0x8829, + GL_DRAW_BUFFER5_ARB = 0x882A, + GL_DRAW_BUFFER6_ARB = 0x882B, + GL_DRAW_BUFFER7_ARB = 0x882C, + GL_DRAW_BUFFER8_ARB = 0x882D, + GL_DRAW_BUFFER9_ARB = 0x882E, + GL_DRAW_BUFFER10_ARB = 0x882F, + GL_DRAW_BUFFER11_ARB = 0x8830, + GL_DRAW_BUFFER12_ARB = 0x8831, + GL_DRAW_BUFFER13_ARB = 0x8832, + GL_DRAW_BUFFER14_ARB = 0x8833, + GL_DRAW_BUFFER15_ARB = 0x8834, + + // GL_ARB_texture_rectangle + GL_TEXTURE_RECTANGLE_ARB = 0x84F5, + GL_TEXTURE_BINDING_RECTANGLE_ARB = 0x84F6, + GL_PROXY_TEXTURE_RECTANGLE_ARB = 0x84F7, + GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = 0x84F8, + + // GL_ARB_color_buffer_float + GL_RGBA_FLOAT_MODE_ARB = 0x8820, + GL_CLAMP_VERTEX_COLOR_ARB = 0x891A, + GL_CLAMP_FRAGMENT_COLOR_ARB = 0x891B, + GL_CLAMP_READ_COLOR_ARB = 0x891C, + GL_FIXED_ONLY_COLOR_ARB = 0x891D, + + // GL_ARB_half_float_pixel + GL_HALF_FLOAT_ARB = 0x140B, + + // GL_ARB_texture_float + GL_TEXTURE_RED_TYPE_ARB = 0x8C10, + GL_TEXTURE_GREEN_TYPE_ARB = 0x8C11, + GL_TEXTURE_BLUE_TYPE_ARB = 0x8C12, + GL_TEXTURE_ALPHA_TYPE_ARB = 0x8C13, + GL_TEXTURE_LUMINANCE_TYPE_ARB = 0x8C14, + GL_TEXTURE_INTENSITY_TYPE_ARB = 0x8C15, + GL_TEXTURE_DEPTH_TYPE_ARB = 0x8C16, + GL_UNSIGNED_NORMALIZED_ARB = 0x8C17, + GL_RGBA32F_ARB = 0x8814, + GL_RGB32F_ARB = 0x8815, + GL_ALPHA32F_ARB = 0x8816, + GL_INTENSITY32F_ARB = 0x8817, + GL_LUMINANCE32F_ARB = 0x8818, + GL_LUMINANCE_ALPHA32F_ARB = 0x8819, + GL_RGBA16F_ARB = 0x881A, + GL_RGB16F_ARB = 0x881B, + GL_ALPHA16F_ARB = 0x881C, + GL_INTENSITY16F_ARB = 0x881D, + GL_LUMINANCE16F_ARB = 0x881E, + GL_LUMINANCE_ALPHA16F_ARB = 0x881F, + + // GL_ARB_pixel_buffer_object + GL_PIXEL_PACK_BUFFER_ARB = 0x88EB, + GL_PIXEL_UNPACK_BUFFER_ARB = 0x88EC, + GL_PIXEL_PACK_BUFFER_BINDING_ARB = 0x88ED, + GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = 0x88EF, + + // GL_ARB_depth_buffer_float + GL_DEPTH_COMPONENT32F = 0x8CAC, + GL_DEPTH32F_STENCIL8 = 0x8CAD, + GL_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD, + + // GL_ARB_framebuffer_object + GL_INVALID_FRAMEBUFFER_OPERATION = 0x0506, + GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210, + GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211, + GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212, + GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213, + GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214, + GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215, + GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216, + GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217, + GL_FRAMEBUFFER_DEFAULT = 0x8218, + GL_FRAMEBUFFER_UNDEFINED = 0x8219, + GL_DEPTH_STENCIL_ATTACHMENT = 0x821A, + GL_INDEX = 0x8222, + GL_MAX_RENDERBUFFER_SIZE = 0x84E8, + GL_DEPTH_STENCIL = 0x84F9, + GL_UNSIGNED_INT_24_8 = 0x84FA, + GL_DEPTH24_STENCIL8 = 0x88F0, + GL_TEXTURE_STENCIL_SIZE = 0x88F1, + GL_UNSIGNED_NORMALIZED = 0x8C17, + GL_SRGB = 0x8C40, + GL_DRAW_FRAMEBUFFER_BINDING = 0x8CA6, + GL_FRAMEBUFFER_BINDING = 0x8CA6, + GL_RENDERBUFFER_BINDING = 0x8CA7, + GL_READ_FRAMEBUFFER = 0x8CA8, + GL_DRAW_FRAMEBUFFER = 0x8CA9, + GL_READ_FRAMEBUFFER_BINDING = 0x8CAA, + GL_RENDERBUFFER_SAMPLES = 0x8CAB, + GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0, + GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4, + GL_FRAMEBUFFER_COMPLETE = 0x8CD5, + GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6, + GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7, + GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB, + GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC, + GL_FRAMEBUFFER_UNSUPPORTED = 0x8CDD, + GL_MAX_COLOR_ATTACHMENTS = 0x8CDF, + GL_COLOR_ATTACHMENT0 = 0x8CE0, + GL_COLOR_ATTACHMENT1 = 0x8CE1, + GL_COLOR_ATTACHMENT2 = 0x8CE2, + GL_COLOR_ATTACHMENT3 = 0x8CE3, + GL_COLOR_ATTACHMENT4 = 0x8CE4, + GL_COLOR_ATTACHMENT5 = 0x8CE5, + GL_COLOR_ATTACHMENT6 = 0x8CE6, + GL_COLOR_ATTACHMENT7 = 0x8CE7, + GL_COLOR_ATTACHMENT8 = 0x8CE8, + GL_COLOR_ATTACHMENT9 = 0x8CE9, + GL_COLOR_ATTACHMENT10 = 0x8CEA, + GL_COLOR_ATTACHMENT11 = 0x8CEB, + GL_COLOR_ATTACHMENT12 = 0x8CEC, + GL_COLOR_ATTACHMENT13 = 0x8CED, + GL_COLOR_ATTACHMENT14 = 0x8CEE, + GL_COLOR_ATTACHMENT15 = 0x8CEF, + GL_DEPTH_ATTACHMENT = 0x8D00, + GL_STENCIL_ATTACHMENT = 0x8D20, + GL_FRAMEBUFFER = 0x8D40, + GL_RENDERBUFFER = 0x8D41, + GL_RENDERBUFFER_WIDTH = 0x8D42, + GL_RENDERBUFFER_HEIGHT = 0x8D43, + GL_RENDERBUFFER_INTERNAL_FORMAT = 0x8D44, + GL_STENCIL_INDEX1 = 0x8D46, + GL_STENCIL_INDEX4 = 0x8D47, + GL_STENCIL_INDEX8 = 0x8D48, + GL_STENCIL_INDEX16 = 0x8D49, + GL_RENDERBUFFER_RED_SIZE = 0x8D50, + GL_RENDERBUFFER_GREEN_SIZE = 0x8D51, + GL_RENDERBUFFER_BLUE_SIZE = 0x8D52, + GL_RENDERBUFFER_ALPHA_SIZE = 0x8D53, + GL_RENDERBUFFER_DEPTH_SIZE = 0x8D54, + GL_RENDERBUFFER_STENCIL_SIZE = 0x8D55, + GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56, + GL_MAX_SAMPLES = 0x8D57, + + // GL_ARB_framebuffer_sRGB + GL_FRAMEBUFFER_SRGB = 0x8DB9, + + // GL_ARB_geometry_shader4 + GL_LINES_ADJACENCY_ARB = 0xA, + GL_LINE_STRIP_ADJACENCY_ARB = 0xB, + GL_TRIANGLES_ADJACENCY_ARB = 0xC, + GL_TRIANGLE_STRIP_ADJACENCY_ARB = 0xD, + GL_PROGRAM_POINT_SIZE_ARB = 0x8642, + GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB = 0x8C29, + GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB = 0x8DA7, + GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB = 0x8DA8, + GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB = 0x8DA9, + GL_GEOMETRY_SHADER_ARB = 0x8DD9, + GL_GEOMETRY_VERTICES_OUT_ARB = 0x8DDA, + GL_GEOMETRY_INPUT_TYPE_ARB = 0x8DDB, + GL_GEOMETRY_OUTPUT_TYPE_ARB = 0x8DDC, + GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB = 0x8DDD, + GL_MAX_VERTEX_VARYING_COMPONENTS_ARB = 0x8DDE, + GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB = 0x8DDF, + GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB = 0x8DE0, + GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB = 0x8DE1, + + // GL_ARB_half_float_vertex + GL_HALF_FLOAT = 0x140B, + + // GL_ARB_imaging + GL_CONVOLUTION_1D = 0x8010, + GL_CONVOLUTION_2D = 0x8011, + GL_SEPARABLE_2D = 0x8012, + GL_CONVOLUTION_BORDER_MODE = 0x8013, + GL_CONVOLUTION_FILTER_SCALE = 0x8014, + GL_CONVOLUTION_FILTER_BIAS = 0x8015, + GL_REDUCE = 0x8016, + GL_CONVOLUTION_FORMAT = 0x8017, + GL_CONVOLUTION_WIDTH = 0x8018, + GL_CONVOLUTION_HEIGHT = 0x8019, + GL_MAX_CONVOLUTION_WIDTH = 0x801A, + GL_MAX_CONVOLUTION_HEIGHT = 0x801B, + GL_POST_CONVOLUTION_RED_SCALE = 0x801C, + GL_POST_CONVOLUTION_GREEN_SCALE = 0x801D, + GL_POST_CONVOLUTION_BLUE_SCALE = 0x801E, + GL_POST_CONVOLUTION_ALPHA_SCALE = 0x801F, + GL_POST_CONVOLUTION_RED_BIAS = 0x8020, + GL_POST_CONVOLUTION_GREEN_BIAS = 0x8021, + GL_POST_CONVOLUTION_BLUE_BIAS = 0x8022, + GL_POST_CONVOLUTION_ALPHA_BIAS = 0x8023, + GL_HISTOGRAM = 0x8024, + GL_PROXY_HISTOGRAM = 0x8025, + GL_HISTOGRAM_WIDTH = 0x8026, + GL_HISTOGRAM_FORMAT = 0x8027, + GL_HISTOGRAM_RED_SIZE = 0x8028, + GL_HISTOGRAM_GREEN_SIZE = 0x8029, + GL_HISTOGRAM_BLUE_SIZE = 0x802A, + GL_HISTOGRAM_ALPHA_SIZE = 0x802B, + GL_HISTOGRAM_LUMINANCE_SIZE = 0x802C, + GL_HISTOGRAM_SINK = 0x802D, + GL_MINMAX = 0x802E, + GL_MINMAX_FORMAT = 0x802F, + GL_MINMAX_SINK = 0x8030, + GL_TABLE_TOO_LARGE = 0x8031, + GL_COLOR_MATRIX = 0x80B1, + GL_COLOR_MATRIX_STACK_DEPTH = 0x80B2, + GL_MAX_COLOR_MATRIX_STACK_DEPTH = 0x80B3, + GL_POST_COLOR_MATRIX_RED_SCALE = 0x80B4, + GL_POST_COLOR_MATRIX_GREEN_SCALE = 0x80B5, + GL_POST_COLOR_MATRIX_BLUE_SCALE = 0x80B6, + GL_POST_COLOR_MATRIX_ALPHA_SCALE = 0x80B7, + GL_POST_COLOR_MATRIX_RED_BIAS = 0x80B8, + GL_POST_COLOR_MATRIX_GREEN_BIAS = 0x80B9, + GL_POST_COLOR_MATRIX_BLUE_BIAS = 0x80BA, + GL_POST_COLOR_MATRIX_ALPHA_BIAS = 0x80BB, + GL_COLOR_TABLE = 0x80D0, + GL_POST_CONVOLUTION_COLOR_TABLE = 0x80D1, + GL_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D2, + GL_PROXY_COLOR_TABLE = 0x80D3, + GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = 0x80D4, + GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = 0x80D5, + GL_COLOR_TABLE_SCALE = 0x80D6, + GL_COLOR_TABLE_BIAS = 0x80D7, + GL_COLOR_TABLE_FORMAT = 0x80D8, + GL_COLOR_TABLE_WIDTH = 0x80D9, + GL_COLOR_TABLE_RED_SIZE = 0x80DA, + GL_COLOR_TABLE_GREEN_SIZE = 0x80DB, + GL_COLOR_TABLE_BLUE_SIZE = 0x80DC, + GL_COLOR_TABLE_ALPHA_SIZE = 0x80DD, + GL_COLOR_TABLE_LUMINANCE_SIZE = 0x80DE, + GL_COLOR_TABLE_INTENSITY_SIZE = 0x80DF, + GL_IGNORE_BORDER = 0x8150, + GL_CONSTANT_BORDER = 0x8151, + GL_WRAP_BORDER = 0x8152, + GL_REPLICATE_BORDER = 0x8153, + GL_CONVOLUTION_BORDER_COLOR = 0x8154, + + // GL_ARB_instanced_arrays + GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB = 0x88FE, + + // GL_ARB_map_buffer_range + GL_MAP_READ_BIT = 0x0001, + GL_MAP_WRITE_BIT = 0x0002, + GL_MAP_INVALIDATE_RANGE_BIT = 0x0004, + GL_MAP_INVALIDATE_BUFFER_BIT = 0x0008, + GL_MAP_FLUSH_EXPLICIT_BIT = 0x0010, + GL_MAP_UNSYNCHRONIZED_BIT = 0x0020, + + // GL_ARB_texture_buffer_object + GL_TEXTURE_BUFFER_ARB = 0x8C2A, + GL_MAX_TEXTURE_BUFFER_SIZE_ARB = 0x8C2B, + GL_TEXTURE_BINDING_BUFFER_ARB = 0x8C2C, + GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB = 0x8C2D, + GL_TEXTURE_BUFFER_FORMAT_ARB = 0x8C2E, + + // GL_ARB_texture_compression_rgtc + GL_COMPRESSED_RED_RGTC1 = 0x8DBB, + GL_COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC, + GL_COMPRESSED_RG_RGTC2 = 0x8DBD, + GL_COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE, + + // GL_ARB_texture_rg + GL_RG = 0x8227, + GL_RG_INTEGER = 0x8228, + GL_R8 = 0x8229, + GL_R16 = 0x822A, + GL_RG8 = 0x822B, + GL_RG16 = 0x822C, + GL_R16F = 0x822D, + GL_R32F = 0x822E, + GL_RG16F = 0x822F, + GL_RG32F = 0x8230, + GL_R8I = 0x8231, + GL_R8UI = 0x8232, + GL_R16I = 0x8233, + GL_R16UI = 0x8234, + GL_R32I = 0x8235, + GL_R32UI = 0x8236, + GL_RG8I = 0x8237, + GL_RG8UI = 0x8238, + GL_RG16I = 0x8239, + GL_RG16UI = 0x823A, + GL_RG32I = 0x823B, + GL_RG32UI = 0x823C, + + // GL_ARB_vertex_array_object + GL_VERTEX_ARRAY_BINDING = 0x85B5, + + // GL_ARB_copy_buffer + GL_COPY_READ_BUFFER = 0x8F36, + GL_COPY_WRITE_BUFFER = 0x8F37, + + // GL_ARB_uniform_buffer_object + GL_UNIFORM_BUFFER = 0x8A11, + GL_UNIFORM_BUFFER_BINDING = 0x8A28, + GL_UNIFORM_BUFFER_START = 0x8A29, + GL_UNIFORM_BUFFER_SIZE = 0x8A2A, + GL_MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B, + GL_MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C, + GL_MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D, + GL_MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E, + GL_MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F, + GL_MAX_UNIFORM_BLOCK_SIZE = 0x8A30, + GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31, + GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32, + GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33, + GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34, + GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35, + GL_ACTIVE_UNIFORM_BLOCKS = 0x8A36, + GL_UNIFORM_TYPE = 0x8A37, + GL_UNIFORM_SIZE = 0x8A38, + GL_UNIFORM_NAME_LENGTH = 0x8A39, + GL_UNIFORM_BLOCK_INDEX = 0x8A3A, + GL_UNIFORM_OFFSET = 0x8A3B, + GL_UNIFORM_ARRAY_STRIDE = 0x8A3C, + GL_UNIFORM_MATRIX_STRIDE = 0x8A3D, + GL_UNIFORM_IS_ROW_MAJOR = 0x8A3E, + GL_UNIFORM_BLOCK_BINDING = 0x8A3F, + GL_UNIFORM_BLOCK_DATA_SIZE = 0x8A40, + GL_UNIFORM_BLOCK_NAME_LENGTH = 0x8A41, + GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42, + GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43, + GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44, + GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45, + GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46, + GL_INVALID_INDEX = 0xFFFFFFFFu, + + // GL_ARB_vertex_attrib_64bit + GL_DOUBLE_MAT2 = 0x8F46, + GL_DOUBLE_MAT3 = 0x8F47, + GL_DOUBLE_MAT4 = 0x8F48, + GL_DOUBLE_VEC2 = 0x8FFC, + GL_DOUBLE_VEC3 = 0x8FFD, + GL_DOUBLE_VEC4 = 0x8FFE, + + // GL_ARB_provoking_vertex + GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C, + GL_FIRST_VERTEX_CONVENTION = 0x8E4D, + GL_LAST_VERTEX_CONVENTION = 0x8E4E, + GL_PROVOKING_VERTEX = 0x8E4F, + + // GL_ARB_sync + GL_MAX_SERVER_WAIT_TIMEOUT = 0x9111, + GL_OBJECT_TYPE = 0x9112, + GL_SYNC_CONDITION = 0x9113, + GL_SYNC_STATUS = 0x9114, + GL_SYNC_FLAGS = 0x9115, + GL_SYNC_FENCE = 0x9116, + GL_SYNC_GPU_COMMANDS_COMPLETE = 0x9117, + GL_UNSIGNALED = 0x9118, + GL_SIGNALED = 0x9119, + GL_ALREADY_SIGNALED = 0x911A, + GL_TIMEOUT_EXPIRED = 0x911B, + GL_CONDITION_SATISFIED = 0x911C, + GL_WAIT_FAILED = 0x911D, + GL_SYNC_FLUSH_COMMANDS_BIT = 0x00000001, + + // GL_ARB_texture_multisample + GL_SAMPLE_POSITION = 0x8E50, + GL_SAMPLE_MASK = 0x8E51, + GL_SAMPLE_MASK_VALUE = 0x8E52, + GL_MAX_SAMPLE_MASK_WORDS = 0x8E59, + GL_TEXTURE_2D_MULTISAMPLE = 0x9100, + GL_PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101, + GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102, + GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103, + GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104, + GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105, + GL_TEXTURE_SAMPLES = 0x9106, + GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107, + GL_SAMPLER_2D_MULTISAMPLE = 0x9108, + GL_INT_SAMPLER_2D_MULTISAMPLE = 0x9109, + GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A, + GL_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B, + GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C, + GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D, + GL_MAX_COLOR_TEXTURE_SAMPLES = 0x910E, + GL_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F, + GL_MAX_INTEGER_SAMPLES = 0x9110, + + // GL_ARB_viewport_array + GL_MAX_VIEWPORTS = 0x825B, + GL_VIEWPORT_SUBPIXEL_BITS = 0x825C, + GL_VIEWPORT_BOUNDS_RANGE = 0x825D, + GL_LAYER_PROVOKING_VERTEX = 0x825E, + GL_VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F, + GL_UNDEFINED_VERTEX = 0x8260, + + // GL_ARB_cl_event + GL_SYNC_CL_EVENT_ARB = 0x8240, + GL_SYNC_CL_EVENT_COMPLETE_ARB = 0x8241, + + // GL_ARB_debug_output + GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB = 0x8242, + GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB = 0x8243, + GL_DEBUG_CALLBACK_FUNCTION_ARB = 0x8244, + GL_DEBUG_CALLBACK_USER_PARAM_ARB = 0x8245, + GL_DEBUG_SOURCE_API_ARB = 0x8246, + GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB = 0x8247, + GL_DEBUG_SOURCE_SHADER_COMPILER_ARB = 0x8248, + GL_DEBUG_SOURCE_THIRD_PARTY_ARB = 0x8249, + GL_DEBUG_SOURCE_APPLICATION_ARB = 0x824A, + GL_DEBUG_SOURCE_OTHER_ARB = 0x824B, + GL_DEBUG_TYPE_ERROR_ARB = 0x824C, + GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB = 0x824D, + GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB = 0x824E, + GL_DEBUG_TYPE_PORTABILITY_ARB = 0x824F, + GL_DEBUG_TYPE_PERFORMANCE_ARB = 0x8250, + GL_DEBUG_TYPE_OTHER_ARB = 0x8251, + GL_MAX_DEBUG_MESSAGE_LENGTH_ARB = 0x9143, + GL_MAX_DEBUG_LOGGED_MESSAGES_ARB = 0x9144, + GL_DEBUG_LOGGED_MESSAGES_ARB = 0x9145, + GL_DEBUG_SEVERITY_HIGH_ARB = 0x9146, + GL_DEBUG_SEVERITY_MEDIUM_ARB = 0x9147, + GL_DEBUG_SEVERITY_LOW_ARB = 0x9148, + + // GL_ARB_robustness + GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB = 0x00000004, + GL_LOSE_CONTEXT_ON_RESET_ARB = 0x8252, + GL_GUILTY_CONTEXT_RESET_ARB = 0x8253, + GL_INNOCENT_CONTEXT_RESET_ARB = 0x8254, + GL_UNKNOWN_CONTEXT_RESET_ARB = 0x8255, + GL_RESET_NOTIFICATION_STRATEGY_ARB = 0x8256, + GL_NO_RESET_NOTIFICATION_ARB = 0x8261, + + // GL_ARB_depth_clamp + GL_DEPTH_CLAMP = 0x864F, + + // GL_ARB_blend_func_extended + GL_SRC1_COLOR = 0x88F9, + GL_ONE_MINUS_SRC1_COLOR = 0x88FA, + GL_ONE_MINUS_SRC1_ALPHA = 0x88FB, + GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC, + + // GL_ARB_sampler_objects + GL_SAMPLER_BINDING = 0x8919, + + // GL_ARB_timer_query + GL_TIME_ELAPSED = 0x88BF, + GL_TIMESTAMP = 0x8E28, + + // GL_ARB_vertex_type_2_10_10_10_rev + GL_INT_2_10_10_10_REV = 0x8D9F, + } +} + +version(DerelictGL_EXT) +{ + // from GL_EXT_timer_query + alias long GLint64EXT; + alias ulong GLuint64EXT; + + enum : GLenum + { + // GL_EXT_abgr + GL_ABGR_EXT = 0x8000, + + // GL_EXT_blend_color + GL_CONSTANT_COLOR_EXT = 0x8001, + GL_ONE_MINUS_CONSTANT_COLOR_EXT = 0x8002, + GL_CONSTANT_ALPHA_EXT = 0x8003, + GL_ONE_MINUS_CONSTANT_ALPHA_EXT = 0x8004, + GL_BLEND_COLOR_EXT = 0x8005, + + // GL_EXT_polygon_offset + GL_POLYGON_OFFSET_EXT = 0x8037, + GL_POLYGON_OFFSET_FACTOR_EXT = 0x8038, + GL_POLYGON_OFFSET_BIAS_EXT = 0x8039, + + // GL_EXT_texture + GL_ALPHA4_EXT = 0x803B, + GL_ALPHA8_EXT = 0x803C, + GL_ALPHA12_EXT = 0x803D, + GL_ALPHA16_EXT = 0x803E, + GL_LUMINANCE4_EXT = 0x803F, + GL_LUMINANCE8_EXT = 0x8040, + GL_LUMINANCE12_EXT = 0x8041, + GL_LUMINANCE16_EXT = 0x8042, + GL_LUMINANCE4_ALPHA4_EXT = 0x8043, + GL_LUMINANCE6_ALPHA2_EXT = 0x8044, + GL_LUMINANCE8_ALPHA8_EXT = 0x8045, + GL_LUMINANCE12_ALPHA4_EXT = 0x8046, + GL_LUMINANCE12_ALPHA12_EXT = 0x8047, + GL_LUMINANCE16_ALPHA16_EXT = 0x8048, + GL_INTENSITY_EXT = 0x8049, + GL_INTENSITY4_EXT = 0x804A, + GL_INTENSITY8_EXT = 0x804B, + GL_INTENSITY12_EXT = 0x804C, + GL_INTENSITY16_EXT = 0x804D, + GL_RGB2_EXT = 0x804E, + GL_RGB4_EXT = 0x804F, + GL_RGB5_EXT = 0x8050, + GL_RGB8_EXT = 0x8051, + GL_RGB10_EXT = 0x8052, + GL_RGB12_EXT = 0x8053, + GL_RGB16_EXT = 0x8054, + GL_RGBA2_EXT = 0x8055, + GL_RGBA4_EXT = 0x8056, + GL_RGB5_A1_EXT = 0x8057, + GL_RGBA8_EXT = 0x8058, + GL_RGB10_A2_EXT = 0x8059, + GL_RGBA12_EXT = 0x805A, + GL_RGBA16_EXT = 0x805B, + GL_TEXTURE_RED_SIZE_EXT = 0x805C, + GL_TEXTURE_GREEN_SIZE_EXT = 0x805D, + GL_TEXTURE_BLUE_SIZE_EXT = 0x805E, + GL_TEXTURE_ALPHA_SIZE_EXT = 0x805F, + GL_TEXTURE_LUMINANCE_SIZE_EXT = 0x8060, + GL_TEXTURE_INTENSITY_SIZE_EXT = 0x8061, + GL_REPLACE_EXT = 0x8062, + GL_PROXY_TEXTURE_1D_EXT = 0x8063, + GL_PROXY_TEXTURE_2D_EXT = 0x8064, + GL_TEXTURE_TOO_LARGE_EXT = 0x8065, + + // GL_EXT_texture3D + GL_PACK_SKIP_IMAGES_EXT = 0x806B, + GL_PACK_IMAGE_HEIGHT_EXT = 0x806C, + GL_UNPACK_SKIP_IMAGES_EXT = 0x806D, + GL_UNPACK_IMAGE_HEIGHT_EXT = 0x806E, + GL_TEXTURE_3D_EXT = 0x806F, + GL_PROXY_TEXTURE_3D_EXT = 0x8070, + GL_TEXTURE_DEPTH_EXT = 0x8071, + GL_TEXTURE_WRAP_R_EXT = 0x8072, + GL_MAX_3D_TEXTURE_SIZE_EXT = 0x8073, + + // GL_EXT_histogram + GL_HISTOGRAM_EXT = 0x8024, + GL_PROXY_HISTOGRAM_EXT = 0x8025, + GL_HISTOGRAM_WIDTH_EXT = 0x8026, + GL_HISTOGRAM_FORMAT_EXT = 0x8027, + GL_HISTOGRAM_RED_SIZE_EXT = 0x8028, + GL_HISTOGRAM_GREEN_SIZE_EXT = 0x8029, + GL_HISTOGRAM_BLUE_SIZE_EXT = 0x802A, + GL_HISTOGRAM_ALPHA_SIZE_EXT = 0x802B, + GL_HISTOGRAM_LUMINANCE_SIZE_EXT = 0x802C, + GL_HISTOGRAM_SINK_EXT = 0x802D, + GL_MINMAX_EXT = 0x802E, + GL_MINMAX_FORMAT_EXT = 0x802F, + GL_MINMAX_SINK_EXT = 0x8030, + GL_TABLE_TOO_LARGE_EXT = 0x8031, + + // GL_EXT_convolution + GL_CONVOLUTION_1D_EXT = 0x8010, + GL_CONVOLUTION_2D_EXT = 0x8011, + GL_SEPARABLE_2D_EXT = 0x8012, + GL_CONVOLUTION_BORDER_MODE_EXT = 0x8013, + GL_CONVOLUTION_FILTER_SCALE_EXT = 0x8014, + GL_CONVOLUTION_FILTER_BIAS_EXT = 0x8015, + GL_REDUCE_EXT = 0x8016, + GL_CONVOLUTION_FORMAT_EXT = 0x8017, + GL_CONVOLUTION_WIDTH_EXT = 0x8018, + GL_CONVOLUTION_HEIGHT_EXT = 0x8019, + GL_MAX_CONVOLUTION_WIDTH_EXT = 0x801A, + GL_MAX_CONVOLUTION_HEIGHT_EXT = 0x801B, + GL_POST_CONVOLUTION_RED_SCALE_EXT = 0x801C, + GL_POST_CONVOLUTION_GREEN_SCALE_EXT = 0x801D, + GL_POST_CONVOLUTION_BLUE_SCALE_EXT = 0x801E, + GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = 0x801F, + GL_POST_CONVOLUTION_RED_BIAS_EXT = 0x8020, + GL_POST_CONVOLUTION_GREEN_BIAS_EXT = 0x8021, + GL_POST_CONVOLUTION_BLUE_BIAS_EXT = 0x8022, + GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = 0x8023, + + // GL_EXT_cmyka + GL_CMYK_EXT = 0x800C, + GL_CMYKA_EXT = 0x800D, + GL_PACK_CMYK_HINT_EXT = 0x800E, + GL_UNPACK_CMYK_HINT_EXT = 0x800F, + + // GL_EXT_texture_object + GL_TEXTURE_PRIORITY_EXT = 0x8066, + GL_TEXTURE_RESIDENT_EXT = 0x8067, + GL_TEXTURE_1D_BINDING_EXT = 0x8068, + GL_TEXTURE_2D_BINDING_EXT = 0x8069, + GL_TEXTURE_3D_BINDING_EXT = 0x806A, + + // GL_EXT_packed_pixels + GL_UNSIGNED_BYTE_3_3_2_EXT = 0x8032, + GL_UNSIGNED_SHORT_4_4_4_4_EXT = 0x8033, + GL_UNSIGNED_SHORT_5_5_5_1_EXT = 0x8034, + GL_UNSIGNED_INT_8_8_8_8_EXT = 0x8035, + GL_UNSIGNED_INT_10_10_10_2_EXT = 0x8036, + + // GL_EXT_rescale_normal + GL_RESCALE_NORMAL_EXT = 0x803A, + + // GL_EXT_vertex_array + GL_VERTEX_ARRAY_EXT = 0x8074, + GL_NORMAL_ARRAY_EXT = 0x8075, + GL_COLOR_ARRAY_EXT = 0x8076, + GL_INDEX_ARRAY_EXT = 0x8077, + GL_TEXTURE_COORD_ARRAY_EXT = 0x8078, + GL_EDGE_FLAG_ARRAY_EXT = 0x8079, + GL_VERTEX_ARRAY_SIZE_EXT = 0x807A, + GL_VERTEX_ARRAY_TYPE_EXT = 0x807B, + GL_VERTEX_ARRAY_STRIDE_EXT = 0x807C, + GL_VERTEX_ARRAY_COUNT_EXT = 0x807D, + GL_NORMAL_ARRAY_TYPE_EXT = 0x807E, + GL_NORMAL_ARRAY_STRIDE_EXT = 0x807F, + GL_NORMAL_ARRAY_COUNT_EXT = 0x8080, + GL_COLOR_ARRAY_SIZE_EXT = 0x8081, + GL_COLOR_ARRAY_TYPE_EXT = 0x8082, + GL_COLOR_ARRAY_STRIDE_EXT = 0x8083, + GL_COLOR_ARRAY_COUNT_EXT = 0x8084, + GL_INDEX_ARRAY_TYPE_EXT = 0x8085, + GL_INDEX_ARRAY_STRIDE_EXT = 0x8086, + GL_INDEX_ARRAY_COUNT_EXT = 0x8087, + GL_TEXTURE_COORD_ARRAY_SIZE_EXT = 0x8088, + GL_TEXTURE_COORD_ARRAY_TYPE_EXT = 0x8089, + GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = 0x808A, + GL_TEXTURE_COORD_ARRAY_COUNT_EXT = 0x808B, + GL_EDGE_FLAG_ARRAY_STRIDE_EXT = 0x808C, + GL_EDGE_FLAG_ARRAY_COUNT_EXT = 0x808D, + GL_VERTEX_ARRAY_POINTER_EXT = 0x808E, + GL_NORMAL_ARRAY_POINTER_EXT = 0x808F, + GL_COLOR_ARRAY_POINTER_EXT = 0x8090, + GL_INDEX_ARRAY_POINTER_EXT = 0x8091, + GL_TEXTURE_COORD_ARRAY_POINTER_EXT = 0x8092, + GL_EDGE_FLAG_ARRAY_POINTER_EXT = 0x8093, + + // GL_EXT_blend_minmax + GL_FUNC_ADD_EXT = 0x8006, + GL_MIN_EXT = 0x8007, + GL_MAX_EXT = 0x8008, + GL_BLEND_EQUATION_EXT = 0x8009, + + // GL_EXT_blend_subtract + GL_FUNC_SUBTRACT_EXT = 0x800A, + GL_FUNC_REVERSE_SUBTRACT_EXT = 0x800B, + + // GL_EXT_point_parameters + GL_POINT_SIZE_MIN_EXT = 0x8126, + GL_POINT_SIZE_MAX_EXT = 0x8127, + GL_POINT_FADE_THRESHOLD_SIZE_EXT = 0x8128, + GL_DISTANCE_ATTENUATION_EXT = 0x8129, + + // GL_EXT_paletted_texture + GL_COLOR_INDEX1_EXT = 0x80E2, + GL_COLOR_INDEX2_EXT = 0x80E3, + GL_COLOR_INDEX4_EXT = 0x80E4, + GL_COLOR_INDEX8_EXT = 0x80E5, + GL_COLOR_INDEX12_EXT = 0x80E6, + GL_COLOR_INDEX16_EXT = 0x80E7, + GL_TEXTURE_INDEX_SIZE_EXT = 0x80ED, + + // GL_EXT_clip_volume_hint + GL_CLIP_VOLUME_CLIPPING_HINT_EXT = 0x80F0, + + // GL_EXT_index_material + GL_INDEX_MATERIAL_EXT = 0x81B8, + GL_INDEX_MATERIAL_PARAMETER_EXT = 0x81B9, + GL_INDEX_MATERIAL_FACE_EXT = 0x81BA, + + // GL_EXT_index_func + GL_INDEX_TEST_EXT = 0x81B5, + GL_INDEX_TEST_FUNC_EXT = 0x81B6, + GL_INDEX_TEST_REF_EXT = 0x81B7, + + // GL_EXT_index_array_formats + GL_IUI_V2F_EXT = 0x81AD, + GL_IUI_V3F_EXT = 0x81AE, + GL_IUI_N3F_V2F_EXT = 0x81AF, + GL_IUI_N3F_V3F_EXT = 0x81B0, + GL_T2F_IUI_V2F_EXT = 0x81B1, + GL_T2F_IUI_V3F_EXT = 0x81B2, + GL_T2F_IUI_N3F_V2F_EXT = 0x81B3, + GL_T2F_IUI_N3F_V3F_EXT = 0x81B4, + + // GL_EXT_compiled_vertex_array + GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = 0x81A8, + GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = 0x81A9, + + // GL_EXT_cull_vertex + GL_CULL_VERTEX_EXT = 0x81AA, + GL_CULL_VERTEX_EYE_POSITION_EXT = 0x81AB, + GL_CULL_VERTEX_OBJECT_POSITION_EXT = 0x81AC, + + // GL_EXT_draw_range_elements + GL_MAX_ELEMENTS_VERTICES_EXT = 0x80E8, + GL_MAX_ELEMENTS_INDICES_EXT = 0x80E9, + + // GL_EXT_light_texture + GL_FRAGMENT_MATERIAL_EXT = 0x8349, + GL_FRAGMENT_NORMAL_EXT = 0x834A, + GL_FRAGMENT_COLOR_EXT = 0x834C, + GL_ATTENUATION_EXT = 0x834D, + GL_SHADOW_ATTENUATION_EXT = 0x834E, + GL_TEXTURE_APPLICATION_MODE_EXT = 0x834F, + GL_TEXTURE_LIGHT_EXT = 0x8350, + GL_TEXTURE_MATERIAL_FACE_EXT = 0x8351, + GL_TEXTURE_MATERIAL_PARAMETER_EXT = 0x8352, + + // GL_EXT_bgra + GL_BGR_EXT = 0x80E0, + GL_BGRA_EXT = 0x80E1, + + // GL_EXT_pixel_transform + GL_PIXEL_TRANSFORM_2D_EXT = 0x8330, + GL_PIXEL_MAG_FILTER_EXT = 0x8331, + GL_PIXEL_MIN_FILTER_EXT = 0x8332, + GL_PIXEL_CUBIC_WEIGHT_EXT = 0x8333, + GL_CUBIC_EXT = 0x8334, + GL_AVERAGE_EXT = 0x8335, + GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8336, + GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT = 0x8337, + GL_PIXEL_TRANSFORM_2D_MATRIX_EXT = 0x8338, + + // GL_EXT_shared_texture_palette + GL_SHARED_TEXTURE_PALETTE_EXT = 0x81FB, + + // GL_EXT_separate_specular_color + GL_LIGHT_MODEL_COLOR_CONTROL_EXT = 0x81F8, + GL_SINGLE_COLOR_EXT = 0x81F9, + GL_SEPARATE_SPECULAR_COLOR_EXT = 0x81FA, + + // GL_EXT_secondary_color + GL_COLOR_SUM_EXT = 0x8458, + GL_CURRENT_SECONDARY_COLOR_EXT = 0x8459, + GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = 0x845A, + GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = 0x845B, + GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = 0x845C, + GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = 0x845D, + GL_SECONDARY_COLOR_ARRAY_EXT = 0x845E, + + // GL_EXT_texture_perturb_normal + GL_PERTURB_EXT = 0x85AE, + GL_TEXTURE_NORMAL_EXT = 0x85AF, + + // GL_EXT_fog_coord + GL_FOG_COORDINATE_SOURCE_EXT = 0x8450, + GL_FOG_COORDINATE_EXT = 0x8451, + GL_FRAGMENT_DEPTH_EXT = 0x8452, + GL_CURRENT_FOG_COORDINATE_EXT = 0x8453, + GL_FOG_COORDINATE_ARRAY_TYPE_EXT = 0x8454, + GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = 0x8455, + GL_FOG_COORDINATE_ARRAY_POINTER_EXT = 0x8456, + GL_FOG_COORDINATE_ARRAY_EXT = 0x8457, + + // GL_EXT_coordinate_frame + GL_TANGENT_ARRAY_EXT = 0x8439, + GL_BINORMAL_ARRAY_EXT = 0x843A, + GL_CURRENT_TANGENT_EXT = 0x843B, + GL_CURRENT_BINORMAL_EXT = 0x843C, + GL_TANGENT_ARRAY_TYPE_EXT = 0x843E, + GL_TANGENT_ARRAY_STRIDE_EXT = 0x843F, + GL_BINORMAL_ARRAY_TYPE_EXT = 0x8440, + GL_BINORMAL_ARRAY_STRIDE_EXT = 0x8441, + GL_TANGENT_ARRAY_POINTER_EXT = 0x8442, + GL_BINORMAL_ARRAY_POINTER_EXT = 0x8443, + GL_MAP1_TANGENT_EXT = 0x8444, + GL_MAP2_TANGENT_EXT = 0x8445, + GL_MAP1_BINORMAL_EXT = 0x8446, + GL_MAP2_BINORMAL_EXT = 0x8447, + + // GL_EXT_texture_env_combine + GL_COMBINE_EXT = 0x8570, + GL_COMBINE_RGB_EXT = 0x8571, + GL_COMBINE_ALPHA_EXT = 0x8572, + GL_RGB_SCALE_EXT = 0x8573, + GL_ADD_SIGNED_EXT = 0x8574, + GL_INTERPOLATE_EXT = 0x8575, + GL_CONSTANT_EXT = 0x8576, + GL_PRIMARY_COLOR_EXT = 0x8577, + GL_PREVIOUS_EXT = 0x8578, + GL_SOURCE0_RGB_EXT = 0x8580, + GL_SOURCE1_RGB_EXT = 0x8581, + GL_SOURCE2_RGB_EXT = 0x8582, + GL_SOURCE0_ALPHA_EXT = 0x8588, + GL_SOURCE1_ALPHA_EXT = 0x8589, + GL_SOURCE2_ALPHA_EXT = 0x858A, + GL_OPERAND0_RGB_EXT = 0x8590, + GL_OPERAND1_RGB_EXT = 0x8591, + GL_OPERAND2_RGB_EXT = 0x8592, + GL_OPERAND0_ALPHA_EXT = 0x8598, + GL_OPERAND1_ALPHA_EXT = 0x8599, + GL_OPERAND2_ALPHA_EXT = 0x859A, + + // GL_EXT_blend_func_separate + GL_BLEND_DST_RGB_EXT = 0x80C8, + GL_BLEND_SRC_RGB_EXT = 0x80C9, + GL_BLEND_DST_ALPHA_EXT = 0x80CA, + GL_BLEND_SRC_ALPHA_EXT = 0x80CB, + + // GL_EXT_stencil_wrap + GL_INCR_WRAP_EXT = 0x8507, + GL_DECR_WRAP_EXT = 0x8508, + + // GL_EXT_422_pixels + GL_422_EXT = 0x80CC, + GL_422_REV_EXT = 0x80CD, + GL_422_AVERAGE_EXT = 0x80CE, + GL_422_REV_AVERAGE_EXT = 0x80CF, + + // GL_EXT_texture_cube_map + GL_NORMAL_MAP_EXT = 0x8511, + GL_REFLECTION_MAP_EXT = 0x8512, + GL_TEXTURE_CUBE_MAP_EXT = 0x8513, + GL_TEXTURE_BINDING_CUBE_MAP_EXT = 0x8514, + GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT = 0x8515, + GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT = 0x8516, + GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT = 0x8517, + GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT = 0x8518, + GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT = 0x8519, + GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT = 0x851A, + GL_PROXY_TEXTURE_CUBE_MAP_EXT = 0x851B, + GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT = 0x851C, + + // GL_EXT_texture_lod_bias + GL_MAX_TEXTURE_LOD_BIAS_EXT = 0x84FD, + GL_TEXTURE_FILTER_CONTROL_EXT = 0x8500, + GL_TEXTURE_LOD_BIAS_EXT = 0x8501, + + // GL_EXT_texture_filter_anisotropic + GL_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE, + GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF, + + // GL_EXT_vertex_weighting + GL_MODELVIEW0_STACK_DEPTH_EXT = GL_MODELVIEW_STACK_DEPTH, + GL_MODELVIEW1_STACK_DEPTH_EXT = 0x8502, + GL_MODELVIEW0_MATRIX_EXT = GL_MODELVIEW_MATRIX, + GL_MODELVIEW1_MATRIX_EXT = 0x8506, + GL_VERTEX_WEIGHTING_EXT = 0x8509, + GL_MODELVIEW0_EXT = GL_MODELVIEW, + GL_MODELVIEW1_EXT = 0x850A, + GL_CURRENT_VERTEX_WEIGHT_EXT = 0x850B, + GL_VERTEX_WEIGHT_ARRAY_EXT = 0x850C, + GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = 0x850D, + GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = 0x850E, + GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = 0x850F, + GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = 0x8510, + + // GL_EXT_texture_compression_s3tc + GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0, + GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1, + GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2, + GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3, + + // GL_EXT_multisample + GL_MULTISAMPLE_EXT = 0x809D, + GL_SAMPLE_ALPHA_TO_MASK_EXT = 0x809E, + GL_SAMPLE_ALPHA_TO_ONE_EXT = 0x809F, + GL_SAMPLE_MASK_EXT = 0x80A0, + GL_1PASS_EXT = 0x80A1, + GL_2PASS_0_EXT = 0x80A2, + GL_2PASS_1_EXT = 0x80A3, + GL_4PASS_0_EXT = 0x80A4, + GL_4PASS_1_EXT = 0x80A5, + GL_4PASS_2_EXT = 0x80A6, + GL_4PASS_3_EXT = 0x80A7, + GL_SAMPLE_BUFFERS_EXT = 0x80A8, + GL_SAMPLES_EXT = 0x80A9, + GL_SAMPLE_MASK_VALUE_EXT = 0x80AA, + GL_SAMPLE_MASK_INVERT_EXT = 0x80AB, + GL_SAMPLE_PATTERN_EXT = 0x80AC, + GL_MULTISAMPLE_BIT_EXT = 0x20000000, + + // GL_EXT_texture_env_dot3 + GL_DOT3_RGB_EXT = 0x8740, + GL_DOT3_RGBA_EXT = 0x8741, + + // GL_EXT_vertex_shader + GL_VERTEX_SHADER_EXT = 0x8780, + GL_VERTEX_SHADER_BINDING_EXT = 0x8781, + GL_OP_INDEX_EXT = 0x8782, + GL_OP_NEGATE_EXT = 0x8783, + GL_OP_DOT3_EXT = 0x8784, + GL_OP_DOT4_EXT = 0x8785, + GL_OP_MUL_EXT = 0x8786, + GL_OP_ADD_EXT = 0x8787, + GL_OP_MADD_EXT = 0x8788, + GL_OP_FRAC_EXT = 0x8789, + GL_OP_MAX_EXT = 0x878A, + GL_OP_MIN_EXT = 0x878B, + GL_OP_SET_GE_EXT = 0x878C, + GL_OP_SET_LT_EXT = 0x878D, + GL_OP_CLAMP_EXT = 0x878E, + GL_OP_FLOOR_EXT = 0x878F, + GL_OP_ROUND_EXT = 0x8790, + GL_OP_EXP_BASE_2_EXT = 0x8791, + GL_OP_LOG_BASE_2_EXT = 0x8792, + GL_OP_POWER_EXT = 0x8793, + GL_OP_RECIP_EXT = 0x8794, + GL_OP_RECIP_SQRT_EXT = 0x8795, + GL_OP_SUB_EXT = 0x8796, + GL_OP_CROSS_PRODUCT_EXT = 0x8797, + GL_OP_MULTIPLY_MATRIX_EXT = 0x8798, + GL_OP_MOV_EXT = 0x8799, + GL_OUTPUT_VERTEX_EXT = 0x879A, + GL_OUTPUT_COLOR0_EXT = 0x879B, + GL_OUTPUT_COLOR1_EXT = 0x879C, + GL_OUTPUT_TEXTURE_COORD0_EXT = 0x879D, + GL_OUTPUT_TEXTURE_COORD1_EXT = 0x879E, + GL_OUTPUT_TEXTURE_COORD2_EXT = 0x879F, + GL_OUTPUT_TEXTURE_COORD3_EXT = 0x87A0, + GL_OUTPUT_TEXTURE_COORD4_EXT = 0x87A1, + GL_OUTPUT_TEXTURE_COORD5_EXT = 0x87A2, + GL_OUTPUT_TEXTURE_COORD6_EXT = 0x87A3, + GL_OUTPUT_TEXTURE_COORD7_EXT = 0x87A4, + GL_OUTPUT_TEXTURE_COORD8_EXT = 0x87A5, + GL_OUTPUT_TEXTURE_COORD9_EXT = 0x87A6, + GL_OUTPUT_TEXTURE_COORD10_EXT = 0x87A7, + GL_OUTPUT_TEXTURE_COORD11_EXT = 0x87A8, + GL_OUTPUT_TEXTURE_COORD12_EXT = 0x87A9, + GL_OUTPUT_TEXTURE_COORD13_EXT = 0x87AA, + GL_OUTPUT_TEXTURE_COORD14_EXT = 0x87AB, + GL_OUTPUT_TEXTURE_COORD15_EXT = 0x87AC, + GL_OUTPUT_TEXTURE_COORD16_EXT = 0x87AD, + GL_OUTPUT_TEXTURE_COORD17_EXT = 0x87AE, + GL_OUTPUT_TEXTURE_COORD18_EXT = 0x87AF, + GL_OUTPUT_TEXTURE_COORD19_EXT = 0x87B0, + GL_OUTPUT_TEXTURE_COORD20_EXT = 0x87B1, + GL_OUTPUT_TEXTURE_COORD21_EXT = 0x87B2, + GL_OUTPUT_TEXTURE_COORD22_EXT = 0x87B3, + GL_OUTPUT_TEXTURE_COORD23_EXT = 0x87B4, + GL_OUTPUT_TEXTURE_COORD24_EXT = 0x87B5, + GL_OUTPUT_TEXTURE_COORD25_EXT = 0x87B6, + GL_OUTPUT_TEXTURE_COORD26_EXT = 0x87B7, + GL_OUTPUT_TEXTURE_COORD27_EXT = 0x87B8, + GL_OUTPUT_TEXTURE_COORD28_EXT = 0x87B9, + GL_OUTPUT_TEXTURE_COORD29_EXT = 0x87BA, + GL_OUTPUT_TEXTURE_COORD30_EXT = 0x87BB, + GL_OUTPUT_TEXTURE_COORD31_EXT = 0x87BC, + GL_OUTPUT_FOG_EXT = 0x87BD, + GL_SCALAR_EXT = 0x87BE, + GL_VECTOR_EXT = 0x87BF, + GL_MATRIX_EXT = 0x87C0, + GL_VARIANT_EXT = 0x87C1, + GL_INVARIANT_EXT = 0x87C2, + GL_LOCAL_CONSTANT_EXT = 0x87C3, + GL_LOCAL_EXT = 0x87C4, + GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87C5, + GL_MAX_VERTEX_SHADER_VARIANTS_EXT = 0x87C6, + GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = 0x87C7, + GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87C8, + GL_MAX_VERTEX_SHADER_LOCALS_EXT = 0x87C9, + GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CA, + GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = 0x87CB, + GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87CC, + GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = 0x87CD, + GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = 0x87CE, + GL_VERTEX_SHADER_INSTRUCTIONS_EXT = 0x87CF, + GL_VERTEX_SHADER_VARIANTS_EXT = 0x87D0, + GL_VERTEX_SHADER_INVARIANTS_EXT = 0x87D1, + GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = 0x87D2, + GL_VERTEX_SHADER_LOCALS_EXT = 0x87D3, + GL_VERTEX_SHADER_OPTIMIZED_EXT = 0x87D4, + GL_X_EXT = 0x87D5, + GL_Y_EXT = 0x87D6, + GL_Z_EXT = 0x87D7, + GL_W_EXT = 0x87D8, + GL_NEGATIVE_X_EXT = 0x87D9, + GL_NEGATIVE_Y_EXT = 0x87DA, + GL_NEGATIVE_Z_EXT = 0x87DB, + GL_NEGATIVE_W_EXT = 0x87DC, + GL_ZERO_EXT = 0x87DD, + GL_ONE_EXT = 0x87DE, + GL_NEGATIVE_ONE_EXT = 0x87DF, + GL_NORMALIZED_RANGE_EXT = 0x87E0, + GL_FULL_RANGE_EXT = 0x87E1, + GL_CURRENT_VERTEX_EXT = 0x87E2, + GL_MVP_MATRIX_EXT = 0x87E3, + GL_VARIANT_VALUE_EXT = 0x87E4, + GL_VARIANT_DATATYPE_EXT = 0x87E5, + GL_VARIANT_ARRAY_STRIDE_EXT = 0x87E6, + GL_VARIANT_ARRAY_TYPE_EXT = 0x87E7, + GL_VARIANT_ARRAY_EXT = 0x87E8, + GL_VARIANT_ARRAY_POINTER_EXT = 0x87E9, + GL_INVARIANT_VALUE_EXT = 0x87EA, + GL_INVARIANT_DATATYPE_EXT = 0x87EB, + GL_LOCAL_CONSTANT_VALUE_EXT = 0x87EC, + GL_LOCAL_CONSTANT_DATATYPE_EXT = 0x87ED, + + // GL_EXT_stencil_two_side + GL_STENCIL_TEST_TWO_SIDE_EXT = 0x8910, + GL_ACTIVE_STENCIL_FACE_EXT = 0x8911, + + // GL_EXT_depth_bounds_test + GL_DEPTH_BOUNDS_TEST_EXT = 0x8890, + GL_DEPTH_BOUNDS_EXT = 0x8891, + + // GL_EXT_texture_mirror_clamp + GL_MIRROR_CLAMP_EXT = 0x8742, + GL_MIRROR_CLAMP_TO_EDGE_EXT = 0x8743, + GL_MIRROR_CLAMP_TO_BORDER_EXT = 0x8912, + + // GL_EXT_blend_equation_separate + GL_BLEND_EQUATION_RGB_EXT = 0x8009, + GL_BLEND_EQUATION_ALPHA_EXT = 0x883D, + + // GL_EXT_pixel_buffer_object + GL_PIXEL_PACK_BUFFER_EXT = 0x88EB, + GL_PIXEL_UNPACK_BUFFER_EXT = 0x88EC, + GL_PIXEL_PACK_BUFFER_BINDING_EXT = 0x88ED, + GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = 0x88EF, + + // GL_EXT_framebuffer_object + GL_INVALID_FRAMEBUFFER_OPERATION_EXT = 0x0506, + GL_MAX_RENDERBUFFER_SIZE_EXT = 0x84E8, + GL_FRAMEBUFFER_BINDING_EXT = 0x8CA6, + GL_RENDERBUFFER_BINDING_EXT = 0x8CA7, + GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = 0x8CD0, + GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = 0x8CD1, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = 0x8CD2, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = 0x8CD3, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = 0x8CD4, + GL_FRAMEBUFFER_COMPLETE_EXT = 0x8CD5, + GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = 0x8CD6, + GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = 0x8CD7, + GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = 0x8CD9, + GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = 0x8CDA, + GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = 0x8CDB, + GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = 0x8CDC, + GL_FRAMEBUFFER_UNSUPPORTED_EXT = 0x8CDD, + GL_MAX_COLOR_ATTACHMENTS_EXT = 0x8CDF, + GL_COLOR_ATTACHMENT0_EXT = 0x8CE0, + GL_COLOR_ATTACHMENT1_EXT = 0x8CE1, + GL_COLOR_ATTACHMENT2_EXT = 0x8CE2, + GL_COLOR_ATTACHMENT3_EXT = 0x8CE3, + GL_COLOR_ATTACHMENT4_EXT = 0x8CE4, + GL_COLOR_ATTACHMENT5_EXT = 0x8CE5, + GL_COLOR_ATTACHMENT6_EXT = 0x8CE6, + GL_COLOR_ATTACHMENT7_EXT = 0x8CE7, + GL_COLOR_ATTACHMENT8_EXT = 0x8CE8, + GL_COLOR_ATTACHMENT9_EXT = 0x8CE9, + GL_COLOR_ATTACHMENT10_EXT = 0x8CEA, + GL_COLOR_ATTACHMENT11_EXT = 0x8CEB, + GL_COLOR_ATTACHMENT12_EXT = 0x8CEC, + GL_COLOR_ATTACHMENT13_EXT = 0x8CED, + GL_COLOR_ATTACHMENT14_EXT = 0x8CEE, + GL_COLOR_ATTACHMENT15_EXT = 0x8CEF, + GL_DEPTH_ATTACHMENT_EXT = 0x8D00, + GL_STENCIL_ATTACHMENT_EXT = 0x8D20, + GL_FRAMEBUFFER_EXT = 0x8D40, + GL_RENDERBUFFER_EXT = 0x8D41, + GL_RENDERBUFFER_WIDTH_EXT = 0x8D42, + GL_RENDERBUFFER_HEIGHT_EXT = 0x8D43, + GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = 0x8D44, + GL_STENCIL_INDEX1_EXT = 0x8D46, + GL_STENCIL_INDEX4_EXT = 0x8D47, + GL_STENCIL_INDEX8_EXT = 0x8D48, + GL_STENCIL_INDEX16_EXT = 0x8D49, + GL_RENDERBUFFER_RED_SIZE_EXT = 0x8D50, + GL_RENDERBUFFER_GREEN_SIZE_EXT = 0x8D51, + GL_RENDERBUFFER_BLUE_SIZE_EXT = 0x8D52, + GL_RENDERBUFFER_ALPHA_SIZE_EXT = 0x8D53, + GL_RENDERBUFFER_DEPTH_SIZE_EXT = 0x8D54, + GL_RENDERBUFFER_STENCIL_SIZE_EXT = 0x8D55, + + // GL_EXT_packed_depth_stencil + GL_DEPTH_STENCIL_EXT = 0x84F9, + GL_UNSIGNED_INT_24_8_EXT = 0x84FA, + GL_DEPTH24_STENCIL8_EXT = 0x88F0, + GL_TEXTURE_STENCIL_SIZE_EXT = 0x88F1, + + // GL_EXT_stencil_clear_tag + GL_STENCIL_TAG_BITS_EXT = 0x88F2, + GL_STENCIL_CLEAR_TAG_VALUE_EXT = 0x88F3, + + // GL_EXT_texture_sRGB + GL_SRGB_EXT = 0x8C40, + GL_SRGB8_EXT = 0x8C41, + GL_SRGB_ALPHA_EXT = 0x8C42, + GL_SRGB8_ALPHA8_EXT = 0x8C43, + GL_SLUMINANCE_ALPHA_EXT = 0x8C44, + GL_SLUMINANCE8_ALPHA8_EXT = 0x8C45, + GL_SLUMINANCE_EXT = 0x8C46, + GL_SLUMINANCE8_EXT = 0x8C47, + GL_COMPRESSED_SRGB_EXT = 0x8C48, + GL_COMPRESSED_SRGB_ALPHA_EXT = 0x8C49, + GL_COMPRESSED_SLUMINANCE_EXT = 0x8C4A, + GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = 0x8C4B, + GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C, + GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D, + GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E, + GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F, + + // GL_EXT_framebuffer_blit + GL_READ_FRAMEBUFFER_EXT = 0x8CA8, + GL_DRAW_FRAMEBUFFER_EXT = 0x8CA9, + GL_DRAW_FRAMEBUFFER_BINDING_EXT = GL_FRAMEBUFFER_BINDING_EXT, + GL_READ_FRAMEBUFFER_BINDING_EXT = 0x8CAA, + + // GL_EXT_framebuffer_multisample + GL_RENDERBUFFER_SAMPLES_EXT = 0x8CAB, + GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT = 0x8D56, + GL_MAX_SAMPLES_EXT = 0x8D57, + + // GL_EXT_timer_query + GL_TIME_ELAPSED_EXT = 0x88BF, + + // GL_EXT_geometry_shader4 + GL_GEOMETRY_SHADER_EXT = 0x8DD9, + GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT = 0x8DDD, + GL_MAX_VERTEX_VARYING_COMPONENTS_EXT = 0x8DDE, + GL_MAX_VARYING_COMPONENTS_EXT = 0x8B4B, + GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT = 0x8DDF, + GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT = 0x8DE0, + GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT = 0x8DE1, + + // GL_EXT_gpu_shader4 + GL_SAMPLER_1D_ARRAY_EXT = 0x8DC0, + GL_SAMPLER_2D_ARRAY_EXT = 0x8DC1, + GL_SAMPLER_BUFFER_EXT = 0x8DC2, + GL_SAMPLER_1D_ARRAY_SHADOW_EXT = 0x8DC3, + GL_SAMPLER_2D_ARRAY_SHADOW_EXT = 0x8DC4, + GL_SAMPLER_CUBE_SHADOW_EXT = 0x8DC5, + GL_UNSIGNED_INT_VEC2_EXT = 0x8DC6, + GL_UNSIGNED_INT_VEC3_EXT = 0x8DC7, + GL_UNSIGNED_INT_VEC4_EXT = 0x8DC8, + GL_INT_SAMPLER_1D_EXT = 0x8DC9, + GL_INT_SAMPLER_2D_EXT = 0x8DCA, + GL_INT_SAMPLER_3D_EXT = 0x8DCB, + GL_INT_SAMPLER_CUBE_EXT = 0x8DCC, + GL_INT_SAMPLER_2D_RECT_EXT = 0x8DCD, + GL_INT_SAMPLER_1D_ARRAY_EXT = 0x8DCE, + GL_INT_SAMPLER_2D_ARRAY_EXT = 0x8DCF, + GL_INT_SAMPLER_BUFFER_EXT = 0x8DD0, + GL_UNSIGNED_INT_SAMPLER_1D_EXT = 0x8DD1, + GL_UNSIGNED_INT_SAMPLER_2D_EXT = 0x8DD2, + GL_UNSIGNED_INT_SAMPLER_3D_EXT = 0x8DD3, + GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = 0x8DD4, + GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = 0x8DD5, + GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = 0x8DD6, + GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = 0x8DD7, + GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT = 0x8DD8, + + // GL_EXT_packed_float + GL_R11F_G11F_B10F_EXT = 0x8C3A, + GL_UNSIGNED_INT_10F_11F_11F_REV_EXT = 0x8C3B, + GL_RGBA_SIGNED_COMPONENTS_EXT = 0x8C3C, + + // GL_EXT_texture_array + GL_TEXTURE_1D_ARRAY_EXT = 0x8C18, + GL_PROXY_TEXTURE_1D_ARRAY_EXT = 0x8C19, + GL_TEXTURE_2D_ARRAY_EXT = 0x8C1A, + GL_PROXY_TEXTURE_2D_ARRAY_EXT = 0x8C1B, + GL_TEXTURE_BINDING_1D_ARRAY_EXT = 0x8C1C, + GL_TEXTURE_BINDING_2D_ARRAY_EXT = 0x8C1D, + GL_MAX_ARRAY_TEXTURE_LAYERS_EXT = 0x88FF, + GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT = 0x884E, + + // GL_EXT_texture_buffer_object + GL_TEXTURE_BUFFER_EXT = 0x8C2A, + GL_MAX_TEXTURE_BUFFER_SIZE_EXT = 0x8C2B, + GL_TEXTURE_BINDING_BUFFER_EXT = 0x8C2C, + GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT = 0x8C2D, + GL_TEXTURE_BUFFER_FORMAT_EXT = 0x8C2E, + + // GL_EXT_texture_compression_latc + GL_COMPRESSED_LUMINANCE_LATC1_EXT = 0x8C70, + GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT = 0x8C71, + GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C72, + GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT = 0x8C73, + + // GL_EXT_texture_compression_rgtc + GL_COMPRESSED_RED_RGTC1_EXT = 0x8DBB, + GL_COMPRESSED_SIGNED_RED_RGTC1_EXT = 0x8DBC, + GL_COMPRESSED_RED_GREEN_RGTC2_EXT = 0x8DBD, + GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 0x8DBE, + + // GL_EXT_texture_shared_exponent + GL_RGB9_E5_EXT = 0x8C3D, + GL_UNSIGNED_INT_5_9_9_9_REV_EXT = 0x8C3E, + GL_TEXTURE_SHARED_SIZE_EXT = 0x8C3F, + + // GL_EXT_framebuffer_sRGB + GL_FRAMEBUFFER_SRGB_EXT = 0x8DB9, + GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA, + + // GL_EXT_bindable_uniform + GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT = 0x8DE2, + GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT = 0x8DE3, + GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT = 0x8DE4, + GL_MAX_BINDABLE_UNIFORM_SIZE_EXT = 0x8DED, + GL_UNIFORM_BUFFER_EXT = 0x8DEE, + GL_UNIFORM_BUFFER_BINDING_EXT = 0x8DEF, + + // GL_EXT_texture_integer + GL_RGBA32UI_EXT = 0x8D70, + GL_RGB32UI_EXT = 0x8D71, + GL_ALPHA32UI_EXT = 0x8D72, + GL_INTENSITY32UI_EXT = 0x8D73, + GL_LUMINANCE32UI_EXT = 0x8D74, + GL_LUMINANCE_ALPHA32UI_EXT = 0x8D75, + GL_RGBA16UI_EXT = 0x8D76, + GL_RGB16UI_EXT = 0x8D77, + GL_ALPHA16UI_EXT = 0x8D78, + GL_INTENSITY16UI_EXT = 0x8D79, + GL_LUMINANCE16UI_EXT = 0x8D7A, + GL_LUMINANCE_ALPHA16UI_EXT = 0x8D7B, + GL_RGBA8UI_EXT = 0x8D7C, + GL_RGB8UI_EXT = 0x8D7D, + GL_ALPHA8UI_EXT = 0x8D7E, + GL_INTENSITY8UI_EXT = 0x8D7F, + GL_LUMINANCE8UI_EXT = 0x8D80, + GL_LUMINANCE_ALPHA8UI_EXT = 0x8D81, + GL_RGBA32I_EXT = 0x8D82, + GL_RGB32I_EXT = 0x8D83, + GL_ALPHA32I_EXT = 0x8D84, + GL_INTENSITY32I_EXT = 0x8D85, + GL_LUMINANCE32I_EXT = 0x8D86, + GL_LUMINANCE_ALPHA32I_EXT = 0x8D87, + GL_RGBA16I_EXT = 0x8D88, + GL_RGB16I_EXT = 0x8D89, + GL_ALPHA16I_EXT = 0x8D8A, + GL_INTENSITY16I_EXT = 0x8D8B, + GL_LUMINANCE16I_EXT = 0x8D8C, + GL_LUMINANCE_ALPHA16I_EXT = 0x8D8D, + GL_RGBA8I_EXT = 0x8D8E, + GL_RGB8I_EXT = 0x8D8F, + GL_ALPHA8I_EXT = 0x8D90, + GL_INTENSITY8I_EXT = 0x8D91, + GL_LUMINANCE8I_EXT = 0x8D92, + GL_LUMINANCE_ALPHA8I_EXT = 0x8D93, + GL_RED_INTEGER_EXT = 0x8D94, + GL_GREEN_INTEGER_EXT = 0x8D95, + GL_BLUE_INTEGER_EXT = 0x8D96, + GL_ALPHA_INTEGER_EXT = 0x8D97, + GL_RGB_INTEGER_EXT = 0x8D98, + GL_RGBA_INTEGER_EXT = 0x8D99, + GL_BGR_INTEGER_EXT = 0x8D9A, + GL_BGRA_INTEGER_EXT = 0x8D9B, + GL_LUMINANCE_INTEGER_EXT = 0x8D9C, + GL_LUMINANCE_ALPHA_INTEGER_EXT = 0x8D9D, + GL_RGBA_INTEGER_MODE_EXT = 0x8D9E, + + // GL_EXT_transform_feedback + GL_TRANSFORM_FEEDBACK_BUFFER_EXT = 0x8C8E, + GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT = 0x8C84, + GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT = 0x8C85, + GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT = 0x8C8F, + GL_INTERLEAVED_ATTRIBS_EXT = 0x8C8C, + GL_SEPARATE_ATTRIBS_EXT = 0x8C8D, + GL_PRIMITIVES_GENERATED_EXT = 0x8C87, + GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT = 0x8C88, + GL_RASTERIZER_DISCARD_EXT = 0x8C89, + GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT = 0x8C8A, + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT = 0x8C8B, + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT = 0x8C80, + GL_TRANSFORM_FEEDBACK_VARYINGS_EXT = 0x8C83, + GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT = 0x8C7F, + GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT = 0x8C76, + + // GL_EXT_direct_state_access + GL_PROGRAM_MATRIX_EXT = 0x8E2D, + GL_TRANSPOSE_PROGRAM_MATRIX_EXT = 0x8E2E, + GL_PROGRAM_MATRIX_STACK_DEPTH_EXT = 0x8E2F, + + // GL_EXT_texture_swizzle + GL_TEXTURE_SWIZZLE_R_EXT = 0x8E42, + GL_TEXTURE_SWIZZLE_G_EXT = 0x8E43, + GL_TEXTURE_SWIZZLE_B_EXT = 0x8E44, + GL_TEXTURE_SWIZZLE_A_EXT = 0x8E45, + GL_TEXTURE_SWIZZLE_RGBA_EXT = 0x8E46, + + // GL_EXT_provoking_vertex + GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT = 0x8E4C, + GL_FIRST_VERTEX_CONVENTION_EXT = 0x8E4D, + GL_LAST_VERTEX_CONVENTION_EXT = 0x8E4E, + GL_PROVOKING_VERTEX_EXT = 0x8E4F, + + // GL_EXT_texture_snorm + GL_ALPHA_SNORM = 0x9010, + GL_LUMINANCE_SNORM = 0x9011, + GL_LUMINANCE_ALPHA_SNORM = 0x9012, + GL_INTENSITY_SNORM = 0x9013, + GL_ALPHA8_SNORM = 0x9014, + GL_LUMINANCE8_SNORM = 0x9015, + GL_LUMINANCE8_ALPHA8_SNORM = 0x9016, + GL_INTENSITY8_SNORM = 0x9017, + GL_ALPHA16_SNORM = 0x9018, + GL_LUMINANCE16_SNORM = 0x9019, + GL_LUMINANCE16_ALPHA16_SNORM = 0x901A, + GL_INTENSITY16_SNORM = 0x901B, + + // GL_EXT_separate_shader_objects + GL_ACTIVE_PROGRAM_EXT = 0x8B8D, + } +} + +version(DerelictGL_NV) +{ + // from GL_NV_half_float + alias ushort GLhalfNV; + + enum : GLenum + { + // GL_NV_texgen_reflection + GL_NORMAL_MAP_NV = 0x8511, + GL_REFLECTION_MAP_NV = 0x8512, + + // GL_NV_light_max_exponent + GL_MAX_SHININESS_NV = 0x8504, + GL_MAX_SPOT_EXPONENT_NV = 0x8505, + + // GL_NV_vertex_array_range + GL_VERTEX_ARRAY_RANGE_NV = 0x851D, + GL_VERTEX_ARRAY_RANGE_LENGTH_NV = 0x851E, + GL_VERTEX_ARRAY_RANGE_VALID_NV = 0x851F, + GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = 0x8520, + GL_VERTEX_ARRAY_RANGE_POINTER_NV = 0x8521, + + // GL_NV_register_combiners + GL_REGISTER_COMBINERS_NV = 0x8522, + GL_VARIABLE_A_NV = 0x8523, + GL_VARIABLE_B_NV = 0x8524, + GL_VARIABLE_C_NV = 0x8525, + GL_VARIABLE_D_NV = 0x8526, + GL_VARIABLE_E_NV = 0x8527, + GL_VARIABLE_F_NV = 0x8528, + GL_VARIABLE_G_NV = 0x8529, + GL_CONSTANT_COLOR0_NV = 0x852A, + GL_CONSTANT_COLOR1_NV = 0x852B, + GL_PRIMARY_COLOR_NV = 0x852C, + GL_SECONDARY_COLOR_NV = 0x852D, + GL_SPARE0_NV = 0x852E, + GL_SPARE1_NV = 0x852F, + GL_DISCARD_NV = 0x8530, + GL_E_TIMES_F_NV = 0x8531, + GL_SPARE0_PLUS_SECONDARY_COLOR_NV = 0x8532, + GL_UNSIGNED_IDENTITY_NV = 0x8536, + GL_UNSIGNED_INVERT_NV = 0x8537, + GL_EXPAND_NORMAL_NV = 0x8538, + GL_EXPAND_NEGATE_NV = 0x8539, + GL_HALF_BIAS_NORMAL_NV = 0x853A, + GL_HALF_BIAS_NEGATE_NV = 0x853B, + GL_SIGNED_IDENTITY_NV = 0x853C, + GL_SIGNED_NEGATE_NV = 0x853D, + GL_SCALE_BY_TWO_NV = 0x853E, + GL_SCALE_BY_FOUR_NV = 0x853F, + GL_SCALE_BY_ONE_HALF_NV = 0x8540, + GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = 0x8541, + GL_COMBINER_INPUT_NV = 0x8542, + GL_COMBINER_MAPPING_NV = 0x8543, + GL_COMBINER_COMPONENT_USAGE_NV = 0x8544, + GL_COMBINER_AB_DOT_PRODUCT_NV = 0x8545, + GL_COMBINER_CD_DOT_PRODUCT_NV = 0x8546, + GL_COMBINER_MUX_SUM_NV = 0x8547, + GL_COMBINER_SCALE_NV = 0x8548, + GL_COMBINER_BIAS_NV = 0x8549, + GL_COMBINER_AB_OUTPUT_NV = 0x854A, + GL_COMBINER_CD_OUTPUT_NV = 0x854B, + GL_COMBINER_SUM_OUTPUT_NV = 0x854C, + GL_MAX_GENERAL_COMBINERS_NV = 0x854D, + GL_NUM_GENERAL_COMBINERS_NV = 0x854E, + GL_COLOR_SUM_CLAMP_NV = 0x854F, + GL_COMBINER0_NV = 0x8550, + GL_COMBINER1_NV = 0x8551, + GL_COMBINER2_NV = 0x8552, + GL_COMBINER3_NV = 0x8553, + GL_COMBINER4_NV = 0x8554, + GL_COMBINER5_NV = 0x8555, + GL_COMBINER6_NV = 0x8556, + GL_COMBINER7_NV = 0x8557, + + // GL_NV_fog_distance + GL_FOG_DISTANCE_MODE_NV = 0x855A, + GL_EYE_RADIAL_NV = 0x855B, + GL_EYE_PLANE_ABSOLUTE_NV = 0x855C, + + // GL_NV_texgen_emboss + GL_EMBOSS_LIGHT_NV = 0x855D, + GL_EMBOSS_CONSTANT_NV = 0x855E, + GL_EMBOSS_MAP_NV = 0x855F, + + // GL_NV_texture_env_combine4 + GL_COMBINE4_NV = 0x8503, + GL_SOURCE3_RGB_NV = 0x8583, + GL_SOURCE3_ALPHA_NV = 0x858B, + GL_OPERAND3_RGB_NV = 0x8593, + GL_OPERAND3_ALPHA_NV = 0x859B, + + // GL_NV_fence + GL_ALL_COMPLETED_NV = 0x84F2, + GL_FENCE_STATUS_NV = 0x84F3, + GL_FENCE_CONDITION_NV = 0x84F4, + + // GL_NV_evaluators + GL_EVAL_2D_NV = 0x86C0, + GL_EVAL_TRIANGULAR_2D_NV = 0x86C1, + GL_MAP_TESSELLATION_NV = 0x86C2, + GL_MAP_ATTRIB_U_ORDER_NV = 0x86C3, + GL_MAP_ATTRIB_V_ORDER_NV = 0x86C4, + GL_EVAL_FRACTIONAL_TESSELLATION_NV = 0x86C5, + GL_EVAL_VERTEX_ATTRIB0_NV = 0x86C6, + GL_EVAL_VERTEX_ATTRIB1_NV = 0x86C7, + GL_EVAL_VERTEX_ATTRIB2_NV = 0x86C8, + GL_EVAL_VERTEX_ATTRIB3_NV = 0x86C9, + GL_EVAL_VERTEX_ATTRIB4_NV = 0x86CA, + GL_EVAL_VERTEX_ATTRIB5_NV = 0x86CB, + GL_EVAL_VERTEX_ATTRIB6_NV = 0x86CC, + GL_EVAL_VERTEX_ATTRIB7_NV = 0x86CD, + GL_EVAL_VERTEX_ATTRIB8_NV = 0x86CE, + GL_EVAL_VERTEX_ATTRIB9_NV = 0x86CF, + GL_EVAL_VERTEX_ATTRIB10_NV = 0x86D0, + GL_EVAL_VERTEX_ATTRIB11_NV = 0x86D1, + GL_EVAL_VERTEX_ATTRIB12_NV = 0x86D2, + GL_EVAL_VERTEX_ATTRIB13_NV = 0x86D3, + GL_EVAL_VERTEX_ATTRIB14_NV = 0x86D4, + GL_EVAL_VERTEX_ATTRIB15_NV = 0x86D5, + GL_MAX_MAP_TESSELLATION_NV = 0x86D6, + GL_MAX_RATIONAL_EVAL_ORDER_NV = 0x86D7, + + // GL_NV_packed_depth_stencil + GL_DEPTH_STENCIL_NV = 0x84F9, + GL_UNSIGNED_INT_24_8_NV = 0x84FA, + + // GL_NV_register_combiners2 + GL_PER_STAGE_CONSTANTS_NV = 0x8535, + + // GL_NV_texture_rectangle + GL_TEXTURE_RECTANGLE_NV = 0x84F5, + GL_TEXTURE_BINDING_RECTANGLE_NV = 0x84F6, + GL_PROXY_TEXTURE_RECTANGLE_NV = 0x84F7, + GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = 0x84F8, + + // GL_NV_texture_shader + GL_OFFSET_TEXTURE_RECTANGLE_NV = 0x864C, + GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = 0x864D, + GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = 0x864E, + GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = 0x86D9, + GL_UNSIGNED_INT_S8_S8_8_8_NV = 0x86DA, + GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = 0x86DB, + GL_DSDT_MAG_INTENSITY_NV = 0x86DC, + GL_SHADER_CONSISTENT_NV = 0x86DD, + GL_TEXTURE_SHADER_NV = 0x86DE, + GL_SHADER_OPERATION_NV = 0x86DF, + GL_CULL_MODES_NV = 0x86E0, + GL_OFFSET_TEXTURE_MATRIX_NV = 0x86E1, + GL_OFFSET_TEXTURE_SCALE_NV = 0x86E2, + GL_OFFSET_TEXTURE_BIAS_NV = 0x86E3, + GL_OFFSET_TEXTURE_2D_MATRIX_NV = GL_OFFSET_TEXTURE_MATRIX_NV, + GL_OFFSET_TEXTURE_2D_SCALE_NV = GL_OFFSET_TEXTURE_SCALE_NV, + GL_OFFSET_TEXTURE_2D_BIAS_NV = GL_OFFSET_TEXTURE_BIAS_NV, + GL_PREVIOUS_TEXTURE_INPUT_NV = 0x86E4, + GL_CONST_EYE_NV = 0x86E5, + GL_PASS_THROUGH_NV = 0x86E6, + GL_CULL_FRAGMENT_NV = 0x86E7, + GL_OFFSET_TEXTURE_2D_NV = 0x86E8, + GL_DEPENDENT_AR_TEXTURE_2D_NV = 0x86E9, + GL_DEPENDENT_GB_TEXTURE_2D_NV = 0x86EA, + GL_DOT_PRODUCT_NV = 0x86EC, + GL_DOT_PRODUCT_DEPTH_REPLACE_NV = 0x86ED, + GL_DOT_PRODUCT_TEXTURE_2D_NV = 0x86EE, + GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = 0x86F0, + GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = 0x86F1, + GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = 0x86F2, + GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = 0x86F3, + GL_HILO_NV = 0x86F4, + GL_DSDT_NV = 0x86F5, + GL_DSDT_MAG_NV = 0x86F6, + GL_DSDT_MAG_VIB_NV = 0x86F7, + GL_HILO16_NV = 0x86F8, + GL_SIGNED_HILO_NV = 0x86F9, + GL_SIGNED_HILO16_NV = 0x86FA, + GL_SIGNED_RGBA_NV = 0x86FB, + GL_SIGNED_RGBA8_NV = 0x86FC, + GL_SIGNED_RGB_NV = 0x86FE, + GL_SIGNED_RGB8_NV = 0x86FF, + GL_SIGNED_LUMINANCE_NV = 0x8701, + GL_SIGNED_LUMINANCE8_NV = 0x8702, + GL_SIGNED_LUMINANCE_ALPHA_NV = 0x8703, + GL_SIGNED_LUMINANCE8_ALPHA8_NV = 0x8704, + GL_SIGNED_ALPHA_NV = 0x8705, + GL_SIGNED_ALPHA8_NV = 0x8706, + GL_SIGNED_INTENSITY_NV = 0x8707, + GL_SIGNED_INTENSITY8_NV = 0x8708, + GL_DSDT8_NV = 0x8709, + GL_DSDT8_MAG8_NV = 0x870A, + GL_DSDT8_MAG8_INTENSITY8_NV = 0x870B, + GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = 0x870C, + GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = 0x870D, + GL_HI_SCALE_NV = 0x870E, + GL_LO_SCALE_NV = 0x870F, + GL_DS_SCALE_NV = 0x8710, + GL_DT_SCALE_NV = 0x8711, + GL_MAGNITUDE_SCALE_NV = 0x8712, + GL_VIBRANCE_SCALE_NV = 0x8713, + GL_HI_BIAS_NV = 0x8714, + GL_LO_BIAS_NV = 0x8715, + GL_DS_BIAS_NV = 0x8716, + GL_DT_BIAS_NV = 0x8717, + GL_MAGNITUDE_BIAS_NV = 0x8718, + GL_VIBRANCE_BIAS_NV = 0x8719, + GL_TEXTURE_BORDER_VALUES_NV = 0x871A, + GL_TEXTURE_HI_SIZE_NV = 0x871B, + GL_TEXTURE_LO_SIZE_NV = 0x871C, + GL_TEXTURE_DS_SIZE_NV = 0x871D, + GL_TEXTURE_DT_SIZE_NV = 0x871E, + GL_TEXTURE_MAG_SIZE_NV = 0x871F, + + // GL_NV_texture_shader2 + GL_DOT_PRODUCT_TEXTURE_3D_NV = 0x86EF, + + // GL_NV_vertex_array_range2 + GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = 0x8533, + + // GL_NV_vertex_program + GL_VERTEX_PROGRAM_NV = 0x8620, + GL_VERTEX_STATE_PROGRAM_NV = 0x8621, + GL_ATTRIB_ARRAY_SIZE_NV = 0x8623, + GL_ATTRIB_ARRAY_STRIDE_NV = 0x8624, + GL_ATTRIB_ARRAY_TYPE_NV = 0x8625, + GL_CURRENT_ATTRIB_NV = 0x8626, + GL_PROGRAM_LENGTH_NV = 0x8627, + GL_PROGRAM_STRING_NV = 0x8628, + GL_MODELVIEW_PROJECTION_NV = 0x8629, + GL_IDENTITY_NV = 0x862A, + GL_INVERSE_NV = 0x862B, + GL_TRANSPOSE_NV = 0x862C, + GL_INVERSE_TRANSPOSE_NV = 0x862D, + GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = 0x862E, + GL_MAX_TRACK_MATRICES_NV = 0x862F, + GL_MATRIX0_NV = 0x8630, + GL_MATRIX1_NV = 0x8631, + GL_MATRIX2_NV = 0x8632, + GL_MATRIX3_NV = 0x8633, + GL_MATRIX4_NV = 0x8634, + GL_MATRIX5_NV = 0x8635, + GL_MATRIX6_NV = 0x8636, + GL_MATRIX7_NV = 0x8637, + GL_CURRENT_MATRIX_STACK_DEPTH_NV = 0x8640, + GL_CURRENT_MATRIX_NV = 0x8641, + GL_VERTEX_PROGRAM_POINT_SIZE_NV = 0x8642, + GL_VERTEX_PROGRAM_TWO_SIDE_NV = 0x8643, + GL_PROGRAM_PARAMETER_NV = 0x8644, + GL_ATTRIB_ARRAY_POINTER_NV = 0x8645, + GL_PROGRAM_TARGET_NV = 0x8646, + GL_PROGRAM_RESIDENT_NV = 0x8647, + GL_TRACK_MATRIX_NV = 0x8648, + GL_TRACK_MATRIX_TRANSFORM_NV = 0x8649, + GL_VERTEX_PROGRAM_BINDING_NV = 0x864A, + GL_PROGRAM_ERROR_POSITION_NV = 0x864B, + GL_VERTEX_ATTRIB_ARRAY0_NV = 0x8650, + GL_VERTEX_ATTRIB_ARRAY1_NV = 0x8651, + GL_VERTEX_ATTRIB_ARRAY2_NV = 0x8652, + GL_VERTEX_ATTRIB_ARRAY3_NV = 0x8653, + GL_VERTEX_ATTRIB_ARRAY4_NV = 0x8654, + GL_VERTEX_ATTRIB_ARRAY5_NV = 0x8655, + GL_VERTEX_ATTRIB_ARRAY6_NV = 0x8656, + GL_VERTEX_ATTRIB_ARRAY7_NV = 0x8657, + GL_VERTEX_ATTRIB_ARRAY8_NV = 0x8658, + GL_VERTEX_ATTRIB_ARRAY9_NV = 0x8659, + GL_VERTEX_ATTRIB_ARRAY10_NV = 0x865A, + GL_VERTEX_ATTRIB_ARRAY11_NV = 0x865B, + GL_VERTEX_ATTRIB_ARRAY12_NV = 0x865C, + GL_VERTEX_ATTRIB_ARRAY13_NV = 0x865D, + GL_VERTEX_ATTRIB_ARRAY14_NV = 0x865E, + GL_VERTEX_ATTRIB_ARRAY15_NV = 0x865F, + GL_MAP1_VERTEX_ATTRIB0_4_NV = 0x8660, + GL_MAP1_VERTEX_ATTRIB1_4_NV = 0x8661, + GL_MAP1_VERTEX_ATTRIB2_4_NV = 0x8662, + GL_MAP1_VERTEX_ATTRIB3_4_NV = 0x8663, + GL_MAP1_VERTEX_ATTRIB4_4_NV = 0x8664, + GL_MAP1_VERTEX_ATTRIB5_4_NV = 0x8665, + GL_MAP1_VERTEX_ATTRIB6_4_NV = 0x8666, + GL_MAP1_VERTEX_ATTRIB7_4_NV = 0x8667, + GL_MAP1_VERTEX_ATTRIB8_4_NV = 0x8668, + GL_MAP1_VERTEX_ATTRIB9_4_NV = 0x8669, + GL_MAP1_VERTEX_ATTRIB10_4_NV = 0x866A, + GL_MAP1_VERTEX_ATTRIB11_4_NV = 0x866B, + GL_MAP1_VERTEX_ATTRIB12_4_NV = 0x866C, + GL_MAP1_VERTEX_ATTRIB13_4_NV = 0x866D, + GL_MAP1_VERTEX_ATTRIB14_4_NV = 0x866E, + GL_MAP1_VERTEX_ATTRIB15_4_NV = 0x866F, + GL_MAP2_VERTEX_ATTRIB0_4_NV = 0x8670, + GL_MAP2_VERTEX_ATTRIB1_4_NV = 0x8671, + GL_MAP2_VERTEX_ATTRIB2_4_NV = 0x8672, + GL_MAP2_VERTEX_ATTRIB3_4_NV = 0x8673, + GL_MAP2_VERTEX_ATTRIB4_4_NV = 0x8674, + GL_MAP2_VERTEX_ATTRIB5_4_NV = 0x8675, + GL_MAP2_VERTEX_ATTRIB6_4_NV = 0x8676, + GL_MAP2_VERTEX_ATTRIB7_4_NV = 0x8677, + GL_MAP2_VERTEX_ATTRIB8_4_NV = 0x8678, + GL_MAP2_VERTEX_ATTRIB9_4_NV = 0x8679, + GL_MAP2_VERTEX_ATTRIB10_4_NV = 0x867A, + GL_MAP2_VERTEX_ATTRIB11_4_NV = 0x867B, + GL_MAP2_VERTEX_ATTRIB12_4_NV = 0x867C, + GL_MAP2_VERTEX_ATTRIB13_4_NV = 0x867D, + GL_MAP2_VERTEX_ATTRIB14_4_NV = 0x867E, + GL_MAP2_VERTEX_ATTRIB15_4_NV = 0x867F, + + // GL_NV_copy_depth_to_color + GL_DEPTH_STENCIL_TO_RGBA_NV = 0x886E, + GL_DEPTH_STENCIL_TO_BGRA_NV = 0x886F, + + // GL_NV_multisample_filter_hint + GL_MULTISAMPLE_FILTER_HINT_NV = 0x8534, + + // GL_NV_depth_clamp + GL_DEPTH_CLAMP_NV = 0x864F, + + // GL_NV_occlusion_query + GL_PIXEL_COUNTER_BITS_NV = 0x8864, + GL_CURRENT_OCCLUSION_QUERY_ID_NV = 0x8865, + GL_PIXEL_COUNT_NV = 0x8866, + GL_PIXEL_COUNT_AVAILABLE_NV = 0x8867, + + // GL_NV_point_sprite + GL_POINT_SPRITE_NV = 0x8861, + GL_COORD_REPLACE_NV = 0x8862, + GL_POINT_SPRITE_R_MODE_NV = 0x8863, + + // GL_NV_texture_shader3 + GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = 0x8850, + GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = 0x8851, + GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8852, + GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = 0x8853, + GL_OFFSET_HILO_TEXTURE_2D_NV = 0x8854, + GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = 0x8855, + GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = 0x8856, + GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = 0x8857, + GL_DEPENDENT_HILO_TEXTURE_2D_NV = 0x8858, + GL_DEPENDENT_RGB_TEXTURE_3D_NV = 0x8859, + GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = 0x885A, + GL_DOT_PRODUCT_PASS_THROUGH_NV = 0x885B, + GL_DOT_PRODUCT_TEXTURE_1D_NV = 0x885C, + GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = 0x885D, + GL_HILO8_NV = 0x885E, + GL_SIGNED_HILO8_NV = 0x885F, + GL_FORCE_BLUE_TO_ONE_NV = 0x8860, + + // GL_NV_float_buffer + GL_FLOAT_R_NV = 0x8880, + GL_FLOAT_RG_NV = 0x8881, + GL_FLOAT_RGB_NV = 0x8882, + GL_FLOAT_RGBA_NV = 0x8883, + GL_FLOAT_R16_NV = 0x8884, + GL_FLOAT_R32_NV = 0x8885, + GL_FLOAT_RG16_NV = 0x8886, + GL_FLOAT_RG32_NV = 0x8887, + GL_FLOAT_RGB16_NV = 0x8888, + GL_FLOAT_RGB32_NV = 0x8889, + GL_FLOAT_RGBA16_NV = 0x888A, + GL_FLOAT_RGBA32_NV = 0x888B, + GL_TEXTURE_FLOAT_COMPONENTS_NV = 0x888C, + GL_FLOAT_CLEAR_COLOR_VALUE_NV = 0x888D, + GL_FLOAT_RGBA_MODE_NV = 0x888E, + + // GL_NV_fragment_program + GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = 0x8868, + GL_FRAGMENT_PROGRAM_NV = 0x8870, + GL_MAX_TEXTURE_COORDS_NV = 0x8871, + GL_MAX_TEXTURE_IMAGE_UNITS_NV = 0x8872, + GL_FRAGMENT_PROGRAM_BINDING_NV = 0x8873, + GL_PROGRAM_ERROR_STRING_NV = 0x8874, + + // GL_NV_half_float + GL_HALF_FLOAT_NV = 0x140B, + + // GL_NV_pixel_data_range + GL_WRITE_PIXEL_DATA_RANGE_NV = 0x8878, + GL_READ_PIXEL_DATA_RANGE_NV = 0x8879, + GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = 0x887A, + GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = 0x887B, + GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = 0x887C, + GL_READ_PIXEL_DATA_RANGE_POINTER_NV = 0x887D, + + // GL_NV_primitive_restart + GL_PRIMITIVE_RESTART_NV = 0x8558, + GL_PRIMITIVE_RESTART_INDEX_NV = 0x8559, + + // GL_NV_texture_expand_normal + GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = 0x888F, + + // GL_NV_fragment_program2 + GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = 0x88F4, + GL_MAX_PROGRAM_CALL_DEPTH_NV = 0x88F5, + GL_MAX_PROGRAM_IF_DEPTH_NV = 0x88F6, + GL_MAX_PROGRAM_LOOP_DEPTH_NV = 0x88F7, + GL_MAX_PROGRAM_LOOP_COUNT_NV = 0x88F8, + + // GL_NV_gpu_program4 + GL_MIN_PROGRAM_TEXEL_OFFSET_NV = 0x8904, + GL_MAX_PROGRAM_TEXEL_OFFSET_NV = 0x8905, + GL_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8906, + GL_PROGRAM_RESULT_COMPONENTS_NV = 0x8907, + GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV = 0x8908, + GL_MAX_PROGRAM_RESULT_COMPONENTS_NV = 0x8909, + GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV = 0x8DA5, + GL_MAX_PROGRAM_GENERIC_RESULTS_NV = 0x8DA6, + + // GL_NV_geometry_program4 + GL_LINES_ADJACENCY_EXT = 0x000A, + GL_LINE_STRIP_ADJACENCY_EXT = 0x000B, + GL_TRIANGLES_ADJACENCY_EXT = 0x000C, + GL_TRIANGLE_STRIP_ADJACENCY_EXT = 0x000D, + GL_GEOMETRY_PROGRAM_NV = 0x8C26, + GL_MAX_PROGRAM_OUTPUT_VERTICES_NV = 0x8C27, + GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV = 0x8C28, + GL_GEOMETRY_VERTICES_OUT_EXT = 0x8DDA, + GL_GEOMETRY_INPUT_TYPE_EXT = 0x8DDB, + GL_GEOMETRY_OUTPUT_TYPE_EXT = 0x8DDC, + GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT = 0x8C29, + GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT = 0x8DA7, + GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT = 0x8DA8, + GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT = 0x8DA9, + GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT = 0x8CD4, + GL_PROGRAM_POINT_SIZE_EXT = 0x8642, + + // GL_NV_vertex_program4 + GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV = 0x88FD, + + // GL_NV_depth_buffer_float + GL_DEPTH_COMPONENT32F_NV = 0x8DAB, + GL_DEPTH32F_STENCIL8_NV = 0x8DAC, + GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV = 0x8DAD, + GL_DEPTH_BUFFER_FLOAT_MODE_NV = 0x8DAF, + + // GL_NV_framebuffer_multisample_coverage + GL_RENDERBUFFER_COVERAGE_SAMPLES_NV = 0x8CAB, + GL_RENDERBUFFER_COLOR_SAMPLES_NV = 0x8E10, + GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E11, + GL_MULTISAMPLE_COVERAGE_MODES_NV = 0x8E12, + + // GL_NV_transform_feedback + GL_BACK_PRIMARY_COLOR_NV = 0x8C77, + GL_BACK_SECONDARY_COLOR_NV = 0x8C78, + GL_TEXTURE_COORD_NV = 0x8C79, + GL_CLIP_DISTANCE_NV = 0x8C7A, + GL_VERTEX_ID_NV = 0x8C7B, + GL_PRIMITIVE_ID_NV = 0x8C7C, + GL_GENERIC_ATTRIB_NV = 0x8C7D, + GL_TRANSFORM_FEEDBACK_ATTRIBS_NV = 0x8C7E, + GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV = 0x8C7F, + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV = 0x8C80, + GL_ACTIVE_VARYINGS_NV = 0x8C81, + GL_ACTIVE_VARYING_MAX_LENGTH_NV = 0x8C82, + GL_TRANSFORM_FEEDBACK_VARYINGS_NV = 0x8C83, + GL_TRANSFORM_FEEDBACK_BUFFER_START_NV = 0x8C84, + GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV = 0x8C85, + GL_TRANSFORM_FEEDBACK_RECORD_NV = 0x8C86, + GL_PRIMITIVES_GENERATED_NV = 0x8C87, + GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV = 0x8C88, + GL_RASTERIZER_DISCARD_NV = 0x8C89, + GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV = 0x8C8A, + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV = 0x8C8B, + GL_INTERLEAVED_ATTRIBS_NV = 0x8C8C, + GL_SEPARATE_ATTRIBS_NV = 0x8C8D, + GL_TRANSFORM_FEEDBACK_BUFFER_NV = 0x8C8E, + GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV = 0x8C8F, + + // GL_NV_conditional_render + GL_QUERY_WAIT_NV = 0x8E13, + GL_QUERY_NO_WAIT_NV = 0x8E14, + GL_QUERY_BY_REGION_WAIT_NV = 0x8E15, + GL_QUERY_BY_REGION_NO_WAIT_NV = 0x8E16, + + // GL_NV_present_video + GL_FRAME_NV = 0x8E26, + GL_FIELDS_NV = 0x8E27, + GL_CURRENT_TIME_NV = 0x8E28, + GL_NUM_FILL_STREAMS_NV = 0x8E29, + GL_PRESENT_TIME_NV = 0x8E2A, + GL_PRESENT_DURATION_NV = 0x8E2B, + + // GL_NV_explicit_multisample + GL_SAMPLE_POSITION_NV = 0x8E50, + GL_SAMPLE_MASK_NV = 0x8E51, + GL_SAMPLE_MASK_VALUE_NV = 0x8E52, + GL_TEXTURE_BINDING_RENDERBUFFER_NV = 0x8E53, + GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV = 0x8E54, + GL_TEXTURE_RENDERBUFFER_NV = 0x8E55, + GL_SAMPLER_RENDERBUFFER_NV = 0x8E56, + GL_INT_SAMPLER_RENDERBUFFER_NV = 0x8E57, + GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV = 0x8E58, + GL_MAX_SAMPLE_MASK_WORDS_NV = 0x8E59, + + // GL_NV_transform_feedback2 + GL_TRANSFORM_FEEDBACK_NV = 0x8E22, + GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV = 0x8E23, + GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV = 0x8E24, + GL_TRANSFORM_FEEDBACK_BINDING_NV = 0x8E25, + + // GL_NV_video_capture + GL_VIDEO_BUFFER_NV = 0x9020, + GL_VIDEO_BUFFER_BINDING_NV = 0x9021, + GL_FIELD_UPPER_NV = 0x9022, + GL_FIELD_LOWER_NV = 0x9023, + GL_NUM_VIDEO_CAPTURE_STREAMS_NV = 0x9024, + GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV = 0x9025, + GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV = 0x9026, + GL_LAST_VIDEO_CAPTURE_STATUS_NV = 0x9027, + GL_VIDEO_BUFFER_PITCH_NV = 0x9028, + GL_VIDEO_COLOR_CONVERSION_MATRIX_NV = 0x9029, + GL_VIDEO_COLOR_CONVERSION_MAX_NV = 0x902A, + GL_VIDEO_COLOR_CONVERSION_MIN_NV = 0x902B, + GL_VIDEO_COLOR_CONVERSION_OFFSET_NV = 0x902C, + GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV = 0x902D, + GL_PARTIAL_SUCCESS_NV = 0x902E, + GL_SUCCESS_NV = 0x902F, + GL_FAILURE_NV = 0x9030, + GL_YCBYCR8_422_NV = 0x9031, + GL_YCBAYCR8A_4224_NV = 0x9032, + GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV = 0x9033, + GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV = 0x9034, + GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV = 0x9035, + GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV = 0x9036, + GL_Z4Y12Z4CB12Z4CR12_444_NV = 0x9037, + GL_VIDEO_CAPTURE_FRAME_WIDTH_NV = 0x9038, + GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV = 0x9039, + GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV = 0x903A, + GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV = 0x903B, + GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV = 0x903C, + + // GL_NV_shader_buffer_load + GL_BUFFER_GPU_ADDRESS_NV = 0x8F1D, + GL_GPU_ADDRESS_NV = 0x8F34, + GL_MAX_SHADER_BUFFER_ADDRESS_NV = 0x8F35, + + // GL_NV_vertex_buffer_unified_memory + GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV = 0x8F1E, + GL_ELEMENT_ARRAY_UNIFIED_NV = 0x8F1F, + GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV = 0x8F20, + GL_VERTEX_ARRAY_ADDRESS_NV = 0x8F21, + GL_NORMAL_ARRAY_ADDRESS_NV = 0x8F22, + GL_COLOR_ARRAY_ADDRESS_NV = 0x8F23, + GL_INDEX_ARRAY_ADDRESS_NV = 0x8F24, + GL_TEXTURE_COORD_ARRAY_ADDRESS_NV = 0x8F25, + GL_EDGE_FLAG_ARRAY_ADDRESS_NV = 0x8F26, + GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV = 0x8F27, + GL_FOG_COORD_ARRAY_ADDRESS_NV = 0x8F28, + GL_ELEMENT_ARRAY_ADDRESS_NV = 0x8F29, + GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV = 0x8F2A, + GL_VERTEX_ARRAY_LENGTH_NV = 0x8F2B, + GL_NORMAL_ARRAY_LENGTH_NV = 0x8F2C, + GL_COLOR_ARRAY_LENGTH_NV = 0x8F2D, + GL_INDEX_ARRAY_LENGTH_NV = 0x8F2E, + GL_TEXTURE_COORD_ARRAY_LENGTH_NV = 0x8F2F, + GL_EDGE_FLAG_ARRAY_LENGTH_NV = 0x8F30, + GL_SECONDARY_COLOR_ARRAY_LENGTH_NV = 0x8F31, + GL_FOG_COORD_ARRAY_LENGTH_NV = 0x8F32, + GL_ELEMENT_ARRAY_LENGTH_NV = 0x8F33, + } +} + +version(DerelictGL_ATI) +{ + enum : GLenum + { + // GL_ATI_texture_mirror_once + GL_MIRROR_CLAMP_ATI = 0x8742, + GL_MIRROR_CLAMP_TO_EDGE_ATI = 0x8743, + + // GL_ATI_envmap_bumpmap + GL_BUMP_ROT_MATRIX_ATI = 0x8775, + GL_BUMP_ROT_MATRIX_SIZE_ATI = 0x8776, + GL_BUMP_NUM_TEX_UNITS_ATI = 0x8777, + GL_BUMP_TEX_UNITS_ATI = 0x8778, + GL_DUDV_ATI = 0x8779, + GL_DU8DV8_ATI = 0x877A, + GL_BUMP_ENVMAP_ATI = 0x877B, + GL_BUMP_TARGET_ATI = 0x877C, + + // GL_ATI_fragment_shader + GL_FRAGMENT_SHADER_ATI = 0x8920, + GL_REG_0_ATI = 0x8921, + GL_REG_1_ATI = 0x8922, + GL_REG_2_ATI = 0x8923, + GL_REG_3_ATI = 0x8924, + GL_REG_4_ATI = 0x8925, + GL_REG_5_ATI = 0x8926, + GL_REG_6_ATI = 0x8927, + GL_REG_7_ATI = 0x8928, + GL_REG_8_ATI = 0x8929, + GL_REG_9_ATI = 0x892A, + GL_REG_10_ATI = 0x892B, + GL_REG_11_ATI = 0x892C, + GL_REG_12_ATI = 0x892D, + GL_REG_13_ATI = 0x892E, + GL_REG_14_ATI = 0x892F, + GL_REG_15_ATI = 0x8930, + GL_REG_16_ATI = 0x8931, + GL_REG_17_ATI = 0x8932, + GL_REG_18_ATI = 0x8933, + GL_REG_19_ATI = 0x8934, + GL_REG_20_ATI = 0x8935, + GL_REG_21_ATI = 0x8936, + GL_REG_22_ATI = 0x8937, + GL_REG_23_ATI = 0x8938, + GL_REG_24_ATI = 0x8939, + GL_REG_25_ATI = 0x893A, + GL_REG_26_ATI = 0x893B, + GL_REG_27_ATI = 0x893C, + GL_REG_28_ATI = 0x893D, + GL_REG_29_ATI = 0x893E, + GL_REG_30_ATI = 0x893F, + GL_REG_31_ATI = 0x8940, + GL_CON_0_ATI = 0x8941, + GL_CON_1_ATI = 0x8942, + GL_CON_2_ATI = 0x8943, + GL_CON_3_ATI = 0x8944, + GL_CON_4_ATI = 0x8945, + GL_CON_5_ATI = 0x8946, + GL_CON_6_ATI = 0x8947, + GL_CON_7_ATI = 0x8948, + GL_CON_8_ATI = 0x8949, + GL_CON_9_ATI = 0x894A, + GL_CON_10_ATI = 0x894B, + GL_CON_11_ATI = 0x894C, + GL_CON_12_ATI = 0x894D, + GL_CON_13_ATI = 0x894E, + GL_CON_14_ATI = 0x894F, + GL_CON_15_ATI = 0x8950, + GL_CON_16_ATI = 0x8951, + GL_CON_17_ATI = 0x8952, + GL_CON_18_ATI = 0x8953, + GL_CON_19_ATI = 0x8954, + GL_CON_20_ATI = 0x8955, + GL_CON_21_ATI = 0x8956, + GL_CON_22_ATI = 0x8957, + GL_CON_23_ATI = 0x8958, + GL_CON_24_ATI = 0x8959, + GL_CON_25_ATI = 0x895A, + GL_CON_26_ATI = 0x895B, + GL_CON_27_ATI = 0x895C, + GL_CON_28_ATI = 0x895D, + GL_CON_29_ATI = 0x895E, + GL_CON_30_ATI = 0x895F, + GL_CON_31_ATI = 0x8960, + GL_MOV_ATI = 0x8961, + GL_ADD_ATI = 0x8963, + GL_MUL_ATI = 0x8964, + GL_SUB_ATI = 0x8965, + GL_DOT3_ATI = 0x8966, + GL_DOT4_ATI = 0x8967, + GL_MAD_ATI = 0x8968, + GL_LERP_ATI = 0x8969, + GL_CND_ATI = 0x896A, + GL_CND0_ATI = 0x896B, + GL_DOT2_ADD_ATI = 0x896C, + GL_SECONDARY_INTERPOLATOR_ATI = 0x896D, + GL_NUM_FRAGMENT_REGISTERS_ATI = 0x896E, + GL_NUM_FRAGMENT_CONSTANTS_ATI = 0x896F, + GL_NUM_PASSES_ATI = 0x8970, + GL_NUM_INSTRUCTIONS_PER_PASS_ATI = 0x8971, + GL_NUM_INSTRUCTIONS_TOTAL_ATI = 0x8972, + GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI = 0x8973, + GL_NUM_LOOPBACK_COMPONENTS_ATI = 0x8974, + GL_COLOR_ALPHA_PAIRING_ATI = 0x8975, + GL_SWIZZLE_STR_ATI = 0x8976, + GL_SWIZZLE_STQ_ATI = 0x8977, + GL_SWIZZLE_STR_DR_ATI = 0x8978, + GL_SWIZZLE_STQ_DQ_ATI = 0x8979, + GL_SWIZZLE_STRQ_ATI = 0x897A, + GL_SWIZZLE_STRQ_DQ_ATI = 0x897B, + GL_RED_BIT_ATI = 0x00000001, + GL_GREEN_BIT_ATI = 0x00000002, + GL_BLUE_BIT_ATI = 0x00000004, + GL_2X_BIT_ATI = 0x00000001, + GL_4X_BIT_ATI = 0x00000002, + GL_8X_BIT_ATI = 0x00000004, + GL_HALF_BIT_ATI = 0x00000008, + GL_QUARTER_BIT_ATI = 0x00000010, + GL_EIGHTH_BIT_ATI = 0x00000020, + GL_SATURATE_BIT_ATI = 0x00000040, + GL_COMP_BIT_ATI = 0x00000002, + GL_NEGATE_BIT_ATI = 0x00000004, + GL_BIAS_BIT_ATI = 0x00000008, + + // GL_ATI_pn_triangles + GL_PN_TRIANGLES_ATI = 0x87F0, + GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F1, + GL_PN_TRIANGLES_POINT_MODE_ATI = 0x87F2, + GL_PN_TRIANGLES_NORMAL_MODE_ATI = 0x87F3, + GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = 0x87F4, + GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = 0x87F5, + GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = 0x87F6, + GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = 0x87F7, + GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = 0x87F8, + + // GL_ATI_vertex_array_object + GL_STATIC_ATI = 0x8760, + GL_DYNAMIC_ATI = 0x8761, + GL_PRESERVE_ATI = 0x8762, + GL_DISCARD_ATI = 0x8763, + GL_OBJECT_BUFFER_SIZE_ATI = 0x8764, + GL_OBJECT_BUFFER_USAGE_ATI = 0x8765, + GL_ARRAY_OBJECT_BUFFER_ATI = 0x8766, + GL_ARRAY_OBJECT_OFFSET_ATI = 0x8767, + + // GL_ATI_vertex_streams + GL_MAX_VERTEX_STREAMS_ATI = 0x876B, + GL_VERTEX_STREAM0_ATI = 0x876C, + GL_VERTEX_STREAM1_ATI = 0x876D, + GL_VERTEX_STREAM2_ATI = 0x876E, + GL_VERTEX_STREAM3_ATI = 0x876F, + GL_VERTEX_STREAM4_ATI = 0x8770, + GL_VERTEX_STREAM5_ATI = 0x8771, + GL_VERTEX_STREAM6_ATI = 0x8772, + GL_VERTEX_STREAM7_ATI = 0x8773, + GL_VERTEX_SOURCE_ATI = 0x8774, + + // GL_ATI_element_array + GL_ELEMENT_ARRAY_ATI = 0x8768, + GL_ELEMENT_ARRAY_TYPE_ATI = 0x8769, + GL_ELEMENT_ARRAY_POINTER_ATI = 0x876A, + + // GL_ATI_text_fragment_shader + GL_TEXT_FRAGMENT_SHADER_ATI = 0x8200, + + // GL_ATI_draw_buffers + GL_MAX_DRAW_BUFFERS_ATI = 0x8824, + GL_DRAW_BUFFER0_ATI = 0x8825, + GL_DRAW_BUFFER1_ATI = 0x8826, + GL_DRAW_BUFFER2_ATI = 0x8827, + GL_DRAW_BUFFER3_ATI = 0x8828, + GL_DRAW_BUFFER4_ATI = 0x8829, + GL_DRAW_BUFFER5_ATI = 0x882A, + GL_DRAW_BUFFER6_ATI = 0x882B, + GL_DRAW_BUFFER7_ATI = 0x882C, + GL_DRAW_BUFFER8_ATI = 0x882D, + GL_DRAW_BUFFER9_ATI = 0x882E, + GL_DRAW_BUFFER10_ATI = 0x882F, + GL_DRAW_BUFFER11_ATI = 0x8830, + GL_DRAW_BUFFER12_ATI = 0x8831, + GL_DRAW_BUFFER13_ATI = 0x8832, + GL_DRAW_BUFFER14_ATI = 0x8833, + GL_DRAW_BUFFER15_ATI = 0x8834, + + // GL_ATI_pixel_format_float + GL_TYPE_RGBA_FLOAT_ATI = 0x8820, + GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = 0x8835, + + // GL_ATI_texture_env_combine3 + GL_MODULATE_ADD_ATI = 0x8744, + GL_MODULATE_SIGNED_ADD_ATI = 0x8745, + GL_MODULATE_SUBTRACT_ATI = 0x8746, + + // GL_ATI_texture_float + GL_RGBA_FLOAT32_ATI = 0x8814, + GL_RGB_FLOAT32_ATI = 0x8815, + GL_ALPHA_FLOAT32_ATI = 0x8816, + GL_INTENSITY_FLOAT32_ATI = 0x8817, + GL_LUMINANCE_FLOAT32_ATI = 0x8818, + GL_LUMINANCE_ALPHA_FLOAT32_ATI = 0x8819, + GL_RGBA_FLOAT16_ATI = 0x881A, + GL_RGB_FLOAT16_ATI = 0x881B, + GL_ALPHA_FLOAT16_ATI = 0x881C, + GL_INTENSITY_FLOAT16_ATI = 0x881D, + GL_LUMINANCE_FLOAT16_ATI = 0x881E, + GL_LUMINANCE_ALPHA_FLOAT16_ATI = 0x881F, + + // GL_ATI_separate_stencil + GL_STENCIL_BACK_FUNC_ATI = 0x8800, + GL_STENCIL_BACK_FAIL_ATI = 0x8801, + GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = 0x8802, + GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = 0x8803, + + // GL_ATI_meminfo + GL_VBO_FREE_MEMORY_ATI = 0x87FB, + GL_TEXTURE_FREE_MEMORY_ATI = 0x87FC, + GL_RENDERBUFFER_FREE_MEMORY_ATI = 0x87FD, + } +} + +version(DerelictGL_AMD) +{ + enum : GLenum + { + // GL_AMD_performance_monitor + GL_COUNTER_TYPE_AMD = 0x8BC0, + GL_COUNTER_RANGE_AMD = 0x8BC1, + GL_UNSIGNED_INT64_AMD = 0x8BC2, + GL_PERCENTAGE_AMD = 0x8BC3, + GL_PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4, + GL_PERFMON_RESULT_SIZE_AMD = 0x8BC5, + GL_PERFMON_RESULT_AMD = 0x8BC6, + + // GL_AMD_vertex_shader_tesselator + GL_SAMPLER_BUFFER_AMD = 0x9001, + GL_INT_SAMPLER_BUFFER_AMD = 0x9002, + GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD = 0x9003, + GL_TESSELLATION_MODE_AMD = 0x9004, + GL_TESSELLATION_FACTOR_AMD = 0x9005, + GL_DISCRETE_AMD = 0x9006, + GL_CONTINUOUS_AMD = 0x9007, + } +} + +version(DerelictGL_SGI) +{ + enum : GLenum + { + // GL_SGI_color_matrix + GL_COLOR_MATRIX_SGI = 0x80B1, + GL_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B2, + GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = 0x80B3, + GL_POST_COLOR_MATRIX_RED_SCALE_SGI = 0x80B4, + GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = 0x80B5, + GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = 0x80B6, + GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = 0x80B7, + GL_POST_COLOR_MATRIX_RED_BIAS_SGI = 0x80B8, + GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = 0x80B9, + GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = 0x80BA, + GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = 0x80BB, + + // GL_SGI_color_table + GL_COLOR_TABLE_SGI = 0x80D0, + GL_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D1, + GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D2, + GL_PROXY_COLOR_TABLE_SGI = 0x80D3, + GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = 0x80D4, + GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = 0x80D5, + GL_COLOR_TABLE_SCALE_SGI = 0x80D6, + GL_COLOR_TABLE_BIAS_SGI = 0x80D7, + GL_COLOR_TABLE_FORMAT_SGI = 0x80D8, + GL_COLOR_TABLE_WIDTH_SGI = 0x80D9, + GL_COLOR_TABLE_RED_SIZE_SGI = 0x80DA, + GL_COLOR_TABLE_GREEN_SIZE_SGI = 0x80DB, + GL_COLOR_TABLE_BLUE_SIZE_SGI = 0x80DC, + GL_COLOR_TABLE_ALPHA_SIZE_SGI = 0x80DD, + GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = 0x80DE, + GL_COLOR_TABLE_INTENSITY_SIZE_SGI = 0x80DF, + + // GL_SGI_texture_color_table + GL_TEXTURE_COLOR_TABLE_SGI = 0x80BC, + GL_PROXY_TEXTURE_COLOR_TABLE_SGI = 0x80BD, + } +} + +version(DerelictGL_SGIS) +{ + enum : GLenum + { + // GL_SGIS_texture_filter4 + GL_FILTER4_SGIS = 0x8146, + GL_TEXTURE_FILTER4_SIZE_SGIS = 0x8147, + + // GL_SGIS_pixel_texture + GL_PIXEL_TEXTURE_SGIS = 0x8353, + GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = 0x8354, + GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = 0x8355, + GL_PIXEL_GROUP_COLOR_SGIS = 0x8356, + + // GL_SGIS_texture4D + GL_PACK_SKIP_VOLUMES_SGIS = 0x8130, + GL_PACK_IMAGE_DEPTH_SGIS = 0x8131, + GL_UNPACK_SKIP_VOLUMES_SGIS = 0x8132, + GL_UNPACK_IMAGE_DEPTH_SGIS = 0x8133, + GL_TEXTURE_4D_SGIS = 0x8134, + GL_PROXY_TEXTURE_4D_SGIS = 0x8135, + GL_TEXTURE_4DSIZE_SGIS = 0x8136, + GL_TEXTURE_WRAP_Q_SGIS = 0x8137, + GL_MAX_4D_TEXTURE_SIZE_SGIS = 0x8138, + GL_TEXTURE_4D_BINDING_SGIS = 0x814F, + + // GL_SGIS_detail_texture + GL_DETAIL_TEXTURE_2D_SGIS = 0x8095, + GL_DETAIL_TEXTURE_2D_BINDING_SGIS = 0x8096, + GL_LINEAR_DETAIL_SGIS = 0x8097, + GL_LINEAR_DETAIL_ALPHA_SGIS = 0x8098, + GL_LINEAR_DETAIL_COLOR_SGIS = 0x8099, + GL_DETAIL_TEXTURE_LEVEL_SGIS = 0x809A, + GL_DETAIL_TEXTURE_MODE_SGIS = 0x809B, + GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS = 0x809C, + + // GL_SGIS_sharpen_texture + GL_LINEAR_SHARPEN_SGIS = 0x80AD, + GL_LINEAR_SHARPEN_ALPHA_SGIS = 0x80AE, + GL_LINEAR_SHARPEN_COLOR_SGIS = 0x80AF, + GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS = 0x80B0, + + // GL_SGIS_texture_lod + GL_TEXTURE_MIN_LOD_SGIS = 0x813A, + GL_TEXTURE_MAX_LOD_SGIS = 0x813B, + GL_TEXTURE_BASE_LEVEL_SGIS = 0x813C, + GL_TEXTURE_MAX_LEVEL_SGIS = 0x813D, + + // GL_SGIS_multisample + GL_MULTISAMPLE_SGIS = 0x809D, + GL_SAMPLE_ALPHA_TO_MASK_SGIS = 0x809E, + GL_SAMPLE_ALPHA_TO_ONE_SGIS = 0x809F, + GL_SAMPLE_MASK_SGIS = 0x80A0, + GL_1PASS_SGIS = 0x80A1, + GL_2PASS_0_SGIS = 0x80A2, + GL_2PASS_1_SGIS = 0x80A3, + GL_4PASS_0_SGIS = 0x80A4, + GL_4PASS_1_SGIS = 0x80A5, + GL_4PASS_2_SGIS = 0x80A6, + GL_4PASS_3_SGIS = 0x80A7, + GL_SAMPLE_BUFFERS_SGIS = 0x80A8, + GL_SAMPLES_SGIS = 0x80A9, + GL_SAMPLE_MASK_VALUE_SGIS = 0x80AA, + GL_SAMPLE_MASK_INVERT_SGIS = 0x80AB, + GL_SAMPLE_PATTERN_SGIS = 0x80AC, + + // GL_SGIS_generate_mipmap + GL_GENERATE_MIPMAP_SGIS = 0x8191, + GL_GENERATE_MIPMAP_HINT_SGIS = 0x8192, + + // GL_SGIS_texture_edge_clamp + GL_CLAMP_TO_EDGE_SGIS = 0x812F, + + // GL_SGIS_texture_border_clamp + GL_CLAMP_TO_BORDER_SGIS = 0x812D, + + // GL_SGIS_texture_select + GL_DUAL_ALPHA4_SGIS = 0x8110, + GL_DUAL_ALPHA8_SGIS = 0x8111, + GL_DUAL_ALPHA12_SGIS = 0x8112, + GL_DUAL_ALPHA16_SGIS = 0x8113, + GL_DUAL_LUMINANCE4_SGIS = 0x8114, + GL_DUAL_LUMINANCE8_SGIS = 0x8115, + GL_DUAL_LUMINANCE12_SGIS = 0x8116, + GL_DUAL_LUMINANCE16_SGIS = 0x8117, + GL_DUAL_INTENSITY4_SGIS = 0x8118, + GL_DUAL_INTENSITY8_SGIS = 0x8119, + GL_DUAL_INTENSITY12_SGIS = 0x811A, + GL_DUAL_INTENSITY16_SGIS = 0x811B, + GL_DUAL_LUMINANCE_ALPHA4_SGIS = 0x811C, + GL_DUAL_LUMINANCE_ALPHA8_SGIS = 0x811D, + GL_QUAD_ALPHA4_SGIS = 0x811E, + GL_QUAD_ALPHA8_SGIS = 0x811F, + GL_QUAD_LUMINANCE4_SGIS = 0x8120, + GL_QUAD_LUMINANCE8_SGIS = 0x8121, + GL_QUAD_INTENSITY4_SGIS = 0x8122, + GL_QUAD_INTENSITY8_SGIS = 0x8123, + GL_DUAL_TEXTURE_SELECT_SGIS = 0x8124, + GL_QUAD_TEXTURE_SELECT_SGIS = 0x8125, + + // GL_SGIS_point_parameters + GL_POINT_SIZE_MIN_SGIS = 0x8126, + GL_POINT_SIZE_MAX_SGIS = 0x8127, + GL_POINT_FADE_THRESHOLD_SIZE_SGIS = 0x8128, + GL_DISTANCE_ATTENUATION_SGIS = 0x8129, + + // GL_SGIS_fog_function + GL_FOG_FUNC_SGIS = 0x812A, + GL_FOG_FUNC_POINTS_SGIS = 0x812B, + GL_MAX_FOG_FUNC_POINTS_SGIS = 0x812C, + + // GL_SGIS_point_line_texgen + GL_EYE_DISTANCE_TO_POINT_SGIS = 0x81F0, + GL_OBJECT_DISTANCE_TO_POINT_SGIS = 0x81F1, + GL_EYE_DISTANCE_TO_LINE_SGIS = 0x81F2, + GL_OBJECT_DISTANCE_TO_LINE_SGIS = 0x81F3, + GL_EYE_POINT_SGIS = 0x81F4, + GL_OBJECT_POINT_SGIS = 0x81F5, + GL_EYE_LINE_SGIS = 0x81F6, + GL_OBJECT_LINE_SGIS = 0x81F7, + + // GL_SGIS_texture_color_mask + GL_TEXTURE_COLOR_WRITEMASK_SGIS = 0x81EF, + } +} + +version(DerelictGL_SGIX) +{ + enum : GLenum + { + // GL_SGIX_pixel_texture + GL_PIXEL_TEX_GEN_SGIX = 0x8139, + GL_PIXEL_TEX_GEN_MODE_SGIX = 0x832B, + + // GL_SGIX_clipmap + GL_LINEAR_CLIPMAP_LINEAR_SGIX = 0x8170, + GL_TEXTURE_CLIPMAP_CENTER_SGIX = 0x8171, + GL_TEXTURE_CLIPMAP_FRAME_SGIX = 0x8172, + GL_TEXTURE_CLIPMAP_OFFSET_SGIX = 0x8173, + GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8174, + GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX = 0x8175, + GL_TEXTURE_CLIPMAP_DEPTH_SGIX = 0x8176, + GL_MAX_CLIPMAP_DEPTH_SGIX = 0x8177, + GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX = 0x8178, + GL_NEAREST_CLIPMAP_NEAREST_SGIX = 0x844D, + GL_NEAREST_CLIPMAP_LINEAR_SGIX = 0x844E, + GL_LINEAR_CLIPMAP_NEAREST_SGIX = 0x844F, + + // GL_SGIX_shadow + GL_TEXTURE_COMPARE_SGIX = 0x819A, + GL_TEXTURE_COMPARE_OPERATOR_SGIX = 0x819B, + GL_TEXTURE_LEQUAL_R_SGIX = 0x819C, + GL_TEXTURE_GEQUAL_R_SGIX = 0x819D, + + // GL_SGIX_interlace + GL_INTERLACE_SGIX = 0x8094, + + // GL_SGIX_pixel_tiles + GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX = 0x813E, + GL_PIXEL_TILE_CACHE_INCREMENT_SGIX = 0x813F, + GL_PIXEL_TILE_WIDTH_SGIX = 0x8140, + GL_PIXEL_TILE_HEIGHT_SGIX = 0x8141, + GL_PIXEL_TILE_GRID_WIDTH_SGIX = 0x8142, + GL_PIXEL_TILE_GRID_HEIGHT_SGIX = 0x8143, + GL_PIXEL_TILE_GRID_DEPTH_SGIX = 0x8144, + GL_PIXEL_TILE_CACHE_SIZE_SGIX = 0x8145, + + // GL_SGIX_sprite + GL_SPRITE_SGIX = 0x8148, + GL_SPRITE_MODE_SGIX = 0x8149, + GL_SPRITE_AXIS_SGIX = 0x814A, + GL_SPRITE_TRANSLATION_SGIX = 0x814B, + GL_SPRITE_AXIAL_SGIX = 0x814C, + GL_SPRITE_OBJECT_ALIGNED_SGIX = 0x814D, + GL_SPRITE_EYE_ALIGNED_SGIX = 0x814E, + + // GL_SGIX_texture_multi_buffer + GL_TEXTURE_MULTI_BUFFER_HINT_SGIX = 0x812E, + + // GL_SGIX_instruments + GL_INSTRUMENT_BUFFER_POINTER_SGIX = 0x8180, + GL_INSTRUMENT_MEASUREMENTS_SGIX = 0x8181, + + // GL_SGIX_texture_scale_bias + GL_POST_TEXTURE_FILTER_BIAS_SGIX = 0x8179, + GL_POST_TEXTURE_FILTER_SCALE_SGIX = 0x817A, + GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX = 0x817B, + GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX = 0x817C, + + // GL_SGIX_framezoom + GL_FRAMEZOOM_SGIX = 0x818B, + GL_FRAMEZOOM_FACTOR_SGIX = 0x818C, + GL_MAX_FRAMEZOOM_FACTOR_SGIX = 0x818D, + + // GL_SGIX_polynomial_ffd + GL_GEOMETRY_DEFORMATION_SGIX = 0x8194, + GL_TEXTURE_DEFORMATION_SGIX = 0x8195, + GL_DEFORMATIONS_MASK_SGIX = 0x8196, + GL_MAX_DEFORMATION_ORDER_SGIX = 0x8197, + + // GL_SGIX_reference_plane + GL_REFERENCE_PLANE_SGIX = 0x817D, + GL_REFERENCE_PLANE_EQUATION_SGIX = 0x817E, + + // GL_SGIX_depth_texture + GL_DEPTH_COMPONENT16_SGIX = 0x81A5, + GL_DEPTH_COMPONENT24_SGIX = 0x81A6, + GL_DEPTH_COMPONENT32_SGIX = 0x81A7, + + // GL_SGIX_fog_offset + GL_FOG_OFFSET_SGIX = 0x8198, + GL_FOG_OFFSET_VALUE_SGIX = 0x8199, + + // GL_SGIX_texture_add_env + GL_TEXTURE_ENV_BIAS_SGIX = 0x80BE, + + // GL_SGIX_list_priority + GL_LIST_PRIORITY_SGIX = 0x8182, + + // GL_SGIX_ir_instrument1 + GL_IR_INSTRUMENT1_SGIX = 0x817F, + + // GL_SGIX_calligraphic_fragment + GL_CALLIGRAPHIC_FRAGMENT_SGIX = 0x8183, + + // GL_SGIX_texture_lod_bias + GL_TEXTURE_LOD_BIAS_S_SGIX = 0x818E, + GL_TEXTURE_LOD_BIAS_T_SGIX = 0x818F, + GL_TEXTURE_LOD_BIAS_R_SGIX = 0x8190, + + // GL_SGIX_shadow_ambient + GL_SHADOW_AMBIENT_SGIX = 0x80BF, + + // GL_SGIX_ycrcb + GL_YCRCB_422_SGIX = 0x81BB, + GL_YCRCB_444_SGIX = 0x81BC, + + // GL_SGIX_fragment_lighting + GL_FRAGMENT_LIGHTING_SGIX = 0x8400, + GL_FRAGMENT_COLOR_MATERIAL_SGIX = 0x8401, + GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX = 0x8402, + GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX = 0x8403, + GL_MAX_FRAGMENT_LIGHTS_SGIX = 0x8404, + GL_MAX_ACTIVE_LIGHTS_SGIX = 0x8405, + GL_CURRENT_RASTER_NORMAL_SGIX = 0x8406, + GL_LIGHT_ENV_MODE_SGIX = 0x8407, + GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX = 0x8408, + GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX = 0x8409, + GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX = 0x840A, + GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX = 0x840B, + GL_FRAGMENT_LIGHT0_SGIX = 0x840C, + GL_FRAGMENT_LIGHT1_SGIX = 0x840D, + GL_FRAGMENT_LIGHT2_SGIX = 0x840E, + GL_FRAGMENT_LIGHT3_SGIX = 0x840F, + GL_FRAGMENT_LIGHT4_SGIX = 0x8410, + GL_FRAGMENT_LIGHT5_SGIX = 0x8411, + GL_FRAGMENT_LIGHT6_SGIX = 0x8412, + GL_FRAGMENT_LIGHT7_SGIX = 0x8413, + + // GL_SGIX_blend_alpha_minmax + GL_ALPHA_MIN_SGIX = 0x8320, + GL_ALPHA_MAX_SGIX = 0x8321, + + // GL_SGIX_impact_pixel_texture + GL_PIXEL_TEX_GEN_Q_CEILING_SGIX = 0x8184, + GL_PIXEL_TEX_GEN_Q_ROUND_SGIX = 0x8185, + GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX = 0x8186, + GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX = 0x8187, + GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX = 0x8188, + GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX = 0x8189, + GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX = 0x818A, + + // GL_SGIX_async + GL_ASYNC_MARKER_SGIX = 0x8329, + + // GL_SGIX_async_pixel + GL_ASYNC_TEX_IMAGE_SGIX = 0x835C, + GL_ASYNC_DRAW_PIXELS_SGIX = 0x835D, + GL_ASYNC_READ_PIXELS_SGIX = 0x835E, + GL_MAX_ASYNC_TEX_IMAGE_SGIX = 0x835F, + GL_MAX_ASYNC_DRAW_PIXELS_SGIX = 0x8360, + GL_MAX_ASYNC_READ_PIXELS_SGIX = 0x8361, + + // GL_SGIX_async_histogram + GL_ASYNC_HISTOGRAM_SGIX = 0x832C, + GL_MAX_ASYNC_HISTOGRAM_SGIX = 0x832D, + + // GL_SGIX_fog_scale + GL_FOG_SCALE_SGIX = 0x81FC, + GL_FOG_SCALE_VALUE_SGIX = 0x81FD, + + // GL_SGIX_subsample + GL_PACK_SUBSAMPLE_RATE_SGIX = 0x85A0, + GL_UNPACK_SUBSAMPLE_RATE_SGIX = 0x85A1, + GL_PIXEL_SUBSAMPLE_4444_SGIX = 0x85A2, + GL_PIXEL_SUBSAMPLE_2424_SGIX = 0x85A3, + GL_PIXEL_SUBSAMPLE_4242_SGIX = 0x85A4, + + // GL_SGIX_ycrcba + GL_YCRCB_SGIX = 0x8318, + GL_YCRCBA_SGIX = 0x8319, + + // GL_SGIX_depth_pass_instrument + GL_DEPTH_PASS_INSTRUMENT_SGIX = 0x8310, + GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX = 0x8311, + GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX = 0x8312, + + // GL_SGIX_vertex_preclip + GL_VERTEX_PRECLIP_SGIX = 0x83EE, + GL_VERTEX_PRECLIP_HINT_SGIX = 0x83EF, + + // GL_SGIX_convolution_accuracy + GL_CONVOLUTION_HINT_SGIX = 0x8316, + + // GL_SGIX_resample + GL_PACK_RESAMPLE_SGIX = 0x842C, + GL_UNPACK_RESAMPLE_SGIX = 0x842D, + GL_RESAMPLE_REPLICATE_SGIX = 0x842E, + GL_RESAMPLE_ZERO_FILL_SGIX = 0x842F, + GL_RESAMPLE_DECIMATE_SGIX = 0x8430, + + // GL_SGIX_texture_coordinate_clamp + GL_TEXTURE_MAX_CLAMP_S_SGIX = 0x8369, + GL_TEXTURE_MAX_CLAMP_T_SGIX = 0x836A, + GL_TEXTURE_MAX_CLAMP_R_SGIX = 0x836B, + + // GL_SGIX_scalebias_hint + GL_SCALEBIAS_HINT_SGIX = 0x8322, + } +} + +version(DerelictGL_HP) +{ + enum : GLenum + { + // GL_HP_image_transform + GL_IMAGE_SCALE_X_HP = 0x8155, + GL_IMAGE_SCALE_Y_HP = 0x8156, + GL_IMAGE_TRANSLATE_X_HP = 0x8157, + GL_IMAGE_TRANSLATE_Y_HP = 0x8158, + GL_IMAGE_ROTATE_ANGLE_HP = 0x8159, + GL_IMAGE_ROTATE_ORIGIN_X_HP = 0x815A, + GL_IMAGE_ROTATE_ORIGIN_Y_HP = 0x815B, + GL_IMAGE_MAG_FILTER_HP = 0x815C, + GL_IMAGE_MIN_FILTER_HP = 0x815D, + GL_IMAGE_CUBIC_WEIGHT_HP = 0x815E, + GL_CUBIC_HP = 0x815F, + GL_AVERAGE_HP = 0x8160, + GL_IMAGE_TRANSFORM_2D_HP = 0x8161, + GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8162, + GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP = 0x8163, + + // GL_HP_convolution_border_modes + GL_IGNORE_BORDER_HP = 0x8150, + GL_CONSTANT_BORDER_HP = 0x8151, + GL_REPLICATE_BORDER_HP = 0x8153, + GL_CONVOLUTION_BORDER_COLOR_HP = 0x8154, + + // GL_HP_texture_lighting + GL_TEXTURE_LIGHTING_MODE_HP = 0x8167, + GL_TEXTURE_POST_SPECULAR_HP = 0x8168, + GL_TEXTURE_PRE_SPECULAR_HP = 0x8169, + + // GL_HP_occlusion_test + GL_OCCLUSION_TEST_HP = 0x8165, + GL_OCCLUSION_TEST_RESULT_HP = 0x8166, + } +} + +version(DerelictGL_PGI) +{ + enum : GLenum + { + // GL_PGI_vertex_hints + GL_VERTEX_DATA_HINT_PGI = 0x1A22A, + GL_VERTEX_CONSISTENT_HINT_PGI = 0x1A22B, + GL_MATERIAL_SIDE_HINT_PGI = 0x1A22C, + GL_MAX_VERTEX_HINT_PGI = 0x1A22D, + GL_COLOR3_BIT_PGI = 0x00010000, + GL_COLOR4_BIT_PGI = 0x00020000, + GL_EDGEFLAG_BIT_PGI = 0x00040000, + GL_INDEX_BIT_PGI = 0x00080000, + GL_MAT_AMBIENT_BIT_PGI = 0x00100000, + GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI = 0x00200000, + GL_MAT_DIFFUSE_BIT_PGI = 0x00400000, + GL_MAT_EMISSION_BIT_PGI = 0x00800000, + GL_MAT_COLOR_INDEXES_BIT_PGI = 0x01000000, + GL_MAT_SHININESS_BIT_PGI = 0x02000000, + GL_MAT_SPECULAR_BIT_PGI = 0x04000000, + GL_NORMAL_BIT_PGI = 0x08000000, + GL_TEXCOORD1_BIT_PGI = 0x10000000, + GL_TEXCOORD2_BIT_PGI = 0x20000000, + GL_TEXCOORD3_BIT_PGI = 0x40000000, + GL_TEXCOORD4_BIT_PGI = 0x80000000, + GL_VERTEX23_BIT_PGI = 0x00000004, + GL_VERTEX4_BIT_PGI = 0x00000008, + + // GL_PGI_misc_hints + GL_PREFER_DOUBLEBUFFER_HINT_PGI = 0x1A1F8, + GL_CONSERVE_MEMORY_HINT_PGI = 0x1A1FD, + GL_RECLAIM_MEMORY_HINT_PGI = 0x1A1FE, + GL_NATIVE_GRAPHICS_HANDLE_PGI = 0x1A202, + GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI = 0x1A203, + GL_NATIVE_GRAPHICS_END_HINT_PGI = 0x1A204, + GL_ALWAYS_FAST_HINT_PGI = 0x1A20C, + GL_ALWAYS_SOFT_HINT_PGI = 0x1A20D, + GL_ALLOW_DRAW_OBJ_HINT_PGI = 0x1A20E, + GL_ALLOW_DRAW_WIN_HINT_PGI = 0x1A20F, + GL_ALLOW_DRAW_FRG_HINT_PGI = 0x1A210, + GL_ALLOW_DRAW_MEM_HINT_PGI = 0x1A211, + GL_STRICT_DEPTHFUNC_HINT_PGI = 0x1A216, + GL_STRICT_LIGHTING_HINT_PGI = 0x1A217, + GL_STRICT_SCISSOR_HINT_PGI = 0x1A218, + GL_FULL_STIPPLE_HINT_PGI = 0x1A219, + GL_CLIP_NEAR_HINT_PGI = 0x1A220, + GL_CLIP_FAR_HINT_PGI = 0x1A221, + GL_WIDE_LINE_HINT_PGI = 0x1A222, + GL_BACK_NORMALS_HINT_PGI = 0x1A223, + } +} + +version(DerelictGL_IBM) +{ + enum : GLenum + { + // GL_IBM_rasterpos_clip + GL_RASTER_POSITION_UNCLIPPED_IBM = 0x19262, + + // GL_IBM_cull_vertex + GL_CULL_VERTEX_IBM = 103050, + + // GL_IBM_vertex_array_lists + GL_VERTEX_ARRAY_LIST_IBM = 103070, + GL_NORMAL_ARRAY_LIST_IBM = 103071, + GL_COLOR_ARRAY_LIST_IBM = 103072, + GL_INDEX_ARRAY_LIST_IBM = 103073, + GL_TEXTURE_COORD_ARRAY_LIST_IBM = 103074, + GL_EDGE_FLAG_ARRAY_LIST_IBM = 103075, + GL_FOG_COORDINATE_ARRAY_LIST_IBM = 103076, + GL_SECONDARY_COLOR_ARRAY_LIST_IBM = 103077, + GL_VERTEX_ARRAY_LIST_STRIDE_IBM = 103080, + GL_NORMAL_ARRAY_LIST_STRIDE_IBM = 103081, + GL_COLOR_ARRAY_LIST_STRIDE_IBM = 103082, + GL_INDEX_ARRAY_LIST_STRIDE_IBM = 103083, + GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = 103084, + GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = 103085, + GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = 103086, + GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = 103087, + + // GL_IBM_texture_mirrored_repeat + GL_MIRRORED_REPEAT_IBM = 0x8370, + } +} + +version(DerelictGL_WIN) +{ + enum : GLenum + { + // GL_WIN_phong_shading + GL_PHONG_WIN = 0x80EA, + GL_PHONG_HINT_WIN = 0x80EB, + + // GL_WIN_specular_fog + GL_FOG_SPECULAR_TEXTURE_WIN = 0x80EC, + } +} + +version(DerelictGL_INTEL) +{ + enum : GLenum + { + // GL_INTEL_parallel_arrays + GL_PARALLEL_ARRAYS_INTEL = 0x83F4, + GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F5, + GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F6, + GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F7, + GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL = 0x83F8, + } +} + +version(DerelictGL_REND) +{ + enum : GLenum + { + // GL_REND_screen_coordinates + GL_SCREEN_COORDINATES_REND = 0x8490, + GL_INVERTED_SCREEN_W_REND = 0x8491, + } +} + +version(DerelictGL_APPLE) +{ + enum : GLenum + { + // GL_APPLE_specular_vector + GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE = 0x85B0, + + // GL_APPLE_transform_hint + GL_TRANSFORM_HINT_APPLE = 0x85B1, + + // GL_APPLE_client_storage + GL_UNPACK_CLIENT_STORAGE_APPLE = 0x85B2, + + // GL_APPLE_element_array + GL_ELEMENT_ARRAY_APPLE = 0x8768, + GL_ELEMENT_ARRAY_TYPE_APPLE = 0x8769, + GL_ELEMENT_ARRAY_POINTER_APPLE = 0x876A, + + // GL_APPLE_fence + GL_DRAW_PIXELS_APPLE = 0x8A0A, + GL_FENCE_APPLE = 0x8A0B, + + // GL_APPLE_vertex_array_object + GL_VERTEX_ARRAY_BINDING_APPLE = 0x85B5, + + // GL_APPLE_vertex_array_range + GL_VERTEX_ARRAY_RANGE_APPLE = 0x851D, + GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = 0x851E, + GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = 0x851F, + GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = 0x8521, + GL_STORAGE_CACHED_APPLE = 0x85BE, + GL_STORAGE_SHARED_APPLE = 0x85BF, + + // GL_APPLE_ycbcr_422 + GL_YCBCR_422_APPLE = 0x85B9, + GL_UNSIGNED_SHORT_8_8_APPLE = 0x85BA, + GL_UNSIGNED_SHORT_8_8_REV_APPLE = 0x85BB, + + // GL_APPLE_flush_buffer_range + GL_BUFFER_SERIALIZED_MODIFY_APPLE = 0x8A12, + GL_BUFFER_FLUSHING_UNMAP_APPLE = 0x8A13, + + // GL_APPLE_texture_range + GL_TEXTURE_RANGE_LENGTH_APPLE = 0x85B7, + GL_TEXTURE_RANGE_POINTER_APPLE = 0x85B8, + GL_TEXTURE_STORAGE_HINT_APPLE = 0x85BC, + GL_STORAGE_PRIVATE_APPLE = 0x85BD, + + // GL_APPLE_float_pixels + GL_HALF_APPLE = 0x140B, + GL_RGBA_FLOAT32_APPLE = 0x8814, + GL_RGB_FLOAT32_APPLE = 0x8815, + GL_ALPHA_FLOAT32_APPLE = 0x8816, + GL_INTENSITY_FLOAT32_APPLE = 0x8817, + GL_LUMINANCE_FLOAT32_APPLE = 0x8818, + GL_LUMINANCE_ALPHA_FLOAT32_APPLE = 0x8819, + GL_RGBA_FLOAT16_APPLE = 0x881A, + GL_RGB_FLOAT16_APPLE = 0x881B, + GL_ALPHA_FLOAT16_APPLE = 0x881C, + GL_INTENSITY_FLOAT16_APPLE = 0x881D, + GL_LUMINANCE_FLOAT16_APPLE = 0x881E, + GL_LUMINANCE_ALPHA_FLOAT16_APPLE = 0x881F, + GL_COLOR_FLOAT_APPLE = 0x8A0F, + + // GL_APPLE_vertex_program_evaluators + GL_VERTEX_ATTRIB_MAP1_APPLE = 0x8A00, + GL_VERTEX_ATTRIB_MAP2_APPLE = 0x8A01, + GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE = 0x8A02, + GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE = 0x8A03, + GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE = 0x8A04, + GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE = 0x8A05, + GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE = 0x8A06, + GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE = 0x8A07, + GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE = 0x8A08, + GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE = 0x8A09, + + // GL_APPLE_aux_depth_stencil + GL_AUX_DEPTH_STENCIL_APPLE = 0x8A14, + + // GL_APPLE_object_purgeable + GL_BUFFER_OBJECT_APPLE = 0x85B3, + GL_RELEASED_APPLE = 0x8A19, + GL_VOLATILE_APPLE = 0x8A1A, + GL_RETAINED_APPLE = 0x8A1B, + GL_UNDEFINED_APPLE = 0x8A1C, + GL_PURGEABLE_APPLE = 0x8A1D, + + // GL_APPLE_row_bytes + GL_PACK_ROW_BYTES_APPLE = 0x8A15, + GL_UNPACK_ROW_BYTES_APPLE = 0x8A16, + + // GL_APPLE_rgb_422 + GL_RGB_422_APPLE = 0x8A1F, + } +} + +version(DerelictGL_SUNX) +{ + enum : GLenum + { + // GL_SUNX_constant_data + GL_UNPACK_CONSTANT_DATA_SUNX = 0x81D5, + GL_TEXTURE_CONSTANT_DATA_SUNX = 0x81D6, + } +} + +version(DerelictGL_SUN) +{ + enum : GLenum + { + // GL_SUN_global_alpha + GL_GLOBAL_ALPHA_SUN = 0x81D9, + GL_GLOBAL_ALPHA_FACTOR_SUN = 0x81DA, + + // GL_SUN_triangle_list + GL_RESTART_SUN = 0x0001, + GL_REPLACE_MIDDLE_SUN = 0x0002, + GL_REPLACE_OLDEST_SUN = 0x0003, + GL_TRIANGLE_LIST_SUN = 0x81D7, + GL_REPLACEMENT_CODE_SUN = 0x81D8, + GL_REPLACEMENT_CODE_ARRAY_SUN = 0x85C0, + GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN = 0x85C1, + GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN = 0x85C2, + GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN = 0x85C3, + GL_R1UI_V3F_SUN = 0x85C4, + GL_R1UI_C4UB_V3F_SUN = 0x85C5, + GL_R1UI_C3F_V3F_SUN = 0x85C6, + GL_R1UI_N3F_V3F_SUN = 0x85C7, + GL_R1UI_C4F_N3F_V3F_SUN = 0x85C8, + GL_R1UI_T2F_V3F_SUN = 0x85C9, + GL_R1UI_T2F_N3F_V3F_SUN = 0x85CA, + GL_R1UI_T2F_C4F_N3F_V3F_SUN = 0x85CB, + + // GL_SUN_convolution_border_modes + GL_WRAP_BORDER_SUN = 0x81D4, + + // GL_SUN_mesh_array + GL_QUAD_MESH_SUN = 0x8614, + GL_TRIANGLE_MESH_SUN = 0x8615, + + // GL_SUN_slice_accum + GL_SLICE_ACCUM_SUN = 0x85CC, + } +} + +version(DerelictGL_INGR) +{ + enum : GLenum + { + // GL_INGR_color_clamp + GL_RED_MIN_CLAMP_INGR = 0x8560, + GL_GREEN_MIN_CLAMP_INGR = 0x8561, + GL_BLUE_MIN_CLAMP_INGR = 0x8562, + GL_ALPHA_MIN_CLAMP_INGR = 0x8563, + GL_RED_MAX_CLAMP_INGR = 0x8564, + GL_GREEN_MAX_CLAMP_INGR = 0x8565, + GL_BLUE_MAX_CLAMP_INGR = 0x8566, + GL_ALPHA_MAX_CLAMP_INGR = 0x8567, + + // GL_INGR_interlace_read + GL_INTERLACE_READ_INGR = 0x8568, + } +} + +version(DerelictGL_MESA) +{ + enum : GLenum + { + // GL_MESA_pack_invert + GL_PACK_INVERT_MESA = 0x8758, + + // GL_MESA_ycbcr_texture + GL_UNSIGNED_SHORT_8_8_MESA = 0x85BA, + GL_UNSIGNED_SHORT_8_8_REV_MESA = 0x85BB, + GL_YCBCR_MESA = 0x8757, + } +} + +version(DerelictGL_3DFX) +{ + enum : GLenum + { + // GL_3DFX_texture_compression_FXT1 + GL_COMPRESSED_RGB_FXT1_3DFX = 0x86B0, + GL_COMPRESSED_RGBA_FXT1_3DFX = 0x86B1, + + // GL_3DFX_multisample + GL_MULTISAMPLE_3DFX = 0x86B2, + GL_SAMPLE_BUFFERS_3DFX = 0x86B3, + GL_SAMPLES_3DFX = 0x86B4, + GL_MULTISAMPLE_BIT_3DFX = 0x20000000, + } +} + +version(DerelictGL_OML) +{ + enum : GLenum + { + // GL_OML_interlace + GL_INTERLACE_OML = 0x8980, + GL_INTERLACE_READ_OML = 0x8981, + + // GL_OML_subsample + GL_FORMAT_SUBSAMPLE_24_24_OML = 0x8982, + GL_FORMAT_SUBSAMPLE_244_244_OML = 0x8983, + + // GL_OML_resample + GL_PACK_RESAMPLE_OML = 0x8984, + GL_UNPACK_RESAMPLE_OML = 0x8985, + GL_RESAMPLE_REPLICATE_OML = 0x8986, + GL_RESAMPLE_ZERO_FILL_OML = 0x8987, + GL_RESAMPLE_AVERAGE_OML = 0x8988, + GL_RESAMPLE_DECIMATE_OML = 0x8989, + } +} + +version(DerelictGL_S3) +{ + enum : GLenum + { + // GL_S3_s3tc + GL_RGB_S3TC = 0x83A0, + GL_RGB4_S3TC = 0x83A1, + GL_RGBA_S3TC = 0x83A2, + GL_RGBA4_S3TC = 0x83A3, + } +} + +version(DerelictGL_OES) +{ + enum : GLenum + { + // GL_OES_read_format + GL_IMPLEMENTATION_COLOR_READ_TYPE_OES = 0x8B9A, + GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES = 0x8B9B, + } +} + +version(DerelictGL_GREMEDY) +{ +} + +version(DerelictGL_MESAX) +{ + enum : GLenum + { + // GL_MESAX_texture_stack + GL_TEXTURE_1D_STACK_MESAX = 0x8759, + GL_TEXTURE_2D_STACK_MESAX = 0x875A, + GL_PROXY_TEXTURE_1D_STACK_MESAX = 0x875B, + GL_PROXY_TEXTURE_2D_STACK_MESAX = 0x875C, + GL_TEXTURE_1D_STACK_BINDING_MESAX = 0x875D, + GL_TEXTURE_2D_STACK_BINDING_MESAX = 0x875E, + } +} + +version(Windows) +{ + private + { + import derelict.util.wintypes; + } + + alias HANDLE HPBUFFERARB; + alias HANDLE HPBUFFEREXT; + + alias HANDLE HGPUNV; + alias GPU_DEVICE* PGPU_DEVICE; + alias HANDLE HVIDEOOUTPUTDEVICENV; + alias HANDLE HPVIDEODEV; + + struct GPU_DEVICE + { + DWORD cb; + char[32] DeviceName; + char[128] DeviceString; + DWORD flags; + RECT rcVirtualScreen; + } + + + version(DerelictGL_ARB) + { + enum : GLenum + { + // WGL_ARB_buffer_region + WGL_FRONT_COLOR_BUFFER_BIT_ARB = 0x00000001, + WGL_BACK_COLOR_BUFFER_BIT_ARB = 0x00000002, + WGL_DEPTH_BUFFER_BIT_ARB = 0x00000004, + WGL_STENCIL_BUFFER_BIT_ARB = 0x00000008, + + // WGL_ARB_multisample + WGL_SAMPLE_BUFFERS_ARB = 0x2041, + WGL_SAMPLES_ARB = 0x2042, + + // WGL_ARB_pixel_format + WGL_NUMBER_PIXEL_FORMATS_ARB = 0x2000, + WGL_DRAW_TO_WINDOW_ARB = 0x2001, + WGL_DRAW_TO_BITMAP_ARB = 0x2002, + WGL_ACCELERATION_ARB = 0x2003, + WGL_NEED_PALETTE_ARB = 0x2004, + WGL_NEED_SYSTEM_PALETTE_ARB = 0x2005, + WGL_SWAP_LAYER_BUFFERS_ARB = 0x2006, + WGL_SWAP_METHOD_ARB = 0x2007, + WGL_NUMBER_OVERLAYS_ARB = 0x2008, + WGL_NUMBER_UNDERLAYS_ARB = 0x2009, + WGL_TRANSPARENT_ARB = 0x200A, + WGL_TRANSPARENT_RED_VALUE_ARB = 0x2037, + WGL_TRANSPARENT_GREEN_VALUE_ARB = 0x2038, + WGL_TRANSPARENT_BLUE_VALUE_ARB = 0x2039, + WGL_TRANSPARENT_ALPHA_VALUE_ARB = 0x203A, + WGL_TRANSPARENT_INDEX_VALUE_ARB = 0x203B, + WGL_SHARE_DEPTH_ARB = 0x200C, + WGL_SHARE_STENCIL_ARB = 0x200D, + WGL_SHARE_ACCUM_ARB = 0x200E, + WGL_SUPPORT_GDI_ARB = 0x200F, + WGL_SUPPORT_OPENGL_ARB = 0x2010, + WGL_DOUBLE_BUFFER_ARB = 0x2011, + WGL_STEREO_ARB = 0x2012, + WGL_PIXEL_TYPE_ARB = 0x2013, + WGL_COLOR_BITS_ARB = 0x2014, + WGL_RED_BITS_ARB = 0x2015, + WGL_RED_SHIFT_ARB = 0x2016, + WGL_GREEN_BITS_ARB = 0x2017, + WGL_GREEN_SHIFT_ARB = 0x2018, + WGL_BLUE_BITS_ARB = 0x2019, + WGL_BLUE_SHIFT_ARB = 0x201A, + WGL_ALPHA_BITS_ARB = 0x201B, + WGL_ALPHA_SHIFT_ARB = 0x201C, + WGL_ACCUM_BITS_ARB = 0x201D, + WGL_ACCUM_RED_BITS_ARB = 0x201E, + WGL_ACCUM_GREEN_BITS_ARB = 0x201F, + WGL_ACCUM_BLUE_BITS_ARB = 0x2020, + WGL_ACCUM_ALPHA_BITS_ARB = 0x2021, + WGL_DEPTH_BITS_ARB = 0x2022, + WGL_STENCIL_BITS_ARB = 0x2023, + WGL_AUX_BUFFERS_ARB = 0x2024, + WGL_NO_ACCELERATION_ARB = 0x2025, + WGL_GENERIC_ACCELERATION_ARB = 0x2026, + WGL_FULL_ACCELERATION_ARB = 0x2027, + WGL_SWAP_EXCHANGE_ARB = 0x2028, + WGL_SWAP_COPY_ARB = 0x2029, + WGL_SWAP_UNDEFINED_ARB = 0x202A, + WGL_TYPE_RGBA_ARB = 0x202B, + WGL_TYPE_COLORINDEX_ARB = 0x202C, + + // WGL_ARB_make_current_read + ERROR_INVALID_PIXEL_TYPE_ARB = 0x2043, + ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB = 0x2054, + + // WGL_ARB_pbuffer + WGL_DRAW_TO_PBUFFER_ARB = 0x202D, + WGL_MAX_PBUFFER_PIXELS_ARB = 0x202E, + WGL_MAX_PBUFFER_WIDTH_ARB = 0x202F, + WGL_MAX_PBUFFER_HEIGHT_ARB = 0x2030, + WGL_PBUFFER_LARGEST_ARB = 0x2033, + WGL_PBUFFER_WIDTH_ARB = 0x2034, + WGL_PBUFFER_HEIGHT_ARB = 0x2035, + WGL_PBUFFER_LOST_ARB = 0x2036, + + // WGL_ARB_render_texture + WGL_BIND_TO_TEXTURE_RGB_ARB = 0x2070, + WGL_BIND_TO_TEXTURE_RGBA_ARB = 0x2071, + WGL_TEXTURE_FORMAT_ARB = 0x2072, + WGL_TEXTURE_TARGET_ARB = 0x2073, + WGL_MIPMAP_TEXTURE_ARB = 0x2074, + WGL_TEXTURE_RGB_ARB = 0x2075, + WGL_TEXTURE_RGBA_ARB = 0x2076, + WGL_NO_TEXTURE_ARB = 0x2077, + WGL_TEXTURE_CUBE_MAP_ARB = 0x2078, + WGL_TEXTURE_1D_ARB = 0x2079, + WGL_TEXTURE_2D_ARB = 0x207A, + WGL_MIPMAP_LEVEL_ARB = 0x207B, + WGL_CUBE_MAP_FACE_ARB = 0x207C, + WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = 0x207D, + WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = 0x207E, + WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = 0x207F, + WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = 0x2080, + WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = 0x2081, + WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = 0x2082, + WGL_FRONT_LEFT_ARB = 0x2083, + WGL_FRONT_RIGHT_ARB = 0x2084, + WGL_BACK_LEFT_ARB = 0x2085, + WGL_BACK_RIGHT_ARB = 0x2086, + WGL_AUX0_ARB = 0x2087, + WGL_AUX1_ARB = 0x2088, + WGL_AUX2_ARB = 0x2089, + WGL_AUX3_ARB = 0x208A, + WGL_AUX4_ARB = 0x208B, + WGL_AUX5_ARB = 0x208C, + WGL_AUX6_ARB = 0x208D, + WGL_AUX7_ARB = 0x208E, + WGL_AUX8_ARB = 0x208F, + WGL_AUX9_ARB = 0x2090, + + // WGL_ARB_pixel_format_float + WGL_TYPE_RGBA_FLOAT_ARB = 0x21A0, + + // WGL_ARB_create_context + WGL_CONTEXT_DEBUG_BIT_ARB = 0x0001, + WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = 0x0002, + WGL_CONTEXT_MAJOR_VERSION_ARB = 0x2091, + WGL_CONTEXT_MINOR_VERSION_ARB = 0x2092, + WGL_CONTEXT_LAYER_PLANE_ARB = 0x2093, + WGL_CONTEXT_FLAGS_ARB = 0x2094, + ERROR_INVALID_VERSION_ARB = 0x2095, + + // WGL_ARB_create_context_profile + WGL_CONTEXT_CORE_PROFILE_BIT_ARB = 0x00000001, + WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = 0x00000002, + WGL_CONTEXT_PROFILE_MASK_ARB = 0x9126, + + // WGL_ARB_framebuffer_sRGB + WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB = 0x20A9, + } + } + + version(DerelictGL_EXT) + { + enum : GLenum + { + // WGL_EXT_depth_float + WGL_DEPTH_FLOAT_EXT = 0x2040, + + // WGL_EXT_framebuffer_sRGB + WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x20A9, + + // WGL_EXT_make_current_read + ERROR_INVALID_PIXEL_TYPE_EXT = 0x2043, + + // WGL_EXT_multisample + WGL_SAMPLE_BUFFERS_EXT = 0x2041, + WGL_SAMPLES_EXT = 0x2042, + + // WGL_EXT_pbuffer + WGL_DRAW_TO_PBUFFER_EXT = 0x202D, + WGL_MAX_PBUFFER_PIXELS_EXT = 0x202E, + WGL_MAX_PBUFFER_WIDTH_EXT = 0x202F, + WGL_MAX_PBUFFER_HEIGHT_EXT = 0x2030, + WGL_OPTIMAL_PBUFFER_WIDTH_EXT = 0x2031, + WGL_OPTIMAL_PBUFFER_HEIGHT_EXT = 0x2032, + WGL_PBUFFER_LARGEST_EXT = 0x2033, + WGL_PBUFFER_WIDTH_EXT = 0x2034, + WGL_PBUFFER_HEIGHT_EXT = 0x2035, + + // WGL_EXT_pixel_format + WGL_NUMBER_PIXEL_FORMATS_EXT = 0x2000, + WGL_DRAW_TO_WINDOW_EXT = 0x2001, + WGL_DRAW_TO_BITMAP_EXT = 0x2002, + WGL_ACCELERATION_EXT = 0x2003, + WGL_NEED_PALETTE_EXT = 0x2004, + WGL_NEED_SYSTEM_PALETTE_EXT = 0x2005, + WGL_SWAP_LAYER_BUFFERS_EXT = 0x2006, + WGL_SWAP_METHOD_EXT = 0x2007, + WGL_NUMBER_OVERLAYS_EXT = 0x2008, + WGL_NUMBER_UNDERLAYS_EXT = 0x2009, + WGL_TRANSPARENT_EXT = 0x200A, + WGL_TRANSPARENT_VALUE_EXT = 0x200B, + WGL_SHARE_DEPTH_EXT = 0x200C, + WGL_SHARE_STENCIL_EXT = 0x200D, + WGL_SHARE_ACCUM_EXT = 0x200E, + WGL_SUPPORT_GDI_EXT = 0x200F, + WGL_SUPPORT_OPENGL_EXT = 0x2010, + WGL_DOUBLE_BUFFER_EXT = 0x2011, + WGL_STEREO_EXT = 0x2012, + WGL_PIXEL_TYPE_EXT = 0x2013, + WGL_COLOR_BITS_EXT = 0x2014, + WGL_RED_BITS_EXT = 0x2015, + WGL_RED_SHIFT_EXT = 0x2016, + WGL_GREEN_BITS_EXT = 0x2017, + WGL_GREEN_SHIFT_EXT = 0x2018, + WGL_BLUE_BITS_EXT = 0x2019, + WGL_BLUE_SHIFT_EXT = 0x201A, + WGL_ALPHA_BITS_EXT = 0x201B, + WGL_ALPHA_SHIFT_EXT = 0x201C, + WGL_ACCUM_BITS_EXT = 0x201D, + WGL_ACCUM_RED_BITS_EXT = 0x201E, + WGL_ACCUM_GREEN_BITS_EXT = 0x201F, + WGL_ACCUM_BLUE_BITS_EXT = 0x2020, + WGL_ACCUM_ALPHA_BITS_EXT = 0x2021, + WGL_DEPTH_BITS_EXT = 0x2022, + WGL_STENCIL_BITS_EXT = 0x2023, + WGL_AUX_BUFFERS_EXT = 0x2024, + WGL_NO_ACCELERATION_EXT = 0x2025, + WGL_GENERIC_ACCELERATION_EXT = 0x2026, + WGL_FULL_ACCELERATION_EXT = 0x2027, + WGL_SWAP_EXCHANGE_EXT = 0x2028, + WGL_SWAP_COPY_EXT = 0x2029, + WGL_SWAP_UNDEFINED_EXT = 0x202A, + WGL_TYPE_RGBA_EXT = 0x202B, + WGL_TYPE_COLORINDEX_EXT = 0x202C, + + // WGL_EXT_pixel_format_packed_float + WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT = 0x20A8, + } + } + + version(DerelictGL_NV) + { + enum : GLenum + { + // WGL_NV_float_buffer + WGL_FLOAT_COMPONENTS_NV = 0x20B0, + WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV = 0x20B1, + WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV = 0x20B2, + WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV = 0x20B3, + WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV = 0x20B4, + WGL_TEXTURE_FLOAT_R_NV = 0x20B5, + WGL_TEXTURE_FLOAT_RG_NV = 0x20B6, + WGL_TEXTURE_FLOAT_RGB_NV = 0x20B7, + WGL_TEXTURE_FLOAT_RGBA_NV = 0x20B8, + + // WGL_NV_multisample_coverage + WGL_COVERAGE_SAMPLES_NV = 0x2042, + WGL_COLOR_SAMPLES_NV = 0x20B9, + + // WGL_NV_render_depth_texture + // WGL_NO_TEXTURE_ARB = 0x2077, <-- Declared in WGL_ARB_render_texture + WGL_BIND_TO_TEXTURE_DEPTH_NV = 0x20A3, + WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV = 0x20A4, + WGL_DEPTH_TEXTURE_FORMAT_NV = 0x20A5, + WGL_TEXTURE_DEPTH_COMPONENT_NV = 0x20A6, + WGL_DEPTH_COMPONENT_NV = 0x20A7, + + // WGL_NV_render_texture_rectangle + WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV = 0x20A0, + WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV = 0x20A1, + WGL_TEXTURE_RECTANGLE_NV = 0x20A2, + + // WGL_NV_video_output + WGL_BIND_TO_VIDEO_RGB_NV = 0x20C0, + WGL_BIND_TO_VIDEO_RGBA_NV = 0x20C1, + WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV = 0x20C2, + WGL_VIDEO_OUT_COLOR_NV = 0x20C3, + WGL_VIDEO_OUT_ALPHA_NV = 0x20C4, + WGL_VIDEO_OUT_DEPTH_NV = 0x20C5, + WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV = 0x20C6, + WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV = 0x20C7, + WGL_VIDEO_OUT_FRAME = 0x20C8, + WGL_VIDEO_OUT_FIELD_1 = 0x20C9, + WGL_VIDEO_OUT_FIELD_2 = 0x20CA, + WGL_VIDEO_OUT_STACKED_FIELDS_1_2 = 0x20CB, + WGL_VIDEO_OUT_STACKED_FIELDS_2_1 = 0x20CC, + } + } + + version(DerelictGL_ATI) + { + enum : GLenum + { + // WGL_ATI_pixel_format_float + WGL_TYPE_RGBA_FLOAT_ATI = 0x21A0, + GL_RGBA_FLOAT_MODE_ATI = 0x8820, + //GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = 0x8835, <-- Already declared above. + + // WGL_ATI_render_texture_rectangle + WGL_TEXTURE_RECTANGLE_ATI = 0x21A5, + } + } + + version(DerelictGL_AMD) + { + enum : GLenum + { + // WGL_AMD_gpu_association + WGL_GPU_VENDOR_AMD = 0x1F00, + WGL_GPU_RENDERER_STRING_AMD = 0x1F01, + WGL_GPU_OPENGL_VERSION_STRING_AMD = 0x1F02, + WGL_GPU_FASTEST_TARGET_GPUS_AMD = 0x21A2, + WGL_GPU_RAM_AMD = 0x21A3, + WGL_GPU_CLOCK_AMD = 0x21A4, + WGL_GPU_NUM_PIPES_AMD = 0x21A5, + WGL_GPU_NUM_SIMD_AMD = 0x21A6, + WGL_GPU_NUM_RB_AMD = 0x21A7, + WGL_GPU_NUM_SPI_AMD = 0x21A8, + } + } + + version(DerelictGL_I3D) + { + enum : GLenum + { + // WGL_I3D_digital_video_control + WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D = 0x2050, + WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D = 0x2051, + WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D = 0x2052, + WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D = 0x2053, + + // WGL_I3D_gamma + WGL_GAMMA_TABLE_SIZE_I3D = 0x204E, + WGL_GAMMA_EXCLUDE_DESKTOP_I3D = 0x204F, + + // WGL_I3D_genlock + WGL_GENLOCK_SOURCE_MULTIVIEW_I3D = 0x2044, + WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D = 0x2045, + WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D = 0x2046, + WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D = 0x2047, + WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D = 0x2048, + WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D = 0x2049, + WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D = 0x204A, + WGL_GENLOCK_SOURCE_EDGE_RISING_I3D = 0x204B, + WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D = 0x204C, + + // WGL_I3D_image_buffer + WGL_IMAGE_BUFFER_MIN_ACCESS_I3D = 0x00000001, + WGL_IMAGE_BUFFER_LOCK_I3D = 0x00000002, + } + } + + version(DerelictGL_3DFX) + { + enum : GLenum + { + // WGL_3DFX_multisample + WGL_SAMPLE_BUFFERS_3DFX = 0x2060, + WGL_SAMPLES_3DFX = 0x2061, + } + } + + version(DerelictGL_3DL) + { + enum : GLenum + { + // WGL_3DL_stereo_control + WGL_STEREO_EMITTER_ENABLE_3DL = 0x2055, + WGL_STEREO_EMITTER_DISABLE_3DL = 0x2056, + WGL_STEREO_POLARITY_NORMAL_3DL = 0x2057, + WGL_STEREO_POLARITY_INVERT_3DL = 0x2058, + } + } } diff --git a/src/derelict/opengl/gl.d b/src/derelict/opengl/gl.d old mode 100755 new mode 100644 index 221287b5..44759bf9 --- a/src/derelict/opengl/gl.d +++ b/src/derelict/opengl/gl.d @@ -1,1049 +1,1049 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.opengl.gl; - -public -{ - import derelict.opengl.glfuncs; - import derelict.opengl.gltypes; -} - -private -{ - import derelict.util.loader; - import derelict.util.exception; - import derelict.util.compat; - import derelict.opengl.extloader; - - version(Windows) - import derelict.opengl.wgl; - - version(darwin) - version = MacOSX; - - version(OSX) - version = MacOSX; - - version (MacOSX) - import derelict.opengl.cgl; - - version(linux) - version = GLX; - - version(FreeBSD) - version = freebsd; - - version(freebsd) - version = GLX; - - version(GLX) - import derelict.opengl.glx; -} - -enum GLVersion -{ - None, - GL11 = 11, - GL12 = 12, - GL13 = 13, - GL14 = 14, - GL15 = 15, - GL20 = 20, - GL21 = 21, - MaxClassic = 21, - - GL30 = 30, - GL31 = 31, - GL32 = 32, - GL33 = 33, - GL40 = 40, - MaxModern = 40, - HighestSupported = 40 -} - -class DerelictGLLoader : SharedLibLoader -{ -private: - this() - { - super( - "opengl32.dll", - "libGL.so.2,libGL.so.1,libGL.so", - "../Frameworks/OpenGL.framework/OpenGL, /Library/Frameworks/OpenGL.framework/OpenGL, /System/Library/Frameworks/OpenGL.framework/OpenGL" - ); - } - - GLVersion findMaxAvailable() - { - string verstr = toDString(glGetString(GL_VERSION)); - if(verstr.findStr("4.0") == 0) - return GLVersion.GL40; - else if(verstr.findStr("3.3") == 0) - return GLVersion.GL33; - else if(verstr.findStr("3.2") == 0) - return GLVersion.GL32; - else if(verstr.findStr("3.1") == 0) - return GLVersion.GL31; - else if(verstr.findStr("3.0") == 0) - return GLVersion.GL30; - else if(verstr.findStr("2.1") == 0) - return GLVersion.GL21; - else if(verstr.findStr("2.0") == 0) - return GLVersion.GL20; - else if(verstr.findStr("1.5") == 0) - return GLVersion.GL15; - else if(verstr.findStr("1.4") == 0) - return GLVersion.GL14; - else if(verstr.findStr("1.3") == 0) - return GLVersion.GL13; - else if(verstr.findStr("1.2") == 0) - return GLVersion.GL12; - else if(verstr.findStr("1.1") == 0) - return GLVersion.GL11; - - // assume new version of OpenGL - // TODO this needs to be more robust -- check to make sure that there this - // is a valid version number and actually is higher than the highest supported - return GLVersion.HighestSupported; - } - - GLVersion _maxVersion; - -public: - GLVersion maxVersion() - { - return _maxVersion; - } - - void loadExtensions() - { - if(!hasValidContext()) - throw new DerelictException("An OpenGL context must be created and activated before attempting to load extensions."); - extLoadAll(); - } - - string[] loadedExtensionNames() - { - return getLoadedExtensionNames(); - } - - string[] notLoadedExtensionNames() - { - return getNotLoadedExtensionNames(); - } - - bool isExtensionSupported(string extName) - { - if(!hasValidContext()) - throw new DerelictException("An OpenGL context must be created and activated before attempting to check for supported extensions."); - - return extIsSupported(extName); - } - - bool isExtensionLoaded(string extName) - { - if(!hasValidContext()) - throw new DerelictException("An OpenGL context must be created and activated, and extensions must be loaded, before checking for loaded extensions."); - - return (GLExtensionState.Loaded == extGetState(extName)); - } - - GLExtensionState getExtensionState(string extName) - { - if(!hasValidContext()) - throw new DerelictException("An OpenGL context must be created and activated, and extensions must be loaded, before chacking extension state."); - - return extGetState(extName); - } - - alias loadClassicVersions loadExtendedVersions; - - GLVersion loadClassicVersions(GLVersion targetVersion = GLVersion.GL11) - { - if(!hasValidContext()) - throw new DerelictException("An OpenGL context must be created and activated before attempting to load extended versions."); - - GLVersion maxAvail = findMaxAvailable(); - if(maxAvail < targetVersion) - throw new DerelictException("Required GL version " ~ versionToString(targetVersion) ~ " is not available."); - - bool doThrow = false; - - // gl 1.2 - if(maxAvail >= GLVersion.GL12) - { - doThrow = (targetVersion >= GLVersion.GL12); - - bindExtendedFunc(cast(void**)&glDrawRangeElements, "glDrawRangeElements", doThrow); - bindExtendedFunc(cast(void**)&glTexImage3D, "glTexImage3D", doThrow); - bindExtendedFunc(cast(void**)&glTexSubImage3D, "glTexSubImage3D", doThrow); - bindExtendedFunc(cast(void**)&glCopyTexSubImage3D, "glCopyTexSubImage3D", doThrow); - - /* GL_ARB_imaging - bindExtendedFunc(cast(void**)&glColorTable, "glColorTable", doThrow); - bindExtendedFunc(cast(void**)&glColorSubTable, "glColorSubTable", doThrow); - bindExtendedFunc(cast(void**)&glColorTableParameteriv, "glColorTableParameteriv", doThrow); - bindExtendedFunc(cast(void**)&glColorTableParameterfv, "glColorTableParameterfv", doThrow); - bindExtendedFunc(cast(void**)&glCopyColorSubTable, "glCopyColorSubTable", doThrow); - bindExtendedFunc(cast(void**)&glCopyColorTable, "glCopyColorTable", doThrow); - bindExtendedFunc(cast(void**)&glGetColorTable, "glGetColorTable", doThrow); - bindExtendedFunc(cast(void**)&glGetColorTableParameterfv, "glGetColorTableParameterfv", doThrow); - bindExtendedFunc(cast(void**)&glGetColorTableParameteriv, "glGetColorTableParameteriv", doThrow); - bindExtendedFunc(cast(void**)&glHistogram, "glHistogram", doThrow); - bindExtendedFunc(cast(void**)&glResetHistogram, "glResetHistogram", doThrow); - bindExtendedFunc(cast(void**)&glGetHistogram, "glGetHistogram", doThrow); - bindExtendedFunc(cast(void**)&glGetHistogramParameterfv, "glGetHistogramParameterfv", doThrow); - bindExtendedFunc(cast(void**)&glGetHistogramParameteriv, "glGetHistogramParameteriv", doThrow); - bindExtendedFunc(cast(void**)&glMinmax, "glMinmax", doThrow); - bindExtendedFunc(cast(void**)&glResetMinmax, "glResetMinmax", doThrow); - bindExtendedFunc(cast(void**)&glGetMinmax, "glGetMinmax", doThrow); - bindExtendedFunc(cast(void**)&glGetMinmaxParameterfv, "glGetMinmaxParameterfv", doThrow); - bindExtendedFunc(cast(void**)&glGetMinmaxParameteriv, "glGetMinmaxParameteriv", doThrow); - bindExtendedFunc(cast(void**)&glConvolutionFilter1D, "glConvolutionFilter1D", doThrow); - bindExtendedFunc(cast(void**)&glConvolutionFilter2D, "glConvolutionFilter2D", doThrow); - bindExtendedFunc(cast(void**)&glConvolutionParameterf, "glConvolutionParameterf", doThrow); - bindExtendedFunc(cast(void**)&glConvolutionParameterfv, "glConvolutionParameterfv", doThrow); - bindExtendedFunc(cast(void**)&glConvolutionParameteri, "glConvolutionParameteri", doThrow); - bindExtendedFunc(cast(void**)&glConvolutionParameteriv, "glConvolutionParameteriv", doThrow); - bindExtendedFunc(cast(void**)&glCopyConvolutionFilter1D, "glCopyConvolutionFilter1D", doThrow); - bindExtendedFunc(cast(void**)&glCopyConvolutionFilter2D, "glCopyConvolutionFilter2D", doThrow); - bindExtendedFunc(cast(void**)&glGetConvolutionFilter, "glGetConvolutionFilter", doThrow); - bindExtendedFunc(cast(void**)&glGetConvolutionParameterfv, "glGetConvolutionParameterfv", doThrow); - bindExtendedFunc(cast(void**)&glGetConvolutionParameteriv, "glGetConvolutionParameteriv", doThrow); - bindExtendedFunc(cast(void**)&glSeparableFilter2D, "glSeparableFilter2D", doThrow); - bindExtendedFunc(cast(void**)&glGetSeparableFilter, "glGetSeparableFilter", doThrow); - */ - _maxVersion = GLVersion.GL12; - } - - // gl 1.3 - if(maxAvail >= GLVersion.GL13) - { - doThrow = (targetVersion >= GLVersion.GL13); - - bindExtendedFunc(cast(void**)&glActiveTexture, "glActiveTexture", doThrow); - bindExtendedFunc(cast(void**)&glClientActiveTexture, "glClientActiveTexture", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord1d, "glMultiTexCoord1d", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord1dv, "glMultiTexCoord1dv", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord1f, "glMultiTexCoord1f", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord1fv, "glMultiTexCoord1fv", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord1i, "glMultiTexCoord1i", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord1iv, "glMultiTexCoord1iv", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord1s, "glMultiTexCoord1s", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord1sv, "glMultiTexCoord1sv", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord2d, "glMultiTexCoord2d", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord2dv, "glMultiTexCoord2dv", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord2f, "glMultiTexCoord2f", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord2fv, "glMultiTexCoord2fv", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord2i, "glMultiTexCoord2i", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord2iv, "glMultiTexCoord2iv", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord2s, "glMultiTexCoord2s", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord2sv, "glMultiTexCoord2sv", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord3d, "glMultiTexCoord3d", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord3dv, "glMultiTexCoord3d", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord3f, "glMultiTexCoord3f", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord3fv, "glMultiTexCoord3fv", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord3i, "glMultiTexCoord3i", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord3iv, "glMultiTexCoord3iv", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord3s, "glMultiTexCoord3s", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord3sv, "glMultiTexCoord3sv", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord4d, "glMultiTexCoord4d", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord4dv, "glMultiTexCoord4dv", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord4f, "glMultiTexCoord4f", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord4fv, "glMultiTexCoord4fv", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord4i, "glMultiTexCoord4i", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord4iv, "glMultiTexCoord4iv", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord4s, "glMultiTexCoord4s", doThrow); - bindExtendedFunc(cast(void**)&glMultiTexCoord4sv, "glMultiTexCoord4sv", doThrow); - bindExtendedFunc(cast(void**)&glLoadTransposeMatrixd, "glLoadTransposeMatrixd", doThrow); - bindExtendedFunc(cast(void**)&glLoadTransposeMatrixf, "glLoadTransposeMatrixf", doThrow); - bindExtendedFunc(cast(void**)&glMultTransposeMatrixd, "glMultTransposeMatrixd", doThrow); - bindExtendedFunc(cast(void**)&glMultTransposeMatrixf, "glMultTransposeMatrixf", doThrow); - bindExtendedFunc(cast(void**)&glSampleCoverage, "glSampleCoverage", doThrow); - bindExtendedFunc(cast(void**)&glCompressedTexImage1D, "glCompressedTexImage1D", doThrow); - bindExtendedFunc(cast(void**)&glCompressedTexImage2D, "glCompressedTexImage2D", doThrow); - bindExtendedFunc(cast(void**)&glCompressedTexImage3D, "glCompressedTexImage3D", doThrow); - bindExtendedFunc(cast(void**)&glCompressedTexSubImage1D, "glCompressedTexSubImage1D", doThrow); - bindExtendedFunc(cast(void**)&glCompressedTexSubImage2D, "glCompressedTexSubImage2D", doThrow); - bindExtendedFunc(cast(void**)&glCompressedTexSubImage3D, "glCompressedTexSubImage3D", doThrow); - bindExtendedFunc(cast(void**)&glGetCompressedTexImage, "glGetCompressedTexImage", doThrow); - - _maxVersion = GLVersion.GL13; - } - - if(maxAvail >= GLVersion.GL14) - { - doThrow = (targetVersion >= GLVersion.GL14); - - bindExtendedFunc(cast(void**)&glBlendFuncSeparate, "glBlendFuncSeparate", doThrow); - bindExtendedFunc(cast(void**)&glFogCoordf, "glFogCoordf", doThrow); - bindExtendedFunc(cast(void**)&glFogCoordfv, "glFogCoordfv", doThrow); - bindExtendedFunc(cast(void**)&glFogCoordd, "glFogCoordd", doThrow); - bindExtendedFunc(cast(void**)&glFogCoorddv, "glFogCoorddv", doThrow); - bindExtendedFunc(cast(void**)&glFogCoordPointer, "glFogCoordPointer", doThrow); - bindExtendedFunc(cast(void**)&glMultiDrawArrays, "glMultiDrawArrays", doThrow); - bindExtendedFunc(cast(void**)&glMultiDrawElements, "glMultiDrawElements", doThrow); - bindExtendedFunc(cast(void**)&glPointParameterf, "glPointParameterf", doThrow); - bindExtendedFunc(cast(void**)&glPointParameterfv, "glPointParameterfv", doThrow); - bindExtendedFunc(cast(void**)&glPointParameteri, "glPointParameteri", doThrow); - bindExtendedFunc(cast(void**)&glPointParameteriv, "glPointParameteriv", doThrow); - bindExtendedFunc(cast(void**)&glSecondaryColor3b, "glSecondaryColor3b", doThrow); - bindExtendedFunc(cast(void**)&glSecondaryColor3bv, "glSecondaryColor3bv", doThrow); - bindExtendedFunc(cast(void**)&glSecondaryColor3d, "glSecondaryColor3d", doThrow); - bindExtendedFunc(cast(void**)&glSecondaryColor3dv, "glSecondaryColor3dv", doThrow); - bindExtendedFunc(cast(void**)&glSecondaryColor3f, "glSecondaryColor3f", doThrow); - bindExtendedFunc(cast(void**)&glSecondaryColor3fv, "glSecondaryColor3fv", doThrow); - bindExtendedFunc(cast(void**)&glSecondaryColor3i, "glSecondaryColor3i", doThrow); - bindExtendedFunc(cast(void**)&glSecondaryColor3iv, "glSecondaryColor3iv", doThrow); - bindExtendedFunc(cast(void**)&glSecondaryColor3s, "glSecondaryColor3s", doThrow); - bindExtendedFunc(cast(void**)&glSecondaryColor3sv, "glSecondaryColor3sv", doThrow); - bindExtendedFunc(cast(void**)&glSecondaryColor3ub, "glSecondaryColor3ub", doThrow); - bindExtendedFunc(cast(void**)&glSecondaryColor3ubv, "glSecondaryColor3ubv", doThrow); - bindExtendedFunc(cast(void**)&glSecondaryColor3ui, "glSecondaryColor3ui", doThrow); - bindExtendedFunc(cast(void**)&glSecondaryColor3uiv, "glSecondaryColor3uiv", doThrow); - bindExtendedFunc(cast(void**)&glSecondaryColor3us, "glSecondaryColor3us", doThrow); - bindExtendedFunc(cast(void**)&glSecondaryColor3usv, "glSecondaryColor3usv", doThrow); - bindExtendedFunc(cast(void**)&glSecondaryColorPointer, "glSecondaryColorPointer", doThrow); - bindExtendedFunc(cast(void**)&glWindowPos2d, "glWindowPos2d", doThrow); - bindExtendedFunc(cast(void**)&glWindowPos2dv, "glWindowPos2dv", doThrow); - bindExtendedFunc(cast(void**)&glWindowPos2f, "glWindowPos2f", doThrow); - bindExtendedFunc(cast(void**)&glWindowPos2fv, "glWindowPos2fv", doThrow); - bindExtendedFunc(cast(void**)&glWindowPos2i, "glWindowPos2i", doThrow); - bindExtendedFunc(cast(void**)&glWindowPos2iv, "glWindowPos2iv", doThrow); - bindExtendedFunc(cast(void**)&glWindowPos2s, "glWindowPos2s", doThrow); - bindExtendedFunc(cast(void**)&glWindowPos2sv, "glWindowPos2sv", doThrow); - bindExtendedFunc(cast(void**)&glWindowPos3d, "glWindowPos3d", doThrow); - bindExtendedFunc(cast(void**)&glWindowPos3dv, "glWindowPos3dv", doThrow); - bindExtendedFunc(cast(void**)&glWindowPos3f, "glWindowPos3f", doThrow); - bindExtendedFunc(cast(void**)&glWindowPos3fv, "glWindowPos3fv", doThrow); - bindExtendedFunc(cast(void**)&glWindowPos3i, "glWindowPos3i", doThrow); - bindExtendedFunc(cast(void**)&glWindowPos3iv, "glWindowPos3iv", doThrow); - bindExtendedFunc(cast(void**)&glWindowPos3s, "glWindowPos3s", doThrow); - bindExtendedFunc(cast(void**)&glWindowPos3sv, "glWindowPos3sv", doThrow); - bindExtendedFunc(cast(void**)&glBlendEquation, "glBlendEquation", doThrow); - bindExtendedFunc(cast(void**)&glBlendColor, "glBlendColor", doThrow); - - _maxVersion = GLVersion.GL14; - } - - if(maxAvail >= GLVersion.GL15) - { - doThrow = (targetVersion >= GLVersion.GL15); - - bindExtendedFunc(cast(void**)&glGenQueries, "glGenQueries", doThrow); - bindExtendedFunc(cast(void**)&glDeleteQueries, "glDeleteQueries", doThrow); - bindExtendedFunc(cast(void**)&glIsQuery, "glIsQuery", doThrow); - bindExtendedFunc(cast(void**)&glBeginQuery, "glBeginQuery", doThrow); - bindExtendedFunc(cast(void**)&glEndQuery, "glEndQuery", doThrow); - bindExtendedFunc(cast(void**)&glGetQueryiv, "glGetQueryiv", doThrow); - bindExtendedFunc(cast(void**)&glGetQueryObjectiv, "glGetQueryObjectiv", doThrow); - bindExtendedFunc(cast(void**)&glGetQueryObjectuiv, "glGetQueryObjectuiv", doThrow); - bindExtendedFunc(cast(void**)&glBindBuffer, "glBindBuffer", doThrow); - bindExtendedFunc(cast(void**)&glDeleteBuffers, "glDeleteBuffers", doThrow); - bindExtendedFunc(cast(void**)&glGenBuffers, "glGenBuffers", doThrow); - bindExtendedFunc(cast(void**)&glIsBuffer, "glIsBuffer", doThrow); - bindExtendedFunc(cast(void**)&glBufferData, "glBufferData", doThrow); - bindExtendedFunc(cast(void**)&glBufferSubData, "glBufferSubData", doThrow); - bindExtendedFunc(cast(void**)&glGetBufferSubData, "glGetBufferSubData", doThrow); - bindExtendedFunc(cast(void**)&glMapBuffer, "glMapBuffer", doThrow); - bindExtendedFunc(cast(void**)&glUnmapBuffer, "glUnmapBuffer", doThrow); - bindExtendedFunc(cast(void**)&glGetBufferParameteriv, "glGetBufferParameteriv", doThrow); - bindExtendedFunc(cast(void**)&glGetBufferPointerv, "glGetBufferPointerv", doThrow); - - _maxVersion = GLVersion.GL15; - } - - if(maxAvail >= GLVersion.GL20) - { - doThrow = (targetVersion >= GLVersion.GL20); - - bindExtendedFunc(cast(void**)&glBlendEquationSeparate, "glBlendEquationSeparate", doThrow); - bindExtendedFunc(cast(void**)&glDrawBuffers, "glDrawBuffers", doThrow); - bindExtendedFunc(cast(void**)&glStencilOpSeparate, "glStencilOpSeparate", doThrow); - bindExtendedFunc(cast(void**)&glStencilFuncSeparate, "glStencilFuncSeparate", doThrow); - bindExtendedFunc(cast(void**)&glStencilMaskSeparate, "glStencilMaskSeparate", doThrow); - bindExtendedFunc(cast(void**)&glAttachShader, "glAttachShader", doThrow); - bindExtendedFunc(cast(void**)&glBindAttribLocation, "glBindAttribLocation", doThrow); - bindExtendedFunc(cast(void**)&glCompileShader, "glCompileShader", doThrow); - bindExtendedFunc(cast(void**)&glCreateProgram, "glCreateProgram", doThrow); - bindExtendedFunc(cast(void**)&glCreateShader, "glCreateShader", doThrow); - bindExtendedFunc(cast(void**)&glDeleteProgram, "glDeleteProgram", doThrow); - bindExtendedFunc(cast(void**)&glDeleteShader, "glDeleteShader", doThrow); - bindExtendedFunc(cast(void**)&glDetachShader, "glDetachShader", doThrow); - bindExtendedFunc(cast(void**)&glDisableVertexAttribArray, "glDisableVertexAttribArray", doThrow); - bindExtendedFunc(cast(void**)&glEnableVertexAttribArray, "glEnableVertexAttribArray", doThrow); - bindExtendedFunc(cast(void**)&glGetActiveAttrib, "glGetActiveAttrib", doThrow); - bindExtendedFunc(cast(void**)&glGetActiveUniform, "glGetActiveUniform", doThrow); - bindExtendedFunc(cast(void**)&glGetAttachedShaders, "glGetAttachedShaders", doThrow); - bindExtendedFunc(cast(void**)&glGetAttribLocation, "glGetAttribLocation", doThrow); - bindExtendedFunc(cast(void**)&glGetProgramiv, "glGetProgramiv", doThrow); - bindExtendedFunc(cast(void**)&glGetProgramInfoLog, "glGetProgramInfoLog", doThrow); - bindExtendedFunc(cast(void**)&glGetShaderiv, "glGetShaderiv", doThrow); - bindExtendedFunc(cast(void**)&glGetShaderInfoLog, "glGetShaderInfoLog", doThrow); - bindExtendedFunc(cast(void**)&glGetShaderSource, "glGetShaderSource", doThrow); - bindExtendedFunc(cast(void**)&glGetUniformLocation, "glGetUniformLocation", doThrow); - bindExtendedFunc(cast(void**)&glGetUniformfv, "glGetUniformfv", doThrow); - bindExtendedFunc(cast(void**)&glGetUniformiv, "glGetUniformiv", doThrow); - bindExtendedFunc(cast(void**)&glGetVertexAttribdv, "glGetVertexAttribdv", doThrow); - bindExtendedFunc(cast(void**)&glGetVertexAttribfv, "glGetVertexAttribfv", doThrow); - bindExtendedFunc(cast(void**)&glGetVertexAttribiv, "glGetVertexAttribiv", doThrow); - bindExtendedFunc(cast(void**)&glGetVertexAttribPointerv, "glGetVertexAttribPointerv", doThrow); - bindExtendedFunc(cast(void**)&glIsProgram, "glIsProgram", doThrow); - bindExtendedFunc(cast(void**)&glIsShader, "glIsShader", doThrow); - bindExtendedFunc(cast(void**)&glLinkProgram, "glLinkProgram", doThrow); - bindExtendedFunc(cast(void**)&glShaderSource, "glShaderSource", doThrow); - bindExtendedFunc(cast(void**)&glUseProgram, "glUseProgram", doThrow); - bindExtendedFunc(cast(void**)&glUniform1f, "glUniform1f", doThrow); - bindExtendedFunc(cast(void**)&glUniform2f, "glUniform2f", doThrow); - bindExtendedFunc(cast(void**)&glUniform3f, "glUniform3f", doThrow); - bindExtendedFunc(cast(void**)&glUniform4f, "glUniform4f", doThrow); - bindExtendedFunc(cast(void**)&glUniform1i, "glUniform1i", doThrow); - bindExtendedFunc(cast(void**)&glUniform2i, "glUniform2i", doThrow); - bindExtendedFunc(cast(void**)&glUniform3i, "glUniform3i", doThrow); - bindExtendedFunc(cast(void**)&glUniform4i, "glUniform4i", doThrow); - bindExtendedFunc(cast(void**)&glUniform1fv, "glUniform1fv", doThrow); - bindExtendedFunc(cast(void**)&glUniform2fv, "glUniform2fv", doThrow); - bindExtendedFunc(cast(void**)&glUniform3fv, "glUniform3fv", doThrow); - bindExtendedFunc(cast(void**)&glUniform4fv, "glUniform4fv", doThrow); - bindExtendedFunc(cast(void**)&glUniform1iv, "glUniform1iv", doThrow); - bindExtendedFunc(cast(void**)&glUniform2iv, "glUniform2iv", doThrow); - bindExtendedFunc(cast(void**)&glUniform3iv, "glUniform3iv", doThrow); - bindExtendedFunc(cast(void**)&glUniform4iv, "glUniform4iv", doThrow); - bindExtendedFunc(cast(void**)&glUniformMatrix2fv, "glUniformMatrix2fv", doThrow); - bindExtendedFunc(cast(void**)&glUniformMatrix3fv, "glUniformMatrix3fv", doThrow); - bindExtendedFunc(cast(void**)&glUniformMatrix4fv, "glUniformMatrix4fv", doThrow); - bindExtendedFunc(cast(void**)&glValidateProgram, "glValidateProgram", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib1d, "glVertexAttrib1d", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib1dv, "glVertexAttrib1dv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib1f, "glVertexAttrib1f", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib1fv, "glVertexAttrib1fv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib1s, "glVertexAttrib1s", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib1sv, "glVertexAttrib1sv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib2d, "glVertexAttrib2d", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib2dv, "glVertexAttrib2dv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib2f, "glVertexAttrib2f", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib2fv, "glVertexAttrib2fv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib2s, "glVertexAttrib2s", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib2sv, "glVertexAttrib2sv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib3d, "glVertexAttrib3d", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib3dv, "glVertexAttrib3dv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib3f, "glVertexAttrib3f", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib3fv, "glVertexAttrib3fv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib3s, "glVertexAttrib3s", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib3sv, "glVertexAttrib3sv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib4Nbv, "glVertexAttrib4Nbv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib4Niv, "glVertexAttrib4Niv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib4Nsv, "glVertexAttrib4Nsv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib4Nub, "glVertexAttrib4Nub", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib4Nubv, "glVertexAttrib4Nubv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib4Nuiv, "glVertexAttrib4Nuiv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib4Nusv, "glVertexAttrib4Nusv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib4bv, "glVertexAttrib4bv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib4d, "glVertexAttrib4d", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib4dv, "glVertexAttrib4dv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib4f, "glVertexAttrib4f", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib4fv, "glVertexAttrib4fv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib4iv, "glVertexAttrib4iv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib4s, "glVertexAttrib4s", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib4sv, "glVertexAttrib4sv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib4ubv, "glVertexAttrib4ubv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib4uiv, "glVertexAttrib4uiv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttrib4usv, "glVertexAttrib4usv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribPointer, "glVertexAttribPointer", doThrow); - - _maxVersion = GLVersion.GL20; - } - - if(maxAvail >= GLVersion.GL21) - { - doThrow = (targetVersion >= GLVersion.GL21); - - bindExtendedFunc(cast(void**)&glUniformMatrix2x3fv, "glUniformMatrix2x3fv", doThrow); - bindExtendedFunc(cast(void**)&glUniformMatrix3x2fv, "glUniformMatrix3x2fv", doThrow); - bindExtendedFunc(cast(void**)&glUniformMatrix2x4fv, "glUniformMatrix2x4fv", doThrow); - bindExtendedFunc(cast(void**)&glUniformMatrix4x2fv, "glUniformMatrix4x2fv", doThrow); - bindExtendedFunc(cast(void**)&glUniformMatrix3x4fv, "glUniformMatrix3x4fv", doThrow); - bindExtendedFunc(cast(void**)&glUniformMatrix4x3fv, "glUniformMatrix4x3fv", doThrow); - - _maxVersion = GLVersion.GL21; - } - - return _maxVersion; - } - - GLVersion loadModernVersions(GLVersion targetVersion = GLVersion.GL30) - { - if(!hasValidContext()) - throw new DerelictException("An OpenGL context must be created and activated before attempting to load modern versions."); - - GLVersion maxAvail = findMaxAvailable(); - if(maxAvail < targetVersion) - throw new DerelictException("Required GL version " ~ versionToString(targetVersion) ~ " is not available."); - - bool doThrow = false; - - // gl 3.0 - if(maxAvail >= GLVersion.GL30) - { - doThrow = (targetVersion >= GLVersion.GL30); - bindExtendedFunc(cast(void**)&glBeginConditionalRender, "glBeginConditionalRender", doThrow); - bindExtendedFunc(cast(void**)&glBeginTransformFeedback, "glBeginTransformFeedback", doThrow); - bindExtendedFunc(cast(void**)&glBindFragDataLocation, "glBindFragDataLocation", doThrow); - bindExtendedFunc(cast(void**)&glClampColor, "glClampColor", doThrow); - bindExtendedFunc(cast(void**)&glClearBufferfi, "glClearBufferfi", doThrow); - bindExtendedFunc(cast(void**)&glClearBufferfv, "glClearBufferfv", doThrow); - bindExtendedFunc(cast(void**)&glClearBufferiv, "glClearBufferiv", doThrow); - bindExtendedFunc(cast(void**)&glClearBufferuiv, "glClearBufferuiv", doThrow); - bindExtendedFunc(cast(void**)&glColorMaski, "glColorMaski", doThrow); - bindExtendedFunc(cast(void**)&glDisablei, "glDisablei", doThrow); - bindExtendedFunc(cast(void**)&glEnablei, "glEnablei", doThrow); - bindExtendedFunc(cast(void**)&glEndConditionalRender, "glEndConditionalRender", doThrow); - bindExtendedFunc(cast(void**)&glEndTransformFeedback, "glEndTransformFeedback", doThrow); - bindExtendedFunc(cast(void**)&glBindBufferRange, "glBindBufferRange", doThrow); - bindExtendedFunc(cast(void**)&glBindBufferBase, "glBindBufferBase", doThrow); - bindExtendedFunc(cast(void**)&glGetBooleani_v, "glGetBooleani_v", doThrow); - bindExtendedFunc(cast(void**)&glGetIntegeri_v, "glGetIntegeri_v", doThrow); - bindExtendedFunc(cast(void**)&glGetFragDataLocation, "glGetFragDataLocation", doThrow); - bindExtendedFunc(cast(void**)&glGetStringi, "glGetStringi", doThrow); - bindExtendedFunc(cast(void**)&glGetTexParameterIiv, "glGetTexParameterIiv", doThrow); - bindExtendedFunc(cast(void**)&glGetTexParameterIuiv, "glGetTexParameterIuiv", doThrow); - bindExtendedFunc(cast(void**)&glIsEnabledi, "glIsEnabledi", doThrow); - bindExtendedFunc(cast(void**)&glTexParameterIiv, "glTexParameterIiv", doThrow); - bindExtendedFunc(cast(void**)&glTexParameterIuiv, "glTexParameterIuiv", doThrow); - bindExtendedFunc(cast(void**)&glTransformFeedbackVaryings, "glTransformFeedbackVaryings", doThrow); - bindExtendedFunc(cast(void**)&glGetTransformFeedbackVarying, "glGetTransformFeedbackVarying", doThrow); - bindExtendedFunc(cast(void**)&glUniform1ui, "glUniform1ui", doThrow); - bindExtendedFunc(cast(void**)&glUniform1uiv, "glUniform1uiv", doThrow); - bindExtendedFunc(cast(void**)&glUniform2ui, "glUniform2ui", doThrow); - bindExtendedFunc(cast(void**)&glUniform2uiv, "glUniform2uiv", doThrow); - bindExtendedFunc(cast(void**)&glUniform3ui, "glUniform3ui", doThrow); - bindExtendedFunc(cast(void**)&glUniform3uiv, "glUniform3uiv", doThrow); - bindExtendedFunc(cast(void**)&glUniform4ui, "glUniform4ui", doThrow); - bindExtendedFunc(cast(void**)&glUniform4uiv, "glUniform4uiv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI1i, "glVertexAttribI1i", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI1iv, "glVertexAttribI1iv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI1ui, "glVertexAttribI1ui", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI1uiv, "glVertexAttribI1uiv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI2i, "glVertexAttribI2i", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI2iv, "glVertexAttribI2iv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI2ui, "glVertexAttribI2ui", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI2uiv, "glVertexAttribI2uiv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI3i, "glVertexAttribI3i", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI3iv, "glVertexAttribI3iv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI3ui, "glVertexAttribI3ui", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI3uiv, "glVertexAttribI3uiv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI4bv, "glVertexAttribI4bv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI4i, "glVertexAttribI4i", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI4iv, "glVertexAttribI4iv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI4sv, "glVertexAttribI4sv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI4ubv, "glVertexAttribI4ubv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI4ui, "glVertexAttribI4ui", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI4uiv, "glVertexAttribI4uiv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribI4usv, "glVertexAttribI4usv", doThrow); - bindExtendedFunc(cast(void**)&glVertexAttribIPointer, "glVertexAttribIPointer", doThrow); - bindExtendedFunc(cast(void**)&glGetVertexAttribIiv, "glGetVertexAttribIiv", doThrow); - bindExtendedFunc(cast(void**)&glGetVertexAttribIuiv, "glGetVertexAttribIuiv", doThrow); - bindExtendedFunc(cast(void**)&glGetUniformuiv, "glGetUniformuiv", doThrow); - bindExtendedFunc(cast(void**)&glGetStringi, "glGetStringi", doThrow); - - _maxVersion = GLVersion.GL30; - } - - if(maxAvail >= GLVersion.GL31) - { - bindExtendedFunc(cast(void**)&glDrawArraysInstanced, "glDrawArraysInstanced", doThrow); - bindExtendedFunc(cast(void**)&glDrawElementsInstanced, "glDrawElementsInstanced", doThrow); - bindExtendedFunc(cast(void**)&glPrimitiveRestartIndex, "glPrimitiveRestartIndex", doThrow); - bindExtendedFunc(cast(void**)&glTexBuffer, "glTexBuffer", doThrow); - - _maxVersion = GLVersion.GL31; - } - - if(maxAvail >= GLVersion.GL32) - { - bindExtendedFunc(cast(void**)&glFramebufferTexture, "glFramebufferTexture", doThrow); - bindExtendedFunc(cast(void**)&glGetBufferParameteri64v, "glGetBufferParameteri64v", doThrow); - bindExtendedFunc(cast(void**)&glGetInteger64i_v, "glGetInteger64i_v", doThrow); - - _maxVersion = GLVersion.GL32; - } - - if(maxAvail >= GLVersion.GL33) - { - bindExtendedFunc(cast(void**)&glVertexAttribDivisor, "glVertexAttribDivisor", doThrow); - - _maxVersion = GLVersion.GL33; - } - - if(maxAvail >= GLVersion.GL40) - { - bindExtendedFunc(cast(void**)&glBlendEquationSeparatei, "glBlendEquationSeparatei", doThrow); - bindExtendedFunc(cast(void**)&glBlendEquationi, "glBlendEquationi", doThrow); - bindExtendedFunc(cast(void**)&glBlendFuncSeparatei, "glBlendFuncSeparatei", doThrow); - bindExtendedFunc(cast(void**)&glBlendFunci, "glBlendFunci", doThrow); - bindExtendedFunc(cast(void**)&glMinSampleShading, "glMinSampleShading", doThrow); - - _maxVersion = GLVersion.GL40; - } - - return _maxVersion; - } - - string versionToString(GLVersion ver) - { - switch(ver) - { - case GLVersion.GL40: - return "OpenGL Version 4.0"; - case GLVersion.GL33: - return "OpenGL Version 3.3"; - case GLVersion.GL32: - return "OpenGL Version 3.2"; - case GLVersion.GL31: - return "OpenGL Version 3.1"; - case GLVersion.GL30: - return "OpenGL Version 3.0"; - case GLVersion.GL21: - return "OpenGL Version 2.1"; - case GLVersion.GL20: - return "OpenGL Version 2.0"; - case GLVersion.GL15: - return "OpenGL Version 1.5"; - case GLVersion.GL14: - return "OpenGL Version 1.4"; - case GLVersion.GL13: - return "OpenGL Version 1.3"; - case GLVersion.GL12: - return "OpenGL Version 1.2"; - case GLVersion.GL11: - return "OpenGL Version 1.1"; - case GLVersion.None: - return "OpenGL Version None"; - default: - break; - } - return "Uknown OpenGL Version"; - } - - bool hasValidContext() - { - version(Windows) - { - if(wglGetCurrentContext() is null) - return false; - } - else version(GLX) - { - if(glXGetCurrentContext() is null) - return false; - } - else version(MacOSX) - { - if(CGLGetCurrentContext() is null) - return false; - } - else - { - static assert(0, "DerelictGLLoader.hasValidContext is unimplemented for this platform"); - } - - return true; - } - -protected: - override void loadSymbols() - { - // gl 1.0 - bindFunc(cast(void**)&glClearIndex, "glClearIndex"); - bindFunc(cast(void**)&glClearColor, "glClearColor"); - bindFunc(cast(void**)&glClear, "glClear"); - bindFunc(cast(void**)&glIndexMask, "glIndexMask"); - bindFunc(cast(void**)&glColorMask, "glColorMask"); - bindFunc(cast(void**)&glAlphaFunc, "glAlphaFunc"); - bindFunc(cast(void**)&glBlendFunc, "glBlendFunc"); - bindFunc(cast(void**)&glLogicOp, "glLogicOp"); - bindFunc(cast(void**)&glCullFace, "glCullFace"); - bindFunc(cast(void**)&glFrontFace, "glFrontFace"); - bindFunc(cast(void**)&glPointSize, "glPointSize"); - bindFunc(cast(void**)&glLineWidth, "glLineWidth"); - bindFunc(cast(void**)&glLineStipple, "glLineStipple"); - bindFunc(cast(void**)&glPolygonMode, "glPolygonMode"); - bindFunc(cast(void**)&glPolygonOffset, "glPolygonOffset"); - bindFunc(cast(void**)&glPolygonStipple, "glPolygonStipple"); - bindFunc(cast(void**)&glGetPolygonStipple, "glGetPolygonStipple"); - bindFunc(cast(void**)&glEdgeFlag, "glEdgeFlag"); - bindFunc(cast(void**)&glEdgeFlagv, "glEdgeFlagv"); - bindFunc(cast(void**)&glScissor, "glScissor"); - bindFunc(cast(void**)&glClipPlane, "glClipPlane"); - bindFunc(cast(void**)&glGetClipPlane, "glGetClipPlane"); - bindFunc(cast(void**)&glDrawBuffer, "glDrawBuffer"); - bindFunc(cast(void**)&glReadBuffer, "glReadBuffer"); - bindFunc(cast(void**)&glEnable, "glEnable"); - bindFunc(cast(void**)&glDisable, "glDisable"); - bindFunc(cast(void**)&glIsEnabled, "glIsEnabled"); - bindFunc(cast(void**)&glEnableClientState, "glEnableClientState"); - bindFunc(cast(void**)&glDisableClientState, "glDisableClientState"); - bindFunc(cast(void**)&glGetBooleanv, "glGetBooleanv"); - bindFunc(cast(void**)&glGetDoublev, "glGetDoublev"); - bindFunc(cast(void**)&glGetFloatv, "glGetFloatv"); - bindFunc(cast(void**)&glGetIntegerv, "glGetIntegerv"); - bindFunc(cast(void**)&glPushAttrib, "glPushAttrib"); - bindFunc(cast(void**)&glPopAttrib, "glPopAttrib"); - bindFunc(cast(void**)&glPushClientAttrib, "glPushClientAttrib"); - bindFunc(cast(void**)&glPopClientAttrib, "glPopClientAttrib"); - bindFunc(cast(void**)&glRenderMode, "glRenderMode"); - bindFunc(cast(void**)&glGetError, "glGetError"); - bindFunc(cast(void**)&glGetString, "glGetString"); - bindFunc(cast(void**)&glFinish, "glFinish"); - bindFunc(cast(void**)&glFlush, "glFlush"); - bindFunc(cast(void**)&glHint, "glHint"); - bindFunc(cast(void**)&glClearDepth, "glClearDepth"); - bindFunc(cast(void**)&glDepthFunc, "glDepthFunc"); - bindFunc(cast(void**)&glDepthMask, "glDepthMask"); - bindFunc(cast(void**)&glDepthRange, "glDepthRange"); - bindFunc(cast(void**)&glClearAccum, "glClearAccum"); - bindFunc(cast(void**)&glAccum, "glAccum"); - bindFunc(cast(void**)&glMatrixMode, "glMatrixMode"); - bindFunc(cast(void**)&glOrtho, "glOrtho"); - bindFunc(cast(void**)&glFrustum, "glFrustum"); - bindFunc(cast(void**)&glViewport, "glViewport"); - bindFunc(cast(void**)&glPushMatrix, "glPushMatrix"); - bindFunc(cast(void**)&glPopMatrix, "glPopMatrix"); - bindFunc(cast(void**)&glLoadIdentity, "glLoadIdentity"); - bindFunc(cast(void**)&glLoadMatrixd, "glLoadMatrixd"); - bindFunc(cast(void**)&glLoadMatrixf, "glLoadMatrixf"); - bindFunc(cast(void**)&glMultMatrixd, "glMultMatrixd"); - bindFunc(cast(void**)&glMultMatrixf, "glMultMatrixf"); - bindFunc(cast(void**)&glRotated, "glRotated"); - bindFunc(cast(void**)&glRotatef, "glRotatef"); - bindFunc(cast(void**)&glScaled, "glScaled"); - bindFunc(cast(void**)&glScalef, "glScalef"); - bindFunc(cast(void**)&glTranslated, "glTranslated"); - bindFunc(cast(void**)&glTranslatef, "glTranslatef"); - bindFunc(cast(void**)&glIsList, "glIsList"); - bindFunc(cast(void**)&glDeleteLists, "glDeleteLists"); - bindFunc(cast(void**)&glGenLists, "glGenLists"); - bindFunc(cast(void**)&glNewList, "glNewList"); - bindFunc(cast(void**)&glEndList, "glEndList"); - bindFunc(cast(void**)&glCallList, "glCallList"); - bindFunc(cast(void**)&glCallLists, "glCallLists"); - bindFunc(cast(void**)&glListBase, "glListBase"); - bindFunc(cast(void**)&glBegin, "glBegin"); - bindFunc(cast(void**)&glEnd, "glEnd"); - bindFunc(cast(void**)&glVertex2d, "glVertex2d"); - bindFunc(cast(void**)&glVertex2f, "glVertex2f"); - bindFunc(cast(void**)&glVertex2i, "glVertex2i"); - bindFunc(cast(void**)&glVertex2s, "glVertex2s"); - bindFunc(cast(void**)&glVertex3d, "glVertex3d"); - bindFunc(cast(void**)&glVertex3f, "glVertex3f"); - bindFunc(cast(void**)&glVertex3i, "glVertex3i"); - bindFunc(cast(void**)&glVertex3s, "glVertex3s"); - bindFunc(cast(void**)&glVertex4d, "glVertex4d"); - bindFunc(cast(void**)&glVertex4f, "glVertex4f"); - bindFunc(cast(void**)&glVertex4i, "glVertex4i"); - bindFunc(cast(void**)&glVertex4s, "glVertex4s"); - bindFunc(cast(void**)&glVertex2dv, "glVertex2dv"); - bindFunc(cast(void**)&glVertex2fv, "glVertex2fv"); - bindFunc(cast(void**)&glVertex2iv, "glVertex2iv"); - bindFunc(cast(void**)&glVertex2sv, "glVertex2sv"); - bindFunc(cast(void**)&glVertex3dv, "glVertex3dv"); - bindFunc(cast(void**)&glVertex3fv, "glVertex3fv"); - bindFunc(cast(void**)&glVertex3iv, "glVertex3iv"); - bindFunc(cast(void**)&glVertex3sv, "glVertex3sv"); - bindFunc(cast(void**)&glVertex4dv, "glVertex4dv"); - bindFunc(cast(void**)&glVertex4fv, "glVertex4fv"); - bindFunc(cast(void**)&glVertex4iv, "glVertex4iv"); - bindFunc(cast(void**)&glVertex4sv, "glVertex4sv"); - bindFunc(cast(void**)&glNormal3b, "glNormal3b"); - bindFunc(cast(void**)&glNormal3d, "glNormal3d"); - bindFunc(cast(void**)&glNormal3f, "glNormal3f"); - bindFunc(cast(void**)&glNormal3i, "glNormal3i"); - bindFunc(cast(void**)&glNormal3s, "glNormal3s"); - bindFunc(cast(void**)&glNormal3bv, "glNormal3bv"); - bindFunc(cast(void**)&glNormal3dv, "glNormal3dv"); - bindFunc(cast(void**)&glNormal3fv, "glNormal3fv"); - bindFunc(cast(void**)&glNormal3iv, "glNormal3iv"); - bindFunc(cast(void**)&glNormal3sv, "glNormal3sv"); - bindFunc(cast(void**)&glIndexd, "glIndexd"); - bindFunc(cast(void**)&glIndexf, "glIndexf"); - bindFunc(cast(void**)&glIndexi, "glIndexi"); - bindFunc(cast(void**)&glIndexs, "glIndexs"); - bindFunc(cast(void**)&glIndexub, "glIndexub"); - bindFunc(cast(void**)&glIndexdv, "glIndexdv"); - bindFunc(cast(void**)&glIndexfv, "glIndexfv"); - bindFunc(cast(void**)&glIndexiv, "glIndexiv"); - bindFunc(cast(void**)&glIndexsv, "glIndexsv"); - bindFunc(cast(void**)&glIndexubv, "glIndexubv"); - bindFunc(cast(void**)&glColor3b, "glColor3b"); - bindFunc(cast(void**)&glColor3d, "glColor3d"); - bindFunc(cast(void**)&glColor3f, "glColor3f"); - bindFunc(cast(void**)&glColor3i, "glColor3i"); - bindFunc(cast(void**)&glColor3s, "glColor3s"); - bindFunc(cast(void**)&glColor3ub, "glColor3ub"); - bindFunc(cast(void**)&glColor3ui, "glColor3ui"); - bindFunc(cast(void**)&glColor3us, "glColor3us"); - bindFunc(cast(void**)&glColor4b, "glColor4b"); - bindFunc(cast(void**)&glColor4d, "glColor4d"); - bindFunc(cast(void**)&glColor4f, "glColor4f"); - bindFunc(cast(void**)&glColor4i, "glColor4i"); - bindFunc(cast(void**)&glColor4s, "glColor4s"); - bindFunc(cast(void**)&glColor4ub, "glColor4ub"); - bindFunc(cast(void**)&glColor4ui, "glColor4ui"); - bindFunc(cast(void**)&glColor4us, "glColor4us"); - bindFunc(cast(void**)&glColor3bv, "glColor3bv"); - bindFunc(cast(void**)&glColor3dv, "glColor3dv"); - bindFunc(cast(void**)&glColor3fv, "glColor3fv"); - bindFunc(cast(void**)&glColor3iv, "glColor3iv"); - bindFunc(cast(void**)&glColor3sv, "glColor3sv"); - bindFunc(cast(void**)&glColor3ubv, "glColor3ubv"); - bindFunc(cast(void**)&glColor3uiv, "glColor3uiv"); - bindFunc(cast(void**)&glColor3usv, "glColor3usv"); - bindFunc(cast(void**)&glColor4bv, "glColor4bv"); - bindFunc(cast(void**)&glColor4dv, "glColor4dv"); - bindFunc(cast(void**)&glColor4fv, "glColor4fv"); - bindFunc(cast(void**)&glColor4iv, "glColor4iv"); - bindFunc(cast(void**)&glColor4sv, "glColor4sv"); - bindFunc(cast(void**)&glColor4ubv, "glColor4ubv"); - bindFunc(cast(void**)&glColor4uiv, "glColor4uiv"); - bindFunc(cast(void**)&glColor4usv, "glColor4usv"); - bindFunc(cast(void**)&glTexCoord1d, "glTexCoord1d"); - bindFunc(cast(void**)&glTexCoord1f, "glTexCoord1f"); - bindFunc(cast(void**)&glTexCoord1i, "glTexCoord1i"); - bindFunc(cast(void**)&glTexCoord1s, "glTexCoord1s"); - bindFunc(cast(void**)&glTexCoord2d, "glTexCoord2d"); - bindFunc(cast(void**)&glTexCoord2f, "glTexCoord2f"); - bindFunc(cast(void**)&glTexCoord2i, "glTexCoord2i"); - bindFunc(cast(void**)&glTexCoord2s, "glTexCoord2s"); - bindFunc(cast(void**)&glTexCoord3d, "glTexCoord3d"); - bindFunc(cast(void**)&glTexCoord3f, "glTexCoord3f"); - bindFunc(cast(void**)&glTexCoord3i, "glTexCoord3i"); - bindFunc(cast(void**)&glTexCoord3s, "glTexCoord3s"); - bindFunc(cast(void**)&glTexCoord4d, "glTexCoord4d"); - bindFunc(cast(void**)&glTexCoord4f, "glTexCoord4f"); - bindFunc(cast(void**)&glTexCoord4i, "glTexCoord4i"); - bindFunc(cast(void**)&glTexCoord4s, "glTexCoord4s"); - bindFunc(cast(void**)&glTexCoord1dv, "glTexCoord1dv"); - bindFunc(cast(void**)&glTexCoord1fv, "glTexCoord1fv"); - bindFunc(cast(void**)&glTexCoord1iv, "glTexCoord1iv"); - bindFunc(cast(void**)&glTexCoord1sv, "glTexCoord1sv"); - bindFunc(cast(void**)&glTexCoord2dv, "glTexCoord2dv"); - bindFunc(cast(void**)&glTexCoord2fv, "glTexCoord2fv"); - bindFunc(cast(void**)&glTexCoord2iv, "glTexCoord2iv"); - bindFunc(cast(void**)&glTexCoord2sv, "glTexCoord2sv"); - bindFunc(cast(void**)&glTexCoord3dv, "glTexCoord3dv"); - bindFunc(cast(void**)&glTexCoord3fv, "glTexCoord3fv"); - bindFunc(cast(void**)&glTexCoord3iv, "glTexCoord3iv"); - bindFunc(cast(void**)&glTexCoord3sv, "glTexCoord3sv"); - bindFunc(cast(void**)&glTexCoord4dv, "glTexCoord4dv"); - bindFunc(cast(void**)&glTexCoord4fv, "glTexCoord4fv"); - bindFunc(cast(void**)&glTexCoord4iv, "glTexCoord4iv"); - bindFunc(cast(void**)&glTexCoord4sv, "glTexCoord4sv"); - bindFunc(cast(void**)&glRasterPos2d, "glRasterPos2d"); - bindFunc(cast(void**)&glRasterPos2f, "glRasterPos2f"); - bindFunc(cast(void**)&glRasterPos2i, "glRasterPos2i"); - bindFunc(cast(void**)&glRasterPos2s, "glRasterPos2s"); - bindFunc(cast(void**)&glRasterPos3d, "glRasterPos3d"); - bindFunc(cast(void**)&glRasterPos3f, "glRasterPos3f"); - bindFunc(cast(void**)&glRasterPos3i, "glRasterPos3i"); - bindFunc(cast(void**)&glRasterPos3s, "glRasterPos3s"); - bindFunc(cast(void**)&glRasterPos4d, "glRasterPos4d"); - bindFunc(cast(void**)&glRasterPos4f, "glRasterPos4f"); - bindFunc(cast(void**)&glRasterPos4i, "glRasterPos4i"); - bindFunc(cast(void**)&glRasterPos4s, "glRasterPos4s"); - bindFunc(cast(void**)&glRasterPos2dv, "glRasterPos2dv"); - bindFunc(cast(void**)&glRasterPos2fv, "glRasterPos2fv"); - bindFunc(cast(void**)&glRasterPos2iv, "glRasterPos2iv"); - bindFunc(cast(void**)&glRasterPos2sv, "glRasterPos2sv"); - bindFunc(cast(void**)&glRasterPos3dv, "glRasterPos3dv"); - bindFunc(cast(void**)&glRasterPos3fv, "glRasterPos3fv"); - bindFunc(cast(void**)&glRasterPos3iv, "glRasterPos3iv"); - bindFunc(cast(void**)&glRasterPos3sv, "glRasterPos3sv"); - bindFunc(cast(void**)&glRasterPos4dv, "glRasterPos4dv"); - bindFunc(cast(void**)&glRasterPos4fv, "glRasterPos4fv"); - bindFunc(cast(void**)&glRasterPos4iv, "glRasterPos4iv"); - bindFunc(cast(void**)&glRasterPos4sv, "glRasterPos4sv"); - bindFunc(cast(void**)&glRectd, "glRectd"); - bindFunc(cast(void**)&glRectf, "glRectf"); - bindFunc(cast(void**)&glRecti, "glRecti"); - bindFunc(cast(void**)&glRects, "glRects"); - bindFunc(cast(void**)&glRectdv, "glRectdv"); - bindFunc(cast(void**)&glRectfv, "glRectfv"); - bindFunc(cast(void**)&glRectiv, "glRectiv"); - bindFunc(cast(void**)&glRectsv, "glRectsv"); - bindFunc(cast(void**)&glShadeModel, "glShadeModel"); - bindFunc(cast(void**)&glLightf, "glLightf"); - bindFunc(cast(void**)&glLighti, "glLighti"); - bindFunc(cast(void**)&glLightfv, "glLightfv"); - bindFunc(cast(void**)&glLightiv, "glLightiv"); - bindFunc(cast(void**)&glGetLightfv, "glGetLightfv"); - bindFunc(cast(void**)&glGetLightiv, "glGetLightiv"); - bindFunc(cast(void**)&glLightModelf, "glLightModelf"); - bindFunc(cast(void**)&glLightModeli, "glLightModeli"); - bindFunc(cast(void**)&glLightModelfv, "glLightModelfv"); - bindFunc(cast(void**)&glLightModeliv, "glLightModeliv"); - bindFunc(cast(void**)&glMaterialf, "glMaterialf"); - bindFunc(cast(void**)&glMateriali, "glMateriali"); - bindFunc(cast(void**)&glMaterialfv, "glMaterialfv"); - bindFunc(cast(void**)&glMaterialiv, "glMaterialiv"); - bindFunc(cast(void**)&glGetMaterialfv, "glGetMaterialfv"); - bindFunc(cast(void**)&glGetMaterialiv, "glGetMaterialiv"); - bindFunc(cast(void**)&glColorMaterial, "glColorMaterial"); - bindFunc(cast(void**)&glPixelZoom, "glPixelZoom"); - bindFunc(cast(void**)&glPixelStoref, "glPixelStoref"); - bindFunc(cast(void**)&glPixelStorei, "glPixelStorei"); - bindFunc(cast(void**)&glPixelTransferf, "glPixelTransferf"); - bindFunc(cast(void**)&glPixelTransferi, "glPixelTransferi"); - bindFunc(cast(void**)&glPixelMapfv, "glPixelMapfv"); - bindFunc(cast(void**)&glPixelMapuiv, "glPixelMapuiv"); - bindFunc(cast(void**)&glPixelMapusv, "glPixelMapusv"); - bindFunc(cast(void**)&glGetPixelMapfv, "glGetPixelMapfv"); - bindFunc(cast(void**)&glGetPixelMapuiv, "glGetPixelMapuiv"); - bindFunc(cast(void**)&glGetPixelMapusv, "glGetPixelMapusv"); - bindFunc(cast(void**)&glBitmap, "glBitmap"); - bindFunc(cast(void**)&glReadPixels, "glReadPixels"); - bindFunc(cast(void**)&glDrawPixels, "glDrawPixels"); - bindFunc(cast(void**)&glCopyPixels, "glCopyPixels"); - bindFunc(cast(void**)&glStencilFunc, "glStencilFunc"); - bindFunc(cast(void**)&glStencilMask, "glStencilMask"); - bindFunc(cast(void**)&glStencilOp, "glStencilOp"); - bindFunc(cast(void**)&glClearStencil, "glClearStencil"); - bindFunc(cast(void**)&glTexGend, "glTexGend"); - bindFunc(cast(void**)&glTexGenf, "glTexGenf"); - bindFunc(cast(void**)&glTexGeni, "glTexGeni"); - bindFunc(cast(void**)&glTexGendv, "glTexGendv"); - bindFunc(cast(void**)&glTexGenfv, "glTexGenfv"); - bindFunc(cast(void**)&glTexGeniv, "glTexGeniv"); - bindFunc(cast(void**)&glTexEnvf, "glTexEnvf"); - bindFunc(cast(void**)&glTexEnvi, "glTexEnvi"); - bindFunc(cast(void**)&glTexEnvfv, "glTexEnvfv"); - bindFunc(cast(void**)&glTexEnviv, "glTexEnviv"); - bindFunc(cast(void**)&glGetTexEnvfv, "glGetTexEnvfv"); - bindFunc(cast(void**)&glGetTexEnviv, "glGetTexEnviv"); - bindFunc(cast(void**)&glTexParameterf, "glTexParameterf"); - bindFunc(cast(void**)&glTexParameteri, "glTexParameteri"); - bindFunc(cast(void**)&glTexParameterfv, "glTexParameterfv"); - bindFunc(cast(void**)&glTexParameteriv, "glTexParameteriv"); - bindFunc(cast(void**)&glGetTexParameterfv, "glGetTexParameterfv"); - bindFunc(cast(void**)&glGetTexParameteriv, "glGetTexParameteriv"); - bindFunc(cast(void**)&glGetTexLevelParameterfv, "glGetTexLevelParameterfv"); - bindFunc(cast(void**)&glGetTexLevelParameteriv, "glGetTexLevelParameteriv"); - bindFunc(cast(void**)&glTexImage1D, "glTexImage1D"); - bindFunc(cast(void**)&glTexImage2D, "glTexImage2D"); - bindFunc(cast(void**)&glGetTexImage, "glGetTexImage"); - bindFunc(cast(void**)&glMap1d, "glMap1d"); - bindFunc(cast(void**)&glMap1f, "glMap1f"); - bindFunc(cast(void**)&glMap2d, "glMap2d"); - bindFunc(cast(void**)&glMap2f, "glMap2f"); - bindFunc(cast(void**)&glGetMapdv, "glGetMapdv"); - bindFunc(cast(void**)&glGetMapfv, "glGetMapfv"); - bindFunc(cast(void**)&glEvalCoord1d, "glEvalCoord1d"); - bindFunc(cast(void**)&glEvalCoord1f, "glEvalCoord1f"); - bindFunc(cast(void**)&glEvalCoord1dv, "glEvalCoord1dv"); - bindFunc(cast(void**)&glEvalCoord1fv, "glEvalCoord1fv"); - bindFunc(cast(void**)&glEvalCoord2d, "glEvalCoord2d"); - bindFunc(cast(void**)&glEvalCoord2f, "glEvalCoord2f"); - bindFunc(cast(void**)&glEvalCoord2dv, "glEvalCoord2dv"); - bindFunc(cast(void**)&glEvalCoord2fv, "glEvalCoord2fv"); - bindFunc(cast(void**)&glMapGrid1d, "glMapGrid1d"); - bindFunc(cast(void**)&glMapGrid1f, "glMapGrid1f"); - bindFunc(cast(void**)&glMapGrid2d, "glMapGrid2d"); - bindFunc(cast(void**)&glMapGrid2f, "glMapGrid2f"); - bindFunc(cast(void**)&glEvalPoint1, "glEvalPoint1"); - bindFunc(cast(void**)&glEvalPoint2, "glEvalPoint2"); - bindFunc(cast(void**)&glEvalMesh1, "glEvalMesh1"); - bindFunc(cast(void**)&glEvalMesh2, "glEvalMesh2"); - bindFunc(cast(void**)&glFogf, "glFogf"); - bindFunc(cast(void**)&glFogi, "glFogi"); - bindFunc(cast(void**)&glFogfv, "glFogfv"); - bindFunc(cast(void**)&glFogiv, "glFogiv"); - bindFunc(cast(void**)&glFeedbackBuffer, "glFeedbackBuffer"); - bindFunc(cast(void**)&glPassThrough, "glPassThrough"); - bindFunc(cast(void**)&glSelectBuffer, "glSelectBuffer"); - bindFunc(cast(void**)&glInitNames, "glInitNames"); - bindFunc(cast(void**)&glLoadName, "glLoadName"); - bindFunc(cast(void**)&glPushName, "glPushName"); - bindFunc(cast(void**)&glPopName, "glPopName"); - // gl 1.1 - bindFunc(cast(void**)&glGenTextures, "glGenTextures"); - bindFunc(cast(void**)&glDeleteTextures, "glDeleteTextures"); - bindFunc(cast(void**)&glBindTexture, "glBindTexture"); - bindFunc(cast(void**)&glPrioritizeTextures, "glPrioritizeTextures"); - bindFunc(cast(void**)&glAreTexturesResident, "glAreTexturesResident"); - bindFunc(cast(void**)&glIsTexture, "glIsTexture"); - bindFunc(cast(void**)&glTexSubImage1D, "glTexSubImage1D"); - bindFunc(cast(void**)&glTexSubImage2D, "glTexSubImage2D"); - bindFunc(cast(void**)&glCopyTexImage1D, "glCopyTexImage1D"); - bindFunc(cast(void**)&glCopyTexImage2D, "glCopyTexImage2D"); - bindFunc(cast(void**)&glCopyTexSubImage1D, "glCopyTexSubImage1D"); - bindFunc(cast(void**)&glCopyTexSubImage2D, "glCopyTexSubImage2D"); - bindFunc(cast(void**)&glVertexPointer, "glVertexPointer"); - bindFunc(cast(void**)&glNormalPointer, "glNormalPointer"); - bindFunc(cast(void**)&glColorPointer, "glColorPointer"); - bindFunc(cast(void**)&glIndexPointer, "glIndexPointer"); - bindFunc(cast(void**)&glTexCoordPointer, "glTexCoordPointer"); - bindFunc(cast(void**)&glEdgeFlagPointer, "glEdgeFlagPointer"); - bindFunc(cast(void**)&glGetPointerv, "glGetPointerv"); - bindFunc(cast(void**)&glArrayElement, "glArrayElement"); - bindFunc(cast(void**)&glDrawArrays, "glDrawArrays"); - bindFunc(cast(void**)&glDrawElements, "glDrawElements"); - bindFunc(cast(void**)&glInterleavedArrays, "glInterleavedArrays"); - - loadPlatformGL(&bindFunc); - - _maxVersion = GLVersion.GL11; - } - - public void bindExtendedFunc(void** ptr, string funcName, bool doThrow) - { - version(MacOSX) - { - bindFunc(ptr, funcName, doThrow); - } - else - { - void* func = loadGLSymbol(funcName); - if(func is null && doThrow) - Derelict_HandleMissingSymbol(lib.name, funcName); - else - *ptr = func; - } - } -} - -DerelictGLLoader DerelictGL; - -static this() -{ - DerelictGL = new DerelictGLLoader(); -} - -static ~this() -{ - if(SharedLibLoader.isAutoUnloadEnabled()) - DerelictGL.unload(); +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.opengl.gl; + +public +{ + import derelict.opengl.glfuncs; + import derelict.opengl.gltypes; +} + +private +{ + import derelict.util.loader; + import derelict.util.exception; + import derelict.util.compat; + import derelict.opengl.extloader; + + version(Windows) + import derelict.opengl.wgl; + + version(darwin) + version = MacOSX; + + version(OSX) + version = MacOSX; + + version (MacOSX) + import derelict.opengl.cgl; + + version(linux) + version = GLX; + + version(FreeBSD) + version = freebsd; + + version(freebsd) + version = GLX; + + version(GLX) + import derelict.opengl.glx; +} + +enum GLVersion +{ + None, + GL11 = 11, + GL12 = 12, + GL13 = 13, + GL14 = 14, + GL15 = 15, + GL20 = 20, + GL21 = 21, + MaxClassic = 21, + + GL30 = 30, + GL31 = 31, + GL32 = 32, + GL33 = 33, + GL40 = 40, + MaxModern = 40, + HighestSupported = 40 +} + +class DerelictGLLoader : SharedLibLoader +{ +private: + this() + { + super( + "opengl32.dll", + "libGL.so.2,libGL.so.1,libGL.so", + "../Frameworks/OpenGL.framework/OpenGL, /Library/Frameworks/OpenGL.framework/OpenGL, /System/Library/Frameworks/OpenGL.framework/OpenGL" + ); + } + + GLVersion findMaxAvailable() + { + string verstr = toDString(glGetString(GL_VERSION)); + if(verstr.findStr("4.0") == 0) + return GLVersion.GL40; + else if(verstr.findStr("3.3") == 0) + return GLVersion.GL33; + else if(verstr.findStr("3.2") == 0) + return GLVersion.GL32; + else if(verstr.findStr("3.1") == 0) + return GLVersion.GL31; + else if(verstr.findStr("3.0") == 0) + return GLVersion.GL30; + else if(verstr.findStr("2.1") == 0) + return GLVersion.GL21; + else if(verstr.findStr("2.0") == 0) + return GLVersion.GL20; + else if(verstr.findStr("1.5") == 0) + return GLVersion.GL15; + else if(verstr.findStr("1.4") == 0) + return GLVersion.GL14; + else if(verstr.findStr("1.3") == 0) + return GLVersion.GL13; + else if(verstr.findStr("1.2") == 0) + return GLVersion.GL12; + else if(verstr.findStr("1.1") == 0) + return GLVersion.GL11; + + // assume new version of OpenGL + // TODO this needs to be more robust -- check to make sure that there this + // is a valid version number and actually is higher than the highest supported + return GLVersion.HighestSupported; + } + + GLVersion _maxVersion; + +public: + GLVersion maxVersion() + { + return _maxVersion; + } + + void loadExtensions() + { + if(!hasValidContext()) + throw new DerelictException("An OpenGL context must be created and activated before attempting to load extensions."); + extLoadAll(); + } + + string[] loadedExtensionNames() + { + return getLoadedExtensionNames(); + } + + string[] notLoadedExtensionNames() + { + return getNotLoadedExtensionNames(); + } + + bool isExtensionSupported(string extName) + { + if(!hasValidContext()) + throw new DerelictException("An OpenGL context must be created and activated before attempting to check for supported extensions."); + + return extIsSupported(extName); + } + + bool isExtensionLoaded(string extName) + { + if(!hasValidContext()) + throw new DerelictException("An OpenGL context must be created and activated, and extensions must be loaded, before checking for loaded extensions."); + + return (GLExtensionState.Loaded == extGetState(extName)); + } + + GLExtensionState getExtensionState(string extName) + { + if(!hasValidContext()) + throw new DerelictException("An OpenGL context must be created and activated, and extensions must be loaded, before chacking extension state."); + + return extGetState(extName); + } + + alias loadClassicVersions loadExtendedVersions; + + GLVersion loadClassicVersions(GLVersion targetVersion = GLVersion.GL11) + { + if(!hasValidContext()) + throw new DerelictException("An OpenGL context must be created and activated before attempting to load extended versions."); + + GLVersion maxAvail = findMaxAvailable(); + if(maxAvail < targetVersion) + throw new DerelictException("Required GL version " ~ versionToString(targetVersion) ~ " is not available."); + + bool doThrow = false; + + // gl 1.2 + if(maxAvail >= GLVersion.GL12) + { + doThrow = (targetVersion >= GLVersion.GL12); + + bindExtendedFunc(cast(void**)&glDrawRangeElements, "glDrawRangeElements", doThrow); + bindExtendedFunc(cast(void**)&glTexImage3D, "glTexImage3D", doThrow); + bindExtendedFunc(cast(void**)&glTexSubImage3D, "glTexSubImage3D", doThrow); + bindExtendedFunc(cast(void**)&glCopyTexSubImage3D, "glCopyTexSubImage3D", doThrow); + + /* GL_ARB_imaging + bindExtendedFunc(cast(void**)&glColorTable, "glColorTable", doThrow); + bindExtendedFunc(cast(void**)&glColorSubTable, "glColorSubTable", doThrow); + bindExtendedFunc(cast(void**)&glColorTableParameteriv, "glColorTableParameteriv", doThrow); + bindExtendedFunc(cast(void**)&glColorTableParameterfv, "glColorTableParameterfv", doThrow); + bindExtendedFunc(cast(void**)&glCopyColorSubTable, "glCopyColorSubTable", doThrow); + bindExtendedFunc(cast(void**)&glCopyColorTable, "glCopyColorTable", doThrow); + bindExtendedFunc(cast(void**)&glGetColorTable, "glGetColorTable", doThrow); + bindExtendedFunc(cast(void**)&glGetColorTableParameterfv, "glGetColorTableParameterfv", doThrow); + bindExtendedFunc(cast(void**)&glGetColorTableParameteriv, "glGetColorTableParameteriv", doThrow); + bindExtendedFunc(cast(void**)&glHistogram, "glHistogram", doThrow); + bindExtendedFunc(cast(void**)&glResetHistogram, "glResetHistogram", doThrow); + bindExtendedFunc(cast(void**)&glGetHistogram, "glGetHistogram", doThrow); + bindExtendedFunc(cast(void**)&glGetHistogramParameterfv, "glGetHistogramParameterfv", doThrow); + bindExtendedFunc(cast(void**)&glGetHistogramParameteriv, "glGetHistogramParameteriv", doThrow); + bindExtendedFunc(cast(void**)&glMinmax, "glMinmax", doThrow); + bindExtendedFunc(cast(void**)&glResetMinmax, "glResetMinmax", doThrow); + bindExtendedFunc(cast(void**)&glGetMinmax, "glGetMinmax", doThrow); + bindExtendedFunc(cast(void**)&glGetMinmaxParameterfv, "glGetMinmaxParameterfv", doThrow); + bindExtendedFunc(cast(void**)&glGetMinmaxParameteriv, "glGetMinmaxParameteriv", doThrow); + bindExtendedFunc(cast(void**)&glConvolutionFilter1D, "glConvolutionFilter1D", doThrow); + bindExtendedFunc(cast(void**)&glConvolutionFilter2D, "glConvolutionFilter2D", doThrow); + bindExtendedFunc(cast(void**)&glConvolutionParameterf, "glConvolutionParameterf", doThrow); + bindExtendedFunc(cast(void**)&glConvolutionParameterfv, "glConvolutionParameterfv", doThrow); + bindExtendedFunc(cast(void**)&glConvolutionParameteri, "glConvolutionParameteri", doThrow); + bindExtendedFunc(cast(void**)&glConvolutionParameteriv, "glConvolutionParameteriv", doThrow); + bindExtendedFunc(cast(void**)&glCopyConvolutionFilter1D, "glCopyConvolutionFilter1D", doThrow); + bindExtendedFunc(cast(void**)&glCopyConvolutionFilter2D, "glCopyConvolutionFilter2D", doThrow); + bindExtendedFunc(cast(void**)&glGetConvolutionFilter, "glGetConvolutionFilter", doThrow); + bindExtendedFunc(cast(void**)&glGetConvolutionParameterfv, "glGetConvolutionParameterfv", doThrow); + bindExtendedFunc(cast(void**)&glGetConvolutionParameteriv, "glGetConvolutionParameteriv", doThrow); + bindExtendedFunc(cast(void**)&glSeparableFilter2D, "glSeparableFilter2D", doThrow); + bindExtendedFunc(cast(void**)&glGetSeparableFilter, "glGetSeparableFilter", doThrow); + */ + _maxVersion = GLVersion.GL12; + } + + // gl 1.3 + if(maxAvail >= GLVersion.GL13) + { + doThrow = (targetVersion >= GLVersion.GL13); + + bindExtendedFunc(cast(void**)&glActiveTexture, "glActiveTexture", doThrow); + bindExtendedFunc(cast(void**)&glClientActiveTexture, "glClientActiveTexture", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord1d, "glMultiTexCoord1d", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord1dv, "glMultiTexCoord1dv", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord1f, "glMultiTexCoord1f", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord1fv, "glMultiTexCoord1fv", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord1i, "glMultiTexCoord1i", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord1iv, "glMultiTexCoord1iv", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord1s, "glMultiTexCoord1s", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord1sv, "glMultiTexCoord1sv", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord2d, "glMultiTexCoord2d", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord2dv, "glMultiTexCoord2dv", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord2f, "glMultiTexCoord2f", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord2fv, "glMultiTexCoord2fv", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord2i, "glMultiTexCoord2i", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord2iv, "glMultiTexCoord2iv", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord2s, "glMultiTexCoord2s", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord2sv, "glMultiTexCoord2sv", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord3d, "glMultiTexCoord3d", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord3dv, "glMultiTexCoord3d", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord3f, "glMultiTexCoord3f", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord3fv, "glMultiTexCoord3fv", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord3i, "glMultiTexCoord3i", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord3iv, "glMultiTexCoord3iv", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord3s, "glMultiTexCoord3s", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord3sv, "glMultiTexCoord3sv", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord4d, "glMultiTexCoord4d", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord4dv, "glMultiTexCoord4dv", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord4f, "glMultiTexCoord4f", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord4fv, "glMultiTexCoord4fv", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord4i, "glMultiTexCoord4i", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord4iv, "glMultiTexCoord4iv", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord4s, "glMultiTexCoord4s", doThrow); + bindExtendedFunc(cast(void**)&glMultiTexCoord4sv, "glMultiTexCoord4sv", doThrow); + bindExtendedFunc(cast(void**)&glLoadTransposeMatrixd, "glLoadTransposeMatrixd", doThrow); + bindExtendedFunc(cast(void**)&glLoadTransposeMatrixf, "glLoadTransposeMatrixf", doThrow); + bindExtendedFunc(cast(void**)&glMultTransposeMatrixd, "glMultTransposeMatrixd", doThrow); + bindExtendedFunc(cast(void**)&glMultTransposeMatrixf, "glMultTransposeMatrixf", doThrow); + bindExtendedFunc(cast(void**)&glSampleCoverage, "glSampleCoverage", doThrow); + bindExtendedFunc(cast(void**)&glCompressedTexImage1D, "glCompressedTexImage1D", doThrow); + bindExtendedFunc(cast(void**)&glCompressedTexImage2D, "glCompressedTexImage2D", doThrow); + bindExtendedFunc(cast(void**)&glCompressedTexImage3D, "glCompressedTexImage3D", doThrow); + bindExtendedFunc(cast(void**)&glCompressedTexSubImage1D, "glCompressedTexSubImage1D", doThrow); + bindExtendedFunc(cast(void**)&glCompressedTexSubImage2D, "glCompressedTexSubImage2D", doThrow); + bindExtendedFunc(cast(void**)&glCompressedTexSubImage3D, "glCompressedTexSubImage3D", doThrow); + bindExtendedFunc(cast(void**)&glGetCompressedTexImage, "glGetCompressedTexImage", doThrow); + + _maxVersion = GLVersion.GL13; + } + + if(maxAvail >= GLVersion.GL14) + { + doThrow = (targetVersion >= GLVersion.GL14); + + bindExtendedFunc(cast(void**)&glBlendFuncSeparate, "glBlendFuncSeparate", doThrow); + bindExtendedFunc(cast(void**)&glFogCoordf, "glFogCoordf", doThrow); + bindExtendedFunc(cast(void**)&glFogCoordfv, "glFogCoordfv", doThrow); + bindExtendedFunc(cast(void**)&glFogCoordd, "glFogCoordd", doThrow); + bindExtendedFunc(cast(void**)&glFogCoorddv, "glFogCoorddv", doThrow); + bindExtendedFunc(cast(void**)&glFogCoordPointer, "glFogCoordPointer", doThrow); + bindExtendedFunc(cast(void**)&glMultiDrawArrays, "glMultiDrawArrays", doThrow); + bindExtendedFunc(cast(void**)&glMultiDrawElements, "glMultiDrawElements", doThrow); + bindExtendedFunc(cast(void**)&glPointParameterf, "glPointParameterf", doThrow); + bindExtendedFunc(cast(void**)&glPointParameterfv, "glPointParameterfv", doThrow); + bindExtendedFunc(cast(void**)&glPointParameteri, "glPointParameteri", doThrow); + bindExtendedFunc(cast(void**)&glPointParameteriv, "glPointParameteriv", doThrow); + bindExtendedFunc(cast(void**)&glSecondaryColor3b, "glSecondaryColor3b", doThrow); + bindExtendedFunc(cast(void**)&glSecondaryColor3bv, "glSecondaryColor3bv", doThrow); + bindExtendedFunc(cast(void**)&glSecondaryColor3d, "glSecondaryColor3d", doThrow); + bindExtendedFunc(cast(void**)&glSecondaryColor3dv, "glSecondaryColor3dv", doThrow); + bindExtendedFunc(cast(void**)&glSecondaryColor3f, "glSecondaryColor3f", doThrow); + bindExtendedFunc(cast(void**)&glSecondaryColor3fv, "glSecondaryColor3fv", doThrow); + bindExtendedFunc(cast(void**)&glSecondaryColor3i, "glSecondaryColor3i", doThrow); + bindExtendedFunc(cast(void**)&glSecondaryColor3iv, "glSecondaryColor3iv", doThrow); + bindExtendedFunc(cast(void**)&glSecondaryColor3s, "glSecondaryColor3s", doThrow); + bindExtendedFunc(cast(void**)&glSecondaryColor3sv, "glSecondaryColor3sv", doThrow); + bindExtendedFunc(cast(void**)&glSecondaryColor3ub, "glSecondaryColor3ub", doThrow); + bindExtendedFunc(cast(void**)&glSecondaryColor3ubv, "glSecondaryColor3ubv", doThrow); + bindExtendedFunc(cast(void**)&glSecondaryColor3ui, "glSecondaryColor3ui", doThrow); + bindExtendedFunc(cast(void**)&glSecondaryColor3uiv, "glSecondaryColor3uiv", doThrow); + bindExtendedFunc(cast(void**)&glSecondaryColor3us, "glSecondaryColor3us", doThrow); + bindExtendedFunc(cast(void**)&glSecondaryColor3usv, "glSecondaryColor3usv", doThrow); + bindExtendedFunc(cast(void**)&glSecondaryColorPointer, "glSecondaryColorPointer", doThrow); + bindExtendedFunc(cast(void**)&glWindowPos2d, "glWindowPos2d", doThrow); + bindExtendedFunc(cast(void**)&glWindowPos2dv, "glWindowPos2dv", doThrow); + bindExtendedFunc(cast(void**)&glWindowPos2f, "glWindowPos2f", doThrow); + bindExtendedFunc(cast(void**)&glWindowPos2fv, "glWindowPos2fv", doThrow); + bindExtendedFunc(cast(void**)&glWindowPos2i, "glWindowPos2i", doThrow); + bindExtendedFunc(cast(void**)&glWindowPos2iv, "glWindowPos2iv", doThrow); + bindExtendedFunc(cast(void**)&glWindowPos2s, "glWindowPos2s", doThrow); + bindExtendedFunc(cast(void**)&glWindowPos2sv, "glWindowPos2sv", doThrow); + bindExtendedFunc(cast(void**)&glWindowPos3d, "glWindowPos3d", doThrow); + bindExtendedFunc(cast(void**)&glWindowPos3dv, "glWindowPos3dv", doThrow); + bindExtendedFunc(cast(void**)&glWindowPos3f, "glWindowPos3f", doThrow); + bindExtendedFunc(cast(void**)&glWindowPos3fv, "glWindowPos3fv", doThrow); + bindExtendedFunc(cast(void**)&glWindowPos3i, "glWindowPos3i", doThrow); + bindExtendedFunc(cast(void**)&glWindowPos3iv, "glWindowPos3iv", doThrow); + bindExtendedFunc(cast(void**)&glWindowPos3s, "glWindowPos3s", doThrow); + bindExtendedFunc(cast(void**)&glWindowPos3sv, "glWindowPos3sv", doThrow); + bindExtendedFunc(cast(void**)&glBlendEquation, "glBlendEquation", doThrow); + bindExtendedFunc(cast(void**)&glBlendColor, "glBlendColor", doThrow); + + _maxVersion = GLVersion.GL14; + } + + if(maxAvail >= GLVersion.GL15) + { + doThrow = (targetVersion >= GLVersion.GL15); + + bindExtendedFunc(cast(void**)&glGenQueries, "glGenQueries", doThrow); + bindExtendedFunc(cast(void**)&glDeleteQueries, "glDeleteQueries", doThrow); + bindExtendedFunc(cast(void**)&glIsQuery, "glIsQuery", doThrow); + bindExtendedFunc(cast(void**)&glBeginQuery, "glBeginQuery", doThrow); + bindExtendedFunc(cast(void**)&glEndQuery, "glEndQuery", doThrow); + bindExtendedFunc(cast(void**)&glGetQueryiv, "glGetQueryiv", doThrow); + bindExtendedFunc(cast(void**)&glGetQueryObjectiv, "glGetQueryObjectiv", doThrow); + bindExtendedFunc(cast(void**)&glGetQueryObjectuiv, "glGetQueryObjectuiv", doThrow); + bindExtendedFunc(cast(void**)&glBindBuffer, "glBindBuffer", doThrow); + bindExtendedFunc(cast(void**)&glDeleteBuffers, "glDeleteBuffers", doThrow); + bindExtendedFunc(cast(void**)&glGenBuffers, "glGenBuffers", doThrow); + bindExtendedFunc(cast(void**)&glIsBuffer, "glIsBuffer", doThrow); + bindExtendedFunc(cast(void**)&glBufferData, "glBufferData", doThrow); + bindExtendedFunc(cast(void**)&glBufferSubData, "glBufferSubData", doThrow); + bindExtendedFunc(cast(void**)&glGetBufferSubData, "glGetBufferSubData", doThrow); + bindExtendedFunc(cast(void**)&glMapBuffer, "glMapBuffer", doThrow); + bindExtendedFunc(cast(void**)&glUnmapBuffer, "glUnmapBuffer", doThrow); + bindExtendedFunc(cast(void**)&glGetBufferParameteriv, "glGetBufferParameteriv", doThrow); + bindExtendedFunc(cast(void**)&glGetBufferPointerv, "glGetBufferPointerv", doThrow); + + _maxVersion = GLVersion.GL15; + } + + if(maxAvail >= GLVersion.GL20) + { + doThrow = (targetVersion >= GLVersion.GL20); + + bindExtendedFunc(cast(void**)&glBlendEquationSeparate, "glBlendEquationSeparate", doThrow); + bindExtendedFunc(cast(void**)&glDrawBuffers, "glDrawBuffers", doThrow); + bindExtendedFunc(cast(void**)&glStencilOpSeparate, "glStencilOpSeparate", doThrow); + bindExtendedFunc(cast(void**)&glStencilFuncSeparate, "glStencilFuncSeparate", doThrow); + bindExtendedFunc(cast(void**)&glStencilMaskSeparate, "glStencilMaskSeparate", doThrow); + bindExtendedFunc(cast(void**)&glAttachShader, "glAttachShader", doThrow); + bindExtendedFunc(cast(void**)&glBindAttribLocation, "glBindAttribLocation", doThrow); + bindExtendedFunc(cast(void**)&glCompileShader, "glCompileShader", doThrow); + bindExtendedFunc(cast(void**)&glCreateProgram, "glCreateProgram", doThrow); + bindExtendedFunc(cast(void**)&glCreateShader, "glCreateShader", doThrow); + bindExtendedFunc(cast(void**)&glDeleteProgram, "glDeleteProgram", doThrow); + bindExtendedFunc(cast(void**)&glDeleteShader, "glDeleteShader", doThrow); + bindExtendedFunc(cast(void**)&glDetachShader, "glDetachShader", doThrow); + bindExtendedFunc(cast(void**)&glDisableVertexAttribArray, "glDisableVertexAttribArray", doThrow); + bindExtendedFunc(cast(void**)&glEnableVertexAttribArray, "glEnableVertexAttribArray", doThrow); + bindExtendedFunc(cast(void**)&glGetActiveAttrib, "glGetActiveAttrib", doThrow); + bindExtendedFunc(cast(void**)&glGetActiveUniform, "glGetActiveUniform", doThrow); + bindExtendedFunc(cast(void**)&glGetAttachedShaders, "glGetAttachedShaders", doThrow); + bindExtendedFunc(cast(void**)&glGetAttribLocation, "glGetAttribLocation", doThrow); + bindExtendedFunc(cast(void**)&glGetProgramiv, "glGetProgramiv", doThrow); + bindExtendedFunc(cast(void**)&glGetProgramInfoLog, "glGetProgramInfoLog", doThrow); + bindExtendedFunc(cast(void**)&glGetShaderiv, "glGetShaderiv", doThrow); + bindExtendedFunc(cast(void**)&glGetShaderInfoLog, "glGetShaderInfoLog", doThrow); + bindExtendedFunc(cast(void**)&glGetShaderSource, "glGetShaderSource", doThrow); + bindExtendedFunc(cast(void**)&glGetUniformLocation, "glGetUniformLocation", doThrow); + bindExtendedFunc(cast(void**)&glGetUniformfv, "glGetUniformfv", doThrow); + bindExtendedFunc(cast(void**)&glGetUniformiv, "glGetUniformiv", doThrow); + bindExtendedFunc(cast(void**)&glGetVertexAttribdv, "glGetVertexAttribdv", doThrow); + bindExtendedFunc(cast(void**)&glGetVertexAttribfv, "glGetVertexAttribfv", doThrow); + bindExtendedFunc(cast(void**)&glGetVertexAttribiv, "glGetVertexAttribiv", doThrow); + bindExtendedFunc(cast(void**)&glGetVertexAttribPointerv, "glGetVertexAttribPointerv", doThrow); + bindExtendedFunc(cast(void**)&glIsProgram, "glIsProgram", doThrow); + bindExtendedFunc(cast(void**)&glIsShader, "glIsShader", doThrow); + bindExtendedFunc(cast(void**)&glLinkProgram, "glLinkProgram", doThrow); + bindExtendedFunc(cast(void**)&glShaderSource, "glShaderSource", doThrow); + bindExtendedFunc(cast(void**)&glUseProgram, "glUseProgram", doThrow); + bindExtendedFunc(cast(void**)&glUniform1f, "glUniform1f", doThrow); + bindExtendedFunc(cast(void**)&glUniform2f, "glUniform2f", doThrow); + bindExtendedFunc(cast(void**)&glUniform3f, "glUniform3f", doThrow); + bindExtendedFunc(cast(void**)&glUniform4f, "glUniform4f", doThrow); + bindExtendedFunc(cast(void**)&glUniform1i, "glUniform1i", doThrow); + bindExtendedFunc(cast(void**)&glUniform2i, "glUniform2i", doThrow); + bindExtendedFunc(cast(void**)&glUniform3i, "glUniform3i", doThrow); + bindExtendedFunc(cast(void**)&glUniform4i, "glUniform4i", doThrow); + bindExtendedFunc(cast(void**)&glUniform1fv, "glUniform1fv", doThrow); + bindExtendedFunc(cast(void**)&glUniform2fv, "glUniform2fv", doThrow); + bindExtendedFunc(cast(void**)&glUniform3fv, "glUniform3fv", doThrow); + bindExtendedFunc(cast(void**)&glUniform4fv, "glUniform4fv", doThrow); + bindExtendedFunc(cast(void**)&glUniform1iv, "glUniform1iv", doThrow); + bindExtendedFunc(cast(void**)&glUniform2iv, "glUniform2iv", doThrow); + bindExtendedFunc(cast(void**)&glUniform3iv, "glUniform3iv", doThrow); + bindExtendedFunc(cast(void**)&glUniform4iv, "glUniform4iv", doThrow); + bindExtendedFunc(cast(void**)&glUniformMatrix2fv, "glUniformMatrix2fv", doThrow); + bindExtendedFunc(cast(void**)&glUniformMatrix3fv, "glUniformMatrix3fv", doThrow); + bindExtendedFunc(cast(void**)&glUniformMatrix4fv, "glUniformMatrix4fv", doThrow); + bindExtendedFunc(cast(void**)&glValidateProgram, "glValidateProgram", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib1d, "glVertexAttrib1d", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib1dv, "glVertexAttrib1dv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib1f, "glVertexAttrib1f", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib1fv, "glVertexAttrib1fv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib1s, "glVertexAttrib1s", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib1sv, "glVertexAttrib1sv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib2d, "glVertexAttrib2d", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib2dv, "glVertexAttrib2dv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib2f, "glVertexAttrib2f", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib2fv, "glVertexAttrib2fv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib2s, "glVertexAttrib2s", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib2sv, "glVertexAttrib2sv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib3d, "glVertexAttrib3d", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib3dv, "glVertexAttrib3dv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib3f, "glVertexAttrib3f", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib3fv, "glVertexAttrib3fv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib3s, "glVertexAttrib3s", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib3sv, "glVertexAttrib3sv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib4Nbv, "glVertexAttrib4Nbv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib4Niv, "glVertexAttrib4Niv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib4Nsv, "glVertexAttrib4Nsv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib4Nub, "glVertexAttrib4Nub", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib4Nubv, "glVertexAttrib4Nubv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib4Nuiv, "glVertexAttrib4Nuiv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib4Nusv, "glVertexAttrib4Nusv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib4bv, "glVertexAttrib4bv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib4d, "glVertexAttrib4d", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib4dv, "glVertexAttrib4dv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib4f, "glVertexAttrib4f", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib4fv, "glVertexAttrib4fv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib4iv, "glVertexAttrib4iv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib4s, "glVertexAttrib4s", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib4sv, "glVertexAttrib4sv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib4ubv, "glVertexAttrib4ubv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib4uiv, "glVertexAttrib4uiv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttrib4usv, "glVertexAttrib4usv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribPointer, "glVertexAttribPointer", doThrow); + + _maxVersion = GLVersion.GL20; + } + + if(maxAvail >= GLVersion.GL21) + { + doThrow = (targetVersion >= GLVersion.GL21); + + bindExtendedFunc(cast(void**)&glUniformMatrix2x3fv, "glUniformMatrix2x3fv", doThrow); + bindExtendedFunc(cast(void**)&glUniformMatrix3x2fv, "glUniformMatrix3x2fv", doThrow); + bindExtendedFunc(cast(void**)&glUniformMatrix2x4fv, "glUniformMatrix2x4fv", doThrow); + bindExtendedFunc(cast(void**)&glUniformMatrix4x2fv, "glUniformMatrix4x2fv", doThrow); + bindExtendedFunc(cast(void**)&glUniformMatrix3x4fv, "glUniformMatrix3x4fv", doThrow); + bindExtendedFunc(cast(void**)&glUniformMatrix4x3fv, "glUniformMatrix4x3fv", doThrow); + + _maxVersion = GLVersion.GL21; + } + + return _maxVersion; + } + + GLVersion loadModernVersions(GLVersion targetVersion = GLVersion.GL30) + { + if(!hasValidContext()) + throw new DerelictException("An OpenGL context must be created and activated before attempting to load modern versions."); + + GLVersion maxAvail = findMaxAvailable(); + if(maxAvail < targetVersion) + throw new DerelictException("Required GL version " ~ versionToString(targetVersion) ~ " is not available."); + + bool doThrow = false; + + // gl 3.0 + if(maxAvail >= GLVersion.GL30) + { + doThrow = (targetVersion >= GLVersion.GL30); + bindExtendedFunc(cast(void**)&glBeginConditionalRender, "glBeginConditionalRender", doThrow); + bindExtendedFunc(cast(void**)&glBeginTransformFeedback, "glBeginTransformFeedback", doThrow); + bindExtendedFunc(cast(void**)&glBindFragDataLocation, "glBindFragDataLocation", doThrow); + bindExtendedFunc(cast(void**)&glClampColor, "glClampColor", doThrow); + bindExtendedFunc(cast(void**)&glClearBufferfi, "glClearBufferfi", doThrow); + bindExtendedFunc(cast(void**)&glClearBufferfv, "glClearBufferfv", doThrow); + bindExtendedFunc(cast(void**)&glClearBufferiv, "glClearBufferiv", doThrow); + bindExtendedFunc(cast(void**)&glClearBufferuiv, "glClearBufferuiv", doThrow); + bindExtendedFunc(cast(void**)&glColorMaski, "glColorMaski", doThrow); + bindExtendedFunc(cast(void**)&glDisablei, "glDisablei", doThrow); + bindExtendedFunc(cast(void**)&glEnablei, "glEnablei", doThrow); + bindExtendedFunc(cast(void**)&glEndConditionalRender, "glEndConditionalRender", doThrow); + bindExtendedFunc(cast(void**)&glEndTransformFeedback, "glEndTransformFeedback", doThrow); + bindExtendedFunc(cast(void**)&glBindBufferRange, "glBindBufferRange", doThrow); + bindExtendedFunc(cast(void**)&glBindBufferBase, "glBindBufferBase", doThrow); + bindExtendedFunc(cast(void**)&glGetBooleani_v, "glGetBooleani_v", doThrow); + bindExtendedFunc(cast(void**)&glGetIntegeri_v, "glGetIntegeri_v", doThrow); + bindExtendedFunc(cast(void**)&glGetFragDataLocation, "glGetFragDataLocation", doThrow); + bindExtendedFunc(cast(void**)&glGetStringi, "glGetStringi", doThrow); + bindExtendedFunc(cast(void**)&glGetTexParameterIiv, "glGetTexParameterIiv", doThrow); + bindExtendedFunc(cast(void**)&glGetTexParameterIuiv, "glGetTexParameterIuiv", doThrow); + bindExtendedFunc(cast(void**)&glIsEnabledi, "glIsEnabledi", doThrow); + bindExtendedFunc(cast(void**)&glTexParameterIiv, "glTexParameterIiv", doThrow); + bindExtendedFunc(cast(void**)&glTexParameterIuiv, "glTexParameterIuiv", doThrow); + bindExtendedFunc(cast(void**)&glTransformFeedbackVaryings, "glTransformFeedbackVaryings", doThrow); + bindExtendedFunc(cast(void**)&glGetTransformFeedbackVarying, "glGetTransformFeedbackVarying", doThrow); + bindExtendedFunc(cast(void**)&glUniform1ui, "glUniform1ui", doThrow); + bindExtendedFunc(cast(void**)&glUniform1uiv, "glUniform1uiv", doThrow); + bindExtendedFunc(cast(void**)&glUniform2ui, "glUniform2ui", doThrow); + bindExtendedFunc(cast(void**)&glUniform2uiv, "glUniform2uiv", doThrow); + bindExtendedFunc(cast(void**)&glUniform3ui, "glUniform3ui", doThrow); + bindExtendedFunc(cast(void**)&glUniform3uiv, "glUniform3uiv", doThrow); + bindExtendedFunc(cast(void**)&glUniform4ui, "glUniform4ui", doThrow); + bindExtendedFunc(cast(void**)&glUniform4uiv, "glUniform4uiv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI1i, "glVertexAttribI1i", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI1iv, "glVertexAttribI1iv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI1ui, "glVertexAttribI1ui", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI1uiv, "glVertexAttribI1uiv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI2i, "glVertexAttribI2i", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI2iv, "glVertexAttribI2iv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI2ui, "glVertexAttribI2ui", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI2uiv, "glVertexAttribI2uiv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI3i, "glVertexAttribI3i", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI3iv, "glVertexAttribI3iv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI3ui, "glVertexAttribI3ui", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI3uiv, "glVertexAttribI3uiv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI4bv, "glVertexAttribI4bv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI4i, "glVertexAttribI4i", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI4iv, "glVertexAttribI4iv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI4sv, "glVertexAttribI4sv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI4ubv, "glVertexAttribI4ubv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI4ui, "glVertexAttribI4ui", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI4uiv, "glVertexAttribI4uiv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribI4usv, "glVertexAttribI4usv", doThrow); + bindExtendedFunc(cast(void**)&glVertexAttribIPointer, "glVertexAttribIPointer", doThrow); + bindExtendedFunc(cast(void**)&glGetVertexAttribIiv, "glGetVertexAttribIiv", doThrow); + bindExtendedFunc(cast(void**)&glGetVertexAttribIuiv, "glGetVertexAttribIuiv", doThrow); + bindExtendedFunc(cast(void**)&glGetUniformuiv, "glGetUniformuiv", doThrow); + bindExtendedFunc(cast(void**)&glGetStringi, "glGetStringi", doThrow); + + _maxVersion = GLVersion.GL30; + } + + if(maxAvail >= GLVersion.GL31) + { + bindExtendedFunc(cast(void**)&glDrawArraysInstanced, "glDrawArraysInstanced", doThrow); + bindExtendedFunc(cast(void**)&glDrawElementsInstanced, "glDrawElementsInstanced", doThrow); + bindExtendedFunc(cast(void**)&glPrimitiveRestartIndex, "glPrimitiveRestartIndex", doThrow); + bindExtendedFunc(cast(void**)&glTexBuffer, "glTexBuffer", doThrow); + + _maxVersion = GLVersion.GL31; + } + + if(maxAvail >= GLVersion.GL32) + { + bindExtendedFunc(cast(void**)&glFramebufferTexture, "glFramebufferTexture", doThrow); + bindExtendedFunc(cast(void**)&glGetBufferParameteri64v, "glGetBufferParameteri64v", doThrow); + bindExtendedFunc(cast(void**)&glGetInteger64i_v, "glGetInteger64i_v", doThrow); + + _maxVersion = GLVersion.GL32; + } + + if(maxAvail >= GLVersion.GL33) + { + bindExtendedFunc(cast(void**)&glVertexAttribDivisor, "glVertexAttribDivisor", doThrow); + + _maxVersion = GLVersion.GL33; + } + + if(maxAvail >= GLVersion.GL40) + { + bindExtendedFunc(cast(void**)&glBlendEquationSeparatei, "glBlendEquationSeparatei", doThrow); + bindExtendedFunc(cast(void**)&glBlendEquationi, "glBlendEquationi", doThrow); + bindExtendedFunc(cast(void**)&glBlendFuncSeparatei, "glBlendFuncSeparatei", doThrow); + bindExtendedFunc(cast(void**)&glBlendFunci, "glBlendFunci", doThrow); + bindExtendedFunc(cast(void**)&glMinSampleShading, "glMinSampleShading", doThrow); + + _maxVersion = GLVersion.GL40; + } + + return _maxVersion; + } + + string versionToString(GLVersion ver) + { + switch(ver) + { + case GLVersion.GL40: + return "OpenGL Version 4.0"; + case GLVersion.GL33: + return "OpenGL Version 3.3"; + case GLVersion.GL32: + return "OpenGL Version 3.2"; + case GLVersion.GL31: + return "OpenGL Version 3.1"; + case GLVersion.GL30: + return "OpenGL Version 3.0"; + case GLVersion.GL21: + return "OpenGL Version 2.1"; + case GLVersion.GL20: + return "OpenGL Version 2.0"; + case GLVersion.GL15: + return "OpenGL Version 1.5"; + case GLVersion.GL14: + return "OpenGL Version 1.4"; + case GLVersion.GL13: + return "OpenGL Version 1.3"; + case GLVersion.GL12: + return "OpenGL Version 1.2"; + case GLVersion.GL11: + return "OpenGL Version 1.1"; + case GLVersion.None: + return "OpenGL Version None"; + default: + break; + } + return "Uknown OpenGL Version"; + } + + bool hasValidContext() + { + version(Windows) + { + if(wglGetCurrentContext() is null) + return false; + } + else version(GLX) + { + if(glXGetCurrentContext() is null) + return false; + } + else version(MacOSX) + { + if(CGLGetCurrentContext() is null) + return false; + } + else + { + static assert(0, "DerelictGLLoader.hasValidContext is unimplemented for this platform"); + } + + return true; + } + +protected: + override void loadSymbols() + { + // gl 1.0 + bindFunc(cast(void**)&glClearIndex, "glClearIndex"); + bindFunc(cast(void**)&glClearColor, "glClearColor"); + bindFunc(cast(void**)&glClear, "glClear"); + bindFunc(cast(void**)&glIndexMask, "glIndexMask"); + bindFunc(cast(void**)&glColorMask, "glColorMask"); + bindFunc(cast(void**)&glAlphaFunc, "glAlphaFunc"); + bindFunc(cast(void**)&glBlendFunc, "glBlendFunc"); + bindFunc(cast(void**)&glLogicOp, "glLogicOp"); + bindFunc(cast(void**)&glCullFace, "glCullFace"); + bindFunc(cast(void**)&glFrontFace, "glFrontFace"); + bindFunc(cast(void**)&glPointSize, "glPointSize"); + bindFunc(cast(void**)&glLineWidth, "glLineWidth"); + bindFunc(cast(void**)&glLineStipple, "glLineStipple"); + bindFunc(cast(void**)&glPolygonMode, "glPolygonMode"); + bindFunc(cast(void**)&glPolygonOffset, "glPolygonOffset"); + bindFunc(cast(void**)&glPolygonStipple, "glPolygonStipple"); + bindFunc(cast(void**)&glGetPolygonStipple, "glGetPolygonStipple"); + bindFunc(cast(void**)&glEdgeFlag, "glEdgeFlag"); + bindFunc(cast(void**)&glEdgeFlagv, "glEdgeFlagv"); + bindFunc(cast(void**)&glScissor, "glScissor"); + bindFunc(cast(void**)&glClipPlane, "glClipPlane"); + bindFunc(cast(void**)&glGetClipPlane, "glGetClipPlane"); + bindFunc(cast(void**)&glDrawBuffer, "glDrawBuffer"); + bindFunc(cast(void**)&glReadBuffer, "glReadBuffer"); + bindFunc(cast(void**)&glEnable, "glEnable"); + bindFunc(cast(void**)&glDisable, "glDisable"); + bindFunc(cast(void**)&glIsEnabled, "glIsEnabled"); + bindFunc(cast(void**)&glEnableClientState, "glEnableClientState"); + bindFunc(cast(void**)&glDisableClientState, "glDisableClientState"); + bindFunc(cast(void**)&glGetBooleanv, "glGetBooleanv"); + bindFunc(cast(void**)&glGetDoublev, "glGetDoublev"); + bindFunc(cast(void**)&glGetFloatv, "glGetFloatv"); + bindFunc(cast(void**)&glGetIntegerv, "glGetIntegerv"); + bindFunc(cast(void**)&glPushAttrib, "glPushAttrib"); + bindFunc(cast(void**)&glPopAttrib, "glPopAttrib"); + bindFunc(cast(void**)&glPushClientAttrib, "glPushClientAttrib"); + bindFunc(cast(void**)&glPopClientAttrib, "glPopClientAttrib"); + bindFunc(cast(void**)&glRenderMode, "glRenderMode"); + bindFunc(cast(void**)&glGetError, "glGetError"); + bindFunc(cast(void**)&glGetString, "glGetString"); + bindFunc(cast(void**)&glFinish, "glFinish"); + bindFunc(cast(void**)&glFlush, "glFlush"); + bindFunc(cast(void**)&glHint, "glHint"); + bindFunc(cast(void**)&glClearDepth, "glClearDepth"); + bindFunc(cast(void**)&glDepthFunc, "glDepthFunc"); + bindFunc(cast(void**)&glDepthMask, "glDepthMask"); + bindFunc(cast(void**)&glDepthRange, "glDepthRange"); + bindFunc(cast(void**)&glClearAccum, "glClearAccum"); + bindFunc(cast(void**)&glAccum, "glAccum"); + bindFunc(cast(void**)&glMatrixMode, "glMatrixMode"); + bindFunc(cast(void**)&glOrtho, "glOrtho"); + bindFunc(cast(void**)&glFrustum, "glFrustum"); + bindFunc(cast(void**)&glViewport, "glViewport"); + bindFunc(cast(void**)&glPushMatrix, "glPushMatrix"); + bindFunc(cast(void**)&glPopMatrix, "glPopMatrix"); + bindFunc(cast(void**)&glLoadIdentity, "glLoadIdentity"); + bindFunc(cast(void**)&glLoadMatrixd, "glLoadMatrixd"); + bindFunc(cast(void**)&glLoadMatrixf, "glLoadMatrixf"); + bindFunc(cast(void**)&glMultMatrixd, "glMultMatrixd"); + bindFunc(cast(void**)&glMultMatrixf, "glMultMatrixf"); + bindFunc(cast(void**)&glRotated, "glRotated"); + bindFunc(cast(void**)&glRotatef, "glRotatef"); + bindFunc(cast(void**)&glScaled, "glScaled"); + bindFunc(cast(void**)&glScalef, "glScalef"); + bindFunc(cast(void**)&glTranslated, "glTranslated"); + bindFunc(cast(void**)&glTranslatef, "glTranslatef"); + bindFunc(cast(void**)&glIsList, "glIsList"); + bindFunc(cast(void**)&glDeleteLists, "glDeleteLists"); + bindFunc(cast(void**)&glGenLists, "glGenLists"); + bindFunc(cast(void**)&glNewList, "glNewList"); + bindFunc(cast(void**)&glEndList, "glEndList"); + bindFunc(cast(void**)&glCallList, "glCallList"); + bindFunc(cast(void**)&glCallLists, "glCallLists"); + bindFunc(cast(void**)&glListBase, "glListBase"); + bindFunc(cast(void**)&glBegin, "glBegin"); + bindFunc(cast(void**)&glEnd, "glEnd"); + bindFunc(cast(void**)&glVertex2d, "glVertex2d"); + bindFunc(cast(void**)&glVertex2f, "glVertex2f"); + bindFunc(cast(void**)&glVertex2i, "glVertex2i"); + bindFunc(cast(void**)&glVertex2s, "glVertex2s"); + bindFunc(cast(void**)&glVertex3d, "glVertex3d"); + bindFunc(cast(void**)&glVertex3f, "glVertex3f"); + bindFunc(cast(void**)&glVertex3i, "glVertex3i"); + bindFunc(cast(void**)&glVertex3s, "glVertex3s"); + bindFunc(cast(void**)&glVertex4d, "glVertex4d"); + bindFunc(cast(void**)&glVertex4f, "glVertex4f"); + bindFunc(cast(void**)&glVertex4i, "glVertex4i"); + bindFunc(cast(void**)&glVertex4s, "glVertex4s"); + bindFunc(cast(void**)&glVertex2dv, "glVertex2dv"); + bindFunc(cast(void**)&glVertex2fv, "glVertex2fv"); + bindFunc(cast(void**)&glVertex2iv, "glVertex2iv"); + bindFunc(cast(void**)&glVertex2sv, "glVertex2sv"); + bindFunc(cast(void**)&glVertex3dv, "glVertex3dv"); + bindFunc(cast(void**)&glVertex3fv, "glVertex3fv"); + bindFunc(cast(void**)&glVertex3iv, "glVertex3iv"); + bindFunc(cast(void**)&glVertex3sv, "glVertex3sv"); + bindFunc(cast(void**)&glVertex4dv, "glVertex4dv"); + bindFunc(cast(void**)&glVertex4fv, "glVertex4fv"); + bindFunc(cast(void**)&glVertex4iv, "glVertex4iv"); + bindFunc(cast(void**)&glVertex4sv, "glVertex4sv"); + bindFunc(cast(void**)&glNormal3b, "glNormal3b"); + bindFunc(cast(void**)&glNormal3d, "glNormal3d"); + bindFunc(cast(void**)&glNormal3f, "glNormal3f"); + bindFunc(cast(void**)&glNormal3i, "glNormal3i"); + bindFunc(cast(void**)&glNormal3s, "glNormal3s"); + bindFunc(cast(void**)&glNormal3bv, "glNormal3bv"); + bindFunc(cast(void**)&glNormal3dv, "glNormal3dv"); + bindFunc(cast(void**)&glNormal3fv, "glNormal3fv"); + bindFunc(cast(void**)&glNormal3iv, "glNormal3iv"); + bindFunc(cast(void**)&glNormal3sv, "glNormal3sv"); + bindFunc(cast(void**)&glIndexd, "glIndexd"); + bindFunc(cast(void**)&glIndexf, "glIndexf"); + bindFunc(cast(void**)&glIndexi, "glIndexi"); + bindFunc(cast(void**)&glIndexs, "glIndexs"); + bindFunc(cast(void**)&glIndexub, "glIndexub"); + bindFunc(cast(void**)&glIndexdv, "glIndexdv"); + bindFunc(cast(void**)&glIndexfv, "glIndexfv"); + bindFunc(cast(void**)&glIndexiv, "glIndexiv"); + bindFunc(cast(void**)&glIndexsv, "glIndexsv"); + bindFunc(cast(void**)&glIndexubv, "glIndexubv"); + bindFunc(cast(void**)&glColor3b, "glColor3b"); + bindFunc(cast(void**)&glColor3d, "glColor3d"); + bindFunc(cast(void**)&glColor3f, "glColor3f"); + bindFunc(cast(void**)&glColor3i, "glColor3i"); + bindFunc(cast(void**)&glColor3s, "glColor3s"); + bindFunc(cast(void**)&glColor3ub, "glColor3ub"); + bindFunc(cast(void**)&glColor3ui, "glColor3ui"); + bindFunc(cast(void**)&glColor3us, "glColor3us"); + bindFunc(cast(void**)&glColor4b, "glColor4b"); + bindFunc(cast(void**)&glColor4d, "glColor4d"); + bindFunc(cast(void**)&glColor4f, "glColor4f"); + bindFunc(cast(void**)&glColor4i, "glColor4i"); + bindFunc(cast(void**)&glColor4s, "glColor4s"); + bindFunc(cast(void**)&glColor4ub, "glColor4ub"); + bindFunc(cast(void**)&glColor4ui, "glColor4ui"); + bindFunc(cast(void**)&glColor4us, "glColor4us"); + bindFunc(cast(void**)&glColor3bv, "glColor3bv"); + bindFunc(cast(void**)&glColor3dv, "glColor3dv"); + bindFunc(cast(void**)&glColor3fv, "glColor3fv"); + bindFunc(cast(void**)&glColor3iv, "glColor3iv"); + bindFunc(cast(void**)&glColor3sv, "glColor3sv"); + bindFunc(cast(void**)&glColor3ubv, "glColor3ubv"); + bindFunc(cast(void**)&glColor3uiv, "glColor3uiv"); + bindFunc(cast(void**)&glColor3usv, "glColor3usv"); + bindFunc(cast(void**)&glColor4bv, "glColor4bv"); + bindFunc(cast(void**)&glColor4dv, "glColor4dv"); + bindFunc(cast(void**)&glColor4fv, "glColor4fv"); + bindFunc(cast(void**)&glColor4iv, "glColor4iv"); + bindFunc(cast(void**)&glColor4sv, "glColor4sv"); + bindFunc(cast(void**)&glColor4ubv, "glColor4ubv"); + bindFunc(cast(void**)&glColor4uiv, "glColor4uiv"); + bindFunc(cast(void**)&glColor4usv, "glColor4usv"); + bindFunc(cast(void**)&glTexCoord1d, "glTexCoord1d"); + bindFunc(cast(void**)&glTexCoord1f, "glTexCoord1f"); + bindFunc(cast(void**)&glTexCoord1i, "glTexCoord1i"); + bindFunc(cast(void**)&glTexCoord1s, "glTexCoord1s"); + bindFunc(cast(void**)&glTexCoord2d, "glTexCoord2d"); + bindFunc(cast(void**)&glTexCoord2f, "glTexCoord2f"); + bindFunc(cast(void**)&glTexCoord2i, "glTexCoord2i"); + bindFunc(cast(void**)&glTexCoord2s, "glTexCoord2s"); + bindFunc(cast(void**)&glTexCoord3d, "glTexCoord3d"); + bindFunc(cast(void**)&glTexCoord3f, "glTexCoord3f"); + bindFunc(cast(void**)&glTexCoord3i, "glTexCoord3i"); + bindFunc(cast(void**)&glTexCoord3s, "glTexCoord3s"); + bindFunc(cast(void**)&glTexCoord4d, "glTexCoord4d"); + bindFunc(cast(void**)&glTexCoord4f, "glTexCoord4f"); + bindFunc(cast(void**)&glTexCoord4i, "glTexCoord4i"); + bindFunc(cast(void**)&glTexCoord4s, "glTexCoord4s"); + bindFunc(cast(void**)&glTexCoord1dv, "glTexCoord1dv"); + bindFunc(cast(void**)&glTexCoord1fv, "glTexCoord1fv"); + bindFunc(cast(void**)&glTexCoord1iv, "glTexCoord1iv"); + bindFunc(cast(void**)&glTexCoord1sv, "glTexCoord1sv"); + bindFunc(cast(void**)&glTexCoord2dv, "glTexCoord2dv"); + bindFunc(cast(void**)&glTexCoord2fv, "glTexCoord2fv"); + bindFunc(cast(void**)&glTexCoord2iv, "glTexCoord2iv"); + bindFunc(cast(void**)&glTexCoord2sv, "glTexCoord2sv"); + bindFunc(cast(void**)&glTexCoord3dv, "glTexCoord3dv"); + bindFunc(cast(void**)&glTexCoord3fv, "glTexCoord3fv"); + bindFunc(cast(void**)&glTexCoord3iv, "glTexCoord3iv"); + bindFunc(cast(void**)&glTexCoord3sv, "glTexCoord3sv"); + bindFunc(cast(void**)&glTexCoord4dv, "glTexCoord4dv"); + bindFunc(cast(void**)&glTexCoord4fv, "glTexCoord4fv"); + bindFunc(cast(void**)&glTexCoord4iv, "glTexCoord4iv"); + bindFunc(cast(void**)&glTexCoord4sv, "glTexCoord4sv"); + bindFunc(cast(void**)&glRasterPos2d, "glRasterPos2d"); + bindFunc(cast(void**)&glRasterPos2f, "glRasterPos2f"); + bindFunc(cast(void**)&glRasterPos2i, "glRasterPos2i"); + bindFunc(cast(void**)&glRasterPos2s, "glRasterPos2s"); + bindFunc(cast(void**)&glRasterPos3d, "glRasterPos3d"); + bindFunc(cast(void**)&glRasterPos3f, "glRasterPos3f"); + bindFunc(cast(void**)&glRasterPos3i, "glRasterPos3i"); + bindFunc(cast(void**)&glRasterPos3s, "glRasterPos3s"); + bindFunc(cast(void**)&glRasterPos4d, "glRasterPos4d"); + bindFunc(cast(void**)&glRasterPos4f, "glRasterPos4f"); + bindFunc(cast(void**)&glRasterPos4i, "glRasterPos4i"); + bindFunc(cast(void**)&glRasterPos4s, "glRasterPos4s"); + bindFunc(cast(void**)&glRasterPos2dv, "glRasterPos2dv"); + bindFunc(cast(void**)&glRasterPos2fv, "glRasterPos2fv"); + bindFunc(cast(void**)&glRasterPos2iv, "glRasterPos2iv"); + bindFunc(cast(void**)&glRasterPos2sv, "glRasterPos2sv"); + bindFunc(cast(void**)&glRasterPos3dv, "glRasterPos3dv"); + bindFunc(cast(void**)&glRasterPos3fv, "glRasterPos3fv"); + bindFunc(cast(void**)&glRasterPos3iv, "glRasterPos3iv"); + bindFunc(cast(void**)&glRasterPos3sv, "glRasterPos3sv"); + bindFunc(cast(void**)&glRasterPos4dv, "glRasterPos4dv"); + bindFunc(cast(void**)&glRasterPos4fv, "glRasterPos4fv"); + bindFunc(cast(void**)&glRasterPos4iv, "glRasterPos4iv"); + bindFunc(cast(void**)&glRasterPos4sv, "glRasterPos4sv"); + bindFunc(cast(void**)&glRectd, "glRectd"); + bindFunc(cast(void**)&glRectf, "glRectf"); + bindFunc(cast(void**)&glRecti, "glRecti"); + bindFunc(cast(void**)&glRects, "glRects"); + bindFunc(cast(void**)&glRectdv, "glRectdv"); + bindFunc(cast(void**)&glRectfv, "glRectfv"); + bindFunc(cast(void**)&glRectiv, "glRectiv"); + bindFunc(cast(void**)&glRectsv, "glRectsv"); + bindFunc(cast(void**)&glShadeModel, "glShadeModel"); + bindFunc(cast(void**)&glLightf, "glLightf"); + bindFunc(cast(void**)&glLighti, "glLighti"); + bindFunc(cast(void**)&glLightfv, "glLightfv"); + bindFunc(cast(void**)&glLightiv, "glLightiv"); + bindFunc(cast(void**)&glGetLightfv, "glGetLightfv"); + bindFunc(cast(void**)&glGetLightiv, "glGetLightiv"); + bindFunc(cast(void**)&glLightModelf, "glLightModelf"); + bindFunc(cast(void**)&glLightModeli, "glLightModeli"); + bindFunc(cast(void**)&glLightModelfv, "glLightModelfv"); + bindFunc(cast(void**)&glLightModeliv, "glLightModeliv"); + bindFunc(cast(void**)&glMaterialf, "glMaterialf"); + bindFunc(cast(void**)&glMateriali, "glMateriali"); + bindFunc(cast(void**)&glMaterialfv, "glMaterialfv"); + bindFunc(cast(void**)&glMaterialiv, "glMaterialiv"); + bindFunc(cast(void**)&glGetMaterialfv, "glGetMaterialfv"); + bindFunc(cast(void**)&glGetMaterialiv, "glGetMaterialiv"); + bindFunc(cast(void**)&glColorMaterial, "glColorMaterial"); + bindFunc(cast(void**)&glPixelZoom, "glPixelZoom"); + bindFunc(cast(void**)&glPixelStoref, "glPixelStoref"); + bindFunc(cast(void**)&glPixelStorei, "glPixelStorei"); + bindFunc(cast(void**)&glPixelTransferf, "glPixelTransferf"); + bindFunc(cast(void**)&glPixelTransferi, "glPixelTransferi"); + bindFunc(cast(void**)&glPixelMapfv, "glPixelMapfv"); + bindFunc(cast(void**)&glPixelMapuiv, "glPixelMapuiv"); + bindFunc(cast(void**)&glPixelMapusv, "glPixelMapusv"); + bindFunc(cast(void**)&glGetPixelMapfv, "glGetPixelMapfv"); + bindFunc(cast(void**)&glGetPixelMapuiv, "glGetPixelMapuiv"); + bindFunc(cast(void**)&glGetPixelMapusv, "glGetPixelMapusv"); + bindFunc(cast(void**)&glBitmap, "glBitmap"); + bindFunc(cast(void**)&glReadPixels, "glReadPixels"); + bindFunc(cast(void**)&glDrawPixels, "glDrawPixels"); + bindFunc(cast(void**)&glCopyPixels, "glCopyPixels"); + bindFunc(cast(void**)&glStencilFunc, "glStencilFunc"); + bindFunc(cast(void**)&glStencilMask, "glStencilMask"); + bindFunc(cast(void**)&glStencilOp, "glStencilOp"); + bindFunc(cast(void**)&glClearStencil, "glClearStencil"); + bindFunc(cast(void**)&glTexGend, "glTexGend"); + bindFunc(cast(void**)&glTexGenf, "glTexGenf"); + bindFunc(cast(void**)&glTexGeni, "glTexGeni"); + bindFunc(cast(void**)&glTexGendv, "glTexGendv"); + bindFunc(cast(void**)&glTexGenfv, "glTexGenfv"); + bindFunc(cast(void**)&glTexGeniv, "glTexGeniv"); + bindFunc(cast(void**)&glTexEnvf, "glTexEnvf"); + bindFunc(cast(void**)&glTexEnvi, "glTexEnvi"); + bindFunc(cast(void**)&glTexEnvfv, "glTexEnvfv"); + bindFunc(cast(void**)&glTexEnviv, "glTexEnviv"); + bindFunc(cast(void**)&glGetTexEnvfv, "glGetTexEnvfv"); + bindFunc(cast(void**)&glGetTexEnviv, "glGetTexEnviv"); + bindFunc(cast(void**)&glTexParameterf, "glTexParameterf"); + bindFunc(cast(void**)&glTexParameteri, "glTexParameteri"); + bindFunc(cast(void**)&glTexParameterfv, "glTexParameterfv"); + bindFunc(cast(void**)&glTexParameteriv, "glTexParameteriv"); + bindFunc(cast(void**)&glGetTexParameterfv, "glGetTexParameterfv"); + bindFunc(cast(void**)&glGetTexParameteriv, "glGetTexParameteriv"); + bindFunc(cast(void**)&glGetTexLevelParameterfv, "glGetTexLevelParameterfv"); + bindFunc(cast(void**)&glGetTexLevelParameteriv, "glGetTexLevelParameteriv"); + bindFunc(cast(void**)&glTexImage1D, "glTexImage1D"); + bindFunc(cast(void**)&glTexImage2D, "glTexImage2D"); + bindFunc(cast(void**)&glGetTexImage, "glGetTexImage"); + bindFunc(cast(void**)&glMap1d, "glMap1d"); + bindFunc(cast(void**)&glMap1f, "glMap1f"); + bindFunc(cast(void**)&glMap2d, "glMap2d"); + bindFunc(cast(void**)&glMap2f, "glMap2f"); + bindFunc(cast(void**)&glGetMapdv, "glGetMapdv"); + bindFunc(cast(void**)&glGetMapfv, "glGetMapfv"); + bindFunc(cast(void**)&glEvalCoord1d, "glEvalCoord1d"); + bindFunc(cast(void**)&glEvalCoord1f, "glEvalCoord1f"); + bindFunc(cast(void**)&glEvalCoord1dv, "glEvalCoord1dv"); + bindFunc(cast(void**)&glEvalCoord1fv, "glEvalCoord1fv"); + bindFunc(cast(void**)&glEvalCoord2d, "glEvalCoord2d"); + bindFunc(cast(void**)&glEvalCoord2f, "glEvalCoord2f"); + bindFunc(cast(void**)&glEvalCoord2dv, "glEvalCoord2dv"); + bindFunc(cast(void**)&glEvalCoord2fv, "glEvalCoord2fv"); + bindFunc(cast(void**)&glMapGrid1d, "glMapGrid1d"); + bindFunc(cast(void**)&glMapGrid1f, "glMapGrid1f"); + bindFunc(cast(void**)&glMapGrid2d, "glMapGrid2d"); + bindFunc(cast(void**)&glMapGrid2f, "glMapGrid2f"); + bindFunc(cast(void**)&glEvalPoint1, "glEvalPoint1"); + bindFunc(cast(void**)&glEvalPoint2, "glEvalPoint2"); + bindFunc(cast(void**)&glEvalMesh1, "glEvalMesh1"); + bindFunc(cast(void**)&glEvalMesh2, "glEvalMesh2"); + bindFunc(cast(void**)&glFogf, "glFogf"); + bindFunc(cast(void**)&glFogi, "glFogi"); + bindFunc(cast(void**)&glFogfv, "glFogfv"); + bindFunc(cast(void**)&glFogiv, "glFogiv"); + bindFunc(cast(void**)&glFeedbackBuffer, "glFeedbackBuffer"); + bindFunc(cast(void**)&glPassThrough, "glPassThrough"); + bindFunc(cast(void**)&glSelectBuffer, "glSelectBuffer"); + bindFunc(cast(void**)&glInitNames, "glInitNames"); + bindFunc(cast(void**)&glLoadName, "glLoadName"); + bindFunc(cast(void**)&glPushName, "glPushName"); + bindFunc(cast(void**)&glPopName, "glPopName"); + // gl 1.1 + bindFunc(cast(void**)&glGenTextures, "glGenTextures"); + bindFunc(cast(void**)&glDeleteTextures, "glDeleteTextures"); + bindFunc(cast(void**)&glBindTexture, "glBindTexture"); + bindFunc(cast(void**)&glPrioritizeTextures, "glPrioritizeTextures"); + bindFunc(cast(void**)&glAreTexturesResident, "glAreTexturesResident"); + bindFunc(cast(void**)&glIsTexture, "glIsTexture"); + bindFunc(cast(void**)&glTexSubImage1D, "glTexSubImage1D"); + bindFunc(cast(void**)&glTexSubImage2D, "glTexSubImage2D"); + bindFunc(cast(void**)&glCopyTexImage1D, "glCopyTexImage1D"); + bindFunc(cast(void**)&glCopyTexImage2D, "glCopyTexImage2D"); + bindFunc(cast(void**)&glCopyTexSubImage1D, "glCopyTexSubImage1D"); + bindFunc(cast(void**)&glCopyTexSubImage2D, "glCopyTexSubImage2D"); + bindFunc(cast(void**)&glVertexPointer, "glVertexPointer"); + bindFunc(cast(void**)&glNormalPointer, "glNormalPointer"); + bindFunc(cast(void**)&glColorPointer, "glColorPointer"); + bindFunc(cast(void**)&glIndexPointer, "glIndexPointer"); + bindFunc(cast(void**)&glTexCoordPointer, "glTexCoordPointer"); + bindFunc(cast(void**)&glEdgeFlagPointer, "glEdgeFlagPointer"); + bindFunc(cast(void**)&glGetPointerv, "glGetPointerv"); + bindFunc(cast(void**)&glArrayElement, "glArrayElement"); + bindFunc(cast(void**)&glDrawArrays, "glDrawArrays"); + bindFunc(cast(void**)&glDrawElements, "glDrawElements"); + bindFunc(cast(void**)&glInterleavedArrays, "glInterleavedArrays"); + + loadPlatformGL(&bindFunc); + + _maxVersion = GLVersion.GL11; + } + + public void bindExtendedFunc(void** ptr, string funcName, bool doThrow) + { + version(MacOSX) + { + bindFunc(ptr, funcName, doThrow); + } + else + { + void* func = loadGLSymbol(funcName); + if(func is null && doThrow) + Derelict_HandleMissingSymbol(lib.name, funcName); + else + *ptr = func; + } + } +} + +DerelictGLLoader DerelictGL; + +static this() +{ + DerelictGL = new DerelictGLLoader(); +} + +static ~this() +{ + if(SharedLibLoader.isAutoUnloadEnabled()) + DerelictGL.unload(); } diff --git a/src/derelict/opengl/glext.d b/src/derelict/opengl/glext.d old mode 100755 new mode 100644 index 7393426a..656307c8 --- a/src/derelict/opengl/glext.d +++ b/src/derelict/opengl/glext.d @@ -1,34 +1,34 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.opengl.glext; - -public -{ - import derelict.opengl.exttypes; - import derelict.opengl.extfuncs; +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.opengl.glext; + +public +{ + import derelict.opengl.exttypes; + import derelict.opengl.extfuncs; } \ No newline at end of file diff --git a/src/derelict/opengl/glfuncs.d b/src/derelict/opengl/glfuncs.d old mode 100755 new mode 100644 index a23714fa..251fe511 --- a/src/derelict/opengl/glfuncs.d +++ b/src/derelict/opengl/glfuncs.d @@ -1,1360 +1,1360 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.opengl.glfuncs; - -private -{ - import derelict.util.compat; - import derelict.opengl.gltypes; -} - -extern(System) -{ - alias void function(GLfloat c) da_glClearIndex; - alias void function(GLclampf,GLclampf,GLclampf,GLclampf) da_glClearColor; - alias void function(GLbitfield) da_glClear; - alias void function(GLuint) da_glIndexMask; - alias void function(GLboolean,GLboolean,GLboolean,GLboolean) da_glColorMask; - alias void function(GLenum,GLclampf) da_glAlphaFunc; - alias void function(GLenum,GLenum) da_glBlendFunc; - alias void function(GLenum) da_glLogicOp; - alias void function(GLenum) da_glCullFace; - alias void function(GLenum) da_glFrontFace; - alias void function(GLfloat) da_glPointSize; - alias void function(GLfloat) da_glLineWidth; - alias void function(GLint,GLushort) da_glLineStipple; - alias void function(GLenum,GLenum) da_glPolygonMode; - alias void function(GLfloat,GLfloat) da_glPolygonOffset; - alias void function(in GLubyte*) da_glPolygonStipple; - alias void function(GLubyte*) da_glGetPolygonStipple; - alias void function(GLboolean) da_glEdgeFlag; - alias void function(in GLboolean*) da_glEdgeFlagv; - alias void function(GLint,GLint,GLsizei,GLsizei) da_glScissor; - alias void function(GLenum,in GLdouble*) da_glClipPlane; - alias void function(GLenum,GLdouble*) da_glGetClipPlane; - alias void function(GLenum) da_glDrawBuffer; - alias void function(GLenum) da_glReadBuffer; - alias void function(GLenum) da_glEnable; - alias void function(GLenum) da_glDisable; - alias GLboolean function(GLenum) da_glIsEnabled; - alias void function(GLenum) da_glEnableClientState; - alias void function(GLenum) da_glDisableClientState; - alias void function(GLenum,GLboolean*) da_glGetBooleanv; - alias void function(GLenum,GLdouble*) da_glGetDoublev; - alias void function(GLenum,GLfloat*) da_glGetFloatv; - alias void function(GLenum,GLint*) da_glGetIntegerv; - alias void function(GLbitfield) da_glPushAttrib; - alias void function() da_glPopAttrib; - alias void function(GLbitfield) da_glPushClientAttrib; - alias void function() da_glPopClientAttrib; - alias GLint function(GLenum) da_glRenderMode; - alias GLenum function() da_glGetError; - alias CCPTR function(GLenum) da_glGetString; - alias void function() da_glFinish; - alias void function() da_glFlush; - alias void function(GLenum,GLenum) da_glHint; - - alias void function(GLclampd) da_glClearDepth; - alias void function(GLenum) da_glDepthFunc; - alias void function(GLboolean) da_glDepthMask; - alias void function(GLclampd,GLclampd) da_glDepthRange; - - alias void function(GLfloat,GLfloat,GLfloat,GLfloat) da_glClearAccum; - alias void function(GLenum,GLfloat) da_glAccum; - - alias void function(GLenum) da_glMatrixMode; - alias void function(GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble) da_glOrtho; - alias void function(GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble) da_glFrustum; - alias void function(GLint,GLint,GLsizei,GLsizei) da_glViewport; - alias void function() da_glPushMatrix; - alias void function() da_glPopMatrix; - alias void function() da_glLoadIdentity; - alias void function(in GLdouble*) da_glLoadMatrixd; - alias void function(in GLfloat*) da_glLoadMatrixf; - alias void function(in GLdouble*) da_glMultMatrixd; - alias void function(in GLfloat*) da_glMultMatrixf; - alias void function(GLdouble,GLdouble,GLdouble,GLdouble) da_glRotated; - alias void function(GLfloat,GLfloat,GLfloat,GLfloat) da_glRotatef; - alias void function(GLdouble,GLdouble,GLdouble) da_glScaled; - alias void function(GLfloat,GLfloat,GLfloat) da_glScalef; - alias void function(GLdouble,GLdouble,GLdouble) da_glTranslated; - alias void function(GLfloat,GLfloat,GLfloat) da_glTranslatef; - - alias GLboolean function(GLuint) da_glIsList; - alias void function(GLuint,GLsizei) da_glDeleteLists; - alias GLuint function(GLsizei) da_glGenLists; - alias void function(GLuint,GLenum) da_glNewList; - alias void function() da_glEndList; - alias void function(GLuint) da_glCallList; - alias void function(GLsizei,GLenum,in void*) da_glCallLists; - alias void function(GLuint) da_glListBase; - - alias void function(GLenum) da_glBegin; - alias void function() da_glEnd; - alias void function(GLdouble,GLdouble) da_glVertex2d; - alias void function(GLfloat,GLfloat) da_glVertex2f; - alias void function(GLint,GLint) da_glVertex2i; - alias void function(GLshort,GLshort) da_glVertex2s; - alias void function(GLdouble,GLdouble,GLdouble) da_glVertex3d; - alias void function(GLfloat,GLfloat,GLfloat) da_glVertex3f; - alias void function(GLint,GLint,GLint) da_glVertex3i; - alias void function(GLshort,GLshort,GLshort) da_glVertex3s; - alias void function(GLdouble,GLdouble,GLdouble,GLdouble) da_glVertex4d; - alias void function(GLfloat,GLfloat,GLfloat,GLfloat) da_glVertex4f; - alias void function(GLint,GLint,GLint,GLint) da_glVertex4i; - alias void function(GLshort,GLshort,GLshort,GLshort) da_glVertex4s; - alias void function(in GLdouble*) da_glVertex2dv; - alias void function(in GLfloat*) da_glVertex2fv; - alias void function(in GLint*) da_glVertex2iv; - alias void function(in GLshort*) da_glVertex2sv; - alias void function(in GLdouble*) da_glVertex3dv; - alias void function(in GLfloat*) da_glVertex3fv; - alias void function(in GLint*) da_glVertex3iv; - alias void function(in GLshort*) da_glVertex3sv; - alias void function(in GLdouble*) da_glVertex4dv; - alias void function(in GLfloat*) da_glVertex4fv; - alias void function(in GLint*) da_glVertex4iv; - alias void function(in GLshort*) da_glVertex4sv; - alias void function(GLbyte,GLbyte,GLbyte) da_glNormal3b; - alias void function(GLdouble,GLdouble,GLdouble) da_glNormal3d; - alias void function(GLfloat,GLfloat,GLfloat) da_glNormal3f; - alias void function(GLint,GLint,GLint) da_glNormal3i; - alias void function(GLshort,GLshort,GLshort) da_glNormal3s; - alias void function(in GLbyte*) da_glNormal3bv; - alias void function(in GLdouble*) da_glNormal3dv; - alias void function(in GLfloat*) da_glNormal3fv; - alias void function(in GLint*) da_glNormal3iv; - alias void function(in GLshort*) da_glNormal3sv; - alias void function(GLdouble) da_glIndexd; - alias void function(GLfloat) da_glIndexf; - alias void function(GLint) da_glIndexi; - alias void function(GLshort) da_glIndexs; - alias void function(GLubyte) da_glIndexub; - alias void function(in GLdouble*) da_glIndexdv; - alias void function(in GLfloat*) da_glIndexfv; - alias void function(in GLint*) da_glIndexiv; - alias void function(in GLshort*) da_glIndexsv; - alias void function(in GLubyte*) da_glIndexubv; - alias void function(GLbyte,GLbyte,GLbyte) da_glColor3b; - alias void function(GLdouble,GLdouble,GLdouble) da_glColor3d; - alias void function(GLfloat,GLfloat,GLfloat) da_glColor3f; - alias void function(GLint,GLint,GLint) da_glColor3i; - alias void function(GLshort,GLshort,GLshort) da_glColor3s; - alias void function(GLubyte,GLubyte,GLubyte) da_glColor3ub; - alias void function(GLuint,GLuint,GLuint) da_glColor3ui; - alias void function(GLushort,GLushort,GLushort) da_glColor3us; - alias void function(GLbyte,GLbyte,GLbyte,GLbyte) da_glColor4b; - alias void function(GLdouble,GLdouble,GLdouble,GLdouble) da_glColor4d; - alias void function(GLfloat,GLfloat,GLfloat,GLfloat) da_glColor4f; - alias void function(GLint,GLint,GLint,GLint) da_glColor4i; - alias void function(GLshort,GLshort,GLshort,GLshort) da_glColor4s; - alias void function(GLubyte,GLubyte,GLubyte,GLubyte) da_glColor4ub; - alias void function(GLuint,GLuint,GLuint,GLuint) da_glColor4ui; - alias void function(GLushort,GLushort,GLushort,GLushort) da_glColor4us; - alias void function(in GLbyte*) da_glColor3bv; - alias void function(in GLdouble*) da_glColor3dv; - alias void function(in GLfloat*) da_glColor3fv; - alias void function(in GLint*) da_glColor3iv; - alias void function(in GLshort*) da_glColor3sv; - alias void function(in GLubyte*) da_glColor3ubv; - alias void function(in GLuint*) da_glColor3uiv; - alias void function(in GLushort*) da_glColor3usv; - alias void function(in GLbyte*) da_glColor4bv; - alias void function(in GLdouble*) da_glColor4dv; - alias void function(in GLfloat*) da_glColor4fv; - alias void function(in GLint*) da_glColor4iv; - alias void function(in GLshort*) da_glColor4sv; - alias void function(in GLubyte*) da_glColor4ubv; - alias void function(in GLuint*) da_glColor4uiv; - alias void function(in GLushort*) da_glColor4usv; - alias void function(GLdouble) da_glTexCoord1d; - alias void function(GLfloat) da_glTexCoord1f; - alias void function(GLint) da_glTexCoord1i; - alias void function(GLshort) da_glTexCoord1s; - alias void function(GLdouble,GLdouble) da_glTexCoord2d; - alias void function(GLfloat,GLfloat) da_glTexCoord2f; - alias void function(GLint,GLint) da_glTexCoord2i; - alias void function(GLshort,GLshort) da_glTexCoord2s; - alias void function(GLdouble,GLdouble,GLdouble) da_glTexCoord3d; - alias void function(GLfloat,GLfloat,GLfloat) da_glTexCoord3f; - alias void function(GLint,GLint,GLint) da_glTexCoord3i; - alias void function(GLshort,GLshort,GLshort) da_glTexCoord3s; - alias void function(GLdouble,GLdouble,GLdouble,GLdouble) da_glTexCoord4d; - alias void function(GLfloat,GLfloat,GLfloat,GLfloat) da_glTexCoord4f; - alias void function(GLint,GLint,GLint,GLint) da_glTexCoord4i; - alias void function(GLshort,GLshort,GLshort,GLshort) da_glTexCoord4s; - alias void function(in GLdouble*) da_glTexCoord1dv; - alias void function(in GLfloat*) da_glTexCoord1fv; - alias void function(in GLint*) da_glTexCoord1iv; - alias void function(in GLshort*) da_glTexCoord1sv; - alias void function(in GLdouble*) da_glTexCoord2dv; - alias void function(in GLfloat*) da_glTexCoord2fv; - alias void function(in GLint*) da_glTexCoord2iv; - alias void function(in GLshort*) da_glTexCoord2sv; - alias void function(in GLdouble*) da_glTexCoord3dv; - alias void function(in GLfloat*) da_glTexCoord3fv; - alias void function(in GLint*) da_glTexCoord3iv; - alias void function(in GLshort*) da_glTexCoord3sv; - alias void function(in GLdouble*) da_glTexCoord4dv; - alias void function(in GLfloat*) da_glTexCoord4fv; - alias void function(in GLint*) da_glTexCoord4iv; - alias void function(in GLshort*) da_glTexCoord4sv; - alias void function(GLdouble,GLdouble) da_glRasterPos2d; - alias void function(GLfloat,GLfloat) da_glRasterPos2f; - alias void function(GLint,GLint) da_glRasterPos2i; - alias void function(GLshort,GLshort) da_glRasterPos2s; - alias void function(GLdouble,GLdouble,GLdouble) da_glRasterPos3d; - alias void function(GLfloat,GLfloat,GLfloat) da_glRasterPos3f; - alias void function(GLint,GLint,GLint) da_glRasterPos3i; - alias void function(GLshort,GLshort,GLshort) da_glRasterPos3s; - alias void function(GLdouble,GLdouble,GLdouble,GLdouble) da_glRasterPos4d; - alias void function(GLfloat,GLfloat,GLfloat,GLfloat) da_glRasterPos4f; - alias void function(GLint,GLint,GLint,GLint) da_glRasterPos4i; - alias void function(GLshort,GLshort,GLshort,GLshort) da_glRasterPos4s; - alias void function(in GLdouble*) da_glRasterPos2dv; - alias void function(in GLfloat*) da_glRasterPos2fv; - alias void function(in GLint*) da_glRasterPos2iv; - alias void function(in GLshort*) da_glRasterPos2sv; - alias void function(in GLdouble*) da_glRasterPos3dv; - alias void function(in GLfloat*) da_glRasterPos3fv; - alias void function(in GLint*) da_glRasterPos3iv; - alias void function(in GLshort*) da_glRasterPos3sv; - alias void function(in GLdouble*) da_glRasterPos4dv; - alias void function(in GLfloat*) da_glRasterPos4fv; - alias void function(in GLint*) da_glRasterPos4iv; - alias void function(in GLshort*) da_glRasterPos4sv; - alias void function(GLdouble,GLdouble,GLdouble,GLdouble) da_glRectd; - alias void function(GLfloat,GLfloat,GLfloat,GLfloat) da_glRectf; - alias void function(GLint,GLint,GLint,GLint) da_glRecti; - alias void function(GLshort,GLshort,GLshort,GLshort) da_glRects; - alias void function(in GLdouble*, in GLdouble*) da_glRectdv; - alias void function(in GLfloat*, in GLfloat*) da_glRectfv; - alias void function(in GLint*, in GLint*) da_glRectiv; - alias void function(in GLshort*, in GLshort*) da_glRectsv; - - alias void function(GLenum) da_glShadeModel; - alias void function(GLenum,GLenum,GLfloat) da_glLightf; - alias void function(GLenum,GLenum,GLint) da_glLighti; - alias void function(GLenum,GLenum,in GLfloat*) da_glLightfv; - alias void function(GLenum,GLenum,in GLint*) da_glLightiv; - alias void function(GLenum,GLenum,GLfloat*) da_glGetLightfv; - alias void function(GLenum,GLenum,GLint*) da_glGetLightiv; - alias void function(GLenum,GLfloat) da_glLightModelf; - alias void function(GLenum,GLint) da_glLightModeli; - alias void function(GLenum,in GLfloat*) da_glLightModelfv; - alias void function(GLenum,in GLint*) da_glLightModeliv; - alias void function(GLenum,GLenum,GLfloat) da_glMaterialf; - alias void function(GLenum,GLenum,GLint) da_glMateriali; - alias void function(GLenum,GLenum,in GLfloat*) da_glMaterialfv; - alias void function(GLenum,GLenum,in GLint*) da_glMaterialiv; - alias void function(GLenum,GLenum,GLfloat*) da_glGetMaterialfv; - alias void function(GLenum,GLenum,GLint*) da_glGetMaterialiv; - alias void function(GLenum,GLenum) da_glColorMaterial; - - alias void function(GLfloat,GLfloat) da_glPixelZoom; - alias void function(GLenum,GLfloat) da_glPixelStoref; - alias void function(GLenum,GLint) da_glPixelStorei; - alias void function(GLenum,GLfloat) da_glPixelTransferf; - alias void function(GLenum,GLint) da_glPixelTransferi; - alias void function(GLenum,GLint,in GLfloat*) da_glPixelMapfv; - alias void function(GLenum,GLint,in GLuint*) da_glPixelMapuiv; - alias void function(GLenum,GLint,in GLushort*) da_glPixelMapusv; - alias void function(GLenum,GLfloat*) da_glGetPixelMapfv; - alias void function(GLenum,GLuint*) da_glGetPixelMapuiv; - alias void function(GLenum,GLushort*) da_glGetPixelMapusv; - alias void function(GLsizei,GLsizei,GLfloat,GLfloat,GLfloat,GLfloat,in GLubyte*) da_glBitmap; - alias void function(GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,void*) da_glReadPixels; - alias void function(GLsizei,GLsizei,GLenum,GLenum,in void*) da_glDrawPixels; - alias void function(GLint,GLint,GLsizei,GLsizei,GLenum) da_glCopyPixels; - - alias void function(GLenum,GLint,GLuint) da_glStencilFunc; - alias void function(GLuint) da_glStencilMask; - alias void function(GLenum,GLenum,GLenum) da_glStencilOp; - alias void function(GLint) da_glClearStencil; - - alias void function(GLenum,GLenum,GLdouble) da_glTexGend; - alias void function(GLenum,GLenum,GLfloat) da_glTexGenf; - alias void function(GLenum,GLenum,GLint) da_glTexGeni; - alias void function(GLenum,GLenum,in GLdouble*) da_glTexGendv; - alias void function(GLenum,GLenum,in GLfloat*) da_glTexGenfv; - alias void function(GLenum,GLenum,in GLint*) da_glTexGeniv; - alias void function(GLenum,GLenum,GLdouble*) da_glGetTexGendv; - alias void function(GLenum,GLenum,GLfloat*) da_glGetTexGenfv; - alias void function(GLenum,GLenum,GLint*) da_glGetTexGeniv; - alias void function(GLenum,GLenum,GLfloat) da_glTexEnvf; - alias void function(GLenum,GLenum,GLint) da_glTexEnvi; - alias void function(GLenum,GLenum,in GLfloat*) da_glTexEnvfv; - alias void function(GLenum,GLenum,in GLint*) da_glTexEnviv; - alias void function(GLenum,GLenum,GLfloat*) da_glGetTexEnvfv; - alias void function(GLenum,GLenum,GLint*) da_glGetTexEnviv; - alias void function(GLenum,GLenum,GLfloat) da_glTexParameterf; - alias void function(GLenum,GLenum,GLint) da_glTexParameteri; - alias void function(GLenum,GLenum,in GLfloat*) da_glTexParameterfv; - alias void function(GLenum,GLenum,in GLint*) da_glTexParameteriv; - alias void function(GLenum,GLenum,GLfloat*) da_glGetTexParameterfv; - alias void function(GLenum,GLenum,GLint*) da_glGetTexParameteriv; - alias void function(GLenum,GLint,GLenum,GLfloat*) da_glGetTexLevelParameterfv; - alias void function(GLenum,GLint,GLenum,GLint*) da_glGetTexLevelParameteriv; - alias void function(GLenum,GLint,GLint,GLsizei,GLint,GLenum,GLenum,void*) da_glTexImage1D; - alias void function(GLenum,GLint,GLint,GLsizei,GLsizei,GLint,GLenum,GLenum,void*) da_glTexImage2D; - alias void function(GLenum,GLint,GLenum,GLenum,void*) da_glGetTexImage; - - alias void function(GLenum,GLdouble,GLdouble,GLint,GLint,in GLdouble*) da_glMap1d; - alias void function(GLenum,GLfloat,GLfloat,GLint,GLint,in GLfloat*) da_glMap1f; - alias void function(GLenum,GLdouble,GLdouble,GLint,GLint,GLdouble,GLdouble,GLint,GLint,GLdouble*) da_glMap2d; - alias void function(GLenum,GLfloat,GLfloat,GLint,GLint,GLfloat,GLfloat,GLint,GLint,GLfloat*) da_glMap2f; - alias void function(GLenum,GLenum,GLdouble*) da_glGetMapdv; - alias void function(GLenum,GLenum,GLfloat*) da_glGetMapfv; - alias void function(GLenum,GLenum,GLint*) da_glGetMapiv; - alias void function(GLdouble) da_glEvalCoord1d; - alias void function(GLfloat) da_glEvalCoord1f; - alias void function(in GLdouble*) da_glEvalCoord1dv; - alias void function(in GLfloat*) da_glEvalCoord1fv; - alias void function(GLdouble,GLdouble) da_glEvalCoord2d; - alias void function(GLfloat,GLfloat) da_glEvalCoord2f; - alias void function(in GLdouble*) da_glEvalCoord2dv; - alias void function(in GLfloat*) da_glEvalCoord2fv; - alias void function(GLint,GLdouble,GLdouble) da_glMapGrid1d; - alias void function(GLint,GLfloat,GLfloat) da_glMapGrid1f; - alias void function(GLint,GLdouble,GLdouble,GLint,GLdouble,GLdouble) da_glMapGrid2d; - alias void function(GLint,GLfloat,GLfloat,GLint,GLfloat,GLfloat) da_glMapGrid2f; - alias void function(GLint) da_glEvalPoint1; - alias void function(GLint,GLint) da_glEvalPoint2; - alias void function(GLenum,GLint,GLint) da_glEvalMesh1; - alias void function(GLenum,GLint,GLint,GLint,GLint) da_glEvalMesh2; - - alias void function(GLenum,GLfloat) da_glFogf; - alias void function(GLenum,GLint) da_glFogi; - alias void function(GLenum,in GLfloat*) da_glFogfv; - alias void function(GLenum,in GLint*) da_glFogiv; - - alias void function(GLsizei,GLenum,GLfloat*) da_glFeedbackBuffer; - alias void function(GLfloat) da_glPassThrough; - alias void function(GLsizei,GLuint*) da_glSelectBuffer; - alias void function() da_glInitNames; - alias void function(GLuint) da_glLoadName; - alias void function(GLuint) da_glPushName; - alias void function() da_glPopName; - - alias void function(GLsizei,GLuint*) da_glGenTextures; - alias void function(GLsizei,in GLuint*) da_glDeleteTextures; - alias void function(GLenum,GLuint) da_glBindTexture; - alias void function(GLsizei,in GLuint*,in GLclampf*) da_glPrioritizeTextures; - alias GLboolean function(GLsizei,in GLuint*,GLboolean*) da_glAreTexturesResident; - alias GLboolean function(GLuint) da_glIsTexture; - - alias void function(GLenum,GLint,GLint,GLsizei,GLenum,GLenum,in void*) da_glTexSubImage1D; - alias void function(GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,in void*) da_glTexSubImage2D; - alias void function(GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLint) da_glCopyTexImage1D; - alias void function(GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLsizei,GLint) da_glCopyTexImage2D; - alias void function(GLenum,GLint,GLint,GLint,GLint,GLsizei) da_glCopyTexSubImage1D; - alias void function(GLenum,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei) da_glCopyTexSubImage2D; - - alias void function(GLint,GLenum,GLsizei,in void*) da_glVertexPointer; - alias void function(GLenum,GLsizei,in void*) da_glNormalPointer; - alias void function(GLint,GLenum,GLsizei,in void*) da_glColorPointer; - alias void function(GLenum,GLsizei,in void*) da_glIndexPointer; - alias void function(GLint,GLenum,GLsizei,in void*) da_glTexCoordPointer; - alias void function(GLsizei,in void*) da_glEdgeFlagPointer; - alias void function(GLenum,void**) da_glGetPointerv; - alias void function(GLint) da_glArrayElement; - alias void function(GLenum,GLint,GLsizei) da_glDrawArrays; - alias void function(GLenum,GLsizei,GLenum,in void*) da_glDrawElements; - alias void function(GLenum,GLsizei,in void*) da_glInterleavedArrays; - - // gl 1.2 - alias void function(GLenum, GLuint, GLuint, GLsizei, GLenum, in void*) da_glDrawRangeElements; - alias void function(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, void*) da_glTexImage3D; - alias void function(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, void*) da_glTexSubImage3D; - alias void function(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) da_glCopyTexSubImage3D; - - // gl 1.3 - alias void function(GLenum) da_glActiveTexture; - alias void function(GLenum) da_glClientActiveTexture; - alias void function(GLenum, GLdouble) da_glMultiTexCoord1d; - alias void function(GLenum, in GLdouble*) da_glMultiTexCoord1dv; - alias void function(GLenum, GLfloat) da_glMultiTexCoord1f; - alias void function(GLenum, in GLfloat*) da_glMultiTexCoord1fv; - alias void function(GLenum, GLint) da_glMultiTexCoord1i; - alias void function(GLenum, in GLint*) da_glMultiTexCoord1iv; - alias void function(GLenum, GLshort) da_glMultiTexCoord1s; - alias void function(GLenum, in GLshort*) da_glMultiTexCoord1sv; - alias void function(GLenum, GLdouble, GLdouble) da_glMultiTexCoord2d; - alias void function(GLenum, in GLdouble*) da_glMultiTexCoord2dv; - alias void function(GLenum, GLfloat, GLfloat) da_glMultiTexCoord2f; - alias void function(GLenum, in GLfloat*) da_glMultiTexCoord2fv; - alias void function(GLenum, GLint, GLint) da_glMultiTexCoord2i; - alias void function(GLenum, in GLint*) da_glMultiTexCoord2iv; - alias void function(GLenum, GLshort, GLshort) da_glMultiTexCoord2s; - alias void function(GLenum, in GLshort*) da_glMultiTexCoord2sv; - alias void function(GLenum, GLdouble, GLdouble, GLdouble) da_glMultiTexCoord3d; - alias void function(GLenum, in GLdouble*) da_glMultiTexCoord3dv; - alias void function(GLenum, GLfloat, GLfloat, GLfloat) da_glMultiTexCoord3f; - alias void function(GLenum, in GLfloat*) da_glMultiTexCoord3fv; - alias void function(GLenum, GLint, GLint, GLint) da_glMultiTexCoord3i; - alias void function(GLenum, in GLint*) da_glMultiTexCoord3iv; - alias void function(GLenum, GLshort, GLshort, GLshort) da_glMultiTexCoord3s; - alias void function(GLenum, in GLshort*) da_glMultiTexCoord3sv; - alias void function(GLenum, GLdouble, GLdouble, GLdouble, GLdouble) da_glMultiTexCoord4d; - alias void function(GLenum, in GLdouble*) da_glMultiTexCoord4dv; - alias void function(GLenum, GLfloat, GLfloat, GLfloat, GLfloat) da_glMultiTexCoord4f; - alias void function(GLenum, in GLfloat*) da_glMultiTexCoord4fv; - alias void function(GLenum, GLint, GLint, GLint, GLint) da_glMultiTexCoord4i; - alias void function(GLenum, in GLint*) da_glMultiTexCoord4iv; - alias void function(GLenum, GLshort, GLshort, GLshort, GLshort) da_glMultiTexCoord4s; - alias void function(GLenum, in GLshort*) da_glMultiTexCoord4sv; - alias void function(GLdouble*) da_glLoadTransposeMatrixd; - alias void function(in GLfloat*) da_glLoadTransposeMatrixf; - alias void function(in GLdouble*) da_glMultTransposeMatrixd; - alias void function(in GLfloat*) da_glMultTransposeMatrixf; - alias void function(in GLclampf, GLboolean) da_glSampleCoverage; - alias void function(GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, in void*) da_glCompressedTexImage1D; - alias void function(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, in void*) da_glCompressedTexImage2D; - alias void function(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei depth, GLint, GLsizei, in void*) da_glCompressedTexImage3D; - alias void function(GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, in void*) da_glCompressedTexSubImage1D; - alias void function(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, in void*) da_glCompressedTexSubImage2D; - alias void function(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, in void*) da_glCompressedTexSubImage3D; - alias void function(GLenum, GLint, void*) da_glGetCompressedTexImage; - - // gl 1.4 - alias void function(GLenum, GLenum, GLenum, GLenum) da_glBlendFuncSeparate; - alias void function(GLfloat) da_glFogCoordf; - alias void function(in GLfloat*) da_glFogCoordfv; - alias void function(GLdouble) da_glFogCoordd; - alias void function(in GLdouble*) da_glFogCoorddv; - alias void function(GLenum, GLsizei,in void*) da_glFogCoordPointer; - alias void function(GLenum, GLint*, GLsizei*, GLsizei) da_glMultiDrawArrays; - alias void function(GLenum, GLsizei*, GLenum, in void**, GLsizei) da_glMultiDrawElements; - alias void function(GLenum, GLfloat) da_glPointParameterf; - alias void function(GLenum, GLfloat*) da_glPointParameterfv; - alias void function(GLenum, GLint) da_glPointParameteri; - alias void function(GLenum, GLint*) da_glPointParameteriv; - alias void function(GLbyte, GLbyte, GLbyte) da_glSecondaryColor3b; - alias void function(in GLbyte*) da_glSecondaryColor3bv; - alias void function(GLdouble, GLdouble, GLdouble) da_glSecondaryColor3d; - alias void function(in GLdouble*) da_glSecondaryColor3dv; - alias void function(GLfloat, GLfloat, GLfloat) da_glSecondaryColor3f; - alias void function(in GLfloat*) da_glSecondaryColor3fv; - alias void function(GLint, GLint, GLint) da_glSecondaryColor3i; - alias void function(in GLint*) da_glSecondaryColor3iv; - alias void function(GLshort, GLshort, GLshort) da_glSecondaryColor3s; - alias void function(in GLshort*) da_glSecondaryColor3sv; - alias void function(GLubyte, GLubyte, GLubyte) da_glSecondaryColor3ub; - alias void function(in GLubyte*) da_glSecondaryColor3ubv; - alias void function(GLuint, GLuint, GLuint) da_glSecondaryColor3ui; - alias void function(in GLuint*) da_glSecondaryColor3uiv; - alias void function(GLushort, GLushort, GLushort) da_glSecondaryColor3us; - alias void function(in GLushort*) da_glSecondaryColor3usv; - alias void function(GLint, GLenum, GLsizei, void*) da_glSecondaryColorPointer; - alias void function(GLdouble, GLdouble) da_glWindowPos2d; - alias void function(in GLdouble*) da_glWindowPos2dv; - alias void function(GLfloat, GLfloat) da_glWindowPos2f; - alias void function(in GLfloat*) da_glWindowPos2fv; - alias void function(GLint, GLint) da_glWindowPos2i; - alias void function(in GLint*) da_glWindowPos2iv; - alias void function(GLshort, GLshort) da_glWindowPos2s; - alias void function(in GLshort*) da_glWindowPos2sv; - alias void function(GLdouble, GLdouble, GLdouble) da_glWindowPos3d; - alias void function(in GLdouble*) da_glWindowPos3dv; - alias void function(GLfloat, GLfloat, GLfloat) da_glWindowPos3f; - alias void function(in GLfloat*) da_glWindowPos3fv; - alias void function(GLint, GLint, GLint) da_glWindowPos3i; - alias void function(in GLint*) da_glWindowPos3iv; - alias void function(GLshort, GLshort, GLshort) da_glWindowPos3s; - alias void function(in GLshort*) da_glWindowPos3sv; - alias void function(GLclampf, GLclampf, GLclampf, GLclampf) da_glBlendColor; - alias void function(GLenum) da_glBlendEquation; - - // gl 1.5 - alias void function(GLsizei, GLuint*) da_glGenQueries; - alias void function(GLsizei,in GLuint*) da_glDeleteQueries; - alias GLboolean function(GLuint) da_glIsQuery; - alias void function(GLenum, GLuint) da_glBeginQuery; - alias void function(GLenum) da_glEndQuery; - alias void function(GLenum, GLenum, GLint*) da_glGetQueryiv; - alias void function(GLuint, GLenum, GLint*) da_glGetQueryObjectiv; - alias void function(GLuint, GLenum, GLuint*) da_glGetQueryObjectuiv; - alias void function(GLenum, GLuint) da_glBindBuffer; - alias void function(GLsizei, in GLuint*) da_glDeleteBuffers; - alias void function(GLsizei, GLuint*) da_glGenBuffers; - alias GLboolean function(GLuint) da_glIsBuffer; - alias void function(GLenum, GLsizeiptr, in void*, GLenum) da_glBufferData; - alias void function(GLenum, GLintptr, GLsizeiptr,in void*) da_glBufferSubData; - alias void function(GLenum, GLintptr, GLsizeiptr, void*) da_glGetBufferSubData; - alias void* function(GLenum, GLenum) da_glMapBuffer; - alias GLboolean function(GLenum) da_glUnmapBuffer; - alias void function(GLenum, GLenum, GLint*) da_glGetBufferParameteriv; - alias void function(GLenum, GLenum, void**) da_glGetBufferPointerv; - - // gl 2.0 - alias void function(GLenum, GLenum) da_glBlendEquationSeparate; - alias void function(GLsizei, in GLenum*) da_glDrawBuffers; - alias void function(GLenum, GLenum, GLenum, GLenum) da_glStencilOpSeparate; - alias void function(GLenum, GLenum, GLint, GLuint) da_glStencilFuncSeparate; - alias void function(GLenum, GLuint) da_glStencilMaskSeparate; - alias void function(GLuint, GLuint) da_glAttachShader; - alias void function(GLuint, GLuint, in GLchar*) da_glBindAttribLocation; - alias void function(GLuint) da_glCompileShader; - alias GLuint function() da_glCreateProgram; - alias GLuint function(GLenum) da_glCreateShader; - alias void function(GLuint) da_glDeleteProgram; - alias void function(GLuint) da_glDeleteShader; - alias void function(GLuint, GLuint) da_glDetachShader; - alias void function(GLuint) da_glDisableVertexAttribArray; - alias void function(GLuint) da_glEnableVertexAttribArray; - alias void function(GLuint, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLchar*) da_glGetActiveAttrib; - alias void function(GLuint, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLchar*) da_glGetActiveUniform; - alias void function(GLuint, GLsizei, GLsizei*, GLuint*) da_glGetAttachedShaders; - alias GLint function(GLuint, in GLchar*) da_glGetAttribLocation; - alias void function(GLuint, GLenum, GLint*) da_glGetProgramiv; - alias void function(GLuint, GLsizei, GLsizei*, GLchar*) da_glGetProgramInfoLog; - alias void function(GLuint, GLenum, GLint *) da_glGetShaderiv; - alias void function(GLuint, GLsizei, GLsizei*, GLchar*) da_glGetShaderInfoLog; - alias void function(GLuint, GLsizei, GLsizei*, GLchar*) da_glGetShaderSource; - alias GLint function(GLuint, in GLchar*) da_glGetUniformLocation; - alias void function(GLuint, GLint, GLfloat*) da_glGetUniformfv; - alias void function(GLuint, GLint, GLint*) da_glGetUniformiv; - alias void function(GLuint, GLenum, GLdouble*) da_glGetVertexAttribdv; - alias void function(GLuint, GLenum, GLfloat*) da_glGetVertexAttribfv; - alias void function(GLuint, GLenum, GLint*) da_glGetVertexAttribiv; - alias void function(GLuint, GLenum, void**) da_glGetVertexAttribPointerv; - alias GLboolean function(GLuint) da_glIsProgram; - alias GLboolean function(GLuint) da_glIsShader; - alias void function(GLuint) da_glLinkProgram; - alias void function(GLuint, GLsizei, in GLchar**, in GLint*) da_glShaderSource; - alias void function(GLuint) da_glUseProgram; - alias void function(GLint, GLfloat) da_glUniform1f; - alias void function(GLint, GLfloat, GLfloat) da_glUniform2f; - alias void function(GLint, GLfloat, GLfloat, GLfloat) da_glUniform3f; - alias void function(GLint, GLfloat, GLfloat, GLfloat, GLfloat) da_glUniform4f; - alias void function(GLint, GLint) da_glUniform1i; - alias void function(GLint, GLint, GLint) da_glUniform2i; - alias void function(GLint, GLint, GLint, GLint) da_glUniform3i; - alias void function(GLint, GLint, GLint, GLint, GLint) da_glUniform4i; - alias void function(GLint, GLsizei, in GLfloat*) da_glUniform1fv; - alias void function(GLint, GLsizei, in GLfloat*) da_glUniform2fv; - alias void function(GLint, GLsizei, in GLfloat*) da_glUniform3fv; - alias void function(GLint, GLsizei, in GLfloat*) da_glUniform4fv; - alias void function(GLint, GLsizei, in GLint*) da_glUniform1iv; - alias void function(GLint, GLsizei, in GLint*) da_glUniform2iv; - alias void function(GLint, GLsizei, in GLint*) da_glUniform3iv; - alias void function(GLint, GLsizei, in GLint*) da_glUniform4iv; - alias void function(GLint, GLsizei, GLboolean, in GLfloat*) da_glUniformMatrix2fv; - alias void function(GLint, GLsizei, GLboolean, in GLfloat*) da_glUniformMatrix3fv; - alias void function(GLint, GLsizei, GLboolean, in GLfloat*) da_glUniformMatrix4fv; - alias void function(GLuint) da_glValidateProgram; - alias void function(GLuint, GLdouble) da_glVertexAttrib1d; - alias void function(GLuint, in GLdouble*) da_glVertexAttrib1dv; - alias void function(GLuint, GLfloat) da_glVertexAttrib1f; - alias void function(GLuint, in GLfloat*) da_glVertexAttrib1fv; - alias void function(GLuint, GLshort) da_glVertexAttrib1s; - alias void function(GLuint, in GLshort*) da_glVertexAttrib1sv; - alias void function(GLuint, GLdouble, GLdouble) da_glVertexAttrib2d; - alias void function(GLuint, in GLdouble*) da_glVertexAttrib2dv; - alias void function(GLuint, GLfloat, GLfloat) da_glVertexAttrib2f; - alias void function(GLuint, in GLfloat*) da_glVertexAttrib2fv; - alias void function(GLuint, GLshort, GLshort) da_glVertexAttrib2s; - alias void function(GLuint, in GLshort*) da_glVertexAttrib2sv; - alias void function(GLuint, GLdouble, GLdouble, GLdouble) da_glVertexAttrib3d; - alias void function(GLuint, in GLdouble*) da_glVertexAttrib3dv; - alias void function(GLuint, GLfloat, GLfloat, GLfloat) da_glVertexAttrib3f; - alias void function(GLuint, in GLfloat*) da_glVertexAttrib3fv; - alias void function(GLuint, GLshort, GLshort, GLshort) da_glVertexAttrib3s; - alias void function(GLuint, in GLshort*) da_glVertexAttrib3sv; - alias void function(GLuint, in GLbyte*) da_glVertexAttrib4Nbv; - alias void function(GLuint, in GLint*) da_glVertexAttrib4Niv; - alias void function(GLuint, in GLshort*) da_glVertexAttrib4Nsv; - alias void function(GLuint, GLubyte, GLubyte, GLubyte, GLubyte) da_glVertexAttrib4Nub; - alias void function(GLuint, in GLubyte*) da_glVertexAttrib4Nubv; - alias void function(GLuint, in GLuint*) da_glVertexAttrib4Nuiv; - alias void function(GLuint, in GLushort*) da_glVertexAttrib4Nusv; - alias void function(GLuint, in GLbyte*) da_glVertexAttrib4bv; - alias void function(GLuint, GLdouble, GLdouble, GLdouble, GLdouble) da_glVertexAttrib4d; - alias void function(GLuint, in GLdouble*) da_glVertexAttrib4dv; - alias void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat) da_glVertexAttrib4f; - alias void function(GLuint, in GLfloat*) da_glVertexAttrib4fv; - alias void function(GLuint, in GLint*) da_glVertexAttrib4iv; - alias void function(GLuint, GLshort, GLshort, GLshort, GLshort) da_glVertexAttrib4s; - alias void function(GLuint, in GLshort*) da_glVertexAttrib4sv; - alias void function(GLuint, in GLubyte*) da_glVertexAttrib4ubv; - alias void function(GLuint, in GLuint*) da_glVertexAttrib4uiv; - alias void function(GLuint, in GLushort*) da_glVertexAttrib4usv; - alias void function(GLuint, GLint, GLenum, GLboolean, GLsizei, in void*) da_glVertexAttribPointer; - - // gl 2.1 - alias void function(GLint, GLsizei, GLboolean, in GLfloat*) da_glUniformMatrix2x3fv; - alias void function(GLint, GLsizei, GLboolean, in GLfloat*) da_glUniformMatrix3x2fv; - alias void function(GLint, GLsizei, GLboolean, in GLfloat*) da_glUniformMatrix2x4fv; - alias void function(GLint, GLsizei, GLboolean, in GLfloat*) da_glUniformMatrix4x2fv; - alias void function(GLint, GLsizei, GLboolean, in GLfloat*) da_glUniformMatrix3x4fv; - alias void function(GLint, GLsizei, GLboolean, in GLfloat*) da_glUniformMatrix4x3fv; - - // gl 3.0 - alias void function(GLuint, GLenum) da_glBeginConditionalRender; - alias void function(GLenum) da_glBeginTransformFeedback; - alias void function(GLuint, GLuint, in GLchar*) da_glBindFragDataLocation; - alias void function(GLenum, GLenum) da_glClampColor; - alias void function(GLenum, GLint, GLfloat, GLint) da_glClearBufferfi; - alias void function(GLenum, GLint, in GLfloat*) da_glClearBufferfv; - alias void function(GLenum, GLint, in GLint*) da_glClearBufferiv; - alias void function(GLenum, GLint, in GLuint*) da_glClearBufferuiv; - alias void function(GLuint, GLboolean, GLboolean, GLboolean, GLboolean) da_glColorMaski; - alias void function(GLenum, GLuint) da_glDisablei; - alias void function(GLenum, GLuint) da_glEnablei; - alias void function() da_glEndConditionalRender; - alias void function() da_glEndTransformFeedback; - alias void function(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr) da_glBindBufferRange; - alias void function(GLenum, GLuint, GLuint) da_glBindBufferBase; - alias void function(GLenum, GLuint, GLboolean*) da_glGetBooleani_v; - alias void function(GLenum, GLuint, GLint*) da_glGetIntegeri_v; - alias GLint function(GLuint, in GLchar*) da_glGetFragDataLocation; - alias CUBPTR function(GLenum, GLuint) da_glGetStringi; - alias void function(GLuint, GLenum, GLint*) da_glGetTexParameterIiv; - alias void function(GLuint, GLenum, GLuint*) da_glGetTexParameterIuiv; - alias GLboolean function(GLenum, GLuint) da_glIsEnabledi; - alias void function(GLenum, GLenum, in GLint*) da_glTexParameterIiv; - alias void function(GLenum, GLenum, in GLuint*) da_glTexParameterIuiv; - alias void function(GLuint, GLsizei, in GLchar**, GLenum) da_glTransformFeedbackVaryings; - alias void function(GLuint, GLuint, GLsizei, GLsizei*, GLsizei*, GLenum*, GLchar*) da_glGetTransformFeedbackVarying; - alias void function(GLint, GLuint) da_glUniform1ui; - alias void function(GLint, GLsizei, in GLuint*) da_glUniform1uiv; - alias void function(GLint, GLuint, GLuint) da_glUniform2ui; - alias void function(GLint, GLsizei, in GLuint*) da_glUniform2uiv; - alias void function(GLint, GLuint, GLuint, GLuint) da_glUniform3ui; - alias void function(GLint, GLsizei, in GLuint*) da_glUniform3uiv; - alias void function(GLint, GLuint, GLuint, GLuint, GLuint) da_glUniform4ui; - alias void function(GLint, GLsizei, in GLuint*) da_glUniform4uiv; - alias void function(GLuint, GLint) da_glVertexAttribI1i; - alias void function(GLuint, in GLint*) da_glVertexAttribI1iv; - alias void function(GLuint, GLuint) da_glVertexAttribI1ui; - alias void function(GLuint, in GLuint*) da_glVertexAttribI1uiv; - alias void function(GLuint, GLint, GLint) da_glVertexAttribI2i; - alias void function(GLuint, in GLint*) da_glVertexAttribI2iv; - alias void function(GLuint, GLuint, GLuint) da_glVertexAttribI2ui; - alias void function(GLuint, in GLuint*) da_glVertexAttribI2uiv; - alias void function(GLuint, GLint, GLint, GLint) da_glVertexAttribI3i; - alias void function(GLuint, in GLint*) da_glVertexAttribI3iv; - alias void function(GLuint, GLuint, GLuint, GLuint) da_glVertexAttribI3ui; - alias void function(GLuint, in GLuint*) da_glVertexAttribI3uiv; - alias void function(GLuint, in GLbyte*) da_glVertexAttribI4bv; - alias void function(GLuint, GLint, GLint, GLint, GLint) da_glVertexAttribI4i; - alias void function(GLuint, in GLint*) da_glVertexAttribI4iv; - alias void function(GLuint, in GLshort*) da_glVertexAttribI4sv; - alias void function(GLuint, in GLubyte*) da_glVertexAttribI4ubv; - alias void function(GLuint, GLuint, GLuint, GLuint, GLuint) da_glVertexAttribI4ui; - alias void function(GLuint, in GLuint*) da_glVertexAttribI4uiv; - alias void function(GLuint, in GLushort*) da_glVertexAttribI4usv; - alias void function(GLuint, GLint, GLenum, GLsizei, in GLvoid*) da_glVertexAttribIPointer; - alias void function(GLuint, GLenum, GLint*) da_glGetVertexAttribIiv; - alias void function(GLuint, GLenum, GLuint*) da_glGetVertexAttribIuiv; - alias void function(GLuint, GLint, GLuint*) da_glGetUniformuiv; - - // gl 3.1 - alias void function(GLenum, GLint, GLsizei, GLsizei) da_glDrawArraysInstanced; - alias void function(GLenum, GLsizei, GLenum, in GLvoid*, GLsizei) da_glDrawElementsInstanced; - alias void function(GLuint) da_glPrimitiveRestartIndex; - alias void function(GLenum, GLenum, GLuint) da_glTexBuffer; - - // gl 3.2 - alias void function(GLenum, GLenum, GLuint, GLuint) da_glFramebufferTexture; - alias void function(GLenum, GLenum, GLint64*) da_glGetBufferParameteri64v; - alias void function(GLenum, GLuint, GLint64*) da_glGetInteger64i_v; - - // gl 3.3 - alias void function(GLuint, GLuint) da_glVertexAttribDivisor; - - // gl 4.0 - alias void function(GLuint, GLenum, GLenum) da_glBlendEquationSeparatei; - alias void function(GLuint, GLenum) da_glBlendEquationi; - alias void function(GLuint, GLenum, GLenum, GLenum, GLenum) da_glBlendFuncSeparatei; - alias void function(GLuint, GLenum, GLenum) da_glBlendFunci; - alias void function(GLclampf) da_glMinSampleShading; -} - -mixin(gsharedString!() ~ -" -da_glClearIndex glClearIndex; -da_glClearColor glClearColor; -da_glClear glClear; -da_glIndexMask glIndexMask; -da_glColorMask glColorMask; -da_glAlphaFunc glAlphaFunc; -da_glBlendFunc glBlendFunc; -da_glLogicOp glLogicOp; -da_glCullFace glCullFace; -da_glFrontFace glFrontFace; -da_glPointSize glPointSize; -da_glLineWidth glLineWidth; -da_glLineStipple glLineStipple; -da_glPolygonMode glPolygonMode; -da_glPolygonOffset glPolygonOffset; -da_glPolygonStipple glPolygonStipple; -da_glGetPolygonStipple glGetPolygonStipple; -da_glEdgeFlag glEdgeFlag; -da_glEdgeFlagv glEdgeFlagv; -da_glScissor glScissor; -da_glClipPlane glClipPlane; -da_glGetClipPlane glGetClipPlane; -da_glDrawBuffer glDrawBuffer; -da_glReadBuffer glReadBuffer; -da_glEnable glEnable; -da_glDisable glDisable; -da_glIsEnabled glIsEnabled; -da_glEnableClientState glEnableClientState; -da_glDisableClientState glDisableClientState; -da_glGetBooleanv glGetBooleanv; -da_glGetDoublev glGetDoublev; -da_glGetFloatv glGetFloatv; -da_glGetIntegerv glGetIntegerv; -da_glPushAttrib glPushAttrib; -da_glPopAttrib glPopAttrib; -da_glPushClientAttrib glPushClientAttrib; -da_glPopClientAttrib glPopClientAttrib; -da_glRenderMode glRenderMode; -da_glGetError glGetError; -da_glGetString glGetString; -da_glFinish glFinish; -da_glFlush glFlush; -da_glHint glHint; - -da_glClearDepth glClearDepth; -da_glDepthFunc glDepthFunc; -da_glDepthMask glDepthMask; -da_glDepthRange glDepthRange; - -da_glClearAccum glClearAccum; -da_glAccum glAccum; - -da_glMatrixMode glMatrixMode; -da_glOrtho glOrtho; -da_glFrustum glFrustum; -da_glViewport glViewport; -da_glPushMatrix glPushMatrix; -da_glPopMatrix glPopMatrix; -da_glLoadIdentity glLoadIdentity; -da_glLoadMatrixd glLoadMatrixd; -da_glLoadMatrixf glLoadMatrixf; -da_glMultMatrixd glMultMatrixd; -da_glMultMatrixf glMultMatrixf; -da_glRotated glRotated; -da_glRotatef glRotatef; -da_glScaled glScaled; -da_glScalef glScalef; -da_glTranslated glTranslated; -da_glTranslatef glTranslatef; - -da_glIsList glIsList; -da_glDeleteLists glDeleteLists; -da_glGenLists glGenLists; -da_glNewList glNewList; -da_glEndList glEndList; -da_glCallList glCallList; -da_glCallLists glCallLists; -da_glListBase glListBase; - -da_glBegin glBegin; -da_glEnd glEnd; -da_glVertex2d glVertex2d; -da_glVertex2f glVertex2f; -da_glVertex2i glVertex2i; -da_glVertex2s glVertex2s; -da_glVertex3d glVertex3d; -da_glVertex3f glVertex3f; -da_glVertex3i glVertex3i; -da_glVertex3s glVertex3s; -da_glVertex4d glVertex4d; -da_glVertex4f glVertex4f; -da_glVertex4i glVertex4i; -da_glVertex4s glVertex4s; -da_glVertex2dv glVertex2dv; -da_glVertex2fv glVertex2fv; -da_glVertex2iv glVertex2iv; -da_glVertex2sv glVertex2sv; -da_glVertex3dv glVertex3dv; -da_glVertex3fv glVertex3fv; -da_glVertex3iv glVertex3iv; -da_glVertex3sv glVertex3sv; -da_glVertex4dv glVertex4dv; -da_glVertex4fv glVertex4fv; -da_glVertex4iv glVertex4iv; -da_glVertex4sv glVertex4sv; -da_glNormal3b glNormal3b; -da_glNormal3d glNormal3d; -da_glNormal3f glNormal3f; -da_glNormal3i glNormal3i; -da_glNormal3s glNormal3s; -da_glNormal3bv glNormal3bv; -da_glNormal3dv glNormal3dv; -da_glNormal3fv glNormal3fv; -da_glNormal3iv glNormal3iv; -da_glNormal3sv glNormal3sv; -da_glIndexd glIndexd; -da_glIndexf glIndexf; -da_glIndexi glIndexi; -da_glIndexs glIndexs; -da_glIndexub glIndexub; -da_glIndexdv glIndexdv; -da_glIndexfv glIndexfv; -da_glIndexiv glIndexiv; -da_glIndexsv glIndexsv; -da_glIndexubv glIndexubv; -da_glColor3b glColor3b; -da_glColor3d glColor3d; -da_glColor3f glColor3f; -da_glColor3i glColor3i; -da_glColor3s glColor3s; -da_glColor3ub glColor3ub; -da_glColor3ui glColor3ui; -da_glColor3us glColor3us; -da_glColor4b glColor4b; -da_glColor4d glColor4d; -da_glColor4f glColor4f; -da_glColor4i glColor4i; -da_glColor4s glColor4s; -da_glColor4ub glColor4ub; -da_glColor4ui glColor4ui; -da_glColor4us glColor4us; -da_glColor3bv glColor3bv; -da_glColor3dv glColor3dv; -da_glColor3fv glColor3fv; -da_glColor3iv glColor3iv; -da_glColor3sv glColor3sv; -da_glColor3ubv glColor3ubv; -da_glColor3uiv glColor3uiv; -da_glColor3usv glColor3usv; -da_glColor4bv glColor4bv; -da_glColor4dv glColor4dv; -da_glColor4fv glColor4fv; -da_glColor4iv glColor4iv; -da_glColor4sv glColor4sv; -da_glColor4ubv glColor4ubv; -da_glColor4uiv glColor4uiv; -da_glColor4usv glColor4usv; -da_glTexCoord1d glTexCoord1d; -da_glTexCoord1f glTexCoord1f; -da_glTexCoord1i glTexCoord1i; -da_glTexCoord1s glTexCoord1s; -da_glTexCoord2d glTexCoord2d; -da_glTexCoord2f glTexCoord2f; -da_glTexCoord2i glTexCoord2i; -da_glTexCoord2s glTexCoord2s; -da_glTexCoord3d glTexCoord3d; -da_glTexCoord3f glTexCoord3f; -da_glTexCoord3i glTexCoord3i; -da_glTexCoord3s glTexCoord3s; -da_glTexCoord4d glTexCoord4d; -da_glTexCoord4f glTexCoord4f; -da_glTexCoord4i glTexCoord4i; -da_glTexCoord4s glTexCoord4s; -da_glTexCoord1dv glTexCoord1dv; -da_glTexCoord1fv glTexCoord1fv; -da_glTexCoord1iv glTexCoord1iv; -da_glTexCoord1sv glTexCoord1sv; -da_glTexCoord2dv glTexCoord2dv; -da_glTexCoord2fv glTexCoord2fv; -da_glTexCoord2iv glTexCoord2iv; -da_glTexCoord2sv glTexCoord2sv; -da_glTexCoord3dv glTexCoord3dv; -da_glTexCoord3fv glTexCoord3fv; -da_glTexCoord3iv glTexCoord3iv; -da_glTexCoord3sv glTexCoord3sv; -da_glTexCoord4dv glTexCoord4dv; -da_glTexCoord4fv glTexCoord4fv; -da_glTexCoord4iv glTexCoord4iv; -da_glTexCoord4sv glTexCoord4sv; -da_glRasterPos2d glRasterPos2d; -da_glRasterPos2f glRasterPos2f; -da_glRasterPos2i glRasterPos2i; -da_glRasterPos2s glRasterPos2s; -da_glRasterPos3d glRasterPos3d; -da_glRasterPos3f glRasterPos3f; -da_glRasterPos3i glRasterPos3i; -da_glRasterPos3s glRasterPos3s; -da_glRasterPos4d glRasterPos4d; -da_glRasterPos4f glRasterPos4f; -da_glRasterPos4i glRasterPos4i; -da_glRasterPos4s glRasterPos4s; -da_glRasterPos2dv glRasterPos2dv; -da_glRasterPos2fv glRasterPos2fv; -da_glRasterPos2iv glRasterPos2iv; -da_glRasterPos2sv glRasterPos2sv; -da_glRasterPos3dv glRasterPos3dv; -da_glRasterPos3fv glRasterPos3fv; -da_glRasterPos3iv glRasterPos3iv; -da_glRasterPos3sv glRasterPos3sv; -da_glRasterPos4dv glRasterPos4dv; -da_glRasterPos4fv glRasterPos4fv; -da_glRasterPos4iv glRasterPos4iv; -da_glRasterPos4sv glRasterPos4sv; -da_glRectd glRectd; -da_glRectf glRectf; -da_glRecti glRecti; -da_glRects glRects; -da_glRectdv glRectdv; -da_glRectfv glRectfv; -da_glRectiv glRectiv; -da_glRectsv glRectsv; - -da_glShadeModel glShadeModel; -da_glLightf glLightf; -da_glLighti glLighti; -da_glLightfv glLightfv; -da_glLightiv glLightiv; -da_glGetLightfv glGetLightfv; -da_glGetLightiv glGetLightiv; -da_glLightModelf glLightModelf; -da_glLightModeli glLightModeli; -da_glLightModelfv glLightModelfv; -da_glLightModeliv glLightModeliv; -da_glMaterialf glMaterialf; -da_glMateriali glMateriali; -da_glMaterialfv glMaterialfv; -da_glMaterialiv glMaterialiv; -da_glGetMaterialfv glGetMaterialfv; -da_glGetMaterialiv glGetMaterialiv; -da_glColorMaterial glColorMaterial; - -da_glPixelZoom glPixelZoom; -da_glPixelStoref glPixelStoref; -da_glPixelStorei glPixelStorei; -da_glPixelTransferf glPixelTransferf; -da_glPixelTransferi glPixelTransferi; -da_glPixelMapfv glPixelMapfv; -da_glPixelMapuiv glPixelMapuiv; -da_glPixelMapusv glPixelMapusv; -da_glGetPixelMapfv glGetPixelMapfv; -da_glGetPixelMapuiv glGetPixelMapuiv; -da_glGetPixelMapusv glGetPixelMapusv; -da_glBitmap glBitmap; -da_glReadPixels glReadPixels; -da_glDrawPixels glDrawPixels; -da_glCopyPixels glCopyPixels; - -da_glStencilFunc glStencilFunc; -da_glStencilMask glStencilMask; -da_glStencilOp glStencilOp; -da_glClearStencil glClearStencil; - -da_glTexGend glTexGend; -da_glTexGenf glTexGenf; -da_glTexGeni glTexGeni; -da_glTexGendv glTexGendv; -da_glTexGenfv glTexGenfv; -da_glTexGeniv glTexGeniv; -da_glGetTexGendv glGetTexGendv; -da_glGetTexGenfv glGetTexGenfv; -da_glGetTexGeniv glGetTexGeniv; -da_glTexEnvf glTexEnvf; -da_glTexEnvi glTexEnvi; -da_glTexEnvfv glTexEnvfv; -da_glTexEnviv glTexEnviv; -da_glGetTexEnvfv glGetTexEnvfv; -da_glGetTexEnviv glGetTexEnviv; -da_glTexParameterf glTexParameterf; -da_glTexParameteri glTexParameteri; -da_glTexParameterfv glTexParameterfv; -da_glTexParameteriv glTexParameteriv; -da_glGetTexParameterfv glGetTexParameterfv; -da_glGetTexParameteriv glGetTexParameteriv; -da_glGetTexLevelParameterfv glGetTexLevelParameterfv; -da_glGetTexLevelParameteriv glGetTexLevelParameteriv; -da_glTexImage1D glTexImage1D; -da_glTexImage2D glTexImage2D; -da_glGetTexImage glGetTexImage; - -da_glMap1d glMap1d; -da_glMap1f glMap1f; -da_glMap2d glMap2d; -da_glMap2f glMap2f; -da_glGetMapdv glGetMapdv; -da_glGetMapfv glGetMapfv; -da_glGetMapiv glGetMapiv; -da_glEvalCoord1d glEvalCoord1d; -da_glEvalCoord1f glEvalCoord1f; -da_glEvalCoord1dv glEvalCoord1dv; -da_glEvalCoord1fv glEvalCoord1fv; -da_glEvalCoord2d glEvalCoord2d; -da_glEvalCoord2f glEvalCoord2f; -da_glEvalCoord2dv glEvalCoord2dv; -da_glEvalCoord2fv glEvalCoord2fv; -da_glMapGrid1d glMapGrid1d; -da_glMapGrid1f glMapGrid1f; -da_glMapGrid2d glMapGrid2d; -da_glMapGrid2f glMapGrid2f; -da_glEvalPoint1 glEvalPoint1; -da_glEvalPoint2 glEvalPoint2; -da_glEvalMesh1 glEvalMesh1; -da_glEvalMesh2 glEvalMesh2; - -da_glFogf glFogf; -da_glFogi glFogi; -da_glFogfv glFogfv; -da_glFogiv glFogiv; - -da_glFeedbackBuffer glFeedbackBuffer; -da_glPassThrough glPassThrough; -da_glSelectBuffer glSelectBuffer; -da_glInitNames glInitNames; -da_glLoadName glLoadName; -da_glPushName glPushName; -da_glPopName glPopName; - -da_glGenTextures glGenTextures; -da_glDeleteTextures glDeleteTextures; -da_glBindTexture glBindTexture; -da_glPrioritizeTextures glPrioritizeTextures; -da_glAreTexturesResident glAreTexturesResident; -da_glIsTexture glIsTexture; - -da_glTexSubImage1D glTexSubImage1D; -da_glTexSubImage2D glTexSubImage2D; -da_glCopyTexImage1D glCopyTexImage1D; -da_glCopyTexImage2D glCopyTexImage2D; -da_glCopyTexSubImage1D glCopyTexSubImage1D; -da_glCopyTexSubImage2D glCopyTexSubImage2D; - -da_glVertexPointer glVertexPointer; -da_glNormalPointer glNormalPointer; -da_glColorPointer glColorPointer; -da_glIndexPointer glIndexPointer; -da_glTexCoordPointer glTexCoordPointer; -da_glEdgeFlagPointer glEdgeFlagPointer; -da_glGetPointerv glGetPointerv; -da_glArrayElement glArrayElement; -da_glDrawArrays glDrawArrays; -da_glDrawElements glDrawElements; -da_glInterleavedArrays glInterleavedArrays; - -// gl 1.2 -da_glDrawRangeElements glDrawRangeElements; -da_glTexImage3D glTexImage3D; -da_glTexSubImage3D glTexSubImage3D; -da_glCopyTexSubImage3D glCopyTexSubImage3D; - -// gl 1.3 -da_glActiveTexture glActiveTexture; -da_glClientActiveTexture glClientActiveTexture; -da_glMultiTexCoord1d glMultiTexCoord1d; -da_glMultiTexCoord1dv glMultiTexCoord1dv; -da_glMultiTexCoord1f glMultiTexCoord1f; -da_glMultiTexCoord1fv glMultiTexCoord1fv; -da_glMultiTexCoord1i glMultiTexCoord1i; -da_glMultiTexCoord1iv glMultiTexCoord1iv; -da_glMultiTexCoord1s glMultiTexCoord1s; -da_glMultiTexCoord1sv glMultiTexCoord1sv; -da_glMultiTexCoord2d glMultiTexCoord2d; -da_glMultiTexCoord2dv glMultiTexCoord2dv; -da_glMultiTexCoord2f glMultiTexCoord2f; -da_glMultiTexCoord2fv glMultiTexCoord2fv; -da_glMultiTexCoord2i glMultiTexCoord2i; -da_glMultiTexCoord2iv glMultiTexCoord2iv; -da_glMultiTexCoord2s glMultiTexCoord2s; -da_glMultiTexCoord2sv glMultiTexCoord2sv; -da_glMultiTexCoord3d glMultiTexCoord3d; -da_glMultiTexCoord3dv glMultiTexCoord3dv; -da_glMultiTexCoord3f glMultiTexCoord3f; -da_glMultiTexCoord3fv glMultiTexCoord3fv; -da_glMultiTexCoord3i glMultiTexCoord3i; -da_glMultiTexCoord3iv glMultiTexCoord3iv; -da_glMultiTexCoord3s glMultiTexCoord3s; -da_glMultiTexCoord3sv glMultiTexCoord3sv; -da_glMultiTexCoord4d glMultiTexCoord4d; -da_glMultiTexCoord4dv glMultiTexCoord4dv; -da_glMultiTexCoord4f glMultiTexCoord4f; -da_glMultiTexCoord4fv glMultiTexCoord4fv; -da_glMultiTexCoord4i glMultiTexCoord4i; -da_glMultiTexCoord4iv glMultiTexCoord4iv; -da_glMultiTexCoord4s glMultiTexCoord4s; -da_glMultiTexCoord4sv glMultiTexCoord4sv; -da_glLoadTransposeMatrixd glLoadTransposeMatrixd; -da_glLoadTransposeMatrixf glLoadTransposeMatrixf; -da_glMultTransposeMatrixd glMultTransposeMatrixd; -da_glMultTransposeMatrixf glMultTransposeMatrixf; -da_glSampleCoverage glSampleCoverage; -da_glCompressedTexImage1D glCompressedTexImage1D; -da_glCompressedTexImage2D glCompressedTexImage2D; -da_glCompressedTexImage3D glCompressedTexImage3D; -da_glCompressedTexSubImage1D glCompressedTexSubImage1D; -da_glCompressedTexSubImage2D glCompressedTexSubImage2D; -da_glCompressedTexSubImage3D glCompressedTexSubImage3D; -da_glGetCompressedTexImage glGetCompressedTexImage; - -// gl 1.4 -da_glBlendFuncSeparate glBlendFuncSeparate; -da_glFogCoordf glFogCoordf; -da_glFogCoordfv glFogCoordfv; -da_glFogCoordd glFogCoordd; -da_glFogCoorddv glFogCoorddv; -da_glFogCoordPointer glFogCoordPointer; -da_glMultiDrawArrays glMultiDrawArrays; -da_glMultiDrawElements glMultiDrawElements; -da_glPointParameterf glPointParameterf; -da_glPointParameterfv glPointParameterfv; -da_glPointParameteri glPointParameteri; -da_glPointParameteriv glPointParameteriv; -da_glSecondaryColor3b glSecondaryColor3b; -da_glSecondaryColor3bv glSecondaryColor3bv; -da_glSecondaryColor3d glSecondaryColor3d; -da_glSecondaryColor3dv glSecondaryColor3dv; -da_glSecondaryColor3f glSecondaryColor3f; -da_glSecondaryColor3fv glSecondaryColor3fv; -da_glSecondaryColor3i glSecondaryColor3i; -da_glSecondaryColor3iv glSecondaryColor3iv; -da_glSecondaryColor3s glSecondaryColor3s; -da_glSecondaryColor3sv glSecondaryColor3sv; -da_glSecondaryColor3ub glSecondaryColor3ub; -da_glSecondaryColor3ubv glSecondaryColor3ubv; -da_glSecondaryColor3ui glSecondaryColor3ui; -da_glSecondaryColor3uiv glSecondaryColor3uiv; -da_glSecondaryColor3us glSecondaryColor3us; -da_glSecondaryColor3usv glSecondaryColor3usv; -da_glSecondaryColorPointer glSecondaryColorPointer; -da_glWindowPos2d glWindowPos2d; -da_glWindowPos2dv glWindowPos2dv; -da_glWindowPos2f glWindowPos2f; -da_glWindowPos2fv glWindowPos2fv; -da_glWindowPos2i glWindowPos2i; -da_glWindowPos2iv glWindowPos2iv; -da_glWindowPos2s glWindowPos2s; -da_glWindowPos2sv glWindowPos2sv; -da_glWindowPos3d glWindowPos3d; -da_glWindowPos3dv glWindowPos3dv; -da_glWindowPos3f glWindowPos3f; -da_glWindowPos3fv glWindowPos3fv; -da_glWindowPos3i glWindowPos3i; -da_glWindowPos3iv glWindowPos3iv; -da_glWindowPos3s glWindowPos3s; -da_glWindowPos3sv glWindowPos3sv; -da_glBlendColor glBlendColor; -da_glBlendEquation glBlendEquation; - -// gl 1.5 -da_glGenQueries glGenQueries; -da_glDeleteQueries glDeleteQueries; -da_glIsQuery glIsQuery; -da_glBeginQuery glBeginQuery; -da_glEndQuery glEndQuery; -da_glGetQueryiv glGetQueryiv; -da_glGetQueryObjectiv glGetQueryObjectiv; -da_glGetQueryObjectuiv glGetQueryObjectuiv; -da_glBindBuffer glBindBuffer; -da_glDeleteBuffers glDeleteBuffers; -da_glGenBuffers glGenBuffers; -da_glIsBuffer glIsBuffer; -da_glBufferData glBufferData; -da_glBufferSubData glBufferSubData; -da_glGetBufferSubData glGetBufferSubData; -da_glMapBuffer glMapBuffer; -da_glUnmapBuffer glUnmapBuffer; -da_glGetBufferParameteriv glGetBufferParameteriv; -da_glGetBufferPointerv glGetBufferPointerv; - -// gl 2.0 -da_glBlendEquationSeparate glBlendEquationSeparate; -da_glDrawBuffers glDrawBuffers; -da_glStencilOpSeparate glStencilOpSeparate; -da_glStencilFuncSeparate glStencilFuncSeparate; -da_glStencilMaskSeparate glStencilMaskSeparate; -da_glAttachShader glAttachShader; -da_glBindAttribLocation glBindAttribLocation; -da_glCompileShader glCompileShader; -da_glCreateProgram glCreateProgram; -da_glCreateShader glCreateShader; -da_glDeleteProgram glDeleteProgram; -da_glDeleteShader glDeleteShader; -da_glDetachShader glDetachShader; -da_glDisableVertexAttribArray glDisableVertexAttribArray; -da_glEnableVertexAttribArray glEnableVertexAttribArray; -da_glGetActiveAttrib glGetActiveAttrib; -da_glGetActiveUniform glGetActiveUniform; -da_glGetAttachedShaders glGetAttachedShaders; -da_glGetAttribLocation glGetAttribLocation; -da_glGetProgramiv glGetProgramiv; -da_glGetProgramInfoLog glGetProgramInfoLog; -da_glGetShaderiv glGetShaderiv; -da_glGetShaderInfoLog glGetShaderInfoLog; -da_glGetShaderSource glGetShaderSource; -da_glGetUniformLocation glGetUniformLocation; -da_glGetUniformfv glGetUniformfv; -da_glGetUniformiv glGetUniformiv; -da_glGetVertexAttribdv glGetVertexAttribdv; -da_glGetVertexAttribfv glGetVertexAttribfv; -da_glGetVertexAttribiv glGetVertexAttribiv; -da_glGetVertexAttribPointerv glGetVertexAttribPointerv; -da_glIsProgram glIsProgram; -da_glIsShader glIsShader; -da_glLinkProgram glLinkProgram; -da_glShaderSource glShaderSource; -da_glUseProgram glUseProgram; -da_glUniform1f glUniform1f; -da_glUniform2f glUniform2f; -da_glUniform3f glUniform3f; -da_glUniform4f glUniform4f; -da_glUniform1i glUniform1i; -da_glUniform2i glUniform2i; -da_glUniform3i glUniform3i; -da_glUniform4i glUniform4i; -da_glUniform1fv glUniform1fv; -da_glUniform2fv glUniform2fv; -da_glUniform3fv glUniform3fv; -da_glUniform4fv glUniform4fv; -da_glUniform1iv glUniform1iv; -da_glUniform2iv glUniform2iv; -da_glUniform3iv glUniform3iv; -da_glUniform4iv glUniform4iv; -da_glUniformMatrix2fv glUniformMatrix2fv; -da_glUniformMatrix3fv glUniformMatrix3fv; -da_glUniformMatrix4fv glUniformMatrix4fv; -da_glValidateProgram glValidateProgram; -da_glVertexAttrib1d glVertexAttrib1d; -da_glVertexAttrib1dv glVertexAttrib1dv; -da_glVertexAttrib1f glVertexAttrib1f; -da_glVertexAttrib1fv glVertexAttrib1fv; -da_glVertexAttrib1s glVertexAttrib1s; -da_glVertexAttrib1sv glVertexAttrib1sv; -da_glVertexAttrib2d glVertexAttrib2d; -da_glVertexAttrib2dv glVertexAttrib2dv; -da_glVertexAttrib2f glVertexAttrib2f; -da_glVertexAttrib2fv glVertexAttrib2fv; -da_glVertexAttrib2s glVertexAttrib2s; -da_glVertexAttrib2sv glVertexAttrib2sv; -da_glVertexAttrib3d glVertexAttrib3d; -da_glVertexAttrib3dv glVertexAttrib3dv; -da_glVertexAttrib3f glVertexAttrib3f; -da_glVertexAttrib3fv glVertexAttrib3fv; -da_glVertexAttrib3s glVertexAttrib3s; -da_glVertexAttrib3sv glVertexAttrib3sv; -da_glVertexAttrib4Nbv glVertexAttrib4Nbv; -da_glVertexAttrib4Niv glVertexAttrib4Niv; -da_glVertexAttrib4Nsv glVertexAttrib4Nsv; -da_glVertexAttrib4Nub glVertexAttrib4Nub; -da_glVertexAttrib4Nubv glVertexAttrib4Nubv; -da_glVertexAttrib4Nuiv glVertexAttrib4Nuiv; -da_glVertexAttrib4Nusv glVertexAttrib4Nusv; -da_glVertexAttrib4bv glVertexAttrib4bv; -da_glVertexAttrib4d glVertexAttrib4d; -da_glVertexAttrib4dv glVertexAttrib4dv; -da_glVertexAttrib4f glVertexAttrib4f; -da_glVertexAttrib4fv glVertexAttrib4fv; -da_glVertexAttrib4iv glVertexAttrib4iv; -da_glVertexAttrib4s glVertexAttrib4s; -da_glVertexAttrib4sv glVertexAttrib4sv; -da_glVertexAttrib4ubv glVertexAttrib4ubv; -da_glVertexAttrib4uiv glVertexAttrib4uiv; -da_glVertexAttrib4usv glVertexAttrib4usv; -da_glVertexAttribPointer glVertexAttribPointer; - -// gl 2.1 -da_glUniformMatrix2x3fv glUniformMatrix2x3fv; -da_glUniformMatrix3x2fv glUniformMatrix3x2fv; -da_glUniformMatrix2x4fv glUniformMatrix2x4fv; -da_glUniformMatrix4x2fv glUniformMatrix4x2fv; -da_glUniformMatrix3x4fv glUniformMatrix3x4fv; -da_glUniformMatrix4x3fv glUniformMatrix4x3fv; - -// gl 3.0 -da_glBeginConditionalRender glBeginConditionalRender; -da_glBeginTransformFeedback glBeginTransformFeedback; -da_glBindFragDataLocation glBindFragDataLocation; -da_glClampColor glClampColor; -da_glClearBufferfi glClearBufferfi; -da_glClearBufferfv glClearBufferfv; -da_glClearBufferiv glClearBufferiv; -da_glClearBufferuiv glClearBufferuiv; -da_glColorMaski glColorMaski; -da_glDisablei glDisablei; -da_glEnablei glEnablei; -da_glEndConditionalRender glEndConditionalRender; -da_glEndTransformFeedback glEndTransformFeedback; -da_glBindBufferRange glBindBufferRange; -da_glBindBufferBase glBindBufferBase; -da_glGetBooleani_v glGetBooleani_v; -da_glGetIntegeri_v glGetIntegeri_v; -da_glGetFragDataLocation glGetFragDataLocation; -da_glGetStringi glGetStringi; -da_glGetTexParameterIiv glGetTexParameterIiv; -da_glGetTexParameterIuiv glGetTexParameterIuiv; -da_glIsEnabledi glIsEnabledi; -da_glTexParameterIiv glTexParameterIiv; -da_glTexParameterIuiv glTexParameterIuiv; -da_glTransformFeedbackVaryings glTransformFeedbackVaryings; -da_glGetTransformFeedbackVarying glGetTransformFeedbackVarying; -da_glUniform1ui glUniform1ui; -da_glUniform1uiv glUniform1uiv; -da_glUniform2ui glUniform2ui; -da_glUniform2uiv glUniform2uiv; -da_glUniform3ui glUniform3ui; -da_glUniform3uiv glUniform3uiv; -da_glUniform4ui glUniform4ui; -da_glUniform4uiv glUniform4uiv; -da_glVertexAttribI1i glVertexAttribI1i; -da_glVertexAttribI1iv glVertexAttribI1iv; -da_glVertexAttribI1ui glVertexAttribI1ui; -da_glVertexAttribI1uiv glVertexAttribI1uiv; -da_glVertexAttribI2i glVertexAttribI2i; -da_glVertexAttribI2iv glVertexAttribI2iv; -da_glVertexAttribI2ui glVertexAttribI2ui; -da_glVertexAttribI2uiv glVertexAttribI2uiv; -da_glVertexAttribI3i glVertexAttribI3i; -da_glVertexAttribI3iv glVertexAttribI3iv; -da_glVertexAttribI3ui glVertexAttribI3ui; -da_glVertexAttribI3uiv glVertexAttribI3uiv; -da_glVertexAttribI4bv glVertexAttribI4bv; -da_glVertexAttribI4i glVertexAttribI4i; -da_glVertexAttribI4iv glVertexAttribI4iv; -da_glVertexAttribI4sv glVertexAttribI4sv; -da_glVertexAttribI4ubv glVertexAttribI4ubv; -da_glVertexAttribI4ui glVertexAttribI4ui; -da_glVertexAttribI4uiv glVertexAttribI4uiv; -da_glVertexAttribI4usv glVertexAttribI4usv; -da_glVertexAttribIPointer glVertexAttribIPointer; -da_glGetVertexAttribIiv glGetVertexAttribIiv; -da_glGetVertexAttribIuiv glGetVertexAttribIuiv; -da_glGetUniformuiv glGetUniformuiv; - -// gl 3.1 -da_glDrawArraysInstanced glDrawArraysInstanced; -da_glDrawElementsInstanced glDrawElementsInstanced; -da_glPrimitiveRestartIndex glPrimitiveRestartIndex; -da_glTexBuffer glTexBuffer; - -// gl 3.2 -da_glFramebufferTexture glFramebufferTexture; -da_glGetBufferParameteri64v glGetBufferParameteri64v; -da_glGetInteger64i_v glGetInteger64i_v; - -// gl 3.3 -da_glVertexAttribDivisor glVertexAttribDivisor; - -// gl 4.0 -da_glBlendEquationSeparatei glBlendEquationSeparatei; -da_glBlendEquationi glBlendEquationi; -da_glBlendFuncSeparatei glBlendFuncSeparatei; -da_glBlendFunci glBlendFunci; -da_glMinSampleShading glMinSampleShading; +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.opengl.glfuncs; + +private +{ + import derelict.util.compat; + import derelict.opengl.gltypes; +} + +extern(System) +{ + alias void function(GLfloat c) da_glClearIndex; + alias void function(GLclampf,GLclampf,GLclampf,GLclampf) da_glClearColor; + alias void function(GLbitfield) da_glClear; + alias void function(GLuint) da_glIndexMask; + alias void function(GLboolean,GLboolean,GLboolean,GLboolean) da_glColorMask; + alias void function(GLenum,GLclampf) da_glAlphaFunc; + alias void function(GLenum,GLenum) da_glBlendFunc; + alias void function(GLenum) da_glLogicOp; + alias void function(GLenum) da_glCullFace; + alias void function(GLenum) da_glFrontFace; + alias void function(GLfloat) da_glPointSize; + alias void function(GLfloat) da_glLineWidth; + alias void function(GLint,GLushort) da_glLineStipple; + alias void function(GLenum,GLenum) da_glPolygonMode; + alias void function(GLfloat,GLfloat) da_glPolygonOffset; + alias void function(in GLubyte*) da_glPolygonStipple; + alias void function(GLubyte*) da_glGetPolygonStipple; + alias void function(GLboolean) da_glEdgeFlag; + alias void function(in GLboolean*) da_glEdgeFlagv; + alias void function(GLint,GLint,GLsizei,GLsizei) da_glScissor; + alias void function(GLenum,in GLdouble*) da_glClipPlane; + alias void function(GLenum,GLdouble*) da_glGetClipPlane; + alias void function(GLenum) da_glDrawBuffer; + alias void function(GLenum) da_glReadBuffer; + alias void function(GLenum) da_glEnable; + alias void function(GLenum) da_glDisable; + alias GLboolean function(GLenum) da_glIsEnabled; + alias void function(GLenum) da_glEnableClientState; + alias void function(GLenum) da_glDisableClientState; + alias void function(GLenum,GLboolean*) da_glGetBooleanv; + alias void function(GLenum,GLdouble*) da_glGetDoublev; + alias void function(GLenum,GLfloat*) da_glGetFloatv; + alias void function(GLenum,GLint*) da_glGetIntegerv; + alias void function(GLbitfield) da_glPushAttrib; + alias void function() da_glPopAttrib; + alias void function(GLbitfield) da_glPushClientAttrib; + alias void function() da_glPopClientAttrib; + alias GLint function(GLenum) da_glRenderMode; + alias GLenum function() da_glGetError; + alias CCPTR function(GLenum) da_glGetString; + alias void function() da_glFinish; + alias void function() da_glFlush; + alias void function(GLenum,GLenum) da_glHint; + + alias void function(GLclampd) da_glClearDepth; + alias void function(GLenum) da_glDepthFunc; + alias void function(GLboolean) da_glDepthMask; + alias void function(GLclampd,GLclampd) da_glDepthRange; + + alias void function(GLfloat,GLfloat,GLfloat,GLfloat) da_glClearAccum; + alias void function(GLenum,GLfloat) da_glAccum; + + alias void function(GLenum) da_glMatrixMode; + alias void function(GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble) da_glOrtho; + alias void function(GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble) da_glFrustum; + alias void function(GLint,GLint,GLsizei,GLsizei) da_glViewport; + alias void function() da_glPushMatrix; + alias void function() da_glPopMatrix; + alias void function() da_glLoadIdentity; + alias void function(in GLdouble*) da_glLoadMatrixd; + alias void function(in GLfloat*) da_glLoadMatrixf; + alias void function(in GLdouble*) da_glMultMatrixd; + alias void function(in GLfloat*) da_glMultMatrixf; + alias void function(GLdouble,GLdouble,GLdouble,GLdouble) da_glRotated; + alias void function(GLfloat,GLfloat,GLfloat,GLfloat) da_glRotatef; + alias void function(GLdouble,GLdouble,GLdouble) da_glScaled; + alias void function(GLfloat,GLfloat,GLfloat) da_glScalef; + alias void function(GLdouble,GLdouble,GLdouble) da_glTranslated; + alias void function(GLfloat,GLfloat,GLfloat) da_glTranslatef; + + alias GLboolean function(GLuint) da_glIsList; + alias void function(GLuint,GLsizei) da_glDeleteLists; + alias GLuint function(GLsizei) da_glGenLists; + alias void function(GLuint,GLenum) da_glNewList; + alias void function() da_glEndList; + alias void function(GLuint) da_glCallList; + alias void function(GLsizei,GLenum,in void*) da_glCallLists; + alias void function(GLuint) da_glListBase; + + alias void function(GLenum) da_glBegin; + alias void function() da_glEnd; + alias void function(GLdouble,GLdouble) da_glVertex2d; + alias void function(GLfloat,GLfloat) da_glVertex2f; + alias void function(GLint,GLint) da_glVertex2i; + alias void function(GLshort,GLshort) da_glVertex2s; + alias void function(GLdouble,GLdouble,GLdouble) da_glVertex3d; + alias void function(GLfloat,GLfloat,GLfloat) da_glVertex3f; + alias void function(GLint,GLint,GLint) da_glVertex3i; + alias void function(GLshort,GLshort,GLshort) da_glVertex3s; + alias void function(GLdouble,GLdouble,GLdouble,GLdouble) da_glVertex4d; + alias void function(GLfloat,GLfloat,GLfloat,GLfloat) da_glVertex4f; + alias void function(GLint,GLint,GLint,GLint) da_glVertex4i; + alias void function(GLshort,GLshort,GLshort,GLshort) da_glVertex4s; + alias void function(in GLdouble*) da_glVertex2dv; + alias void function(in GLfloat*) da_glVertex2fv; + alias void function(in GLint*) da_glVertex2iv; + alias void function(in GLshort*) da_glVertex2sv; + alias void function(in GLdouble*) da_glVertex3dv; + alias void function(in GLfloat*) da_glVertex3fv; + alias void function(in GLint*) da_glVertex3iv; + alias void function(in GLshort*) da_glVertex3sv; + alias void function(in GLdouble*) da_glVertex4dv; + alias void function(in GLfloat*) da_glVertex4fv; + alias void function(in GLint*) da_glVertex4iv; + alias void function(in GLshort*) da_glVertex4sv; + alias void function(GLbyte,GLbyte,GLbyte) da_glNormal3b; + alias void function(GLdouble,GLdouble,GLdouble) da_glNormal3d; + alias void function(GLfloat,GLfloat,GLfloat) da_glNormal3f; + alias void function(GLint,GLint,GLint) da_glNormal3i; + alias void function(GLshort,GLshort,GLshort) da_glNormal3s; + alias void function(in GLbyte*) da_glNormal3bv; + alias void function(in GLdouble*) da_glNormal3dv; + alias void function(in GLfloat*) da_glNormal3fv; + alias void function(in GLint*) da_glNormal3iv; + alias void function(in GLshort*) da_glNormal3sv; + alias void function(GLdouble) da_glIndexd; + alias void function(GLfloat) da_glIndexf; + alias void function(GLint) da_glIndexi; + alias void function(GLshort) da_glIndexs; + alias void function(GLubyte) da_glIndexub; + alias void function(in GLdouble*) da_glIndexdv; + alias void function(in GLfloat*) da_glIndexfv; + alias void function(in GLint*) da_glIndexiv; + alias void function(in GLshort*) da_glIndexsv; + alias void function(in GLubyte*) da_glIndexubv; + alias void function(GLbyte,GLbyte,GLbyte) da_glColor3b; + alias void function(GLdouble,GLdouble,GLdouble) da_glColor3d; + alias void function(GLfloat,GLfloat,GLfloat) da_glColor3f; + alias void function(GLint,GLint,GLint) da_glColor3i; + alias void function(GLshort,GLshort,GLshort) da_glColor3s; + alias void function(GLubyte,GLubyte,GLubyte) da_glColor3ub; + alias void function(GLuint,GLuint,GLuint) da_glColor3ui; + alias void function(GLushort,GLushort,GLushort) da_glColor3us; + alias void function(GLbyte,GLbyte,GLbyte,GLbyte) da_glColor4b; + alias void function(GLdouble,GLdouble,GLdouble,GLdouble) da_glColor4d; + alias void function(GLfloat,GLfloat,GLfloat,GLfloat) da_glColor4f; + alias void function(GLint,GLint,GLint,GLint) da_glColor4i; + alias void function(GLshort,GLshort,GLshort,GLshort) da_glColor4s; + alias void function(GLubyte,GLubyte,GLubyte,GLubyte) da_glColor4ub; + alias void function(GLuint,GLuint,GLuint,GLuint) da_glColor4ui; + alias void function(GLushort,GLushort,GLushort,GLushort) da_glColor4us; + alias void function(in GLbyte*) da_glColor3bv; + alias void function(in GLdouble*) da_glColor3dv; + alias void function(in GLfloat*) da_glColor3fv; + alias void function(in GLint*) da_glColor3iv; + alias void function(in GLshort*) da_glColor3sv; + alias void function(in GLubyte*) da_glColor3ubv; + alias void function(in GLuint*) da_glColor3uiv; + alias void function(in GLushort*) da_glColor3usv; + alias void function(in GLbyte*) da_glColor4bv; + alias void function(in GLdouble*) da_glColor4dv; + alias void function(in GLfloat*) da_glColor4fv; + alias void function(in GLint*) da_glColor4iv; + alias void function(in GLshort*) da_glColor4sv; + alias void function(in GLubyte*) da_glColor4ubv; + alias void function(in GLuint*) da_glColor4uiv; + alias void function(in GLushort*) da_glColor4usv; + alias void function(GLdouble) da_glTexCoord1d; + alias void function(GLfloat) da_glTexCoord1f; + alias void function(GLint) da_glTexCoord1i; + alias void function(GLshort) da_glTexCoord1s; + alias void function(GLdouble,GLdouble) da_glTexCoord2d; + alias void function(GLfloat,GLfloat) da_glTexCoord2f; + alias void function(GLint,GLint) da_glTexCoord2i; + alias void function(GLshort,GLshort) da_glTexCoord2s; + alias void function(GLdouble,GLdouble,GLdouble) da_glTexCoord3d; + alias void function(GLfloat,GLfloat,GLfloat) da_glTexCoord3f; + alias void function(GLint,GLint,GLint) da_glTexCoord3i; + alias void function(GLshort,GLshort,GLshort) da_glTexCoord3s; + alias void function(GLdouble,GLdouble,GLdouble,GLdouble) da_glTexCoord4d; + alias void function(GLfloat,GLfloat,GLfloat,GLfloat) da_glTexCoord4f; + alias void function(GLint,GLint,GLint,GLint) da_glTexCoord4i; + alias void function(GLshort,GLshort,GLshort,GLshort) da_glTexCoord4s; + alias void function(in GLdouble*) da_glTexCoord1dv; + alias void function(in GLfloat*) da_glTexCoord1fv; + alias void function(in GLint*) da_glTexCoord1iv; + alias void function(in GLshort*) da_glTexCoord1sv; + alias void function(in GLdouble*) da_glTexCoord2dv; + alias void function(in GLfloat*) da_glTexCoord2fv; + alias void function(in GLint*) da_glTexCoord2iv; + alias void function(in GLshort*) da_glTexCoord2sv; + alias void function(in GLdouble*) da_glTexCoord3dv; + alias void function(in GLfloat*) da_glTexCoord3fv; + alias void function(in GLint*) da_glTexCoord3iv; + alias void function(in GLshort*) da_glTexCoord3sv; + alias void function(in GLdouble*) da_glTexCoord4dv; + alias void function(in GLfloat*) da_glTexCoord4fv; + alias void function(in GLint*) da_glTexCoord4iv; + alias void function(in GLshort*) da_glTexCoord4sv; + alias void function(GLdouble,GLdouble) da_glRasterPos2d; + alias void function(GLfloat,GLfloat) da_glRasterPos2f; + alias void function(GLint,GLint) da_glRasterPos2i; + alias void function(GLshort,GLshort) da_glRasterPos2s; + alias void function(GLdouble,GLdouble,GLdouble) da_glRasterPos3d; + alias void function(GLfloat,GLfloat,GLfloat) da_glRasterPos3f; + alias void function(GLint,GLint,GLint) da_glRasterPos3i; + alias void function(GLshort,GLshort,GLshort) da_glRasterPos3s; + alias void function(GLdouble,GLdouble,GLdouble,GLdouble) da_glRasterPos4d; + alias void function(GLfloat,GLfloat,GLfloat,GLfloat) da_glRasterPos4f; + alias void function(GLint,GLint,GLint,GLint) da_glRasterPos4i; + alias void function(GLshort,GLshort,GLshort,GLshort) da_glRasterPos4s; + alias void function(in GLdouble*) da_glRasterPos2dv; + alias void function(in GLfloat*) da_glRasterPos2fv; + alias void function(in GLint*) da_glRasterPos2iv; + alias void function(in GLshort*) da_glRasterPos2sv; + alias void function(in GLdouble*) da_glRasterPos3dv; + alias void function(in GLfloat*) da_glRasterPos3fv; + alias void function(in GLint*) da_glRasterPos3iv; + alias void function(in GLshort*) da_glRasterPos3sv; + alias void function(in GLdouble*) da_glRasterPos4dv; + alias void function(in GLfloat*) da_glRasterPos4fv; + alias void function(in GLint*) da_glRasterPos4iv; + alias void function(in GLshort*) da_glRasterPos4sv; + alias void function(GLdouble,GLdouble,GLdouble,GLdouble) da_glRectd; + alias void function(GLfloat,GLfloat,GLfloat,GLfloat) da_glRectf; + alias void function(GLint,GLint,GLint,GLint) da_glRecti; + alias void function(GLshort,GLshort,GLshort,GLshort) da_glRects; + alias void function(in GLdouble*, in GLdouble*) da_glRectdv; + alias void function(in GLfloat*, in GLfloat*) da_glRectfv; + alias void function(in GLint*, in GLint*) da_glRectiv; + alias void function(in GLshort*, in GLshort*) da_glRectsv; + + alias void function(GLenum) da_glShadeModel; + alias void function(GLenum,GLenum,GLfloat) da_glLightf; + alias void function(GLenum,GLenum,GLint) da_glLighti; + alias void function(GLenum,GLenum,in GLfloat*) da_glLightfv; + alias void function(GLenum,GLenum,in GLint*) da_glLightiv; + alias void function(GLenum,GLenum,GLfloat*) da_glGetLightfv; + alias void function(GLenum,GLenum,GLint*) da_glGetLightiv; + alias void function(GLenum,GLfloat) da_glLightModelf; + alias void function(GLenum,GLint) da_glLightModeli; + alias void function(GLenum,in GLfloat*) da_glLightModelfv; + alias void function(GLenum,in GLint*) da_glLightModeliv; + alias void function(GLenum,GLenum,GLfloat) da_glMaterialf; + alias void function(GLenum,GLenum,GLint) da_glMateriali; + alias void function(GLenum,GLenum,in GLfloat*) da_glMaterialfv; + alias void function(GLenum,GLenum,in GLint*) da_glMaterialiv; + alias void function(GLenum,GLenum,GLfloat*) da_glGetMaterialfv; + alias void function(GLenum,GLenum,GLint*) da_glGetMaterialiv; + alias void function(GLenum,GLenum) da_glColorMaterial; + + alias void function(GLfloat,GLfloat) da_glPixelZoom; + alias void function(GLenum,GLfloat) da_glPixelStoref; + alias void function(GLenum,GLint) da_glPixelStorei; + alias void function(GLenum,GLfloat) da_glPixelTransferf; + alias void function(GLenum,GLint) da_glPixelTransferi; + alias void function(GLenum,GLint,in GLfloat*) da_glPixelMapfv; + alias void function(GLenum,GLint,in GLuint*) da_glPixelMapuiv; + alias void function(GLenum,GLint,in GLushort*) da_glPixelMapusv; + alias void function(GLenum,GLfloat*) da_glGetPixelMapfv; + alias void function(GLenum,GLuint*) da_glGetPixelMapuiv; + alias void function(GLenum,GLushort*) da_glGetPixelMapusv; + alias void function(GLsizei,GLsizei,GLfloat,GLfloat,GLfloat,GLfloat,in GLubyte*) da_glBitmap; + alias void function(GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,void*) da_glReadPixels; + alias void function(GLsizei,GLsizei,GLenum,GLenum,in void*) da_glDrawPixels; + alias void function(GLint,GLint,GLsizei,GLsizei,GLenum) da_glCopyPixels; + + alias void function(GLenum,GLint,GLuint) da_glStencilFunc; + alias void function(GLuint) da_glStencilMask; + alias void function(GLenum,GLenum,GLenum) da_glStencilOp; + alias void function(GLint) da_glClearStencil; + + alias void function(GLenum,GLenum,GLdouble) da_glTexGend; + alias void function(GLenum,GLenum,GLfloat) da_glTexGenf; + alias void function(GLenum,GLenum,GLint) da_glTexGeni; + alias void function(GLenum,GLenum,in GLdouble*) da_glTexGendv; + alias void function(GLenum,GLenum,in GLfloat*) da_glTexGenfv; + alias void function(GLenum,GLenum,in GLint*) da_glTexGeniv; + alias void function(GLenum,GLenum,GLdouble*) da_glGetTexGendv; + alias void function(GLenum,GLenum,GLfloat*) da_glGetTexGenfv; + alias void function(GLenum,GLenum,GLint*) da_glGetTexGeniv; + alias void function(GLenum,GLenum,GLfloat) da_glTexEnvf; + alias void function(GLenum,GLenum,GLint) da_glTexEnvi; + alias void function(GLenum,GLenum,in GLfloat*) da_glTexEnvfv; + alias void function(GLenum,GLenum,in GLint*) da_glTexEnviv; + alias void function(GLenum,GLenum,GLfloat*) da_glGetTexEnvfv; + alias void function(GLenum,GLenum,GLint*) da_glGetTexEnviv; + alias void function(GLenum,GLenum,GLfloat) da_glTexParameterf; + alias void function(GLenum,GLenum,GLint) da_glTexParameteri; + alias void function(GLenum,GLenum,in GLfloat*) da_glTexParameterfv; + alias void function(GLenum,GLenum,in GLint*) da_glTexParameteriv; + alias void function(GLenum,GLenum,GLfloat*) da_glGetTexParameterfv; + alias void function(GLenum,GLenum,GLint*) da_glGetTexParameteriv; + alias void function(GLenum,GLint,GLenum,GLfloat*) da_glGetTexLevelParameterfv; + alias void function(GLenum,GLint,GLenum,GLint*) da_glGetTexLevelParameteriv; + alias void function(GLenum,GLint,GLint,GLsizei,GLint,GLenum,GLenum,void*) da_glTexImage1D; + alias void function(GLenum,GLint,GLint,GLsizei,GLsizei,GLint,GLenum,GLenum,void*) da_glTexImage2D; + alias void function(GLenum,GLint,GLenum,GLenum,void*) da_glGetTexImage; + + alias void function(GLenum,GLdouble,GLdouble,GLint,GLint,in GLdouble*) da_glMap1d; + alias void function(GLenum,GLfloat,GLfloat,GLint,GLint,in GLfloat*) da_glMap1f; + alias void function(GLenum,GLdouble,GLdouble,GLint,GLint,GLdouble,GLdouble,GLint,GLint,GLdouble*) da_glMap2d; + alias void function(GLenum,GLfloat,GLfloat,GLint,GLint,GLfloat,GLfloat,GLint,GLint,GLfloat*) da_glMap2f; + alias void function(GLenum,GLenum,GLdouble*) da_glGetMapdv; + alias void function(GLenum,GLenum,GLfloat*) da_glGetMapfv; + alias void function(GLenum,GLenum,GLint*) da_glGetMapiv; + alias void function(GLdouble) da_glEvalCoord1d; + alias void function(GLfloat) da_glEvalCoord1f; + alias void function(in GLdouble*) da_glEvalCoord1dv; + alias void function(in GLfloat*) da_glEvalCoord1fv; + alias void function(GLdouble,GLdouble) da_glEvalCoord2d; + alias void function(GLfloat,GLfloat) da_glEvalCoord2f; + alias void function(in GLdouble*) da_glEvalCoord2dv; + alias void function(in GLfloat*) da_glEvalCoord2fv; + alias void function(GLint,GLdouble,GLdouble) da_glMapGrid1d; + alias void function(GLint,GLfloat,GLfloat) da_glMapGrid1f; + alias void function(GLint,GLdouble,GLdouble,GLint,GLdouble,GLdouble) da_glMapGrid2d; + alias void function(GLint,GLfloat,GLfloat,GLint,GLfloat,GLfloat) da_glMapGrid2f; + alias void function(GLint) da_glEvalPoint1; + alias void function(GLint,GLint) da_glEvalPoint2; + alias void function(GLenum,GLint,GLint) da_glEvalMesh1; + alias void function(GLenum,GLint,GLint,GLint,GLint) da_glEvalMesh2; + + alias void function(GLenum,GLfloat) da_glFogf; + alias void function(GLenum,GLint) da_glFogi; + alias void function(GLenum,in GLfloat*) da_glFogfv; + alias void function(GLenum,in GLint*) da_glFogiv; + + alias void function(GLsizei,GLenum,GLfloat*) da_glFeedbackBuffer; + alias void function(GLfloat) da_glPassThrough; + alias void function(GLsizei,GLuint*) da_glSelectBuffer; + alias void function() da_glInitNames; + alias void function(GLuint) da_glLoadName; + alias void function(GLuint) da_glPushName; + alias void function() da_glPopName; + + alias void function(GLsizei,GLuint*) da_glGenTextures; + alias void function(GLsizei,in GLuint*) da_glDeleteTextures; + alias void function(GLenum,GLuint) da_glBindTexture; + alias void function(GLsizei,in GLuint*,in GLclampf*) da_glPrioritizeTextures; + alias GLboolean function(GLsizei,in GLuint*,GLboolean*) da_glAreTexturesResident; + alias GLboolean function(GLuint) da_glIsTexture; + + alias void function(GLenum,GLint,GLint,GLsizei,GLenum,GLenum,in void*) da_glTexSubImage1D; + alias void function(GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,in void*) da_glTexSubImage2D; + alias void function(GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLint) da_glCopyTexImage1D; + alias void function(GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLsizei,GLint) da_glCopyTexImage2D; + alias void function(GLenum,GLint,GLint,GLint,GLint,GLsizei) da_glCopyTexSubImage1D; + alias void function(GLenum,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei) da_glCopyTexSubImage2D; + + alias void function(GLint,GLenum,GLsizei,in void*) da_glVertexPointer; + alias void function(GLenum,GLsizei,in void*) da_glNormalPointer; + alias void function(GLint,GLenum,GLsizei,in void*) da_glColorPointer; + alias void function(GLenum,GLsizei,in void*) da_glIndexPointer; + alias void function(GLint,GLenum,GLsizei,in void*) da_glTexCoordPointer; + alias void function(GLsizei,in void*) da_glEdgeFlagPointer; + alias void function(GLenum,void**) da_glGetPointerv; + alias void function(GLint) da_glArrayElement; + alias void function(GLenum,GLint,GLsizei) da_glDrawArrays; + alias void function(GLenum,GLsizei,GLenum,in void*) da_glDrawElements; + alias void function(GLenum,GLsizei,in void*) da_glInterleavedArrays; + + // gl 1.2 + alias void function(GLenum, GLuint, GLuint, GLsizei, GLenum, in void*) da_glDrawRangeElements; + alias void function(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, void*) da_glTexImage3D; + alias void function(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, void*) da_glTexSubImage3D; + alias void function(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) da_glCopyTexSubImage3D; + + // gl 1.3 + alias void function(GLenum) da_glActiveTexture; + alias void function(GLenum) da_glClientActiveTexture; + alias void function(GLenum, GLdouble) da_glMultiTexCoord1d; + alias void function(GLenum, in GLdouble*) da_glMultiTexCoord1dv; + alias void function(GLenum, GLfloat) da_glMultiTexCoord1f; + alias void function(GLenum, in GLfloat*) da_glMultiTexCoord1fv; + alias void function(GLenum, GLint) da_glMultiTexCoord1i; + alias void function(GLenum, in GLint*) da_glMultiTexCoord1iv; + alias void function(GLenum, GLshort) da_glMultiTexCoord1s; + alias void function(GLenum, in GLshort*) da_glMultiTexCoord1sv; + alias void function(GLenum, GLdouble, GLdouble) da_glMultiTexCoord2d; + alias void function(GLenum, in GLdouble*) da_glMultiTexCoord2dv; + alias void function(GLenum, GLfloat, GLfloat) da_glMultiTexCoord2f; + alias void function(GLenum, in GLfloat*) da_glMultiTexCoord2fv; + alias void function(GLenum, GLint, GLint) da_glMultiTexCoord2i; + alias void function(GLenum, in GLint*) da_glMultiTexCoord2iv; + alias void function(GLenum, GLshort, GLshort) da_glMultiTexCoord2s; + alias void function(GLenum, in GLshort*) da_glMultiTexCoord2sv; + alias void function(GLenum, GLdouble, GLdouble, GLdouble) da_glMultiTexCoord3d; + alias void function(GLenum, in GLdouble*) da_glMultiTexCoord3dv; + alias void function(GLenum, GLfloat, GLfloat, GLfloat) da_glMultiTexCoord3f; + alias void function(GLenum, in GLfloat*) da_glMultiTexCoord3fv; + alias void function(GLenum, GLint, GLint, GLint) da_glMultiTexCoord3i; + alias void function(GLenum, in GLint*) da_glMultiTexCoord3iv; + alias void function(GLenum, GLshort, GLshort, GLshort) da_glMultiTexCoord3s; + alias void function(GLenum, in GLshort*) da_glMultiTexCoord3sv; + alias void function(GLenum, GLdouble, GLdouble, GLdouble, GLdouble) da_glMultiTexCoord4d; + alias void function(GLenum, in GLdouble*) da_glMultiTexCoord4dv; + alias void function(GLenum, GLfloat, GLfloat, GLfloat, GLfloat) da_glMultiTexCoord4f; + alias void function(GLenum, in GLfloat*) da_glMultiTexCoord4fv; + alias void function(GLenum, GLint, GLint, GLint, GLint) da_glMultiTexCoord4i; + alias void function(GLenum, in GLint*) da_glMultiTexCoord4iv; + alias void function(GLenum, GLshort, GLshort, GLshort, GLshort) da_glMultiTexCoord4s; + alias void function(GLenum, in GLshort*) da_glMultiTexCoord4sv; + alias void function(GLdouble*) da_glLoadTransposeMatrixd; + alias void function(in GLfloat*) da_glLoadTransposeMatrixf; + alias void function(in GLdouble*) da_glMultTransposeMatrixd; + alias void function(in GLfloat*) da_glMultTransposeMatrixf; + alias void function(in GLclampf, GLboolean) da_glSampleCoverage; + alias void function(GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, in void*) da_glCompressedTexImage1D; + alias void function(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, in void*) da_glCompressedTexImage2D; + alias void function(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei depth, GLint, GLsizei, in void*) da_glCompressedTexImage3D; + alias void function(GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, in void*) da_glCompressedTexSubImage1D; + alias void function(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, in void*) da_glCompressedTexSubImage2D; + alias void function(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, in void*) da_glCompressedTexSubImage3D; + alias void function(GLenum, GLint, void*) da_glGetCompressedTexImage; + + // gl 1.4 + alias void function(GLenum, GLenum, GLenum, GLenum) da_glBlendFuncSeparate; + alias void function(GLfloat) da_glFogCoordf; + alias void function(in GLfloat*) da_glFogCoordfv; + alias void function(GLdouble) da_glFogCoordd; + alias void function(in GLdouble*) da_glFogCoorddv; + alias void function(GLenum, GLsizei,in void*) da_glFogCoordPointer; + alias void function(GLenum, GLint*, GLsizei*, GLsizei) da_glMultiDrawArrays; + alias void function(GLenum, GLsizei*, GLenum, in void**, GLsizei) da_glMultiDrawElements; + alias void function(GLenum, GLfloat) da_glPointParameterf; + alias void function(GLenum, GLfloat*) da_glPointParameterfv; + alias void function(GLenum, GLint) da_glPointParameteri; + alias void function(GLenum, GLint*) da_glPointParameteriv; + alias void function(GLbyte, GLbyte, GLbyte) da_glSecondaryColor3b; + alias void function(in GLbyte*) da_glSecondaryColor3bv; + alias void function(GLdouble, GLdouble, GLdouble) da_glSecondaryColor3d; + alias void function(in GLdouble*) da_glSecondaryColor3dv; + alias void function(GLfloat, GLfloat, GLfloat) da_glSecondaryColor3f; + alias void function(in GLfloat*) da_glSecondaryColor3fv; + alias void function(GLint, GLint, GLint) da_glSecondaryColor3i; + alias void function(in GLint*) da_glSecondaryColor3iv; + alias void function(GLshort, GLshort, GLshort) da_glSecondaryColor3s; + alias void function(in GLshort*) da_glSecondaryColor3sv; + alias void function(GLubyte, GLubyte, GLubyte) da_glSecondaryColor3ub; + alias void function(in GLubyte*) da_glSecondaryColor3ubv; + alias void function(GLuint, GLuint, GLuint) da_glSecondaryColor3ui; + alias void function(in GLuint*) da_glSecondaryColor3uiv; + alias void function(GLushort, GLushort, GLushort) da_glSecondaryColor3us; + alias void function(in GLushort*) da_glSecondaryColor3usv; + alias void function(GLint, GLenum, GLsizei, void*) da_glSecondaryColorPointer; + alias void function(GLdouble, GLdouble) da_glWindowPos2d; + alias void function(in GLdouble*) da_glWindowPos2dv; + alias void function(GLfloat, GLfloat) da_glWindowPos2f; + alias void function(in GLfloat*) da_glWindowPos2fv; + alias void function(GLint, GLint) da_glWindowPos2i; + alias void function(in GLint*) da_glWindowPos2iv; + alias void function(GLshort, GLshort) da_glWindowPos2s; + alias void function(in GLshort*) da_glWindowPos2sv; + alias void function(GLdouble, GLdouble, GLdouble) da_glWindowPos3d; + alias void function(in GLdouble*) da_glWindowPos3dv; + alias void function(GLfloat, GLfloat, GLfloat) da_glWindowPos3f; + alias void function(in GLfloat*) da_glWindowPos3fv; + alias void function(GLint, GLint, GLint) da_glWindowPos3i; + alias void function(in GLint*) da_glWindowPos3iv; + alias void function(GLshort, GLshort, GLshort) da_glWindowPos3s; + alias void function(in GLshort*) da_glWindowPos3sv; + alias void function(GLclampf, GLclampf, GLclampf, GLclampf) da_glBlendColor; + alias void function(GLenum) da_glBlendEquation; + + // gl 1.5 + alias void function(GLsizei, GLuint*) da_glGenQueries; + alias void function(GLsizei,in GLuint*) da_glDeleteQueries; + alias GLboolean function(GLuint) da_glIsQuery; + alias void function(GLenum, GLuint) da_glBeginQuery; + alias void function(GLenum) da_glEndQuery; + alias void function(GLenum, GLenum, GLint*) da_glGetQueryiv; + alias void function(GLuint, GLenum, GLint*) da_glGetQueryObjectiv; + alias void function(GLuint, GLenum, GLuint*) da_glGetQueryObjectuiv; + alias void function(GLenum, GLuint) da_glBindBuffer; + alias void function(GLsizei, in GLuint*) da_glDeleteBuffers; + alias void function(GLsizei, GLuint*) da_glGenBuffers; + alias GLboolean function(GLuint) da_glIsBuffer; + alias void function(GLenum, GLsizeiptr, in void*, GLenum) da_glBufferData; + alias void function(GLenum, GLintptr, GLsizeiptr,in void*) da_glBufferSubData; + alias void function(GLenum, GLintptr, GLsizeiptr, void*) da_glGetBufferSubData; + alias void* function(GLenum, GLenum) da_glMapBuffer; + alias GLboolean function(GLenum) da_glUnmapBuffer; + alias void function(GLenum, GLenum, GLint*) da_glGetBufferParameteriv; + alias void function(GLenum, GLenum, void**) da_glGetBufferPointerv; + + // gl 2.0 + alias void function(GLenum, GLenum) da_glBlendEquationSeparate; + alias void function(GLsizei, in GLenum*) da_glDrawBuffers; + alias void function(GLenum, GLenum, GLenum, GLenum) da_glStencilOpSeparate; + alias void function(GLenum, GLenum, GLint, GLuint) da_glStencilFuncSeparate; + alias void function(GLenum, GLuint) da_glStencilMaskSeparate; + alias void function(GLuint, GLuint) da_glAttachShader; + alias void function(GLuint, GLuint, in GLchar*) da_glBindAttribLocation; + alias void function(GLuint) da_glCompileShader; + alias GLuint function() da_glCreateProgram; + alias GLuint function(GLenum) da_glCreateShader; + alias void function(GLuint) da_glDeleteProgram; + alias void function(GLuint) da_glDeleteShader; + alias void function(GLuint, GLuint) da_glDetachShader; + alias void function(GLuint) da_glDisableVertexAttribArray; + alias void function(GLuint) da_glEnableVertexAttribArray; + alias void function(GLuint, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLchar*) da_glGetActiveAttrib; + alias void function(GLuint, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLchar*) da_glGetActiveUniform; + alias void function(GLuint, GLsizei, GLsizei*, GLuint*) da_glGetAttachedShaders; + alias GLint function(GLuint, in GLchar*) da_glGetAttribLocation; + alias void function(GLuint, GLenum, GLint*) da_glGetProgramiv; + alias void function(GLuint, GLsizei, GLsizei*, GLchar*) da_glGetProgramInfoLog; + alias void function(GLuint, GLenum, GLint *) da_glGetShaderiv; + alias void function(GLuint, GLsizei, GLsizei*, GLchar*) da_glGetShaderInfoLog; + alias void function(GLuint, GLsizei, GLsizei*, GLchar*) da_glGetShaderSource; + alias GLint function(GLuint, in GLchar*) da_glGetUniformLocation; + alias void function(GLuint, GLint, GLfloat*) da_glGetUniformfv; + alias void function(GLuint, GLint, GLint*) da_glGetUniformiv; + alias void function(GLuint, GLenum, GLdouble*) da_glGetVertexAttribdv; + alias void function(GLuint, GLenum, GLfloat*) da_glGetVertexAttribfv; + alias void function(GLuint, GLenum, GLint*) da_glGetVertexAttribiv; + alias void function(GLuint, GLenum, void**) da_glGetVertexAttribPointerv; + alias GLboolean function(GLuint) da_glIsProgram; + alias GLboolean function(GLuint) da_glIsShader; + alias void function(GLuint) da_glLinkProgram; + alias void function(GLuint, GLsizei, in GLchar**, in GLint*) da_glShaderSource; + alias void function(GLuint) da_glUseProgram; + alias void function(GLint, GLfloat) da_glUniform1f; + alias void function(GLint, GLfloat, GLfloat) da_glUniform2f; + alias void function(GLint, GLfloat, GLfloat, GLfloat) da_glUniform3f; + alias void function(GLint, GLfloat, GLfloat, GLfloat, GLfloat) da_glUniform4f; + alias void function(GLint, GLint) da_glUniform1i; + alias void function(GLint, GLint, GLint) da_glUniform2i; + alias void function(GLint, GLint, GLint, GLint) da_glUniform3i; + alias void function(GLint, GLint, GLint, GLint, GLint) da_glUniform4i; + alias void function(GLint, GLsizei, in GLfloat*) da_glUniform1fv; + alias void function(GLint, GLsizei, in GLfloat*) da_glUniform2fv; + alias void function(GLint, GLsizei, in GLfloat*) da_glUniform3fv; + alias void function(GLint, GLsizei, in GLfloat*) da_glUniform4fv; + alias void function(GLint, GLsizei, in GLint*) da_glUniform1iv; + alias void function(GLint, GLsizei, in GLint*) da_glUniform2iv; + alias void function(GLint, GLsizei, in GLint*) da_glUniform3iv; + alias void function(GLint, GLsizei, in GLint*) da_glUniform4iv; + alias void function(GLint, GLsizei, GLboolean, in GLfloat*) da_glUniformMatrix2fv; + alias void function(GLint, GLsizei, GLboolean, in GLfloat*) da_glUniformMatrix3fv; + alias void function(GLint, GLsizei, GLboolean, in GLfloat*) da_glUniformMatrix4fv; + alias void function(GLuint) da_glValidateProgram; + alias void function(GLuint, GLdouble) da_glVertexAttrib1d; + alias void function(GLuint, in GLdouble*) da_glVertexAttrib1dv; + alias void function(GLuint, GLfloat) da_glVertexAttrib1f; + alias void function(GLuint, in GLfloat*) da_glVertexAttrib1fv; + alias void function(GLuint, GLshort) da_glVertexAttrib1s; + alias void function(GLuint, in GLshort*) da_glVertexAttrib1sv; + alias void function(GLuint, GLdouble, GLdouble) da_glVertexAttrib2d; + alias void function(GLuint, in GLdouble*) da_glVertexAttrib2dv; + alias void function(GLuint, GLfloat, GLfloat) da_glVertexAttrib2f; + alias void function(GLuint, in GLfloat*) da_glVertexAttrib2fv; + alias void function(GLuint, GLshort, GLshort) da_glVertexAttrib2s; + alias void function(GLuint, in GLshort*) da_glVertexAttrib2sv; + alias void function(GLuint, GLdouble, GLdouble, GLdouble) da_glVertexAttrib3d; + alias void function(GLuint, in GLdouble*) da_glVertexAttrib3dv; + alias void function(GLuint, GLfloat, GLfloat, GLfloat) da_glVertexAttrib3f; + alias void function(GLuint, in GLfloat*) da_glVertexAttrib3fv; + alias void function(GLuint, GLshort, GLshort, GLshort) da_glVertexAttrib3s; + alias void function(GLuint, in GLshort*) da_glVertexAttrib3sv; + alias void function(GLuint, in GLbyte*) da_glVertexAttrib4Nbv; + alias void function(GLuint, in GLint*) da_glVertexAttrib4Niv; + alias void function(GLuint, in GLshort*) da_glVertexAttrib4Nsv; + alias void function(GLuint, GLubyte, GLubyte, GLubyte, GLubyte) da_glVertexAttrib4Nub; + alias void function(GLuint, in GLubyte*) da_glVertexAttrib4Nubv; + alias void function(GLuint, in GLuint*) da_glVertexAttrib4Nuiv; + alias void function(GLuint, in GLushort*) da_glVertexAttrib4Nusv; + alias void function(GLuint, in GLbyte*) da_glVertexAttrib4bv; + alias void function(GLuint, GLdouble, GLdouble, GLdouble, GLdouble) da_glVertexAttrib4d; + alias void function(GLuint, in GLdouble*) da_glVertexAttrib4dv; + alias void function(GLuint, GLfloat, GLfloat, GLfloat, GLfloat) da_glVertexAttrib4f; + alias void function(GLuint, in GLfloat*) da_glVertexAttrib4fv; + alias void function(GLuint, in GLint*) da_glVertexAttrib4iv; + alias void function(GLuint, GLshort, GLshort, GLshort, GLshort) da_glVertexAttrib4s; + alias void function(GLuint, in GLshort*) da_glVertexAttrib4sv; + alias void function(GLuint, in GLubyte*) da_glVertexAttrib4ubv; + alias void function(GLuint, in GLuint*) da_glVertexAttrib4uiv; + alias void function(GLuint, in GLushort*) da_glVertexAttrib4usv; + alias void function(GLuint, GLint, GLenum, GLboolean, GLsizei, in void*) da_glVertexAttribPointer; + + // gl 2.1 + alias void function(GLint, GLsizei, GLboolean, in GLfloat*) da_glUniformMatrix2x3fv; + alias void function(GLint, GLsizei, GLboolean, in GLfloat*) da_glUniformMatrix3x2fv; + alias void function(GLint, GLsizei, GLboolean, in GLfloat*) da_glUniformMatrix2x4fv; + alias void function(GLint, GLsizei, GLboolean, in GLfloat*) da_glUniformMatrix4x2fv; + alias void function(GLint, GLsizei, GLboolean, in GLfloat*) da_glUniformMatrix3x4fv; + alias void function(GLint, GLsizei, GLboolean, in GLfloat*) da_glUniformMatrix4x3fv; + + // gl 3.0 + alias void function(GLuint, GLenum) da_glBeginConditionalRender; + alias void function(GLenum) da_glBeginTransformFeedback; + alias void function(GLuint, GLuint, in GLchar*) da_glBindFragDataLocation; + alias void function(GLenum, GLenum) da_glClampColor; + alias void function(GLenum, GLint, GLfloat, GLint) da_glClearBufferfi; + alias void function(GLenum, GLint, in GLfloat*) da_glClearBufferfv; + alias void function(GLenum, GLint, in GLint*) da_glClearBufferiv; + alias void function(GLenum, GLint, in GLuint*) da_glClearBufferuiv; + alias void function(GLuint, GLboolean, GLboolean, GLboolean, GLboolean) da_glColorMaski; + alias void function(GLenum, GLuint) da_glDisablei; + alias void function(GLenum, GLuint) da_glEnablei; + alias void function() da_glEndConditionalRender; + alias void function() da_glEndTransformFeedback; + alias void function(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr) da_glBindBufferRange; + alias void function(GLenum, GLuint, GLuint) da_glBindBufferBase; + alias void function(GLenum, GLuint, GLboolean*) da_glGetBooleani_v; + alias void function(GLenum, GLuint, GLint*) da_glGetIntegeri_v; + alias GLint function(GLuint, in GLchar*) da_glGetFragDataLocation; + alias CUBPTR function(GLenum, GLuint) da_glGetStringi; + alias void function(GLuint, GLenum, GLint*) da_glGetTexParameterIiv; + alias void function(GLuint, GLenum, GLuint*) da_glGetTexParameterIuiv; + alias GLboolean function(GLenum, GLuint) da_glIsEnabledi; + alias void function(GLenum, GLenum, in GLint*) da_glTexParameterIiv; + alias void function(GLenum, GLenum, in GLuint*) da_glTexParameterIuiv; + alias void function(GLuint, GLsizei, in GLchar**, GLenum) da_glTransformFeedbackVaryings; + alias void function(GLuint, GLuint, GLsizei, GLsizei*, GLsizei*, GLenum*, GLchar*) da_glGetTransformFeedbackVarying; + alias void function(GLint, GLuint) da_glUniform1ui; + alias void function(GLint, GLsizei, in GLuint*) da_glUniform1uiv; + alias void function(GLint, GLuint, GLuint) da_glUniform2ui; + alias void function(GLint, GLsizei, in GLuint*) da_glUniform2uiv; + alias void function(GLint, GLuint, GLuint, GLuint) da_glUniform3ui; + alias void function(GLint, GLsizei, in GLuint*) da_glUniform3uiv; + alias void function(GLint, GLuint, GLuint, GLuint, GLuint) da_glUniform4ui; + alias void function(GLint, GLsizei, in GLuint*) da_glUniform4uiv; + alias void function(GLuint, GLint) da_glVertexAttribI1i; + alias void function(GLuint, in GLint*) da_glVertexAttribI1iv; + alias void function(GLuint, GLuint) da_glVertexAttribI1ui; + alias void function(GLuint, in GLuint*) da_glVertexAttribI1uiv; + alias void function(GLuint, GLint, GLint) da_glVertexAttribI2i; + alias void function(GLuint, in GLint*) da_glVertexAttribI2iv; + alias void function(GLuint, GLuint, GLuint) da_glVertexAttribI2ui; + alias void function(GLuint, in GLuint*) da_glVertexAttribI2uiv; + alias void function(GLuint, GLint, GLint, GLint) da_glVertexAttribI3i; + alias void function(GLuint, in GLint*) da_glVertexAttribI3iv; + alias void function(GLuint, GLuint, GLuint, GLuint) da_glVertexAttribI3ui; + alias void function(GLuint, in GLuint*) da_glVertexAttribI3uiv; + alias void function(GLuint, in GLbyte*) da_glVertexAttribI4bv; + alias void function(GLuint, GLint, GLint, GLint, GLint) da_glVertexAttribI4i; + alias void function(GLuint, in GLint*) da_glVertexAttribI4iv; + alias void function(GLuint, in GLshort*) da_glVertexAttribI4sv; + alias void function(GLuint, in GLubyte*) da_glVertexAttribI4ubv; + alias void function(GLuint, GLuint, GLuint, GLuint, GLuint) da_glVertexAttribI4ui; + alias void function(GLuint, in GLuint*) da_glVertexAttribI4uiv; + alias void function(GLuint, in GLushort*) da_glVertexAttribI4usv; + alias void function(GLuint, GLint, GLenum, GLsizei, in GLvoid*) da_glVertexAttribIPointer; + alias void function(GLuint, GLenum, GLint*) da_glGetVertexAttribIiv; + alias void function(GLuint, GLenum, GLuint*) da_glGetVertexAttribIuiv; + alias void function(GLuint, GLint, GLuint*) da_glGetUniformuiv; + + // gl 3.1 + alias void function(GLenum, GLint, GLsizei, GLsizei) da_glDrawArraysInstanced; + alias void function(GLenum, GLsizei, GLenum, in GLvoid*, GLsizei) da_glDrawElementsInstanced; + alias void function(GLuint) da_glPrimitiveRestartIndex; + alias void function(GLenum, GLenum, GLuint) da_glTexBuffer; + + // gl 3.2 + alias void function(GLenum, GLenum, GLuint, GLuint) da_glFramebufferTexture; + alias void function(GLenum, GLenum, GLint64*) da_glGetBufferParameteri64v; + alias void function(GLenum, GLuint, GLint64*) da_glGetInteger64i_v; + + // gl 3.3 + alias void function(GLuint, GLuint) da_glVertexAttribDivisor; + + // gl 4.0 + alias void function(GLuint, GLenum, GLenum) da_glBlendEquationSeparatei; + alias void function(GLuint, GLenum) da_glBlendEquationi; + alias void function(GLuint, GLenum, GLenum, GLenum, GLenum) da_glBlendFuncSeparatei; + alias void function(GLuint, GLenum, GLenum) da_glBlendFunci; + alias void function(GLclampf) da_glMinSampleShading; +} + +mixin(gsharedString!() ~ +" +da_glClearIndex glClearIndex; +da_glClearColor glClearColor; +da_glClear glClear; +da_glIndexMask glIndexMask; +da_glColorMask glColorMask; +da_glAlphaFunc glAlphaFunc; +da_glBlendFunc glBlendFunc; +da_glLogicOp glLogicOp; +da_glCullFace glCullFace; +da_glFrontFace glFrontFace; +da_glPointSize glPointSize; +da_glLineWidth glLineWidth; +da_glLineStipple glLineStipple; +da_glPolygonMode glPolygonMode; +da_glPolygonOffset glPolygonOffset; +da_glPolygonStipple glPolygonStipple; +da_glGetPolygonStipple glGetPolygonStipple; +da_glEdgeFlag glEdgeFlag; +da_glEdgeFlagv glEdgeFlagv; +da_glScissor glScissor; +da_glClipPlane glClipPlane; +da_glGetClipPlane glGetClipPlane; +da_glDrawBuffer glDrawBuffer; +da_glReadBuffer glReadBuffer; +da_glEnable glEnable; +da_glDisable glDisable; +da_glIsEnabled glIsEnabled; +da_glEnableClientState glEnableClientState; +da_glDisableClientState glDisableClientState; +da_glGetBooleanv glGetBooleanv; +da_glGetDoublev glGetDoublev; +da_glGetFloatv glGetFloatv; +da_glGetIntegerv glGetIntegerv; +da_glPushAttrib glPushAttrib; +da_glPopAttrib glPopAttrib; +da_glPushClientAttrib glPushClientAttrib; +da_glPopClientAttrib glPopClientAttrib; +da_glRenderMode glRenderMode; +da_glGetError glGetError; +da_glGetString glGetString; +da_glFinish glFinish; +da_glFlush glFlush; +da_glHint glHint; + +da_glClearDepth glClearDepth; +da_glDepthFunc glDepthFunc; +da_glDepthMask glDepthMask; +da_glDepthRange glDepthRange; + +da_glClearAccum glClearAccum; +da_glAccum glAccum; + +da_glMatrixMode glMatrixMode; +da_glOrtho glOrtho; +da_glFrustum glFrustum; +da_glViewport glViewport; +da_glPushMatrix glPushMatrix; +da_glPopMatrix glPopMatrix; +da_glLoadIdentity glLoadIdentity; +da_glLoadMatrixd glLoadMatrixd; +da_glLoadMatrixf glLoadMatrixf; +da_glMultMatrixd glMultMatrixd; +da_glMultMatrixf glMultMatrixf; +da_glRotated glRotated; +da_glRotatef glRotatef; +da_glScaled glScaled; +da_glScalef glScalef; +da_glTranslated glTranslated; +da_glTranslatef glTranslatef; + +da_glIsList glIsList; +da_glDeleteLists glDeleteLists; +da_glGenLists glGenLists; +da_glNewList glNewList; +da_glEndList glEndList; +da_glCallList glCallList; +da_glCallLists glCallLists; +da_glListBase glListBase; + +da_glBegin glBegin; +da_glEnd glEnd; +da_glVertex2d glVertex2d; +da_glVertex2f glVertex2f; +da_glVertex2i glVertex2i; +da_glVertex2s glVertex2s; +da_glVertex3d glVertex3d; +da_glVertex3f glVertex3f; +da_glVertex3i glVertex3i; +da_glVertex3s glVertex3s; +da_glVertex4d glVertex4d; +da_glVertex4f glVertex4f; +da_glVertex4i glVertex4i; +da_glVertex4s glVertex4s; +da_glVertex2dv glVertex2dv; +da_glVertex2fv glVertex2fv; +da_glVertex2iv glVertex2iv; +da_glVertex2sv glVertex2sv; +da_glVertex3dv glVertex3dv; +da_glVertex3fv glVertex3fv; +da_glVertex3iv glVertex3iv; +da_glVertex3sv glVertex3sv; +da_glVertex4dv glVertex4dv; +da_glVertex4fv glVertex4fv; +da_glVertex4iv glVertex4iv; +da_glVertex4sv glVertex4sv; +da_glNormal3b glNormal3b; +da_glNormal3d glNormal3d; +da_glNormal3f glNormal3f; +da_glNormal3i glNormal3i; +da_glNormal3s glNormal3s; +da_glNormal3bv glNormal3bv; +da_glNormal3dv glNormal3dv; +da_glNormal3fv glNormal3fv; +da_glNormal3iv glNormal3iv; +da_glNormal3sv glNormal3sv; +da_glIndexd glIndexd; +da_glIndexf glIndexf; +da_glIndexi glIndexi; +da_glIndexs glIndexs; +da_glIndexub glIndexub; +da_glIndexdv glIndexdv; +da_glIndexfv glIndexfv; +da_glIndexiv glIndexiv; +da_glIndexsv glIndexsv; +da_glIndexubv glIndexubv; +da_glColor3b glColor3b; +da_glColor3d glColor3d; +da_glColor3f glColor3f; +da_glColor3i glColor3i; +da_glColor3s glColor3s; +da_glColor3ub glColor3ub; +da_glColor3ui glColor3ui; +da_glColor3us glColor3us; +da_glColor4b glColor4b; +da_glColor4d glColor4d; +da_glColor4f glColor4f; +da_glColor4i glColor4i; +da_glColor4s glColor4s; +da_glColor4ub glColor4ub; +da_glColor4ui glColor4ui; +da_glColor4us glColor4us; +da_glColor3bv glColor3bv; +da_glColor3dv glColor3dv; +da_glColor3fv glColor3fv; +da_glColor3iv glColor3iv; +da_glColor3sv glColor3sv; +da_glColor3ubv glColor3ubv; +da_glColor3uiv glColor3uiv; +da_glColor3usv glColor3usv; +da_glColor4bv glColor4bv; +da_glColor4dv glColor4dv; +da_glColor4fv glColor4fv; +da_glColor4iv glColor4iv; +da_glColor4sv glColor4sv; +da_glColor4ubv glColor4ubv; +da_glColor4uiv glColor4uiv; +da_glColor4usv glColor4usv; +da_glTexCoord1d glTexCoord1d; +da_glTexCoord1f glTexCoord1f; +da_glTexCoord1i glTexCoord1i; +da_glTexCoord1s glTexCoord1s; +da_glTexCoord2d glTexCoord2d; +da_glTexCoord2f glTexCoord2f; +da_glTexCoord2i glTexCoord2i; +da_glTexCoord2s glTexCoord2s; +da_glTexCoord3d glTexCoord3d; +da_glTexCoord3f glTexCoord3f; +da_glTexCoord3i glTexCoord3i; +da_glTexCoord3s glTexCoord3s; +da_glTexCoord4d glTexCoord4d; +da_glTexCoord4f glTexCoord4f; +da_glTexCoord4i glTexCoord4i; +da_glTexCoord4s glTexCoord4s; +da_glTexCoord1dv glTexCoord1dv; +da_glTexCoord1fv glTexCoord1fv; +da_glTexCoord1iv glTexCoord1iv; +da_glTexCoord1sv glTexCoord1sv; +da_glTexCoord2dv glTexCoord2dv; +da_glTexCoord2fv glTexCoord2fv; +da_glTexCoord2iv glTexCoord2iv; +da_glTexCoord2sv glTexCoord2sv; +da_glTexCoord3dv glTexCoord3dv; +da_glTexCoord3fv glTexCoord3fv; +da_glTexCoord3iv glTexCoord3iv; +da_glTexCoord3sv glTexCoord3sv; +da_glTexCoord4dv glTexCoord4dv; +da_glTexCoord4fv glTexCoord4fv; +da_glTexCoord4iv glTexCoord4iv; +da_glTexCoord4sv glTexCoord4sv; +da_glRasterPos2d glRasterPos2d; +da_glRasterPos2f glRasterPos2f; +da_glRasterPos2i glRasterPos2i; +da_glRasterPos2s glRasterPos2s; +da_glRasterPos3d glRasterPos3d; +da_glRasterPos3f glRasterPos3f; +da_glRasterPos3i glRasterPos3i; +da_glRasterPos3s glRasterPos3s; +da_glRasterPos4d glRasterPos4d; +da_glRasterPos4f glRasterPos4f; +da_glRasterPos4i glRasterPos4i; +da_glRasterPos4s glRasterPos4s; +da_glRasterPos2dv glRasterPos2dv; +da_glRasterPos2fv glRasterPos2fv; +da_glRasterPos2iv glRasterPos2iv; +da_glRasterPos2sv glRasterPos2sv; +da_glRasterPos3dv glRasterPos3dv; +da_glRasterPos3fv glRasterPos3fv; +da_glRasterPos3iv glRasterPos3iv; +da_glRasterPos3sv glRasterPos3sv; +da_glRasterPos4dv glRasterPos4dv; +da_glRasterPos4fv glRasterPos4fv; +da_glRasterPos4iv glRasterPos4iv; +da_glRasterPos4sv glRasterPos4sv; +da_glRectd glRectd; +da_glRectf glRectf; +da_glRecti glRecti; +da_glRects glRects; +da_glRectdv glRectdv; +da_glRectfv glRectfv; +da_glRectiv glRectiv; +da_glRectsv glRectsv; + +da_glShadeModel glShadeModel; +da_glLightf glLightf; +da_glLighti glLighti; +da_glLightfv glLightfv; +da_glLightiv glLightiv; +da_glGetLightfv glGetLightfv; +da_glGetLightiv glGetLightiv; +da_glLightModelf glLightModelf; +da_glLightModeli glLightModeli; +da_glLightModelfv glLightModelfv; +da_glLightModeliv glLightModeliv; +da_glMaterialf glMaterialf; +da_glMateriali glMateriali; +da_glMaterialfv glMaterialfv; +da_glMaterialiv glMaterialiv; +da_glGetMaterialfv glGetMaterialfv; +da_glGetMaterialiv glGetMaterialiv; +da_glColorMaterial glColorMaterial; + +da_glPixelZoom glPixelZoom; +da_glPixelStoref glPixelStoref; +da_glPixelStorei glPixelStorei; +da_glPixelTransferf glPixelTransferf; +da_glPixelTransferi glPixelTransferi; +da_glPixelMapfv glPixelMapfv; +da_glPixelMapuiv glPixelMapuiv; +da_glPixelMapusv glPixelMapusv; +da_glGetPixelMapfv glGetPixelMapfv; +da_glGetPixelMapuiv glGetPixelMapuiv; +da_glGetPixelMapusv glGetPixelMapusv; +da_glBitmap glBitmap; +da_glReadPixels glReadPixels; +da_glDrawPixels glDrawPixels; +da_glCopyPixels glCopyPixels; + +da_glStencilFunc glStencilFunc; +da_glStencilMask glStencilMask; +da_glStencilOp glStencilOp; +da_glClearStencil glClearStencil; + +da_glTexGend glTexGend; +da_glTexGenf glTexGenf; +da_glTexGeni glTexGeni; +da_glTexGendv glTexGendv; +da_glTexGenfv glTexGenfv; +da_glTexGeniv glTexGeniv; +da_glGetTexGendv glGetTexGendv; +da_glGetTexGenfv glGetTexGenfv; +da_glGetTexGeniv glGetTexGeniv; +da_glTexEnvf glTexEnvf; +da_glTexEnvi glTexEnvi; +da_glTexEnvfv glTexEnvfv; +da_glTexEnviv glTexEnviv; +da_glGetTexEnvfv glGetTexEnvfv; +da_glGetTexEnviv glGetTexEnviv; +da_glTexParameterf glTexParameterf; +da_glTexParameteri glTexParameteri; +da_glTexParameterfv glTexParameterfv; +da_glTexParameteriv glTexParameteriv; +da_glGetTexParameterfv glGetTexParameterfv; +da_glGetTexParameteriv glGetTexParameteriv; +da_glGetTexLevelParameterfv glGetTexLevelParameterfv; +da_glGetTexLevelParameteriv glGetTexLevelParameteriv; +da_glTexImage1D glTexImage1D; +da_glTexImage2D glTexImage2D; +da_glGetTexImage glGetTexImage; + +da_glMap1d glMap1d; +da_glMap1f glMap1f; +da_glMap2d glMap2d; +da_glMap2f glMap2f; +da_glGetMapdv glGetMapdv; +da_glGetMapfv glGetMapfv; +da_glGetMapiv glGetMapiv; +da_glEvalCoord1d glEvalCoord1d; +da_glEvalCoord1f glEvalCoord1f; +da_glEvalCoord1dv glEvalCoord1dv; +da_glEvalCoord1fv glEvalCoord1fv; +da_glEvalCoord2d glEvalCoord2d; +da_glEvalCoord2f glEvalCoord2f; +da_glEvalCoord2dv glEvalCoord2dv; +da_glEvalCoord2fv glEvalCoord2fv; +da_glMapGrid1d glMapGrid1d; +da_glMapGrid1f glMapGrid1f; +da_glMapGrid2d glMapGrid2d; +da_glMapGrid2f glMapGrid2f; +da_glEvalPoint1 glEvalPoint1; +da_glEvalPoint2 glEvalPoint2; +da_glEvalMesh1 glEvalMesh1; +da_glEvalMesh2 glEvalMesh2; + +da_glFogf glFogf; +da_glFogi glFogi; +da_glFogfv glFogfv; +da_glFogiv glFogiv; + +da_glFeedbackBuffer glFeedbackBuffer; +da_glPassThrough glPassThrough; +da_glSelectBuffer glSelectBuffer; +da_glInitNames glInitNames; +da_glLoadName glLoadName; +da_glPushName glPushName; +da_glPopName glPopName; + +da_glGenTextures glGenTextures; +da_glDeleteTextures glDeleteTextures; +da_glBindTexture glBindTexture; +da_glPrioritizeTextures glPrioritizeTextures; +da_glAreTexturesResident glAreTexturesResident; +da_glIsTexture glIsTexture; + +da_glTexSubImage1D glTexSubImage1D; +da_glTexSubImage2D glTexSubImage2D; +da_glCopyTexImage1D glCopyTexImage1D; +da_glCopyTexImage2D glCopyTexImage2D; +da_glCopyTexSubImage1D glCopyTexSubImage1D; +da_glCopyTexSubImage2D glCopyTexSubImage2D; + +da_glVertexPointer glVertexPointer; +da_glNormalPointer glNormalPointer; +da_glColorPointer glColorPointer; +da_glIndexPointer glIndexPointer; +da_glTexCoordPointer glTexCoordPointer; +da_glEdgeFlagPointer glEdgeFlagPointer; +da_glGetPointerv glGetPointerv; +da_glArrayElement glArrayElement; +da_glDrawArrays glDrawArrays; +da_glDrawElements glDrawElements; +da_glInterleavedArrays glInterleavedArrays; + +// gl 1.2 +da_glDrawRangeElements glDrawRangeElements; +da_glTexImage3D glTexImage3D; +da_glTexSubImage3D glTexSubImage3D; +da_glCopyTexSubImage3D glCopyTexSubImage3D; + +// gl 1.3 +da_glActiveTexture glActiveTexture; +da_glClientActiveTexture glClientActiveTexture; +da_glMultiTexCoord1d glMultiTexCoord1d; +da_glMultiTexCoord1dv glMultiTexCoord1dv; +da_glMultiTexCoord1f glMultiTexCoord1f; +da_glMultiTexCoord1fv glMultiTexCoord1fv; +da_glMultiTexCoord1i glMultiTexCoord1i; +da_glMultiTexCoord1iv glMultiTexCoord1iv; +da_glMultiTexCoord1s glMultiTexCoord1s; +da_glMultiTexCoord1sv glMultiTexCoord1sv; +da_glMultiTexCoord2d glMultiTexCoord2d; +da_glMultiTexCoord2dv glMultiTexCoord2dv; +da_glMultiTexCoord2f glMultiTexCoord2f; +da_glMultiTexCoord2fv glMultiTexCoord2fv; +da_glMultiTexCoord2i glMultiTexCoord2i; +da_glMultiTexCoord2iv glMultiTexCoord2iv; +da_glMultiTexCoord2s glMultiTexCoord2s; +da_glMultiTexCoord2sv glMultiTexCoord2sv; +da_glMultiTexCoord3d glMultiTexCoord3d; +da_glMultiTexCoord3dv glMultiTexCoord3dv; +da_glMultiTexCoord3f glMultiTexCoord3f; +da_glMultiTexCoord3fv glMultiTexCoord3fv; +da_glMultiTexCoord3i glMultiTexCoord3i; +da_glMultiTexCoord3iv glMultiTexCoord3iv; +da_glMultiTexCoord3s glMultiTexCoord3s; +da_glMultiTexCoord3sv glMultiTexCoord3sv; +da_glMultiTexCoord4d glMultiTexCoord4d; +da_glMultiTexCoord4dv glMultiTexCoord4dv; +da_glMultiTexCoord4f glMultiTexCoord4f; +da_glMultiTexCoord4fv glMultiTexCoord4fv; +da_glMultiTexCoord4i glMultiTexCoord4i; +da_glMultiTexCoord4iv glMultiTexCoord4iv; +da_glMultiTexCoord4s glMultiTexCoord4s; +da_glMultiTexCoord4sv glMultiTexCoord4sv; +da_glLoadTransposeMatrixd glLoadTransposeMatrixd; +da_glLoadTransposeMatrixf glLoadTransposeMatrixf; +da_glMultTransposeMatrixd glMultTransposeMatrixd; +da_glMultTransposeMatrixf glMultTransposeMatrixf; +da_glSampleCoverage glSampleCoverage; +da_glCompressedTexImage1D glCompressedTexImage1D; +da_glCompressedTexImage2D glCompressedTexImage2D; +da_glCompressedTexImage3D glCompressedTexImage3D; +da_glCompressedTexSubImage1D glCompressedTexSubImage1D; +da_glCompressedTexSubImage2D glCompressedTexSubImage2D; +da_glCompressedTexSubImage3D glCompressedTexSubImage3D; +da_glGetCompressedTexImage glGetCompressedTexImage; + +// gl 1.4 +da_glBlendFuncSeparate glBlendFuncSeparate; +da_glFogCoordf glFogCoordf; +da_glFogCoordfv glFogCoordfv; +da_glFogCoordd glFogCoordd; +da_glFogCoorddv glFogCoorddv; +da_glFogCoordPointer glFogCoordPointer; +da_glMultiDrawArrays glMultiDrawArrays; +da_glMultiDrawElements glMultiDrawElements; +da_glPointParameterf glPointParameterf; +da_glPointParameterfv glPointParameterfv; +da_glPointParameteri glPointParameteri; +da_glPointParameteriv glPointParameteriv; +da_glSecondaryColor3b glSecondaryColor3b; +da_glSecondaryColor3bv glSecondaryColor3bv; +da_glSecondaryColor3d glSecondaryColor3d; +da_glSecondaryColor3dv glSecondaryColor3dv; +da_glSecondaryColor3f glSecondaryColor3f; +da_glSecondaryColor3fv glSecondaryColor3fv; +da_glSecondaryColor3i glSecondaryColor3i; +da_glSecondaryColor3iv glSecondaryColor3iv; +da_glSecondaryColor3s glSecondaryColor3s; +da_glSecondaryColor3sv glSecondaryColor3sv; +da_glSecondaryColor3ub glSecondaryColor3ub; +da_glSecondaryColor3ubv glSecondaryColor3ubv; +da_glSecondaryColor3ui glSecondaryColor3ui; +da_glSecondaryColor3uiv glSecondaryColor3uiv; +da_glSecondaryColor3us glSecondaryColor3us; +da_glSecondaryColor3usv glSecondaryColor3usv; +da_glSecondaryColorPointer glSecondaryColorPointer; +da_glWindowPos2d glWindowPos2d; +da_glWindowPos2dv glWindowPos2dv; +da_glWindowPos2f glWindowPos2f; +da_glWindowPos2fv glWindowPos2fv; +da_glWindowPos2i glWindowPos2i; +da_glWindowPos2iv glWindowPos2iv; +da_glWindowPos2s glWindowPos2s; +da_glWindowPos2sv glWindowPos2sv; +da_glWindowPos3d glWindowPos3d; +da_glWindowPos3dv glWindowPos3dv; +da_glWindowPos3f glWindowPos3f; +da_glWindowPos3fv glWindowPos3fv; +da_glWindowPos3i glWindowPos3i; +da_glWindowPos3iv glWindowPos3iv; +da_glWindowPos3s glWindowPos3s; +da_glWindowPos3sv glWindowPos3sv; +da_glBlendColor glBlendColor; +da_glBlendEquation glBlendEquation; + +// gl 1.5 +da_glGenQueries glGenQueries; +da_glDeleteQueries glDeleteQueries; +da_glIsQuery glIsQuery; +da_glBeginQuery glBeginQuery; +da_glEndQuery glEndQuery; +da_glGetQueryiv glGetQueryiv; +da_glGetQueryObjectiv glGetQueryObjectiv; +da_glGetQueryObjectuiv glGetQueryObjectuiv; +da_glBindBuffer glBindBuffer; +da_glDeleteBuffers glDeleteBuffers; +da_glGenBuffers glGenBuffers; +da_glIsBuffer glIsBuffer; +da_glBufferData glBufferData; +da_glBufferSubData glBufferSubData; +da_glGetBufferSubData glGetBufferSubData; +da_glMapBuffer glMapBuffer; +da_glUnmapBuffer glUnmapBuffer; +da_glGetBufferParameteriv glGetBufferParameteriv; +da_glGetBufferPointerv glGetBufferPointerv; + +// gl 2.0 +da_glBlendEquationSeparate glBlendEquationSeparate; +da_glDrawBuffers glDrawBuffers; +da_glStencilOpSeparate glStencilOpSeparate; +da_glStencilFuncSeparate glStencilFuncSeparate; +da_glStencilMaskSeparate glStencilMaskSeparate; +da_glAttachShader glAttachShader; +da_glBindAttribLocation glBindAttribLocation; +da_glCompileShader glCompileShader; +da_glCreateProgram glCreateProgram; +da_glCreateShader glCreateShader; +da_glDeleteProgram glDeleteProgram; +da_glDeleteShader glDeleteShader; +da_glDetachShader glDetachShader; +da_glDisableVertexAttribArray glDisableVertexAttribArray; +da_glEnableVertexAttribArray glEnableVertexAttribArray; +da_glGetActiveAttrib glGetActiveAttrib; +da_glGetActiveUniform glGetActiveUniform; +da_glGetAttachedShaders glGetAttachedShaders; +da_glGetAttribLocation glGetAttribLocation; +da_glGetProgramiv glGetProgramiv; +da_glGetProgramInfoLog glGetProgramInfoLog; +da_glGetShaderiv glGetShaderiv; +da_glGetShaderInfoLog glGetShaderInfoLog; +da_glGetShaderSource glGetShaderSource; +da_glGetUniformLocation glGetUniformLocation; +da_glGetUniformfv glGetUniformfv; +da_glGetUniformiv glGetUniformiv; +da_glGetVertexAttribdv glGetVertexAttribdv; +da_glGetVertexAttribfv glGetVertexAttribfv; +da_glGetVertexAttribiv glGetVertexAttribiv; +da_glGetVertexAttribPointerv glGetVertexAttribPointerv; +da_glIsProgram glIsProgram; +da_glIsShader glIsShader; +da_glLinkProgram glLinkProgram; +da_glShaderSource glShaderSource; +da_glUseProgram glUseProgram; +da_glUniform1f glUniform1f; +da_glUniform2f glUniform2f; +da_glUniform3f glUniform3f; +da_glUniform4f glUniform4f; +da_glUniform1i glUniform1i; +da_glUniform2i glUniform2i; +da_glUniform3i glUniform3i; +da_glUniform4i glUniform4i; +da_glUniform1fv glUniform1fv; +da_glUniform2fv glUniform2fv; +da_glUniform3fv glUniform3fv; +da_glUniform4fv glUniform4fv; +da_glUniform1iv glUniform1iv; +da_glUniform2iv glUniform2iv; +da_glUniform3iv glUniform3iv; +da_glUniform4iv glUniform4iv; +da_glUniformMatrix2fv glUniformMatrix2fv; +da_glUniformMatrix3fv glUniformMatrix3fv; +da_glUniformMatrix4fv glUniformMatrix4fv; +da_glValidateProgram glValidateProgram; +da_glVertexAttrib1d glVertexAttrib1d; +da_glVertexAttrib1dv glVertexAttrib1dv; +da_glVertexAttrib1f glVertexAttrib1f; +da_glVertexAttrib1fv glVertexAttrib1fv; +da_glVertexAttrib1s glVertexAttrib1s; +da_glVertexAttrib1sv glVertexAttrib1sv; +da_glVertexAttrib2d glVertexAttrib2d; +da_glVertexAttrib2dv glVertexAttrib2dv; +da_glVertexAttrib2f glVertexAttrib2f; +da_glVertexAttrib2fv glVertexAttrib2fv; +da_glVertexAttrib2s glVertexAttrib2s; +da_glVertexAttrib2sv glVertexAttrib2sv; +da_glVertexAttrib3d glVertexAttrib3d; +da_glVertexAttrib3dv glVertexAttrib3dv; +da_glVertexAttrib3f glVertexAttrib3f; +da_glVertexAttrib3fv glVertexAttrib3fv; +da_glVertexAttrib3s glVertexAttrib3s; +da_glVertexAttrib3sv glVertexAttrib3sv; +da_glVertexAttrib4Nbv glVertexAttrib4Nbv; +da_glVertexAttrib4Niv glVertexAttrib4Niv; +da_glVertexAttrib4Nsv glVertexAttrib4Nsv; +da_glVertexAttrib4Nub glVertexAttrib4Nub; +da_glVertexAttrib4Nubv glVertexAttrib4Nubv; +da_glVertexAttrib4Nuiv glVertexAttrib4Nuiv; +da_glVertexAttrib4Nusv glVertexAttrib4Nusv; +da_glVertexAttrib4bv glVertexAttrib4bv; +da_glVertexAttrib4d glVertexAttrib4d; +da_glVertexAttrib4dv glVertexAttrib4dv; +da_glVertexAttrib4f glVertexAttrib4f; +da_glVertexAttrib4fv glVertexAttrib4fv; +da_glVertexAttrib4iv glVertexAttrib4iv; +da_glVertexAttrib4s glVertexAttrib4s; +da_glVertexAttrib4sv glVertexAttrib4sv; +da_glVertexAttrib4ubv glVertexAttrib4ubv; +da_glVertexAttrib4uiv glVertexAttrib4uiv; +da_glVertexAttrib4usv glVertexAttrib4usv; +da_glVertexAttribPointer glVertexAttribPointer; + +// gl 2.1 +da_glUniformMatrix2x3fv glUniformMatrix2x3fv; +da_glUniformMatrix3x2fv glUniformMatrix3x2fv; +da_glUniformMatrix2x4fv glUniformMatrix2x4fv; +da_glUniformMatrix4x2fv glUniformMatrix4x2fv; +da_glUniformMatrix3x4fv glUniformMatrix3x4fv; +da_glUniformMatrix4x3fv glUniformMatrix4x3fv; + +// gl 3.0 +da_glBeginConditionalRender glBeginConditionalRender; +da_glBeginTransformFeedback glBeginTransformFeedback; +da_glBindFragDataLocation glBindFragDataLocation; +da_glClampColor glClampColor; +da_glClearBufferfi glClearBufferfi; +da_glClearBufferfv glClearBufferfv; +da_glClearBufferiv glClearBufferiv; +da_glClearBufferuiv glClearBufferuiv; +da_glColorMaski glColorMaski; +da_glDisablei glDisablei; +da_glEnablei glEnablei; +da_glEndConditionalRender glEndConditionalRender; +da_glEndTransformFeedback glEndTransformFeedback; +da_glBindBufferRange glBindBufferRange; +da_glBindBufferBase glBindBufferBase; +da_glGetBooleani_v glGetBooleani_v; +da_glGetIntegeri_v glGetIntegeri_v; +da_glGetFragDataLocation glGetFragDataLocation; +da_glGetStringi glGetStringi; +da_glGetTexParameterIiv glGetTexParameterIiv; +da_glGetTexParameterIuiv glGetTexParameterIuiv; +da_glIsEnabledi glIsEnabledi; +da_glTexParameterIiv glTexParameterIiv; +da_glTexParameterIuiv glTexParameterIuiv; +da_glTransformFeedbackVaryings glTransformFeedbackVaryings; +da_glGetTransformFeedbackVarying glGetTransformFeedbackVarying; +da_glUniform1ui glUniform1ui; +da_glUniform1uiv glUniform1uiv; +da_glUniform2ui glUniform2ui; +da_glUniform2uiv glUniform2uiv; +da_glUniform3ui glUniform3ui; +da_glUniform3uiv glUniform3uiv; +da_glUniform4ui glUniform4ui; +da_glUniform4uiv glUniform4uiv; +da_glVertexAttribI1i glVertexAttribI1i; +da_glVertexAttribI1iv glVertexAttribI1iv; +da_glVertexAttribI1ui glVertexAttribI1ui; +da_glVertexAttribI1uiv glVertexAttribI1uiv; +da_glVertexAttribI2i glVertexAttribI2i; +da_glVertexAttribI2iv glVertexAttribI2iv; +da_glVertexAttribI2ui glVertexAttribI2ui; +da_glVertexAttribI2uiv glVertexAttribI2uiv; +da_glVertexAttribI3i glVertexAttribI3i; +da_glVertexAttribI3iv glVertexAttribI3iv; +da_glVertexAttribI3ui glVertexAttribI3ui; +da_glVertexAttribI3uiv glVertexAttribI3uiv; +da_glVertexAttribI4bv glVertexAttribI4bv; +da_glVertexAttribI4i glVertexAttribI4i; +da_glVertexAttribI4iv glVertexAttribI4iv; +da_glVertexAttribI4sv glVertexAttribI4sv; +da_glVertexAttribI4ubv glVertexAttribI4ubv; +da_glVertexAttribI4ui glVertexAttribI4ui; +da_glVertexAttribI4uiv glVertexAttribI4uiv; +da_glVertexAttribI4usv glVertexAttribI4usv; +da_glVertexAttribIPointer glVertexAttribIPointer; +da_glGetVertexAttribIiv glGetVertexAttribIiv; +da_glGetVertexAttribIuiv glGetVertexAttribIuiv; +da_glGetUniformuiv glGetUniformuiv; + +// gl 3.1 +da_glDrawArraysInstanced glDrawArraysInstanced; +da_glDrawElementsInstanced glDrawElementsInstanced; +da_glPrimitiveRestartIndex glPrimitiveRestartIndex; +da_glTexBuffer glTexBuffer; + +// gl 3.2 +da_glFramebufferTexture glFramebufferTexture; +da_glGetBufferParameteri64v glGetBufferParameteri64v; +da_glGetInteger64i_v glGetInteger64i_v; + +// gl 3.3 +da_glVertexAttribDivisor glVertexAttribDivisor; + +// gl 4.0 +da_glBlendEquationSeparatei glBlendEquationSeparatei; +da_glBlendEquationi glBlendEquationi; +da_glBlendFuncSeparatei glBlendFuncSeparatei; +da_glBlendFunci glBlendFunci; +da_glMinSampleShading glMinSampleShading; "); \ No newline at end of file diff --git a/src/derelict/opengl/gltypes.d b/src/derelict/opengl/gltypes.d old mode 100755 new mode 100644 index fce5fd9d..192507da --- a/src/derelict/opengl/gltypes.d +++ b/src/derelict/opengl/gltypes.d @@ -1,1266 +1,1266 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.opengl.gltypes; - -/* -The ExtensionState enum is used internally by the extension loader and externally -via the DerelictGL interface. It probably belongs more appropriately in gl.d, but -in order to avoid the extloader module having a dependency on the gl module, it lives -here instead. -*/ -enum GLExtensionState -{ - Loaded, - FailedToLoad, - DriverUnsupported, - DerelictUnsupported, -} - -alias uint GLenum; -alias ubyte GLboolean; -alias uint GLbitfield; -alias void GLvoid; -alias byte GLbyte; -alias short GLshort; -alias int GLint; -alias ubyte GLubyte; -alias ushort GLushort; -alias uint GLuint; -alias int GLsizei; -alias float GLfloat; -alias float GLclampf; -alias double GLdouble; -alias double GLclampd; -alias char GLchar; -alias ptrdiff_t GLintptr; -alias ptrdiff_t GLsizeiptr; - -// Boolean values -enum : GLboolean -{ - GL_FALSE = 0x0, - GL_TRUE = 0x1, -} - -enum : GLenum -{ - // Data types - GL_BYTE = 0x1400, - GL_UNSIGNED_BYTE = 0x1401, - GL_SHORT = 0x1402, - GL_UNSIGNED_SHORT = 0x1403, - GL_INT = 0x1404, - GL_UNSIGNED_INT = 0x1405, - GL_FLOAT = 0x1406, - GL_DOUBLE = 0x140A, - GL_2_BYTES = 0x1407, - GL_3_BYTES = 0x1408, - GL_4_BYTES = 0x1409, - - // Primitives - GL_POINTS = 0x0000, - GL_LINES = 0x0001, - GL_LINE_LOOP = 0x0002, - GL_LINE_STRIP = 0x0003, - GL_TRIANGLES = 0x0004, - GL_TRIANGLE_STRIP = 0x0005, - GL_TRIANGLE_FAN = 0x0006, - GL_QUADS = 0x0007, - GL_QUAD_STRIP = 0x0008, - GL_POLYGON = 0x0009, - - // Vertex Arrays - GL_VERTEX_ARRAY = 0x8074, - GL_NORMAL_ARRAY = 0x8075, - GL_COLOR_ARRAY = 0x8076, - GL_INDEX_ARRAY = 0x8077, - GL_TEXTURE_COORD_ARRAY = 0x8078, - GL_EDGE_FLAG_ARRAY = 0x8079, - GL_VERTEX_ARRAY_SIZE = 0x807A, - GL_VERTEX_ARRAY_TYPE = 0x807B, - GL_VERTEX_ARRAY_STRIDE = 0x807C, - GL_NORMAL_ARRAY_TYPE = 0x807E, - GL_NORMAL_ARRAY_STRIDE = 0x807F, - GL_COLOR_ARRAY_SIZE = 0x8081, - GL_COLOR_ARRAY_TYPE = 0x8082, - GL_COLOR_ARRAY_STRIDE = 0x8083, - GL_INDEX_ARRAY_TYPE = 0x8085, - GL_INDEX_ARRAY_STRIDE = 0x8086, - GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088, - GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089, - GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A, - GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C, - GL_VERTEX_ARRAY_POINTER = 0x808E, - GL_NORMAL_ARRAY_POINTER = 0x808F, - GL_COLOR_ARRAY_POINTER = 0x8090, - GL_INDEX_ARRAY_POINTER = 0x8091, - GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092, - GL_EDGE_FLAG_ARRAY_POINTER = 0x8093, - GL_V2F = 0x2A20, - GL_V3F = 0x2A21, - GL_C4UB_V2F = 0x2A22, - GL_C4UB_V3F = 0x2A23, - GL_C3F_V3F = 0x2A24, - GL_N3F_V3F = 0x2A25, - GL_C4F_N3F_V3F = 0x2A26, - GL_T2F_V3F = 0x2A27, - GL_T4F_V4F = 0x2A28, - GL_T2F_C4UB_V3F = 0x2A29, - GL_T2F_C3F_V3F = 0x2A2A, - GL_T2F_N3F_V3F = 0x2A2B, - GL_T2F_C4F_N3F_V3F = 0x2A2C, - GL_T4F_C4F_N3F_V4F = 0x2A2D, - - // Matrix Mode - GL_MATRIX_MODE = 0x0BA0, - GL_MODELVIEW = 0x1700, - GL_PROJECTION = 0x1701, - GL_TEXTURE = 0x1702, - - // Points - GL_POINT_SMOOTH = 0x0B10, - GL_POINT_SIZE = 0x0B11, - GL_POINT_SIZE_GRANULARITY = 0x0B13, - GL_POINT_SIZE_RANGE = 0x0B12, - - // Lines - GL_LINE_SMOOTH = 0x0B20, - GL_LINE_STIPPLE = 0x0B24, - GL_LINE_STIPPLE_PATTERN = 0x0B25, - GL_LINE_STIPPLE_REPEAT = 0x0B26, - GL_LINE_WIDTH = 0x0B21, - GL_LINE_WIDTH_GRANULARITY = 0x0B23, - GL_LINE_WIDTH_RANGE = 0x0B22, - - // Polygons - GL_POINT = 0x1B00, - GL_LINE = 0x1B01, - GL_FILL = 0x1B02, - GL_CW = 0x0900, - GL_CCW = 0x0901, - GL_FRONT = 0x0404, - GL_BACK = 0x0405, - GL_POLYGON_MODE = 0x0B40, - GL_POLYGON_SMOOTH = 0x0B41, - GL_POLYGON_STIPPLE = 0x0B42, - GL_EDGE_FLAG = 0x0B43, - GL_CULL_FACE = 0x0B44, - GL_CULL_FACE_MODE = 0x0B45, - GL_FRONT_FACE = 0x0B46, - GL_POLYGON_OFFSET_FACTOR = 0x8038, - GL_POLYGON_OFFSET_UNITS = 0x2A00, - GL_POLYGON_OFFSET_POINT = 0x2A01, - GL_POLYGON_OFFSET_LINE = 0x2A02, - GL_POLYGON_OFFSET_FILL = 0x8037, - - // Display Lists - GL_COMPILE = 0x1300, - GL_COMPILE_AND_EXECUTE = 0x1301, - GL_LIST_BASE = 0x0B32, - GL_LIST_INDEX = 0x0B33, - GL_LIST_MODE = 0x0B30, - - // Depth buffer - GL_NEVER = 0x0200, - GL_LESS = 0x0201, - GL_EQUAL = 0x0202, - GL_LEQUAL = 0x0203, - GL_GREATER = 0x0204, - GL_NOTEQUAL = 0x0205, - GL_GEQUAL = 0x0206, - GL_ALWAYS = 0x0207, - GL_DEPTH_TEST = 0x0B71, - GL_DEPTH_BITS = 0x0D56, - GL_DEPTH_CLEAR_VALUE = 0x0B73, - GL_DEPTH_FUNC = 0x0B74, - GL_DEPTH_RANGE = 0x0B70, - GL_DEPTH_WRITEMASK = 0x0B72, - GL_DEPTH_COMPONENT = 0x1902, - - // Lighting - GL_LIGHTING = 0x0B50, - GL_LIGHT0 = 0x4000, - GL_LIGHT1 = 0x4001, - GL_LIGHT2 = 0x4002, - GL_LIGHT3 = 0x4003, - GL_LIGHT4 = 0x4004, - GL_LIGHT5 = 0x4005, - GL_LIGHT6 = 0x4006, - GL_LIGHT7 = 0x4007, - GL_SPOT_EXPONENT = 0x1205, - GL_SPOT_CUTOFF = 0x1206, - GL_CONSTANT_ATTENUATION = 0x1207, - GL_LINEAR_ATTENUATION = 0x1208, - GL_QUADRATIC_ATTENUATION = 0x1209, - GL_AMBIENT = 0x1200, - GL_DIFFUSE = 0x1201, - GL_SPECULAR = 0x1202, - GL_SHININESS = 0x1601, - GL_EMISSION = 0x1600, - GL_POSITION = 0x1203, - GL_SPOT_DIRECTION = 0x1204, - GL_AMBIENT_AND_DIFFUSE = 0x1602, - GL_COLOR_INDEXES = 0x1603, - GL_LIGHT_MODEL_TWO_SIDE = 0x0B52, - GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51, - GL_LIGHT_MODEL_AMBIENT = 0x0B53, - GL_FRONT_AND_BACK = 0x0408, - GL_SHADE_MODEL = 0x0B54, - GL_FLAT = 0x1D00, - GL_SMOOTH = 0x1D01, - GL_COLOR_MATERIAL = 0x0B57, - GL_COLOR_MATERIAL_FACE = 0x0B55, - GL_COLOR_MATERIAL_PARAMETER = 0x0B56, - GL_NORMALIZE = 0x0BA1, - - // User clipping planes - GL_CLIP_PLANE0 = 0x3000, - GL_CLIP_PLANE1 = 0x3001, - GL_CLIP_PLANE2 = 0x3002, - GL_CLIP_PLANE3 = 0x3003, - GL_CLIP_PLANE4 = 0x3004, - GL_CLIP_PLANE5 = 0x3005, - - // Accumulation buffer - GL_ACCUM_RED_BITS = 0x0D58, - GL_ACCUM_GREEN_BITS = 0x0D59, - GL_ACCUM_BLUE_BITS = 0x0D5A, - GL_ACCUM_ALPHA_BITS = 0x0D5B, - GL_ACCUM_CLEAR_VALUE = 0x0B80, - GL_ACCUM = 0x0100, - GL_ADD = 0x0104, - GL_LOAD = 0x0101, - GL_MULT = 0x0103, - GL_RETURN = 0x0102, - - // Alpha testing - GL_ALPHA_TEST = 0x0BC0, - GL_ALPHA_TEST_REF = 0x0BC2, - GL_ALPHA_TEST_FUNC = 0x0BC1, - - // Blending - GL_BLEND = 0x0BE2, - GL_BLEND_SRC = 0x0BE1, - GL_BLEND_DST = 0x0BE0, - GL_ZERO = 0x0, - GL_ONE = 0x1, - GL_SRC_COLOR = 0x0300, - GL_ONE_MINUS_SRC_COLOR = 0x0301, - GL_SRC_ALPHA = 0x0302, - GL_ONE_MINUS_SRC_ALPHA = 0x0303, - GL_DST_ALPHA = 0x0304, - GL_ONE_MINUS_DST_ALPHA = 0x0305, - GL_DST_COLOR = 0x0306, - GL_ONE_MINUS_DST_COLOR = 0x0307, - GL_SRC_ALPHA_SATURATE = 0x0308, - - // Render Mode - GL_FEEDBACK = 0x1C01, - GL_RENDER = 0x1C00, - GL_SELECT = 0x1C02, - - // Feedback - GL_2D = 0x0600, - GL_3D = 0x0601, - GL_3D_COLOR = 0x0602, - GL_3D_COLOR_TEXTURE = 0x0603, - GL_4D_COLOR_TEXTURE = 0x0604, - GL_POINT_TOKEN = 0x0701, - GL_LINE_TOKEN = 0x0702, - GL_LINE_RESET_TOKEN = 0x0707, - GL_POLYGON_TOKEN = 0x0703, - GL_BITMAP_TOKEN = 0x0704, - GL_DRAW_PIXEL_TOKEN = 0x0705, - GL_COPY_PIXEL_TOKEN = 0x0706, - GL_PASS_THROUGH_TOKEN = 0x0700, - GL_FEEDBACK_BUFFER_POINTER = 0x0DF0, - GL_FEEDBACK_BUFFER_SIZE = 0x0DF1, - GL_FEEDBACK_BUFFER_TYPE = 0x0DF2, - - // Selection - GL_SELECTION_BUFFER_POINTER = 0x0DF3, - GL_SELECTION_BUFFER_SIZE = 0x0DF4, - - // Fog - GL_FOG = 0x0B60, - GL_FOG_MODE = 0x0B65, - GL_FOG_DENSITY = 0x0B62, - GL_FOG_COLOR = 0x0B66, - GL_FOG_INDEX = 0x0B61, - GL_FOG_START = 0x0B63, - GL_FOG_END = 0x0B64, - GL_LINEAR = 0x2601, - GL_EXP = 0x0800, - GL_EXP2 = 0x0801, - - // Logic Ops - GL_LOGIC_OP = 0x0BF1, - GL_INDEX_LOGIC_OP = 0x0BF1, - GL_COLOR_LOGIC_OP = 0x0BF2, - GL_LOGIC_OP_MODE = 0x0BF0, - GL_CLEAR = 0x1500, - GL_SET = 0x150F, - GL_COPY = 0x1503, - GL_COPY_INVERTED = 0x150C, - GL_NOOP = 0x1505, - GL_INVERT = 0x150A, - GL_AND = 0x1501, - GL_NAND = 0x150E, - GL_OR = 0x1507, - GL_NOR = 0x1508, - GL_XOR = 0x1506, - GL_EQUIV = 0x1509, - GL_AND_REVERSE = 0x1502, - GL_AND_INVERTED = 0x1504, - GL_OR_REVERSE = 0x150B, - GL_OR_INVERTED = 0x150D, - - // Stencil - GL_STENCIL_TEST = 0x0B90, - GL_STENCIL_WRITEMASK = 0x0B98, - GL_STENCIL_BITS = 0x0D57, - GL_STENCIL_FUNC = 0x0B92, - GL_STENCIL_VALUE_MASK = 0x0B93, - GL_STENCIL_REF = 0x0B97, - GL_STENCIL_FAIL = 0x0B94, - GL_STENCIL_PASS_DEPTH_PASS = 0x0B96, - GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95, - GL_STENCIL_CLEAR_VALUE = 0x0B91, - GL_STENCIL_INDEX = 0x1901, - GL_KEEP = 0x1E00, - GL_REPLACE = 0x1E01, - GL_INCR = 0x1E02, - GL_DECR = 0x1E03, - - // Buffers, Pixel Drawing/Reading - GL_NONE = 0x0, - GL_LEFT = 0x0406, - GL_RIGHT = 0x0407, - GL_FRONT_LEFT = 0x0400, - GL_FRONT_RIGHT = 0x0401, - GL_BACK_LEFT = 0x0402, - GL_BACK_RIGHT = 0x0403, - GL_AUX0 = 0x0409, - GL_AUX1 = 0x040A, - GL_AUX2 = 0x040B, - GL_AUX3 = 0x040C, - GL_COLOR_INDEX = 0x1900, - GL_RED = 0x1903, - GL_GREEN = 0x1904, - GL_BLUE = 0x1905, - GL_ALPHA = 0x1906, - GL_LUMINANCE = 0x1909, - GL_LUMINANCE_ALPHA = 0x190A, - GL_ALPHA_BITS = 0x0D55, - GL_RED_BITS = 0x0D52, - GL_GREEN_BITS = 0x0D53, - GL_BLUE_BITS = 0x0D54, - GL_INDEX_BITS = 0x0D51, - GL_SUBPIXEL_BITS = 0x0D50, - GL_AUX_BUFFERS = 0x0C00, - GL_READ_BUFFER = 0x0C02, - GL_DRAW_BUFFER = 0x0C01, - GL_DOUBLEBUFFER = 0x0C32, - GL_STEREO = 0x0C33, - GL_BITMAP = 0x1A00, - GL_COLOR = 0x1800, - GL_DEPTH = 0x1801, - GL_STENCIL = 0x1802, - GL_DITHER = 0x0BD0, - GL_RGB = 0x1907, - GL_RGBA = 0x1908, - - // Implementation limits - GL_MAX_LIST_NESTING = 0x0B31, - GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35, - GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36, - GL_MAX_NAME_STACK_DEPTH = 0x0D37, - GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38, - GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39, - GL_MAX_EVAL_ORDER = 0x0D30, - GL_MAX_LIGHTS = 0x0D31, - GL_MAX_CLIP_PLANES = 0x0D32, - GL_MAX_TEXTURE_SIZE = 0x0D33, - GL_MAX_PIXEL_MAP_TABLE = 0x0D34, - GL_MAX_VIEWPORT_DIMS = 0x0D3A, - GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B, - - // Gets - GL_ATTRIB_STACK_DEPTH = 0x0BB0, - GL_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1, - GL_COLOR_CLEAR_VALUE = 0x0C22, - GL_COLOR_WRITEMASK = 0x0C23, - GL_CURRENT_INDEX = 0x0B01, - GL_CURRENT_COLOR = 0x0B00, - GL_CURRENT_NORMAL = 0x0B02, - GL_CURRENT_RASTER_COLOR = 0x0B04, - GL_CURRENT_RASTER_DISTANCE = 0x0B09, - GL_CURRENT_RASTER_INDEX = 0x0B05, - GL_CURRENT_RASTER_POSITION = 0x0B07, - GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06, - GL_CURRENT_RASTER_POSITION_VALID = 0x0B08, - GL_CURRENT_TEXTURE_COORDS = 0x0B03, - GL_INDEX_CLEAR_VALUE = 0x0C20, - GL_INDEX_MODE = 0x0C30, - GL_INDEX_WRITEMASK = 0x0C21, - GL_MODELVIEW_MATRIX = 0x0BA6, - GL_MODELVIEW_STACK_DEPTH = 0x0BA3, - GL_NAME_STACK_DEPTH = 0x0D70, - GL_PROJECTION_MATRIX = 0x0BA7, - GL_PROJECTION_STACK_DEPTH = 0x0BA4, - GL_RENDER_MODE = 0x0C40, - GL_RGBA_MODE = 0x0C31, - GL_TEXTURE_MATRIX = 0x0BA8, - GL_TEXTURE_STACK_DEPTH = 0x0BA5, - GL_VIEWPORT = 0x0BA2, - - // Evaluators - GL_AUTO_NORMAL = 0x0D80, - GL_MAP1_COLOR_4 = 0x0D90, - GL_MAP1_GRID_DOMAIN = 0x0DD0, - GL_MAP1_GRID_SEGMENTS = 0x0DD1, - GL_MAP1_INDEX = 0x0D91, - GL_MAP1_NORMAL = 0x0D92, - GL_MAP1_TEXTURE_COORD_1 = 0x0D93, - GL_MAP1_TEXTURE_COORD_2 = 0x0D94, - GL_MAP1_TEXTURE_COORD_3 = 0x0D95, - GL_MAP1_TEXTURE_COORD_4 = 0x0D96, - GL_MAP1_VERTEX_3 = 0x0D97, - GL_MAP1_VERTEX_4 = 0x0D98, - GL_MAP2_COLOR_4 = 0x0DB0, - GL_MAP2_GRID_DOMAIN = 0x0DD2, - GL_MAP2_GRID_SEGMENTS = 0x0DD3, - GL_MAP2_INDEX = 0x0DB1, - GL_MAP2_NORMAL = 0x0DB2, - GL_MAP2_TEXTURE_COORD_1 = 0x0DB3, - GL_MAP2_TEXTURE_COORD_2 = 0x0DB4, - GL_MAP2_TEXTURE_COORD_3 = 0x0DB5, - GL_MAP2_TEXTURE_COORD_4 = 0x0DB6, - GL_MAP2_VERTEX_3 = 0x0DB7, - GL_MAP2_VERTEX_4 = 0x0DB8, - GL_COEFF = 0x0A00, - GL_DOMAIN = 0x0A02, - GL_ORDER = 0x0A01, - - // Hints - GL_FOG_HINT = 0x0C54, - GL_LINE_SMOOTH_HINT = 0x0C52, - GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50, - GL_POINT_SMOOTH_HINT = 0x0C51, - GL_POLYGON_SMOOTH_HINT = 0x0C53, - GL_DONT_CARE = 0x1100, - GL_FASTEST = 0x1101, - GL_NICEST = 0x1102, - - // Scissor box - GL_SCISSOR_TEST = 0x0C11, - GL_SCISSOR_BOX = 0x0C10, - - // Pixel Mode / Transfer - GL_MAP_COLOR = 0x0D10, - GL_MAP_STENCIL = 0x0D11, - GL_INDEX_SHIFT = 0x0D12, - GL_INDEX_OFFSET = 0x0D13, - GL_RED_SCALE = 0x0D14, - GL_RED_BIAS = 0x0D15, - GL_GREEN_SCALE = 0x0D18, - GL_GREEN_BIAS = 0x0D19, - GL_BLUE_SCALE = 0x0D1A, - GL_BLUE_BIAS = 0x0D1B, - GL_ALPHA_SCALE = 0x0D1C, - GL_ALPHA_BIAS = 0x0D1D, - GL_DEPTH_SCALE = 0x0D1E, - GL_DEPTH_BIAS = 0x0D1F, - GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1, - GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0, - GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2, - GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3, - GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4, - GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5, - GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6, - GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7, - GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8, - GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9, - GL_PIXEL_MAP_S_TO_S = 0x0C71, - GL_PIXEL_MAP_I_TO_I = 0x0C70, - GL_PIXEL_MAP_I_TO_R = 0x0C72, - GL_PIXEL_MAP_I_TO_G = 0x0C73, - GL_PIXEL_MAP_I_TO_B = 0x0C74, - GL_PIXEL_MAP_I_TO_A = 0x0C75, - GL_PIXEL_MAP_R_TO_R = 0x0C76, - GL_PIXEL_MAP_G_TO_G = 0x0C77, - GL_PIXEL_MAP_B_TO_B = 0x0C78, - GL_PIXEL_MAP_A_TO_A = 0x0C79, - GL_PACK_ALIGNMENT = 0x0D05, - GL_PACK_LSB_FIRST = 0x0D01, - GL_PACK_ROW_LENGTH = 0x0D02, - GL_PACK_SKIP_PIXELS = 0x0D04, - GL_PACK_SKIP_ROWS = 0x0D03, - GL_PACK_SWAP_BYTES = 0x0D00, - GL_UNPACK_ALIGNMENT = 0x0CF5, - GL_UNPACK_LSB_FIRST = 0x0CF1, - GL_UNPACK_ROW_LENGTH = 0x0CF2, - GL_UNPACK_SKIP_PIXELS = 0x0CF4, - GL_UNPACK_SKIP_ROWS = 0x0CF3, - GL_UNPACK_SWAP_BYTES = 0x0CF0, - GL_ZOOM_X = 0x0D16, - GL_ZOOM_Y = 0x0D17, - - // Texture mapping - GL_TEXTURE_ENV = 0x2300, - GL_TEXTURE_ENV_MODE = 0x2200, - GL_TEXTURE_1D = 0x0DE0, - GL_TEXTURE_2D = 0x0DE1, - GL_TEXTURE_WRAP_S = 0x2802, - GL_TEXTURE_WRAP_T = 0x2803, - GL_TEXTURE_MAG_FILTER = 0x2800, - GL_TEXTURE_MIN_FILTER = 0x2801, - GL_TEXTURE_ENV_COLOR = 0x2201, - GL_TEXTURE_GEN_S = 0x0C60, - GL_TEXTURE_GEN_T = 0x0C61, - GL_TEXTURE_GEN_MODE = 0x2500, - GL_TEXTURE_BORDER_COLOR = 0x1004, - GL_TEXTURE_WIDTH = 0x1000, - GL_TEXTURE_HEIGHT = 0x1001, - GL_TEXTURE_BORDER = 0x1005, - GL_TEXTURE_COMPONENTS = 0x1003, - GL_TEXTURE_RED_SIZE = 0x805C, - GL_TEXTURE_GREEN_SIZE = 0x805D, - GL_TEXTURE_BLUE_SIZE = 0x805E, - GL_TEXTURE_ALPHA_SIZE = 0x805F, - GL_TEXTURE_LUMINANCE_SIZE = 0x8060, - GL_TEXTURE_INTENSITY_SIZE = 0x8061, - GL_NEAREST_MIPMAP_NEAREST = 0x2700, - GL_NEAREST_MIPMAP_LINEAR = 0x2702, - GL_LINEAR_MIPMAP_NEAREST = 0x2701, - GL_LINEAR_MIPMAP_LINEAR = 0x2703, - GL_OBJECT_LINEAR = 0x2401, - GL_OBJECT_PLANE = 0x2501, - GL_EYE_LINEAR = 0x2400, - GL_EYE_PLANE = 0x2502, - GL_SPHERE_MAP = 0x2402, - GL_DECAL = 0x2101, - GL_MODULATE = 0x2100, - GL_NEAREST = 0x2600, - GL_REPEAT = 0x2901, - GL_CLAMP = 0x2900, - GL_S = 0x2000, - GL_T = 0x2001, - GL_R = 0x2002, - GL_Q = 0x2003, - GL_TEXTURE_GEN_R = 0x0C62, - GL_TEXTURE_GEN_Q = 0x0C63, - - // Utility - GL_VENDOR = 0x1F00, - GL_RENDERER = 0x1F01, - GL_VERSION = 0x1F02, - GL_EXTENSIONS = 0x1F03, - - // Errors - GL_NO_ERROR = 0x0, - GL_INVALID_VALUE = 0x0501, - GL_INVALID_ENUM = 0x0500, - GL_INVALID_OPERATION = 0x0502, - GL_STACK_OVERFLOW = 0x0503, - GL_STACK_UNDERFLOW = 0x0504, - GL_OUT_OF_MEMORY = 0x0505, -} - -// glPush/PopAttrib bits -enum : GLuint -{ - GL_CURRENT_BIT = 0x00000001, - GL_POINT_BIT = 0x00000002, - GL_LINE_BIT = 0x00000004, - GL_POLYGON_BIT = 0x00000008, - GL_POLYGON_STIPPLE_BIT = 0x00000010, - GL_PIXEL_MODE_BIT = 0x00000020, - GL_LIGHTING_BIT = 0x00000040, - GL_FOG_BIT = 0x00000080, - GL_DEPTH_BUFFER_BIT = 0x00000100, - GL_ACCUM_BUFFER_BIT = 0x00000200, - GL_STENCIL_BUFFER_BIT = 0x00000400, - GL_VIEWPORT_BIT = 0x00000800, - GL_TRANSFORM_BIT = 0x00001000, - GL_ENABLE_BIT = 0x00002000, - GL_COLOR_BUFFER_BIT = 0x00004000, - GL_HINT_BIT = 0x00008000, - GL_EVAL_BIT = 0x00010000, - GL_LIST_BIT = 0x00020000, - GL_TEXTURE_BIT = 0x00040000, - GL_SCISSOR_BIT = 0x00080000, - GL_ALL_ATTRIB_BITS = 0x000FFFFF, -} - -// gl 1.1 -enum : GLenum -{ -GL_PROXY_TEXTURE_1D = 0x8063, -GL_PROXY_TEXTURE_2D = 0x8064, -GL_TEXTURE_PRIORITY = 0x8066, -GL_TEXTURE_RESIDENT = 0x8067, -GL_TEXTURE_BINDING_1D = 0x8068, -GL_TEXTURE_BINDING_2D = 0x8069, -GL_TEXTURE_INTERNAL_FORMAT = 0x1003, -GL_ALPHA4 = 0x803B, -GL_ALPHA8 = 0x803C, -GL_ALPHA12 = 0x803D, -GL_ALPHA16 = 0x803E, -GL_LUMINANCE4 = 0x803F, -GL_LUMINANCE8 = 0x8040, -GL_LUMINANCE12 = 0x8041, -GL_LUMINANCE16 = 0x8042, -GL_LUMINANCE4_ALPHA4 = 0x8043, -GL_LUMINANCE6_ALPHA2 = 0x8044, -GL_LUMINANCE8_ALPHA8 = 0x8045, -GL_LUMINANCE12_ALPHA4 = 0x8046, -GL_LUMINANCE12_ALPHA12 = 0x8047, -GL_LUMINANCE16_ALPHA16 = 0x8048, -GL_INTENSITY = 0x8049, -GL_INTENSITY4 = 0x804A, -GL_INTENSITY8 = 0x804B, -GL_INTENSITY12 = 0x804C, -GL_INTENSITY16 = 0x804D, -GL_R3_G3_B2 = 0x2A10, -GL_RGB4 = 0x804F, -GL_RGB5 = 0x8050, -GL_RGB8 = 0x8051, -GL_RGB10 = 0x8052, -GL_RGB12 = 0x8053, -GL_RGB16 = 0x8054, -GL_RGBA2 = 0x8055, -GL_RGBA4 = 0x8056, -GL_RGB5_A1 = 0x8057, -GL_RGBA8 = 0x8058, -GL_RGB10_A2 = 0x8059, -GL_RGBA12 = 0x805A, -GL_RGBA16 = 0x805B, -} - -enum : GLuint -{ - GL_CLIENT_PIXEL_STORE_BIT = 0x00000001, - GL_CLIENT_VERTEX_ARRAY_BIT = 0x00000002, - GL_ALL_CLIENT_ATTRIB_BITS = 0xFFFFFFFF, - GL_CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF, -} - -// gl 1.2 -enum : GLenum -{ - GL_RESCALE_NORMAL = 0x803A, - GL_CLAMP_TO_EDGE = 0x812F, - GL_MAX_ELEMENTS_VERTICES = 0x80E8, - GL_MAX_ELEMENTS_INDICES = 0x80E9, - GL_BGR = 0x80E0, - GL_BGRA = 0x80E1, - GL_UNSIGNED_BYTE_3_3_2 = 0x8032, - GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362, - GL_UNSIGNED_SHORT_5_6_5 = 0x8363, - GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364, - GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033, - GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365, - GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034, - GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366, - GL_UNSIGNED_INT_8_8_8_8 = 0x8035, - GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367, - GL_UNSIGNED_INT_10_10_10_2 = 0x8036, - GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368, - GL_LIGHT_MODEL_COLOR_CONTROL = 0x81F8, - GL_SINGLE_COLOR = 0x81F9, - GL_SEPARATE_SPECULAR_COLOR = 0x81FA, - GL_TEXTURE_MIN_LOD = 0x813A, - GL_TEXTURE_MAX_LOD = 0x813B, - GL_TEXTURE_BASE_LEVEL = 0x813C, - GL_TEXTURE_MAX_LEVEL = 0x813D, - GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12, - GL_SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13, - GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22, - GL_SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23, - GL_ALIASED_POINT_SIZE_RANGE = 0x846D, - GL_ALIASED_LINE_WIDTH_RANGE = 0x846E, - GL_PACK_SKIP_IMAGES = 0x806B, - GL_PACK_IMAGE_HEIGHT = 0x806C, - GL_UNPACK_SKIP_IMAGES = 0x806D, - GL_UNPACK_IMAGE_HEIGHT = 0x806E, - GL_TEXTURE_3D = 0x806F, - GL_PROXY_TEXTURE_3D = 0x8070, - GL_TEXTURE_DEPTH = 0x8071, - GL_TEXTURE_WRAP_R = 0x8072, - GL_MAX_3D_TEXTURE_SIZE = 0x8073, - GL_TEXTURE_BINDING_3D = 0x806A, -} - -// gl 1.3 -enum : GLenum -{ - GL_TEXTURE0 = 0x84C0, - GL_TEXTURE1 = 0x84C1, - GL_TEXTURE2 = 0x84C2, - GL_TEXTURE3 = 0x84C3, - GL_TEXTURE4 = 0x84C4, - GL_TEXTURE5 = 0x84C5, - GL_TEXTURE6 = 0x84C6, - GL_TEXTURE7 = 0x84C7, - GL_TEXTURE8 = 0x84C8, - GL_TEXTURE9 = 0x84C9, - GL_TEXTURE10 = 0x84CA, - GL_TEXTURE11 = 0x84CB, - GL_TEXTURE12 = 0x84CC, - GL_TEXTURE13 = 0x84CD, - GL_TEXTURE14 = 0x84CE, - GL_TEXTURE15 = 0x84CF, - GL_TEXTURE16 = 0x84D0, - GL_TEXTURE17 = 0x84D1, - GL_TEXTURE18 = 0x84D2, - GL_TEXTURE19 = 0x84D3, - GL_TEXTURE20 = 0x84D4, - GL_TEXTURE21 = 0x84D5, - GL_TEXTURE22 = 0x84D6, - GL_TEXTURE23 = 0x84D7, - GL_TEXTURE24 = 0x84D8, - GL_TEXTURE25 = 0x84D9, - GL_TEXTURE26 = 0x84DA, - GL_TEXTURE27 = 0x84DB, - GL_TEXTURE28 = 0x84DC, - GL_TEXTURE29 = 0x84DD, - GL_TEXTURE30 = 0x84DE, - GL_TEXTURE31 = 0x84DF, - GL_ACTIVE_TEXTURE = 0x84E0, - GL_CLIENT_ACTIVE_TEXTURE = 0x84E1, - GL_MAX_TEXTURE_UNITS = 0x84E2, - GL_NORMAL_MAP = 0x8511, - GL_REFLECTION_MAP = 0x8512, - GL_TEXTURE_CUBE_MAP = 0x8513, - GL_TEXTURE_BINDING_CUBE_MAP = 0x8514, - GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515, - GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516, - GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517, - GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518, - GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519, - GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A, - GL_PROXY_TEXTURE_CUBE_MAP = 0x851B, - GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C, - GL_COMPRESSED_ALPHA = 0x84E9, - GL_COMPRESSED_LUMINANCE = 0x84EA, - GL_COMPRESSED_LUMINANCE_ALPHA = 0x84EB, - GL_COMPRESSED_INTENSITY = 0x84EC, - GL_COMPRESSED_RGB = 0x84ED, - GL_COMPRESSED_RGBA = 0x84EE, - GL_TEXTURE_COMPRESSION_HINT = 0x84EF, - GL_TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0, - GL_TEXTURE_COMPRESSED = 0x86A1, - GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2, - GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3, - GL_MULTISAMPLE = 0x809D, - GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E, - GL_SAMPLE_ALPHA_TO_ONE = 0x809F, - GL_SAMPLE_COVERAGE = 0x80A0, - GL_SAMPLE_BUFFERS = 0x80A8, - GL_SAMPLES = 0x80A9, - GL_SAMPLE_COVERAGE_VALUE = 0x80AA, - GL_SAMPLE_COVERAGE_INVERT = 0x80AB, - GL_MULTISAMPLE_BIT = 0x20000000, - GL_TRANSPOSE_MODELVIEW_MATRIX = 0x84E3, - GL_TRANSPOSE_PROJECTION_MATRIX = 0x84E4, - GL_TRANSPOSE_TEXTURE_MATRIX = 0x84E5, - GL_TRANSPOSE_COLOR_MATRIX = 0x84E6, - GL_COMBINE = 0x8570, - GL_COMBINE_RGB = 0x8571, - GL_COMBINE_ALPHA = 0x8572, - GL_SOURCE0_RGB = 0x8580, - GL_SOURCE1_RGB = 0x8581, - GL_SOURCE2_RGB = 0x8582, - GL_SOURCE0_ALPHA = 0x8588, - GL_SOURCE1_ALPHA = 0x8589, - GL_SOURCE2_ALPHA = 0x858A, - GL_OPERAND0_RGB = 0x8590, - GL_OPERAND1_RGB = 0x8591, - GL_OPERAND2_RGB = 0x8592, - GL_OPERAND0_ALPHA = 0x8598, - GL_OPERAND1_ALPHA = 0x8599, - GL_OPERAND2_ALPHA = 0x859A, - GL_RGB_SCALE = 0x8573, - GL_ADD_SIGNED = 0x8574, - GL_INTERPOLATE = 0x8575, - GL_SUBTRACT = 0x84E7, - GL_CONSTANT = 0x8576, - GL_PRIMARY_COLOR = 0x8577, - GL_PREVIOUS = 0x8578, - GL_DOT3_RGB = 0x86AE, - GL_DOT3_RGBA = 0x86AF, - GL_CLAMP_TO_BORDER = 0x812D, -} - -// gl 1.4 -enum : GLenum -{ - GL_BLEND_DST_RGB = 0x80C8, - GL_BLEND_SRC_RGB = 0x80C9, - GL_BLEND_DST_ALPHA = 0x80CA, - GL_BLEND_SRC_ALPHA = 0x80CB, - GL_POINT_SIZE_MIN = 0x8126, - GL_POINT_SIZE_MAX = 0x8127, - GL_POINT_FADE_THRESHOLD_SIZE = 0x8128, - GL_POINT_DISTANCE_ATTENUATION = 0x8129, - GL_GENERATE_MIPMAP = 0x8191, - GL_GENERATE_MIPMAP_HINT = 0x8192, - GL_DEPTH_COMPONENT16 = 0x81A5, - GL_DEPTH_COMPONENT24 = 0x81A6, - GL_DEPTH_COMPONENT32 = 0x81A7, - GL_MIRRORED_REPEAT = 0x8370, - GL_FOG_COORDINATE_SOURCE = 0x8450, - GL_FOG_COORDINATE = 0x8451, - GL_FRAGMENT_DEPTH = 0x8452, - GL_CURRENT_FOG_COORDINATE = 0x8453, - GL_FOG_COORDINATE_ARRAY_TYPE = 0x8454, - GL_FOG_COORDINATE_ARRAY_STRIDE = 0x8455, - GL_FOG_COORDINATE_ARRAY_POINTER = 0x8456, - GL_FOG_COORDINATE_ARRAY = 0x8457, - GL_COLOR_SUM = 0x8458, - GL_CURRENT_SECONDARY_COLOR = 0x8459, - GL_SECONDARY_COLOR_ARRAY_SIZE = 0x845A, - GL_SECONDARY_COLOR_ARRAY_TYPE = 0x845B, - GL_SECONDARY_COLOR_ARRAY_STRIDE = 0x845C, - GL_SECONDARY_COLOR_ARRAY_POINTER = 0x845D, - GL_SECONDARY_COLOR_ARRAY = 0x845E, - GL_MAX_TEXTURE_LOD_BIAS = 0x84FD, - GL_TEXTURE_FILTER_CONTROL = 0x8500, - GL_TEXTURE_LOD_BIAS = 0x8501, - GL_INCR_WRAP = 0x8507, - GL_DECR_WRAP = 0x8508, - GL_TEXTURE_DEPTH_SIZE = 0x884A, - GL_DEPTH_TEXTURE_MODE = 0x884B, - GL_TEXTURE_COMPARE_MODE = 0x884C, - GL_TEXTURE_COMPARE_FUNC = 0x884D, - GL_COMPARE_R_TO_TEXTURE = 0x884E, - GL_CONSTANT_COLOR = 0x8001, - GL_ONE_MINUS_CONSTANT_COLOR = 0x8002, - GL_CONSTANT_ALPHA = 0x8003, - GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004, - GL_BLEND_COLOR = 0x8005, - GL_FUNC_ADD = 0x8006, - GL_MIN = 0x8007, - GL_MAX = 0x8008, - GL_BLEND_EQUATION = 0x8009, - GL_FUNC_SUBTRACT = 0x800A, - GL_FUNC_REVERSE_SUBTRACT = 0x800B, -} - -// gl 1.5 -enum : GLenum -{ - GL_BUFFER_SIZE = 0x8764, - GL_BUFFER_USAGE = 0x8765, - GL_QUERY_COUNTER_BITS = 0x8864, - GL_CURRENT_QUERY = 0x8865, - GL_QUERY_RESULT = 0x8866, - GL_QUERY_RESULT_AVAILABLE = 0x8867, - GL_ARRAY_BUFFER = 0x8892, - GL_ELEMENT_ARRAY_BUFFER = 0x8893, - GL_ARRAY_BUFFER_BINDING = 0x8894, - GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895, - GL_VERTEX_ARRAY_BUFFER_BINDING = 0x8896, - GL_NORMAL_ARRAY_BUFFER_BINDING = 0x8897, - GL_COLOR_ARRAY_BUFFER_BINDING = 0x8898, - GL_INDEX_ARRAY_BUFFER_BINDING = 0x8899, - GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A, - GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B, - GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C, - GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D, - GL_WEIGHT_ARRAY_BUFFER_BINDING = 0x889E, - GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F, - GL_READ_ONLY = 0x88B8, - GL_WRITE_ONLY = 0x88B9, - GL_READ_WRITE = 0x88BA, - GL_BUFFER_ACCESS = 0x88BB, - GL_BUFFER_MAPPED = 0x88BC, - GL_BUFFER_MAP_POINTER = 0x88BD, - GL_STREAM_DRAW = 0x88E0, - GL_STREAM_READ = 0x88E1, - GL_STREAM_COPY = 0x88E2, - GL_STATIC_DRAW = 0x88E4, - GL_STATIC_READ = 0x88E5, - GL_STATIC_COPY = 0x88E6, - GL_DYNAMIC_DRAW = 0x88E8, - GL_DYNAMIC_READ = 0x88E9, - GL_DYNAMIC_COPY = 0x88EA, - GL_SAMPLES_PASSED = 0x8914, - GL_FOG_COORD_SRC = GL_FOG_COORDINATE_SOURCE, - GL_FOG_COORD = GL_FOG_COORDINATE, - GL_CURRENT_FOG_COORD = GL_CURRENT_FOG_COORDINATE, - GL_FOG_COORD_ARRAY_TYPE = GL_FOG_COORDINATE_ARRAY_TYPE, - GL_FOG_COORD_ARRAY_STRIDE = GL_FOG_COORDINATE_ARRAY_STRIDE, - GL_FOG_COORD_ARRAY_POINTER = GL_FOG_COORDINATE_ARRAY_POINTER, - GL_FOG_COORD_ARRAY = GL_FOG_COORDINATE_ARRAY, - GL_FOG_COORD_ARRAY_BUFFER_BINDING = GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING, - GL_SRC0_RGB = GL_SOURCE0_RGB, - GL_SRC1_RGB = GL_SOURCE1_RGB, - GL_SRC2_RGB = GL_SOURCE2_RGB, - GL_SRC0_ALPHA = GL_SOURCE0_ALPHA, - GL_SRC1_ALPHA = GL_SOURCE1_ALPHA, - GL_SRC2_ALPHA = GL_SOURCE2_ALPHA, -} - -// gl 2.0 -enum : GLenum -{ - GL_BLEND_EQUATION_RGB = 0x8009, - GL_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622, - GL_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623, - GL_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624, - GL_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625, - GL_CURRENT_VERTEX_ATTRIB = 0x8626, - GL_VERTEX_PROGRAM_POINT_SIZE = 0x8642, - GL_VERTEX_PROGRAM_TWO_SIDE = 0x8643, - GL_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645, - GL_STENCIL_BACK_FUNC = 0x8800, - GL_STENCIL_BACK_FAIL = 0x8801, - GL_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802, - GL_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803, - GL_MAX_DRAW_BUFFERS = 0x8824, - GL_DRAW_BUFFER0 = 0x8825, - GL_DRAW_BUFFER1 = 0x8826, - GL_DRAW_BUFFER2 = 0x8827, - GL_DRAW_BUFFER3 = 0x8828, - GL_DRAW_BUFFER4 = 0x8829, - GL_DRAW_BUFFER5 = 0x882A, - GL_DRAW_BUFFER6 = 0x882B, - GL_DRAW_BUFFER7 = 0x882C, - GL_DRAW_BUFFER8 = 0x882D, - GL_DRAW_BUFFER9 = 0x882E, - GL_DRAW_BUFFER10 = 0x882F, - GL_DRAW_BUFFER11 = 0x8830, - GL_DRAW_BUFFER12 = 0x8831, - GL_DRAW_BUFFER13 = 0x8832, - GL_DRAW_BUFFER14 = 0x8833, - GL_DRAW_BUFFER15 = 0x8834, - GL_BLEND_EQUATION_ALPHA = 0x883D, - GL_POINT_SPRITE = 0x8861, - GL_COORD_REPLACE = 0x8862, - GL_MAX_VERTEX_ATTRIBS = 0x8869, - GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A, - GL_MAX_TEXTURE_COORDS = 0x8871, - GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872, - GL_FRAGMENT_SHADER = 0x8B30, - GL_VERTEX_SHADER = 0x8B31, - GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49, - GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A, - GL_MAX_VARYING_FLOATS = 0x8B4B, - GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C, - GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS= 0x8B4D, - GL_SHADER_TYPE = 0x8B4F, - GL_FLOAT_VEC2 = 0x8B50, - GL_FLOAT_VEC3 = 0x8B51, - GL_FLOAT_VEC4 = 0x8B52, - GL_INT_VEC2 = 0x8B53, - GL_INT_VEC3 = 0x8B54, - GL_INT_VEC4 = 0x8B55, - GL_BOOL = 0x8B56, - GL_BOOL_VEC2 = 0x8B57, - GL_BOOL_VEC3 = 0x8B58, - GL_BOOL_VEC4 = 0x8B59, - GL_FLOAT_MAT2 = 0x8B5A, - GL_FLOAT_MAT3 = 0x8B5B, - GL_FLOAT_MAT4 = 0x8B5C, - GL_SAMPLER_1D = 0x8B5D, - GL_SAMPLER_2D = 0x8B5E, - GL_SAMPLER_3D = 0x8B5F, - GL_SAMPLER_CUBE = 0x8B60, - GL_SAMPLER_1D_SHADOW = 0x8B61, - GL_SAMPLER_2D_SHADOW = 0x8B62, - GL_DELETE_STATUS = 0x8B80, - GL_COMPILE_STATUS = 0x8B81, - GL_LINK_STATUS = 0x8B82, - GL_VALIDATE_STATUS = 0x8B83, - GL_INFO_LOG_LENGTH = 0x8B84, - GL_ATTACHED_SHADERS = 0x8B85, - GL_ACTIVE_UNIFORMS = 0x8B86, - GL_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87, - GL_SHADER_SOURCE_LENGTH = 0x8B88, - GL_ACTIVE_ATTRIBUTES = 0x8B89, - GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A, - GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B, - GL_SHADING_LANGUAGE_VERSION = 0x8B8C, - GL_CURRENT_PROGRAM = 0x8B8D, - GL_POINT_SPRITE_COORD_ORIGIN = 0x8CA0, - GL_LOWER_LEFT = 0x8CA1, - GL_UPPER_LEFT = 0x8CA2, - GL_STENCIL_BACK_REF = 0x8CA3, - GL_STENCIL_BACK_VALUE_MASK = 0x8CA4, - GL_STENCIL_BACK_WRITEMASK = 0x8CA5, -} - -// gl 2.1 -enum : GLenum -{ - GL_CURRENT_RASTER_SECONDARY_COLOR = 0x845F, - GL_PIXEL_PACK_BUFFER = 0x88EB, - GL_PIXEL_UNPACK_BUFFER = 0x88EC, - GL_PIXEL_PACK_BUFFER_BINDING = 0x88ED, - GL_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF, - GL_FLOAT_MAT2x3 = 0x8B65, - GL_FLOAT_MAT2x4 = 0x8B66, - GL_FLOAT_MAT3x2 = 0x8B67, - GL_FLOAT_MAT3x4 = 0x8B68, - GL_FLOAT_MAT4x2 = 0x8B69, - GL_FLOAT_MAT4x3 = 0x8B6A, - GL_SRGB = 0x8C40, - GL_SRGB8 = 0x8C41, - GL_SRGB_ALPHA = 0x8C42, - GL_SRGB8_ALPHA8 = 0x8C43, - GL_SLUMINANCE_ALPHA = 0x8C44, - GL_SLUMINANCE8_ALPHA8 = 0x8C45, - GL_SLUMINANCE = 0x8C46, - GL_SLUMINANCE8 = 0x8C47, - GL_COMPRESSED_SRGB = 0x8C48, - GL_COMPRESSED_SRGB_ALPHA = 0x8C49, - GL_COMPRESSED_SLUMINANCE = 0x8C4A, - GL_COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B, -} - -// gl 3.0 -enum : GLenum -{ - GL_MAX_CLIP_DISTANCES = GL_MAX_CLIP_PLANES, - GL_CLIP_DISTANCE5 = GL_CLIP_PLANE5, - GL_CLIP_DISTANCE1 = GL_CLIP_PLANE1, - GL_CLIP_DISTANCE3 = GL_CLIP_PLANE3, - GL_COMPARE_REF_TO_TEXTURE = 0x884E, // Must be same as GL_COMPARE_R_TO_TEXTURE_ARB from GL_ARB_shadow - GL_CLIP_DISTANCE0 = GL_CLIP_PLANE0, - GL_CLIP_DISTANCE4 = GL_CLIP_PLANE4, - GL_CLIP_DISTANCE2 = GL_CLIP_PLANE2, - GL_MAX_VARYING_COMPONENTS = GL_MAX_VARYING_FLOATS, - GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x0001, - GL_MAJOR_VERSION = 0x821B, - GL_MINOR_VERSION = 0x821C, - GL_NUM_EXTENSIONS = 0x821D, - GL_CONTEXT_FLAGS = 0x821E, - GL_DEPTH_BUFFER = 0x8223, - GL_STENCIL_BUFFER = 0x8224, - GL_COMPRESSED_RED = 0x8225, - GL_COMPRESSED_RG = 0x8226, - GL_RGBA32F = 0x8814, - GL_RGB32F = 0x8815, - GL_RGBA16F = 0x881A, - GL_RGB16F = 0x881B, - GL_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD, - GL_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF, - GL_MIN_PROGRAM_TEXEL_OFFSET = 0x8904, - GL_MAX_PROGRAM_TEXEL_OFFSET = 0x8905, - GL_CLAMP_VERTEX_COLOR = 0x891A, - GL_CLAMP_FRAGMENT_COLOR = 0x891B, - GL_CLAMP_READ_COLOR = 0x891C, - GL_FIXED_ONLY = 0x891D, - GL_TEXTURE_RED_TYPE = 0x8C10, - GL_TEXTURE_GREEN_TYPE = 0x8C11, - GL_TEXTURE_BLUE_TYPE = 0x8C12, - GL_TEXTURE_ALPHA_TYPE = 0x8C13, - GL_TEXTURE_LUMINANCE_TYPE = 0x8C14, - GL_TEXTURE_INTENSITY_TYPE = 0x8C15, - GL_TEXTURE_DEPTH_TYPE = 0x8C16, - GL_UNSIGNED_NORMALIZED = 0x8C17, - GL_TEXTURE_1D_ARRAY = 0x8C18, - GL_PROXY_TEXTURE_1D_ARRAY = 0x8C19, - GL_TEXTURE_2D_ARRAY = 0x8C1A, - GL_PROXY_TEXTURE_2D_ARRAY = 0x8C1B, - GL_TEXTURE_BINDING_1D_ARRAY = 0x8C1C, - GL_TEXTURE_BINDING_2D_ARRAY = 0x8C1D, - GL_R11F_G11F_B10F = 0x8C3A, - GL_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B, - GL_RGB9_E5 = 0x8C3D, - GL_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E, - GL_TEXTURE_SHARED_SIZE = 0x8C3F, - GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76, - GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F, - GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80, - GL_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83, - GL_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84, - GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85, - GL_PRIMITIVES_GENERATED = 0x8C87, - GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88, - GL_RASTERIZER_DISCARD = 0x8C89, - GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A, - GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B, - GL_INTERLEAVED_ATTRIBS = 0x8C8C, - GL_SEPARATE_ATTRIBS = 0x8C8D, - GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E, - GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F, - GL_RGBA32UI = 0x8D70, - GL_RGB32UI = 0x8D71, - GL_RGBA16UI = 0x8D76, - GL_RGB16UI = 0x8D77, - GL_RGBA8UI = 0x8D7C, - GL_RGB8UI = 0x8D7D, - GL_RGBA32I = 0x8D82, - GL_RGB32I = 0x8D83, - GL_RGBA16I = 0x8D88, - GL_RGB16I = 0x8D89, - GL_RGBA8I = 0x8D8E, - GL_RGB8I = 0x8D8F, - GL_RED_INTEGER = 0x8D94, - GL_GREEN_INTEGER = 0x8D95, - GL_BLUE_INTEGER = 0x8D96, - GL_ALPHA_INTEGER = 0x8D97, - GL_RGB_INTEGER = 0x8D98, - GL_RGBA_INTEGER = 0x8D99, - GL_BGR_INTEGER = 0x8D9A, - GL_BGRA_INTEGER = 0x8D9B, - GL_SAMPLER_1D_ARRAY = 0x8DC0, - GL_SAMPLER_2D_ARRAY = 0x8DC1, - GL_SAMPLER_1D_ARRAY_SHADOW = 0x8DC3, - GL_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4, - GL_SAMPLER_CUBE_SHADOW = 0x8DC5, - GL_UNSIGNED_INT_VEC2 = 0x8DC6, - GL_UNSIGNED_INT_VEC3 = 0x8DC7, - GL_UNSIGNED_INT_VEC4 = 0x8DC8, - GL_INT_SAMPLER_1D = 0x8DC9, - GL_INT_SAMPLER_2D = 0x8DCA, - GL_INT_SAMPLER_3D = 0x8DCB, - GL_INT_SAMPLER_CUBE = 0x8DCC, - GL_INT_SAMPLER_1D_ARRAY = 0x8DCE, - GL_INT_SAMPLER_2D_ARRAY = 0x8DCF, - GL_UNSIGNED_INT_SAMPLER_1D = 0x8DD1, - GL_UNSIGNED_INT_SAMPLER_2D = 0x8DD2, - GL_UNSIGNED_INT_SAMPLER_3D = 0x8DD3, - GL_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4, - GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6, - GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7, - GL_QUERY_WAIT = 0x8E13, - GL_QUERY_NO_WAIT = 0x8E14, - GL_QUERY_BY_REGION_WAIT = 0x8E15, - GL_QUERY_BY_REGION_NO_WAIT = 0x8E16, -} - -// gl 3.1 -enum : GLenum -{ - GL_TEXTURE_RECTANGLE = 0x84F5, - GL_TEXTURE_BINDING_RECTANGLE = 0x84F6, - GL_PROXY_TEXTURE_RECTANGLE = 0x84F7, - GL_MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8, - GL_SAMPLER_2D_RECT = 0x8B63, - GL_SAMPLER_2D_RECT_SHADOW = 0x8B64, - GL_TEXTURE_BUFFER = 0x8C2A, - GL_MAX_TEXTURE_BUFFER_SIZE = 0x8C2B, - GL_TEXTURE_BINDING_BUFFER = 0x8C2C, - GL_TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D, - GL_TEXTURE_BUFFER_FORMAT = 0x8C2E, - GL_SAMPLER_BUFFER = 0x8DC2, - GL_INT_SAMPLER_2D_RECT = 0x8DCD, - GL_INT_SAMPLER_BUFFER = 0x8DD0, - GL_UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5, - GL_UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8, - GL_RED_SNORM = 0x8F90, - GL_RG_SNORM = 0x8F91, - GL_RGB_SNORM = 0x8F92, - GL_RGBA_SNORM = 0x8F93, - GL_R8_SNORM = 0x8F94, - GL_RG8_SNORM = 0x8F95, - GL_RGB8_SNORM = 0x8F96, - GL_RGBA8_SNORM = 0x8F97, - GL_R16_SNORM = 0x8F98, - GL_RG16_SNORM = 0x8F99, - GL_RGB16_SNORM = 0x8F9A, - GL_RGBA16_SNORM = 0x8F9B, - GL_SIGNED_NORMALIZED = 0x8F9C, - GL_PRIMITIVE_RESTART = 0x8F9D, - GL_PRIMITIVE_RESTART_INDEX = 0x8F9E, - GL_BUFFER_ACCESS_FLAGS = 0x911F, - GL_BUFFER_MAP_LENGTH = 0x9120, - GL_BUFFER_MAP_OFFSET = 0x9121, -} - -// gl 3.2 -alias long GLint64; - -enum : int -{ - GL_CONTEXT_CORE_PROFILE_BIT = 0x00000001, - GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002, -} - -enum : GLenum -{ - GL_LINES_ADJACENCY = 0x000A, - GL_LINE_STRIP_ADJACENCY = 0x000B, - GL_TRIANGLES_ADJACENCY = 0x000C, - GL_TRIANGLE_STRIP_ADJACENCY = 0x000D, - GL_PROGRAM_POINT_SIZE = 0x8642, - GL_GEOMETRY_VERTICES_OUT = 0x8916, - GL_GEOMETRY_INPUT_TYPE = 0x8917, - GL_GEOMETRY_OUTPUT_TYPE = 0x8918, - GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29, - GL_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7, - GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8, - GL_GEOMETRY_SHADER = 0x8DD9, - GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF, - GL_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0, - GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1, - GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122, - GL_MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123, - GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124, - GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125, - GL_CONTEXT_PROFILE_MASK = 0x9126, -} - -// gl 3.3 -enum : GLenum -{ - GL_VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE, - GL_ANY_SAMPLES_PASSED = 0x8C2F, - GL_TEXTURE_SWIZZLE_R = 0x8E42, - GL_TEXTURE_SWIZZLE_G = 0x8E43, - GL_TEXTURE_SWIZZLE_B = 0x8E44, - GL_TEXTURE_SWIZZLE_A = 0x8E45, - GL_TEXTURE_SWIZZLE_RGBA = 0x8E46, - GL_RGB10_A2UI = 0x906F, -} - -// gl 4.0 -enum : GLenum -{ - GL_GEOMETRY_SHADER_INVOCATIONS = 0x887F, - GL_SAMPLE_SHADING = 0x8C36, - GL_MIN_SAMPLE_SHADING_VALUE = 0x8C37, - GL_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A, - GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B, - GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C, - GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D, - GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E, - GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F, - GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS = 0x8F9F, - GL_TEXTURE_CUBE_MAP_ARRAY = 0x9009, - GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A, - GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B, - GL_SAMPLER_CUBE_MAP_ARRAY = 0x900C, - GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D, - GL_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E, - GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F, +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.opengl.gltypes; + +/* +The ExtensionState enum is used internally by the extension loader and externally +via the DerelictGL interface. It probably belongs more appropriately in gl.d, but +in order to avoid the extloader module having a dependency on the gl module, it lives +here instead. +*/ +enum GLExtensionState +{ + Loaded, + FailedToLoad, + DriverUnsupported, + DerelictUnsupported, +} + +alias uint GLenum; +alias ubyte GLboolean; +alias uint GLbitfield; +alias void GLvoid; +alias byte GLbyte; +alias short GLshort; +alias int GLint; +alias ubyte GLubyte; +alias ushort GLushort; +alias uint GLuint; +alias int GLsizei; +alias float GLfloat; +alias float GLclampf; +alias double GLdouble; +alias double GLclampd; +alias char GLchar; +alias ptrdiff_t GLintptr; +alias ptrdiff_t GLsizeiptr; + +// Boolean values +enum : GLboolean +{ + GL_FALSE = 0x0, + GL_TRUE = 0x1, +} + +enum : GLenum +{ + // Data types + GL_BYTE = 0x1400, + GL_UNSIGNED_BYTE = 0x1401, + GL_SHORT = 0x1402, + GL_UNSIGNED_SHORT = 0x1403, + GL_INT = 0x1404, + GL_UNSIGNED_INT = 0x1405, + GL_FLOAT = 0x1406, + GL_DOUBLE = 0x140A, + GL_2_BYTES = 0x1407, + GL_3_BYTES = 0x1408, + GL_4_BYTES = 0x1409, + + // Primitives + GL_POINTS = 0x0000, + GL_LINES = 0x0001, + GL_LINE_LOOP = 0x0002, + GL_LINE_STRIP = 0x0003, + GL_TRIANGLES = 0x0004, + GL_TRIANGLE_STRIP = 0x0005, + GL_TRIANGLE_FAN = 0x0006, + GL_QUADS = 0x0007, + GL_QUAD_STRIP = 0x0008, + GL_POLYGON = 0x0009, + + // Vertex Arrays + GL_VERTEX_ARRAY = 0x8074, + GL_NORMAL_ARRAY = 0x8075, + GL_COLOR_ARRAY = 0x8076, + GL_INDEX_ARRAY = 0x8077, + GL_TEXTURE_COORD_ARRAY = 0x8078, + GL_EDGE_FLAG_ARRAY = 0x8079, + GL_VERTEX_ARRAY_SIZE = 0x807A, + GL_VERTEX_ARRAY_TYPE = 0x807B, + GL_VERTEX_ARRAY_STRIDE = 0x807C, + GL_NORMAL_ARRAY_TYPE = 0x807E, + GL_NORMAL_ARRAY_STRIDE = 0x807F, + GL_COLOR_ARRAY_SIZE = 0x8081, + GL_COLOR_ARRAY_TYPE = 0x8082, + GL_COLOR_ARRAY_STRIDE = 0x8083, + GL_INDEX_ARRAY_TYPE = 0x8085, + GL_INDEX_ARRAY_STRIDE = 0x8086, + GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088, + GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089, + GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A, + GL_EDGE_FLAG_ARRAY_STRIDE = 0x808C, + GL_VERTEX_ARRAY_POINTER = 0x808E, + GL_NORMAL_ARRAY_POINTER = 0x808F, + GL_COLOR_ARRAY_POINTER = 0x8090, + GL_INDEX_ARRAY_POINTER = 0x8091, + GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092, + GL_EDGE_FLAG_ARRAY_POINTER = 0x8093, + GL_V2F = 0x2A20, + GL_V3F = 0x2A21, + GL_C4UB_V2F = 0x2A22, + GL_C4UB_V3F = 0x2A23, + GL_C3F_V3F = 0x2A24, + GL_N3F_V3F = 0x2A25, + GL_C4F_N3F_V3F = 0x2A26, + GL_T2F_V3F = 0x2A27, + GL_T4F_V4F = 0x2A28, + GL_T2F_C4UB_V3F = 0x2A29, + GL_T2F_C3F_V3F = 0x2A2A, + GL_T2F_N3F_V3F = 0x2A2B, + GL_T2F_C4F_N3F_V3F = 0x2A2C, + GL_T4F_C4F_N3F_V4F = 0x2A2D, + + // Matrix Mode + GL_MATRIX_MODE = 0x0BA0, + GL_MODELVIEW = 0x1700, + GL_PROJECTION = 0x1701, + GL_TEXTURE = 0x1702, + + // Points + GL_POINT_SMOOTH = 0x0B10, + GL_POINT_SIZE = 0x0B11, + GL_POINT_SIZE_GRANULARITY = 0x0B13, + GL_POINT_SIZE_RANGE = 0x0B12, + + // Lines + GL_LINE_SMOOTH = 0x0B20, + GL_LINE_STIPPLE = 0x0B24, + GL_LINE_STIPPLE_PATTERN = 0x0B25, + GL_LINE_STIPPLE_REPEAT = 0x0B26, + GL_LINE_WIDTH = 0x0B21, + GL_LINE_WIDTH_GRANULARITY = 0x0B23, + GL_LINE_WIDTH_RANGE = 0x0B22, + + // Polygons + GL_POINT = 0x1B00, + GL_LINE = 0x1B01, + GL_FILL = 0x1B02, + GL_CW = 0x0900, + GL_CCW = 0x0901, + GL_FRONT = 0x0404, + GL_BACK = 0x0405, + GL_POLYGON_MODE = 0x0B40, + GL_POLYGON_SMOOTH = 0x0B41, + GL_POLYGON_STIPPLE = 0x0B42, + GL_EDGE_FLAG = 0x0B43, + GL_CULL_FACE = 0x0B44, + GL_CULL_FACE_MODE = 0x0B45, + GL_FRONT_FACE = 0x0B46, + GL_POLYGON_OFFSET_FACTOR = 0x8038, + GL_POLYGON_OFFSET_UNITS = 0x2A00, + GL_POLYGON_OFFSET_POINT = 0x2A01, + GL_POLYGON_OFFSET_LINE = 0x2A02, + GL_POLYGON_OFFSET_FILL = 0x8037, + + // Display Lists + GL_COMPILE = 0x1300, + GL_COMPILE_AND_EXECUTE = 0x1301, + GL_LIST_BASE = 0x0B32, + GL_LIST_INDEX = 0x0B33, + GL_LIST_MODE = 0x0B30, + + // Depth buffer + GL_NEVER = 0x0200, + GL_LESS = 0x0201, + GL_EQUAL = 0x0202, + GL_LEQUAL = 0x0203, + GL_GREATER = 0x0204, + GL_NOTEQUAL = 0x0205, + GL_GEQUAL = 0x0206, + GL_ALWAYS = 0x0207, + GL_DEPTH_TEST = 0x0B71, + GL_DEPTH_BITS = 0x0D56, + GL_DEPTH_CLEAR_VALUE = 0x0B73, + GL_DEPTH_FUNC = 0x0B74, + GL_DEPTH_RANGE = 0x0B70, + GL_DEPTH_WRITEMASK = 0x0B72, + GL_DEPTH_COMPONENT = 0x1902, + + // Lighting + GL_LIGHTING = 0x0B50, + GL_LIGHT0 = 0x4000, + GL_LIGHT1 = 0x4001, + GL_LIGHT2 = 0x4002, + GL_LIGHT3 = 0x4003, + GL_LIGHT4 = 0x4004, + GL_LIGHT5 = 0x4005, + GL_LIGHT6 = 0x4006, + GL_LIGHT7 = 0x4007, + GL_SPOT_EXPONENT = 0x1205, + GL_SPOT_CUTOFF = 0x1206, + GL_CONSTANT_ATTENUATION = 0x1207, + GL_LINEAR_ATTENUATION = 0x1208, + GL_QUADRATIC_ATTENUATION = 0x1209, + GL_AMBIENT = 0x1200, + GL_DIFFUSE = 0x1201, + GL_SPECULAR = 0x1202, + GL_SHININESS = 0x1601, + GL_EMISSION = 0x1600, + GL_POSITION = 0x1203, + GL_SPOT_DIRECTION = 0x1204, + GL_AMBIENT_AND_DIFFUSE = 0x1602, + GL_COLOR_INDEXES = 0x1603, + GL_LIGHT_MODEL_TWO_SIDE = 0x0B52, + GL_LIGHT_MODEL_LOCAL_VIEWER = 0x0B51, + GL_LIGHT_MODEL_AMBIENT = 0x0B53, + GL_FRONT_AND_BACK = 0x0408, + GL_SHADE_MODEL = 0x0B54, + GL_FLAT = 0x1D00, + GL_SMOOTH = 0x1D01, + GL_COLOR_MATERIAL = 0x0B57, + GL_COLOR_MATERIAL_FACE = 0x0B55, + GL_COLOR_MATERIAL_PARAMETER = 0x0B56, + GL_NORMALIZE = 0x0BA1, + + // User clipping planes + GL_CLIP_PLANE0 = 0x3000, + GL_CLIP_PLANE1 = 0x3001, + GL_CLIP_PLANE2 = 0x3002, + GL_CLIP_PLANE3 = 0x3003, + GL_CLIP_PLANE4 = 0x3004, + GL_CLIP_PLANE5 = 0x3005, + + // Accumulation buffer + GL_ACCUM_RED_BITS = 0x0D58, + GL_ACCUM_GREEN_BITS = 0x0D59, + GL_ACCUM_BLUE_BITS = 0x0D5A, + GL_ACCUM_ALPHA_BITS = 0x0D5B, + GL_ACCUM_CLEAR_VALUE = 0x0B80, + GL_ACCUM = 0x0100, + GL_ADD = 0x0104, + GL_LOAD = 0x0101, + GL_MULT = 0x0103, + GL_RETURN = 0x0102, + + // Alpha testing + GL_ALPHA_TEST = 0x0BC0, + GL_ALPHA_TEST_REF = 0x0BC2, + GL_ALPHA_TEST_FUNC = 0x0BC1, + + // Blending + GL_BLEND = 0x0BE2, + GL_BLEND_SRC = 0x0BE1, + GL_BLEND_DST = 0x0BE0, + GL_ZERO = 0x0, + GL_ONE = 0x1, + GL_SRC_COLOR = 0x0300, + GL_ONE_MINUS_SRC_COLOR = 0x0301, + GL_SRC_ALPHA = 0x0302, + GL_ONE_MINUS_SRC_ALPHA = 0x0303, + GL_DST_ALPHA = 0x0304, + GL_ONE_MINUS_DST_ALPHA = 0x0305, + GL_DST_COLOR = 0x0306, + GL_ONE_MINUS_DST_COLOR = 0x0307, + GL_SRC_ALPHA_SATURATE = 0x0308, + + // Render Mode + GL_FEEDBACK = 0x1C01, + GL_RENDER = 0x1C00, + GL_SELECT = 0x1C02, + + // Feedback + GL_2D = 0x0600, + GL_3D = 0x0601, + GL_3D_COLOR = 0x0602, + GL_3D_COLOR_TEXTURE = 0x0603, + GL_4D_COLOR_TEXTURE = 0x0604, + GL_POINT_TOKEN = 0x0701, + GL_LINE_TOKEN = 0x0702, + GL_LINE_RESET_TOKEN = 0x0707, + GL_POLYGON_TOKEN = 0x0703, + GL_BITMAP_TOKEN = 0x0704, + GL_DRAW_PIXEL_TOKEN = 0x0705, + GL_COPY_PIXEL_TOKEN = 0x0706, + GL_PASS_THROUGH_TOKEN = 0x0700, + GL_FEEDBACK_BUFFER_POINTER = 0x0DF0, + GL_FEEDBACK_BUFFER_SIZE = 0x0DF1, + GL_FEEDBACK_BUFFER_TYPE = 0x0DF2, + + // Selection + GL_SELECTION_BUFFER_POINTER = 0x0DF3, + GL_SELECTION_BUFFER_SIZE = 0x0DF4, + + // Fog + GL_FOG = 0x0B60, + GL_FOG_MODE = 0x0B65, + GL_FOG_DENSITY = 0x0B62, + GL_FOG_COLOR = 0x0B66, + GL_FOG_INDEX = 0x0B61, + GL_FOG_START = 0x0B63, + GL_FOG_END = 0x0B64, + GL_LINEAR = 0x2601, + GL_EXP = 0x0800, + GL_EXP2 = 0x0801, + + // Logic Ops + GL_LOGIC_OP = 0x0BF1, + GL_INDEX_LOGIC_OP = 0x0BF1, + GL_COLOR_LOGIC_OP = 0x0BF2, + GL_LOGIC_OP_MODE = 0x0BF0, + GL_CLEAR = 0x1500, + GL_SET = 0x150F, + GL_COPY = 0x1503, + GL_COPY_INVERTED = 0x150C, + GL_NOOP = 0x1505, + GL_INVERT = 0x150A, + GL_AND = 0x1501, + GL_NAND = 0x150E, + GL_OR = 0x1507, + GL_NOR = 0x1508, + GL_XOR = 0x1506, + GL_EQUIV = 0x1509, + GL_AND_REVERSE = 0x1502, + GL_AND_INVERTED = 0x1504, + GL_OR_REVERSE = 0x150B, + GL_OR_INVERTED = 0x150D, + + // Stencil + GL_STENCIL_TEST = 0x0B90, + GL_STENCIL_WRITEMASK = 0x0B98, + GL_STENCIL_BITS = 0x0D57, + GL_STENCIL_FUNC = 0x0B92, + GL_STENCIL_VALUE_MASK = 0x0B93, + GL_STENCIL_REF = 0x0B97, + GL_STENCIL_FAIL = 0x0B94, + GL_STENCIL_PASS_DEPTH_PASS = 0x0B96, + GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95, + GL_STENCIL_CLEAR_VALUE = 0x0B91, + GL_STENCIL_INDEX = 0x1901, + GL_KEEP = 0x1E00, + GL_REPLACE = 0x1E01, + GL_INCR = 0x1E02, + GL_DECR = 0x1E03, + + // Buffers, Pixel Drawing/Reading + GL_NONE = 0x0, + GL_LEFT = 0x0406, + GL_RIGHT = 0x0407, + GL_FRONT_LEFT = 0x0400, + GL_FRONT_RIGHT = 0x0401, + GL_BACK_LEFT = 0x0402, + GL_BACK_RIGHT = 0x0403, + GL_AUX0 = 0x0409, + GL_AUX1 = 0x040A, + GL_AUX2 = 0x040B, + GL_AUX3 = 0x040C, + GL_COLOR_INDEX = 0x1900, + GL_RED = 0x1903, + GL_GREEN = 0x1904, + GL_BLUE = 0x1905, + GL_ALPHA = 0x1906, + GL_LUMINANCE = 0x1909, + GL_LUMINANCE_ALPHA = 0x190A, + GL_ALPHA_BITS = 0x0D55, + GL_RED_BITS = 0x0D52, + GL_GREEN_BITS = 0x0D53, + GL_BLUE_BITS = 0x0D54, + GL_INDEX_BITS = 0x0D51, + GL_SUBPIXEL_BITS = 0x0D50, + GL_AUX_BUFFERS = 0x0C00, + GL_READ_BUFFER = 0x0C02, + GL_DRAW_BUFFER = 0x0C01, + GL_DOUBLEBUFFER = 0x0C32, + GL_STEREO = 0x0C33, + GL_BITMAP = 0x1A00, + GL_COLOR = 0x1800, + GL_DEPTH = 0x1801, + GL_STENCIL = 0x1802, + GL_DITHER = 0x0BD0, + GL_RGB = 0x1907, + GL_RGBA = 0x1908, + + // Implementation limits + GL_MAX_LIST_NESTING = 0x0B31, + GL_MAX_ATTRIB_STACK_DEPTH = 0x0D35, + GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36, + GL_MAX_NAME_STACK_DEPTH = 0x0D37, + GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38, + GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39, + GL_MAX_EVAL_ORDER = 0x0D30, + GL_MAX_LIGHTS = 0x0D31, + GL_MAX_CLIP_PLANES = 0x0D32, + GL_MAX_TEXTURE_SIZE = 0x0D33, + GL_MAX_PIXEL_MAP_TABLE = 0x0D34, + GL_MAX_VIEWPORT_DIMS = 0x0D3A, + GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B, + + // Gets + GL_ATTRIB_STACK_DEPTH = 0x0BB0, + GL_CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1, + GL_COLOR_CLEAR_VALUE = 0x0C22, + GL_COLOR_WRITEMASK = 0x0C23, + GL_CURRENT_INDEX = 0x0B01, + GL_CURRENT_COLOR = 0x0B00, + GL_CURRENT_NORMAL = 0x0B02, + GL_CURRENT_RASTER_COLOR = 0x0B04, + GL_CURRENT_RASTER_DISTANCE = 0x0B09, + GL_CURRENT_RASTER_INDEX = 0x0B05, + GL_CURRENT_RASTER_POSITION = 0x0B07, + GL_CURRENT_RASTER_TEXTURE_COORDS = 0x0B06, + GL_CURRENT_RASTER_POSITION_VALID = 0x0B08, + GL_CURRENT_TEXTURE_COORDS = 0x0B03, + GL_INDEX_CLEAR_VALUE = 0x0C20, + GL_INDEX_MODE = 0x0C30, + GL_INDEX_WRITEMASK = 0x0C21, + GL_MODELVIEW_MATRIX = 0x0BA6, + GL_MODELVIEW_STACK_DEPTH = 0x0BA3, + GL_NAME_STACK_DEPTH = 0x0D70, + GL_PROJECTION_MATRIX = 0x0BA7, + GL_PROJECTION_STACK_DEPTH = 0x0BA4, + GL_RENDER_MODE = 0x0C40, + GL_RGBA_MODE = 0x0C31, + GL_TEXTURE_MATRIX = 0x0BA8, + GL_TEXTURE_STACK_DEPTH = 0x0BA5, + GL_VIEWPORT = 0x0BA2, + + // Evaluators + GL_AUTO_NORMAL = 0x0D80, + GL_MAP1_COLOR_4 = 0x0D90, + GL_MAP1_GRID_DOMAIN = 0x0DD0, + GL_MAP1_GRID_SEGMENTS = 0x0DD1, + GL_MAP1_INDEX = 0x0D91, + GL_MAP1_NORMAL = 0x0D92, + GL_MAP1_TEXTURE_COORD_1 = 0x0D93, + GL_MAP1_TEXTURE_COORD_2 = 0x0D94, + GL_MAP1_TEXTURE_COORD_3 = 0x0D95, + GL_MAP1_TEXTURE_COORD_4 = 0x0D96, + GL_MAP1_VERTEX_3 = 0x0D97, + GL_MAP1_VERTEX_4 = 0x0D98, + GL_MAP2_COLOR_4 = 0x0DB0, + GL_MAP2_GRID_DOMAIN = 0x0DD2, + GL_MAP2_GRID_SEGMENTS = 0x0DD3, + GL_MAP2_INDEX = 0x0DB1, + GL_MAP2_NORMAL = 0x0DB2, + GL_MAP2_TEXTURE_COORD_1 = 0x0DB3, + GL_MAP2_TEXTURE_COORD_2 = 0x0DB4, + GL_MAP2_TEXTURE_COORD_3 = 0x0DB5, + GL_MAP2_TEXTURE_COORD_4 = 0x0DB6, + GL_MAP2_VERTEX_3 = 0x0DB7, + GL_MAP2_VERTEX_4 = 0x0DB8, + GL_COEFF = 0x0A00, + GL_DOMAIN = 0x0A02, + GL_ORDER = 0x0A01, + + // Hints + GL_FOG_HINT = 0x0C54, + GL_LINE_SMOOTH_HINT = 0x0C52, + GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50, + GL_POINT_SMOOTH_HINT = 0x0C51, + GL_POLYGON_SMOOTH_HINT = 0x0C53, + GL_DONT_CARE = 0x1100, + GL_FASTEST = 0x1101, + GL_NICEST = 0x1102, + + // Scissor box + GL_SCISSOR_TEST = 0x0C11, + GL_SCISSOR_BOX = 0x0C10, + + // Pixel Mode / Transfer + GL_MAP_COLOR = 0x0D10, + GL_MAP_STENCIL = 0x0D11, + GL_INDEX_SHIFT = 0x0D12, + GL_INDEX_OFFSET = 0x0D13, + GL_RED_SCALE = 0x0D14, + GL_RED_BIAS = 0x0D15, + GL_GREEN_SCALE = 0x0D18, + GL_GREEN_BIAS = 0x0D19, + GL_BLUE_SCALE = 0x0D1A, + GL_BLUE_BIAS = 0x0D1B, + GL_ALPHA_SCALE = 0x0D1C, + GL_ALPHA_BIAS = 0x0D1D, + GL_DEPTH_SCALE = 0x0D1E, + GL_DEPTH_BIAS = 0x0D1F, + GL_PIXEL_MAP_S_TO_S_SIZE = 0x0CB1, + GL_PIXEL_MAP_I_TO_I_SIZE = 0x0CB0, + GL_PIXEL_MAP_I_TO_R_SIZE = 0x0CB2, + GL_PIXEL_MAP_I_TO_G_SIZE = 0x0CB3, + GL_PIXEL_MAP_I_TO_B_SIZE = 0x0CB4, + GL_PIXEL_MAP_I_TO_A_SIZE = 0x0CB5, + GL_PIXEL_MAP_R_TO_R_SIZE = 0x0CB6, + GL_PIXEL_MAP_G_TO_G_SIZE = 0x0CB7, + GL_PIXEL_MAP_B_TO_B_SIZE = 0x0CB8, + GL_PIXEL_MAP_A_TO_A_SIZE = 0x0CB9, + GL_PIXEL_MAP_S_TO_S = 0x0C71, + GL_PIXEL_MAP_I_TO_I = 0x0C70, + GL_PIXEL_MAP_I_TO_R = 0x0C72, + GL_PIXEL_MAP_I_TO_G = 0x0C73, + GL_PIXEL_MAP_I_TO_B = 0x0C74, + GL_PIXEL_MAP_I_TO_A = 0x0C75, + GL_PIXEL_MAP_R_TO_R = 0x0C76, + GL_PIXEL_MAP_G_TO_G = 0x0C77, + GL_PIXEL_MAP_B_TO_B = 0x0C78, + GL_PIXEL_MAP_A_TO_A = 0x0C79, + GL_PACK_ALIGNMENT = 0x0D05, + GL_PACK_LSB_FIRST = 0x0D01, + GL_PACK_ROW_LENGTH = 0x0D02, + GL_PACK_SKIP_PIXELS = 0x0D04, + GL_PACK_SKIP_ROWS = 0x0D03, + GL_PACK_SWAP_BYTES = 0x0D00, + GL_UNPACK_ALIGNMENT = 0x0CF5, + GL_UNPACK_LSB_FIRST = 0x0CF1, + GL_UNPACK_ROW_LENGTH = 0x0CF2, + GL_UNPACK_SKIP_PIXELS = 0x0CF4, + GL_UNPACK_SKIP_ROWS = 0x0CF3, + GL_UNPACK_SWAP_BYTES = 0x0CF0, + GL_ZOOM_X = 0x0D16, + GL_ZOOM_Y = 0x0D17, + + // Texture mapping + GL_TEXTURE_ENV = 0x2300, + GL_TEXTURE_ENV_MODE = 0x2200, + GL_TEXTURE_1D = 0x0DE0, + GL_TEXTURE_2D = 0x0DE1, + GL_TEXTURE_WRAP_S = 0x2802, + GL_TEXTURE_WRAP_T = 0x2803, + GL_TEXTURE_MAG_FILTER = 0x2800, + GL_TEXTURE_MIN_FILTER = 0x2801, + GL_TEXTURE_ENV_COLOR = 0x2201, + GL_TEXTURE_GEN_S = 0x0C60, + GL_TEXTURE_GEN_T = 0x0C61, + GL_TEXTURE_GEN_MODE = 0x2500, + GL_TEXTURE_BORDER_COLOR = 0x1004, + GL_TEXTURE_WIDTH = 0x1000, + GL_TEXTURE_HEIGHT = 0x1001, + GL_TEXTURE_BORDER = 0x1005, + GL_TEXTURE_COMPONENTS = 0x1003, + GL_TEXTURE_RED_SIZE = 0x805C, + GL_TEXTURE_GREEN_SIZE = 0x805D, + GL_TEXTURE_BLUE_SIZE = 0x805E, + GL_TEXTURE_ALPHA_SIZE = 0x805F, + GL_TEXTURE_LUMINANCE_SIZE = 0x8060, + GL_TEXTURE_INTENSITY_SIZE = 0x8061, + GL_NEAREST_MIPMAP_NEAREST = 0x2700, + GL_NEAREST_MIPMAP_LINEAR = 0x2702, + GL_LINEAR_MIPMAP_NEAREST = 0x2701, + GL_LINEAR_MIPMAP_LINEAR = 0x2703, + GL_OBJECT_LINEAR = 0x2401, + GL_OBJECT_PLANE = 0x2501, + GL_EYE_LINEAR = 0x2400, + GL_EYE_PLANE = 0x2502, + GL_SPHERE_MAP = 0x2402, + GL_DECAL = 0x2101, + GL_MODULATE = 0x2100, + GL_NEAREST = 0x2600, + GL_REPEAT = 0x2901, + GL_CLAMP = 0x2900, + GL_S = 0x2000, + GL_T = 0x2001, + GL_R = 0x2002, + GL_Q = 0x2003, + GL_TEXTURE_GEN_R = 0x0C62, + GL_TEXTURE_GEN_Q = 0x0C63, + + // Utility + GL_VENDOR = 0x1F00, + GL_RENDERER = 0x1F01, + GL_VERSION = 0x1F02, + GL_EXTENSIONS = 0x1F03, + + // Errors + GL_NO_ERROR = 0x0, + GL_INVALID_VALUE = 0x0501, + GL_INVALID_ENUM = 0x0500, + GL_INVALID_OPERATION = 0x0502, + GL_STACK_OVERFLOW = 0x0503, + GL_STACK_UNDERFLOW = 0x0504, + GL_OUT_OF_MEMORY = 0x0505, +} + +// glPush/PopAttrib bits +enum : GLuint +{ + GL_CURRENT_BIT = 0x00000001, + GL_POINT_BIT = 0x00000002, + GL_LINE_BIT = 0x00000004, + GL_POLYGON_BIT = 0x00000008, + GL_POLYGON_STIPPLE_BIT = 0x00000010, + GL_PIXEL_MODE_BIT = 0x00000020, + GL_LIGHTING_BIT = 0x00000040, + GL_FOG_BIT = 0x00000080, + GL_DEPTH_BUFFER_BIT = 0x00000100, + GL_ACCUM_BUFFER_BIT = 0x00000200, + GL_STENCIL_BUFFER_BIT = 0x00000400, + GL_VIEWPORT_BIT = 0x00000800, + GL_TRANSFORM_BIT = 0x00001000, + GL_ENABLE_BIT = 0x00002000, + GL_COLOR_BUFFER_BIT = 0x00004000, + GL_HINT_BIT = 0x00008000, + GL_EVAL_BIT = 0x00010000, + GL_LIST_BIT = 0x00020000, + GL_TEXTURE_BIT = 0x00040000, + GL_SCISSOR_BIT = 0x00080000, + GL_ALL_ATTRIB_BITS = 0x000FFFFF, +} + +// gl 1.1 +enum : GLenum +{ +GL_PROXY_TEXTURE_1D = 0x8063, +GL_PROXY_TEXTURE_2D = 0x8064, +GL_TEXTURE_PRIORITY = 0x8066, +GL_TEXTURE_RESIDENT = 0x8067, +GL_TEXTURE_BINDING_1D = 0x8068, +GL_TEXTURE_BINDING_2D = 0x8069, +GL_TEXTURE_INTERNAL_FORMAT = 0x1003, +GL_ALPHA4 = 0x803B, +GL_ALPHA8 = 0x803C, +GL_ALPHA12 = 0x803D, +GL_ALPHA16 = 0x803E, +GL_LUMINANCE4 = 0x803F, +GL_LUMINANCE8 = 0x8040, +GL_LUMINANCE12 = 0x8041, +GL_LUMINANCE16 = 0x8042, +GL_LUMINANCE4_ALPHA4 = 0x8043, +GL_LUMINANCE6_ALPHA2 = 0x8044, +GL_LUMINANCE8_ALPHA8 = 0x8045, +GL_LUMINANCE12_ALPHA4 = 0x8046, +GL_LUMINANCE12_ALPHA12 = 0x8047, +GL_LUMINANCE16_ALPHA16 = 0x8048, +GL_INTENSITY = 0x8049, +GL_INTENSITY4 = 0x804A, +GL_INTENSITY8 = 0x804B, +GL_INTENSITY12 = 0x804C, +GL_INTENSITY16 = 0x804D, +GL_R3_G3_B2 = 0x2A10, +GL_RGB4 = 0x804F, +GL_RGB5 = 0x8050, +GL_RGB8 = 0x8051, +GL_RGB10 = 0x8052, +GL_RGB12 = 0x8053, +GL_RGB16 = 0x8054, +GL_RGBA2 = 0x8055, +GL_RGBA4 = 0x8056, +GL_RGB5_A1 = 0x8057, +GL_RGBA8 = 0x8058, +GL_RGB10_A2 = 0x8059, +GL_RGBA12 = 0x805A, +GL_RGBA16 = 0x805B, +} + +enum : GLuint +{ + GL_CLIENT_PIXEL_STORE_BIT = 0x00000001, + GL_CLIENT_VERTEX_ARRAY_BIT = 0x00000002, + GL_ALL_CLIENT_ATTRIB_BITS = 0xFFFFFFFF, + GL_CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF, +} + +// gl 1.2 +enum : GLenum +{ + GL_RESCALE_NORMAL = 0x803A, + GL_CLAMP_TO_EDGE = 0x812F, + GL_MAX_ELEMENTS_VERTICES = 0x80E8, + GL_MAX_ELEMENTS_INDICES = 0x80E9, + GL_BGR = 0x80E0, + GL_BGRA = 0x80E1, + GL_UNSIGNED_BYTE_3_3_2 = 0x8032, + GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362, + GL_UNSIGNED_SHORT_5_6_5 = 0x8363, + GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364, + GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033, + GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365, + GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034, + GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366, + GL_UNSIGNED_INT_8_8_8_8 = 0x8035, + GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367, + GL_UNSIGNED_INT_10_10_10_2 = 0x8036, + GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368, + GL_LIGHT_MODEL_COLOR_CONTROL = 0x81F8, + GL_SINGLE_COLOR = 0x81F9, + GL_SEPARATE_SPECULAR_COLOR = 0x81FA, + GL_TEXTURE_MIN_LOD = 0x813A, + GL_TEXTURE_MAX_LOD = 0x813B, + GL_TEXTURE_BASE_LEVEL = 0x813C, + GL_TEXTURE_MAX_LEVEL = 0x813D, + GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12, + GL_SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13, + GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22, + GL_SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23, + GL_ALIASED_POINT_SIZE_RANGE = 0x846D, + GL_ALIASED_LINE_WIDTH_RANGE = 0x846E, + GL_PACK_SKIP_IMAGES = 0x806B, + GL_PACK_IMAGE_HEIGHT = 0x806C, + GL_UNPACK_SKIP_IMAGES = 0x806D, + GL_UNPACK_IMAGE_HEIGHT = 0x806E, + GL_TEXTURE_3D = 0x806F, + GL_PROXY_TEXTURE_3D = 0x8070, + GL_TEXTURE_DEPTH = 0x8071, + GL_TEXTURE_WRAP_R = 0x8072, + GL_MAX_3D_TEXTURE_SIZE = 0x8073, + GL_TEXTURE_BINDING_3D = 0x806A, +} + +// gl 1.3 +enum : GLenum +{ + GL_TEXTURE0 = 0x84C0, + GL_TEXTURE1 = 0x84C1, + GL_TEXTURE2 = 0x84C2, + GL_TEXTURE3 = 0x84C3, + GL_TEXTURE4 = 0x84C4, + GL_TEXTURE5 = 0x84C5, + GL_TEXTURE6 = 0x84C6, + GL_TEXTURE7 = 0x84C7, + GL_TEXTURE8 = 0x84C8, + GL_TEXTURE9 = 0x84C9, + GL_TEXTURE10 = 0x84CA, + GL_TEXTURE11 = 0x84CB, + GL_TEXTURE12 = 0x84CC, + GL_TEXTURE13 = 0x84CD, + GL_TEXTURE14 = 0x84CE, + GL_TEXTURE15 = 0x84CF, + GL_TEXTURE16 = 0x84D0, + GL_TEXTURE17 = 0x84D1, + GL_TEXTURE18 = 0x84D2, + GL_TEXTURE19 = 0x84D3, + GL_TEXTURE20 = 0x84D4, + GL_TEXTURE21 = 0x84D5, + GL_TEXTURE22 = 0x84D6, + GL_TEXTURE23 = 0x84D7, + GL_TEXTURE24 = 0x84D8, + GL_TEXTURE25 = 0x84D9, + GL_TEXTURE26 = 0x84DA, + GL_TEXTURE27 = 0x84DB, + GL_TEXTURE28 = 0x84DC, + GL_TEXTURE29 = 0x84DD, + GL_TEXTURE30 = 0x84DE, + GL_TEXTURE31 = 0x84DF, + GL_ACTIVE_TEXTURE = 0x84E0, + GL_CLIENT_ACTIVE_TEXTURE = 0x84E1, + GL_MAX_TEXTURE_UNITS = 0x84E2, + GL_NORMAL_MAP = 0x8511, + GL_REFLECTION_MAP = 0x8512, + GL_TEXTURE_CUBE_MAP = 0x8513, + GL_TEXTURE_BINDING_CUBE_MAP = 0x8514, + GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515, + GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516, + GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517, + GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518, + GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519, + GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A, + GL_PROXY_TEXTURE_CUBE_MAP = 0x851B, + GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C, + GL_COMPRESSED_ALPHA = 0x84E9, + GL_COMPRESSED_LUMINANCE = 0x84EA, + GL_COMPRESSED_LUMINANCE_ALPHA = 0x84EB, + GL_COMPRESSED_INTENSITY = 0x84EC, + GL_COMPRESSED_RGB = 0x84ED, + GL_COMPRESSED_RGBA = 0x84EE, + GL_TEXTURE_COMPRESSION_HINT = 0x84EF, + GL_TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0, + GL_TEXTURE_COMPRESSED = 0x86A1, + GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2, + GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3, + GL_MULTISAMPLE = 0x809D, + GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E, + GL_SAMPLE_ALPHA_TO_ONE = 0x809F, + GL_SAMPLE_COVERAGE = 0x80A0, + GL_SAMPLE_BUFFERS = 0x80A8, + GL_SAMPLES = 0x80A9, + GL_SAMPLE_COVERAGE_VALUE = 0x80AA, + GL_SAMPLE_COVERAGE_INVERT = 0x80AB, + GL_MULTISAMPLE_BIT = 0x20000000, + GL_TRANSPOSE_MODELVIEW_MATRIX = 0x84E3, + GL_TRANSPOSE_PROJECTION_MATRIX = 0x84E4, + GL_TRANSPOSE_TEXTURE_MATRIX = 0x84E5, + GL_TRANSPOSE_COLOR_MATRIX = 0x84E6, + GL_COMBINE = 0x8570, + GL_COMBINE_RGB = 0x8571, + GL_COMBINE_ALPHA = 0x8572, + GL_SOURCE0_RGB = 0x8580, + GL_SOURCE1_RGB = 0x8581, + GL_SOURCE2_RGB = 0x8582, + GL_SOURCE0_ALPHA = 0x8588, + GL_SOURCE1_ALPHA = 0x8589, + GL_SOURCE2_ALPHA = 0x858A, + GL_OPERAND0_RGB = 0x8590, + GL_OPERAND1_RGB = 0x8591, + GL_OPERAND2_RGB = 0x8592, + GL_OPERAND0_ALPHA = 0x8598, + GL_OPERAND1_ALPHA = 0x8599, + GL_OPERAND2_ALPHA = 0x859A, + GL_RGB_SCALE = 0x8573, + GL_ADD_SIGNED = 0x8574, + GL_INTERPOLATE = 0x8575, + GL_SUBTRACT = 0x84E7, + GL_CONSTANT = 0x8576, + GL_PRIMARY_COLOR = 0x8577, + GL_PREVIOUS = 0x8578, + GL_DOT3_RGB = 0x86AE, + GL_DOT3_RGBA = 0x86AF, + GL_CLAMP_TO_BORDER = 0x812D, +} + +// gl 1.4 +enum : GLenum +{ + GL_BLEND_DST_RGB = 0x80C8, + GL_BLEND_SRC_RGB = 0x80C9, + GL_BLEND_DST_ALPHA = 0x80CA, + GL_BLEND_SRC_ALPHA = 0x80CB, + GL_POINT_SIZE_MIN = 0x8126, + GL_POINT_SIZE_MAX = 0x8127, + GL_POINT_FADE_THRESHOLD_SIZE = 0x8128, + GL_POINT_DISTANCE_ATTENUATION = 0x8129, + GL_GENERATE_MIPMAP = 0x8191, + GL_GENERATE_MIPMAP_HINT = 0x8192, + GL_DEPTH_COMPONENT16 = 0x81A5, + GL_DEPTH_COMPONENT24 = 0x81A6, + GL_DEPTH_COMPONENT32 = 0x81A7, + GL_MIRRORED_REPEAT = 0x8370, + GL_FOG_COORDINATE_SOURCE = 0x8450, + GL_FOG_COORDINATE = 0x8451, + GL_FRAGMENT_DEPTH = 0x8452, + GL_CURRENT_FOG_COORDINATE = 0x8453, + GL_FOG_COORDINATE_ARRAY_TYPE = 0x8454, + GL_FOG_COORDINATE_ARRAY_STRIDE = 0x8455, + GL_FOG_COORDINATE_ARRAY_POINTER = 0x8456, + GL_FOG_COORDINATE_ARRAY = 0x8457, + GL_COLOR_SUM = 0x8458, + GL_CURRENT_SECONDARY_COLOR = 0x8459, + GL_SECONDARY_COLOR_ARRAY_SIZE = 0x845A, + GL_SECONDARY_COLOR_ARRAY_TYPE = 0x845B, + GL_SECONDARY_COLOR_ARRAY_STRIDE = 0x845C, + GL_SECONDARY_COLOR_ARRAY_POINTER = 0x845D, + GL_SECONDARY_COLOR_ARRAY = 0x845E, + GL_MAX_TEXTURE_LOD_BIAS = 0x84FD, + GL_TEXTURE_FILTER_CONTROL = 0x8500, + GL_TEXTURE_LOD_BIAS = 0x8501, + GL_INCR_WRAP = 0x8507, + GL_DECR_WRAP = 0x8508, + GL_TEXTURE_DEPTH_SIZE = 0x884A, + GL_DEPTH_TEXTURE_MODE = 0x884B, + GL_TEXTURE_COMPARE_MODE = 0x884C, + GL_TEXTURE_COMPARE_FUNC = 0x884D, + GL_COMPARE_R_TO_TEXTURE = 0x884E, + GL_CONSTANT_COLOR = 0x8001, + GL_ONE_MINUS_CONSTANT_COLOR = 0x8002, + GL_CONSTANT_ALPHA = 0x8003, + GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004, + GL_BLEND_COLOR = 0x8005, + GL_FUNC_ADD = 0x8006, + GL_MIN = 0x8007, + GL_MAX = 0x8008, + GL_BLEND_EQUATION = 0x8009, + GL_FUNC_SUBTRACT = 0x800A, + GL_FUNC_REVERSE_SUBTRACT = 0x800B, +} + +// gl 1.5 +enum : GLenum +{ + GL_BUFFER_SIZE = 0x8764, + GL_BUFFER_USAGE = 0x8765, + GL_QUERY_COUNTER_BITS = 0x8864, + GL_CURRENT_QUERY = 0x8865, + GL_QUERY_RESULT = 0x8866, + GL_QUERY_RESULT_AVAILABLE = 0x8867, + GL_ARRAY_BUFFER = 0x8892, + GL_ELEMENT_ARRAY_BUFFER = 0x8893, + GL_ARRAY_BUFFER_BINDING = 0x8894, + GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895, + GL_VERTEX_ARRAY_BUFFER_BINDING = 0x8896, + GL_NORMAL_ARRAY_BUFFER_BINDING = 0x8897, + GL_COLOR_ARRAY_BUFFER_BINDING = 0x8898, + GL_INDEX_ARRAY_BUFFER_BINDING = 0x8899, + GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A, + GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B, + GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C, + GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D, + GL_WEIGHT_ARRAY_BUFFER_BINDING = 0x889E, + GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F, + GL_READ_ONLY = 0x88B8, + GL_WRITE_ONLY = 0x88B9, + GL_READ_WRITE = 0x88BA, + GL_BUFFER_ACCESS = 0x88BB, + GL_BUFFER_MAPPED = 0x88BC, + GL_BUFFER_MAP_POINTER = 0x88BD, + GL_STREAM_DRAW = 0x88E0, + GL_STREAM_READ = 0x88E1, + GL_STREAM_COPY = 0x88E2, + GL_STATIC_DRAW = 0x88E4, + GL_STATIC_READ = 0x88E5, + GL_STATIC_COPY = 0x88E6, + GL_DYNAMIC_DRAW = 0x88E8, + GL_DYNAMIC_READ = 0x88E9, + GL_DYNAMIC_COPY = 0x88EA, + GL_SAMPLES_PASSED = 0x8914, + GL_FOG_COORD_SRC = GL_FOG_COORDINATE_SOURCE, + GL_FOG_COORD = GL_FOG_COORDINATE, + GL_CURRENT_FOG_COORD = GL_CURRENT_FOG_COORDINATE, + GL_FOG_COORD_ARRAY_TYPE = GL_FOG_COORDINATE_ARRAY_TYPE, + GL_FOG_COORD_ARRAY_STRIDE = GL_FOG_COORDINATE_ARRAY_STRIDE, + GL_FOG_COORD_ARRAY_POINTER = GL_FOG_COORDINATE_ARRAY_POINTER, + GL_FOG_COORD_ARRAY = GL_FOG_COORDINATE_ARRAY, + GL_FOG_COORD_ARRAY_BUFFER_BINDING = GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING, + GL_SRC0_RGB = GL_SOURCE0_RGB, + GL_SRC1_RGB = GL_SOURCE1_RGB, + GL_SRC2_RGB = GL_SOURCE2_RGB, + GL_SRC0_ALPHA = GL_SOURCE0_ALPHA, + GL_SRC1_ALPHA = GL_SOURCE1_ALPHA, + GL_SRC2_ALPHA = GL_SOURCE2_ALPHA, +} + +// gl 2.0 +enum : GLenum +{ + GL_BLEND_EQUATION_RGB = 0x8009, + GL_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622, + GL_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623, + GL_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624, + GL_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625, + GL_CURRENT_VERTEX_ATTRIB = 0x8626, + GL_VERTEX_PROGRAM_POINT_SIZE = 0x8642, + GL_VERTEX_PROGRAM_TWO_SIDE = 0x8643, + GL_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645, + GL_STENCIL_BACK_FUNC = 0x8800, + GL_STENCIL_BACK_FAIL = 0x8801, + GL_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802, + GL_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803, + GL_MAX_DRAW_BUFFERS = 0x8824, + GL_DRAW_BUFFER0 = 0x8825, + GL_DRAW_BUFFER1 = 0x8826, + GL_DRAW_BUFFER2 = 0x8827, + GL_DRAW_BUFFER3 = 0x8828, + GL_DRAW_BUFFER4 = 0x8829, + GL_DRAW_BUFFER5 = 0x882A, + GL_DRAW_BUFFER6 = 0x882B, + GL_DRAW_BUFFER7 = 0x882C, + GL_DRAW_BUFFER8 = 0x882D, + GL_DRAW_BUFFER9 = 0x882E, + GL_DRAW_BUFFER10 = 0x882F, + GL_DRAW_BUFFER11 = 0x8830, + GL_DRAW_BUFFER12 = 0x8831, + GL_DRAW_BUFFER13 = 0x8832, + GL_DRAW_BUFFER14 = 0x8833, + GL_DRAW_BUFFER15 = 0x8834, + GL_BLEND_EQUATION_ALPHA = 0x883D, + GL_POINT_SPRITE = 0x8861, + GL_COORD_REPLACE = 0x8862, + GL_MAX_VERTEX_ATTRIBS = 0x8869, + GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A, + GL_MAX_TEXTURE_COORDS = 0x8871, + GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872, + GL_FRAGMENT_SHADER = 0x8B30, + GL_VERTEX_SHADER = 0x8B31, + GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49, + GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A, + GL_MAX_VARYING_FLOATS = 0x8B4B, + GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C, + GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS= 0x8B4D, + GL_SHADER_TYPE = 0x8B4F, + GL_FLOAT_VEC2 = 0x8B50, + GL_FLOAT_VEC3 = 0x8B51, + GL_FLOAT_VEC4 = 0x8B52, + GL_INT_VEC2 = 0x8B53, + GL_INT_VEC3 = 0x8B54, + GL_INT_VEC4 = 0x8B55, + GL_BOOL = 0x8B56, + GL_BOOL_VEC2 = 0x8B57, + GL_BOOL_VEC3 = 0x8B58, + GL_BOOL_VEC4 = 0x8B59, + GL_FLOAT_MAT2 = 0x8B5A, + GL_FLOAT_MAT3 = 0x8B5B, + GL_FLOAT_MAT4 = 0x8B5C, + GL_SAMPLER_1D = 0x8B5D, + GL_SAMPLER_2D = 0x8B5E, + GL_SAMPLER_3D = 0x8B5F, + GL_SAMPLER_CUBE = 0x8B60, + GL_SAMPLER_1D_SHADOW = 0x8B61, + GL_SAMPLER_2D_SHADOW = 0x8B62, + GL_DELETE_STATUS = 0x8B80, + GL_COMPILE_STATUS = 0x8B81, + GL_LINK_STATUS = 0x8B82, + GL_VALIDATE_STATUS = 0x8B83, + GL_INFO_LOG_LENGTH = 0x8B84, + GL_ATTACHED_SHADERS = 0x8B85, + GL_ACTIVE_UNIFORMS = 0x8B86, + GL_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87, + GL_SHADER_SOURCE_LENGTH = 0x8B88, + GL_ACTIVE_ATTRIBUTES = 0x8B89, + GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A, + GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B, + GL_SHADING_LANGUAGE_VERSION = 0x8B8C, + GL_CURRENT_PROGRAM = 0x8B8D, + GL_POINT_SPRITE_COORD_ORIGIN = 0x8CA0, + GL_LOWER_LEFT = 0x8CA1, + GL_UPPER_LEFT = 0x8CA2, + GL_STENCIL_BACK_REF = 0x8CA3, + GL_STENCIL_BACK_VALUE_MASK = 0x8CA4, + GL_STENCIL_BACK_WRITEMASK = 0x8CA5, +} + +// gl 2.1 +enum : GLenum +{ + GL_CURRENT_RASTER_SECONDARY_COLOR = 0x845F, + GL_PIXEL_PACK_BUFFER = 0x88EB, + GL_PIXEL_UNPACK_BUFFER = 0x88EC, + GL_PIXEL_PACK_BUFFER_BINDING = 0x88ED, + GL_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF, + GL_FLOAT_MAT2x3 = 0x8B65, + GL_FLOAT_MAT2x4 = 0x8B66, + GL_FLOAT_MAT3x2 = 0x8B67, + GL_FLOAT_MAT3x4 = 0x8B68, + GL_FLOAT_MAT4x2 = 0x8B69, + GL_FLOAT_MAT4x3 = 0x8B6A, + GL_SRGB = 0x8C40, + GL_SRGB8 = 0x8C41, + GL_SRGB_ALPHA = 0x8C42, + GL_SRGB8_ALPHA8 = 0x8C43, + GL_SLUMINANCE_ALPHA = 0x8C44, + GL_SLUMINANCE8_ALPHA8 = 0x8C45, + GL_SLUMINANCE = 0x8C46, + GL_SLUMINANCE8 = 0x8C47, + GL_COMPRESSED_SRGB = 0x8C48, + GL_COMPRESSED_SRGB_ALPHA = 0x8C49, + GL_COMPRESSED_SLUMINANCE = 0x8C4A, + GL_COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B, +} + +// gl 3.0 +enum : GLenum +{ + GL_MAX_CLIP_DISTANCES = GL_MAX_CLIP_PLANES, + GL_CLIP_DISTANCE5 = GL_CLIP_PLANE5, + GL_CLIP_DISTANCE1 = GL_CLIP_PLANE1, + GL_CLIP_DISTANCE3 = GL_CLIP_PLANE3, + GL_COMPARE_REF_TO_TEXTURE = 0x884E, // Must be same as GL_COMPARE_R_TO_TEXTURE_ARB from GL_ARB_shadow + GL_CLIP_DISTANCE0 = GL_CLIP_PLANE0, + GL_CLIP_DISTANCE4 = GL_CLIP_PLANE4, + GL_CLIP_DISTANCE2 = GL_CLIP_PLANE2, + GL_MAX_VARYING_COMPONENTS = GL_MAX_VARYING_FLOATS, + GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x0001, + GL_MAJOR_VERSION = 0x821B, + GL_MINOR_VERSION = 0x821C, + GL_NUM_EXTENSIONS = 0x821D, + GL_CONTEXT_FLAGS = 0x821E, + GL_DEPTH_BUFFER = 0x8223, + GL_STENCIL_BUFFER = 0x8224, + GL_COMPRESSED_RED = 0x8225, + GL_COMPRESSED_RG = 0x8226, + GL_RGBA32F = 0x8814, + GL_RGB32F = 0x8815, + GL_RGBA16F = 0x881A, + GL_RGB16F = 0x881B, + GL_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD, + GL_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF, + GL_MIN_PROGRAM_TEXEL_OFFSET = 0x8904, + GL_MAX_PROGRAM_TEXEL_OFFSET = 0x8905, + GL_CLAMP_VERTEX_COLOR = 0x891A, + GL_CLAMP_FRAGMENT_COLOR = 0x891B, + GL_CLAMP_READ_COLOR = 0x891C, + GL_FIXED_ONLY = 0x891D, + GL_TEXTURE_RED_TYPE = 0x8C10, + GL_TEXTURE_GREEN_TYPE = 0x8C11, + GL_TEXTURE_BLUE_TYPE = 0x8C12, + GL_TEXTURE_ALPHA_TYPE = 0x8C13, + GL_TEXTURE_LUMINANCE_TYPE = 0x8C14, + GL_TEXTURE_INTENSITY_TYPE = 0x8C15, + GL_TEXTURE_DEPTH_TYPE = 0x8C16, + GL_UNSIGNED_NORMALIZED = 0x8C17, + GL_TEXTURE_1D_ARRAY = 0x8C18, + GL_PROXY_TEXTURE_1D_ARRAY = 0x8C19, + GL_TEXTURE_2D_ARRAY = 0x8C1A, + GL_PROXY_TEXTURE_2D_ARRAY = 0x8C1B, + GL_TEXTURE_BINDING_1D_ARRAY = 0x8C1C, + GL_TEXTURE_BINDING_2D_ARRAY = 0x8C1D, + GL_R11F_G11F_B10F = 0x8C3A, + GL_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B, + GL_RGB9_E5 = 0x8C3D, + GL_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E, + GL_TEXTURE_SHARED_SIZE = 0x8C3F, + GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76, + GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F, + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80, + GL_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83, + GL_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84, + GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85, + GL_PRIMITIVES_GENERATED = 0x8C87, + GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88, + GL_RASTERIZER_DISCARD = 0x8C89, + GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A, + GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B, + GL_INTERLEAVED_ATTRIBS = 0x8C8C, + GL_SEPARATE_ATTRIBS = 0x8C8D, + GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E, + GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F, + GL_RGBA32UI = 0x8D70, + GL_RGB32UI = 0x8D71, + GL_RGBA16UI = 0x8D76, + GL_RGB16UI = 0x8D77, + GL_RGBA8UI = 0x8D7C, + GL_RGB8UI = 0x8D7D, + GL_RGBA32I = 0x8D82, + GL_RGB32I = 0x8D83, + GL_RGBA16I = 0x8D88, + GL_RGB16I = 0x8D89, + GL_RGBA8I = 0x8D8E, + GL_RGB8I = 0x8D8F, + GL_RED_INTEGER = 0x8D94, + GL_GREEN_INTEGER = 0x8D95, + GL_BLUE_INTEGER = 0x8D96, + GL_ALPHA_INTEGER = 0x8D97, + GL_RGB_INTEGER = 0x8D98, + GL_RGBA_INTEGER = 0x8D99, + GL_BGR_INTEGER = 0x8D9A, + GL_BGRA_INTEGER = 0x8D9B, + GL_SAMPLER_1D_ARRAY = 0x8DC0, + GL_SAMPLER_2D_ARRAY = 0x8DC1, + GL_SAMPLER_1D_ARRAY_SHADOW = 0x8DC3, + GL_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4, + GL_SAMPLER_CUBE_SHADOW = 0x8DC5, + GL_UNSIGNED_INT_VEC2 = 0x8DC6, + GL_UNSIGNED_INT_VEC3 = 0x8DC7, + GL_UNSIGNED_INT_VEC4 = 0x8DC8, + GL_INT_SAMPLER_1D = 0x8DC9, + GL_INT_SAMPLER_2D = 0x8DCA, + GL_INT_SAMPLER_3D = 0x8DCB, + GL_INT_SAMPLER_CUBE = 0x8DCC, + GL_INT_SAMPLER_1D_ARRAY = 0x8DCE, + GL_INT_SAMPLER_2D_ARRAY = 0x8DCF, + GL_UNSIGNED_INT_SAMPLER_1D = 0x8DD1, + GL_UNSIGNED_INT_SAMPLER_2D = 0x8DD2, + GL_UNSIGNED_INT_SAMPLER_3D = 0x8DD3, + GL_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4, + GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6, + GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7, + GL_QUERY_WAIT = 0x8E13, + GL_QUERY_NO_WAIT = 0x8E14, + GL_QUERY_BY_REGION_WAIT = 0x8E15, + GL_QUERY_BY_REGION_NO_WAIT = 0x8E16, +} + +// gl 3.1 +enum : GLenum +{ + GL_TEXTURE_RECTANGLE = 0x84F5, + GL_TEXTURE_BINDING_RECTANGLE = 0x84F6, + GL_PROXY_TEXTURE_RECTANGLE = 0x84F7, + GL_MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8, + GL_SAMPLER_2D_RECT = 0x8B63, + GL_SAMPLER_2D_RECT_SHADOW = 0x8B64, + GL_TEXTURE_BUFFER = 0x8C2A, + GL_MAX_TEXTURE_BUFFER_SIZE = 0x8C2B, + GL_TEXTURE_BINDING_BUFFER = 0x8C2C, + GL_TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D, + GL_TEXTURE_BUFFER_FORMAT = 0x8C2E, + GL_SAMPLER_BUFFER = 0x8DC2, + GL_INT_SAMPLER_2D_RECT = 0x8DCD, + GL_INT_SAMPLER_BUFFER = 0x8DD0, + GL_UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5, + GL_UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8, + GL_RED_SNORM = 0x8F90, + GL_RG_SNORM = 0x8F91, + GL_RGB_SNORM = 0x8F92, + GL_RGBA_SNORM = 0x8F93, + GL_R8_SNORM = 0x8F94, + GL_RG8_SNORM = 0x8F95, + GL_RGB8_SNORM = 0x8F96, + GL_RGBA8_SNORM = 0x8F97, + GL_R16_SNORM = 0x8F98, + GL_RG16_SNORM = 0x8F99, + GL_RGB16_SNORM = 0x8F9A, + GL_RGBA16_SNORM = 0x8F9B, + GL_SIGNED_NORMALIZED = 0x8F9C, + GL_PRIMITIVE_RESTART = 0x8F9D, + GL_PRIMITIVE_RESTART_INDEX = 0x8F9E, + GL_BUFFER_ACCESS_FLAGS = 0x911F, + GL_BUFFER_MAP_LENGTH = 0x9120, + GL_BUFFER_MAP_OFFSET = 0x9121, +} + +// gl 3.2 +alias long GLint64; + +enum : int +{ + GL_CONTEXT_CORE_PROFILE_BIT = 0x00000001, + GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002, +} + +enum : GLenum +{ + GL_LINES_ADJACENCY = 0x000A, + GL_LINE_STRIP_ADJACENCY = 0x000B, + GL_TRIANGLES_ADJACENCY = 0x000C, + GL_TRIANGLE_STRIP_ADJACENCY = 0x000D, + GL_PROGRAM_POINT_SIZE = 0x8642, + GL_GEOMETRY_VERTICES_OUT = 0x8916, + GL_GEOMETRY_INPUT_TYPE = 0x8917, + GL_GEOMETRY_OUTPUT_TYPE = 0x8918, + GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29, + GL_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7, + GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8, + GL_GEOMETRY_SHADER = 0x8DD9, + GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF, + GL_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0, + GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1, + GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122, + GL_MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123, + GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124, + GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125, + GL_CONTEXT_PROFILE_MASK = 0x9126, +} + +// gl 3.3 +enum : GLenum +{ + GL_VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE, + GL_ANY_SAMPLES_PASSED = 0x8C2F, + GL_TEXTURE_SWIZZLE_R = 0x8E42, + GL_TEXTURE_SWIZZLE_G = 0x8E43, + GL_TEXTURE_SWIZZLE_B = 0x8E44, + GL_TEXTURE_SWIZZLE_A = 0x8E45, + GL_TEXTURE_SWIZZLE_RGBA = 0x8E46, + GL_RGB10_A2UI = 0x906F, +} + +// gl 4.0 +enum : GLenum +{ + GL_GEOMETRY_SHADER_INVOCATIONS = 0x887F, + GL_SAMPLE_SHADING = 0x8C36, + GL_MIN_SAMPLE_SHADING_VALUE = 0x8C37, + GL_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A, + GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B, + GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C, + GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D, + GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E, + GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F, + GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS = 0x8F9F, + GL_TEXTURE_CUBE_MAP_ARRAY = 0x9009, + GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A, + GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B, + GL_SAMPLER_CUBE_MAP_ARRAY = 0x900C, + GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D, + GL_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E, + GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F, } \ No newline at end of file diff --git a/src/derelict/opengl/glu.d b/src/derelict/opengl/glu.d old mode 100755 new mode 100644 index 16793998..f471fe21 --- a/src/derelict/opengl/glu.d +++ b/src/derelict/opengl/glu.d @@ -1,123 +1,123 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.opengl.glu; - -public -{ - import derelict.opengl.glutypes; - import derelict.opengl.glufuncs; -} - -private -{ - import derelict.util.loader; - import derelict.util.exception; -} - -class DerelictGLULoader : SharedLibLoader -{ -private: - this() - { - super( - "glu32.dll", - "libGLU.so,libGLU.so.1", - // on Mac, the GLU functions are in the OpenGL framework - "../Frameworks/OpenGL.framework/OpenGL, /Library/Frameworks/OpenGL.framework/OpenGL, /System/Library/Frameworks/OpenGL.framework/OpenGL" - ); - } - -protected: - override void loadSymbols() - { - bindFunc(cast(void**)&gluBeginCurve, "gluBeginCurve"); - bindFunc(cast(void**)&gluBeginPolygon, "gluBeginPolygon"); - bindFunc(cast(void**)&gluBeginSurface, "gluBeginSurface"); - bindFunc(cast(void**)&gluBeginTrim, "gluBeginTrim"); - bindFunc(cast(void**)&gluBuild1DMipmaps, "gluBuild1DMipmaps"); - bindFunc(cast(void**)&gluBuild2DMipmaps, "gluBuild2DMipmaps"); - bindFunc(cast(void**)&gluCylinder, "gluCylinder"); - bindFunc(cast(void**)&gluDeleteNurbsRenderer, "gluDeleteNurbsRenderer"); - bindFunc(cast(void**)&gluDeleteQuadric, "gluDeleteQuadric"); - bindFunc(cast(void**)&gluDeleteTess, "gluDeleteTess"); - bindFunc(cast(void**)&gluDisk, "gluDisk"); - bindFunc(cast(void**)&gluEndCurve, "gluEndCurve"); - bindFunc(cast(void**)&gluEndPolygon, "gluEndPolygon"); - bindFunc(cast(void**)&gluEndSurface, "gluEndSurface"); - bindFunc(cast(void**)&gluEndTrim, "gluEndTrim"); - bindFunc(cast(void**)&gluErrorString, "gluErrorString"); - bindFunc(cast(void**)&gluGetNurbsProperty, "gluGetNurbsProperty"); - bindFunc(cast(void**)&gluGetString, "gluGetString"); - bindFunc(cast(void**)&gluGetTessProperty, "gluGetTessProperty"); - bindFunc(cast(void**)&gluLoadSamplingMatrices, "gluLoadSamplingMatrices"); - bindFunc(cast(void**)&gluLookAt, "gluLookAt"); - bindFunc(cast(void**)&gluNewNurbsRenderer, "gluNewNurbsRenderer"); - bindFunc(cast(void**)&gluNewQuadric, "gluNewQuadric"); - bindFunc(cast(void**)&gluNewTess, "gluNewTess"); - bindFunc(cast(void**)&gluNextContour, "gluNextContour"); - bindFunc(cast(void**)&gluNurbsCallback, "gluNurbsCallback"); - bindFunc(cast(void**)&gluNurbsCurve, "gluNurbsCurve"); - bindFunc(cast(void**)&gluNurbsProperty, "gluNurbsProperty"); - bindFunc(cast(void**)&gluNurbsSurface, "gluNurbsSurface"); - bindFunc(cast(void**)&gluOrtho2D, "gluOrtho2D"); - bindFunc(cast(void**)&gluPartialDisk, "gluPartialDisk"); - bindFunc(cast(void**)&gluPerspective, "gluPerspective"); - bindFunc(cast(void**)&gluPickMatrix, "gluPickMatrix"); - bindFunc(cast(void**)&gluProject, "gluProject"); - bindFunc(cast(void**)&gluPwlCurve, "gluPwlCurve"); - bindFunc(cast(void**)&gluQuadricCallback, "gluQuadricCallback"); - bindFunc(cast(void**)&gluQuadricDrawStyle, "gluQuadricDrawStyle"); - bindFunc(cast(void**)&gluQuadricNormals, "gluQuadricNormals"); - bindFunc(cast(void**)&gluQuadricOrientation, "gluQuadricOrientation"); - bindFunc(cast(void**)&gluQuadricTexture, "gluQuadricTexture"); - bindFunc(cast(void**)&gluScaleImage, "gluScaleImage"); - bindFunc(cast(void**)&gluSphere, "gluSphere"); - bindFunc(cast(void**)&gluTessBeginContour, "gluTessBeginContour"); - bindFunc(cast(void**)&gluTessBeginPolygon, "gluTessBeginPolygon"); - bindFunc(cast(void**)&gluTessCallback, "gluTessCallback"); - bindFunc(cast(void**)&gluTessEndContour, "gluTessEndContour"); - bindFunc(cast(void**)&gluTessEndPolygon, "gluTessEndPolygon"); - bindFunc(cast(void**)&gluTessNormal, "gluTessNormal"); - bindFunc(cast(void**)&gluTessProperty, "gluTessProperty"); - bindFunc(cast(void**)&gluTessVertex, "gluTessVertex"); - bindFunc(cast(void**)&gluUnProject, "gluUnProject"); - } -} - -DerelictGLULoader DerelictGLU; - -static this() -{ - DerelictGLU = new DerelictGLULoader(); -} - -static ~this() -{ - if(SharedLibLoader.isAutoUnloadEnabled()) - DerelictGLU.unload(); +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.opengl.glu; + +public +{ + import derelict.opengl.glutypes; + import derelict.opengl.glufuncs; +} + +private +{ + import derelict.util.loader; + import derelict.util.exception; +} + +class DerelictGLULoader : SharedLibLoader +{ +private: + this() + { + super( + "glu32.dll", + "libGLU.so,libGLU.so.1", + // on Mac, the GLU functions are in the OpenGL framework + "../Frameworks/OpenGL.framework/OpenGL, /Library/Frameworks/OpenGL.framework/OpenGL, /System/Library/Frameworks/OpenGL.framework/OpenGL" + ); + } + +protected: + override void loadSymbols() + { + bindFunc(cast(void**)&gluBeginCurve, "gluBeginCurve"); + bindFunc(cast(void**)&gluBeginPolygon, "gluBeginPolygon"); + bindFunc(cast(void**)&gluBeginSurface, "gluBeginSurface"); + bindFunc(cast(void**)&gluBeginTrim, "gluBeginTrim"); + bindFunc(cast(void**)&gluBuild1DMipmaps, "gluBuild1DMipmaps"); + bindFunc(cast(void**)&gluBuild2DMipmaps, "gluBuild2DMipmaps"); + bindFunc(cast(void**)&gluCylinder, "gluCylinder"); + bindFunc(cast(void**)&gluDeleteNurbsRenderer, "gluDeleteNurbsRenderer"); + bindFunc(cast(void**)&gluDeleteQuadric, "gluDeleteQuadric"); + bindFunc(cast(void**)&gluDeleteTess, "gluDeleteTess"); + bindFunc(cast(void**)&gluDisk, "gluDisk"); + bindFunc(cast(void**)&gluEndCurve, "gluEndCurve"); + bindFunc(cast(void**)&gluEndPolygon, "gluEndPolygon"); + bindFunc(cast(void**)&gluEndSurface, "gluEndSurface"); + bindFunc(cast(void**)&gluEndTrim, "gluEndTrim"); + bindFunc(cast(void**)&gluErrorString, "gluErrorString"); + bindFunc(cast(void**)&gluGetNurbsProperty, "gluGetNurbsProperty"); + bindFunc(cast(void**)&gluGetString, "gluGetString"); + bindFunc(cast(void**)&gluGetTessProperty, "gluGetTessProperty"); + bindFunc(cast(void**)&gluLoadSamplingMatrices, "gluLoadSamplingMatrices"); + bindFunc(cast(void**)&gluLookAt, "gluLookAt"); + bindFunc(cast(void**)&gluNewNurbsRenderer, "gluNewNurbsRenderer"); + bindFunc(cast(void**)&gluNewQuadric, "gluNewQuadric"); + bindFunc(cast(void**)&gluNewTess, "gluNewTess"); + bindFunc(cast(void**)&gluNextContour, "gluNextContour"); + bindFunc(cast(void**)&gluNurbsCallback, "gluNurbsCallback"); + bindFunc(cast(void**)&gluNurbsCurve, "gluNurbsCurve"); + bindFunc(cast(void**)&gluNurbsProperty, "gluNurbsProperty"); + bindFunc(cast(void**)&gluNurbsSurface, "gluNurbsSurface"); + bindFunc(cast(void**)&gluOrtho2D, "gluOrtho2D"); + bindFunc(cast(void**)&gluPartialDisk, "gluPartialDisk"); + bindFunc(cast(void**)&gluPerspective, "gluPerspective"); + bindFunc(cast(void**)&gluPickMatrix, "gluPickMatrix"); + bindFunc(cast(void**)&gluProject, "gluProject"); + bindFunc(cast(void**)&gluPwlCurve, "gluPwlCurve"); + bindFunc(cast(void**)&gluQuadricCallback, "gluQuadricCallback"); + bindFunc(cast(void**)&gluQuadricDrawStyle, "gluQuadricDrawStyle"); + bindFunc(cast(void**)&gluQuadricNormals, "gluQuadricNormals"); + bindFunc(cast(void**)&gluQuadricOrientation, "gluQuadricOrientation"); + bindFunc(cast(void**)&gluQuadricTexture, "gluQuadricTexture"); + bindFunc(cast(void**)&gluScaleImage, "gluScaleImage"); + bindFunc(cast(void**)&gluSphere, "gluSphere"); + bindFunc(cast(void**)&gluTessBeginContour, "gluTessBeginContour"); + bindFunc(cast(void**)&gluTessBeginPolygon, "gluTessBeginPolygon"); + bindFunc(cast(void**)&gluTessCallback, "gluTessCallback"); + bindFunc(cast(void**)&gluTessEndContour, "gluTessEndContour"); + bindFunc(cast(void**)&gluTessEndPolygon, "gluTessEndPolygon"); + bindFunc(cast(void**)&gluTessNormal, "gluTessNormal"); + bindFunc(cast(void**)&gluTessProperty, "gluTessProperty"); + bindFunc(cast(void**)&gluTessVertex, "gluTessVertex"); + bindFunc(cast(void**)&gluUnProject, "gluUnProject"); + } +} + +DerelictGLULoader DerelictGLU; + +static this() +{ + DerelictGLU = new DerelictGLULoader(); +} + +static ~this() +{ + if(SharedLibLoader.isAutoUnloadEnabled()) + DerelictGLU.unload(); } \ No newline at end of file diff --git a/src/derelict/opengl/glufuncs.d b/src/derelict/opengl/glufuncs.d old mode 100755 new mode 100644 index 3bcb1d69..bc58cda7 --- a/src/derelict/opengl/glufuncs.d +++ b/src/derelict/opengl/glufuncs.d @@ -1,147 +1,147 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.opengl.glufuncs; - -private -{ - import derelict.util.compat; - import derelict.opengl.gltypes; - import derelict.opengl.glutypes; -} - -extern(System) -{ - alias void function(GLUnurbs*) da_gluBeginCurve; - alias void function(GLUtesselator*) da_gluBeginPolygon; - alias void function(GLUnurbs*) da_gluBeginSurface; - alias void function(GLUnurbs*) da_gluBeginTrim; - alias GLint function(GLenum,GLint,GLsizei,GLenum,GLenum,in void*) da_gluBuild1DMipmaps; - alias GLint function(GLenum,GLint,GLsizei,GLsizei,GLenum,GLenum,in void*) da_gluBuild2DMipmaps; - alias void function(GLUquadric*,GLdouble,GLdouble,GLdouble,GLint,GLint) da_gluCylinder; - alias void function(GLUnurbs*) da_gluDeleteNurbsRenderer; - alias void function(GLUquadric*) da_gluDeleteQuadric; - alias void function(GLUtesselator*) da_gluDeleteTess; - alias void function(GLUquadric*,GLdouble,GLdouble,GLint,GLint) da_gluDisk; - alias void function(GLUnurbs*) da_gluEndCurve; - alias void function(GLUtesselator*) da_gluEndPolygon; - alias void function(GLUnurbs*) da_gluEndSurface; - alias void function(GLUnurbs*) da_gluEndTrim; - alias CCPTR function(GLenum) da_gluErrorString; - // wchar* function(GLenum) gluErrorUnicodeStringEXT; - alias void function(GLUnurbs*,GLenum,GLfloat*) da_gluGetNurbsProperty; - alias CCPTR function(GLenum) da_gluGetString; - alias void function(GLUtesselator*,GLenum,GLdouble*) da_gluGetTessProperty; - alias void function(GLUnurbs*,in GLfloat*,in GLfloat*,in GLint*) da_gluLoadSamplingMatrices; - alias void function(GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble) da_gluLookAt; - alias GLUnurbs* function() da_gluNewNurbsRenderer; - alias GLUquadric* function() da_gluNewQuadric; - alias GLUtesselator* function() da_gluNewTess; - alias void function(GLUtesselator*,GLenum) da_gluNextContour; - alias void function(GLUnurbs*,GLenum,_GLUfuncptr) da_gluNurbsCallback; - alias void function(GLUnurbs*,GLint,GLfloat*,GLint,GLfloat*,GLint,GLenum) da_gluNurbsCurve; - alias void function(GLUnurbs*,GLenum,GLfloat) da_gluNurbsProperty; - alias void function(GLUnurbs*,GLint,GLfloat*,GLint,GLfloat*,GLint,GLint,GLfloat*,GLint,GLint,GLenum) da_gluNurbsSurface; - alias void function(GLdouble,GLdouble,GLdouble,GLdouble) da_gluOrtho2D; - alias void function(GLUquadric*,GLdouble,GLdouble,GLint,GLint,GLdouble,GLdouble) da_gluPartialDisk; - alias void function(GLdouble,GLdouble,GLdouble,GLdouble) da_gluPerspective; - alias void function(GLdouble,GLdouble,GLdouble,GLdouble,GLint*) da_gluPickMatrix; - alias GLint function(GLdouble,GLdouble,GLdouble,in GLdouble*,in GLdouble*,in GLint*,GLdouble*,GLdouble*,GLdouble*) da_gluProject; - alias void function(GLUnurbs*,GLint,GLfloat*,GLint,GLenum) da_gluPwlCurve; - alias void function(GLUquadric*,GLenum,_GLUfuncptr) da_gluQuadricCallback; - alias void function(GLUquadric*,GLenum) da_gluQuadricDrawStyle; - alias void function(GLUquadric*,GLenum) da_gluQuadricNormals; - alias void function(GLUquadric*,GLenum) da_gluQuadricOrientation; - alias void function(GLUquadric*,GLboolean) da_gluQuadricTexture; - alias GLint function(GLenum,GLsizei,GLsizei,GLenum,in void*,GLsizei,GLsizei,GLenum,GLvoid*) da_gluScaleImage; - alias void function(GLUquadric*,GLdouble,GLint,GLint) da_gluSphere; - alias void function(GLUtesselator*) da_gluTessBeginContour; - alias void function(GLUtesselator*,GLvoid*) da_gluTessBeginPolygon; - alias void function(GLUtesselator*,GLenum,_GLUfuncptr) da_gluTessCallback; - alias void function(GLUtesselator*) da_gluTessEndContour; - alias void function(GLUtesselator*) da_gluTessEndPolygon; - alias void function(GLUtesselator*,GLdouble,GLdouble,GLdouble) da_gluTessNormal; - alias void function(GLUtesselator*,GLenum,GLdouble) da_gluTessProperty; - alias void function(GLUtesselator*,GLdouble*,GLvoid*) da_gluTessVertex; - alias GLint function(GLdouble,GLdouble,GLdouble,in GLdouble*,in GLdouble*,in GLint*,GLdouble*,GLdouble*,GLdouble*) da_gluUnProject; -} - -mixin(gsharedString!() ~ -" -da_gluBeginCurve gluBeginCurve; -da_gluBeginPolygon gluBeginPolygon; -da_gluBeginSurface gluBeginSurface; -da_gluBeginTrim gluBeginTrim; -da_gluBuild1DMipmaps gluBuild1DMipmaps; -da_gluBuild2DMipmaps gluBuild2DMipmaps; -da_gluCylinder gluCylinder; -da_gluDeleteNurbsRenderer gluDeleteNurbsRenderer; -da_gluDeleteQuadric gluDeleteQuadric; -da_gluDeleteTess gluDeleteTess; -da_gluDisk gluDisk; -da_gluEndCurve gluEndCurve; -da_gluEndPolygon gluEndPolygon; -da_gluEndSurface gluEndSurface; -da_gluEndTrim gluEndTrim; -da_gluErrorString gluErrorString; -// wchar* function(GLenum) gluErrorUnicodeStringEXT; -da_gluGetNurbsProperty gluGetNurbsProperty; -da_gluGetString gluGetString; -da_gluGetTessProperty gluGetTessProperty; -da_gluLoadSamplingMatrices gluLoadSamplingMatrices; -da_gluLookAt gluLookAt; -da_gluNewNurbsRenderer gluNewNurbsRenderer; -da_gluNewQuadric gluNewQuadric; -da_gluNewTess gluNewTess; -da_gluNextContour gluNextContour; -da_gluNurbsCallback gluNurbsCallback; -da_gluNurbsCurve gluNurbsCurve; -da_gluNurbsProperty gluNurbsProperty; -da_gluNurbsSurface gluNurbsSurface; -da_gluOrtho2D gluOrtho2D; -da_gluPartialDisk gluPartialDisk; -da_gluPerspective gluPerspective; -da_gluPickMatrix gluPickMatrix; -da_gluProject gluProject; -da_gluPwlCurve gluPwlCurve; -da_gluQuadricCallback gluQuadricCallback; -da_gluQuadricDrawStyle gluQuadricDrawStyle; -da_gluQuadricNormals gluQuadricNormals; -da_gluQuadricOrientation gluQuadricOrientation; -da_gluQuadricTexture gluQuadricTexture; -da_gluScaleImage gluScaleImage; -da_gluSphere gluSphere; -da_gluTessBeginContour gluTessBeginContour; -da_gluTessBeginPolygon gluTessBeginPolygon; -da_gluTessCallback gluTessCallback; -da_gluTessEndContour gluTessEndContour; -da_gluTessEndPolygon gluTessEndPolygon; -da_gluTessNormal gluTessNormal; -da_gluTessProperty gluTessProperty; -da_gluTessVertex gluTessVertex; -da_gluUnProject gluUnProject; +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.opengl.glufuncs; + +private +{ + import derelict.util.compat; + import derelict.opengl.gltypes; + import derelict.opengl.glutypes; +} + +extern(System) +{ + alias void function(GLUnurbs*) da_gluBeginCurve; + alias void function(GLUtesselator*) da_gluBeginPolygon; + alias void function(GLUnurbs*) da_gluBeginSurface; + alias void function(GLUnurbs*) da_gluBeginTrim; + alias GLint function(GLenum,GLint,GLsizei,GLenum,GLenum,in void*) da_gluBuild1DMipmaps; + alias GLint function(GLenum,GLint,GLsizei,GLsizei,GLenum,GLenum,in void*) da_gluBuild2DMipmaps; + alias void function(GLUquadric*,GLdouble,GLdouble,GLdouble,GLint,GLint) da_gluCylinder; + alias void function(GLUnurbs*) da_gluDeleteNurbsRenderer; + alias void function(GLUquadric*) da_gluDeleteQuadric; + alias void function(GLUtesselator*) da_gluDeleteTess; + alias void function(GLUquadric*,GLdouble,GLdouble,GLint,GLint) da_gluDisk; + alias void function(GLUnurbs*) da_gluEndCurve; + alias void function(GLUtesselator*) da_gluEndPolygon; + alias void function(GLUnurbs*) da_gluEndSurface; + alias void function(GLUnurbs*) da_gluEndTrim; + alias CCPTR function(GLenum) da_gluErrorString; + // wchar* function(GLenum) gluErrorUnicodeStringEXT; + alias void function(GLUnurbs*,GLenum,GLfloat*) da_gluGetNurbsProperty; + alias CCPTR function(GLenum) da_gluGetString; + alias void function(GLUtesselator*,GLenum,GLdouble*) da_gluGetTessProperty; + alias void function(GLUnurbs*,in GLfloat*,in GLfloat*,in GLint*) da_gluLoadSamplingMatrices; + alias void function(GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble) da_gluLookAt; + alias GLUnurbs* function() da_gluNewNurbsRenderer; + alias GLUquadric* function() da_gluNewQuadric; + alias GLUtesselator* function() da_gluNewTess; + alias void function(GLUtesselator*,GLenum) da_gluNextContour; + alias void function(GLUnurbs*,GLenum,_GLUfuncptr) da_gluNurbsCallback; + alias void function(GLUnurbs*,GLint,GLfloat*,GLint,GLfloat*,GLint,GLenum) da_gluNurbsCurve; + alias void function(GLUnurbs*,GLenum,GLfloat) da_gluNurbsProperty; + alias void function(GLUnurbs*,GLint,GLfloat*,GLint,GLfloat*,GLint,GLint,GLfloat*,GLint,GLint,GLenum) da_gluNurbsSurface; + alias void function(GLdouble,GLdouble,GLdouble,GLdouble) da_gluOrtho2D; + alias void function(GLUquadric*,GLdouble,GLdouble,GLint,GLint,GLdouble,GLdouble) da_gluPartialDisk; + alias void function(GLdouble,GLdouble,GLdouble,GLdouble) da_gluPerspective; + alias void function(GLdouble,GLdouble,GLdouble,GLdouble,GLint*) da_gluPickMatrix; + alias GLint function(GLdouble,GLdouble,GLdouble,in GLdouble*,in GLdouble*,in GLint*,GLdouble*,GLdouble*,GLdouble*) da_gluProject; + alias void function(GLUnurbs*,GLint,GLfloat*,GLint,GLenum) da_gluPwlCurve; + alias void function(GLUquadric*,GLenum,_GLUfuncptr) da_gluQuadricCallback; + alias void function(GLUquadric*,GLenum) da_gluQuadricDrawStyle; + alias void function(GLUquadric*,GLenum) da_gluQuadricNormals; + alias void function(GLUquadric*,GLenum) da_gluQuadricOrientation; + alias void function(GLUquadric*,GLboolean) da_gluQuadricTexture; + alias GLint function(GLenum,GLsizei,GLsizei,GLenum,in void*,GLsizei,GLsizei,GLenum,GLvoid*) da_gluScaleImage; + alias void function(GLUquadric*,GLdouble,GLint,GLint) da_gluSphere; + alias void function(GLUtesselator*) da_gluTessBeginContour; + alias void function(GLUtesselator*,GLvoid*) da_gluTessBeginPolygon; + alias void function(GLUtesselator*,GLenum,_GLUfuncptr) da_gluTessCallback; + alias void function(GLUtesselator*) da_gluTessEndContour; + alias void function(GLUtesselator*) da_gluTessEndPolygon; + alias void function(GLUtesselator*,GLdouble,GLdouble,GLdouble) da_gluTessNormal; + alias void function(GLUtesselator*,GLenum,GLdouble) da_gluTessProperty; + alias void function(GLUtesselator*,GLdouble*,GLvoid*) da_gluTessVertex; + alias GLint function(GLdouble,GLdouble,GLdouble,in GLdouble*,in GLdouble*,in GLint*,GLdouble*,GLdouble*,GLdouble*) da_gluUnProject; +} + +mixin(gsharedString!() ~ +" +da_gluBeginCurve gluBeginCurve; +da_gluBeginPolygon gluBeginPolygon; +da_gluBeginSurface gluBeginSurface; +da_gluBeginTrim gluBeginTrim; +da_gluBuild1DMipmaps gluBuild1DMipmaps; +da_gluBuild2DMipmaps gluBuild2DMipmaps; +da_gluCylinder gluCylinder; +da_gluDeleteNurbsRenderer gluDeleteNurbsRenderer; +da_gluDeleteQuadric gluDeleteQuadric; +da_gluDeleteTess gluDeleteTess; +da_gluDisk gluDisk; +da_gluEndCurve gluEndCurve; +da_gluEndPolygon gluEndPolygon; +da_gluEndSurface gluEndSurface; +da_gluEndTrim gluEndTrim; +da_gluErrorString gluErrorString; +// wchar* function(GLenum) gluErrorUnicodeStringEXT; +da_gluGetNurbsProperty gluGetNurbsProperty; +da_gluGetString gluGetString; +da_gluGetTessProperty gluGetTessProperty; +da_gluLoadSamplingMatrices gluLoadSamplingMatrices; +da_gluLookAt gluLookAt; +da_gluNewNurbsRenderer gluNewNurbsRenderer; +da_gluNewQuadric gluNewQuadric; +da_gluNewTess gluNewTess; +da_gluNextContour gluNextContour; +da_gluNurbsCallback gluNurbsCallback; +da_gluNurbsCurve gluNurbsCurve; +da_gluNurbsProperty gluNurbsProperty; +da_gluNurbsSurface gluNurbsSurface; +da_gluOrtho2D gluOrtho2D; +da_gluPartialDisk gluPartialDisk; +da_gluPerspective gluPerspective; +da_gluPickMatrix gluPickMatrix; +da_gluProject gluProject; +da_gluPwlCurve gluPwlCurve; +da_gluQuadricCallback gluQuadricCallback; +da_gluQuadricDrawStyle gluQuadricDrawStyle; +da_gluQuadricNormals gluQuadricNormals; +da_gluQuadricOrientation gluQuadricOrientation; +da_gluQuadricTexture gluQuadricTexture; +da_gluScaleImage gluScaleImage; +da_gluSphere gluSphere; +da_gluTessBeginContour gluTessBeginContour; +da_gluTessBeginPolygon gluTessBeginPolygon; +da_gluTessCallback gluTessCallback; +da_gluTessEndContour gluTessEndContour; +da_gluTessEndPolygon gluTessEndPolygon; +da_gluTessNormal gluTessNormal; +da_gluTessProperty gluTessProperty; +da_gluTessVertex gluTessVertex; +da_gluUnProject gluUnProject; "); \ No newline at end of file diff --git a/src/derelict/opengl/glutypes.d b/src/derelict/opengl/glutypes.d old mode 100755 new mode 100644 index 1b5d8967..20273ba2 --- a/src/derelict/opengl/glutypes.d +++ b/src/derelict/opengl/glutypes.d @@ -1,205 +1,205 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.opengl.glutypes; - -private -{ - import derelict.opengl.gltypes; -} - -enum : GLenum -{ - GLU_FALSE = 0, - GLU_TRUE = 1, - GLU_VERSION = 100800, - GLU_EXTENSIONS = 100801, - GLU_INVALID_ENUM = 100900, - GLU_INVALID_VALUE = 100901, - GLU_OUT_OF_MEMORY = 100902, - GLU_INVALID_OPERATION = 100904, - GLU_OUTLINE_POLYGON = 100240, - GLU_OUTLINE_PATCH = 100241, - GLU_NURBS_ERROR = 100103, - GLU_ERROR = 100103, - GLU_NURBS_BEGIN = 100164, - GLU_NURBS_BEGIN_EXT = 100164, - GLU_NURBS_VERTEX = 100165, - GLU_NURBS_VERTEX_EXT = 100165, - GLU_NURBS_NORMAL = 100166, - GLU_NURBS_NORMAL_EXT = 100166, - GLU_NURBS_COLOR = 100167, - GLU_NURBS_COLOR_EXT = 100167, - GLU_NURBS_TEXTURE_COORD = 100168, - GLU_NURBS_TEX_COORD_EXT = 100168, - GLU_NURBS_END = 100169, - GLU_NURBS_END_EXT = 100169, - GLU_NURBS_BEGIN_DATA = 100170, - GLU_NURBS_BEGIN_DATA_EXT = 100170, - GLU_NURBS_VERTEX_DATA = 100171, - GLU_NURBS_VERTEX_DATA_EXT = 100171, - GLU_NURBS_NORMAL_DATA = 100172, - GLU_NURBS_NORMAL_DATA_EXT = 100172, - GLU_NURBS_COLOR_DATA = 100173, - GLU_NURBS_COLOR_DATA_EXT = 100173, - GLU_NURBS_TEXTURE_COORD_DATA = 100174, - GLU_NURBS_TEX_COORD_DATA_EXT = 100174, - GLU_NURBS_END_DATA = 100175, - GLU_NURBS_END_DATA_EXT = 100175, - GLU_NURBS_ERROR1 = 100251, - GLU_NURBS_ERROR2 = 100252, - GLU_NURBS_ERROR3 = 100253, - GLU_NURBS_ERROR4 = 100254, - GLU_NURBS_ERROR5 = 100255, - GLU_NURBS_ERROR6 = 100256, - GLU_NURBS_ERROR7 = 100257, - GLU_NURBS_ERROR8 = 100258, - GLU_NURBS_ERROR9 = 100259, - GLU_NURBS_ERROR10 = 100260, - GLU_NURBS_ERROR11 = 100261, - GLU_NURBS_ERROR12 = 100262, - GLU_NURBS_ERROR13 = 100263, - GLU_NURBS_ERROR14 = 100264, - GLU_NURBS_ERROR15 = 100265, - GLU_NURBS_ERROR16 = 100266, - GLU_NURBS_ERROR17 = 100267, - GLU_NURBS_ERROR18 = 100268, - GLU_NURBS_ERROR19 = 100269, - GLU_NURBS_ERROR20 = 100270, - GLU_NURBS_ERROR21 = 100271, - GLU_NURBS_ERROR22 = 100272, - GLU_NURBS_ERROR23 = 100273, - GLU_NURBS_ERROR24 = 100274, - GLU_NURBS_ERROR25 = 100275, - GLU_NURBS_ERROR26 = 100276, - GLU_NURBS_ERROR27 = 100277, - GLU_NURBS_ERROR28 = 100278, - GLU_NURBS_ERROR29 = 100279, - GLU_NURBS_ERROR30 = 100280, - GLU_NURBS_ERROR31 = 100281, - GLU_NURBS_ERROR32 = 100282, - GLU_NURBS_ERROR33 = 100283, - GLU_NURBS_ERROR34 = 100284, - GLU_NURBS_ERROR35 = 100285, - GLU_NURBS_ERROR36 = 100286, - GLU_NURBS_ERROR37 = 100287, - GLU_AUTO_LOAD_MATRIX = 100200, - GLU_CULLING = 100201, - GLU_SAMPLING_TOLERANCE = 100203, - GLU_DISPLAY_MODE = 100204, - GLU_PARAMETRIC_TOLERANCE = 100202, - GLU_SAMPLING_METHOD = 100205, - GLU_U_STEP = 100206, - GLU_V_STEP = 100207, - GLU_NURBS_MODE = 100160, - GLU_NURBS_MODE_EXT = 100160, - GLU_NURBS_TESSELLATOR = 100161, - GLU_NURBS_TESSELLATOR_EXT = 100161, - GLU_NURBS_RENDERER = 100162, - GLU_NURBS_RENDERER_EXT = 100162, - GLU_OBJECT_PARAMETRIC_ERROR = 100208, - GLU_OBJECT_PARAMETRIC_ERROR_EXT = 100208, - GLU_OBJECT_PATH_LENGTH = 100209, - GLU_OBJECT_PATH_LENGTH_EXT = 100209, - GLU_PATH_LENGTH = 100215, - GLU_PARAMETRIC_ERROR = 100216, - GLU_DOMAIN_DISTANCE = 100217, - GLU_MAP1_TRIM_2 = 100210, - GLU_MAP2_TRIM_3 = 100211, - GLU_POINT = 100010, - GLU_LINE = 100011, - GLU_FILL = 100012, - GLU_SILHOUETTE = 100013, - GLU_SMOOTH = 100000, - GLU_FLAT = 100001, - GLU_NONE = 100002, - GLU_OUTSIDE = 100020, - GLU_INSIDE = 100021, - GLU_TESS_BEGIN = 100100, - GLU_BEGIN = 100100, - GLU_TESS_VERTEX = 100101, - GLU_VERTEX = 100101, - GLU_TESS_END = 100102, - GLU_END = 100102, - GLU_TESS_ERROR = 100103, - GLU_TESS_EDGE_FLAG = 100104, - GLU_EDGE_FLAG = 100104, - GLU_TESS_COMBINE = 100105, - GLU_TESS_BEGIN_DATA = 100106, - GLU_TESS_VERTEX_DATA = 100107, - GLU_TESS_END_DATA = 100108, - GLU_TESS_ERROR_DATA = 100109, - GLU_TESS_EDGE_FLAG_DATA = 100110, - GLU_TESS_COMBINE_DATA = 100111, - GLU_CW = 100120, - GLU_CCW = 100121, - GLU_INTERIOR = 100122, - GLU_EXTERIOR = 100123, - GLU_UNKNOWN = 100124, - GLU_TESS_WINDING_RULE = 100140, - GLU_TESS_BOUNDARY_ONLY = 100141, - GLU_TESS_TOLERANCE = 100142, - GLU_TESS_ERROR1 = 100151, - GLU_TESS_ERROR2 = 100152, - GLU_TESS_ERROR3 = 100153, - GLU_TESS_ERROR4 = 100154, - GLU_TESS_ERROR5 = 100155, - GLU_TESS_ERROR6 = 100156, - GLU_TESS_ERROR7 = 100157, - GLU_TESS_ERROR8 = 100158, - GLU_TESS_MISSING_BEGIN_POLYGON = 100151, - GLU_TESS_MISSING_BEGIN_COUNTER = 100152, - GLU_TESS_MISSING_END_POLYGON = 100153, - GLU_TESS_MISSING_END_COUNTER = 100154, - GLU_TESS_COORD_TOO_LARGE = 100155, - GLU_TESS_NEED_COMBINE_CALLBACK = 100156, - GLU_TESS_WINDING_ODD = 100130, - GLU_TESS_WINDING_NONZERO = 100131, - GLU_TESS_WINDING_POSITIVE = 100132, - GLU_TESS_WINDING_NEGATIVE = 100133, - GLU_TESS_WINDING_ABS_GEQ_TWO = 100134, -} - -version(D_Version2) -{ - mixin("enum double GLU_TESS_MAX_COORD = 1.0e150;"); -} -else -{ - const double GLU_TESS_MAX_COORD = 1.0e150; -} - -struct GLUnurbs {} -struct GLUquadric {} -struct GLUtesselator {} - -alias GLUnurbs GLUnurbsObj; -alias GLUquadric GLUquadricObj; -alias GLUtesselator GLUtesselatorObj; -alias GLUtesselator GLUtriangulatorObj; - +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.opengl.glutypes; + +private +{ + import derelict.opengl.gltypes; +} + +enum : GLenum +{ + GLU_FALSE = 0, + GLU_TRUE = 1, + GLU_VERSION = 100800, + GLU_EXTENSIONS = 100801, + GLU_INVALID_ENUM = 100900, + GLU_INVALID_VALUE = 100901, + GLU_OUT_OF_MEMORY = 100902, + GLU_INVALID_OPERATION = 100904, + GLU_OUTLINE_POLYGON = 100240, + GLU_OUTLINE_PATCH = 100241, + GLU_NURBS_ERROR = 100103, + GLU_ERROR = 100103, + GLU_NURBS_BEGIN = 100164, + GLU_NURBS_BEGIN_EXT = 100164, + GLU_NURBS_VERTEX = 100165, + GLU_NURBS_VERTEX_EXT = 100165, + GLU_NURBS_NORMAL = 100166, + GLU_NURBS_NORMAL_EXT = 100166, + GLU_NURBS_COLOR = 100167, + GLU_NURBS_COLOR_EXT = 100167, + GLU_NURBS_TEXTURE_COORD = 100168, + GLU_NURBS_TEX_COORD_EXT = 100168, + GLU_NURBS_END = 100169, + GLU_NURBS_END_EXT = 100169, + GLU_NURBS_BEGIN_DATA = 100170, + GLU_NURBS_BEGIN_DATA_EXT = 100170, + GLU_NURBS_VERTEX_DATA = 100171, + GLU_NURBS_VERTEX_DATA_EXT = 100171, + GLU_NURBS_NORMAL_DATA = 100172, + GLU_NURBS_NORMAL_DATA_EXT = 100172, + GLU_NURBS_COLOR_DATA = 100173, + GLU_NURBS_COLOR_DATA_EXT = 100173, + GLU_NURBS_TEXTURE_COORD_DATA = 100174, + GLU_NURBS_TEX_COORD_DATA_EXT = 100174, + GLU_NURBS_END_DATA = 100175, + GLU_NURBS_END_DATA_EXT = 100175, + GLU_NURBS_ERROR1 = 100251, + GLU_NURBS_ERROR2 = 100252, + GLU_NURBS_ERROR3 = 100253, + GLU_NURBS_ERROR4 = 100254, + GLU_NURBS_ERROR5 = 100255, + GLU_NURBS_ERROR6 = 100256, + GLU_NURBS_ERROR7 = 100257, + GLU_NURBS_ERROR8 = 100258, + GLU_NURBS_ERROR9 = 100259, + GLU_NURBS_ERROR10 = 100260, + GLU_NURBS_ERROR11 = 100261, + GLU_NURBS_ERROR12 = 100262, + GLU_NURBS_ERROR13 = 100263, + GLU_NURBS_ERROR14 = 100264, + GLU_NURBS_ERROR15 = 100265, + GLU_NURBS_ERROR16 = 100266, + GLU_NURBS_ERROR17 = 100267, + GLU_NURBS_ERROR18 = 100268, + GLU_NURBS_ERROR19 = 100269, + GLU_NURBS_ERROR20 = 100270, + GLU_NURBS_ERROR21 = 100271, + GLU_NURBS_ERROR22 = 100272, + GLU_NURBS_ERROR23 = 100273, + GLU_NURBS_ERROR24 = 100274, + GLU_NURBS_ERROR25 = 100275, + GLU_NURBS_ERROR26 = 100276, + GLU_NURBS_ERROR27 = 100277, + GLU_NURBS_ERROR28 = 100278, + GLU_NURBS_ERROR29 = 100279, + GLU_NURBS_ERROR30 = 100280, + GLU_NURBS_ERROR31 = 100281, + GLU_NURBS_ERROR32 = 100282, + GLU_NURBS_ERROR33 = 100283, + GLU_NURBS_ERROR34 = 100284, + GLU_NURBS_ERROR35 = 100285, + GLU_NURBS_ERROR36 = 100286, + GLU_NURBS_ERROR37 = 100287, + GLU_AUTO_LOAD_MATRIX = 100200, + GLU_CULLING = 100201, + GLU_SAMPLING_TOLERANCE = 100203, + GLU_DISPLAY_MODE = 100204, + GLU_PARAMETRIC_TOLERANCE = 100202, + GLU_SAMPLING_METHOD = 100205, + GLU_U_STEP = 100206, + GLU_V_STEP = 100207, + GLU_NURBS_MODE = 100160, + GLU_NURBS_MODE_EXT = 100160, + GLU_NURBS_TESSELLATOR = 100161, + GLU_NURBS_TESSELLATOR_EXT = 100161, + GLU_NURBS_RENDERER = 100162, + GLU_NURBS_RENDERER_EXT = 100162, + GLU_OBJECT_PARAMETRIC_ERROR = 100208, + GLU_OBJECT_PARAMETRIC_ERROR_EXT = 100208, + GLU_OBJECT_PATH_LENGTH = 100209, + GLU_OBJECT_PATH_LENGTH_EXT = 100209, + GLU_PATH_LENGTH = 100215, + GLU_PARAMETRIC_ERROR = 100216, + GLU_DOMAIN_DISTANCE = 100217, + GLU_MAP1_TRIM_2 = 100210, + GLU_MAP2_TRIM_3 = 100211, + GLU_POINT = 100010, + GLU_LINE = 100011, + GLU_FILL = 100012, + GLU_SILHOUETTE = 100013, + GLU_SMOOTH = 100000, + GLU_FLAT = 100001, + GLU_NONE = 100002, + GLU_OUTSIDE = 100020, + GLU_INSIDE = 100021, + GLU_TESS_BEGIN = 100100, + GLU_BEGIN = 100100, + GLU_TESS_VERTEX = 100101, + GLU_VERTEX = 100101, + GLU_TESS_END = 100102, + GLU_END = 100102, + GLU_TESS_ERROR = 100103, + GLU_TESS_EDGE_FLAG = 100104, + GLU_EDGE_FLAG = 100104, + GLU_TESS_COMBINE = 100105, + GLU_TESS_BEGIN_DATA = 100106, + GLU_TESS_VERTEX_DATA = 100107, + GLU_TESS_END_DATA = 100108, + GLU_TESS_ERROR_DATA = 100109, + GLU_TESS_EDGE_FLAG_DATA = 100110, + GLU_TESS_COMBINE_DATA = 100111, + GLU_CW = 100120, + GLU_CCW = 100121, + GLU_INTERIOR = 100122, + GLU_EXTERIOR = 100123, + GLU_UNKNOWN = 100124, + GLU_TESS_WINDING_RULE = 100140, + GLU_TESS_BOUNDARY_ONLY = 100141, + GLU_TESS_TOLERANCE = 100142, + GLU_TESS_ERROR1 = 100151, + GLU_TESS_ERROR2 = 100152, + GLU_TESS_ERROR3 = 100153, + GLU_TESS_ERROR4 = 100154, + GLU_TESS_ERROR5 = 100155, + GLU_TESS_ERROR6 = 100156, + GLU_TESS_ERROR7 = 100157, + GLU_TESS_ERROR8 = 100158, + GLU_TESS_MISSING_BEGIN_POLYGON = 100151, + GLU_TESS_MISSING_BEGIN_COUNTER = 100152, + GLU_TESS_MISSING_END_POLYGON = 100153, + GLU_TESS_MISSING_END_COUNTER = 100154, + GLU_TESS_COORD_TOO_LARGE = 100155, + GLU_TESS_NEED_COMBINE_CALLBACK = 100156, + GLU_TESS_WINDING_ODD = 100130, + GLU_TESS_WINDING_NONZERO = 100131, + GLU_TESS_WINDING_POSITIVE = 100132, + GLU_TESS_WINDING_NEGATIVE = 100133, + GLU_TESS_WINDING_ABS_GEQ_TWO = 100134, +} + +version(D_Version2) +{ + mixin("enum double GLU_TESS_MAX_COORD = 1.0e150;"); +} +else +{ + const double GLU_TESS_MAX_COORD = 1.0e150; +} + +struct GLUnurbs {} +struct GLUquadric {} +struct GLUtesselator {} + +alias GLUnurbs GLUnurbsObj; +alias GLUquadric GLUquadricObj; +alias GLUtesselator GLUtesselatorObj; +alias GLUtesselator GLUtriangulatorObj; + extern(System) alias void function() _GLUfuncptr; \ No newline at end of file diff --git a/src/derelict/opengl/glx.d b/src/derelict/opengl/glx.d old mode 100755 new mode 100644 index 91c212d1..0d8e3a27 --- a/src/derelict/opengl/glx.d +++ b/src/derelict/opengl/glx.d @@ -1,295 +1,295 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.opengl.glx; - -version (freebsd) -{ - version = GLX; -} - -else version (FreeBSD) -{ - version = GLX; -} - -else version (linux) -{ - version = GLX; -} - -version(GLX) -{ - -private -{ - import derelict.opengl.gltypes; - import derelict.util.compat; - import derelict.util.loader; - import derelict.util.xtypes; -} - -struct __GLXcontextRec {} -struct __GLXFBConfigRec {} - -alias uint GLXContentID; -alias uint GLXPixmap; -alias uint GLXDrawable; -alias uint GLXPbuffer; -alias uint GLXWindow; -alias uint GLXFBConfigID; - -alias __GLXcontextRec *GLXContext; // __GLXcontextRec type is opaque -alias __GLXFBConfigRec *GLXFBConfig; // __GLXFBConfigRec type is opaque - -/* - * GLX Events - */ - -struct GLXPbufferClobberEvent -{ - int event_type; - int draw_type; - uint serial; - Bool send_event; - Display* display; - GLXDrawable drawable; - uint buffer_mask; - uint aux_buffer; - int x, y; - int width, height; - int count; -} - -union GLXEvent -{ - GLXPbufferClobberEvent glxpbufferclobber; - int[24] pad; -} - -// Function pointer variables - -extern (C) -{ - alias XVisualInfo* function(Display*,int,int*) da_glXChooseVisual; - alias void function(Display*,GLXContext,GLXContext,uint) da_glXCopyContext; - alias GLXContext function(Display*,XVisualInfo*,GLXContext,Bool) da_glXCreateContext; - alias GLXPixmap function(Display*,XVisualInfo*,Pixmap) da_glXCreateGLXPixmap; - alias void function(Display*,GLXContext) da_glXDestroyContext; - alias void function(Display*,GLXPixmap) da_glXDestroyGLXPixmap; - alias int function(Display*,XVisualInfo*,int,int*) da_glXGetConfig; - alias GLXContext function() da_glXGetCurrentContext; - alias GLXDrawable function() da_glXGetCurrentDrawable; - alias Bool function(Display*,GLXContext) da_glXIsDirect; - alias Bool function(Display*,GLXDrawable,GLXContext) da_glXMakeCurrent; - alias Bool function(Display*,int*,int*) da_glXQueryExtension; - alias Bool function(Display*,int*,int*) da_glXQueryVersion; - alias void function(Display*,GLXDrawable) da_glXSwapBuffers; - alias void function(Font,int,int,int) da_glXUseXFont; - alias void function() da_glXWaitGL; - alias void function() da_glXWaitX; - alias char* function(Display*,int) da_glXGetClientString; - alias char* function(Display*,int,int) da_glXQueryServerString; - alias char* function(Display*,int) da_glXQueryExtensionsString; - - /* GLX 1.3 */ - - alias GLXFBConfig* function(Display*,int,int*) da_glXGetFBConfigs; - alias GLXFBConfig* function(Display*,int,int*,int*) da_glXChooseFBConfig; - alias int function(Display*,GLXFBConfig,int,int*) da_glXGetFBConfigAttrib; - alias XVisualInfo* function(Display*,GLXFBConfig) da_glXGetVisualFromFBConfig; - alias GLXWindow function(Display*,GLXFBConfig,Window,int*) da_glXCreateWindow; - alias void function(Display*,GLXWindow) da_glXDestroyWindow; - alias GLXPixmap function(Display*,GLXFBConfig,Pixmap,int*) da_glXCreatePixmap; - alias void function(Display*,GLXPixmap) da_glXDestroyPixmap; - alias GLXPbuffer function(Display*,GLXFBConfig,int*) da_glXCreatePbuffer; - alias void function(Display*,GLXPbuffer) da_glXDestroyPbuffer; - alias void function(Display*,GLXDrawable,int,uint*) da_glXQueryDrawable; - alias GLXContext function(Display*,GLXFBConfig,int,GLXContext,Bool) da_glXCreateNewContext; - alias Bool function(Display*,GLXDrawable,GLXDrawable,GLXContext) da_glXMakeContextCurrent; - alias GLXDrawable function() da_glXGetCurrentReadDrawable; - alias Display* function() da_glXGetCurrentDisplay; - alias int function(Display*,GLXContext,int,int*) da_glXQueryContext; - alias void function(Display*,GLXDrawable,uint) da_glXSelectEvent; - alias void function(Display*,GLXDrawable,uint*) da_glXGetSelectedEvent; - - /* GLX 1.4+ */ - alias void* function(CCPTR) da_glXGetProcAddress; - - -} - -/* GLX extensions -- legacy */ - -/* -GLXContextID function(const GLXContext) - pfglXGetContextIDEXT; -GLXContext function(Display*,GLXContextID) - pfglXImportContextEXT; -void function(Display*,GLXContext) - pfglXFreeContextEXT; -int function(Display*,GLXContext,int,int*) - pfglXQueryContextInfoEXT; -Display* function() - pfglXGetCurrentDisplayEXT; -void function() function(const GLubyte*) - pfglXGetProcAddressARB; -*/ - -/+ - -// All extensions are disabled in the current version -// until further testing is done and need is established. - -void* function(GLsizei,GLfloat,GLfloat,GLfloat) - glXAllocateMemoryNV; -void function(GLvoid*) - glXFreeMemoryNV; -void* function(GLsizei,GLfloat,GLfloat,GLfloat) - PFNGLXALLOCATEMEMORYNVPROC; -void function(GLvoid*) - PFNGLXFREEMEMORYNVPROC; - -/* Mesa specific? */ - -// work in progress - -/* GLX_ARB specific? */ - -Bool function(Display*, GLXPbuffer,int) - glXBindTexImageARB; -Bool function(Display*, GLXPbuffer,int) - glXReleaseTexImageARB; -Bool function(Display*,GLXDrawable,int*) - glXDrawableAttribARB; - -+/ - - -mixin(gsharedString!() ~ -" -da_glXChooseVisual glXChooseVisual; -da_glXCopyContext glXCopyContext; -da_glXCreateContext glXCreateContext; -da_glXCreateGLXPixmap glXCreateGLXPixmap; -da_glXDestroyContext glXDestroyContext; -da_glXDestroyGLXPixmap glXDestroyGLXPixmap; -da_glXGetConfig glXGetConfig; -da_glXGetCurrentContext glXGetCurrentContext; -da_glXGetCurrentDrawable glXGetCurrentDrawable; -da_glXIsDirect glXIsDirect; -da_glXMakeCurrent glXMakeCurrent; -da_glXQueryExtension glXQueryExtension; -da_glXQueryVersion glXQueryVersion; -da_glXSwapBuffers glXSwapBuffers; -da_glXUseXFont glXUseXFont; -da_glXWaitGL glXWaitGL; -da_glXWaitX glXWaitX; -da_glXGetClientString glXGetClientString; -da_glXQueryServerString glXQueryServerString; -da_glXQueryExtensionsString glXQueryExtensionsString; - -/* GLX 1.3 */ - -da_glXGetFBConfigs glXGetFBConfigs; -da_glXChooseFBConfig glXChooseFBConfig; -da_glXGetFBConfigAttrib glXGetFBConfigAttrib; -da_glXGetVisualFromFBConfig glXGetVisualFromFBConfig; -da_glXCreateWindow glXCreateWindow; -da_glXDestroyWindow glXDestroyWindow; -da_glXCreatePixmap glXCreatePixmap; -da_glXDestroyPixmap glXDestroyPixmap; -da_glXCreatePbuffer glXCreatePbuffer; -da_glXDestroyPbuffer glXDestroyPbuffer; -da_glXQueryDrawable glXQueryDrawable; -da_glXCreateNewContext glXCreateNewContext; -da_glXMakeContextCurrent glXMakeContextCurrent; -da_glXGetCurrentReadDrawable glXGetCurrentReadDrawable; -da_glXGetCurrentDisplay glXGetCurrentDisplay; -da_glXQueryContext glXQueryContext; -da_glXSelectEvent glXSelectEvent; -da_glXGetSelectedEvent glXGetSelectedEvent; - -/* GLX 1.4+ */ -da_glXGetProcAddress glXGetProcAddress; - -"); - -package -{ - void loadPlatformGL(void delegate(void**, string, bool doThrow = true) bindFunc) - { - bindFunc(cast(void**)&glXChooseVisual, "glXChooseVisual", false); - bindFunc(cast(void**)&glXCopyContext, "glXCopyContext", false); - bindFunc(cast(void**)&glXCreateContext, "glXCreateContext", false); - bindFunc(cast(void**)&glXCreateGLXPixmap, "glXCreateGLXPixmap", false); - bindFunc(cast(void**)&glXDestroyContext, "glXDestroyContext", false); - bindFunc(cast(void**)&glXDestroyGLXPixmap, "glXDestroyGLXPixmap", false); - bindFunc(cast(void**)&glXGetConfig, "glXGetConfig", false); - bindFunc(cast(void**)&glXGetCurrentContext, "glXGetCurrentContext", false); - bindFunc(cast(void**)&glXGetCurrentDrawable, "glXGetCurrentDrawable", false); - bindFunc(cast(void**)&glXIsDirect, "glXIsDirect", false); - bindFunc(cast(void**)&glXMakeCurrent, "glXMakeCurrent", false); - bindFunc(cast(void**)&glXQueryExtension, "glXQueryExtension", false); - bindFunc(cast(void**)&glXQueryVersion, "glXQueryVersion", false); - bindFunc(cast(void**)&glXSwapBuffers, "glXSwapBuffers", false); - bindFunc(cast(void**)&glXUseXFont, "glXUseXFont", false); - bindFunc(cast(void**)&glXWaitGL, "glXWaitGL", false); - bindFunc(cast(void**)&glXWaitX, "glXWaitX", false); - bindFunc(cast(void**)&glXGetClientString, "glXGetClientString", false); - bindFunc(cast(void**)&glXQueryServerString, "glXQueryServerString", false); - bindFunc(cast(void**)&glXQueryExtensionsString, "glXQueryExtensionsString", false); - - bindFunc(cast(void**)&glXGetFBConfigs, "glXGetFBConfigs", false); - bindFunc(cast(void**)&glXChooseFBConfig, "glXChooseFBConfig", false); - bindFunc(cast(void**)&glXGetFBConfigAttrib, "glXGetFBConfigAttrib", false); - bindFunc(cast(void**)&glXGetVisualFromFBConfig, "glXGetVisualFromFBConfig", false); - bindFunc(cast(void**)&glXCreateWindow, "glXCreateWindow", false); - bindFunc(cast(void**)&glXDestroyWindow, "glXDestroyWindow", false); - bindFunc(cast(void**)&glXCreatePixmap, "glXCreatePixmap", false); - bindFunc(cast(void**)&glXDestroyPixmap, "glXDestroyPixmap", false); - bindFunc(cast(void**)&glXCreatePbuffer, "glXCreatePbuffer", false); - bindFunc(cast(void**)&glXDestroyPbuffer, "glXDestroyPbuffer", false); - bindFunc(cast(void**)&glXQueryDrawable, "glXQueryDrawable", false); - bindFunc(cast(void**)&glXCreateNewContext, "glXCreateNewContext", false); - bindFunc(cast(void**)&glXMakeContextCurrent, "glXMakeContextCurrent", false); - bindFunc(cast(void**)&glXGetCurrentReadDrawable, "glXGetCurrentReadDrawable", false); - bindFunc(cast(void**)&glXGetCurrentDisplay, "glXGetCurrentDisplay", false); - bindFunc(cast(void**)&glXQueryContext, "glXQueryContext", false); - bindFunc(cast(void**)&glXSelectEvent, "glXSelectEvent", false); - bindFunc(cast(void**)&glXGetSelectedEvent, "glXGetSelectedEvent", false); - - bindFunc(cast(void**)&glXGetProcAddress, "glXGetProcAddressARB", false); - } - - void* loadGLSymbol(string symName) - { - return glXGetProcAddress(toCString(symName)); - } -} - -} // version(linux) +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.opengl.glx; + +version (freebsd) +{ + version = GLX; +} + +else version (FreeBSD) +{ + version = GLX; +} + +else version (linux) +{ + version = GLX; +} + +version(GLX) +{ + +private +{ + import derelict.opengl.gltypes; + import derelict.util.compat; + import derelict.util.loader; + import derelict.util.xtypes; +} + +struct __GLXcontextRec {} +struct __GLXFBConfigRec {} + +alias uint GLXContentID; +alias uint GLXPixmap; +alias uint GLXDrawable; +alias uint GLXPbuffer; +alias uint GLXWindow; +alias uint GLXFBConfigID; + +alias __GLXcontextRec *GLXContext; // __GLXcontextRec type is opaque +alias __GLXFBConfigRec *GLXFBConfig; // __GLXFBConfigRec type is opaque + +/* + * GLX Events + */ + +struct GLXPbufferClobberEvent +{ + int event_type; + int draw_type; + uint serial; + Bool send_event; + Display* display; + GLXDrawable drawable; + uint buffer_mask; + uint aux_buffer; + int x, y; + int width, height; + int count; +} + +union GLXEvent +{ + GLXPbufferClobberEvent glxpbufferclobber; + int[24] pad; +} + +// Function pointer variables + +extern (C) +{ + alias XVisualInfo* function(Display*,int,int*) da_glXChooseVisual; + alias void function(Display*,GLXContext,GLXContext,uint) da_glXCopyContext; + alias GLXContext function(Display*,XVisualInfo*,GLXContext,Bool) da_glXCreateContext; + alias GLXPixmap function(Display*,XVisualInfo*,Pixmap) da_glXCreateGLXPixmap; + alias void function(Display*,GLXContext) da_glXDestroyContext; + alias void function(Display*,GLXPixmap) da_glXDestroyGLXPixmap; + alias int function(Display*,XVisualInfo*,int,int*) da_glXGetConfig; + alias GLXContext function() da_glXGetCurrentContext; + alias GLXDrawable function() da_glXGetCurrentDrawable; + alias Bool function(Display*,GLXContext) da_glXIsDirect; + alias Bool function(Display*,GLXDrawable,GLXContext) da_glXMakeCurrent; + alias Bool function(Display*,int*,int*) da_glXQueryExtension; + alias Bool function(Display*,int*,int*) da_glXQueryVersion; + alias void function(Display*,GLXDrawable) da_glXSwapBuffers; + alias void function(Font,int,int,int) da_glXUseXFont; + alias void function() da_glXWaitGL; + alias void function() da_glXWaitX; + alias char* function(Display*,int) da_glXGetClientString; + alias char* function(Display*,int,int) da_glXQueryServerString; + alias char* function(Display*,int) da_glXQueryExtensionsString; + + /* GLX 1.3 */ + + alias GLXFBConfig* function(Display*,int,int*) da_glXGetFBConfigs; + alias GLXFBConfig* function(Display*,int,int*,int*) da_glXChooseFBConfig; + alias int function(Display*,GLXFBConfig,int,int*) da_glXGetFBConfigAttrib; + alias XVisualInfo* function(Display*,GLXFBConfig) da_glXGetVisualFromFBConfig; + alias GLXWindow function(Display*,GLXFBConfig,Window,int*) da_glXCreateWindow; + alias void function(Display*,GLXWindow) da_glXDestroyWindow; + alias GLXPixmap function(Display*,GLXFBConfig,Pixmap,int*) da_glXCreatePixmap; + alias void function(Display*,GLXPixmap) da_glXDestroyPixmap; + alias GLXPbuffer function(Display*,GLXFBConfig,int*) da_glXCreatePbuffer; + alias void function(Display*,GLXPbuffer) da_glXDestroyPbuffer; + alias void function(Display*,GLXDrawable,int,uint*) da_glXQueryDrawable; + alias GLXContext function(Display*,GLXFBConfig,int,GLXContext,Bool) da_glXCreateNewContext; + alias Bool function(Display*,GLXDrawable,GLXDrawable,GLXContext) da_glXMakeContextCurrent; + alias GLXDrawable function() da_glXGetCurrentReadDrawable; + alias Display* function() da_glXGetCurrentDisplay; + alias int function(Display*,GLXContext,int,int*) da_glXQueryContext; + alias void function(Display*,GLXDrawable,uint) da_glXSelectEvent; + alias void function(Display*,GLXDrawable,uint*) da_glXGetSelectedEvent; + + /* GLX 1.4+ */ + alias void* function(CCPTR) da_glXGetProcAddress; + + +} + +/* GLX extensions -- legacy */ + +/* +GLXContextID function(const GLXContext) + pfglXGetContextIDEXT; +GLXContext function(Display*,GLXContextID) + pfglXImportContextEXT; +void function(Display*,GLXContext) + pfglXFreeContextEXT; +int function(Display*,GLXContext,int,int*) + pfglXQueryContextInfoEXT; +Display* function() + pfglXGetCurrentDisplayEXT; +void function() function(const GLubyte*) + pfglXGetProcAddressARB; +*/ + +/+ + +// All extensions are disabled in the current version +// until further testing is done and need is established. + +void* function(GLsizei,GLfloat,GLfloat,GLfloat) + glXAllocateMemoryNV; +void function(GLvoid*) + glXFreeMemoryNV; +void* function(GLsizei,GLfloat,GLfloat,GLfloat) + PFNGLXALLOCATEMEMORYNVPROC; +void function(GLvoid*) + PFNGLXFREEMEMORYNVPROC; + +/* Mesa specific? */ + +// work in progress + +/* GLX_ARB specific? */ + +Bool function(Display*, GLXPbuffer,int) + glXBindTexImageARB; +Bool function(Display*, GLXPbuffer,int) + glXReleaseTexImageARB; +Bool function(Display*,GLXDrawable,int*) + glXDrawableAttribARB; + ++/ + + +mixin(gsharedString!() ~ +" +da_glXChooseVisual glXChooseVisual; +da_glXCopyContext glXCopyContext; +da_glXCreateContext glXCreateContext; +da_glXCreateGLXPixmap glXCreateGLXPixmap; +da_glXDestroyContext glXDestroyContext; +da_glXDestroyGLXPixmap glXDestroyGLXPixmap; +da_glXGetConfig glXGetConfig; +da_glXGetCurrentContext glXGetCurrentContext; +da_glXGetCurrentDrawable glXGetCurrentDrawable; +da_glXIsDirect glXIsDirect; +da_glXMakeCurrent glXMakeCurrent; +da_glXQueryExtension glXQueryExtension; +da_glXQueryVersion glXQueryVersion; +da_glXSwapBuffers glXSwapBuffers; +da_glXUseXFont glXUseXFont; +da_glXWaitGL glXWaitGL; +da_glXWaitX glXWaitX; +da_glXGetClientString glXGetClientString; +da_glXQueryServerString glXQueryServerString; +da_glXQueryExtensionsString glXQueryExtensionsString; + +/* GLX 1.3 */ + +da_glXGetFBConfigs glXGetFBConfigs; +da_glXChooseFBConfig glXChooseFBConfig; +da_glXGetFBConfigAttrib glXGetFBConfigAttrib; +da_glXGetVisualFromFBConfig glXGetVisualFromFBConfig; +da_glXCreateWindow glXCreateWindow; +da_glXDestroyWindow glXDestroyWindow; +da_glXCreatePixmap glXCreatePixmap; +da_glXDestroyPixmap glXDestroyPixmap; +da_glXCreatePbuffer glXCreatePbuffer; +da_glXDestroyPbuffer glXDestroyPbuffer; +da_glXQueryDrawable glXQueryDrawable; +da_glXCreateNewContext glXCreateNewContext; +da_glXMakeContextCurrent glXMakeContextCurrent; +da_glXGetCurrentReadDrawable glXGetCurrentReadDrawable; +da_glXGetCurrentDisplay glXGetCurrentDisplay; +da_glXQueryContext glXQueryContext; +da_glXSelectEvent glXSelectEvent; +da_glXGetSelectedEvent glXGetSelectedEvent; + +/* GLX 1.4+ */ +da_glXGetProcAddress glXGetProcAddress; + +"); + +package +{ + void loadPlatformGL(void delegate(void**, string, bool doThrow = true) bindFunc) + { + bindFunc(cast(void**)&glXChooseVisual, "glXChooseVisual", false); + bindFunc(cast(void**)&glXCopyContext, "glXCopyContext", false); + bindFunc(cast(void**)&glXCreateContext, "glXCreateContext", false); + bindFunc(cast(void**)&glXCreateGLXPixmap, "glXCreateGLXPixmap", false); + bindFunc(cast(void**)&glXDestroyContext, "glXDestroyContext", false); + bindFunc(cast(void**)&glXDestroyGLXPixmap, "glXDestroyGLXPixmap", false); + bindFunc(cast(void**)&glXGetConfig, "glXGetConfig", false); + bindFunc(cast(void**)&glXGetCurrentContext, "glXGetCurrentContext", false); + bindFunc(cast(void**)&glXGetCurrentDrawable, "glXGetCurrentDrawable", false); + bindFunc(cast(void**)&glXIsDirect, "glXIsDirect", false); + bindFunc(cast(void**)&glXMakeCurrent, "glXMakeCurrent", false); + bindFunc(cast(void**)&glXQueryExtension, "glXQueryExtension", false); + bindFunc(cast(void**)&glXQueryVersion, "glXQueryVersion", false); + bindFunc(cast(void**)&glXSwapBuffers, "glXSwapBuffers", false); + bindFunc(cast(void**)&glXUseXFont, "glXUseXFont", false); + bindFunc(cast(void**)&glXWaitGL, "glXWaitGL", false); + bindFunc(cast(void**)&glXWaitX, "glXWaitX", false); + bindFunc(cast(void**)&glXGetClientString, "glXGetClientString", false); + bindFunc(cast(void**)&glXQueryServerString, "glXQueryServerString", false); + bindFunc(cast(void**)&glXQueryExtensionsString, "glXQueryExtensionsString", false); + + bindFunc(cast(void**)&glXGetFBConfigs, "glXGetFBConfigs", false); + bindFunc(cast(void**)&glXChooseFBConfig, "glXChooseFBConfig", false); + bindFunc(cast(void**)&glXGetFBConfigAttrib, "glXGetFBConfigAttrib", false); + bindFunc(cast(void**)&glXGetVisualFromFBConfig, "glXGetVisualFromFBConfig", false); + bindFunc(cast(void**)&glXCreateWindow, "glXCreateWindow", false); + bindFunc(cast(void**)&glXDestroyWindow, "glXDestroyWindow", false); + bindFunc(cast(void**)&glXCreatePixmap, "glXCreatePixmap", false); + bindFunc(cast(void**)&glXDestroyPixmap, "glXDestroyPixmap", false); + bindFunc(cast(void**)&glXCreatePbuffer, "glXCreatePbuffer", false); + bindFunc(cast(void**)&glXDestroyPbuffer, "glXDestroyPbuffer", false); + bindFunc(cast(void**)&glXQueryDrawable, "glXQueryDrawable", false); + bindFunc(cast(void**)&glXCreateNewContext, "glXCreateNewContext", false); + bindFunc(cast(void**)&glXMakeContextCurrent, "glXMakeContextCurrent", false); + bindFunc(cast(void**)&glXGetCurrentReadDrawable, "glXGetCurrentReadDrawable", false); + bindFunc(cast(void**)&glXGetCurrentDisplay, "glXGetCurrentDisplay", false); + bindFunc(cast(void**)&glXQueryContext, "glXQueryContext", false); + bindFunc(cast(void**)&glXSelectEvent, "glXSelectEvent", false); + bindFunc(cast(void**)&glXGetSelectedEvent, "glXGetSelectedEvent", false); + + bindFunc(cast(void**)&glXGetProcAddress, "glXGetProcAddressARB", false); + } + + void* loadGLSymbol(string symName) + { + return glXGetProcAddress(toCString(symName)); + } +} + +} // version(linux) diff --git a/src/derelict/opengl/wgl.d b/src/derelict/opengl/wgl.d old mode 100755 new mode 100644 index 3121b3d6..03ad1a79 --- a/src/derelict/opengl/wgl.d +++ b/src/derelict/opengl/wgl.d @@ -1,116 +1,116 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.opengl.wgl; - -private -{ - import derelict.util.wintypes; - import derelict.util.compat; -} - -version(Windows) -{ - extern(Windows) - { - alias BOOL function(void*,void*) da_wglCopyContext; - alias void* function(void*) da_wglCreateContext; - alias void* function(void*,int) da_wglCreateLayerContext; - alias BOOL function(void*) da_wglDeleteContext; - alias BOOL function(void*,int,int,UINT,LAYERPLANEDESCRIPTOR*) da_wglDescribeLayerPlane; - alias void* function() da_wglGetCurrentContext; - alias void* function() da_wglGetCurrentDC; - alias int function(void*,int,int,int,COLORREF*) da_wglGetLayerPaletteEntries; - alias FARPROC function(LPCSTR) da_wglGetProcAddress; - alias BOOL function(void*,void*) da_wglMakeCurrent; - alias BOOL function(void*,int,BOOL) da_wglRealizeLayerPalette; - alias int function(void*,int,int,int,COLORREF*) da_wglSetLayerPaletteEntries; - alias BOOL function(void*,void*) da_wglShareLists; - alias BOOL function(void*,UINT) da_wglSwapLayerBuffers; - alias BOOL function(void*,DWORD,DWORD,DWORD) da_wglUseFontBitmapsA; - alias BOOL function(void*,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,GLYPHMETRICSFLOAT*) da_wglUseFontOutlinesA; - alias BOOL function(void*,DWORD,DWORD,DWORD) da_wglUseFontBitmapsW; - alias BOOL function(void*,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,GLYPHMETRICSFLOAT*) da_wglUseFontOutlinesW; - - } - - mixin(gsharedString!() ~ - " - da_wglCopyContext wglCopyContext; - da_wglCreateContext wglCreateContext; - da_wglCreateLayerContext wglCreateLayerContext; - da_wglDeleteContext wglDeleteContext; - da_wglDescribeLayerPlane wglDescribeLayerPlane; - da_wglGetCurrentContext wglGetCurrentContext; - da_wglGetCurrentDC wglGetCurrentDC; - da_wglGetLayerPaletteEntries wglGetLayerPaletteEntries; - da_wglGetProcAddress wglGetProcAddress; - da_wglMakeCurrent wglMakeCurrent; - da_wglRealizeLayerPalette wglRealizeLayerPalette; - da_wglSetLayerPaletteEntries wglSetLayerPaletteEntries; - da_wglShareLists wglShareLists; - da_wglSwapLayerBuffers wglSwapLayerBuffers; - da_wglUseFontBitmapsA wglUseFontBitmapsA; - da_wglUseFontOutlinesA wglUseFontOutlinesA; - da_wglUseFontBitmapsW wglUseFontBitmapsW; - da_wglUseFontOutlinesW wglUseFontOutlinesW; - - alias wglUseFontBitmapsA wglUseFontBitmaps; - alias wglUseFontOutlinesA wglUseFontOutlines; - "); - - - package - { - void loadPlatformGL(void delegate(void**, string, bool doThrow = true) bindFunc) - { - bindFunc(cast(void**)&wglCopyContext, "wglCopyContext", false); - bindFunc(cast(void**)&wglCreateContext, "wglCreateContext", false); - bindFunc(cast(void**)&wglCreateLayerContext, "wglCreateLayerContext", false); - bindFunc(cast(void**)&wglDeleteContext, "wglDeleteContext", false); - bindFunc(cast(void**)&wglDescribeLayerPlane, "wglDescribeLayerPlane", false); - bindFunc(cast(void**)&wglGetCurrentContext, "wglGetCurrentContext", false); - bindFunc(cast(void**)&wglGetCurrentDC, "wglGetCurrentDC", false); - bindFunc(cast(void**)&wglGetLayerPaletteEntries, "wglGetLayerPaletteEntries", false); - bindFunc(cast(void**)&wglGetProcAddress, "wglGetProcAddress", false); - bindFunc(cast(void**)&wglMakeCurrent, "wglMakeCurrent", false); - bindFunc(cast(void**)&wglRealizeLayerPalette, "wglRealizeLayerPalette", false); - bindFunc(cast(void**)&wglSetLayerPaletteEntries, "wglSetLayerPaletteEntries", false); - bindFunc(cast(void**)&wglShareLists, "wglShareLists", false); - bindFunc(cast(void**)&wglSwapLayerBuffers, "wglSwapLayerBuffers", false); - bindFunc(cast(void**)&wglUseFontBitmapsA, "wglUseFontBitmapsA", false); - bindFunc(cast(void**)&wglUseFontOutlinesA, "wglUseFontOutlinesA", false); - bindFunc(cast(void**)&wglUseFontBitmapsW, "wglUseFontBitmapsW", false); - bindFunc(cast(void**)&wglUseFontOutlinesW, "wglUseFontOutlinesW", false); - } - - void* loadGLSymbol(string symName) - { - return cast(void*)wglGetProcAddress(toCString(symName)); - } - } +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.opengl.wgl; + +private +{ + import derelict.util.wintypes; + import derelict.util.compat; +} + +version(Windows) +{ + extern(Windows) + { + alias BOOL function(void*,void*) da_wglCopyContext; + alias void* function(void*) da_wglCreateContext; + alias void* function(void*,int) da_wglCreateLayerContext; + alias BOOL function(void*) da_wglDeleteContext; + alias BOOL function(void*,int,int,UINT,LAYERPLANEDESCRIPTOR*) da_wglDescribeLayerPlane; + alias void* function() da_wglGetCurrentContext; + alias void* function() da_wglGetCurrentDC; + alias int function(void*,int,int,int,COLORREF*) da_wglGetLayerPaletteEntries; + alias FARPROC function(LPCSTR) da_wglGetProcAddress; + alias BOOL function(void*,void*) da_wglMakeCurrent; + alias BOOL function(void*,int,BOOL) da_wglRealizeLayerPalette; + alias int function(void*,int,int,int,COLORREF*) da_wglSetLayerPaletteEntries; + alias BOOL function(void*,void*) da_wglShareLists; + alias BOOL function(void*,UINT) da_wglSwapLayerBuffers; + alias BOOL function(void*,DWORD,DWORD,DWORD) da_wglUseFontBitmapsA; + alias BOOL function(void*,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,GLYPHMETRICSFLOAT*) da_wglUseFontOutlinesA; + alias BOOL function(void*,DWORD,DWORD,DWORD) da_wglUseFontBitmapsW; + alias BOOL function(void*,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,GLYPHMETRICSFLOAT*) da_wglUseFontOutlinesW; + + } + + mixin(gsharedString!() ~ + " + da_wglCopyContext wglCopyContext; + da_wglCreateContext wglCreateContext; + da_wglCreateLayerContext wglCreateLayerContext; + da_wglDeleteContext wglDeleteContext; + da_wglDescribeLayerPlane wglDescribeLayerPlane; + da_wglGetCurrentContext wglGetCurrentContext; + da_wglGetCurrentDC wglGetCurrentDC; + da_wglGetLayerPaletteEntries wglGetLayerPaletteEntries; + da_wglGetProcAddress wglGetProcAddress; + da_wglMakeCurrent wglMakeCurrent; + da_wglRealizeLayerPalette wglRealizeLayerPalette; + da_wglSetLayerPaletteEntries wglSetLayerPaletteEntries; + da_wglShareLists wglShareLists; + da_wglSwapLayerBuffers wglSwapLayerBuffers; + da_wglUseFontBitmapsA wglUseFontBitmapsA; + da_wglUseFontOutlinesA wglUseFontOutlinesA; + da_wglUseFontBitmapsW wglUseFontBitmapsW; + da_wglUseFontOutlinesW wglUseFontOutlinesW; + + alias wglUseFontBitmapsA wglUseFontBitmaps; + alias wglUseFontOutlinesA wglUseFontOutlines; + "); + + + package + { + void loadPlatformGL(void delegate(void**, string, bool doThrow = true) bindFunc) + { + bindFunc(cast(void**)&wglCopyContext, "wglCopyContext", false); + bindFunc(cast(void**)&wglCreateContext, "wglCreateContext", false); + bindFunc(cast(void**)&wglCreateLayerContext, "wglCreateLayerContext", false); + bindFunc(cast(void**)&wglDeleteContext, "wglDeleteContext", false); + bindFunc(cast(void**)&wglDescribeLayerPlane, "wglDescribeLayerPlane", false); + bindFunc(cast(void**)&wglGetCurrentContext, "wglGetCurrentContext", false); + bindFunc(cast(void**)&wglGetCurrentDC, "wglGetCurrentDC", false); + bindFunc(cast(void**)&wglGetLayerPaletteEntries, "wglGetLayerPaletteEntries", false); + bindFunc(cast(void**)&wglGetProcAddress, "wglGetProcAddress", false); + bindFunc(cast(void**)&wglMakeCurrent, "wglMakeCurrent", false); + bindFunc(cast(void**)&wglRealizeLayerPalette, "wglRealizeLayerPalette", false); + bindFunc(cast(void**)&wglSetLayerPaletteEntries, "wglSetLayerPaletteEntries", false); + bindFunc(cast(void**)&wglShareLists, "wglShareLists", false); + bindFunc(cast(void**)&wglSwapLayerBuffers, "wglSwapLayerBuffers", false); + bindFunc(cast(void**)&wglUseFontBitmapsA, "wglUseFontBitmapsA", false); + bindFunc(cast(void**)&wglUseFontOutlinesA, "wglUseFontOutlinesA", false); + bindFunc(cast(void**)&wglUseFontBitmapsW, "wglUseFontBitmapsW", false); + bindFunc(cast(void**)&wglUseFontOutlinesW, "wglUseFontOutlinesW", false); + } + + void* loadGLSymbol(string symName) + { + return cast(void*)wglGetProcAddress(toCString(symName)); + } + } } \ No newline at end of file diff --git a/src/derelict/sdl2/functions.d b/src/derelict/sdl2/functions.d old mode 100755 new mode 100644 diff --git a/src/derelict/sdl2/sdl.d b/src/derelict/sdl2/sdl.d old mode 100755 new mode 100644 diff --git a/src/derelict/sdl2/types.d b/src/derelict/sdl2/types.d old mode 100755 new mode 100644 diff --git a/src/derelict/util/compat.d b/src/derelict/util/compat.d old mode 100755 new mode 100644 index 017c0ba7..6c84bcd0 --- a/src/derelict/util/compat.d +++ b/src/derelict/util/compat.d @@ -1,193 +1,193 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.util.compat; - -version(D_Version2) -{ - mixin("alias const(char)* CCPTR;"); - mixin("alias const(wchar)* CWCPTR;"); - mixin("alias const(dchar)* CDCPTR;"); - mixin("alias const(ubyte)* CUBPTR;"); - mixin("alias const(void)* CVPTR;"); - mixin("alias immutable(char)* ICPTR;"); -} -else -{ - alias char* CCPTR; - alias wchar* CWCPTR; - alias dchar* CDCPTR; - alias ubyte* CUBPTR; - alias void* CVPTR; - alias char* ICPTR; -} - -version(D_Version2) -{ - public import core.stdc.config : c_long, c_ulong; -} -else version(Tango) -{ - version (Windows) - { - alias int c_long; - alias uint c_ulong; - } - else - { - static if((void*).sizeof > (int).sizeof) - { - alias long c_long; - alias ulong c_ulong; - } - else - { - alias int c_long; - alias uint c_ulong; - } - } -} - -version(D_Version2) -{ - version(Posix) - { - public import core.sys.posix.sys.types : off_t; - } - else - { - alias c_long off_t; - } -} -else -{ - alias c_long off_t; -} - -version(Tango) -{ - private - { - import tango.stdc.string; - import tango.stdc.stringz; - import tango.text.Util; - import tango.core.Version; - } - - version (PhobosCompatibility) {} - else - { - alias char[] string; - alias wchar[] wstring; - alias dchar[] dstring; - } -} -else -{ - private - { - version(D_Version2) - { - import std.conv; - } - import std.string; +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.util.compat; + +version(D_Version2) +{ + mixin("alias const(char)* CCPTR;"); + mixin("alias const(wchar)* CWCPTR;"); + mixin("alias const(dchar)* CDCPTR;"); + mixin("alias const(ubyte)* CUBPTR;"); + mixin("alias const(void)* CVPTR;"); + mixin("alias immutable(char)* ICPTR;"); +} +else +{ + alias char* CCPTR; + alias wchar* CWCPTR; + alias dchar* CDCPTR; + alias ubyte* CUBPTR; + alias void* CVPTR; + alias char* ICPTR; +} + +version(D_Version2) +{ + public import core.stdc.config : c_long, c_ulong; +} +else version(Tango) +{ + version (Windows) + { + alias int c_long; + alias uint c_ulong; + } + else + { + static if((void*).sizeof > (int).sizeof) + { + alias long c_long; + alias ulong c_ulong; + } + else + { + alias int c_long; + alias uint c_ulong; + } + } +} + +version(D_Version2) +{ + version(Posix) + { + public import core.sys.posix.sys.types : off_t; + } + else + { + alias c_long off_t; + } +} +else +{ + alias c_long off_t; +} + +version(Tango) +{ + private + { + import tango.stdc.string; + import tango.stdc.stringz; + import tango.text.Util; + import tango.core.Version; + } + + version (PhobosCompatibility) {} + else + { + alias char[] string; + alias wchar[] wstring; + alias dchar[] dstring; + } +} +else +{ + private + { + version(D_Version2) + { + import std.conv; + } + import std.string; //import std.c.string; - import core.stdc.stdlib; - } - -} - -template gsharedString () -{ - version (D_Version2) - const gsharedString = "__gshared: "; - - else - const gsharedString = ""; -} - -CCPTR toCString(string str) -{ - return toStringz(str); -} - -string toDString(CCPTR cstr) -{ - version(Tango) - { - return fromStringz(cstr); - } - else - { - version(D_Version2) - { - mixin("return to!string(cstr);"); - } - else - { - return toString(cstr); - } - } -} - -int findStr(string str, string match) -{ - version(Tango) - { - int i = locatePattern(str, match); - return (i == str.length) ? -1 : i; - } - else - { - version(D_Version2) - { - mixin("return cast(int)indexOf(str, match);"); - } - else - { - return find(str, match); - } - } -} - -string[] splitStr(string str, string delim) -{ - return split(str, delim); -} - -string stripWhiteSpace(string str) -{ - version(Tango) - { - return trim(str); - } - else - { - return strip(str); - } -} - + import core.stdc.stdlib; + } + +} + +template gsharedString () +{ + version (D_Version2) + const gsharedString = "__gshared: "; + + else + const gsharedString = ""; +} + +CCPTR toCString(string str) +{ + return toStringz(str); +} + +string toDString(CCPTR cstr) +{ + version(Tango) + { + return fromStringz(cstr); + } + else + { + version(D_Version2) + { + mixin("return to!string(cstr);"); + } + else + { + return toString(cstr); + } + } +} + +int findStr(string str, string match) +{ + version(Tango) + { + int i = locatePattern(str, match); + return (i == str.length) ? -1 : i; + } + else + { + version(D_Version2) + { + mixin("return cast(int)indexOf(str, match);"); + } + else + { + return find(str, match); + } + } +} + +string[] splitStr(string str, string delim) +{ + return split(str, delim); +} + +string stripWhiteSpace(string str) +{ + version(Tango) + { + return trim(str); + } + else + { + return strip(str); + } +} + diff --git a/src/derelict/util/exception.d b/src/derelict/util/exception.d old mode 100755 new mode 100644 index 516ddb44..05bed0f4 --- a/src/derelict/util/exception.d +++ b/src/derelict/util/exception.d @@ -1,156 +1,156 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.util.exception; - -private -{ - import derelict.util.compat; -} - -/** -* Base class for all exceptions thrown by Derelict packages. -*/ -class DerelictException : Exception -{ -public: - this(string msg) - { - super(msg); - } -} - -/** -* Helper struct to facilitate throwing a single SharedLibException after failing -* to load a library using multiple names. -*/ -struct FailedSharedLib -{ - string name; - string reason; -} - -/** -* This exception is thrown when a shared library cannot be loaded -* because it is either missing or not on the system path. -*/ -class SharedLibLoadException : DerelictException -{ -public: - static void throwNew(in char[][] libNames, in char[][] reasons) - { - string msg = "Failed to load one or more shared libraries:"; - foreach(i, n; libNames) - { - msg ~= "\n\t" ~ n ~ " - "; - if(i < reasons.length) - msg ~= reasons[i]; - else - msg ~= "Unknown"; - } - throw new SharedLibLoadException(msg); - } - - this(string msg) - { - super(msg); - _sharedLibName = ""; - } - - this(string msg, string sharedLibName) - { - super(msg); - _sharedLibName = sharedLibName; - } - - string sharedLibName() - { - return _sharedLibName; - } - -private: - string _sharedLibName; -} - -/** -* This exception is thrown when a symbol cannot be loaded from a shared library, -* either because it does not exist in the library or because the library is corrupt. -*/ -class SymbolLoadException : DerelictException -{ -public: - this(string msg) - { - super(msg); - } - - this(string sharedLibName, string symbolName) - { - super("Failed to load symbol " ~ symbolName ~ " from shared library " ~ sharedLibName); - _symbolName = symbolName; - } - - string symbolName() - { - return _symbolName; - } - -private: - string _symbolName; -} - -alias SymbolLoadException SharedLibProcLoadException; - -//****************************************************************************** - -/** -* The MissingSymbolCallback allows the app to handle the case of missing symbols. By default, -* a SharedLibSymbolLoadException is thrown. However, if a the app determines that -* particular symbol is not needed, the callback can return true. This will cause -* the shared library to continue loading. Returning false will cause the exception -* to be thrown. -*/ -alias bool function(string libName, string symbolName) MissingSymbolCallback; -alias MissingSymbolCallback MissingProcCallback; - -private MissingSymbolCallback missingSymbolCallback; - -public void Derelict_HandleMissingSymbol(string libName, string symbolName) -{ - bool result = false; - if(missingSymbolCallback !is null) - result = missingSymbolCallback(libName, symbolName); - if(!result) - throw new SymbolLoadException(libName, symbolName); -} -alias Derelict_HandleMissingSymbol Derelict_HandleMissingProc; - -void Derelict_SetMissingSymbolCallback(MissingSymbolCallback callback) -{ - missingSymbolCallback = callback; -} +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.util.exception; + +private +{ + import derelict.util.compat; +} + +/** +* Base class for all exceptions thrown by Derelict packages. +*/ +class DerelictException : Exception +{ +public: + this(string msg) + { + super(msg); + } +} + +/** +* Helper struct to facilitate throwing a single SharedLibException after failing +* to load a library using multiple names. +*/ +struct FailedSharedLib +{ + string name; + string reason; +} + +/** +* This exception is thrown when a shared library cannot be loaded +* because it is either missing or not on the system path. +*/ +class SharedLibLoadException : DerelictException +{ +public: + static void throwNew(in char[][] libNames, in char[][] reasons) + { + string msg = "Failed to load one or more shared libraries:"; + foreach(i, n; libNames) + { + msg ~= "\n\t" ~ n ~ " - "; + if(i < reasons.length) + msg ~= reasons[i]; + else + msg ~= "Unknown"; + } + throw new SharedLibLoadException(msg); + } + + this(string msg) + { + super(msg); + _sharedLibName = ""; + } + + this(string msg, string sharedLibName) + { + super(msg); + _sharedLibName = sharedLibName; + } + + string sharedLibName() + { + return _sharedLibName; + } + +private: + string _sharedLibName; +} + +/** +* This exception is thrown when a symbol cannot be loaded from a shared library, +* either because it does not exist in the library or because the library is corrupt. +*/ +class SymbolLoadException : DerelictException +{ +public: + this(string msg) + { + super(msg); + } + + this(string sharedLibName, string symbolName) + { + super("Failed to load symbol " ~ symbolName ~ " from shared library " ~ sharedLibName); + _symbolName = symbolName; + } + + string symbolName() + { + return _symbolName; + } + +private: + string _symbolName; +} + +alias SymbolLoadException SharedLibProcLoadException; + +//****************************************************************************** + +/** +* The MissingSymbolCallback allows the app to handle the case of missing symbols. By default, +* a SharedLibSymbolLoadException is thrown. However, if a the app determines that +* particular symbol is not needed, the callback can return true. This will cause +* the shared library to continue loading. Returning false will cause the exception +* to be thrown. +*/ +alias bool function(string libName, string symbolName) MissingSymbolCallback; +alias MissingSymbolCallback MissingProcCallback; + +private MissingSymbolCallback missingSymbolCallback; + +public void Derelict_HandleMissingSymbol(string libName, string symbolName) +{ + bool result = false; + if(missingSymbolCallback !is null) + result = missingSymbolCallback(libName, symbolName); + if(!result) + throw new SymbolLoadException(libName, symbolName); +} +alias Derelict_HandleMissingSymbol Derelict_HandleMissingProc; + +void Derelict_SetMissingSymbolCallback(MissingSymbolCallback callback) +{ + missingSymbolCallback = callback; +} alias Derelict_SetMissingSymbolCallback Derelict_SetMissingProcCallback; \ No newline at end of file diff --git a/src/derelict/util/loader.d b/src/derelict/util/loader.d old mode 100755 new mode 100644 index 443eda04..e070deeb --- a/src/derelict/util/loader.d +++ b/src/derelict/util/loader.d @@ -1,152 +1,152 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.util.loader; - -private -{ - import derelict.util.sharedlib; - import derelict.util.compat; -} - -class SharedLibLoader -{ -public: - this(string winLibs, string nixLibs, string macLibs) - { - version(Windows) - { - _libNames = winLibs; - } - else version(OSX) - { - _libNames = macLibs; - } - else version(darwin) - { - _libNames = macLibs; - } - else - { - _libNames = nixLibs; - } - - _lib = new SharedLib(); - } - - static void disableAutoUnload() - { - _manualUnload = true; - } - - static bool isAutoUnloadEnabled() - { - return (_manualUnload == false); - } - - void load() - { - load(_libNames); - } - - void load(string libNameString) - { - assert(libNameString !is null); - - string[] libNames = libNameString.splitStr(","); - foreach(ref string l; libNames) - { - l = l.stripWhiteSpace(); - } - - load(libNames); - } - - void load(string[] libNames) - { - _lib.load(libNames); - loadSymbols(); - } - - void unload() - { - _lib.unload(); - } - - bool isLoaded() - { - return _lib.isLoaded; - } - -protected: - abstract void loadSymbols(); - - void* loadSymbol(string name) - { - return _lib.loadSymbol(name); - } - - SharedLib lib() - { - return _lib; - } - - void bindFunc(void** ptr, string funcName, bool doThrow = true) - { - void* func = lib.loadSymbol(funcName, doThrow); - *ptr = func; - } - -private: - static bool _manualUnload; - string _libNames; - SharedLib _lib; -} - -/* -* These templates need to stick around a bit longer, until the macinit stuff -in Derelict SDL gets sorted -*/ -package struct Binder(T) { - void opCall(in char[] n, SharedLib lib) { - *fptr = lib.loadSymbol(n); - } - - - private { - void** fptr; - } -} - - -template bindFunc(T) { - Binder!(T) bindFunc(inout T a) { - Binder!(T) res; - res.fptr = cast(void**)&a; - return res; - } +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.util.loader; + +private +{ + import derelict.util.sharedlib; + import derelict.util.compat; +} + +class SharedLibLoader +{ +public: + this(string winLibs, string nixLibs, string macLibs) + { + version(Windows) + { + _libNames = winLibs; + } + else version(OSX) + { + _libNames = macLibs; + } + else version(darwin) + { + _libNames = macLibs; + } + else + { + _libNames = nixLibs; + } + + _lib = new SharedLib(); + } + + static void disableAutoUnload() + { + _manualUnload = true; + } + + static bool isAutoUnloadEnabled() + { + return (_manualUnload == false); + } + + void load() + { + load(_libNames); + } + + void load(string libNameString) + { + assert(libNameString !is null); + + string[] libNames = libNameString.splitStr(","); + foreach(ref string l; libNames) + { + l = l.stripWhiteSpace(); + } + + load(libNames); + } + + void load(string[] libNames) + { + _lib.load(libNames); + loadSymbols(); + } + + void unload() + { + _lib.unload(); + } + + bool isLoaded() + { + return _lib.isLoaded; + } + +protected: + abstract void loadSymbols(); + + void* loadSymbol(string name) + { + return _lib.loadSymbol(name); + } + + SharedLib lib() + { + return _lib; + } + + void bindFunc(void** ptr, string funcName, bool doThrow = true) + { + void* func = lib.loadSymbol(funcName, doThrow); + *ptr = func; + } + +private: + static bool _manualUnload; + string _libNames; + SharedLib _lib; +} + +/* +* These templates need to stick around a bit longer, until the macinit stuff +in Derelict SDL gets sorted +*/ +package struct Binder(T) { + void opCall(in char[] n, SharedLib lib) { + *fptr = lib.loadSymbol(n); + } + + + private { + void** fptr; + } +} + + +template bindFunc(T) { + Binder!(T) bindFunc(inout T a) { + Binder!(T) res; + res.fptr = cast(void**)&a; + return res; + } } \ No newline at end of file diff --git a/src/derelict/util/sharedlib.d b/src/derelict/util/sharedlib.d old mode 100755 new mode 100644 index 2b7f295d..23042730 --- a/src/derelict/util/sharedlib.d +++ b/src/derelict/util/sharedlib.d @@ -1,247 +1,247 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.util.sharedlib; - -private -{ - import derelict.util.exception; - import derelict.util.compat; -} - -version(linux) -{ - version = Nix; -} -else version(darwin) -{ - version = Nix; -} -else version(OSX) -{ - version = Nix; -} -else version(FreeBSD) -{ - version = Nix; - version = freebsd; -} -else version(freebsd) -{ - version = Nix; -} -else version(Unix) -{ - version = Nix; -} -else version(Posix) -{ - version = Nix; -} - -version(Nix) -{ - // for people using DSSS, tell it to link the executable with libdl - version(build) - { - version(freebsd) - { - // the dl* functions are in libc on FreeBSD - } - else pragma(link, "dl"); - } - - version(Tango) - { - private import tango.sys.Common; - } - else version(linux) - { +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.util.sharedlib; + +private +{ + import derelict.util.exception; + import derelict.util.compat; +} + +version(linux) +{ + version = Nix; +} +else version(darwin) +{ + version = Nix; +} +else version(OSX) +{ + version = Nix; +} +else version(FreeBSD) +{ + version = Nix; + version = freebsd; +} +else version(freebsd) +{ + version = Nix; +} +else version(Unix) +{ + version = Nix; +} +else version(Posix) +{ + version = Nix; +} + +version(Nix) +{ + // for people using DSSS, tell it to link the executable with libdl + version(build) + { + version(freebsd) + { + // the dl* functions are in libc on FreeBSD + } + else pragma(link, "dl"); + } + + version(Tango) + { + private import tango.sys.Common; + } + else version(linux) + { //private import std.c.linux.linux; - private import core.sys.posix.dlfcn; - } - else - { - extern(C) - { - /* From - * See http://www.opengroup.org/onlinepubs/007908799/xsh/dlsym.html - */ - - const int RTLD_NOW = 2; - - void *dlopen(CCPTR file, int mode); - int dlclose(void* handle); - void *dlsym(void* handle, CCPTR name); - CCPTR dlerror(); - } - } - - alias void* SharedLibHandle; - - private SharedLibHandle LoadSharedLib(string libName) - { - return dlopen(toCString(libName), RTLD_NOW); - } - - private void UnloadSharedLib(SharedLibHandle hlib) - { - dlclose(hlib); - } - - private void* GetSymbol(SharedLibHandle hlib, string symbolName) - { - return dlsym(hlib, toCString(symbolName)); - } - - private string GetErrorStr() - { - CCPTR err = dlerror(); - if(err is null) - return "Uknown Error"; - - return toDString(err); - } - -} -else version(Windows) -{ - private import derelict.util.wintypes; - alias HMODULE SharedLibHandle; - - private SharedLibHandle LoadSharedLib(string libName) - { - return LoadLibraryA(toCString(libName)); - } - - private void UnloadSharedLib(SharedLibHandle hlib) - { - FreeLibrary(hlib); - } - - private void* GetSymbol(SharedLibHandle hlib, string symbolName) - { - return GetProcAddress(hlib, toCString(symbolName)); - } - - private string GetErrorStr() - { - // adapted from Tango - - DWORD errcode = GetLastError(); - - LPCSTR msgBuf; - DWORD i = FormatMessageA( - FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - null, - errcode, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - cast(LPCSTR)&msgBuf, - 0, - null); - - string text = toDString(msgBuf); - LocalFree(cast(HLOCAL)msgBuf); - - if(i >= 2) - i -= 2; - return text[0 .. i]; - } -} -else -{ - static assert(0, "Derelict does not support this platform."); -} - -final class SharedLib -{ -public: - this() - { - } - - string name() - { - return _name; - } - - bool isLoaded() - { - return (_hlib !is null); - } - - void load(string[] names) - { - if(isLoaded) - return; - - string[] failedLibs; - string[] reasons; - - foreach(n; names) - { - _hlib = LoadSharedLib(n); - if(_hlib !is null) - { - _name = n; - break; - } - - failedLibs ~= n; - reasons ~= GetErrorStr(); - } - - if(!isLoaded) - { - SharedLibLoadException.throwNew(failedLibs, reasons); - } - } - - void* loadSymbol(string symbolName, bool doThrow = true) - { - void* sym = GetSymbol(_hlib, symbolName); - if(doThrow && (sym is null)) - Derelict_HandleMissingSymbol(name, symbolName); - - return sym; - } - - void unload() - { - if(isLoaded) - { - UnloadSharedLib(_hlib); - _hlib = null; - } - } - -private: - string _name; - SharedLibHandle _hlib; -} + private import core.sys.posix.dlfcn; + } + else + { + extern(C) + { + /* From + * See http://www.opengroup.org/onlinepubs/007908799/xsh/dlsym.html + */ + + const int RTLD_NOW = 2; + + void *dlopen(CCPTR file, int mode); + int dlclose(void* handle); + void *dlsym(void* handle, CCPTR name); + CCPTR dlerror(); + } + } + + alias void* SharedLibHandle; + + private SharedLibHandle LoadSharedLib(string libName) + { + return dlopen(toCString(libName), RTLD_NOW); + } + + private void UnloadSharedLib(SharedLibHandle hlib) + { + dlclose(hlib); + } + + private void* GetSymbol(SharedLibHandle hlib, string symbolName) + { + return dlsym(hlib, toCString(symbolName)); + } + + private string GetErrorStr() + { + CCPTR err = dlerror(); + if(err is null) + return "Uknown Error"; + + return toDString(err); + } + +} +else version(Windows) +{ + private import derelict.util.wintypes; + alias HMODULE SharedLibHandle; + + private SharedLibHandle LoadSharedLib(string libName) + { + return LoadLibraryA(toCString(libName)); + } + + private void UnloadSharedLib(SharedLibHandle hlib) + { + FreeLibrary(hlib); + } + + private void* GetSymbol(SharedLibHandle hlib, string symbolName) + { + return GetProcAddress(hlib, toCString(symbolName)); + } + + private string GetErrorStr() + { + // adapted from Tango + + DWORD errcode = GetLastError(); + + LPCSTR msgBuf; + DWORD i = FormatMessageA( + FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + null, + errcode, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + cast(LPCSTR)&msgBuf, + 0, + null); + + string text = toDString(msgBuf); + LocalFree(cast(HLOCAL)msgBuf); + + if(i >= 2) + i -= 2; + return text[0 .. i]; + } +} +else +{ + static assert(0, "Derelict does not support this platform."); +} + +final class SharedLib +{ +public: + this() + { + } + + string name() + { + return _name; + } + + bool isLoaded() + { + return (_hlib !is null); + } + + void load(string[] names) + { + if(isLoaded) + return; + + string[] failedLibs; + string[] reasons; + + foreach(n; names) + { + _hlib = LoadSharedLib(n); + if(_hlib !is null) + { + _name = n; + break; + } + + failedLibs ~= n; + reasons ~= GetErrorStr(); + } + + if(!isLoaded) + { + SharedLibLoadException.throwNew(failedLibs, reasons); + } + } + + void* loadSymbol(string symbolName, bool doThrow = true) + { + void* sym = GetSymbol(_hlib, symbolName); + if(doThrow && (sym is null)) + Derelict_HandleMissingSymbol(name, symbolName); + + return sym; + } + + void unload() + { + if(isLoaded) + { + UnloadSharedLib(_hlib); + _hlib = null; + } + } + +private: + string _name; + SharedLibHandle _hlib; +} diff --git a/src/derelict/util/wintypes.d b/src/derelict/util/wintypes.d old mode 100755 new mode 100644 index a90a283b..e5292501 --- a/src/derelict/util/wintypes.d +++ b/src/derelict/util/wintypes.d @@ -1,243 +1,243 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.util.wintypes; - -private -{ - import derelict.util.compat; -} - -/* -This module is used internally to avoid any dependence upon external Win32 modules. -Considering that there are modules in Phobos, Tango, and the Bindings project at -DSource, we want to avoid any conflicts with whichever implementation Derelict users choose. -*/ -version(Windows) -{ - alias uint DWORD; - alias ushort WORD; - alias ushort USHORT; - alias uint UINT; - alias int INT; - alias int LONG; - alias ubyte BYTE; - alias float FLOAT; - alias int BOOL; - alias DWORD COLORREF; - - alias CCPTR LPCSTR; - alias void* LPVOID; - - alias void* HANDLE; - alias HANDLE HDC; - alias HANDLE HGLRC; - alias HANDLE HINSTANCE; - alias HANDLE HMODULE; - alias HANDLE HWND; - alias HANDLE HLOCAL; - alias HANDLE HPALETTE; - alias HANDLE HBITMAP; - - alias UINT WPARAM; - alias LONG LPARAM; - - alias int function() FARPROC; - - struct LAYERPLANEDESCRIPTOR - { - WORD nSize; - WORD nVersion; - DWORD dwFlags; - BYTE iPixelType; - BYTE cColorBits; - BYTE cRedBits; - BYTE cRedShift; - BYTE cGreenBits; - BYTE cGreenShift; - BYTE cBlueBits; - BYTE cBlueShift; - BYTE cAlphaBits; - BYTE cAlphaShift; - BYTE cAccumBits; - BYTE cAccumRedBits; - BYTE cAccumGreenBits; - BYTE cAccumBlueBits; - BYTE cAccumAlphaBits; - BYTE cDepthBits; - BYTE cStencilBits; - BYTE cAuxBuffers; - BYTE iLayerPlane; - BYTE bReserved; - COLORREF crTransparent; - } - - struct POINTFLOAT - { - FLOAT x; - FLOAT y; - } - - struct GLYPHMETRICSFLOAT - { - FLOAT gmfBlackBoxX; - FLOAT gmfBlackBoxY; - POINTFLOAT gmfptGlyphOrigin; - FLOAT gmfCellIncX; - FLOAT gmfCellIncY; - } - - struct PIXELFORMATDESCRIPTOR - { - WORD nSize; - WORD nVersion; - DWORD dwFlags; - BYTE iPixelType; - BYTE cColorBits; - BYTE cRedBits; - BYTE cRedShift; - BYTE cGreenBits; - BYTE cGreenShift; - BYTE cBlueBits; - BYTE cBlueShift; - BYTE cAlphaBits; - BYTE cAlphaShift; - BYTE cAccumBits; - BYTE cAccumRedBits; - BYTE cAccumGreenBits; - BYTE cAccumBlueBits; - BYTE cAccumAlphaBits; - BYTE cDepthBits; - BYTE cStencilBits; - BYTE cAuxBuffers; - BYTE iLayerType; - BYTE bReserved; - DWORD dwLayerMask; - DWORD dwVisibleMask; - DWORD dwDamageMask; - } - - struct VA_LIST {} - - enum : BYTE - { - PFD_TYPE_RGBA = 0, - PFD_TYPE_COLORINDEX = 1 - } - - enum - { - PFD_MAIN_PLANE = 0, - PFD_OVERLAY_PLANE = 1, - PFD_UNDERLAY_PLANE = -1 - } - - enum - { - PFD_DOUBLEBUFFER = 0x00000001, - PFD_STEREO = 0x00000002, - PFD_DRAW_TO_WINDOW = 0x00000004, - PFD_DRAW_TO_BITMAP = 0x00000008, - PFD_SUPPORT_GDI = 0x00000010, - PFD_SUPPORT_OPENGL = 0x00000020, - PFD_GENERIC_FORMAT = 0x00000040, - PFD_NEED_PALETTE = 0x00000080, - PFD_NEED_SYSTEM_PALETTE = 0x00000100, - PFD_SWAP_EXCHANGE = 0x00000200, - PFD_SWAP_COPY = 0x00000400, - PFD_SWAP_LAYER_BUFFERS = 0x00000800, - PFD_GENERIC_ACCELERATED = 0x00001000, - PFD_SUPPORT_DIRECTDRAW = 0x00002000, - PFD_DEPTH_DONTCARE = 0x20000000, - PFD_DOUBLBUFFER_DONTCARE = 0x40000000, - PFD_STEREO_DONTCARE = 0x80000000, - } - - enum - { - LANG_NEUTRAL = 0, - SUBLANG_DEFAULT = 1, - FORMAT_MESSAGE_ALLOCATE_BUFFER = 256, - FORMAT_MESSAGE_IGNORE_INSERTS = 512, - FORMAT_MESSAGE_FROM_SYSTEM = 4096 - } - - struct RGBQUAD { - BYTE rgbBlue; - BYTE rgbGreen; - BYTE rgbRed; - BYTE rgbReserved; - } - - struct BITMAPINFOHEADER - { - DWORD biSize; - LONG biWidth; - LONG biHeight; - WORD biPlanes; - WORD biBitCount; - DWORD biCompression; - DWORD biSizeImage; - LONG biXPelsPerMeter; - LONG biYPelsPerMeter; - DWORD biClrUsed; - DWORD biClrImportant; - } - - struct BITMAPINFO { - BITMAPINFOHEADER bmiHeader; - RGBQUAD[1] bmiColors; - } - - struct RECT - { - LONG left; - LONG top; - LONG right; - LONG bottom; - } - - extern(Windows) - { - int ChoosePixelFormat(HDC,PIXELFORMATDESCRIPTOR*); - int GetPixelFormat(HDC); - int DescribePixelFormat(HDC,int,UINT,PIXELFORMATDESCRIPTOR*); - BOOL SwapBuffers(HDC); - - HMODULE LoadLibraryA(LPCSTR); - FARPROC GetProcAddress(HMODULE, LPCSTR); - void FreeLibrary(HMODULE); - DWORD GetLastError(); - DWORD FormatMessageA(DWORD, in void*, DWORD, DWORD, LPCSTR, DWORD, VA_LIST*); - HLOCAL LocalFree(HLOCAL); - } - - DWORD MAKELANGID(WORD p, WORD s) - { - return (((cast(WORD)s) << 10) | cast(WORD)p); - } +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.util.wintypes; + +private +{ + import derelict.util.compat; +} + +/* +This module is used internally to avoid any dependence upon external Win32 modules. +Considering that there are modules in Phobos, Tango, and the Bindings project at +DSource, we want to avoid any conflicts with whichever implementation Derelict users choose. +*/ +version(Windows) +{ + alias uint DWORD; + alias ushort WORD; + alias ushort USHORT; + alias uint UINT; + alias int INT; + alias int LONG; + alias ubyte BYTE; + alias float FLOAT; + alias int BOOL; + alias DWORD COLORREF; + + alias CCPTR LPCSTR; + alias void* LPVOID; + + alias void* HANDLE; + alias HANDLE HDC; + alias HANDLE HGLRC; + alias HANDLE HINSTANCE; + alias HANDLE HMODULE; + alias HANDLE HWND; + alias HANDLE HLOCAL; + alias HANDLE HPALETTE; + alias HANDLE HBITMAP; + + alias UINT WPARAM; + alias LONG LPARAM; + + alias int function() FARPROC; + + struct LAYERPLANEDESCRIPTOR + { + WORD nSize; + WORD nVersion; + DWORD dwFlags; + BYTE iPixelType; + BYTE cColorBits; + BYTE cRedBits; + BYTE cRedShift; + BYTE cGreenBits; + BYTE cGreenShift; + BYTE cBlueBits; + BYTE cBlueShift; + BYTE cAlphaBits; + BYTE cAlphaShift; + BYTE cAccumBits; + BYTE cAccumRedBits; + BYTE cAccumGreenBits; + BYTE cAccumBlueBits; + BYTE cAccumAlphaBits; + BYTE cDepthBits; + BYTE cStencilBits; + BYTE cAuxBuffers; + BYTE iLayerPlane; + BYTE bReserved; + COLORREF crTransparent; + } + + struct POINTFLOAT + { + FLOAT x; + FLOAT y; + } + + struct GLYPHMETRICSFLOAT + { + FLOAT gmfBlackBoxX; + FLOAT gmfBlackBoxY; + POINTFLOAT gmfptGlyphOrigin; + FLOAT gmfCellIncX; + FLOAT gmfCellIncY; + } + + struct PIXELFORMATDESCRIPTOR + { + WORD nSize; + WORD nVersion; + DWORD dwFlags; + BYTE iPixelType; + BYTE cColorBits; + BYTE cRedBits; + BYTE cRedShift; + BYTE cGreenBits; + BYTE cGreenShift; + BYTE cBlueBits; + BYTE cBlueShift; + BYTE cAlphaBits; + BYTE cAlphaShift; + BYTE cAccumBits; + BYTE cAccumRedBits; + BYTE cAccumGreenBits; + BYTE cAccumBlueBits; + BYTE cAccumAlphaBits; + BYTE cDepthBits; + BYTE cStencilBits; + BYTE cAuxBuffers; + BYTE iLayerType; + BYTE bReserved; + DWORD dwLayerMask; + DWORD dwVisibleMask; + DWORD dwDamageMask; + } + + struct VA_LIST {} + + enum : BYTE + { + PFD_TYPE_RGBA = 0, + PFD_TYPE_COLORINDEX = 1 + } + + enum + { + PFD_MAIN_PLANE = 0, + PFD_OVERLAY_PLANE = 1, + PFD_UNDERLAY_PLANE = -1 + } + + enum + { + PFD_DOUBLEBUFFER = 0x00000001, + PFD_STEREO = 0x00000002, + PFD_DRAW_TO_WINDOW = 0x00000004, + PFD_DRAW_TO_BITMAP = 0x00000008, + PFD_SUPPORT_GDI = 0x00000010, + PFD_SUPPORT_OPENGL = 0x00000020, + PFD_GENERIC_FORMAT = 0x00000040, + PFD_NEED_PALETTE = 0x00000080, + PFD_NEED_SYSTEM_PALETTE = 0x00000100, + PFD_SWAP_EXCHANGE = 0x00000200, + PFD_SWAP_COPY = 0x00000400, + PFD_SWAP_LAYER_BUFFERS = 0x00000800, + PFD_GENERIC_ACCELERATED = 0x00001000, + PFD_SUPPORT_DIRECTDRAW = 0x00002000, + PFD_DEPTH_DONTCARE = 0x20000000, + PFD_DOUBLBUFFER_DONTCARE = 0x40000000, + PFD_STEREO_DONTCARE = 0x80000000, + } + + enum + { + LANG_NEUTRAL = 0, + SUBLANG_DEFAULT = 1, + FORMAT_MESSAGE_ALLOCATE_BUFFER = 256, + FORMAT_MESSAGE_IGNORE_INSERTS = 512, + FORMAT_MESSAGE_FROM_SYSTEM = 4096 + } + + struct RGBQUAD { + BYTE rgbBlue; + BYTE rgbGreen; + BYTE rgbRed; + BYTE rgbReserved; + } + + struct BITMAPINFOHEADER + { + DWORD biSize; + LONG biWidth; + LONG biHeight; + WORD biPlanes; + WORD biBitCount; + DWORD biCompression; + DWORD biSizeImage; + LONG biXPelsPerMeter; + LONG biYPelsPerMeter; + DWORD biClrUsed; + DWORD biClrImportant; + } + + struct BITMAPINFO { + BITMAPINFOHEADER bmiHeader; + RGBQUAD[1] bmiColors; + } + + struct RECT + { + LONG left; + LONG top; + LONG right; + LONG bottom; + } + + extern(Windows) + { + int ChoosePixelFormat(HDC,PIXELFORMATDESCRIPTOR*); + int GetPixelFormat(HDC); + int DescribePixelFormat(HDC,int,UINT,PIXELFORMATDESCRIPTOR*); + BOOL SwapBuffers(HDC); + + HMODULE LoadLibraryA(LPCSTR); + FARPROC GetProcAddress(HMODULE, LPCSTR); + void FreeLibrary(HMODULE); + DWORD GetLastError(); + DWORD FormatMessageA(DWORD, in void*, DWORD, DWORD, LPCSTR, DWORD, VA_LIST*); + HLOCAL LocalFree(HLOCAL); + } + + DWORD MAKELANGID(WORD p, WORD s) + { + return (((cast(WORD)s) << 10) | cast(WORD)p); + } } diff --git a/src/derelict/util/xtypes.d b/src/derelict/util/xtypes.d old mode 100755 new mode 100644 index 930aaba2..c5156468 --- a/src/derelict/util/xtypes.d +++ b/src/derelict/util/xtypes.d @@ -1,88 +1,88 @@ -/* - -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -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, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -*/ -module derelict.util.xtypes; - -version (freebsd) -{ - version = GLX; -} - -else version (FreeBSD) -{ - version = GLX; -} - -else version (linux) -{ - version = GLX; -} - -version(GLX) -{ - alias int Bool; - alias uint VisualID; - alias byte* XPointer; - - alias void Display; - alias uint XID; - alias XID Pixmap; - alias XID Font; - alias XID Window; - - struct XExtData - { - int number; - XExtData* next; - extern(C) int function(XExtData*) free_private; - XPointer private_data; - } - - struct Visual - { - XExtData* ext_data; - VisualID visualid; - int _class; - uint red_mask, green_mask, blue_mask; - int bits_per_rgb; - int map_entries; - } - - struct XVisualInfo - { - Visual *visual; - VisualID visualid; - int screen; - int depth; - int _class; - uint red_mask; - uint green_mask; - uint blue_mask; - int colormap_size; - int bits_per_rgb; - } -} +/* + +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +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, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +*/ +module derelict.util.xtypes; + +version (freebsd) +{ + version = GLX; +} + +else version (FreeBSD) +{ + version = GLX; +} + +else version (linux) +{ + version = GLX; +} + +version(GLX) +{ + alias int Bool; + alias uint VisualID; + alias byte* XPointer; + + alias void Display; + alias uint XID; + alias XID Pixmap; + alias XID Font; + alias XID Window; + + struct XExtData + { + int number; + XExtData* next; + extern(C) int function(XExtData*) free_private; + XPointer private_data; + } + + struct Visual + { + XExtData* ext_data; + VisualID visualid; + int _class; + uint red_mask, green_mask, blue_mask; + int bits_per_rgb; + int map_entries; + } + + struct XVisualInfo + { + Visual *visual; + VisualID visualid; + int screen; + int depth; + int _class; + uint red_mask; + uint green_mask; + uint blue_mask; + int colormap_size; + int bits_per_rgb; + } +}