diff --git a/Source/Core/Common/Common.vcxproj b/Source/Core/Common/Common.vcxproj
index f92679a1b6..8aa21e1055 100644
--- a/Source/Core/Common/Common.vcxproj
+++ b/Source/Core/Common/Common.vcxproj
@@ -62,6 +62,7 @@
+
@@ -69,17 +70,21 @@
+
+
+
+
@@ -87,10 +92,12 @@
+
+
@@ -193,4 +200,4 @@
-
\ No newline at end of file
+
diff --git a/Source/Core/Common/Common.vcxproj.filters b/Source/Core/Common/Common.vcxproj.filters
index e708d237dd..26c75e4145 100644
--- a/Source/Core/Common/Common.vcxproj.filters
+++ b/Source/Core/Common/Common.vcxproj.filters
@@ -87,6 +87,9 @@
GL
+
+ GL\GLExtensions
+
GL\GLExtensions
@@ -108,6 +111,9 @@
GL\GLExtensions
+
+ GL\GLExtensions
+
GL\GLExtensions
@@ -117,12 +123,18 @@
GL\GLExtensions
+
+ GL\GLExtensions
+
GL\GLExtensions
GL\GLExtensions
+
+ GL\GLExtensions
+
GL\GLExtensions
@@ -141,6 +153,9 @@
GL\GLExtensions
+
+ GL\GLExtensions
+
GL\GLExtensions
@@ -159,6 +174,9 @@
GL\GLExtensions
+
+ GL\GLExtensions
+
GL\GLExtensions
@@ -174,6 +192,9 @@
GL\GLExtensions
+
+ GL\GLExtensions
+
GL\GLExtensions
@@ -258,4 +279,4 @@
-
\ No newline at end of file
+
diff --git a/Source/Core/Common/GL/GLExtensions/AMD_pinned_memory.h b/Source/Core/Common/GL/GLExtensions/AMD_pinned_memory.h
new file mode 100644
index 0000000000..dd0034ec79
--- /dev/null
+++ b/Source/Core/Common/GL/GLExtensions/AMD_pinned_memory.h
@@ -0,0 +1,27 @@
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+
+#include "Common/GL/GLExtensions/gl_common.h"
+
+#define GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD 0x9160
+
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_ES2_compatibility.h b/Source/Core/Common/GL/GLExtensions/ARB_ES2_compatibility.h
index 10b368dc07..42f00d7495 100644
--- a/Source/Core/Common/GL/GLExtensions/ARB_ES2_compatibility.h
+++ b/Source/Core/Common/GL/GLExtensions/ARB_ES2_compatibility.h
@@ -1,12 +1,42 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLCLEARDEPTHFPROC glClearDepthf;
-extern PFNGLDEPTHRANGEFPROC glDepthRangef;
-extern PFNGLGETSHADERPRECISIONFORMATPROC glGetShaderPrecisionFormat;
-extern PFNGLRELEASESHADERCOMPILERPROC glReleaseShaderCompiler;
-extern PFNGLSHADERBINARYPROC glShaderBinary;
+typedef void (APIENTRYP PFNDOLRELEASESHADERCOMPILERPROC) (void);
+typedef void (APIENTRYP PFNDOLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length);
+typedef void (APIENTRYP PFNDOLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
+typedef void (APIENTRYP PFNDOLDEPTHRANGEFPROC) (GLfloat n, GLfloat f);
+typedef void (APIENTRYP PFNDOLCLEARDEPTHFPROC) (GLfloat d);
+extern PFNDOLCLEARDEPTHFPROC dolClearDepthf;
+extern PFNDOLDEPTHRANGEFPROC dolDepthRangef;
+extern PFNDOLGETSHADERPRECISIONFORMATPROC dolGetShaderPrecisionFormat;
+extern PFNDOLRELEASESHADERCOMPILERPROC dolReleaseShaderCompiler;
+extern PFNDOLSHADERBINARYPROC dolShaderBinary;
+
+#define glClearDepthf dolClearDepthf
+#define glDepthRangef dolDepthRangef
+#define glGetShaderPrecisionFormat dolGetShaderPrecisionFormat
+#define glReleaseShaderCompiler dolReleaseShaderCompiler
+#define glShaderBinary dolShaderBinary
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_ES3_compatibility.h b/Source/Core/Common/GL/GLExtensions/ARB_ES3_compatibility.h
new file mode 100644
index 0000000000..bc0e7eaca8
--- /dev/null
+++ b/Source/Core/Common/GL/GLExtensions/ARB_ES3_compatibility.h
@@ -0,0 +1,39 @@
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+
+#include "Common/GL/GLExtensions/gl_common.h"
+
+#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
+#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69
+#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A
+#define GL_MAX_ELEMENT_INDEX 0x8D6B
+#define GL_COMPRESSED_R11_EAC 0x9270
+#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271
+#define GL_COMPRESSED_RG11_EAC 0x9272
+#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273
+#define GL_COMPRESSED_RGB8_ETC2 0x9274
+#define GL_COMPRESSED_SRGB8_ETC2 0x9275
+#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276
+#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277
+#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278
+#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_blend_func_extended.h b/Source/Core/Common/GL/GLExtensions/ARB_blend_func_extended.h
index 2b1d7c34e9..b050f5f958 100644
--- a/Source/Core/Common/GL/GLExtensions/ARB_blend_func_extended.h
+++ b/Source/Core/Common/GL/GLExtensions/ARB_blend_func_extended.h
@@ -1,9 +1,38 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glBindFragDataLocationIndexed;
-extern PFNGLGETFRAGDATAINDEXPROC glGetFragDataIndex;
+#define GL_SRC1_COLOR 0x88F9
+#define GL_ONE_MINUS_SRC1_COLOR 0x88FA
+#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB
+#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC
+typedef void (APIENTRYP PFNDOLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
+typedef GLint (APIENTRYP PFNDOLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar *name);
+
+extern PFNDOLBINDFRAGDATALOCATIONINDEXEDPROC dolBindFragDataLocationIndexed;
+extern PFNDOLGETFRAGDATAINDEXPROC dolGetFragDataIndex;
+
+#define glBindFragDataLocationIndexed dolBindFragDataLocationIndexed
+#define glGetFragDataIndex dolGetFragDataIndex
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_buffer_storage.h b/Source/Core/Common/GL/GLExtensions/ARB_buffer_storage.h
index fe8f9b6826..a2ee3441b6 100644
--- a/Source/Core/Common/GL/GLExtensions/ARB_buffer_storage.h
+++ b/Source/Core/Common/GL/GLExtensions/ARB_buffer_storage.h
@@ -1,9 +1,43 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLBUFFERSTORAGEPROC glBufferStorage;
-extern PFNGLNAMEDBUFFERSTORAGEEXTPROC glNamedBufferStorageEXT;
+#define GL_MAP_READ_BIT 0x0001
+#define GL_MAP_WRITE_BIT 0x0002
+#define GL_MAP_PERSISTENT_BIT 0x00000040
+#define GL_MAP_COHERENT_BIT 0x00000080
+#define GL_DYNAMIC_STORAGE_BIT 0x0100
+#define GL_CLIENT_STORAGE_BIT 0x0200
+#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000
+#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F
+#define GL_BUFFER_STORAGE_FLAGS 0x8220
+typedef void (APIENTRYP PFNDOLBUFFERSTORAGEPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
+typedef void (APIENTRYP PFNDOLNAMEDBUFFERSTORAGEEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
+
+extern PFNDOLBUFFERSTORAGEPROC dolBufferStorage;
+extern PFNDOLNAMEDBUFFERSTORAGEEXTPROC dolNamedBufferStorageEXT;
+
+#define glBufferStorage dolBufferStorage
+#define glNamedBufferStorageEXT dolNamedBufferStorageEXT
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_clip_control.h b/Source/Core/Common/GL/GLExtensions/ARB_clip_control.h
index 512d562eba..df0964f391 100644
--- a/Source/Core/Common/GL/GLExtensions/ARB_clip_control.h
+++ b/Source/Core/Common/GL/GLExtensions/ARB_clip_control.h
@@ -1,8 +1,35 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLCLIPCONTROLPROC glClipControl;
+#define GL_NEGATIVE_ONE_TO_ONE 0x935E
+#define GL_ZERO_TO_ONE 0x935F
+#define GL_CLIP_ORIGIN 0x935C
+#define GL_CLIP_DEPTH_MODE 0x935D
+typedef void (APIENTRYP PFNDOLCLIPCONTROLPROC) (GLenum origin, GLenum depth);
+
+extern PFNDOLCLIPCONTROLPROC dolClipControl;
+
+#define glClipControl dolClipControl
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_copy_image.h b/Source/Core/Common/GL/GLExtensions/ARB_copy_image.h
index cb3e1a4367..c75957ecd8 100644
--- a/Source/Core/Common/GL/GLExtensions/ARB_copy_image.h
+++ b/Source/Core/Common/GL/GLExtensions/ARB_copy_image.h
@@ -1,7 +1,30 @@
-// Copyright 2015 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLCOPYIMAGESUBDATAPROC glCopyImageSubData;
+typedef void (APIENTRYP PFNDOLCOPYIMAGESUBDATAPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
+
+extern PFNDOLCOPYIMAGESUBDATAPROC dolCopyImageSubData;
+
+#define glCopyImageSubData dolCopyImageSubData
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_debug_output.h b/Source/Core/Common/GL/GLExtensions/ARB_debug_output.h
index 2bb3ae68c5..a0a11c1e65 100644
--- a/Source/Core/Common/GL/GLExtensions/ARB_debug_output.h
+++ b/Source/Core/Common/GL/GLExtensions/ARB_debug_output.h
@@ -1,11 +1,63 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLDEBUGMESSAGECALLBACKARBPROC glDebugMessageCallbackARB;
-extern PFNGLDEBUGMESSAGECONTROLARBPROC glDebugMessageControlARB;
-extern PFNGLDEBUGMESSAGEINSERTARBPROC glDebugMessageInsertARB;
-extern PFNGLGETDEBUGMESSAGELOGARBPROC glGetDebugMessageLogARB;
+typedef void (APIENTRYP GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
+#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242
+#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243
+#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244
+#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245
+#define GL_DEBUG_SOURCE_API_ARB 0x8246
+#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247
+#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248
+#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249
+#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A
+#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B
+#define GL_DEBUG_TYPE_ERROR_ARB 0x824C
+#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D
+#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E
+#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F
+#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250
+#define GL_DEBUG_TYPE_OTHER_ARB 0x8251
+#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143
+#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144
+#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145
+#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146
+#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147
+#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148
+typedef void (APIENTRYP PFNDOLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
+typedef void (APIENTRYP PFNDOLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
+typedef void (APIENTRYP PFNDOLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, const void *userParam);
+typedef GLuint (APIENTRYP PFNDOLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
+
+extern PFNDOLDEBUGMESSAGECALLBACKARBPROC dolDebugMessageCallbackARB;
+extern PFNDOLDEBUGMESSAGECONTROLARBPROC dolDebugMessageControlARB;
+extern PFNDOLDEBUGMESSAGEINSERTARBPROC dolDebugMessageInsertARB;
+extern PFNDOLGETDEBUGMESSAGELOGARBPROC dolGetDebugMessageLogARB;
+
+#define glDebugMessageCallbackARB dolDebugMessageCallbackARB
+#define glDebugMessageControlARB dolDebugMessageControlARB
+#define glDebugMessageInsertARB dolDebugMessageInsertARB
+#define glGetDebugMessageLogARB dolGetDebugMessageLogARB
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_draw_elements_base_vertex.h b/Source/Core/Common/GL/GLExtensions/ARB_draw_elements_base_vertex.h
index 57235ecee0..d4154e4940 100644
--- a/Source/Core/Common/GL/GLExtensions/ARB_draw_elements_base_vertex.h
+++ b/Source/Core/Common/GL/GLExtensions/ARB_draw_elements_base_vertex.h
@@ -1,11 +1,39 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLDRAWELEMENTSBASEVERTEXPROC glDrawElementsBaseVertex;
-extern PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glDrawElementsInstancedBaseVertex;
-extern PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glDrawRangeElementsBaseVertex;
-extern PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glMultiDrawElementsBaseVertex;
+typedef void (APIENTRYP PFNDOLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
+typedef void (APIENTRYP PFNDOLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
+typedef void (APIENTRYP PFNDOLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
+typedef void (APIENTRYP PFNDOLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex);
+extern PFNDOLDRAWELEMENTSBASEVERTEXPROC dolDrawElementsBaseVertex;
+extern PFNDOLDRAWELEMENTSINSTANCEDBASEVERTEXPROC dolDrawElementsInstancedBaseVertex;
+extern PFNDOLDRAWRANGEELEMENTSBASEVERTEXPROC dolDrawRangeElementsBaseVertex;
+extern PFNDOLMULTIDRAWELEMENTSBASEVERTEXPROC dolMultiDrawElementsBaseVertex;
+
+#define glDrawElementsBaseVertex dolDrawElementsBaseVertex
+#define glDrawElementsInstancedBaseVertex dolDrawElementsInstancedBaseVertex
+#define glDrawRangeElementsBaseVertex dolDrawRangeElementsBaseVertex
+#define glMultiDrawElementsBaseVertex dolMultiDrawElementsBaseVertex
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_framebuffer_object.h b/Source/Core/Common/GL/GLExtensions/ARB_framebuffer_object.h
index dcdecd5c82..3627707944 100644
--- a/Source/Core/Common/GL/GLExtensions/ARB_framebuffer_object.h
+++ b/Source/Core/Common/GL/GLExtensions/ARB_framebuffer_object.h
@@ -1,27 +1,87 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer;
-extern PFNGLBINDRENDERBUFFERPROC glBindRenderbuffer;
-extern PFNGLBLITFRAMEBUFFERPROC glBlitFramebuffer;
-extern PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
-extern PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers;
-extern PFNGLDELETERENDERBUFFERSPROC glDeleteRenderbuffers;
-extern PFNGLFRAMEBUFFERRENDERBUFFERPROC glFramebufferRenderbuffer;
-extern PFNGLFRAMEBUFFERTEXTURE1DPROC glFramebufferTexture1D;
-extern PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D;
-extern PFNGLFRAMEBUFFERTEXTURE3DPROC glFramebufferTexture3D;
-extern PFNGLFRAMEBUFFERTEXTURELAYERPROC glFramebufferTextureLayer;
-extern PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers;
-extern PFNGLGENRENDERBUFFERSPROC glGenRenderbuffers;
-extern PFNGLGENERATEMIPMAPPROC glGenerateMipmap;
-extern PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glGetFramebufferAttachmentParameteriv;
-extern PFNGLGETRENDERBUFFERPARAMETERIVPROC glGetRenderbufferParameteriv;
-extern PFNGLISFRAMEBUFFERPROC glIsFramebuffer;
-extern PFNGLISRENDERBUFFERPROC glIsRenderbuffer;
-extern PFNGLRENDERBUFFERSTORAGEPROC glRenderbufferStorage;
-extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glRenderbufferStorageMultisample;
+typedef void (APIENTRYP PFNDOLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer);
+typedef void (APIENTRYP PFNDOLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer);
+typedef void (APIENTRYP PFNDOLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+typedef GLenum (APIENTRYP PFNDOLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target);
+typedef void (APIENTRYP PFNDOLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers);
+typedef void (APIENTRYP PFNDOLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers);
+typedef void (APIENTRYP PFNDOLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+typedef void (APIENTRYP PFNDOLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNDOLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNDOLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+typedef void (APIENTRYP PFNDOLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+typedef void (APIENTRYP PFNDOLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers);
+typedef void (APIENTRYP PFNDOLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers);
+typedef void (APIENTRYP PFNDOLGENERATEMIPMAPPROC) (GLenum target);
+typedef void (APIENTRYP PFNDOLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNDOLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef GLboolean (APIENTRYP PFNDOLISFRAMEBUFFERPROC) (GLuint framebuffer);
+typedef GLboolean (APIENTRYP PFNDOLISRENDERBUFFERPROC) (GLuint renderbuffer);
+typedef void (APIENTRYP PFNDOLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNDOLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+extern PFNDOLBINDFRAMEBUFFERPROC dolBindFramebuffer;
+extern PFNDOLBINDRENDERBUFFERPROC dolBindRenderbuffer;
+extern PFNDOLBLITFRAMEBUFFERPROC dolBlitFramebuffer;
+extern PFNDOLCHECKFRAMEBUFFERSTATUSPROC dolCheckFramebufferStatus;
+extern PFNDOLDELETEFRAMEBUFFERSPROC dolDeleteFramebuffers;
+extern PFNDOLDELETERENDERBUFFERSPROC dolDeleteRenderbuffers;
+extern PFNDOLFRAMEBUFFERRENDERBUFFERPROC dolFramebufferRenderbuffer;
+extern PFNDOLFRAMEBUFFERTEXTURE1DPROC dolFramebufferTexture1D;
+extern PFNDOLFRAMEBUFFERTEXTURE2DPROC dolFramebufferTexture2D;
+extern PFNDOLFRAMEBUFFERTEXTURE3DPROC dolFramebufferTexture3D;
+extern PFNDOLFRAMEBUFFERTEXTURELAYERPROC dolFramebufferTextureLayer;
+extern PFNDOLGENFRAMEBUFFERSPROC dolGenFramebuffers;
+extern PFNDOLGENRENDERBUFFERSPROC dolGenRenderbuffers;
+extern PFNDOLGENERATEMIPMAPPROC dolGenerateMipmap;
+extern PFNDOLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC dolGetFramebufferAttachmentParameteriv;
+extern PFNDOLGETRENDERBUFFERPARAMETERIVPROC dolGetRenderbufferParameteriv;
+extern PFNDOLISFRAMEBUFFERPROC dolIsFramebuffer;
+extern PFNDOLISRENDERBUFFERPROC dolIsRenderbuffer;
+extern PFNDOLRENDERBUFFERSTORAGEPROC dolRenderbufferStorage;
+extern PFNDOLRENDERBUFFERSTORAGEMULTISAMPLEPROC dolRenderbufferStorageMultisample;
+
+#define glBindFramebuffer dolBindFramebuffer
+#define glBindRenderbuffer dolBindRenderbuffer
+#define glBlitFramebuffer dolBlitFramebuffer
+#define glCheckFramebufferStatus dolCheckFramebufferStatus
+#define glDeleteFramebuffers dolDeleteFramebuffers
+#define glDeleteRenderbuffers dolDeleteRenderbuffers
+#define glFramebufferRenderbuffer dolFramebufferRenderbuffer
+#define glFramebufferTexture1D dolFramebufferTexture1D
+#define glFramebufferTexture2D dolFramebufferTexture2D
+#define glFramebufferTexture3D dolFramebufferTexture3D
+#define glFramebufferTextureLayer dolFramebufferTextureLayer
+#define glGenFramebuffers dolGenFramebuffers
+#define glGenRenderbuffers dolGenRenderbuffers
+#define glGenerateMipmap dolGenerateMipmap
+#define glGetFramebufferAttachmentParameteriv dolGetFramebufferAttachmentParameteriv
+#define glGetRenderbufferParameteriv dolGetRenderbufferParameteriv
+#define glIsFramebuffer dolIsFramebuffer
+#define glIsRenderbuffer dolIsRenderbuffer
+#define glRenderbufferStorage dolRenderbufferStorage
+#define glRenderbufferStorageMultisample dolRenderbufferStorageMultisample
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_get_program_binary.h b/Source/Core/Common/GL/GLExtensions/ARB_get_program_binary.h
index bade5fdd54..8c834badaa 100644
--- a/Source/Core/Common/GL/GLExtensions/ARB_get_program_binary.h
+++ b/Source/Core/Common/GL/GLExtensions/ARB_get_program_binary.h
@@ -1,10 +1,41 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLGETPROGRAMBINARYPROC glGetProgramBinary;
-extern PFNGLPROGRAMBINARYPROC glProgramBinary;
-extern PFNGLPROGRAMPARAMETERIPROC glProgramParameteri;
+#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257
+#define GL_PROGRAM_BINARY_LENGTH 0x8741
+#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE
+#define GL_PROGRAM_BINARY_FORMATS 0x87FF
+typedef void (APIENTRYP PFNDOLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary);
+typedef void (APIENTRYP PFNDOLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
+typedef void (APIENTRYP PFNDOLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value);
+
+extern PFNDOLGETPROGRAMBINARYPROC dolGetProgramBinary;
+extern PFNDOLPROGRAMBINARYPROC dolProgramBinary;
+extern PFNDOLPROGRAMPARAMETERIPROC dolProgramParameteri;
+
+#define glGetProgramBinary dolGetProgramBinary
+#define glProgramBinary dolProgramBinary
+#define glProgramParameteri dolProgramParameteri
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_map_buffer_range.h b/Source/Core/Common/GL/GLExtensions/ARB_map_buffer_range.h
index d62deecc91..4e71748553 100644
--- a/Source/Core/Common/GL/GLExtensions/ARB_map_buffer_range.h
+++ b/Source/Core/Common/GL/GLExtensions/ARB_map_buffer_range.h
@@ -1,9 +1,33 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLFLUSHMAPPEDBUFFERRANGEPROC glFlushMappedBufferRange;
-extern PFNGLMAPBUFFERRANGEPROC glMapBufferRange;
+typedef void *(APIENTRYP PFNDOLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
+typedef void (APIENTRYP PFNDOLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
+extern PFNDOLFLUSHMAPPEDBUFFERRANGEPROC dolFlushMappedBufferRange;
+extern PFNDOLMAPBUFFERRANGEPROC dolMapBufferRange;
+
+#define glFlushMappedBufferRange dolFlushMappedBufferRange
+#define glMapBufferRange dolMapBufferRange
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_occlusion_query2.h b/Source/Core/Common/GL/GLExtensions/ARB_occlusion_query2.h
new file mode 100644
index 0000000000..7602eec46f
--- /dev/null
+++ b/Source/Core/Common/GL/GLExtensions/ARB_occlusion_query2.h
@@ -0,0 +1,26 @@
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+
+#include "Common/GL/GLExtensions/gl_common.h"
+
+#define GL_ANY_SAMPLES_PASSED 0x8C2F
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_sample_shading.h b/Source/Core/Common/GL/GLExtensions/ARB_sample_shading.h
index 40eea8b94d..fae8e8a313 100644
--- a/Source/Core/Common/GL/GLExtensions/ARB_sample_shading.h
+++ b/Source/Core/Common/GL/GLExtensions/ARB_sample_shading.h
@@ -1,8 +1,30 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLMINSAMPLESHADINGARBPROC glMinSampleShading;
+typedef void (APIENTRYP PFNDOLMINSAMPLESHADINGARBPROC) (GLfloat value);
+extern PFNDOLMINSAMPLESHADINGARBPROC dolMinSampleShading;
+
+#define glMinSampleShading dolMinSampleShading
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_sampler_objects.h b/Source/Core/Common/GL/GLExtensions/ARB_sampler_objects.h
index aac0acfa0f..99e244d908 100644
--- a/Source/Core/Common/GL/GLExtensions/ARB_sampler_objects.h
+++ b/Source/Core/Common/GL/GLExtensions/ARB_sampler_objects.h
@@ -1,21 +1,69 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLBINDSAMPLERPROC glBindSampler;
-extern PFNGLDELETESAMPLERSPROC glDeleteSamplers;
-extern PFNGLGENSAMPLERSPROC glGenSamplers;
-extern PFNGLGETSAMPLERPARAMETERIIVPROC glGetSamplerParameterIiv;
-extern PFNGLGETSAMPLERPARAMETERIUIVPROC glGetSamplerParameterIuiv;
-extern PFNGLGETSAMPLERPARAMETERFVPROC glGetSamplerParameterfv;
-extern PFNGLGETSAMPLERPARAMETERIVPROC glGetSamplerParameteriv;
-extern PFNGLISSAMPLERPROC glIsSampler;
-extern PFNGLSAMPLERPARAMETERIIVPROC glSamplerParameterIiv;
-extern PFNGLSAMPLERPARAMETERIUIVPROC glSamplerParameterIuiv;
-extern PFNGLSAMPLERPARAMETERFPROC glSamplerParameterf;
-extern PFNGLSAMPLERPARAMETERFVPROC glSamplerParameterfv;
-extern PFNGLSAMPLERPARAMETERIPROC glSamplerParameteri;
-extern PFNGLSAMPLERPARAMETERIVPROC glSamplerParameteriv;
+typedef void (APIENTRYP PFNDOLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers);
+typedef void (APIENTRYP PFNDOLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers);
+typedef GLboolean (APIENTRYP PFNDOLISSAMPLERPROC) (GLuint sampler);
+typedef void (APIENTRYP PFNDOLBINDSAMPLERPROC) (GLuint unit, GLuint sampler);
+typedef void (APIENTRYP PFNDOLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNDOLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param);
+typedef void (APIENTRYP PFNDOLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNDOLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param);
+typedef void (APIENTRYP PFNDOLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param);
+typedef void (APIENTRYP PFNDOLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param);
+typedef void (APIENTRYP PFNDOLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNDOLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNDOLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNDOLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params);
+extern PFNDOLBINDSAMPLERPROC dolBindSampler;
+extern PFNDOLDELETESAMPLERSPROC dolDeleteSamplers;
+extern PFNDOLGENSAMPLERSPROC dolGenSamplers;
+extern PFNDOLGETSAMPLERPARAMETERIIVPROC dolGetSamplerParameterIiv;
+extern PFNDOLGETSAMPLERPARAMETERIUIVPROC dolGetSamplerParameterIuiv;
+extern PFNDOLGETSAMPLERPARAMETERFVPROC dolGetSamplerParameterfv;
+extern PFNDOLGETSAMPLERPARAMETERIVPROC dolGetSamplerParameteriv;
+extern PFNDOLISSAMPLERPROC dolIsSampler;
+extern PFNDOLSAMPLERPARAMETERIIVPROC dolSamplerParameterIiv;
+extern PFNDOLSAMPLERPARAMETERIUIVPROC dolSamplerParameterIuiv;
+extern PFNDOLSAMPLERPARAMETERFPROC dolSamplerParameterf;
+extern PFNDOLSAMPLERPARAMETERFVPROC dolSamplerParameterfv;
+extern PFNDOLSAMPLERPARAMETERIPROC dolSamplerParameteri;
+extern PFNDOLSAMPLERPARAMETERIVPROC dolSamplerParameteriv;
+
+#define glBindSampler dolBindSampler
+#define glDeleteSamplers dolDeleteSamplers
+#define glGenSamplers dolGenSamplers
+#define glGetSamplerParameterIiv dolGetSamplerParameterIiv
+#define glGetSamplerParameterIuiv dolGetSamplerParameterIuiv
+#define glGetSamplerParameterfv dolGetSamplerParameterfv
+#define glGetSamplerParameteriv dolGetSamplerParameteriv
+#define glIsSampler dolIsSampler
+#define glSamplerParameterIiv dolSamplerParameterIiv
+#define glSamplerParameterIuiv dolSamplerParameterIuiv
+#define glSamplerParameterf dolSamplerParameterf
+#define glSamplerParameterfv dolSamplerParameterfv
+#define glSamplerParameteri dolSamplerParameteri
+#define glSamplerParameteriv dolSamplerParameteriv
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_shader_storage_buffer_object.h b/Source/Core/Common/GL/GLExtensions/ARB_shader_storage_buffer_object.h
new file mode 100644
index 0000000000..6af54a251a
--- /dev/null
+++ b/Source/Core/Common/GL/GLExtensions/ARB_shader_storage_buffer_object.h
@@ -0,0 +1,47 @@
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+
+#include "Common/GL/GLExtensions/gl_common.h"
+
+#define GL_SHADER_STORAGE_BARRIER_BIT 0x2000
+#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39
+#define GL_SHADER_STORAGE_BUFFER 0x90D2
+#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3
+#define GL_SHADER_STORAGE_BUFFER_START 0x90D4
+#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5
+#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6
+#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7
+#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8
+#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9
+#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA
+#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB
+#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC
+#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD
+#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE
+#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF
+
+typedef void (APIENTRY * PFNDOLSHADERSTORAGEBLOCKBINDINGPROC) (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
+
+extern PFNDOLSHADERSTORAGEBLOCKBINDINGPROC dolShaderStorageBlockBinding;
+
+#define glShaderStorageBlockBinding dolShaderStorageBlockBinding
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_sync.h b/Source/Core/Common/GL/GLExtensions/ARB_sync.h
index 9bad10fe46..12dbf34a52 100644
--- a/Source/Core/Common/GL/GLExtensions/ARB_sync.h
+++ b/Source/Core/Common/GL/GLExtensions/ARB_sync.h
@@ -1,14 +1,49 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLCLIENTWAITSYNCPROC glClientWaitSync;
-extern PFNGLDELETESYNCPROC glDeleteSync;
-extern PFNGLFENCESYNCPROC glFenceSync;
-extern PFNGLGETINTEGER64VPROC glGetInteger64v;
-extern PFNGLGETSYNCIVPROC glGetSynciv;
-extern PFNGLISSYNCPROC glIsSync;
-extern PFNGLWAITSYNCPROC glWaitSync;
+typedef GLsync (APIENTRYP PFNDOLFENCESYNCPROC) (GLenum condition, GLbitfield flags);
+typedef GLboolean (APIENTRYP PFNDOLISSYNCPROC) (GLsync sync);
+typedef void (APIENTRYP PFNDOLDELETESYNCPROC) (GLsync sync);
+typedef GLenum (APIENTRYP PFNDOLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
+typedef void (APIENTRYP PFNDOLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
+typedef void (APIENTRYP PFNDOLGETINTEGER64VPROC) (GLenum pname, GLint64 *data);
+typedef void (APIENTRYP PFNDOLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
+typedef void (APIENTRYP PFNDOLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data);
+extern PFNDOLCLIENTWAITSYNCPROC dolClientWaitSync;
+extern PFNDOLDELETESYNCPROC dolDeleteSync;
+extern PFNDOLFENCESYNCPROC dolFenceSync;
+extern PFNDOLGETINTEGER64VPROC dolGetInteger64v;
+extern PFNDOLGETSYNCIVPROC dolGetSynciv;
+extern PFNDOLISSYNCPROC dolIsSync;
+extern PFNDOLWAITSYNCPROC dolWaitSync;
+
+#define glClientWaitSync dolClientWaitSync
+#define glDeleteSync dolDeleteSync
+#define glFenceSync dolFenceSync
+#define glGetInteger64v dolGetInteger64v
+#define glGetSynciv dolGetSynciv
+#define glIsSync dolIsSync
+#define glWaitSync dolWaitSync
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_texture_multisample.h b/Source/Core/Common/GL/GLExtensions/ARB_texture_multisample.h
index 6fa1cc7e90..3a51d30cad 100644
--- a/Source/Core/Common/GL/GLExtensions/ARB_texture_multisample.h
+++ b/Source/Core/Common/GL/GLExtensions/ARB_texture_multisample.h
@@ -1,10 +1,39 @@
-// Copyright 2014 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLTEXIMAGE2DMULTISAMPLEPROC glTexImage2DMultisample;
-extern PFNGLTEXIMAGE3DMULTISAMPLEPROC glTexImage3DMultisample;
-extern PFNGLGETMULTISAMPLEFVPROC glGetMultisamplefv;
-extern PFNGLSAMPLEMASKIPROC glSampleMaski;
+typedef void (APIENTRYP PFNDOLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+typedef void (APIENTRYP PFNDOLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+typedef void (APIENTRYP PFNDOLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val);
+typedef void (APIENTRYP PFNDOLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask);
+
+extern PFNDOLTEXIMAGE2DMULTISAMPLEPROC dolTexImage2DMultisample;
+extern PFNDOLTEXIMAGE3DMULTISAMPLEPROC dolTexImage3DMultisample;
+extern PFNDOLGETMULTISAMPLEFVPROC dolGetMultisamplefv;
+extern PFNDOLSAMPLEMASKIPROC dolSampleMaski;
+
+#define glTexImage2DMultisample dolTexImage2DMultisample
+#define glTexImage3DMultisample dolTexImage3DMultisample
+#define glGetMultisamplefv dolGetMultisamplefv
+#define glSampleMaski dolSampleMaski
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_texture_storage_multisample.h b/Source/Core/Common/GL/GLExtensions/ARB_texture_storage_multisample.h
index 54806a0242..980d0ecfb4 100644
--- a/Source/Core/Common/GL/GLExtensions/ARB_texture_storage_multisample.h
+++ b/Source/Core/Common/GL/GLExtensions/ARB_texture_storage_multisample.h
@@ -1,8 +1,33 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLTEXSTORAGE2DMULTISAMPLEPROC glTexStorage2DMultisample;
-extern PFNGLTEXSTORAGE3DMULTISAMPLEPROC glTexStorage3DMultisample;
+typedef void (APIENTRYP PFNDOLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+typedef void (APIENTRYP PFNDOLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+
+extern PFNDOLTEXSTORAGE2DMULTISAMPLEPROC dolTexStorage2DMultisample;
+extern PFNDOLTEXSTORAGE3DMULTISAMPLEPROC dolTexStorage3DMultisample;
+
+#define glTexStorage2DMultisample dolTexStorage2DMultisample
+#define glTexStorage3DMultisample dolTexStorage3DMultisample
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_uniform_buffer_object.h b/Source/Core/Common/GL/GLExtensions/ARB_uniform_buffer_object.h
index 088379a81c..36173860c5 100644
--- a/Source/Core/Common/GL/GLExtensions/ARB_uniform_buffer_object.h
+++ b/Source/Core/Common/GL/GLExtensions/ARB_uniform_buffer_object.h
@@ -1,17 +1,57 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLBINDBUFFERBASEPROC glBindBufferBase;
-extern PFNGLBINDBUFFERRANGEPROC glBindBufferRange;
-extern PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glGetActiveUniformBlockName;
-extern PFNGLGETACTIVEUNIFORMBLOCKIVPROC glGetActiveUniformBlockiv;
-extern PFNGLGETACTIVEUNIFORMNAMEPROC glGetActiveUniformName;
-extern PFNGLGETACTIVEUNIFORMSIVPROC glGetActiveUniformsiv;
-extern PFNGLGETINTEGERI_VPROC glGetIntegeri_v;
-extern PFNGLGETUNIFORMBLOCKINDEXPROC glGetUniformBlockIndex;
-extern PFNGLGETUNIFORMINDICESPROC glGetUniformIndices;
-extern PFNGLUNIFORMBLOCKBINDINGPROC glUniformBlockBinding;
+typedef void (APIENTRYP PFNDOLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data);
+typedef void (APIENTRYP PFNDOLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (APIENTRYP PFNDOLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer);
+typedef void (APIENTRYP PFNDOLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices);
+typedef void (APIENTRYP PFNDOLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNDOLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
+typedef GLuint (APIENTRYP PFNDOLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName);
+typedef void (APIENTRYP PFNDOLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNDOLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
+typedef void (APIENTRYP PFNDOLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
+extern PFNDOLBINDBUFFERBASEPROC dolBindBufferBase;
+extern PFNDOLBINDBUFFERRANGEPROC dolBindBufferRange;
+extern PFNDOLGETACTIVEUNIFORMBLOCKNAMEPROC dolGetActiveUniformBlockName;
+extern PFNDOLGETACTIVEUNIFORMBLOCKIVPROC dolGetActiveUniformBlockiv;
+extern PFNDOLGETACTIVEUNIFORMNAMEPROC dolGetActiveUniformName;
+extern PFNDOLGETACTIVEUNIFORMSIVPROC dolGetActiveUniformsiv;
+extern PFNDOLGETINTEGERI_VPROC dolGetIntegeri_v;
+extern PFNDOLGETUNIFORMBLOCKINDEXPROC dolGetUniformBlockIndex;
+extern PFNDOLGETUNIFORMINDICESPROC dolGetUniformIndices;
+extern PFNDOLUNIFORMBLOCKBINDINGPROC dolUniformBlockBinding;
+
+#define glBindBufferBase dolBindBufferBase
+#define glBindBufferRange dolBindBufferRange
+#define glGetActiveUniformBlockName dolGetActiveUniformBlockName
+#define glGetActiveUniformBlockiv dolGetActiveUniformBlockiv
+#define glGetActiveUniformName dolGetActiveUniformName
+#define glGetActiveUniformsiv dolGetActiveUniformsiv
+#define glGetIntegeri_v dolGetIntegeri_v
+#define glGetUniformBlockIndex dolGetUniformBlockIndex
+#define glGetUniformIndices dolGetUniformIndices
+#define glUniformBlockBinding dolUniformBlockBinding
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_vertex_array_object.h b/Source/Core/Common/GL/GLExtensions/ARB_vertex_array_object.h
index 2e5e41ea02..7ffb12f04a 100644
--- a/Source/Core/Common/GL/GLExtensions/ARB_vertex_array_object.h
+++ b/Source/Core/Common/GL/GLExtensions/ARB_vertex_array_object.h
@@ -1,11 +1,39 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLBINDVERTEXARRAYPROC glBindVertexArray;
-extern PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays;
-extern PFNGLGENVERTEXARRAYSPROC glGenVertexArrays;
-extern PFNGLISVERTEXARRAYPROC glIsVertexArray;
+typedef void (APIENTRYP PFNDOLBINDVERTEXARRAYPROC) (GLuint array);
+typedef void (APIENTRYP PFNDOLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays);
+typedef void (APIENTRYP PFNDOLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays);
+typedef GLboolean (APIENTRYP PFNDOLISVERTEXARRAYPROC) (GLuint array);
+extern PFNDOLBINDVERTEXARRAYPROC dolBindVertexArray;
+extern PFNDOLDELETEVERTEXARRAYSPROC dolDeleteVertexArrays;
+extern PFNDOLGENVERTEXARRAYSPROC dolGenVertexArrays;
+extern PFNDOLISVERTEXARRAYPROC dolIsVertexArray;
+
+#define glBindVertexArray dolBindVertexArray
+#define glDeleteVertexArrays dolDeleteVertexArrays
+#define glGenVertexArrays dolGenVertexArrays
+#define glIsVertexArray dolIsVertexArray
diff --git a/Source/Core/Common/GL/GLExtensions/ARB_viewport_array.h b/Source/Core/Common/GL/GLExtensions/ARB_viewport_array.h
index fd80762b85..3ca49f652e 100644
--- a/Source/Core/Common/GL/GLExtensions/ARB_viewport_array.h
+++ b/Source/Core/Common/GL/GLExtensions/ARB_viewport_array.h
@@ -1,17 +1,57 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLDEPTHRANGEARRAYVPROC glDepthRangeArrayv;
-extern PFNGLDEPTHRANGEINDEXEDPROC glDepthRangeIndexed;
-extern PFNGLGETDOUBLEI_VPROC glGetDoublei_v;
-extern PFNGLGETFLOATI_VPROC glGetFloati_v;
-extern PFNGLSCISSORARRAYVPROC glScissorArrayv;
-extern PFNGLSCISSORINDEXEDPROC glScissorIndexed;
-extern PFNGLSCISSORINDEXEDVPROC glScissorIndexedv;
-extern PFNGLVIEWPORTARRAYVPROC glViewportArrayv;
-extern PFNGLVIEWPORTINDEXEDFPROC glViewportIndexedf;
-extern PFNGLVIEWPORTINDEXEDFVPROC glViewportIndexedfv;
+typedef void (APIENTRYP PFNDOLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat *v);
+typedef void (APIENTRYP PFNDOLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
+typedef void (APIENTRYP PFNDOLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNDOLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint *v);
+typedef void (APIENTRYP PFNDOLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNDOLSCISSORINDEXEDVPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNDOLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLdouble *v);
+typedef void (APIENTRYP PFNDOLDEPTHRANGEINDEXEDPROC) (GLuint index, GLdouble n, GLdouble f);
+typedef void (APIENTRYP PFNDOLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat *data);
+typedef void (APIENTRYP PFNDOLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble *data);
+extern PFNDOLDEPTHRANGEARRAYVPROC dolDepthRangeArrayv;
+extern PFNDOLDEPTHRANGEINDEXEDPROC dolDepthRangeIndexed;
+extern PFNDOLGETDOUBLEI_VPROC dolGetDoublei_v;
+extern PFNDOLGETFLOATI_VPROC dolGetFloati_v;
+extern PFNDOLSCISSORARRAYVPROC dolScissorArrayv;
+extern PFNDOLSCISSORINDEXEDPROC dolScissorIndexed;
+extern PFNDOLSCISSORINDEXEDVPROC dolScissorIndexedv;
+extern PFNDOLVIEWPORTARRAYVPROC dolViewportArrayv;
+extern PFNDOLVIEWPORTINDEXEDFPROC dolViewportIndexedf;
+extern PFNDOLVIEWPORTINDEXEDFVPROC dolViewportIndexedfv;
+
+#define glDepthRangeArrayv dolDepthRangeArrayv
+#define glDepthRangeIndexed dolDepthRangeIndexed
+#define glGetDoublei_v dolGetDoublei_v
+#define glGetFloati_v dolGetFloati_v
+#define glScissorArrayv dolScissorArrayv
+#define glScissorIndexed dolScissorIndexed
+#define glScissorIndexedv dolScissorIndexedv
+#define glViewportArrayv dolViewportArrayv
+#define glViewportIndexedf dolViewportIndexedf
+#define glViewportIndexedfv dolViewportIndexedfv
diff --git a/Source/Core/Common/GL/GLExtensions/EXT_texture_filter_anisotropic.h b/Source/Core/Common/GL/GLExtensions/EXT_texture_filter_anisotropic.h
new file mode 100644
index 0000000000..aa1a5cf663
--- /dev/null
+++ b/Source/Core/Common/GL/GLExtensions/EXT_texture_filter_anisotropic.h
@@ -0,0 +1,27 @@
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+
+#include "Common/GL/GLExtensions/gl_common.h"
+
+#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
+#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
diff --git a/Source/Core/Common/GL/GLExtensions/GLExtensions.cpp b/Source/Core/Common/GL/GLExtensions/GLExtensions.cpp
index 6c23d55546..d3a8d46030 100644
--- a/Source/Core/Common/GL/GLExtensions/GLExtensions.cpp
+++ b/Source/Core/Common/GL/GLExtensions/GLExtensions.cpp
@@ -15,786 +15,797 @@
#endif
// gl_1_1
-PFNGLCLEARINDEXPROC glClearIndex;
-PFNGLCLEARCOLORPROC glClearColor;
-PFNGLCLEARPROC glClear;
-PFNGLINDEXMASKPROC glIndexMask;
-PFNGLCOLORMASKPROC glColorMask;
-PFNGLALPHAFUNCPROC glAlphaFunc;
-PFNGLBLENDFUNCPROC glBlendFunc;
-PFNGLLOGICOPPROC glLogicOp;
-PFNGLCULLFACEPROC glCullFace;
-PFNGLFRONTFACEPROC glFrontFace;
-PFNGLPOINTSIZEPROC glPointSize;
-PFNGLLINEWIDTHPROC glLineWidth;
-PFNGLLINESTIPPLEPROC glLineStipple;
-PFNGLPOLYGONMODEPROC glPolygonMode;
-PFNGLPOLYGONOFFSETPROC glPolygonOffset;
-PFNGLPOLYGONSTIPPLEPROC glPolygonStipple;
-PFNGLGETPOLYGONSTIPPLEPROC glGetPolygonStipple;
-PFNGLEDGEFLAGPROC glEdgeFlag;
-PFNGLEDGEFLAGVPROC glEdgeFlagv;
-PFNGLSCISSORPROC glScissor;
-PFNGLCLIPPLANEPROC glClipPlane;
-PFNGLGETCLIPPLANEPROC glGetClipPlane;
-PFNGLDRAWBUFFERPROC glDrawBuffer;
-PFNGLREADBUFFERPROC glReadBuffer;
-PFNGLENABLEPROC glEnable;
-PFNGLDISABLEPROC glDisable;
-PFNGLISENABLEDPROC glIsEnabled;
-PFNGLENABLECLIENTSTATEPROC glEnableClientState;
-PFNGLDISABLECLIENTSTATEPROC glDisableClientState;
-PFNGLGETBOOLEANVPROC glGetBooleanv;
-PFNGLGETDOUBLEVPROC glGetDoublev;
-PFNGLGETFLOATVPROC glGetFloatv;
-PFNGLGETINTEGERVPROC glGetIntegerv;
-PFNGLPUSHATTRIBPROC glPushAttrib;
-PFNGLPOPATTRIBPROC glPopAttrib;
-PFNGLPUSHCLIENTATTRIBPROC glPushClientAttrib;
-PFNGLPOPCLIENTATTRIBPROC glPopClientAttrib;
-PFNGLRENDERMODEPROC glRenderMode;
-PFNGLGETERRORPROC glGetError;
-PFNGLGETSTRINGPROC glGetString;
-PFNGLFINISHPROC glFinish;
-PFNGLFLUSHPROC glFlush;
-PFNGLHINTPROC glHint;
-PFNGLCLEARDEPTHPROC glClearDepth;
-PFNGLDEPTHFUNCPROC glDepthFunc;
-PFNGLDEPTHMASKPROC glDepthMask;
-PFNGLDEPTHRANGEPROC glDepthRange;
-PFNGLCLEARACCUMPROC glClearAccum;
-PFNGLACCUMPROC glAccum;
-PFNGLMATRIXMODEPROC glMatrixMode;
-PFNGLORTHOPROC glOrtho;
-PFNGLFRUSTUMPROC glFrustum;
-PFNGLVIEWPORTPROC glViewport;
-PFNGLPUSHMATRIXPROC glPushMatrix;
-PFNGLPOPMATRIXPROC glPopMatrix;
-PFNGLLOADIDENTITYPROC glLoadIdentity;
-PFNGLLOADMATRIXDPROC glLoadMatrixd;
-PFNGLLOADMATRIXFPROC glLoadMatrixf;
-PFNGLMULTMATRIXDPROC glMultMatrixd;
-PFNGLMULTMATRIXFPROC glMultMatrixf;
-PFNGLROTATEDPROC glRotated;
-PFNGLROTATEFPROC glRotatef;
-PFNGLSCALEDPROC glScaled;
-PFNGLSCALEFPROC glScalef;
-PFNGLTRANSLATEDPROC glTranslated;
-PFNGLTRANSLATEFPROC glTranslatef;
-PFNGLISLISTPROC glIsList;
-PFNGLDELETELISTSPROC glDeleteLists;
-PFNGLGENLISTSPROC glGenLists;
-PFNGLNEWLISTPROC glNewList;
-PFNGLENDLISTPROC glEndList;
-PFNGLCALLLISTPROC glCallList;
-PFNGLCALLLISTSPROC glCallLists;
-PFNGLLISTBASEPROC glListBase;
-PFNGLBEGINPROC glBegin;
-PFNGLENDPROC glEnd;
-PFNGLVERTEX2DPROC glVertex2d;
-PFNGLVERTEX2FPROC glVertex2f;
-PFNGLVERTEX2IPROC glVertex2i;
-PFNGLVERTEX2SPROC glVertex2s;
-PFNGLVERTEX3DPROC glVertex3d;
-PFNGLVERTEX3FPROC glVertex3f;
-PFNGLVERTEX3IPROC glVertex3i;
-PFNGLVERTEX3SPROC glVertex3s;
-PFNGLVERTEX4DPROC glVertex4d;
-PFNGLVERTEX4FPROC glVertex4f;
-PFNGLVERTEX4IPROC glVertex4i;
-PFNGLVERTEX4SPROC glVertex4s;
-PFNGLVERTEX2DVPROC glVertex2dv;
-PFNGLVERTEX2FVPROC glVertex2fv;
-PFNGLVERTEX2IVPROC glVertex2iv;
-PFNGLVERTEX2SVPROC glVertex2sv;
-PFNGLVERTEX3DVPROC glVertex3dv;
-PFNGLVERTEX3FVPROC glVertex3fv;
-PFNGLVERTEX3IVPROC glVertex3iv;
-PFNGLVERTEX3SVPROC glVertex3sv;
-PFNGLVERTEX4DVPROC glVertex4dv;
-PFNGLVERTEX4FVPROC glVertex4fv;
-PFNGLVERTEX4IVPROC glVertex4iv;
-PFNGLVERTEX4SVPROC glVertex4sv;
-PFNGLNORMAL3BPROC glNormal3b;
-PFNGLNORMAL3DPROC glNormal3d;
-PFNGLNORMAL3FPROC glNormal3f;
-PFNGLNORMAL3IPROC glNormal3i;
-PFNGLNORMAL3SPROC glNormal3s;
-PFNGLNORMAL3BVPROC glNormal3bv;
-PFNGLNORMAL3DVPROC glNormal3dv;
-PFNGLNORMAL3FVPROC glNormal3fv;
-PFNGLNORMAL3IVPROC glNormal3iv;
-PFNGLNORMAL3SVPROC glNormal3sv;
-PFNGLINDEXDPROC glIndexd;
-PFNGLINDEXFPROC glIndexf;
-PFNGLINDEXIPROC glIndexi;
-PFNGLINDEXSPROC glIndexs;
-PFNGLINDEXUBPROC glIndexub;
-PFNGLINDEXDVPROC glIndexdv;
-PFNGLINDEXFVPROC glIndexfv;
-PFNGLINDEXIVPROC glIndexiv;
-PFNGLINDEXSVPROC glIndexsv;
-PFNGLINDEXUBVPROC glIndexubv;
-PFNGLCOLOR3BPROC glColor3b;
-PFNGLCOLOR3DPROC glColor3d;
-PFNGLCOLOR3FPROC glColor3f;
-PFNGLCOLOR3IPROC glColor3i;
-PFNGLCOLOR3SPROC glColor3s;
-PFNGLCOLOR3UBPROC glColor3ub;
-PFNGLCOLOR3UIPROC glColor3ui;
-PFNGLCOLOR3USPROC glColor3us;
-PFNGLCOLOR4BPROC glColor4b;
-PFNGLCOLOR4DPROC glColor4d;
-PFNGLCOLOR4FPROC glColor4f;
-PFNGLCOLOR4IPROC glColor4i;
-PFNGLCOLOR4SPROC glColor4s;
-PFNGLCOLOR4UBPROC glColor4ub;
-PFNGLCOLOR4UIPROC glColor4ui;
-PFNGLCOLOR4USPROC glColor4us;
-PFNGLCOLOR3BVPROC glColor3bv;
-PFNGLCOLOR3DVPROC glColor3dv;
-PFNGLCOLOR3FVPROC glColor3fv;
-PFNGLCOLOR3IVPROC glColor3iv;
-PFNGLCOLOR3SVPROC glColor3sv;
-PFNGLCOLOR3UBVPROC glColor3ubv;
-PFNGLCOLOR3UIVPROC glColor3uiv;
-PFNGLCOLOR3USVPROC glColor3usv;
-PFNGLCOLOR4BVPROC glColor4bv;
-PFNGLCOLOR4DVPROC glColor4dv;
-PFNGLCOLOR4FVPROC glColor4fv;
-PFNGLCOLOR4IVPROC glColor4iv;
-PFNGLCOLOR4SVPROC glColor4sv;
-PFNGLCOLOR4UBVPROC glColor4ubv;
-PFNGLCOLOR4UIVPROC glColor4uiv;
-PFNGLCOLOR4USVPROC glColor4usv;
-PFNGLTEXCOORD1DPROC glTexCoord1d;
-PFNGLTEXCOORD1FPROC glTexCoord1f;
-PFNGLTEXCOORD1IPROC glTexCoord1i;
-PFNGLTEXCOORD1SPROC glTexCoord1s;
-PFNGLTEXCOORD2DPROC glTexCoord2d;
-PFNGLTEXCOORD2FPROC glTexCoord2f;
-PFNGLTEXCOORD2IPROC glTexCoord2i;
-PFNGLTEXCOORD2SPROC glTexCoord2s;
-PFNGLTEXCOORD3DPROC glTexCoord3d;
-PFNGLTEXCOORD3FPROC glTexCoord3f;
-PFNGLTEXCOORD3IPROC glTexCoord3i;
-PFNGLTEXCOORD3SPROC glTexCoord3s;
-PFNGLTEXCOORD4DPROC glTexCoord4d;
-PFNGLTEXCOORD4FPROC glTexCoord4f;
-PFNGLTEXCOORD4IPROC glTexCoord4i;
-PFNGLTEXCOORD4SPROC glTexCoord4s;
-PFNGLTEXCOORD1DVPROC glTexCoord1dv;
-PFNGLTEXCOORD1FVPROC glTexCoord1fv;
-PFNGLTEXCOORD1IVPROC glTexCoord1iv;
-PFNGLTEXCOORD1SVPROC glTexCoord1sv;
-PFNGLTEXCOORD2DVPROC glTexCoord2dv;
-PFNGLTEXCOORD2FVPROC glTexCoord2fv;
-PFNGLTEXCOORD2IVPROC glTexCoord2iv;
-PFNGLTEXCOORD2SVPROC glTexCoord2sv;
-PFNGLTEXCOORD3DVPROC glTexCoord3dv;
-PFNGLTEXCOORD3FVPROC glTexCoord3fv;
-PFNGLTEXCOORD3IVPROC glTexCoord3iv;
-PFNGLTEXCOORD3SVPROC glTexCoord3sv;
-PFNGLTEXCOORD4DVPROC glTexCoord4dv;
-PFNGLTEXCOORD4FVPROC glTexCoord4fv;
-PFNGLTEXCOORD4IVPROC glTexCoord4iv;
-PFNGLTEXCOORD4SVPROC glTexCoord4sv;
-PFNGLRASTERPOS2DPROC glRasterPos2d;
-PFNGLRASTERPOS2FPROC glRasterPos2f;
-PFNGLRASTERPOS2IPROC glRasterPos2i;
-PFNGLRASTERPOS2SPROC glRasterPos2s;
-PFNGLRASTERPOS3DPROC glRasterPos3d;
-PFNGLRASTERPOS3FPROC glRasterPos3f;
-PFNGLRASTERPOS3IPROC glRasterPos3i;
-PFNGLRASTERPOS3SPROC glRasterPos3s;
-PFNGLRASTERPOS4DPROC glRasterPos4d;
-PFNGLRASTERPOS4FPROC glRasterPos4f;
-PFNGLRASTERPOS4IPROC glRasterPos4i;
-PFNGLRASTERPOS4SPROC glRasterPos4s;
-PFNGLRASTERPOS2DVPROC glRasterPos2dv;
-PFNGLRASTERPOS2FVPROC glRasterPos2fv;
-PFNGLRASTERPOS2IVPROC glRasterPos2iv;
-PFNGLRASTERPOS2SVPROC glRasterPos2sv;
-PFNGLRASTERPOS3DVPROC glRasterPos3dv;
-PFNGLRASTERPOS3FVPROC glRasterPos3fv;
-PFNGLRASTERPOS3IVPROC glRasterPos3iv;
-PFNGLRASTERPOS3SVPROC glRasterPos3sv;
-PFNGLRASTERPOS4DVPROC glRasterPos4dv;
-PFNGLRASTERPOS4FVPROC glRasterPos4fv;
-PFNGLRASTERPOS4IVPROC glRasterPos4iv;
-PFNGLRASTERPOS4SVPROC glRasterPos4sv;
-PFNGLRECTDPROC glRectd;
-PFNGLRECTFPROC glRectf;
-PFNGLRECTIPROC glRecti;
-PFNGLRECTSPROC glRects;
-PFNGLRECTDVPROC glRectdv;
-PFNGLRECTFVPROC glRectfv;
-PFNGLRECTIVPROC glRectiv;
-PFNGLRECTSVPROC glRectsv;
-PFNGLVERTEXPOINTERPROC glVertexPointer;
-PFNGLNORMALPOINTERPROC glNormalPointer;
-PFNGLCOLORPOINTERPROC glColorPointer;
-PFNGLINDEXPOINTERPROC glIndexPointer;
-PFNGLTEXCOORDPOINTERPROC glTexCoordPointer;
-PFNGLEDGEFLAGPOINTERPROC glEdgeFlagPointer;
-PFNGLGETPOINTERVPROC glGetPointerv;
-PFNGLARRAYELEMENTPROC glArrayElement;
-PFNGLDRAWARRAYSPROC glDrawArrays;
-PFNGLDRAWELEMENTSPROC glDrawElements;
-PFNGLINTERLEAVEDARRAYSPROC glInterleavedArrays;
-PFNGLSHADEMODELPROC glShadeModel;
-PFNGLLIGHTFPROC glLightf;
-PFNGLLIGHTIPROC glLighti;
-PFNGLLIGHTFVPROC glLightfv;
-PFNGLLIGHTIVPROC glLightiv;
-PFNGLGETLIGHTFVPROC glGetLightfv;
-PFNGLGETLIGHTIVPROC glGetLightiv;
-PFNGLLIGHTMODELFPROC glLightModelf;
-PFNGLLIGHTMODELIPROC glLightModeli;
-PFNGLLIGHTMODELFVPROC glLightModelfv;
-PFNGLLIGHTMODELIVPROC glLightModeliv;
-PFNGLMATERIALFPROC glMaterialf;
-PFNGLMATERIALIPROC glMateriali;
-PFNGLMATERIALFVPROC glMaterialfv;
-PFNGLMATERIALIVPROC glMaterialiv;
-PFNGLGETMATERIALFVPROC glGetMaterialfv;
-PFNGLGETMATERIALIVPROC glGetMaterialiv;
-PFNGLCOLORMATERIALPROC glColorMaterial;
-PFNGLPIXELZOOMPROC glPixelZoom;
-PFNGLPIXELSTOREFPROC glPixelStoref;
-PFNGLPIXELSTOREIPROC glPixelStorei;
-PFNGLPIXELTRANSFERFPROC glPixelTransferf;
-PFNGLPIXELTRANSFERIPROC glPixelTransferi;
-PFNGLPIXELMAPFVPROC glPixelMapfv;
-PFNGLPIXELMAPUIVPROC glPixelMapuiv;
-PFNGLPIXELMAPUSVPROC glPixelMapusv;
-PFNGLGETPIXELMAPFVPROC glGetPixelMapfv;
-PFNGLGETPIXELMAPUIVPROC glGetPixelMapuiv;
-PFNGLGETPIXELMAPUSVPROC glGetPixelMapusv;
-PFNGLBITMAPPROC glBitmap;
-PFNGLREADPIXELSPROC glReadPixels;
-PFNGLDRAWPIXELSPROC glDrawPixels;
-PFNGLCOPYPIXELSPROC glCopyPixels;
-PFNGLSTENCILFUNCPROC glStencilFunc;
-PFNGLSTENCILMASKPROC glStencilMask;
-PFNGLSTENCILOPPROC glStencilOp;
-PFNGLCLEARSTENCILPROC glClearStencil;
-PFNGLTEXGENDPROC glTexGend;
-PFNGLTEXGENFPROC glTexGenf;
-PFNGLTEXGENIPROC glTexGeni;
-PFNGLTEXGENDVPROC glTexGendv;
-PFNGLTEXGENFVPROC glTexGenfv;
-PFNGLTEXGENIVPROC glTexGeniv;
-PFNGLGETTEXGENDVPROC glGetTexGendv;
-PFNGLGETTEXGENFVPROC glGetTexGenfv;
-PFNGLGETTEXGENIVPROC glGetTexGeniv;
-PFNGLTEXENVFPROC glTexEnvf;
-PFNGLTEXENVIPROC glTexEnvi;
-PFNGLTEXENVFVPROC glTexEnvfv;
-PFNGLTEXENVIVPROC glTexEnviv;
-PFNGLGETTEXENVFVPROC glGetTexEnvfv;
-PFNGLGETTEXENVIVPROC glGetTexEnviv;
-PFNGLTEXPARAMETERFPROC glTexParameterf;
-PFNGLTEXPARAMETERIPROC glTexParameteri;
-PFNGLTEXPARAMETERFVPROC glTexParameterfv;
-PFNGLTEXPARAMETERIVPROC glTexParameteriv;
-PFNGLGETTEXPARAMETERFVPROC glGetTexParameterfv;
-PFNGLGETTEXPARAMETERIVPROC glGetTexParameteriv;
-PFNGLGETTEXLEVELPARAMETERFVPROC glGetTexLevelParameterfv;
-PFNGLGETTEXLEVELPARAMETERIVPROC glGetTexLevelParameteriv;
-PFNGLTEXIMAGE1DPROC glTexImage1D;
-PFNGLTEXIMAGE2DPROC glTexImage2D;
-PFNGLGETTEXIMAGEPROC glGetTexImage;
-PFNGLGENTEXTURESPROC glGenTextures;
-PFNGLDELETETEXTURESPROC glDeleteTextures;
-PFNGLBINDTEXTUREPROC glBindTexture;
-PFNGLPRIORITIZETEXTURESPROC glPrioritizeTextures;
-PFNGLARETEXTURESRESIDENTPROC glAreTexturesResident;
-PFNGLISTEXTUREPROC glIsTexture;
-PFNGLTEXSUBIMAGE1DPROC glTexSubImage1D;
-PFNGLTEXSUBIMAGE2DPROC glTexSubImage2D;
-PFNGLCOPYTEXIMAGE1DPROC glCopyTexImage1D;
-PFNGLCOPYTEXIMAGE2DPROC glCopyTexImage2D;
-PFNGLCOPYTEXSUBIMAGE1DPROC glCopyTexSubImage1D;
-PFNGLCOPYTEXSUBIMAGE2DPROC glCopyTexSubImage2D;
-PFNGLMAP1DPROC glMap1d;
-PFNGLMAP1FPROC glMap1f;
-PFNGLMAP2DPROC glMap2d;
-PFNGLMAP2FPROC glMap2f;
-PFNGLGETMAPDVPROC glGetMapdv;
-PFNGLGETMAPFVPROC glGetMapfv;
-PFNGLGETMAPIVPROC glGetMapiv;
-PFNGLEVALCOORD1DPROC glEvalCoord1d;
-PFNGLEVALCOORD1FPROC glEvalCoord1f;
-PFNGLEVALCOORD1DVPROC glEvalCoord1dv;
-PFNGLEVALCOORD1FVPROC glEvalCoord1fv;
-PFNGLEVALCOORD2DPROC glEvalCoord2d;
-PFNGLEVALCOORD2FPROC glEvalCoord2f;
-PFNGLEVALCOORD2DVPROC glEvalCoord2dv;
-PFNGLEVALCOORD2FVPROC glEvalCoord2fv;
-PFNGLMAPGRID1DPROC glMapGrid1d;
-PFNGLMAPGRID1FPROC glMapGrid1f;
-PFNGLMAPGRID2DPROC glMapGrid2d;
-PFNGLMAPGRID2FPROC glMapGrid2f;
-PFNGLEVALPOINT1PROC glEvalPoint1;
-PFNGLEVALPOINT2PROC glEvalPoint2;
-PFNGLEVALMESH1PROC glEvalMesh1;
-PFNGLEVALMESH2PROC glEvalMesh2;
-PFNGLFOGFPROC glFogf;
-PFNGLFOGIPROC glFogi;
-PFNGLFOGFVPROC glFogfv;
-PFNGLFOGIVPROC glFogiv;
-PFNGLFEEDBACKBUFFERPROC glFeedbackBuffer;
-PFNGLPASSTHROUGHPROC glPassThrough;
-PFNGLSELECTBUFFERPROC glSelectBuffer;
-PFNGLINITNAMESPROC glInitNames;
-PFNGLLOADNAMEPROC glLoadName;
-PFNGLPUSHNAMEPROC glPushName;
-PFNGLPOPNAMEPROC glPopName;
+PFNDOLCLEARINDEXPROC dolClearIndex;
+PFNDOLCLEARCOLORPROC dolClearColor;
+PFNDOLCLEARPROC dolClear;
+PFNDOLINDEXMASKPROC dolIndexMask;
+PFNDOLCOLORMASKPROC dolColorMask;
+PFNDOLALPHAFUNCPROC dolAlphaFunc;
+PFNDOLBLENDFUNCPROC dolBlendFunc;
+PFNDOLLOGICOPPROC dolLogicOp;
+PFNDOLCULLFACEPROC dolCullFace;
+PFNDOLFRONTFACEPROC dolFrontFace;
+PFNDOLPOINTSIZEPROC dolPointSize;
+PFNDOLLINEWIDTHPROC dolLineWidth;
+PFNDOLLINESTIPPLEPROC dolLineStipple;
+PFNDOLPOLYGONMODEPROC dolPolygonMode;
+PFNDOLPOLYGONOFFSETPROC dolPolygonOffset;
+PFNDOLPOLYGONSTIPPLEPROC dolPolygonStipple;
+PFNDOLGETPOLYGONSTIPPLEPROC dolGetPolygonStipple;
+PFNDOLEDGEFLAGPROC dolEdgeFlag;
+PFNDOLEDGEFLAGVPROC dolEdgeFlagv;
+PFNDOLSCISSORPROC dolScissor;
+PFNDOLCLIPPLANEPROC dolClipPlane;
+PFNDOLGETCLIPPLANEPROC dolGetClipPlane;
+PFNDOLDRAWBUFFERPROC dolDrawBuffer;
+PFNDOLREADBUFFERPROC dolReadBuffer;
+PFNDOLENABLEPROC dolEnable;
+PFNDOLDISABLEPROC dolDisable;
+PFNDOLISENABLEDPROC dolIsEnabled;
+PFNDOLENABLECLIENTSTATEPROC dolEnableClientState;
+PFNDOLDISABLECLIENTSTATEPROC dolDisableClientState;
+PFNDOLGETBOOLEANVPROC dolGetBooleanv;
+PFNDOLGETDOUBLEVPROC dolGetDoublev;
+PFNDOLGETFLOATVPROC dolGetFloatv;
+PFNDOLGETINTEGERVPROC dolGetIntegerv;
+PFNDOLPUSHATTRIBPROC dolPushAttrib;
+PFNDOLPOPATTRIBPROC dolPopAttrib;
+PFNDOLPUSHCLIENTATTRIBPROC dolPushClientAttrib;
+PFNDOLPOPCLIENTATTRIBPROC dolPopClientAttrib;
+PFNDOLRENDERMODEPROC dolRenderMode;
+PFNDOLGETERRORPROC dolGetError;
+PFNDOLGETSTRINGPROC dolGetString;
+PFNDOLFINISHPROC dolFinish;
+PFNDOLFLUSHPROC dolFlush;
+PFNDOLHINTPROC dolHint;
+PFNDOLCLEARDEPTHPROC dolClearDepth;
+PFNDOLDEPTHFUNCPROC dolDepthFunc;
+PFNDOLDEPTHMASKPROC dolDepthMask;
+PFNDOLDEPTHRANGEPROC dolDepthRange;
+PFNDOLCLEARACCUMPROC dolClearAccum;
+PFNDOLACCUMPROC dolAccum;
+PFNDOLMATRIXMODEPROC dolMatrixMode;
+PFNDOLORTHOPROC dolOrtho;
+PFNDOLFRUSTUMPROC dolFrustum;
+PFNDOLVIEWPORTPROC dolViewport;
+PFNDOLPUSHMATRIXPROC dolPushMatrix;
+PFNDOLPOPMATRIXPROC dolPopMatrix;
+PFNDOLLOADIDENTITYPROC dolLoadIdentity;
+PFNDOLLOADMATRIXDPROC dolLoadMatrixd;
+PFNDOLLOADMATRIXFPROC dolLoadMatrixf;
+PFNDOLMULTMATRIXDPROC dolMultMatrixd;
+PFNDOLMULTMATRIXFPROC dolMultMatrixf;
+PFNDOLROTATEDPROC dolRotated;
+PFNDOLROTATEFPROC dolRotatef;
+PFNDOLSCALEDPROC dolScaled;
+PFNDOLSCALEFPROC dolScalef;
+PFNDOLTRANSLATEDPROC dolTranslated;
+PFNDOLTRANSLATEFPROC dolTranslatef;
+PFNDOLISLISTPROC dolIsList;
+PFNDOLDELETELISTSPROC dolDeleteLists;
+PFNDOLGENLISTSPROC dolGenLists;
+PFNDOLNEWLISTPROC dolNewList;
+PFNDOLENDLISTPROC dolEndList;
+PFNDOLCALLLISTPROC dolCallList;
+PFNDOLCALLLISTSPROC dolCallLists;
+PFNDOLLISTBASEPROC dolListBase;
+PFNDOLBEGINPROC dolBegin;
+PFNDOLENDPROC dolEnd;
+PFNDOLVERTEX2DPROC dolVertex2d;
+PFNDOLVERTEX2FPROC dolVertex2f;
+PFNDOLVERTEX2IPROC dolVertex2i;
+PFNDOLVERTEX2SPROC dolVertex2s;
+PFNDOLVERTEX3DPROC dolVertex3d;
+PFNDOLVERTEX3FPROC dolVertex3f;
+PFNDOLVERTEX3IPROC dolVertex3i;
+PFNDOLVERTEX3SPROC dolVertex3s;
+PFNDOLVERTEX4DPROC dolVertex4d;
+PFNDOLVERTEX4FPROC dolVertex4f;
+PFNDOLVERTEX4IPROC dolVertex4i;
+PFNDOLVERTEX4SPROC dolVertex4s;
+PFNDOLVERTEX2DVPROC dolVertex2dv;
+PFNDOLVERTEX2FVPROC dolVertex2fv;
+PFNDOLVERTEX2IVPROC dolVertex2iv;
+PFNDOLVERTEX2SVPROC dolVertex2sv;
+PFNDOLVERTEX3DVPROC dolVertex3dv;
+PFNDOLVERTEX3FVPROC dolVertex3fv;
+PFNDOLVERTEX3IVPROC dolVertex3iv;
+PFNDOLVERTEX3SVPROC dolVertex3sv;
+PFNDOLVERTEX4DVPROC dolVertex4dv;
+PFNDOLVERTEX4FVPROC dolVertex4fv;
+PFNDOLVERTEX4IVPROC dolVertex4iv;
+PFNDOLVERTEX4SVPROC dolVertex4sv;
+PFNDOLNORMAL3BPROC dolNormal3b;
+PFNDOLNORMAL3DPROC dolNormal3d;
+PFNDOLNORMAL3FPROC dolNormal3f;
+PFNDOLNORMAL3IPROC dolNormal3i;
+PFNDOLNORMAL3SPROC dolNormal3s;
+PFNDOLNORMAL3BVPROC dolNormal3bv;
+PFNDOLNORMAL3DVPROC dolNormal3dv;
+PFNDOLNORMAL3FVPROC dolNormal3fv;
+PFNDOLNORMAL3IVPROC dolNormal3iv;
+PFNDOLNORMAL3SVPROC dolNormal3sv;
+PFNDOLINDEXDPROC dolIndexd;
+PFNDOLINDEXFPROC dolIndexf;
+PFNDOLINDEXIPROC dolIndexi;
+PFNDOLINDEXSPROC dolIndexs;
+PFNDOLINDEXUBPROC dolIndexub;
+PFNDOLINDEXDVPROC dolIndexdv;
+PFNDOLINDEXFVPROC dolIndexfv;
+PFNDOLINDEXIVPROC dolIndexiv;
+PFNDOLINDEXSVPROC dolIndexsv;
+PFNDOLINDEXUBVPROC dolIndexubv;
+PFNDOLCOLOR3BPROC dolColor3b;
+PFNDOLCOLOR3DPROC dolColor3d;
+PFNDOLCOLOR3FPROC dolColor3f;
+PFNDOLCOLOR3IPROC dolColor3i;
+PFNDOLCOLOR3SPROC dolColor3s;
+PFNDOLCOLOR3UBPROC dolColor3ub;
+PFNDOLCOLOR3UIPROC dolColor3ui;
+PFNDOLCOLOR3USPROC dolColor3us;
+PFNDOLCOLOR4BPROC dolColor4b;
+PFNDOLCOLOR4DPROC dolColor4d;
+PFNDOLCOLOR4FPROC dolColor4f;
+PFNDOLCOLOR4IPROC dolColor4i;
+PFNDOLCOLOR4SPROC dolColor4s;
+PFNDOLCOLOR4UBPROC dolColor4ub;
+PFNDOLCOLOR4UIPROC dolColor4ui;
+PFNDOLCOLOR4USPROC dolColor4us;
+PFNDOLCOLOR3BVPROC dolColor3bv;
+PFNDOLCOLOR3DVPROC dolColor3dv;
+PFNDOLCOLOR3FVPROC dolColor3fv;
+PFNDOLCOLOR3IVPROC dolColor3iv;
+PFNDOLCOLOR3SVPROC dolColor3sv;
+PFNDOLCOLOR3UBVPROC dolColor3ubv;
+PFNDOLCOLOR3UIVPROC dolColor3uiv;
+PFNDOLCOLOR3USVPROC dolColor3usv;
+PFNDOLCOLOR4BVPROC dolColor4bv;
+PFNDOLCOLOR4DVPROC dolColor4dv;
+PFNDOLCOLOR4FVPROC dolColor4fv;
+PFNDOLCOLOR4IVPROC dolColor4iv;
+PFNDOLCOLOR4SVPROC dolColor4sv;
+PFNDOLCOLOR4UBVPROC dolColor4ubv;
+PFNDOLCOLOR4UIVPROC dolColor4uiv;
+PFNDOLCOLOR4USVPROC dolColor4usv;
+PFNDOLTEXCOORD1DPROC dolTexCoord1d;
+PFNDOLTEXCOORD1FPROC dolTexCoord1f;
+PFNDOLTEXCOORD1IPROC dolTexCoord1i;
+PFNDOLTEXCOORD1SPROC dolTexCoord1s;
+PFNDOLTEXCOORD2DPROC dolTexCoord2d;
+PFNDOLTEXCOORD2FPROC dolTexCoord2f;
+PFNDOLTEXCOORD2IPROC dolTexCoord2i;
+PFNDOLTEXCOORD2SPROC dolTexCoord2s;
+PFNDOLTEXCOORD3DPROC dolTexCoord3d;
+PFNDOLTEXCOORD3FPROC dolTexCoord3f;
+PFNDOLTEXCOORD3IPROC dolTexCoord3i;
+PFNDOLTEXCOORD3SPROC dolTexCoord3s;
+PFNDOLTEXCOORD4DPROC dolTexCoord4d;
+PFNDOLTEXCOORD4FPROC dolTexCoord4f;
+PFNDOLTEXCOORD4IPROC dolTexCoord4i;
+PFNDOLTEXCOORD4SPROC dolTexCoord4s;
+PFNDOLTEXCOORD1DVPROC dolTexCoord1dv;
+PFNDOLTEXCOORD1FVPROC dolTexCoord1fv;
+PFNDOLTEXCOORD1IVPROC dolTexCoord1iv;
+PFNDOLTEXCOORD1SVPROC dolTexCoord1sv;
+PFNDOLTEXCOORD2DVPROC dolTexCoord2dv;
+PFNDOLTEXCOORD2FVPROC dolTexCoord2fv;
+PFNDOLTEXCOORD2IVPROC dolTexCoord2iv;
+PFNDOLTEXCOORD2SVPROC dolTexCoord2sv;
+PFNDOLTEXCOORD3DVPROC dolTexCoord3dv;
+PFNDOLTEXCOORD3FVPROC dolTexCoord3fv;
+PFNDOLTEXCOORD3IVPROC dolTexCoord3iv;
+PFNDOLTEXCOORD3SVPROC dolTexCoord3sv;
+PFNDOLTEXCOORD4DVPROC dolTexCoord4dv;
+PFNDOLTEXCOORD4FVPROC dolTexCoord4fv;
+PFNDOLTEXCOORD4IVPROC dolTexCoord4iv;
+PFNDOLTEXCOORD4SVPROC dolTexCoord4sv;
+PFNDOLRASTERPOS2DPROC dolRasterPos2d;
+PFNDOLRASTERPOS2FPROC dolRasterPos2f;
+PFNDOLRASTERPOS2IPROC dolRasterPos2i;
+PFNDOLRASTERPOS2SPROC dolRasterPos2s;
+PFNDOLRASTERPOS3DPROC dolRasterPos3d;
+PFNDOLRASTERPOS3FPROC dolRasterPos3f;
+PFNDOLRASTERPOS3IPROC dolRasterPos3i;
+PFNDOLRASTERPOS3SPROC dolRasterPos3s;
+PFNDOLRASTERPOS4DPROC dolRasterPos4d;
+PFNDOLRASTERPOS4FPROC dolRasterPos4f;
+PFNDOLRASTERPOS4IPROC dolRasterPos4i;
+PFNDOLRASTERPOS4SPROC dolRasterPos4s;
+PFNDOLRASTERPOS2DVPROC dolRasterPos2dv;
+PFNDOLRASTERPOS2FVPROC dolRasterPos2fv;
+PFNDOLRASTERPOS2IVPROC dolRasterPos2iv;
+PFNDOLRASTERPOS2SVPROC dolRasterPos2sv;
+PFNDOLRASTERPOS3DVPROC dolRasterPos3dv;
+PFNDOLRASTERPOS3FVPROC dolRasterPos3fv;
+PFNDOLRASTERPOS3IVPROC dolRasterPos3iv;
+PFNDOLRASTERPOS3SVPROC dolRasterPos3sv;
+PFNDOLRASTERPOS4DVPROC dolRasterPos4dv;
+PFNDOLRASTERPOS4FVPROC dolRasterPos4fv;
+PFNDOLRASTERPOS4IVPROC dolRasterPos4iv;
+PFNDOLRASTERPOS4SVPROC dolRasterPos4sv;
+PFNDOLRECTDPROC dolRectd;
+PFNDOLRECTFPROC dolRectf;
+PFNDOLRECTIPROC dolRecti;
+PFNDOLRECTSPROC dolRects;
+PFNDOLRECTDVPROC dolRectdv;
+PFNDOLRECTFVPROC dolRectfv;
+PFNDOLRECTIVPROC dolRectiv;
+PFNDOLRECTSVPROC dolRectsv;
+PFNDOLVERTEXPOINTERPROC dolVertexPointer;
+PFNDOLNORMALPOINTERPROC dolNormalPointer;
+PFNDOLCOLORPOINTERPROC dolColorPointer;
+PFNDOLINDEXPOINTERPROC dolIndexPointer;
+PFNDOLTEXCOORDPOINTERPROC dolTexCoordPointer;
+PFNDOLEDGEFLAGPOINTERPROC dolEdgeFlagPointer;
+PFNDOLGETPOINTERVPROC dolGetPointerv;
+PFNDOLARRAYELEMENTPROC dolArrayElement;
+PFNDOLDRAWARRAYSPROC dolDrawArrays;
+PFNDOLDRAWELEMENTSPROC dolDrawElements;
+PFNDOLINTERLEAVEDARRAYSPROC dolInterleavedArrays;
+PFNDOLSHADEMODELPROC dolShadeModel;
+PFNDOLLIGHTFPROC dolLightf;
+PFNDOLLIGHTIPROC dolLighti;
+PFNDOLLIGHTFVPROC dolLightfv;
+PFNDOLLIGHTIVPROC dolLightiv;
+PFNDOLGETLIGHTFVPROC dolGetLightfv;
+PFNDOLGETLIGHTIVPROC dolGetLightiv;
+PFNDOLLIGHTMODELFPROC dolLightModelf;
+PFNDOLLIGHTMODELIPROC dolLightModeli;
+PFNDOLLIGHTMODELFVPROC dolLightModelfv;
+PFNDOLLIGHTMODELIVPROC dolLightModeliv;
+PFNDOLMATERIALFPROC dolMaterialf;
+PFNDOLMATERIALIPROC dolMateriali;
+PFNDOLMATERIALFVPROC dolMaterialfv;
+PFNDOLMATERIALIVPROC dolMaterialiv;
+PFNDOLGETMATERIALFVPROC dolGetMaterialfv;
+PFNDOLGETMATERIALIVPROC dolGetMaterialiv;
+PFNDOLCOLORMATERIALPROC dolColorMaterial;
+PFNDOLPIXELZOOMPROC dolPixelZoom;
+PFNDOLPIXELSTOREFPROC dolPixelStoref;
+PFNDOLPIXELSTOREIPROC dolPixelStorei;
+PFNDOLPIXELTRANSFERFPROC dolPixelTransferf;
+PFNDOLPIXELTRANSFERIPROC dolPixelTransferi;
+PFNDOLPIXELMAPFVPROC dolPixelMapfv;
+PFNDOLPIXELMAPUIVPROC dolPixelMapuiv;
+PFNDOLPIXELMAPUSVPROC dolPixelMapusv;
+PFNDOLGETPIXELMAPFVPROC dolGetPixelMapfv;
+PFNDOLGETPIXELMAPUIVPROC dolGetPixelMapuiv;
+PFNDOLGETPIXELMAPUSVPROC dolGetPixelMapusv;
+PFNDOLBITMAPPROC dolBitmap;
+PFNDOLREADPIXELSPROC dolReadPixels;
+PFNDOLDRAWPIXELSPROC dolDrawPixels;
+PFNDOLCOPYPIXELSPROC dolCopyPixels;
+PFNDOLSTENCILFUNCPROC dolStencilFunc;
+PFNDOLSTENCILMASKPROC dolStencilMask;
+PFNDOLSTENCILOPPROC dolStencilOp;
+PFNDOLCLEARSTENCILPROC dolClearStencil;
+PFNDOLTEXGENDPROC dolTexGend;
+PFNDOLTEXGENFPROC dolTexGenf;
+PFNDOLTEXGENIPROC dolTexGeni;
+PFNDOLTEXGENDVPROC dolTexGendv;
+PFNDOLTEXGENFVPROC dolTexGenfv;
+PFNDOLTEXGENIVPROC dolTexGeniv;
+PFNDOLGETTEXGENDVPROC dolGetTexGendv;
+PFNDOLGETTEXGENFVPROC dolGetTexGenfv;
+PFNDOLGETTEXGENIVPROC dolGetTexGeniv;
+PFNDOLTEXENVFPROC dolTexEnvf;
+PFNDOLTEXENVIPROC dolTexEnvi;
+PFNDOLTEXENVFVPROC dolTexEnvfv;
+PFNDOLTEXENVIVPROC dolTexEnviv;
+PFNDOLGETTEXENVFVPROC dolGetTexEnvfv;
+PFNDOLGETTEXENVIVPROC dolGetTexEnviv;
+PFNDOLTEXPARAMETERFPROC dolTexParameterf;
+PFNDOLTEXPARAMETERIPROC dolTexParameteri;
+PFNDOLTEXPARAMETERFVPROC dolTexParameterfv;
+PFNDOLTEXPARAMETERIVPROC dolTexParameteriv;
+PFNDOLGETTEXPARAMETERFVPROC dolGetTexParameterfv;
+PFNDOLGETTEXPARAMETERIVPROC dolGetTexParameteriv;
+PFNDOLGETTEXLEVELPARAMETERFVPROC dolGetTexLevelParameterfv;
+PFNDOLGETTEXLEVELPARAMETERIVPROC dolGetTexLevelParameteriv;
+PFNDOLTEXIMAGE1DPROC dolTexImage1D;
+PFNDOLTEXIMAGE2DPROC dolTexImage2D;
+PFNDOLGETTEXIMAGEPROC dolGetTexImage;
+PFNDOLGENTEXTURESPROC dolGenTextures;
+PFNDOLDELETETEXTURESPROC dolDeleteTextures;
+PFNDOLBINDTEXTUREPROC dolBindTexture;
+PFNDOLPRIORITIZETEXTURESPROC dolPrioritizeTextures;
+PFNDOLARETEXTURESRESIDENTPROC dolAreTexturesResident;
+PFNDOLISTEXTUREPROC dolIsTexture;
+PFNDOLTEXSUBIMAGE1DPROC dolTexSubImage1D;
+PFNDOLTEXSUBIMAGE2DPROC dolTexSubImage2D;
+PFNDOLCOPYTEXIMAGE1DPROC dolCopyTexImage1D;
+PFNDOLCOPYTEXIMAGE2DPROC dolCopyTexImage2D;
+PFNDOLCOPYTEXSUBIMAGE1DPROC dolCopyTexSubImage1D;
+PFNDOLCOPYTEXSUBIMAGE2DPROC dolCopyTexSubImage2D;
+PFNDOLMAP1DPROC dolMap1d;
+PFNDOLMAP1FPROC dolMap1f;
+PFNDOLMAP2DPROC dolMap2d;
+PFNDOLMAP2FPROC dolMap2f;
+PFNDOLGETMAPDVPROC dolGetMapdv;
+PFNDOLGETMAPFVPROC dolGetMapfv;
+PFNDOLGETMAPIVPROC dolGetMapiv;
+PFNDOLEVALCOORD1DPROC dolEvalCoord1d;
+PFNDOLEVALCOORD1FPROC dolEvalCoord1f;
+PFNDOLEVALCOORD1DVPROC dolEvalCoord1dv;
+PFNDOLEVALCOORD1FVPROC dolEvalCoord1fv;
+PFNDOLEVALCOORD2DPROC dolEvalCoord2d;
+PFNDOLEVALCOORD2FPROC dolEvalCoord2f;
+PFNDOLEVALCOORD2DVPROC dolEvalCoord2dv;
+PFNDOLEVALCOORD2FVPROC dolEvalCoord2fv;
+PFNDOLMAPGRID1DPROC dolMapGrid1d;
+PFNDOLMAPGRID1FPROC dolMapGrid1f;
+PFNDOLMAPGRID2DPROC dolMapGrid2d;
+PFNDOLMAPGRID2FPROC dolMapGrid2f;
+PFNDOLEVALPOINT1PROC dolEvalPoint1;
+PFNDOLEVALPOINT2PROC dolEvalPoint2;
+PFNDOLEVALMESH1PROC dolEvalMesh1;
+PFNDOLEVALMESH2PROC dolEvalMesh2;
+PFNDOLFOGFPROC dolFogf;
+PFNDOLFOGIPROC dolFogi;
+PFNDOLFOGFVPROC dolFogfv;
+PFNDOLFOGIVPROC dolFogiv;
+PFNDOLFEEDBACKBUFFERPROC dolFeedbackBuffer;
+PFNDOLPASSTHROUGHPROC dolPassThrough;
+PFNDOLSELECTBUFFERPROC dolSelectBuffer;
+PFNDOLINITNAMESPROC dolInitNames;
+PFNDOLLOADNAMEPROC dolLoadName;
+PFNDOLPUSHNAMEPROC dolPushName;
+PFNDOLPOPNAMEPROC dolPopName;
// gl_1_2
-PFNGLCOPYTEXSUBIMAGE3DPROC glCopyTexSubImage3D;
-PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements;
-PFNGLTEXIMAGE3DPROC glTexImage3D;
-PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D;
+PFNDOLCOPYTEXSUBIMAGE3DPROC dolCopyTexSubImage3D;
+PFNDOLDRAWRANGEELEMENTSPROC dolDrawRangeElements;
+PFNDOLTEXIMAGE3DPROC dolTexImage3D;
+PFNDOLTEXSUBIMAGE3DPROC dolTexSubImage3D;
// gl_1_3
-PFNGLACTIVETEXTUREARBPROC glActiveTexture;
-PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTexture;
-PFNGLCOMPRESSEDTEXIMAGE1DPROC glCompressedTexImage1D;
-PFNGLCOMPRESSEDTEXIMAGE2DPROC glCompressedTexImage2D;
-PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D;
-PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glCompressedTexSubImage1D;
-PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glCompressedTexSubImage2D;
-PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D;
-PFNGLGETCOMPRESSEDTEXIMAGEPROC glGetCompressedTexImage;
-PFNGLLOADTRANSPOSEMATRIXDARBPROC glLoadTransposeMatrixd;
-PFNGLLOADTRANSPOSEMATRIXFARBPROC glLoadTransposeMatrixf;
-PFNGLMULTTRANSPOSEMATRIXDARBPROC glMultTransposeMatrixd;
-PFNGLMULTTRANSPOSEMATRIXFARBPROC glMultTransposeMatrixf;
-PFNGLMULTITEXCOORD1DARBPROC glMultiTexCoord1d;
-PFNGLMULTITEXCOORD1DVARBPROC glMultiTexCoord1dv;
-PFNGLMULTITEXCOORD1FARBPROC glMultiTexCoord1f;
-PFNGLMULTITEXCOORD1FVARBPROC glMultiTexCoord1fv;
-PFNGLMULTITEXCOORD1IARBPROC glMultiTexCoord1i;
-PFNGLMULTITEXCOORD1IVARBPROC glMultiTexCoord1iv;
-PFNGLMULTITEXCOORD1SARBPROC glMultiTexCoord1s;
-PFNGLMULTITEXCOORD1SVARBPROC glMultiTexCoord1sv;
-PFNGLMULTITEXCOORD2DARBPROC glMultiTexCoord2d;
-PFNGLMULTITEXCOORD2DVARBPROC glMultiTexCoord2dv;
-PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2f;
-PFNGLMULTITEXCOORD2FVARBPROC glMultiTexCoord2fv;
-PFNGLMULTITEXCOORD2IARBPROC glMultiTexCoord2i;
-PFNGLMULTITEXCOORD2IVARBPROC glMultiTexCoord2iv;
-PFNGLMULTITEXCOORD2SARBPROC glMultiTexCoord2s;
-PFNGLMULTITEXCOORD2SVARBPROC glMultiTexCoord2sv;
-PFNGLMULTITEXCOORD3DARBPROC glMultiTexCoord3d;
-PFNGLMULTITEXCOORD3DVARBPROC glMultiTexCoord3dv;
-PFNGLMULTITEXCOORD3FARBPROC glMultiTexCoord3f;
-PFNGLMULTITEXCOORD3FVARBPROC glMultiTexCoord3fv;
-PFNGLMULTITEXCOORD3IARBPROC glMultiTexCoord3i;
-PFNGLMULTITEXCOORD3IVARBPROC glMultiTexCoord3iv;
-PFNGLMULTITEXCOORD3SARBPROC glMultiTexCoord3s;
-PFNGLMULTITEXCOORD3SVARBPROC glMultiTexCoord3sv;
-PFNGLMULTITEXCOORD4DARBPROC glMultiTexCoord4d;
-PFNGLMULTITEXCOORD4DVARBPROC glMultiTexCoord4dv;
-PFNGLMULTITEXCOORD4FARBPROC glMultiTexCoord4f;
-PFNGLMULTITEXCOORD4FVARBPROC glMultiTexCoord4fv;
-PFNGLMULTITEXCOORD4IARBPROC glMultiTexCoord4i;
-PFNGLMULTITEXCOORD4IVARBPROC glMultiTexCoord4iv;
-PFNGLMULTITEXCOORD4SARBPROC glMultiTexCoord4s;
-PFNGLMULTITEXCOORD4SVARBPROC glMultiTexCoord4sv;
-PFNGLSAMPLECOVERAGEARBPROC glSampleCoverage;
+PFNDOLACTIVETEXTUREARBPROC dolActiveTexture;
+PFNDOLCLIENTACTIVETEXTUREARBPROC dolClientActiveTexture;
+PFNDOLCOMPRESSEDTEXIMAGE1DPROC dolCompressedTexImage1D;
+PFNDOLCOMPRESSEDTEXIMAGE2DPROC dolCompressedTexImage2D;
+PFNDOLCOMPRESSEDTEXIMAGE3DPROC dolCompressedTexImage3D;
+PFNDOLCOMPRESSEDTEXSUBIMAGE1DPROC dolCompressedTexSubImage1D;
+PFNDOLCOMPRESSEDTEXSUBIMAGE2DPROC dolCompressedTexSubImage2D;
+PFNDOLCOMPRESSEDTEXSUBIMAGE3DPROC dolCompressedTexSubImage3D;
+PFNDOLGETCOMPRESSEDTEXIMAGEPROC dolGetCompressedTexImage;
+PFNDOLLOADTRANSPOSEMATRIXDARBPROC dolLoadTransposeMatrixd;
+PFNDOLLOADTRANSPOSEMATRIXFARBPROC dolLoadTransposeMatrixf;
+PFNDOLMULTTRANSPOSEMATRIXDARBPROC dolMultTransposeMatrixd;
+PFNDOLMULTTRANSPOSEMATRIXFARBPROC dolMultTransposeMatrixf;
+PFNDOLMULTITEXCOORD1DARBPROC dolMultiTexCoord1d;
+PFNDOLMULTITEXCOORD1DVARBPROC dolMultiTexCoord1dv;
+PFNDOLMULTITEXCOORD1FARBPROC dolMultiTexCoord1f;
+PFNDOLMULTITEXCOORD1FVARBPROC dolMultiTexCoord1fv;
+PFNDOLMULTITEXCOORD1IARBPROC dolMultiTexCoord1i;
+PFNDOLMULTITEXCOORD1IVARBPROC dolMultiTexCoord1iv;
+PFNDOLMULTITEXCOORD1SARBPROC dolMultiTexCoord1s;
+PFNDOLMULTITEXCOORD1SVARBPROC dolMultiTexCoord1sv;
+PFNDOLMULTITEXCOORD2DARBPROC dolMultiTexCoord2d;
+PFNDOLMULTITEXCOORD2DVARBPROC dolMultiTexCoord2dv;
+PFNDOLMULTITEXCOORD2FARBPROC dolMultiTexCoord2f;
+PFNDOLMULTITEXCOORD2FVARBPROC dolMultiTexCoord2fv;
+PFNDOLMULTITEXCOORD2IARBPROC dolMultiTexCoord2i;
+PFNDOLMULTITEXCOORD2IVARBPROC dolMultiTexCoord2iv;
+PFNDOLMULTITEXCOORD2SARBPROC dolMultiTexCoord2s;
+PFNDOLMULTITEXCOORD2SVARBPROC dolMultiTexCoord2sv;
+PFNDOLMULTITEXCOORD3DARBPROC dolMultiTexCoord3d;
+PFNDOLMULTITEXCOORD3DVARBPROC dolMultiTexCoord3dv;
+PFNDOLMULTITEXCOORD3FARBPROC dolMultiTexCoord3f;
+PFNDOLMULTITEXCOORD3FVARBPROC dolMultiTexCoord3fv;
+PFNDOLMULTITEXCOORD3IARBPROC dolMultiTexCoord3i;
+PFNDOLMULTITEXCOORD3IVARBPROC dolMultiTexCoord3iv;
+PFNDOLMULTITEXCOORD3SARBPROC dolMultiTexCoord3s;
+PFNDOLMULTITEXCOORD3SVARBPROC dolMultiTexCoord3sv;
+PFNDOLMULTITEXCOORD4DARBPROC dolMultiTexCoord4d;
+PFNDOLMULTITEXCOORD4DVARBPROC dolMultiTexCoord4dv;
+PFNDOLMULTITEXCOORD4FARBPROC dolMultiTexCoord4f;
+PFNDOLMULTITEXCOORD4FVARBPROC dolMultiTexCoord4fv;
+PFNDOLMULTITEXCOORD4IARBPROC dolMultiTexCoord4i;
+PFNDOLMULTITEXCOORD4IVARBPROC dolMultiTexCoord4iv;
+PFNDOLMULTITEXCOORD4SARBPROC dolMultiTexCoord4s;
+PFNDOLMULTITEXCOORD4SVARBPROC dolMultiTexCoord4sv;
+PFNDOLSAMPLECOVERAGEARBPROC dolSampleCoverage;
// gl_1_4
-PFNGLBLENDCOLORPROC glBlendColor;
-PFNGLBLENDEQUATIONPROC glBlendEquation;
-PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate;
-PFNGLFOGCOORDPOINTERPROC glFogCoordPointer;
-PFNGLFOGCOORDDPROC glFogCoordd;
-PFNGLFOGCOORDDVPROC glFogCoorddv;
-PFNGLFOGCOORDFPROC glFogCoordf;
-PFNGLFOGCOORDFVPROC glFogCoordfv;
-PFNGLMULTIDRAWARRAYSPROC glMultiDrawArrays;
-PFNGLMULTIDRAWELEMENTSPROC glMultiDrawElements;
-PFNGLPOINTPARAMETERFPROC glPointParameterf;
-PFNGLPOINTPARAMETERFVPROC glPointParameterfv;
-PFNGLPOINTPARAMETERIPROC glPointParameteri;
-PFNGLPOINTPARAMETERIVPROC glPointParameteriv;
-PFNGLSECONDARYCOLOR3BPROC glSecondaryColor3b;
-PFNGLSECONDARYCOLOR3BVPROC glSecondaryColor3bv;
-PFNGLSECONDARYCOLOR3DPROC glSecondaryColor3d;
-PFNGLSECONDARYCOLOR3DVPROC glSecondaryColor3dv;
-PFNGLSECONDARYCOLOR3FPROC glSecondaryColor3f;
-PFNGLSECONDARYCOLOR3FVPROC glSecondaryColor3fv;
-PFNGLSECONDARYCOLOR3IPROC glSecondaryColor3i;
-PFNGLSECONDARYCOLOR3IVPROC glSecondaryColor3iv;
-PFNGLSECONDARYCOLOR3SPROC glSecondaryColor3s;
-PFNGLSECONDARYCOLOR3SVPROC glSecondaryColor3sv;
-PFNGLSECONDARYCOLOR3UBPROC glSecondaryColor3ub;
-PFNGLSECONDARYCOLOR3UBVPROC glSecondaryColor3ubv;
-PFNGLSECONDARYCOLOR3UIPROC glSecondaryColor3ui;
-PFNGLSECONDARYCOLOR3UIVPROC glSecondaryColor3uiv;
-PFNGLSECONDARYCOLOR3USPROC glSecondaryColor3us;
-PFNGLSECONDARYCOLOR3USVPROC glSecondaryColor3usv;
-PFNGLSECONDARYCOLORPOINTERPROC glSecondaryColorPointer;
-PFNGLWINDOWPOS2DPROC glWindowPos2d;
-PFNGLWINDOWPOS2DVPROC glWindowPos2dv;
-PFNGLWINDOWPOS2FPROC glWindowPos2f;
-PFNGLWINDOWPOS2FVPROC glWindowPos2fv;
-PFNGLWINDOWPOS2IPROC glWindowPos2i;
-PFNGLWINDOWPOS2IVPROC glWindowPos2iv;
-PFNGLWINDOWPOS2SPROC glWindowPos2s;
-PFNGLWINDOWPOS2SVPROC glWindowPos2sv;
-PFNGLWINDOWPOS3DPROC glWindowPos3d;
-PFNGLWINDOWPOS3DVPROC glWindowPos3dv;
-PFNGLWINDOWPOS3FPROC glWindowPos3f;
-PFNGLWINDOWPOS3FVPROC glWindowPos3fv;
-PFNGLWINDOWPOS3IPROC glWindowPos3i;
-PFNGLWINDOWPOS3IVPROC glWindowPos3iv;
-PFNGLWINDOWPOS3SPROC glWindowPos3s;
-PFNGLWINDOWPOS3SVPROC glWindowPos3sv;
+PFNDOLBLENDCOLORPROC dolBlendColor;
+PFNDOLBLENDEQUATIONPROC dolBlendEquation;
+PFNDOLBLENDFUNCSEPARATEPROC dolBlendFuncSeparate;
+PFNDOLFOGCOORDPOINTERPROC dolFogCoordPointer;
+PFNDOLFOGCOORDDPROC dolFogCoordd;
+PFNDOLFOGCOORDDVPROC dolFogCoorddv;
+PFNDOLFOGCOORDFPROC dolFogCoordf;
+PFNDOLFOGCOORDFVPROC dolFogCoordfv;
+PFNDOLMULTIDRAWARRAYSPROC dolMultiDrawArrays;
+PFNDOLMULTIDRAWELEMENTSPROC dolMultiDrawElements;
+PFNDOLPOINTPARAMETERFPROC dolPointParameterf;
+PFNDOLPOINTPARAMETERFVPROC dolPointParameterfv;
+PFNDOLPOINTPARAMETERIPROC dolPointParameteri;
+PFNDOLPOINTPARAMETERIVPROC dolPointParameteriv;
+PFNDOLSECONDARYCOLOR3BPROC dolSecondaryColor3b;
+PFNDOLSECONDARYCOLOR3BVPROC dolSecondaryColor3bv;
+PFNDOLSECONDARYCOLOR3DPROC dolSecondaryColor3d;
+PFNDOLSECONDARYCOLOR3DVPROC dolSecondaryColor3dv;
+PFNDOLSECONDARYCOLOR3FPROC dolSecondaryColor3f;
+PFNDOLSECONDARYCOLOR3FVPROC dolSecondaryColor3fv;
+PFNDOLSECONDARYCOLOR3IPROC dolSecondaryColor3i;
+PFNDOLSECONDARYCOLOR3IVPROC dolSecondaryColor3iv;
+PFNDOLSECONDARYCOLOR3SPROC dolSecondaryColor3s;
+PFNDOLSECONDARYCOLOR3SVPROC dolSecondaryColor3sv;
+PFNDOLSECONDARYCOLOR3UBPROC dolSecondaryColor3ub;
+PFNDOLSECONDARYCOLOR3UBVPROC dolSecondaryColor3ubv;
+PFNDOLSECONDARYCOLOR3UIPROC dolSecondaryColor3ui;
+PFNDOLSECONDARYCOLOR3UIVPROC dolSecondaryColor3uiv;
+PFNDOLSECONDARYCOLOR3USPROC dolSecondaryColor3us;
+PFNDOLSECONDARYCOLOR3USVPROC dolSecondaryColor3usv;
+PFNDOLSECONDARYCOLORPOINTERPROC dolSecondaryColorPointer;
+PFNDOLWINDOWPOS2DPROC dolWindowPos2d;
+PFNDOLWINDOWPOS2DVPROC dolWindowPos2dv;
+PFNDOLWINDOWPOS2FPROC dolWindowPos2f;
+PFNDOLWINDOWPOS2FVPROC dolWindowPos2fv;
+PFNDOLWINDOWPOS2IPROC dolWindowPos2i;
+PFNDOLWINDOWPOS2IVPROC dolWindowPos2iv;
+PFNDOLWINDOWPOS2SPROC dolWindowPos2s;
+PFNDOLWINDOWPOS2SVPROC dolWindowPos2sv;
+PFNDOLWINDOWPOS3DPROC dolWindowPos3d;
+PFNDOLWINDOWPOS3DVPROC dolWindowPos3dv;
+PFNDOLWINDOWPOS3FPROC dolWindowPos3f;
+PFNDOLWINDOWPOS3FVPROC dolWindowPos3fv;
+PFNDOLWINDOWPOS3IPROC dolWindowPos3i;
+PFNDOLWINDOWPOS3IVPROC dolWindowPos3iv;
+PFNDOLWINDOWPOS3SPROC dolWindowPos3s;
+PFNDOLWINDOWPOS3SVPROC dolWindowPos3sv;
// gl_1_5
-PFNGLBEGINQUERYPROC glBeginQuery;
-PFNGLBINDBUFFERPROC glBindBuffer;
-PFNGLBUFFERDATAPROC glBufferData;
-PFNGLBUFFERSUBDATAPROC glBufferSubData;
-PFNGLDELETEBUFFERSPROC glDeleteBuffers;
-PFNGLDELETEQUERIESPROC glDeleteQueries;
-PFNGLENDQUERYPROC glEndQuery;
-PFNGLGENBUFFERSPROC glGenBuffers;
-PFNGLGENQUERIESPROC glGenQueries;
-PFNGLGETBUFFERPARAMETERIVPROC glGetBufferParameteriv;
-PFNGLGETBUFFERPOINTERVPROC glGetBufferPointerv;
-PFNGLGETBUFFERSUBDATAPROC glGetBufferSubData;
-PFNGLGETQUERYOBJECTIVPROC glGetQueryObjectiv;
-PFNGLGETQUERYOBJECTUIVPROC glGetQueryObjectuiv;
-PFNGLGETQUERYIVPROC glGetQueryiv;
-PFNGLISBUFFERPROC glIsBuffer;
-PFNGLISQUERYPROC glIsQuery;
-PFNGLMAPBUFFERPROC glMapBuffer;
-PFNGLUNMAPBUFFERPROC glUnmapBuffer;
+PFNDOLBEGINQUERYPROC dolBeginQuery;
+PFNDOLBINDBUFFERPROC dolBindBuffer;
+PFNDOLBUFFERDATAPROC dolBufferData;
+PFNDOLBUFFERSUBDATAPROC dolBufferSubData;
+PFNDOLDELETEBUFFERSPROC dolDeleteBuffers;
+PFNDOLDELETEQUERIESPROC dolDeleteQueries;
+PFNDOLENDQUERYPROC dolEndQuery;
+PFNDOLGENBUFFERSPROC dolGenBuffers;
+PFNDOLGENQUERIESPROC dolGenQueries;
+PFNDOLGETBUFFERPARAMETERIVPROC dolGetBufferParameteriv;
+PFNDOLGETBUFFERPOINTERVPROC dolGetBufferPointerv;
+PFNDOLGETBUFFERSUBDATAPROC dolGetBufferSubData;
+PFNDOLGETQUERYOBJECTIVPROC dolGetQueryObjectiv;
+PFNDOLGETQUERYOBJECTUIVPROC dolGetQueryObjectuiv;
+PFNDOLGETQUERYIVPROC dolGetQueryiv;
+PFNDOLISBUFFERPROC dolIsBuffer;
+PFNDOLISQUERYPROC dolIsQuery;
+PFNDOLMAPBUFFERPROC dolMapBuffer;
+PFNDOLUNMAPBUFFERPROC dolUnmapBuffer;
// gl_2_0
-PFNGLATTACHSHADERPROC glAttachShader;
-PFNGLBINDATTRIBLOCATIONPROC glBindAttribLocation;
-PFNGLBLENDEQUATIONSEPARATEPROC glBlendEquationSeparate;
-PFNGLCOMPILESHADERPROC glCompileShader;
-PFNGLCREATEPROGRAMPROC glCreateProgram;
-PFNGLCREATESHADERPROC glCreateShader;
-PFNGLDELETEPROGRAMPROC glDeleteProgram;
-PFNGLDELETESHADERPROC glDeleteShader;
-PFNGLDETACHSHADERPROC glDetachShader;
-PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray;
-PFNGLDRAWBUFFERSPROC glDrawBuffers;
-PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray;
-PFNGLGETACTIVEATTRIBPROC glGetActiveAttrib;
-PFNGLGETACTIVEUNIFORMPROC glGetActiveUniform;
-PFNGLGETATTACHEDSHADERSPROC glGetAttachedShaders;
-PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation;
-PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog;
-PFNGLGETPROGRAMIVPROC glGetProgramiv;
-PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog;
-PFNGLGETSHADERSOURCEPROC glGetShaderSource;
-PFNGLGETSHADERIVPROC glGetShaderiv;
-PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation;
-PFNGLGETUNIFORMFVPROC glGetUniformfv;
-PFNGLGETUNIFORMIVPROC glGetUniformiv;
-PFNGLGETVERTEXATTRIBPOINTERVPROC glGetVertexAttribPointerv;
-PFNGLGETVERTEXATTRIBDVPROC glGetVertexAttribdv;
-PFNGLGETVERTEXATTRIBFVPROC glGetVertexAttribfv;
-PFNGLGETVERTEXATTRIBIVPROC glGetVertexAttribiv;
-PFNGLISPROGRAMPROC glIsProgram;
-PFNGLISSHADERPROC glIsShader;
-PFNGLLINKPROGRAMPROC glLinkProgram;
-PFNGLSHADERSOURCEPROC glShaderSource;
-PFNGLSTENCILFUNCSEPARATEPROC glStencilFuncSeparate;
-PFNGLSTENCILMASKSEPARATEPROC glStencilMaskSeparate;
-PFNGLSTENCILOPSEPARATEPROC glStencilOpSeparate;
-PFNGLUNIFORM1FPROC glUniform1f;
-PFNGLUNIFORM1FVPROC glUniform1fv;
-PFNGLUNIFORM1IPROC glUniform1i;
-PFNGLUNIFORM1IVPROC glUniform1iv;
-PFNGLUNIFORM2FPROC glUniform2f;
-PFNGLUNIFORM2FVPROC glUniform2fv;
-PFNGLUNIFORM2IPROC glUniform2i;
-PFNGLUNIFORM2IVPROC glUniform2iv;
-PFNGLUNIFORM3FPROC glUniform3f;
-PFNGLUNIFORM3FVPROC glUniform3fv;
-PFNGLUNIFORM3IPROC glUniform3i;
-PFNGLUNIFORM3IVPROC glUniform3iv;
-PFNGLUNIFORM4FPROC glUniform4f;
-PFNGLUNIFORM4FVPROC glUniform4fv;
-PFNGLUNIFORM4IPROC glUniform4i;
-PFNGLUNIFORM4IVPROC glUniform4iv;
-PFNGLUNIFORMMATRIX2FVPROC glUniformMatrix2fv;
-PFNGLUNIFORMMATRIX3FVPROC glUniformMatrix3fv;
-PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv;
-PFNGLUSEPROGRAMPROC glUseProgram;
-PFNGLVALIDATEPROGRAMPROC glValidateProgram;
-PFNGLVERTEXATTRIB1DPROC glVertexAttrib1d;
-PFNGLVERTEXATTRIB1DVPROC glVertexAttrib1dv;
-PFNGLVERTEXATTRIB1FPROC glVertexAttrib1f;
-PFNGLVERTEXATTRIB1FVPROC glVertexAttrib1fv;
-PFNGLVERTEXATTRIB1SPROC glVertexAttrib1s;
-PFNGLVERTEXATTRIB1SVPROC glVertexAttrib1sv;
-PFNGLVERTEXATTRIB2DPROC glVertexAttrib2d;
-PFNGLVERTEXATTRIB2DVPROC glVertexAttrib2dv;
-PFNGLVERTEXATTRIB2FPROC glVertexAttrib2f;
-PFNGLVERTEXATTRIB2FVPROC glVertexAttrib2fv;
-PFNGLVERTEXATTRIB2SPROC glVertexAttrib2s;
-PFNGLVERTEXATTRIB2SVPROC glVertexAttrib2sv;
-PFNGLVERTEXATTRIB3DPROC glVertexAttrib3d;
-PFNGLVERTEXATTRIB3DVPROC glVertexAttrib3dv;
-PFNGLVERTEXATTRIB3FPROC glVertexAttrib3f;
-PFNGLVERTEXATTRIB3FVPROC glVertexAttrib3fv;
-PFNGLVERTEXATTRIB3SPROC glVertexAttrib3s;
-PFNGLVERTEXATTRIB3SVPROC glVertexAttrib3sv;
-PFNGLVERTEXATTRIB4NBVPROC glVertexAttrib4Nbv;
-PFNGLVERTEXATTRIB4NIVPROC glVertexAttrib4Niv;
-PFNGLVERTEXATTRIB4NSVPROC glVertexAttrib4Nsv;
-PFNGLVERTEXATTRIB4NUBPROC glVertexAttrib4Nub;
-PFNGLVERTEXATTRIB4NUBVPROC glVertexAttrib4Nubv;
-PFNGLVERTEXATTRIB4NUIVPROC glVertexAttrib4Nuiv;
-PFNGLVERTEXATTRIB4NUSVPROC glVertexAttrib4Nusv;
-PFNGLVERTEXATTRIB4BVPROC glVertexAttrib4bv;
-PFNGLVERTEXATTRIB4DPROC glVertexAttrib4d;
-PFNGLVERTEXATTRIB4DVPROC glVertexAttrib4dv;
-PFNGLVERTEXATTRIB4FPROC glVertexAttrib4f;
-PFNGLVERTEXATTRIB4FVPROC glVertexAttrib4fv;
-PFNGLVERTEXATTRIB4IVPROC glVertexAttrib4iv;
-PFNGLVERTEXATTRIB4SPROC glVertexAttrib4s;
-PFNGLVERTEXATTRIB4SVPROC glVertexAttrib4sv;
-PFNGLVERTEXATTRIB4UBVPROC glVertexAttrib4ubv;
-PFNGLVERTEXATTRIB4UIVPROC glVertexAttrib4uiv;
-PFNGLVERTEXATTRIB4USVPROC glVertexAttrib4usv;
-PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer;
+PFNDOLATTACHSHADERPROC dolAttachShader;
+PFNDOLBINDATTRIBLOCATIONPROC dolBindAttribLocation;
+PFNDOLBLENDEQUATIONSEPARATEPROC dolBlendEquationSeparate;
+PFNDOLCOMPILESHADERPROC dolCompileShader;
+PFNDOLCREATEPROGRAMPROC dolCreateProgram;
+PFNDOLCREATESHADERPROC dolCreateShader;
+PFNDOLDELETEPROGRAMPROC dolDeleteProgram;
+PFNDOLDELETESHADERPROC dolDeleteShader;
+PFNDOLDETACHSHADERPROC dolDetachShader;
+PFNDOLDISABLEVERTEXATTRIBARRAYPROC dolDisableVertexAttribArray;
+PFNDOLDRAWBUFFERSPROC dolDrawBuffers;
+PFNDOLENABLEVERTEXATTRIBARRAYPROC dolEnableVertexAttribArray;
+PFNDOLGETACTIVEATTRIBPROC dolGetActiveAttrib;
+PFNDOLGETACTIVEUNIFORMPROC dolGetActiveUniform;
+PFNDOLGETATTACHEDSHADERSPROC dolGetAttachedShaders;
+PFNDOLGETATTRIBLOCATIONPROC dolGetAttribLocation;
+PFNDOLGETPROGRAMINFOLOGPROC dolGetProgramInfoLog;
+PFNDOLGETPROGRAMIVPROC dolGetProgramiv;
+PFNDOLGETSHADERINFOLOGPROC dolGetShaderInfoLog;
+PFNDOLGETSHADERSOURCEPROC dolGetShaderSource;
+PFNDOLGETSHADERIVPROC dolGetShaderiv;
+PFNDOLGETUNIFORMLOCATIONPROC dolGetUniformLocation;
+PFNDOLGETUNIFORMFVPROC dolGetUniformfv;
+PFNDOLGETUNIFORMIVPROC dolGetUniformiv;
+PFNDOLGETVERTEXATTRIBPOINTERVPROC dolGetVertexAttribPointerv;
+PFNDOLGETVERTEXATTRIBDVPROC dolGetVertexAttribdv;
+PFNDOLGETVERTEXATTRIBFVPROC dolGetVertexAttribfv;
+PFNDOLGETVERTEXATTRIBIVPROC dolGetVertexAttribiv;
+PFNDOLISPROGRAMPROC dolIsProgram;
+PFNDOLISSHADERPROC dolIsShader;
+PFNDOLLINKPROGRAMPROC dolLinkProgram;
+PFNDOLSHADERSOURCEPROC dolShaderSource;
+PFNDOLSTENCILFUNCSEPARATEPROC dolStencilFuncSeparate;
+PFNDOLSTENCILMASKSEPARATEPROC dolStencilMaskSeparate;
+PFNDOLSTENCILOPSEPARATEPROC dolStencilOpSeparate;
+PFNDOLUNIFORM1FPROC dolUniform1f;
+PFNDOLUNIFORM1FVPROC dolUniform1fv;
+PFNDOLUNIFORM1IPROC dolUniform1i;
+PFNDOLUNIFORM1IVPROC dolUniform1iv;
+PFNDOLUNIFORM2FPROC dolUniform2f;
+PFNDOLUNIFORM2FVPROC dolUniform2fv;
+PFNDOLUNIFORM2IPROC dolUniform2i;
+PFNDOLUNIFORM2IVPROC dolUniform2iv;
+PFNDOLUNIFORM3FPROC dolUniform3f;
+PFNDOLUNIFORM3FVPROC dolUniform3fv;
+PFNDOLUNIFORM3IPROC dolUniform3i;
+PFNDOLUNIFORM3IVPROC dolUniform3iv;
+PFNDOLUNIFORM4FPROC dolUniform4f;
+PFNDOLUNIFORM4FVPROC dolUniform4fv;
+PFNDOLUNIFORM4IPROC dolUniform4i;
+PFNDOLUNIFORM4IVPROC dolUniform4iv;
+PFNDOLUNIFORMMATRIX2FVPROC dolUniformMatrix2fv;
+PFNDOLUNIFORMMATRIX3FVPROC dolUniformMatrix3fv;
+PFNDOLUNIFORMMATRIX4FVPROC dolUniformMatrix4fv;
+PFNDOLUSEPROGRAMPROC dolUseProgram;
+PFNDOLVALIDATEPROGRAMPROC dolValidateProgram;
+PFNDOLVERTEXATTRIB1DPROC dolVertexAttrib1d;
+PFNDOLVERTEXATTRIB1DVPROC dolVertexAttrib1dv;
+PFNDOLVERTEXATTRIB1FPROC dolVertexAttrib1f;
+PFNDOLVERTEXATTRIB1FVPROC dolVertexAttrib1fv;
+PFNDOLVERTEXATTRIB1SPROC dolVertexAttrib1s;
+PFNDOLVERTEXATTRIB1SVPROC dolVertexAttrib1sv;
+PFNDOLVERTEXATTRIB2DPROC dolVertexAttrib2d;
+PFNDOLVERTEXATTRIB2DVPROC dolVertexAttrib2dv;
+PFNDOLVERTEXATTRIB2FPROC dolVertexAttrib2f;
+PFNDOLVERTEXATTRIB2FVPROC dolVertexAttrib2fv;
+PFNDOLVERTEXATTRIB2SPROC dolVertexAttrib2s;
+PFNDOLVERTEXATTRIB2SVPROC dolVertexAttrib2sv;
+PFNDOLVERTEXATTRIB3DPROC dolVertexAttrib3d;
+PFNDOLVERTEXATTRIB3DVPROC dolVertexAttrib3dv;
+PFNDOLVERTEXATTRIB3FPROC dolVertexAttrib3f;
+PFNDOLVERTEXATTRIB3FVPROC dolVertexAttrib3fv;
+PFNDOLVERTEXATTRIB3SPROC dolVertexAttrib3s;
+PFNDOLVERTEXATTRIB3SVPROC dolVertexAttrib3sv;
+PFNDOLVERTEXATTRIB4NBVPROC dolVertexAttrib4Nbv;
+PFNDOLVERTEXATTRIB4NIVPROC dolVertexAttrib4Niv;
+PFNDOLVERTEXATTRIB4NSVPROC dolVertexAttrib4Nsv;
+PFNDOLVERTEXATTRIB4NUBPROC dolVertexAttrib4Nub;
+PFNDOLVERTEXATTRIB4NUBVPROC dolVertexAttrib4Nubv;
+PFNDOLVERTEXATTRIB4NUIVPROC dolVertexAttrib4Nuiv;
+PFNDOLVERTEXATTRIB4NUSVPROC dolVertexAttrib4Nusv;
+PFNDOLVERTEXATTRIB4BVPROC dolVertexAttrib4bv;
+PFNDOLVERTEXATTRIB4DPROC dolVertexAttrib4d;
+PFNDOLVERTEXATTRIB4DVPROC dolVertexAttrib4dv;
+PFNDOLVERTEXATTRIB4FPROC dolVertexAttrib4f;
+PFNDOLVERTEXATTRIB4FVPROC dolVertexAttrib4fv;
+PFNDOLVERTEXATTRIB4IVPROC dolVertexAttrib4iv;
+PFNDOLVERTEXATTRIB4SPROC dolVertexAttrib4s;
+PFNDOLVERTEXATTRIB4SVPROC dolVertexAttrib4sv;
+PFNDOLVERTEXATTRIB4UBVPROC dolVertexAttrib4ubv;
+PFNDOLVERTEXATTRIB4UIVPROC dolVertexAttrib4uiv;
+PFNDOLVERTEXATTRIB4USVPROC dolVertexAttrib4usv;
+PFNDOLVERTEXATTRIBPOINTERPROC dolVertexAttribPointer;
+
+// gl_2_1
+PFNDOLUNIFORMMATRIX2X3FVPROC dolUniformMatrix2x3fv;
+PFNDOLUNIFORMMATRIX2X4FVPROC dolUniformMatrix2x4fv;
+PFNDOLUNIFORMMATRIX3X2FVPROC dolUniformMatrix3x2fv;
+PFNDOLUNIFORMMATRIX3X4FVPROC dolUniformMatrix3x4fv;
+PFNDOLUNIFORMMATRIX4X2FVPROC dolUniformMatrix4x2fv;
+PFNDOLUNIFORMMATRIX4X3FVPROC dolUniformMatrix4x3fv;
// gl_3_0
-PFNGLBEGINCONDITIONALRENDERPROC glBeginConditionalRender;
-PFNGLBEGINTRANSFORMFEEDBACKPROC glBeginTransformFeedback;
-PFNGLBINDFRAGDATALOCATIONPROC glBindFragDataLocation;
-PFNGLCLAMPCOLORPROC glClampColor;
-PFNGLCLEARBUFFERFIPROC glClearBufferfi;
-PFNGLCLEARBUFFERFVPROC glClearBufferfv;
-PFNGLCLEARBUFFERIVPROC glClearBufferiv;
-PFNGLCLEARBUFFERUIVPROC glClearBufferuiv;
-PFNGLCOLORMASKIPROC glColorMaski;
-PFNGLDISABLEIPROC glDisablei;
-PFNGLENABLEIPROC glEnablei;
-PFNGLENDCONDITIONALRENDERPROC glEndConditionalRender;
-PFNGLENDTRANSFORMFEEDBACKPROC glEndTransformFeedback;
-PFNGLGETBOOLEANI_VPROC glGetBooleani_v;
-PFNGLGETFRAGDATALOCATIONPROC glGetFragDataLocation;
-PFNGLGETSTRINGIPROC glGetStringi;
-PFNGLGETTEXPARAMETERIIVPROC glGetTexParameterIiv;
-PFNGLGETTEXPARAMETERIUIVPROC glGetTexParameterIuiv;
-PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glGetTransformFeedbackVarying;
-PFNGLGETUNIFORMUIVPROC glGetUniformuiv;
-PFNGLGETVERTEXATTRIBIIVPROC glGetVertexAttribIiv;
-PFNGLGETVERTEXATTRIBIUIVPROC glGetVertexAttribIuiv;
-PFNGLISENABLEDIPROC glIsEnabledi;
-PFNGLTEXPARAMETERIIVPROC glTexParameterIiv;
-PFNGLTEXPARAMETERIUIVPROC glTexParameterIuiv;
-PFNGLTRANSFORMFEEDBACKVARYINGSPROC glTransformFeedbackVaryings;
-PFNGLUNIFORM1UIPROC glUniform1ui;
-PFNGLUNIFORM1UIVPROC glUniform1uiv;
-PFNGLUNIFORM2UIPROC glUniform2ui;
-PFNGLUNIFORM2UIVPROC glUniform2uiv;
-PFNGLUNIFORM3UIPROC glUniform3ui;
-PFNGLUNIFORM3UIVPROC glUniform3uiv;
-PFNGLUNIFORM4UIPROC glUniform4ui;
-PFNGLUNIFORM4UIVPROC glUniform4uiv;
-PFNGLVERTEXATTRIBI1IPROC glVertexAttribI1i;
-PFNGLVERTEXATTRIBI1IVPROC glVertexAttribI1iv;
-PFNGLVERTEXATTRIBI1UIPROC glVertexAttribI1ui;
-PFNGLVERTEXATTRIBI1UIVPROC glVertexAttribI1uiv;
-PFNGLVERTEXATTRIBI2IPROC glVertexAttribI2i;
-PFNGLVERTEXATTRIBI2IVPROC glVertexAttribI2iv;
-PFNGLVERTEXATTRIBI2UIPROC glVertexAttribI2ui;
-PFNGLVERTEXATTRIBI2UIVPROC glVertexAttribI2uiv;
-PFNGLVERTEXATTRIBI3IPROC glVertexAttribI3i;
-PFNGLVERTEXATTRIBI3IVPROC glVertexAttribI3iv;
-PFNGLVERTEXATTRIBI3UIPROC glVertexAttribI3ui;
-PFNGLVERTEXATTRIBI3UIVPROC glVertexAttribI3uiv;
-PFNGLVERTEXATTRIBI4BVPROC glVertexAttribI4bv;
-PFNGLVERTEXATTRIBI4IPROC glVertexAttribI4i;
-PFNGLVERTEXATTRIBI4IVPROC glVertexAttribI4iv;
-PFNGLVERTEXATTRIBI4SVPROC glVertexAttribI4sv;
-PFNGLVERTEXATTRIBI4UBVPROC glVertexAttribI4ubv;
-PFNGLVERTEXATTRIBI4UIPROC glVertexAttribI4ui;
-PFNGLVERTEXATTRIBI4UIVPROC glVertexAttribI4uiv;
-PFNGLVERTEXATTRIBI4USVPROC glVertexAttribI4usv;
-PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer;
+PFNDOLBEGINCONDITIONALRENDERPROC dolBeginConditionalRender;
+PFNDOLBEGINTRANSFORMFEEDBACKPROC dolBeginTransformFeedback;
+PFNDOLBINDFRAGDATALOCATIONPROC dolBindFragDataLocation;
+PFNDOLCLAMPCOLORPROC dolClampColor;
+PFNDOLCLEARBUFFERFIPROC dolClearBufferfi;
+PFNDOLCLEARBUFFERFVPROC dolClearBufferfv;
+PFNDOLCLEARBUFFERIVPROC dolClearBufferiv;
+PFNDOLCLEARBUFFERUIVPROC dolClearBufferuiv;
+PFNDOLCOLORMASKIPROC dolColorMaski;
+PFNDOLDISABLEIPROC dolDisablei;
+PFNDOLENABLEIPROC dolEnablei;
+PFNDOLENDCONDITIONALRENDERPROC dolEndConditionalRender;
+PFNDOLENDTRANSFORMFEEDBACKPROC dolEndTransformFeedback;
+PFNDOLGETBOOLEANI_VPROC dolGetBooleani_v;
+PFNDOLGETFRAGDATALOCATIONPROC dolGetFragDataLocation;
+PFNDOLGETSTRINGIPROC dolGetStringi;
+PFNDOLGETTEXPARAMETERIIVPROC dolGetTexParameterIiv;
+PFNDOLGETTEXPARAMETERIUIVPROC dolGetTexParameterIuiv;
+PFNDOLGETTRANSFORMFEEDBACKVARYINGPROC dolGetTransformFeedbackVarying;
+PFNDOLGETUNIFORMUIVPROC dolGetUniformuiv;
+PFNDOLGETVERTEXATTRIBIIVPROC dolGetVertexAttribIiv;
+PFNDOLGETVERTEXATTRIBIUIVPROC dolGetVertexAttribIuiv;
+PFNDOLISENABLEDIPROC dolIsEnabledi;
+PFNDOLTEXPARAMETERIIVPROC dolTexParameterIiv;
+PFNDOLTEXPARAMETERIUIVPROC dolTexParameterIuiv;
+PFNDOLTRANSFORMFEEDBACKVARYINGSPROC dolTransformFeedbackVaryings;
+PFNDOLUNIFORM1UIPROC dolUniform1ui;
+PFNDOLUNIFORM1UIVPROC dolUniform1uiv;
+PFNDOLUNIFORM2UIPROC dolUniform2ui;
+PFNDOLUNIFORM2UIVPROC dolUniform2uiv;
+PFNDOLUNIFORM3UIPROC dolUniform3ui;
+PFNDOLUNIFORM3UIVPROC dolUniform3uiv;
+PFNDOLUNIFORM4UIPROC dolUniform4ui;
+PFNDOLUNIFORM4UIVPROC dolUniform4uiv;
+PFNDOLVERTEXATTRIBI1IPROC dolVertexAttribI1i;
+PFNDOLVERTEXATTRIBI1IVPROC dolVertexAttribI1iv;
+PFNDOLVERTEXATTRIBI1UIPROC dolVertexAttribI1ui;
+PFNDOLVERTEXATTRIBI1UIVPROC dolVertexAttribI1uiv;
+PFNDOLVERTEXATTRIBI2IPROC dolVertexAttribI2i;
+PFNDOLVERTEXATTRIBI2IVPROC dolVertexAttribI2iv;
+PFNDOLVERTEXATTRIBI2UIPROC dolVertexAttribI2ui;
+PFNDOLVERTEXATTRIBI2UIVPROC dolVertexAttribI2uiv;
+PFNDOLVERTEXATTRIBI3IPROC dolVertexAttribI3i;
+PFNDOLVERTEXATTRIBI3IVPROC dolVertexAttribI3iv;
+PFNDOLVERTEXATTRIBI3UIPROC dolVertexAttribI3ui;
+PFNDOLVERTEXATTRIBI3UIVPROC dolVertexAttribI3uiv;
+PFNDOLVERTEXATTRIBI4BVPROC dolVertexAttribI4bv;
+PFNDOLVERTEXATTRIBI4IPROC dolVertexAttribI4i;
+PFNDOLVERTEXATTRIBI4IVPROC dolVertexAttribI4iv;
+PFNDOLVERTEXATTRIBI4SVPROC dolVertexAttribI4sv;
+PFNDOLVERTEXATTRIBI4UBVPROC dolVertexAttribI4ubv;
+PFNDOLVERTEXATTRIBI4UIPROC dolVertexAttribI4ui;
+PFNDOLVERTEXATTRIBI4UIVPROC dolVertexAttribI4uiv;
+PFNDOLVERTEXATTRIBI4USVPROC dolVertexAttribI4usv;
+PFNDOLVERTEXATTRIBIPOINTERPROC dolVertexAttribIPointer;
// gl_3_1
-PFNGLDRAWARRAYSINSTANCEDPROC glDrawArraysInstanced;
-PFNGLDRAWELEMENTSINSTANCEDPROC glDrawElementsInstanced;
-PFNGLPRIMITIVERESTARTINDEXPROC glPrimitiveRestartIndex;
-PFNGLTEXBUFFERPROC glTexBuffer;
+PFNDOLDRAWARRAYSINSTANCEDPROC dolDrawArraysInstanced;
+PFNDOLDRAWELEMENTSINSTANCEDPROC dolDrawElementsInstanced;
+PFNDOLPRIMITIVERESTARTINDEXPROC dolPrimitiveRestartIndex;
+PFNDOLTEXBUFFERPROC dolTexBuffer;
// gl_3_2
-PFNGLFRAMEBUFFERTEXTUREPROC glFramebufferTexture;
-PFNGLGETBUFFERPARAMETERI64VPROC glGetBufferParameteri64v;
-PFNGLGETINTEGER64I_VPROC glGetInteger64i_v;
+PFNDOLFRAMEBUFFERTEXTUREPROC dolFramebufferTexture;
+PFNDOLGETBUFFERPARAMETERI64VPROC dolGetBufferParameteri64v;
+PFNDOLGETINTEGER64I_VPROC dolGetInteger64i_v;
// ARB_uniform_buffer_object
-PFNGLBINDBUFFERBASEPROC glBindBufferBase;
-PFNGLBINDBUFFERRANGEPROC glBindBufferRange;
-PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glGetActiveUniformBlockName;
-PFNGLGETACTIVEUNIFORMBLOCKIVPROC glGetActiveUniformBlockiv;
-PFNGLGETACTIVEUNIFORMNAMEPROC glGetActiveUniformName;
-PFNGLGETACTIVEUNIFORMSIVPROC glGetActiveUniformsiv;
-PFNGLGETINTEGERI_VPROC glGetIntegeri_v;
-PFNGLGETUNIFORMBLOCKINDEXPROC glGetUniformBlockIndex;
-PFNGLGETUNIFORMINDICESPROC glGetUniformIndices;
-PFNGLUNIFORMBLOCKBINDINGPROC glUniformBlockBinding;
+PFNDOLBINDBUFFERBASEPROC dolBindBufferBase;
+PFNDOLBINDBUFFERRANGEPROC dolBindBufferRange;
+PFNDOLGETACTIVEUNIFORMBLOCKNAMEPROC dolGetActiveUniformBlockName;
+PFNDOLGETACTIVEUNIFORMBLOCKIVPROC dolGetActiveUniformBlockiv;
+PFNDOLGETACTIVEUNIFORMNAMEPROC dolGetActiveUniformName;
+PFNDOLGETACTIVEUNIFORMSIVPROC dolGetActiveUniformsiv;
+PFNDOLGETINTEGERI_VPROC dolGetIntegeri_v;
+PFNDOLGETUNIFORMBLOCKINDEXPROC dolGetUniformBlockIndex;
+PFNDOLGETUNIFORMINDICESPROC dolGetUniformIndices;
+PFNDOLUNIFORMBLOCKBINDINGPROC dolUniformBlockBinding;
// ARB_sampler_objects
-PFNGLBINDSAMPLERPROC glBindSampler;
-PFNGLDELETESAMPLERSPROC glDeleteSamplers;
-PFNGLGENSAMPLERSPROC glGenSamplers;
-PFNGLGETSAMPLERPARAMETERIIVPROC glGetSamplerParameterIiv;
-PFNGLGETSAMPLERPARAMETERIUIVPROC glGetSamplerParameterIuiv;
-PFNGLGETSAMPLERPARAMETERFVPROC glGetSamplerParameterfv;
-PFNGLGETSAMPLERPARAMETERIVPROC glGetSamplerParameteriv;
-PFNGLISSAMPLERPROC glIsSampler;
-PFNGLSAMPLERPARAMETERIIVPROC glSamplerParameterIiv;
-PFNGLSAMPLERPARAMETERIUIVPROC glSamplerParameterIuiv;
-PFNGLSAMPLERPARAMETERFPROC glSamplerParameterf;
-PFNGLSAMPLERPARAMETERFVPROC glSamplerParameterfv;
-PFNGLSAMPLERPARAMETERIPROC glSamplerParameteri;
-PFNGLSAMPLERPARAMETERIVPROC glSamplerParameteriv;
+PFNDOLBINDSAMPLERPROC dolBindSampler;
+PFNDOLDELETESAMPLERSPROC dolDeleteSamplers;
+PFNDOLGENSAMPLERSPROC dolGenSamplers;
+PFNDOLGETSAMPLERPARAMETERIIVPROC dolGetSamplerParameterIiv;
+PFNDOLGETSAMPLERPARAMETERIUIVPROC dolGetSamplerParameterIuiv;
+PFNDOLGETSAMPLERPARAMETERFVPROC dolGetSamplerParameterfv;
+PFNDOLGETSAMPLERPARAMETERIVPROC dolGetSamplerParameteriv;
+PFNDOLISSAMPLERPROC dolIsSampler;
+PFNDOLSAMPLERPARAMETERIIVPROC dolSamplerParameterIiv;
+PFNDOLSAMPLERPARAMETERIUIVPROC dolSamplerParameterIuiv;
+PFNDOLSAMPLERPARAMETERFPROC dolSamplerParameterf;
+PFNDOLSAMPLERPARAMETERFVPROC dolSamplerParameterfv;
+PFNDOLSAMPLERPARAMETERIPROC dolSamplerParameteri;
+PFNDOLSAMPLERPARAMETERIVPROC dolSamplerParameteriv;
// ARB_map_buffer_range
-PFNGLFLUSHMAPPEDBUFFERRANGEPROC glFlushMappedBufferRange;
-PFNGLMAPBUFFERRANGEPROC glMapBufferRange;
+PFNDOLFLUSHMAPPEDBUFFERRANGEPROC dolFlushMappedBufferRange;
+PFNDOLMAPBUFFERRANGEPROC dolMapBufferRange;
// ARB_vertex_array_object
-PFNGLBINDVERTEXARRAYPROC glBindVertexArray;
-PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays;
-PFNGLGENVERTEXARRAYSPROC glGenVertexArrays;
-PFNGLISVERTEXARRAYPROC glIsVertexArray;
+PFNDOLBINDVERTEXARRAYPROC dolBindVertexArray;
+PFNDOLDELETEVERTEXARRAYSPROC dolDeleteVertexArrays;
+PFNDOLGENVERTEXARRAYSPROC dolGenVertexArrays;
+PFNDOLISVERTEXARRAYPROC dolIsVertexArray;
// ARB_framebuffer_object
-PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer;
-PFNGLBINDRENDERBUFFERPROC glBindRenderbuffer;
-PFNGLBLITFRAMEBUFFERPROC glBlitFramebuffer;
-PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
-PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers;
-PFNGLDELETERENDERBUFFERSPROC glDeleteRenderbuffers;
-PFNGLFRAMEBUFFERRENDERBUFFERPROC glFramebufferRenderbuffer;
-PFNGLFRAMEBUFFERTEXTURE1DPROC glFramebufferTexture1D;
-PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D;
-PFNGLFRAMEBUFFERTEXTURE3DPROC glFramebufferTexture3D;
-PFNGLFRAMEBUFFERTEXTURELAYERPROC glFramebufferTextureLayer;
-PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers;
-PFNGLGENRENDERBUFFERSPROC glGenRenderbuffers;
-PFNGLGENERATEMIPMAPPROC glGenerateMipmap;
-PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glGetFramebufferAttachmentParameteriv;
-PFNGLGETRENDERBUFFERPARAMETERIVPROC glGetRenderbufferParameteriv;
-PFNGLISFRAMEBUFFERPROC glIsFramebuffer;
-PFNGLISRENDERBUFFERPROC glIsRenderbuffer;
-PFNGLRENDERBUFFERSTORAGEPROC glRenderbufferStorage;
-PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glRenderbufferStorageMultisample;
+PFNDOLBINDFRAMEBUFFERPROC dolBindFramebuffer;
+PFNDOLBINDRENDERBUFFERPROC dolBindRenderbuffer;
+PFNDOLBLITFRAMEBUFFERPROC dolBlitFramebuffer;
+PFNDOLCHECKFRAMEBUFFERSTATUSPROC dolCheckFramebufferStatus;
+PFNDOLDELETEFRAMEBUFFERSPROC dolDeleteFramebuffers;
+PFNDOLDELETERENDERBUFFERSPROC dolDeleteRenderbuffers;
+PFNDOLFRAMEBUFFERRENDERBUFFERPROC dolFramebufferRenderbuffer;
+PFNDOLFRAMEBUFFERTEXTURE1DPROC dolFramebufferTexture1D;
+PFNDOLFRAMEBUFFERTEXTURE2DPROC dolFramebufferTexture2D;
+PFNDOLFRAMEBUFFERTEXTURE3DPROC dolFramebufferTexture3D;
+PFNDOLFRAMEBUFFERTEXTURELAYERPROC dolFramebufferTextureLayer;
+PFNDOLGENFRAMEBUFFERSPROC dolGenFramebuffers;
+PFNDOLGENRENDERBUFFERSPROC dolGenRenderbuffers;
+PFNDOLGENERATEMIPMAPPROC dolGenerateMipmap;
+PFNDOLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC dolGetFramebufferAttachmentParameteriv;
+PFNDOLGETRENDERBUFFERPARAMETERIVPROC dolGetRenderbufferParameteriv;
+PFNDOLISFRAMEBUFFERPROC dolIsFramebuffer;
+PFNDOLISRENDERBUFFERPROC dolIsRenderbuffer;
+PFNDOLRENDERBUFFERSTORAGEPROC dolRenderbufferStorage;
+PFNDOLRENDERBUFFERSTORAGEMULTISAMPLEPROC dolRenderbufferStorageMultisample;
// ARB_get_program_binary
-PFNGLGETPROGRAMBINARYPROC glGetProgramBinary;
-PFNGLPROGRAMBINARYPROC glProgramBinary;
-PFNGLPROGRAMPARAMETERIPROC glProgramParameteri;
+PFNDOLGETPROGRAMBINARYPROC dolGetProgramBinary;
+PFNDOLPROGRAMBINARYPROC dolProgramBinary;
+PFNDOLPROGRAMPARAMETERIPROC dolProgramParameteri;
// ARB_sync
-PFNGLCLIENTWAITSYNCPROC glClientWaitSync;
-PFNGLDELETESYNCPROC glDeleteSync;
-PFNGLFENCESYNCPROC glFenceSync;
-PFNGLGETINTEGER64VPROC glGetInteger64v;
-PFNGLGETSYNCIVPROC glGetSynciv;
-PFNGLISSYNCPROC glIsSync;
-PFNGLWAITSYNCPROC glWaitSync;
+PFNDOLCLIENTWAITSYNCPROC dolClientWaitSync;
+PFNDOLDELETESYNCPROC dolDeleteSync;
+PFNDOLFENCESYNCPROC dolFenceSync;
+PFNDOLGETINTEGER64VPROC dolGetInteger64v;
+PFNDOLGETSYNCIVPROC dolGetSynciv;
+PFNDOLISSYNCPROC dolIsSync;
+PFNDOLWAITSYNCPROC dolWaitSync;
// ARB_texture_multisample
-PFNGLTEXIMAGE2DMULTISAMPLEPROC glTexImage2DMultisample;
-PFNGLTEXIMAGE3DMULTISAMPLEPROC glTexImage3DMultisample;
-PFNGLGETMULTISAMPLEFVPROC glGetMultisamplefv;
-PFNGLSAMPLEMASKIPROC glSampleMaski;
+PFNDOLTEXIMAGE2DMULTISAMPLEPROC dolTexImage2DMultisample;
+PFNDOLTEXIMAGE3DMULTISAMPLEPROC dolTexImage3DMultisample;
+PFNDOLGETMULTISAMPLEFVPROC dolGetMultisamplefv;
+PFNDOLSAMPLEMASKIPROC dolSampleMaski;
// ARB_texture_storage_multisample
-PFNGLTEXSTORAGE2DMULTISAMPLEPROC glTexStorage2DMultisample;
-PFNGLTEXSTORAGE3DMULTISAMPLEPROC glTexStorage3DMultisample;
+PFNDOLTEXSTORAGE2DMULTISAMPLEPROC dolTexStorage2DMultisample;
+PFNDOLTEXSTORAGE3DMULTISAMPLEPROC dolTexStorage3DMultisample;
// ARB_ES2_compatibility
-PFNGLCLEARDEPTHFPROC glClearDepthf;
-PFNGLDEPTHRANGEFPROC glDepthRangef;
-PFNGLGETSHADERPRECISIONFORMATPROC glGetShaderPrecisionFormat;
-PFNGLRELEASESHADERCOMPILERPROC glReleaseShaderCompiler;
-PFNGLSHADERBINARYPROC glShaderBinary;
+PFNDOLCLEARDEPTHFPROC dolClearDepthf;
+PFNDOLDEPTHRANGEFPROC dolDepthRangef;
+PFNDOLGETSHADERPRECISIONFORMATPROC dolGetShaderPrecisionFormat;
+PFNDOLRELEASESHADERCOMPILERPROC dolReleaseShaderCompiler;
+PFNDOLSHADERBINARYPROC dolShaderBinary;
// NV_primitive_restart
-PFNGLPRIMITIVERESTARTINDEXNVPROC glPrimitiveRestartIndexNV;
-PFNGLPRIMITIVERESTARTNVPROC glPrimitiveRestartNV;
+PFNDOLPRIMITIVERESTARTINDEXNVPROC dolPrimitiveRestartIndexNV;
+PFNDOLPRIMITIVERESTARTNVPROC dolPrimitiveRestartNV;
// ARB_blend_func_extended
-PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glBindFragDataLocationIndexed;
-PFNGLGETFRAGDATAINDEXPROC glGetFragDataIndex;
+PFNDOLBINDFRAGDATALOCATIONINDEXEDPROC dolBindFragDataLocationIndexed;
+PFNDOLGETFRAGDATAINDEXPROC dolGetFragDataIndex;
// ARB_viewport_array
-PFNGLDEPTHRANGEARRAYVPROC glDepthRangeArrayv;
-PFNGLDEPTHRANGEINDEXEDPROC glDepthRangeIndexed;
-PFNGLGETDOUBLEI_VPROC glGetDoublei_v;
-PFNGLGETFLOATI_VPROC glGetFloati_v;
-PFNGLSCISSORARRAYVPROC glScissorArrayv;
-PFNGLSCISSORINDEXEDPROC glScissorIndexed;
-PFNGLSCISSORINDEXEDVPROC glScissorIndexedv;
-PFNGLVIEWPORTARRAYVPROC glViewportArrayv;
-PFNGLVIEWPORTINDEXEDFPROC glViewportIndexedf;
-PFNGLVIEWPORTINDEXEDFVPROC glViewportIndexedfv;
+PFNDOLDEPTHRANGEARRAYVPROC dolDepthRangeArrayv;
+PFNDOLDEPTHRANGEINDEXEDPROC dolDepthRangeIndexed;
+PFNDOLGETDOUBLEI_VPROC dolGetDoublei_v;
+PFNDOLGETFLOATI_VPROC dolGetFloati_v;
+PFNDOLSCISSORARRAYVPROC dolScissorArrayv;
+PFNDOLSCISSORINDEXEDPROC dolScissorIndexed;
+PFNDOLSCISSORINDEXEDVPROC dolScissorIndexedv;
+PFNDOLVIEWPORTARRAYVPROC dolViewportArrayv;
+PFNDOLVIEWPORTINDEXEDFPROC dolViewportIndexedf;
+PFNDOLVIEWPORTINDEXEDFVPROC dolViewportIndexedfv;
// ARB_draw_elements_base_vertex
-PFNGLDRAWELEMENTSBASEVERTEXPROC glDrawElementsBaseVertex;
-PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glDrawElementsInstancedBaseVertex;
-PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glDrawRangeElementsBaseVertex;
-PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glMultiDrawElementsBaseVertex;
+PFNDOLDRAWELEMENTSBASEVERTEXPROC dolDrawElementsBaseVertex;
+PFNDOLDRAWELEMENTSINSTANCEDBASEVERTEXPROC dolDrawElementsInstancedBaseVertex;
+PFNDOLDRAWRANGEELEMENTSBASEVERTEXPROC dolDrawRangeElementsBaseVertex;
+PFNDOLMULTIDRAWELEMENTSBASEVERTEXPROC dolMultiDrawElementsBaseVertex;
// ARB_sample_shading
-PFNGLMINSAMPLESHADINGARBPROC glMinSampleShading;
+PFNDOLMINSAMPLESHADINGARBPROC dolMinSampleShading;
// ARB_debug_output
-PFNGLDEBUGMESSAGECALLBACKARBPROC glDebugMessageCallbackARB;
-PFNGLDEBUGMESSAGECONTROLARBPROC glDebugMessageControlARB;
-PFNGLDEBUGMESSAGEINSERTARBPROC glDebugMessageInsertARB;
-PFNGLGETDEBUGMESSAGELOGARBPROC glGetDebugMessageLogARB;
+PFNDOLDEBUGMESSAGECALLBACKARBPROC dolDebugMessageCallbackARB;
+PFNDOLDEBUGMESSAGECONTROLARBPROC dolDebugMessageControlARB;
+PFNDOLDEBUGMESSAGEINSERTARBPROC dolDebugMessageInsertARB;
+PFNDOLGETDEBUGMESSAGELOGARBPROC dolGetDebugMessageLogARB;
// KHR_debug
-PFNGLDEBUGMESSAGECALLBACKPROC glDebugMessageCallback;
-PFNGLDEBUGMESSAGECONTROLPROC glDebugMessageControl;
-PFNGLDEBUGMESSAGEINSERTPROC glDebugMessageInsert;
-PFNGLGETDEBUGMESSAGELOGPROC glGetDebugMessageLog;
-PFNGLGETOBJECTLABELPROC glGetObjectLabel;
-PFNGLGETOBJECTPTRLABELPROC glGetObjectPtrLabel;
-PFNGLOBJECTLABELPROC glObjectLabel;
-PFNGLOBJECTPTRLABELPROC glObjectPtrLabel;
-PFNGLPOPDEBUGGROUPPROC glPopDebugGroup;
-PFNGLPUSHDEBUGGROUPPROC glPushDebugGroup;
+PFNDOLDEBUGMESSAGECALLBACKPROC dolDebugMessageCallback;
+PFNDOLDEBUGMESSAGECONTROLPROC dolDebugMessageControl;
+PFNDOLDEBUGMESSAGEINSERTPROC dolDebugMessageInsert;
+PFNDOLGETDEBUGMESSAGELOGPROC dolGetDebugMessageLog;
+PFNDOLGETOBJECTLABELPROC dolGetObjectLabel;
+PFNDOLGETOBJECTPTRLABELPROC dolGetObjectPtrLabel;
+PFNDOLOBJECTLABELPROC dolObjectLabel;
+PFNDOLOBJECTPTRLABELPROC dolObjectPtrLabel;
+PFNDOLPOPDEBUGGROUPPROC dolPopDebugGroup;
+PFNDOLPUSHDEBUGGROUPPROC dolPushDebugGroup;
// ARB_buffer_storage
-PFNGLBUFFERSTORAGEPROC glBufferStorage;
-PFNGLNAMEDBUFFERSTORAGEEXTPROC glNamedBufferStorageEXT;
+PFNDOLBUFFERSTORAGEPROC dolBufferStorage;
+PFNDOLNAMEDBUFFERSTORAGEEXTPROC dolNamedBufferStorageEXT;
// GL_NV_occlusion_query_samples
-PFNGLGENOCCLUSIONQUERIESNVPROC glGenOcclusionQueriesNV;
-PFNGLDELETEOCCLUSIONQUERIESNVPROC glDeleteOcclusionQueriesNV;
-PFNGLISOCCLUSIONQUERYNVPROC glIsOcclusionQueryNV;
-PFNGLBEGINOCCLUSIONQUERYNVPROC glBeginOcclusionQueryNV;
-PFNGLENDOCCLUSIONQUERYNVPROC glEndOcclusionQueryNV;
-PFNGLGETOCCLUSIONQUERYIVNVPROC glGetOcclusionQueryivNV;
-PFNGLGETOCCLUSIONQUERYUIVNVPROC glGetOcclusionQueryuivNV;
+PFNDOLGENOCCLUSIONQUERIESNVPROC dolGenOcclusionQueriesNV;
+PFNDOLDELETEOCCLUSIONQUERIESNVPROC dolDeleteOcclusionQueriesNV;
+PFNDOLISOCCLUSIONQUERYNVPROC dolIsOcclusionQueryNV;
+PFNDOLBEGINOCCLUSIONQUERYNVPROC dolBeginOcclusionQueryNV;
+PFNDOLENDOCCLUSIONQUERYNVPROC dolEndOcclusionQueryNV;
+PFNDOLGETOCCLUSIONQUERYIVNVPROC dolGetOcclusionQueryivNV;
+PFNDOLGETOCCLUSIONQUERYUIVNVPROC dolGetOcclusionQueryuivNV;
// ARB_clip_control
-PFNGLCLIPCONTROLPROC glClipControl;
+PFNDOLCLIPCONTROLPROC dolClipControl;
// ARB_copy_image
-PFNGLCOPYIMAGESUBDATAPROC glCopyImageSubData;
+PFNDOLCOPYIMAGESUBDATAPROC dolCopyImageSubData;
+
+// ARB_shader_storage_buffer_object
+PFNDOLSHADERSTORAGEBLOCKBINDINGPROC dolShaderStorageBlockBinding;
// Creates a GLFunc object that requires a feature
#define GLFUNC_REQUIRES(x, y) { (void**)&x, #x, y }
@@ -1378,6 +1389,14 @@ const GLFunc gl_function_array[] =
GL_ES_FUNC_ALWAYS_REQUIRED(glVertexAttribPointer),
GL_ES3_FUNC_ALWAYS_REQUIRED(glDrawBuffers),
+ // gl_2_1
+ GLFUNC_ALWAYS_REQUIRED(glUniformMatrix2x3fv),
+ GLFUNC_ALWAYS_REQUIRED(glUniformMatrix2x4fv),
+ GLFUNC_ALWAYS_REQUIRED(glUniformMatrix3x2fv),
+ GLFUNC_ALWAYS_REQUIRED(glUniformMatrix3x4fv),
+ GLFUNC_ALWAYS_REQUIRED(glUniformMatrix4x2fv),
+ GLFUNC_ALWAYS_REQUIRED(glUniformMatrix4x3fv),
+
// gl_3_0
GLFUNC_REQUIRES(glBeginConditionalRender, "VERSION_3_0"),
GLFUNC_REQUIRES(glBindFragDataLocation, "VERSION_3_0"),
@@ -1660,6 +1679,9 @@ const GLFunc gl_function_array[] =
// EXT_blend_func_extended
GLFUNC_SUFFIX(glBindFragDataLocationIndexed, EXT, "GL_EXT_blend_func_extended"),
GLFUNC_SUFFIX(glGetFragDataIndex, EXT, "GL_EXT_blend_func_extended"),
+
+ // ARB_shader_storage_buffer_object
+ GLFUNC_REQUIRES(glShaderStorageBlockBinding, "ARB_shader_storage_buffer_object"),
};
namespace GLExtensions
diff --git a/Source/Core/Common/GL/GLExtensions/GLExtensions.h b/Source/Core/Common/GL/GLExtensions/GLExtensions.h
index eb80b1f6d1..0669a02b58 100644
--- a/Source/Core/Common/GL/GLExtensions/GLExtensions.h
+++ b/Source/Core/Common/GL/GLExtensions/GLExtensions.h
@@ -6,6 +6,7 @@
#include "Common/CommonTypes.h"
+#include "Common/GL/GLExtensions/AMD_pinned_memory.h"
#include "Common/GL/GLExtensions/ARB_blend_func_extended.h"
#include "Common/GL/GLExtensions/ARB_buffer_storage.h"
#include "Common/GL/GLExtensions/ARB_clip_control.h"
@@ -13,26 +14,32 @@
#include "Common/GL/GLExtensions/ARB_debug_output.h"
#include "Common/GL/GLExtensions/ARB_draw_elements_base_vertex.h"
#include "Common/GL/GLExtensions/ARB_ES2_compatibility.h"
+#include "Common/GL/GLExtensions/ARB_ES3_compatibility.h"
#include "Common/GL/GLExtensions/ARB_framebuffer_object.h"
#include "Common/GL/GLExtensions/ARB_get_program_binary.h"
#include "Common/GL/GLExtensions/ARB_map_buffer_range.h"
+#include "Common/GL/GLExtensions/ARB_occlusion_query2.h"
#include "Common/GL/GLExtensions/ARB_sample_shading.h"
#include "Common/GL/GLExtensions/ARB_sampler_objects.h"
+#include "Common/GL/GLExtensions/ARB_shader_storage_buffer_object.h"
#include "Common/GL/GLExtensions/ARB_sync.h"
#include "Common/GL/GLExtensions/ARB_texture_multisample.h"
#include "Common/GL/GLExtensions/ARB_texture_storage_multisample.h"
#include "Common/GL/GLExtensions/ARB_uniform_buffer_object.h"
#include "Common/GL/GLExtensions/ARB_vertex_array_object.h"
#include "Common/GL/GLExtensions/ARB_viewport_array.h"
+#include "Common/GL/GLExtensions/EXT_texture_filter_anisotropic.h"
#include "Common/GL/GLExtensions/gl_1_1.h"
#include "Common/GL/GLExtensions/gl_1_2.h"
#include "Common/GL/GLExtensions/gl_1_3.h"
#include "Common/GL/GLExtensions/gl_1_4.h"
#include "Common/GL/GLExtensions/gl_1_5.h"
#include "Common/GL/GLExtensions/gl_2_0.h"
+#include "Common/GL/GLExtensions/gl_2_1.h"
#include "Common/GL/GLExtensions/gl_3_0.h"
#include "Common/GL/GLExtensions/gl_3_1.h"
#include "Common/GL/GLExtensions/gl_3_2.h"
+#include "Common/GL/GLExtensions/HP_occlusion_test.h"
#include "Common/GL/GLExtensions/KHR_debug.h"
#include "Common/GL/GLExtensions/NV_occlusion_query_samples.h"
#include "Common/GL/GLExtensions/NV_primitive_restart.h"
diff --git a/Source/Core/Common/GL/GLExtensions/HP_occlusion_test.h b/Source/Core/Common/GL/GLExtensions/HP_occlusion_test.h
new file mode 100644
index 0000000000..4123c04423
--- /dev/null
+++ b/Source/Core/Common/GL/GLExtensions/HP_occlusion_test.h
@@ -0,0 +1,27 @@
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+
+#include "Common/GL/GLExtensions/gl_common.h"
+
+#define GL_OCCLUSION_TEST_HP 0x8165
+#define GL_OCCLUSION_TEST_RESULT_HP 0x8166
diff --git a/Source/Core/Common/GL/GLExtensions/KHR_debug.h b/Source/Core/Common/GL/GLExtensions/KHR_debug.h
index 777930cd3b..e7abcf1ddc 100644
--- a/Source/Core/Common/GL/GLExtensions/KHR_debug.h
+++ b/Source/Core/Common/GL/GLExtensions/KHR_debug.h
@@ -1,11 +1,28 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-#ifndef GL_VERSION_4_3
-
#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002
#define GL_STACK_OVERFLOW 0x0503
#define GL_STACK_UNDERFLOW 0x0504
@@ -47,29 +64,37 @@
#define GL_DEBUG_SEVERITY_LOW 0x9148
#define GL_DEBUG_OUTPUT 0x92E0
-typedef void (APIENTRY *GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam);
+typedef void (APIENTRYP GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
-typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const GLvoid *userParam);
-typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled);
-typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf);
-typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufsize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog);
-typedef void (GLAPIENTRY * PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar *label);
-typedef void (GLAPIENTRY * PFNGLGETOBJECTPTRLABELPROC) (void* ptr, GLsizei bufSize, GLsizei* length, GLchar *label);
-typedef void (GLAPIENTRY * PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar* label);
-typedef void (GLAPIENTRY * PFNGLOBJECTPTRLABELPROC) (void* ptr, GLsizei length, const GLchar* label);
-typedef void (GLAPIENTRY * PFNGLPOPDEBUGGROUPPROC) (void);
-typedef void (GLAPIENTRY * PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar * message);
+typedef void (APIENTRYP PFNDOLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const GLvoid *userParam);
+typedef void (APIENTRYP PFNDOLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled);
+typedef void (APIENTRYP PFNDOLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf);
+typedef GLuint (APIENTRYP PFNDOLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufsize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog);
+typedef void (APIENTRYP PFNDOLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei* length, GLchar *label);
+typedef void (APIENTRYP PFNDOLGETOBJECTPTRLABELPROC) (void* ptr, GLsizei bufSize, GLsizei* length, GLchar *label);
+typedef void (APIENTRYP PFNDOLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar* label);
+typedef void (APIENTRYP PFNDOLOBJECTPTRLABELPROC) (void* ptr, GLsizei length, const GLchar* label);
+typedef void (APIENTRYP PFNDOLPOPDEBUGGROUPPROC) (void);
+typedef void (APIENTRYP PFNDOLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar * message);
-#endif
-
-extern PFNGLDEBUGMESSAGECALLBACKPROC glDebugMessageCallback;
-extern PFNGLDEBUGMESSAGECONTROLPROC glDebugMessageControl;
-extern PFNGLDEBUGMESSAGEINSERTPROC glDebugMessageInsert;
-extern PFNGLGETDEBUGMESSAGELOGPROC glGetDebugMessageLog;
-extern PFNGLGETOBJECTLABELPROC glGetObjectLabel;
-extern PFNGLGETOBJECTPTRLABELPROC glGetObjectPtrLabel;
-extern PFNGLOBJECTLABELPROC glObjectLabel;
-extern PFNGLOBJECTPTRLABELPROC glObjectPtrLabel;
-extern PFNGLPOPDEBUGGROUPPROC glPopDebugGroup;
-extern PFNGLPUSHDEBUGGROUPPROC glPushDebugGroup;
+extern PFNDOLDEBUGMESSAGECALLBACKPROC dolDebugMessageCallback;
+extern PFNDOLDEBUGMESSAGECONTROLPROC dolDebugMessageControl;
+extern PFNDOLDEBUGMESSAGEINSERTPROC dolDebugMessageInsert;
+extern PFNDOLGETDEBUGMESSAGELOGPROC dolGetDebugMessageLog;
+extern PFNDOLGETOBJECTLABELPROC dolGetObjectLabel;
+extern PFNDOLGETOBJECTPTRLABELPROC dolGetObjectPtrLabel;
+extern PFNDOLOBJECTLABELPROC dolObjectLabel;
+extern PFNDOLOBJECTPTRLABELPROC dolObjectPtrLabel;
+extern PFNDOLPOPDEBUGGROUPPROC dolPopDebugGroup;
+extern PFNDOLPUSHDEBUGGROUPPROC dolPushDebugGroup;
+#define glDebugMessageCallback dolDebugMessageCallback
+#define glDebugMessageControl dolDebugMessageControl
+#define glDebugMessageInsert dolDebugMessageInsert
+#define glGetDebugMessageLog dolGetDebugMessageLog
+#define glGetObjectLabel dolGetObjectLabel
+#define glGetObjectPtrLabel dolGetObjectPtrLabel
+#define glObjectLabel dolObjectLabel
+#define glObjectPtrLabel dolObjectPtrLabel
+#define glPopDebugGroup dolPopDebugGroup
+#define glPushDebugGroup dolPushDebugGroup
diff --git a/Source/Core/Common/GL/GLExtensions/NV_occlusion_query_samples.h b/Source/Core/Common/GL/GLExtensions/NV_occlusion_query_samples.h
index 0a050b83b0..3f271702cc 100644
--- a/Source/Core/Common/GL/GLExtensions/NV_occlusion_query_samples.h
+++ b/Source/Core/Common/GL/GLExtensions/NV_occlusion_query_samples.h
@@ -1,13 +1,53 @@
-// Copyright 2015 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLGENOCCLUSIONQUERIESNVPROC glGenOcclusionQueriesNV;
-extern PFNGLDELETEOCCLUSIONQUERIESNVPROC glDeleteOcclusionQueriesNV;
-extern PFNGLISOCCLUSIONQUERYNVPROC glIsOcclusionQueryNV;
-extern PFNGLBEGINOCCLUSIONQUERYNVPROC glBeginOcclusionQueryNV;
-extern PFNGLENDOCCLUSIONQUERYNVPROC glEndOcclusionQueryNV;
-extern PFNGLGETOCCLUSIONQUERYIVNVPROC glGetOcclusionQueryivNV;
-extern PFNGLGETOCCLUSIONQUERYUIVNVPROC glGetOcclusionQueryuivNV;
+#define GL_PIXEL_COUNTER_BITS_NV 0x8864
+#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865
+#define GL_PIXEL_COUNT_NV 0x8866
+#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867
+
+typedef void (APIENTRYP PFNDOLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids);
+typedef void (APIENTRYP PFNDOLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids);
+typedef GLboolean (APIENTRYP PFNDOLISOCCLUSIONQUERYNVPROC) (GLuint id);
+typedef void (APIENTRYP PFNDOLBEGINOCCLUSIONQUERYNVPROC) (GLuint id);
+typedef void (APIENTRYP PFNDOLENDOCCLUSIONQUERYNVPROC) (void);
+typedef void (APIENTRYP PFNDOLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNDOLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params);
+
+extern PFNDOLGENOCCLUSIONQUERIESNVPROC dolGenOcclusionQueriesNV;
+extern PFNDOLDELETEOCCLUSIONQUERIESNVPROC dolDeleteOcclusionQueriesNV;
+extern PFNDOLISOCCLUSIONQUERYNVPROC dolIsOcclusionQueryNV;
+extern PFNDOLBEGINOCCLUSIONQUERYNVPROC dolBeginOcclusionQueryNV;
+extern PFNDOLENDOCCLUSIONQUERYNVPROC dolEndOcclusionQueryNV;
+extern PFNDOLGETOCCLUSIONQUERYIVNVPROC dolGetOcclusionQueryivNV;
+extern PFNDOLGETOCCLUSIONQUERYUIVNVPROC dolGetOcclusionQueryuivNV;
+
+#define glGenOcclusionQueriesNV dolGenOcclusionQueriesNV
+#define glDeleteOcclusionQueriesNV dolDeleteOcclusionQueriesNV
+#define glIsOcclusionQueryNV dolIsOcclusionQueryNV
+#define glBeginOcclusionQueryNV dolBeginOcclusionQueryNV
+#define glEndOcclusionQueryNV dolEndOcclusionQueryNV
+#define glGetOcclusionQueryivNV dolGetOcclusionQueryivNV
+#define glGetOcclusionQueryuivNV dolGetOcclusionQueryuivNV
diff --git a/Source/Core/Common/GL/GLExtensions/NV_primitive_restart.h b/Source/Core/Common/GL/GLExtensions/NV_primitive_restart.h
index c23322f84f..917f12026d 100644
--- a/Source/Core/Common/GL/GLExtensions/NV_primitive_restart.h
+++ b/Source/Core/Common/GL/GLExtensions/NV_primitive_restart.h
@@ -1,15 +1,36 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
#define GL_PRIMITIVE_RESTART_NV 0x8558
#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559
-typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index);
-typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTNVPROC) (void);
+typedef void (APIENTRYP PFNDOLPRIMITIVERESTARTINDEXNVPROC) (GLuint index);
+typedef void (APIENTRYP PFNDOLPRIMITIVERESTARTNVPROC) (void);
-extern PFNGLPRIMITIVERESTARTINDEXNVPROC glPrimitiveRestartIndexNV;
-extern PFNGLPRIMITIVERESTARTNVPROC glPrimitiveRestartNV;
+extern PFNDOLPRIMITIVERESTARTINDEXNVPROC dolPrimitiveRestartIndexNV;
+extern PFNDOLPRIMITIVERESTARTNVPROC dolPrimitiveRestartNV;
+#define glPrimitiveRestartIndexNV dolPrimitiveRestartIndexNV
+#define glPrimitiveRestartNV dolPrimitiveRestartNV
diff --git a/Source/Core/Common/GL/GLExtensions/gl_1_1.h b/Source/Core/Common/GL/GLExtensions/gl_1_1.h
index 14f7b25702..52c622e7fd 100644
--- a/Source/Core/Common/GL/GLExtensions/gl_1_1.h
+++ b/Source/Core/Common/GL/GLExtensions/gl_1_1.h
@@ -1,680 +1,1638 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-typedef void (GLAPIENTRY * PFNGLCLEARINDEXPROC) ( GLfloat c );
-typedef void (GLAPIENTRY * PFNGLCLEARCOLORPROC) ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha );
-typedef void (GLAPIENTRY * PFNGLCLEARPROC) ( GLbitfield mask );
-typedef void (GLAPIENTRY * PFNGLINDEXMASKPROC) ( GLuint mask );
-typedef void (GLAPIENTRY * PFNGLCOLORMASKPROC) ( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha );
-typedef void (GLAPIENTRY * PFNGLALPHAFUNCPROC) ( GLenum func, GLclampf ref );
-typedef void (GLAPIENTRY * PFNGLBLENDFUNCPROC) ( GLenum sfactor, GLenum dfactor );
-typedef void (GLAPIENTRY * PFNGLLOGICOPPROC) ( GLenum opcode );
-typedef void (GLAPIENTRY * PFNGLCULLFACEPROC) ( GLenum mode );
-typedef void (GLAPIENTRY * PFNGLFRONTFACEPROC) ( GLenum mode );
-typedef void (GLAPIENTRY * PFNGLPOINTSIZEPROC) ( GLfloat size );
-typedef void (GLAPIENTRY * PFNGLLINEWIDTHPROC) ( GLfloat width );
-typedef void (GLAPIENTRY * PFNGLLINESTIPPLEPROC) ( GLint factor, GLushort pattern );
-typedef void (GLAPIENTRY * PFNGLPOLYGONMODEPROC) ( GLenum face, GLenum mode );
-typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETPROC) ( GLfloat factor, GLfloat units );
-typedef void (GLAPIENTRY * PFNGLPOLYGONSTIPPLEPROC) ( const GLubyte *mask );
-typedef void (GLAPIENTRY * PFNGLGETPOLYGONSTIPPLEPROC) ( GLubyte *mask );
-typedef void (GLAPIENTRY * PFNGLEDGEFLAGPROC) ( GLboolean flag );
-typedef void (GLAPIENTRY * PFNGLEDGEFLAGVPROC) ( const GLboolean *flag );
-typedef void (GLAPIENTRY * PFNGLSCISSORPROC) ( GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (GLAPIENTRY * PFNGLCLIPPLANEPROC) ( GLenum plane, const GLdouble *equation );
-typedef void (GLAPIENTRY * PFNGLGETCLIPPLANEPROC) ( GLenum plane, GLdouble *equation );
-typedef void (GLAPIENTRY * PFNGLDRAWBUFFERPROC) ( GLenum mode );
-typedef void (GLAPIENTRY * PFNGLREADBUFFERPROC) ( GLenum mode );
-typedef void (GLAPIENTRY * PFNGLENABLEPROC) ( GLenum cap );
-typedef void (GLAPIENTRY * PFNGLDISABLEPROC) ( GLenum cap );
-typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDPROC) ( GLenum cap );
-typedef void (GLAPIENTRY * PFNGLENABLECLIENTSTATEPROC) ( GLenum cap ); /* 1.1 */
-typedef void (GLAPIENTRY * PFNGLDISABLECLIENTSTATEPROC) ( GLenum cap ); /* 1.1 */
-typedef void (GLAPIENTRY * PFNGLGETBOOLEANVPROC) ( GLenum pname, GLboolean *params );
-typedef void (GLAPIENTRY * PFNGLGETDOUBLEVPROC) ( GLenum pname, GLdouble *params );
-typedef void (GLAPIENTRY * PFNGLGETFLOATVPROC) ( GLenum pname, GLfloat *params );
-typedef void (GLAPIENTRY * PFNGLGETINTEGERVPROC) ( GLenum pname, GLint *params );
-typedef void (GLAPIENTRY * PFNGLPUSHATTRIBPROC) ( GLbitfield mask );
-typedef void (GLAPIENTRY * PFNGLPOPATTRIBPROC) ( void );
-typedef void (GLAPIENTRY * PFNGLPUSHCLIENTATTRIBPROC) ( GLbitfield mask ); /* 1.1 */
-typedef void (GLAPIENTRY * PFNGLPOPCLIENTATTRIBPROC) ( void ); /* 1.1 */
-typedef GLint (GLAPIENTRY * PFNGLRENDERMODEPROC) ( GLenum mode );
-typedef GLenum (GLAPIENTRY * PFNGLGETERRORPROC) ( void );
-typedef const GLubyte* (GLAPIENTRY * PFNGLGETSTRINGPROC) ( GLenum name );
-typedef void (GLAPIENTRY * PFNGLFINISHPROC) ( void );
-typedef void (GLAPIENTRY * PFNGLFLUSHPROC) ( void );
-typedef void (GLAPIENTRY * PFNGLHINTPROC) ( GLenum target, GLenum mode );
-typedef void (GLAPIENTRY * PFNGLCLEARDEPTHPROC) ( GLclampd depth );
-typedef void (GLAPIENTRY * PFNGLDEPTHFUNCPROC) ( GLenum func );
-typedef void (GLAPIENTRY * PFNGLDEPTHMASKPROC) ( GLboolean flag );
-typedef void (GLAPIENTRY * PFNGLDEPTHRANGEPROC) ( GLclampd near_val, GLclampd far_val );
-typedef void (GLAPIENTRY * PFNGLCLEARACCUMPROC) ( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha );
-typedef void (GLAPIENTRY * PFNGLACCUMPROC) ( GLenum op, GLfloat value );
-typedef void (GLAPIENTRY * PFNGLMATRIXMODEPROC) ( GLenum mode );
-typedef void (GLAPIENTRY * PFNGLORTHOPROC) ( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val );
-typedef void (GLAPIENTRY * PFNGLFRUSTUMPROC) ( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val );
-typedef void (GLAPIENTRY * PFNGLVIEWPORTPROC) ( GLint x, GLint y, GLsizei width, GLsizei height );
-typedef void (GLAPIENTRY * PFNGLPUSHMATRIXPROC) ( void );
-typedef void (GLAPIENTRY * PFNGLPOPMATRIXPROC) ( void );
-typedef void (GLAPIENTRY * PFNGLLOADIDENTITYPROC) ( void );
-typedef void (GLAPIENTRY * PFNGLLOADMATRIXDPROC) ( const GLdouble *m );
-typedef void (GLAPIENTRY * PFNGLLOADMATRIXFPROC) ( const GLfloat *m );
-typedef void (GLAPIENTRY * PFNGLMULTMATRIXDPROC) ( const GLdouble *m );
-typedef void (GLAPIENTRY * PFNGLMULTMATRIXFPROC) ( const GLfloat *m );
-typedef void (GLAPIENTRY * PFNGLROTATEDPROC) ( GLdouble angle, GLdouble x, GLdouble y, GLdouble z );
-typedef void (GLAPIENTRY * PFNGLROTATEFPROC) ( GLfloat angle, GLfloat x, GLfloat y, GLfloat z );
-typedef void (GLAPIENTRY * PFNGLSCALEDPROC) ( GLdouble x, GLdouble y, GLdouble z );
-typedef void (GLAPIENTRY * PFNGLSCALEFPROC) ( GLfloat x, GLfloat y, GLfloat z );
-typedef void (GLAPIENTRY * PFNGLTRANSLATEDPROC) ( GLdouble x, GLdouble y, GLdouble z );
-typedef void (GLAPIENTRY * PFNGLTRANSLATEFPROC) ( GLfloat x, GLfloat y, GLfloat z );
-typedef GLboolean (GLAPIENTRY * PFNGLISLISTPROC) ( GLuint list );
-typedef void (GLAPIENTRY * PFNGLDELETELISTSPROC) ( GLuint list, GLsizei range );
-typedef GLuint (GLAPIENTRY * PFNGLGENLISTSPROC) ( GLsizei range );
-typedef void (GLAPIENTRY * PFNGLNEWLISTPROC) ( GLuint list, GLenum mode );
-typedef void (GLAPIENTRY * PFNGLENDLISTPROC) ( void );
-typedef void (GLAPIENTRY * PFNGLCALLLISTPROC) ( GLuint list );
-typedef void (GLAPIENTRY * PFNGLCALLLISTSPROC) ( GLsizei n, GLenum type, const GLvoid *lists );
-typedef void (GLAPIENTRY * PFNGLLISTBASEPROC) ( GLuint base );
-typedef void (GLAPIENTRY * PFNGLBEGINPROC) ( GLenum mode );
-typedef void (GLAPIENTRY * PFNGLENDPROC) ( void );
-typedef void (GLAPIENTRY * PFNGLVERTEX2DPROC) ( GLdouble x, GLdouble y );
-typedef void (GLAPIENTRY * PFNGLVERTEX2FPROC) ( GLfloat x, GLfloat y );
-typedef void (GLAPIENTRY * PFNGLVERTEX2IPROC) ( GLint x, GLint y );
-typedef void (GLAPIENTRY * PFNGLVERTEX2SPROC) ( GLshort x, GLshort y );
-typedef void (GLAPIENTRY * PFNGLVERTEX3DPROC) ( GLdouble x, GLdouble y, GLdouble z );
-typedef void (GLAPIENTRY * PFNGLVERTEX3FPROC) ( GLfloat x, GLfloat y, GLfloat z );
-typedef void (GLAPIENTRY * PFNGLVERTEX3IPROC) ( GLint x, GLint y, GLint z );
-typedef void (GLAPIENTRY * PFNGLVERTEX3SPROC) ( GLshort x, GLshort y, GLshort z );
-typedef void (GLAPIENTRY * PFNGLVERTEX4DPROC) ( GLdouble x, GLdouble y, GLdouble z, GLdouble w );
-typedef void (GLAPIENTRY * PFNGLVERTEX4FPROC) ( GLfloat x, GLfloat y, GLfloat z, GLfloat w );
-typedef void (GLAPIENTRY * PFNGLVERTEX4IPROC) ( GLint x, GLint y, GLint z, GLint w );
-typedef void (GLAPIENTRY * PFNGLVERTEX4SPROC) ( GLshort x, GLshort y, GLshort z, GLshort w );
-typedef void (GLAPIENTRY * PFNGLVERTEX2DVPROC) ( const GLdouble *v );
-typedef void (GLAPIENTRY * PFNGLVERTEX2FVPROC) ( const GLfloat *v );
-typedef void (GLAPIENTRY * PFNGLVERTEX2IVPROC) ( const GLint *v );
-typedef void (GLAPIENTRY * PFNGLVERTEX2SVPROC) ( const GLshort *v );
-typedef void (GLAPIENTRY * PFNGLVERTEX3DVPROC) ( const GLdouble *v );
-typedef void (GLAPIENTRY * PFNGLVERTEX3FVPROC) ( const GLfloat *v );
-typedef void (GLAPIENTRY * PFNGLVERTEX3IVPROC) ( const GLint *v );
-typedef void (GLAPIENTRY * PFNGLVERTEX3SVPROC) ( const GLshort *v );
-typedef void (GLAPIENTRY * PFNGLVERTEX4DVPROC) ( const GLdouble *v );
-typedef void (GLAPIENTRY * PFNGLVERTEX4FVPROC) ( const GLfloat *v );
-typedef void (GLAPIENTRY * PFNGLVERTEX4IVPROC) ( const GLint *v );
-typedef void (GLAPIENTRY * PFNGLVERTEX4SVPROC) ( const GLshort *v );
-typedef void (GLAPIENTRY * PFNGLNORMAL3BPROC) ( GLbyte nx, GLbyte ny, GLbyte nz );
-typedef void (GLAPIENTRY * PFNGLNORMAL3DPROC) ( GLdouble nx, GLdouble ny, GLdouble nz );
-typedef void (GLAPIENTRY * PFNGLNORMAL3FPROC) ( GLfloat nx, GLfloat ny, GLfloat nz );
-typedef void (GLAPIENTRY * PFNGLNORMAL3IPROC) ( GLint nx, GLint ny, GLint nz );
-typedef void (GLAPIENTRY * PFNGLNORMAL3SPROC) ( GLshort nx, GLshort ny, GLshort nz );
-typedef void (GLAPIENTRY * PFNGLNORMAL3BVPROC) ( const GLbyte *v );
-typedef void (GLAPIENTRY * PFNGLNORMAL3DVPROC) ( const GLdouble *v );
-typedef void (GLAPIENTRY * PFNGLNORMAL3FVPROC) ( const GLfloat *v );
-typedef void (GLAPIENTRY * PFNGLNORMAL3IVPROC) ( const GLint *v );
-typedef void (GLAPIENTRY * PFNGLNORMAL3SVPROC) ( const GLshort *v );
-typedef void (GLAPIENTRY * PFNGLINDEXDPROC) ( GLdouble c );
-typedef void (GLAPIENTRY * PFNGLINDEXFPROC) ( GLfloat c );
-typedef void (GLAPIENTRY * PFNGLINDEXIPROC) ( GLint c );
-typedef void (GLAPIENTRY * PFNGLINDEXSPROC) ( GLshort c );
-typedef void (GLAPIENTRY * PFNGLINDEXUBPROC) ( GLubyte c ); /* 1.1 */
-typedef void (GLAPIENTRY * PFNGLINDEXDVPROC) ( const GLdouble *c );
-typedef void (GLAPIENTRY * PFNGLINDEXFVPROC) ( const GLfloat *c );
-typedef void (GLAPIENTRY * PFNGLINDEXIVPROC) ( const GLint *c );
-typedef void (GLAPIENTRY * PFNGLINDEXSVPROC) ( const GLshort *c );
-typedef void (GLAPIENTRY * PFNGLINDEXUBVPROC) ( const GLubyte *c ); /* 1.1 */
-typedef void (GLAPIENTRY * PFNGLCOLOR3BPROC) ( GLbyte red, GLbyte green, GLbyte blue );
-typedef void (GLAPIENTRY * PFNGLCOLOR3DPROC) ( GLdouble red, GLdouble green, GLdouble blue );
-typedef void (GLAPIENTRY * PFNGLCOLOR3FPROC) ( GLfloat red, GLfloat green, GLfloat blue );
-typedef void (GLAPIENTRY * PFNGLCOLOR3IPROC) ( GLint red, GLint green, GLint blue );
-typedef void (GLAPIENTRY * PFNGLCOLOR3SPROC) ( GLshort red, GLshort green, GLshort blue );
-typedef void (GLAPIENTRY * PFNGLCOLOR3UBPROC) ( GLubyte red, GLubyte green, GLubyte blue );
-typedef void (GLAPIENTRY * PFNGLCOLOR3UIPROC) ( GLuint red, GLuint green, GLuint blue );
-typedef void (GLAPIENTRY * PFNGLCOLOR3USPROC) ( GLushort red, GLushort green, GLushort blue );
-typedef void (GLAPIENTRY * PFNGLCOLOR4BPROC) ( GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha );
-typedef void (GLAPIENTRY * PFNGLCOLOR4DPROC) ( GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha );
-typedef void (GLAPIENTRY * PFNGLCOLOR4FPROC) ( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha );
-typedef void (GLAPIENTRY * PFNGLCOLOR4IPROC) ( GLint red, GLint green, GLint blue, GLint alpha );
-typedef void (GLAPIENTRY * PFNGLCOLOR4SPROC) ( GLshort red, GLshort green, GLshort blue, GLshort alpha );
-typedef void (GLAPIENTRY * PFNGLCOLOR4UBPROC) ( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha );
-typedef void (GLAPIENTRY * PFNGLCOLOR4UIPROC) ( GLuint red, GLuint green, GLuint blue, GLuint alpha );
-typedef void (GLAPIENTRY * PFNGLCOLOR4USPROC) ( GLushort red, GLushort green, GLushort blue, GLushort alpha );
-typedef void (GLAPIENTRY * PFNGLCOLOR3BVPROC) ( const GLbyte *v );
-typedef void (GLAPIENTRY * PFNGLCOLOR3DVPROC) ( const GLdouble *v );
-typedef void (GLAPIENTRY * PFNGLCOLOR3FVPROC) ( const GLfloat *v );
-typedef void (GLAPIENTRY * PFNGLCOLOR3IVPROC) ( const GLint *v );
-typedef void (GLAPIENTRY * PFNGLCOLOR3SVPROC) ( const GLshort *v );
-typedef void (GLAPIENTRY * PFNGLCOLOR3UBVPROC) ( const GLubyte *v );
-typedef void (GLAPIENTRY * PFNGLCOLOR3UIVPROC) ( const GLuint *v );
-typedef void (GLAPIENTRY * PFNGLCOLOR3USVPROC) ( const GLushort *v );
-typedef void (GLAPIENTRY * PFNGLCOLOR4BVPROC) ( const GLbyte *v );
-typedef void (GLAPIENTRY * PFNGLCOLOR4DVPROC) ( const GLdouble *v );
-typedef void (GLAPIENTRY * PFNGLCOLOR4FVPROC) ( const GLfloat *v );
-typedef void (GLAPIENTRY * PFNGLCOLOR4IVPROC) ( const GLint *v );
-typedef void (GLAPIENTRY * PFNGLCOLOR4SVPROC) ( const GLshort *v );
-typedef void (GLAPIENTRY * PFNGLCOLOR4UBVPROC) ( const GLubyte *v );
-typedef void (GLAPIENTRY * PFNGLCOLOR4UIVPROC) ( const GLuint *v );
-typedef void (GLAPIENTRY * PFNGLCOLOR4USVPROC) ( const GLushort *v );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD1DPROC) ( GLdouble s );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD1FPROC) ( GLfloat s );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD1IPROC) ( GLint s );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD1SPROC) ( GLshort s );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2DPROC) ( GLdouble s, GLdouble t );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2FPROC) ( GLfloat s, GLfloat t );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2IPROC) ( GLint s, GLint t );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2SPROC) ( GLshort s, GLshort t );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD3DPROC) ( GLdouble s, GLdouble t, GLdouble r );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD3FPROC) ( GLfloat s, GLfloat t, GLfloat r );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD3IPROC) ( GLint s, GLint t, GLint r );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD3SPROC) ( GLshort s, GLshort t, GLshort r );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD4DPROC) ( GLdouble s, GLdouble t, GLdouble r, GLdouble q );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD4FPROC) ( GLfloat s, GLfloat t, GLfloat r, GLfloat q );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD4IPROC) ( GLint s, GLint t, GLint r, GLint q );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD4SPROC) ( GLshort s, GLshort t, GLshort r, GLshort q );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD1DVPROC) ( const GLdouble *v );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD1FVPROC) ( const GLfloat *v );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD1IVPROC) ( const GLint *v );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD1SVPROC) ( const GLshort *v );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2DVPROC) ( const GLdouble *v );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2FVPROC) ( const GLfloat *v );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2IVPROC) ( const GLint *v );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD2SVPROC) ( const GLshort *v );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD3DVPROC) ( const GLdouble *v );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD3FVPROC) ( const GLfloat *v );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD3IVPROC) ( const GLint *v );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD3SVPROC) ( const GLshort *v );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD4DVPROC) ( const GLdouble *v );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVPROC) ( const GLfloat *v );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD4IVPROC) ( const GLint *v );
-typedef void (GLAPIENTRY * PFNGLTEXCOORD4SVPROC) ( const GLshort *v );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS2DPROC) ( GLdouble x, GLdouble y );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS2FPROC) ( GLfloat x, GLfloat y );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS2IPROC) ( GLint x, GLint y );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS2SPROC) ( GLshort x, GLshort y );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS3DPROC) ( GLdouble x, GLdouble y, GLdouble z );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS3FPROC) ( GLfloat x, GLfloat y, GLfloat z );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS3IPROC) ( GLint x, GLint y, GLint z );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS3SPROC) ( GLshort x, GLshort y, GLshort z );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS4DPROC) ( GLdouble x, GLdouble y, GLdouble z, GLdouble w );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS4FPROC) ( GLfloat x, GLfloat y, GLfloat z, GLfloat w );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS4IPROC) ( GLint x, GLint y, GLint z, GLint w );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS4SPROC) ( GLshort x, GLshort y, GLshort z, GLshort w );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS2DVPROC) ( const GLdouble *v );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS2FVPROC) ( const GLfloat *v );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS2IVPROC) ( const GLint *v );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS2SVPROC) ( const GLshort *v );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS3DVPROC) ( const GLdouble *v );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS3FVPROC) ( const GLfloat *v );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS3IVPROC) ( const GLint *v );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS3SVPROC) ( const GLshort *v );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS4DVPROC) ( const GLdouble *v );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS4FVPROC) ( const GLfloat *v );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS4IVPROC) ( const GLint *v );
-typedef void (GLAPIENTRY * PFNGLRASTERPOS4SVPROC) ( const GLshort *v );
-typedef void (GLAPIENTRY * PFNGLRECTDPROC) ( GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2 );
-typedef void (GLAPIENTRY * PFNGLRECTFPROC) ( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 );
-typedef void (GLAPIENTRY * PFNGLRECTIPROC) ( GLint x1, GLint y1, GLint x2, GLint y2 );
-typedef void (GLAPIENTRY * PFNGLRECTSPROC) ( GLshort x1, GLshort y1, GLshort x2, GLshort y2 );
-typedef void (GLAPIENTRY * PFNGLRECTDVPROC) ( const GLdouble *v1, const GLdouble *v2 );
-typedef void (GLAPIENTRY * PFNGLRECTFVPROC) ( const GLfloat *v1, const GLfloat *v2 );
-typedef void (GLAPIENTRY * PFNGLRECTIVPROC) ( const GLint *v1, const GLint *v2 );
-typedef void (GLAPIENTRY * PFNGLRECTSVPROC) ( const GLshort *v1, const GLshort *v2 );
-typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERPROC) ( GLint size, GLenum type, GLsizei stride, const GLvoid *ptr );
-typedef void (GLAPIENTRY * PFNGLNORMALPOINTERPROC) ( GLenum type, GLsizei stride, const GLvoid *ptr );
-typedef void (GLAPIENTRY * PFNGLCOLORPOINTERPROC) ( GLint size, GLenum type, GLsizei stride, const GLvoid *ptr );
-typedef void (GLAPIENTRY * PFNGLINDEXPOINTERPROC) ( GLenum type, GLsizei stride, const GLvoid *ptr );
-typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTERPROC) ( GLint size, GLenum type, GLsizei stride, const GLvoid *ptr );
-typedef void (GLAPIENTRY * PFNGLEDGEFLAGPOINTERPROC) ( GLsizei stride, const GLvoid *ptr );
-typedef void (GLAPIENTRY * PFNGLGETPOINTERVPROC) ( GLenum pname, GLvoid **params );
-typedef void (GLAPIENTRY * PFNGLARRAYELEMENTPROC) ( GLint i );
-typedef void (GLAPIENTRY * PFNGLDRAWARRAYSPROC) ( GLenum mode, GLint first, GLsizei count );
-typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSPROC) ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices );
-typedef void (GLAPIENTRY * PFNGLINTERLEAVEDARRAYSPROC) ( GLenum format, GLsizei stride, const GLvoid *pointer );
-typedef void (GLAPIENTRY * PFNGLSHADEMODELPROC) ( GLenum mode );
-typedef void (GLAPIENTRY * PFNGLLIGHTFPROC) ( GLenum light, GLenum pname, GLfloat param );
-typedef void (GLAPIENTRY * PFNGLLIGHTIPROC) ( GLenum light, GLenum pname, GLint param );
-typedef void (GLAPIENTRY * PFNGLLIGHTFVPROC) ( GLenum light, GLenum pname, const GLfloat *params );
-typedef void (GLAPIENTRY * PFNGLLIGHTIVPROC) ( GLenum light, GLenum pname, const GLint *params );
-typedef void (GLAPIENTRY * PFNGLGETLIGHTFVPROC) ( GLenum light, GLenum pname, GLfloat *params );
-typedef void (GLAPIENTRY * PFNGLGETLIGHTIVPROC) ( GLenum light, GLenum pname, GLint *params );
-typedef void (GLAPIENTRY * PFNGLLIGHTMODELFPROC) ( GLenum pname, GLfloat param );
-typedef void (GLAPIENTRY * PFNGLLIGHTMODELIPROC) ( GLenum pname, GLint param );
-typedef void (GLAPIENTRY * PFNGLLIGHTMODELFVPROC) ( GLenum pname, const GLfloat *params );
-typedef void (GLAPIENTRY * PFNGLLIGHTMODELIVPROC) ( GLenum pname, const GLint *params );
-typedef void (GLAPIENTRY * PFNGLMATERIALFPROC) ( GLenum face, GLenum pname, GLfloat param );
-typedef void (GLAPIENTRY * PFNGLMATERIALIPROC) ( GLenum face, GLenum pname, GLint param );
-typedef void (GLAPIENTRY * PFNGLMATERIALFVPROC) ( GLenum face, GLenum pname, const GLfloat *params );
-typedef void (GLAPIENTRY * PFNGLMATERIALIVPROC) ( GLenum face, GLenum pname, const GLint *params );
-typedef void (GLAPIENTRY * PFNGLGETMATERIALFVPROC) ( GLenum face, GLenum pname, GLfloat *params );
-typedef void (GLAPIENTRY * PFNGLGETMATERIALIVPROC) ( GLenum face, GLenum pname, GLint *params );
-typedef void (GLAPIENTRY * PFNGLCOLORMATERIALPROC) ( GLenum face, GLenum mode );
-typedef void (GLAPIENTRY * PFNGLPIXELZOOMPROC) ( GLfloat xfactor, GLfloat yfactor );
-typedef void (GLAPIENTRY * PFNGLPIXELSTOREFPROC) ( GLenum pname, GLfloat param );
-typedef void (GLAPIENTRY * PFNGLPIXELSTOREIPROC) ( GLenum pname, GLint param );
-typedef void (GLAPIENTRY * PFNGLPIXELTRANSFERFPROC) ( GLenum pname, GLfloat param );
-typedef void (GLAPIENTRY * PFNGLPIXELTRANSFERIPROC) ( GLenum pname, GLint param );
-typedef void (GLAPIENTRY * PFNGLPIXELMAPFVPROC) ( GLenum map, GLsizei mapsize, const GLfloat *values );
-typedef void (GLAPIENTRY * PFNGLPIXELMAPUIVPROC) ( GLenum map, GLsizei mapsize, const GLuint *values );
-typedef void (GLAPIENTRY * PFNGLPIXELMAPUSVPROC) ( GLenum map, GLsizei mapsize, const GLushort *values );
-typedef void (GLAPIENTRY * PFNGLGETPIXELMAPFVPROC) ( GLenum map, GLfloat *values );
-typedef void (GLAPIENTRY * PFNGLGETPIXELMAPUIVPROC) ( GLenum map, GLuint *values );
-typedef void (GLAPIENTRY * PFNGLGETPIXELMAPUSVPROC) ( GLenum map, GLushort *values );
-typedef void (GLAPIENTRY * PFNGLBITMAPPROC) ( GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap );
-typedef void (GLAPIENTRY * PFNGLREADPIXELSPROC) ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels );
-typedef void (GLAPIENTRY * PFNGLDRAWPIXELSPROC) ( GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels );
-typedef void (GLAPIENTRY * PFNGLCOPYPIXELSPROC) ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum type );
-typedef void (GLAPIENTRY * PFNGLSTENCILFUNCPROC) ( GLenum func, GLint ref, GLuint mask );
-typedef void (GLAPIENTRY * PFNGLSTENCILMASKPROC) ( GLuint mask );
-typedef void (GLAPIENTRY * PFNGLSTENCILOPPROC) ( GLenum fail, GLenum zfail, GLenum zpass );
-typedef void (GLAPIENTRY * PFNGLCLEARSTENCILPROC) ( GLint s );
-typedef void (GLAPIENTRY * PFNGLTEXGENDPROC) ( GLenum coord, GLenum pname, GLdouble param );
-typedef void (GLAPIENTRY * PFNGLTEXGENFPROC) ( GLenum coord, GLenum pname, GLfloat param );
-typedef void (GLAPIENTRY * PFNGLTEXGENIPROC) ( GLenum coord, GLenum pname, GLint param );
-typedef void (GLAPIENTRY * PFNGLTEXGENDVPROC) ( GLenum coord, GLenum pname, const GLdouble *params );
-typedef void (GLAPIENTRY * PFNGLTEXGENFVPROC) ( GLenum coord, GLenum pname, const GLfloat *params );
-typedef void (GLAPIENTRY * PFNGLTEXGENIVPROC) ( GLenum coord, GLenum pname, const GLint *params );
-typedef void (GLAPIENTRY * PFNGLGETTEXGENDVPROC) ( GLenum coord, GLenum pname, GLdouble *params );
-typedef void (GLAPIENTRY * PFNGLGETTEXGENFVPROC) ( GLenum coord, GLenum pname, GLfloat *params );
-typedef void (GLAPIENTRY * PFNGLGETTEXGENIVPROC) ( GLenum coord, GLenum pname, GLint *params );
-typedef void (GLAPIENTRY * PFNGLTEXENVFPROC) ( GLenum target, GLenum pname, GLfloat param );
-typedef void (GLAPIENTRY * PFNGLTEXENVIPROC) ( GLenum target, GLenum pname, GLint param );
-typedef void (GLAPIENTRY * PFNGLTEXENVFVPROC) ( GLenum target, GLenum pname, const GLfloat *params );
-typedef void (GLAPIENTRY * PFNGLTEXENVIVPROC) ( GLenum target, GLenum pname, const GLint *params );
-typedef void (GLAPIENTRY * PFNGLGETTEXENVFVPROC) ( GLenum target, GLenum pname, GLfloat *params );
-typedef void (GLAPIENTRY * PFNGLGETTEXENVIVPROC) ( GLenum target, GLenum pname, GLint *params );
-typedef void (GLAPIENTRY * PFNGLTEXPARAMETERFPROC) ( GLenum target, GLenum pname, GLfloat param );
-typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIPROC) ( GLenum target, GLenum pname, GLint param );
-typedef void (GLAPIENTRY * PFNGLTEXPARAMETERFVPROC) ( GLenum target, GLenum pname, const GLfloat *params );
-typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIVPROC) ( GLenum target, GLenum pname, const GLint *params );
-typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERFVPROC) ( GLenum target, GLenum pname, GLfloat *params);
-typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIVPROC) ( GLenum target, GLenum pname, GLint *params );
-typedef void (GLAPIENTRY * PFNGLGETTEXLEVELPARAMETERFVPROC) ( GLenum target, GLint level, GLenum pname, GLfloat *params );
-typedef void (GLAPIENTRY * PFNGLGETTEXLEVELPARAMETERIVPROC) ( GLenum target, GLint level, GLenum pname, GLint *params );
-typedef void (GLAPIENTRY * PFNGLTEXIMAGE1DPROC) ( GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels );
-typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DPROC) ( GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels );
-typedef void (GLAPIENTRY * PFNGLGETTEXIMAGEPROC) ( GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels );
-typedef void (GLAPIENTRY * PFNGLGENTEXTURESPROC) ( GLsizei n, GLuint *textures );
-typedef void (GLAPIENTRY * PFNGLDELETETEXTURESPROC) ( GLsizei n, const GLuint *textures);
-typedef void (GLAPIENTRY * PFNGLBINDTEXTUREPROC) ( GLenum target, GLuint texture );
-typedef void (GLAPIENTRY * PFNGLPRIORITIZETEXTURESPROC) ( GLsizei n, const GLuint *textures, const GLclampf *priorities );
-typedef GLboolean (GLAPIENTRY * PFNGLARETEXTURESRESIDENTPROC) ( GLsizei n, const GLuint *textures, GLboolean *residences );
-typedef GLboolean (GLAPIENTRY * PFNGLISTEXTUREPROC) ( GLuint texture );
-typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE1DPROC) ( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels );
-typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE2DPROC) ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels );
-typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE1DPROC) ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border );
-typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE2DPROC) ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border );
-typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE1DPROC) ( GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width );
-typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE2DPROC) ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height );
-typedef void (GLAPIENTRY * PFNGLMAP1DPROC) ( GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points );
-typedef void (GLAPIENTRY * PFNGLMAP1FPROC) ( GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points );
-typedef void (GLAPIENTRY * PFNGLMAP2DPROC) ( GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points );
-typedef void (GLAPIENTRY * PFNGLMAP2FPROC) ( GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points );
-typedef void (GLAPIENTRY * PFNGLGETMAPDVPROC) ( GLenum target, GLenum query, GLdouble *v );
-typedef void (GLAPIENTRY * PFNGLGETMAPFVPROC) ( GLenum target, GLenum query, GLfloat *v );
-typedef void (GLAPIENTRY * PFNGLGETMAPIVPROC) ( GLenum target, GLenum query, GLint *v );
-typedef void (GLAPIENTRY * PFNGLEVALCOORD1DPROC) ( GLdouble u );
-typedef void (GLAPIENTRY * PFNGLEVALCOORD1FPROC) ( GLfloat u );
-typedef void (GLAPIENTRY * PFNGLEVALCOORD1DVPROC) ( const GLdouble *u );
-typedef void (GLAPIENTRY * PFNGLEVALCOORD1FVPROC) ( const GLfloat *u );
-typedef void (GLAPIENTRY * PFNGLEVALCOORD2DPROC) ( GLdouble u, GLdouble v );
-typedef void (GLAPIENTRY * PFNGLEVALCOORD2FPROC) ( GLfloat u, GLfloat v );
-typedef void (GLAPIENTRY * PFNGLEVALCOORD2DVPROC) ( const GLdouble *u );
-typedef void (GLAPIENTRY * PFNGLEVALCOORD2FVPROC) ( const GLfloat *u );
-typedef void (GLAPIENTRY * PFNGLMAPGRID1DPROC) ( GLint un, GLdouble u1, GLdouble u2 );
-typedef void (GLAPIENTRY * PFNGLMAPGRID1FPROC) ( GLint un, GLfloat u1, GLfloat u2 );
-typedef void (GLAPIENTRY * PFNGLMAPGRID2DPROC) ( GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2 );
-typedef void (GLAPIENTRY * PFNGLMAPGRID2FPROC) ( GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2 );
-typedef void (GLAPIENTRY * PFNGLEVALPOINT1PROC) ( GLint i );
-typedef void (GLAPIENTRY * PFNGLEVALPOINT2PROC) ( GLint i, GLint j );
-typedef void (GLAPIENTRY * PFNGLEVALMESH1PROC) ( GLenum mode, GLint i1, GLint i2 );
-typedef void (GLAPIENTRY * PFNGLEVALMESH2PROC) ( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 );
-typedef void (GLAPIENTRY * PFNGLFOGFPROC) ( GLenum pname, GLfloat param );
-typedef void (GLAPIENTRY * PFNGLFOGIPROC) ( GLenum pname, GLint param );
-typedef void (GLAPIENTRY * PFNGLFOGFVPROC) ( GLenum pname, const GLfloat *params );
-typedef void (GLAPIENTRY * PFNGLFOGIVPROC) ( GLenum pname, const GLint *params );
-typedef void (GLAPIENTRY * PFNGLFEEDBACKBUFFERPROC) ( GLsizei size, GLenum type, GLfloat *buffer );
-typedef void (GLAPIENTRY * PFNGLPASSTHROUGHPROC) ( GLfloat token );
-typedef void (GLAPIENTRY * PFNGLSELECTBUFFERPROC) ( GLsizei size, GLuint *buffer );
-typedef void (GLAPIENTRY * PFNGLINITNAMESPROC) ( void );
-typedef void (GLAPIENTRY * PFNGLLOADNAMEPROC) ( GLuint name );
-typedef void (GLAPIENTRY * PFNGLPUSHNAMEPROC) ( GLuint name );
-typedef void (GLAPIENTRY * PFNGLPOPNAMEPROC) ( void );
+/*
+ * Constants
+ */
-extern PFNGLCLEARINDEXPROC glClearIndex;
-extern PFNGLCLEARCOLORPROC glClearColor;
-extern PFNGLCLEARPROC glClear;
-extern PFNGLINDEXMASKPROC glIndexMask;
-extern PFNGLCOLORMASKPROC glColorMask;
-extern PFNGLALPHAFUNCPROC glAlphaFunc;
-extern PFNGLBLENDFUNCPROC glBlendFunc;
-extern PFNGLLOGICOPPROC glLogicOp;
-extern PFNGLCULLFACEPROC glCullFace;
-extern PFNGLFRONTFACEPROC glFrontFace;
-extern PFNGLPOINTSIZEPROC glPointSize;
-extern PFNGLLINEWIDTHPROC glLineWidth;
-extern PFNGLLINESTIPPLEPROC glLineStipple;
-extern PFNGLPOLYGONMODEPROC glPolygonMode;
-extern PFNGLPOLYGONOFFSETPROC glPolygonOffset;
-extern PFNGLPOLYGONSTIPPLEPROC glPolygonStipple;
-extern PFNGLGETPOLYGONSTIPPLEPROC glGetPolygonStipple;
-extern PFNGLEDGEFLAGPROC glEdgeFlag;
-extern PFNGLEDGEFLAGVPROC glEdgeFlagv;
-extern PFNGLSCISSORPROC glScissor;
-extern PFNGLCLIPPLANEPROC glClipPlane;
-extern PFNGLGETCLIPPLANEPROC glGetClipPlane;
-extern PFNGLDRAWBUFFERPROC glDrawBuffer;
-extern PFNGLREADBUFFERPROC glReadBuffer;
-extern PFNGLENABLEPROC glEnable;
-extern PFNGLDISABLEPROC glDisable;
-extern PFNGLISENABLEDPROC glIsEnabled;
-extern PFNGLENABLECLIENTSTATEPROC glEnableClientState;
-extern PFNGLDISABLECLIENTSTATEPROC glDisableClientState;
-extern PFNGLGETBOOLEANVPROC glGetBooleanv;
-extern PFNGLGETDOUBLEVPROC glGetDoublev;
-extern PFNGLGETFLOATVPROC glGetFloatv;
-extern PFNGLGETINTEGERVPROC glGetIntegerv;
-extern PFNGLPUSHATTRIBPROC glPushAttrib;
-extern PFNGLPOPATTRIBPROC glPopAttrib;
-extern PFNGLPUSHCLIENTATTRIBPROC glPushClientAttrib;
-extern PFNGLPOPCLIENTATTRIBPROC glPopClientAttrib;
-extern PFNGLRENDERMODEPROC glRenderMode;
-extern PFNGLGETERRORPROC glGetError;
-extern PFNGLGETSTRINGPROC glGetString;
-extern PFNGLFINISHPROC glFinish;
-extern PFNGLFLUSHPROC glFlush;
-extern PFNGLHINTPROC glHint;
-extern PFNGLCLEARDEPTHPROC glClearDepth;
-extern PFNGLDEPTHFUNCPROC glDepthFunc;
-extern PFNGLDEPTHMASKPROC glDepthMask;
-extern PFNGLDEPTHRANGEPROC glDepthRange;
-extern PFNGLCLEARACCUMPROC glClearAccum;
-extern PFNGLACCUMPROC glAccum;
-extern PFNGLMATRIXMODEPROC glMatrixMode;
-extern PFNGLORTHOPROC glOrtho;
-extern PFNGLFRUSTUMPROC glFrustum;
-extern PFNGLVIEWPORTPROC glViewport;
-extern PFNGLPUSHMATRIXPROC glPushMatrix;
-extern PFNGLPOPMATRIXPROC glPopMatrix;
-extern PFNGLLOADIDENTITYPROC glLoadIdentity;
-extern PFNGLLOADMATRIXDPROC glLoadMatrixd;
-extern PFNGLLOADMATRIXFPROC glLoadMatrixf;
-extern PFNGLMULTMATRIXDPROC glMultMatrixd;
-extern PFNGLMULTMATRIXFPROC glMultMatrixf;
-extern PFNGLROTATEDPROC glRotated;
-extern PFNGLROTATEFPROC glRotatef;
-extern PFNGLSCALEDPROC glScaled;
-extern PFNGLSCALEFPROC glScalef;
-extern PFNGLTRANSLATEDPROC glTranslated;
-extern PFNGLTRANSLATEFPROC glTranslatef;
-extern PFNGLISLISTPROC glIsList;
-extern PFNGLDELETELISTSPROC glDeleteLists;
-extern PFNGLGENLISTSPROC glGenLists;
-extern PFNGLNEWLISTPROC glNewList;
-extern PFNGLENDLISTPROC glEndList;
-extern PFNGLCALLLISTPROC glCallList;
-extern PFNGLCALLLISTSPROC glCallLists;
-extern PFNGLLISTBASEPROC glListBase;
-extern PFNGLBEGINPROC glBegin;
-extern PFNGLENDPROC glEnd;
-extern PFNGLVERTEX2DPROC glVertex2d;
-extern PFNGLVERTEX2FPROC glVertex2f;
-extern PFNGLVERTEX2IPROC glVertex2i;
-extern PFNGLVERTEX2SPROC glVertex2s;
-extern PFNGLVERTEX3DPROC glVertex3d;
-extern PFNGLVERTEX3FPROC glVertex3f;
-extern PFNGLVERTEX3IPROC glVertex3i;
-extern PFNGLVERTEX3SPROC glVertex3s;
-extern PFNGLVERTEX4DPROC glVertex4d;
-extern PFNGLVERTEX4FPROC glVertex4f;
-extern PFNGLVERTEX4IPROC glVertex4i;
-extern PFNGLVERTEX4SPROC glVertex4s;
-extern PFNGLVERTEX2DVPROC glVertex2dv;
-extern PFNGLVERTEX2FVPROC glVertex2fv;
-extern PFNGLVERTEX2IVPROC glVertex2iv;
-extern PFNGLVERTEX2SVPROC glVertex2sv;
-extern PFNGLVERTEX3DVPROC glVertex3dv;
-extern PFNGLVERTEX3FVPROC glVertex3fv;
-extern PFNGLVERTEX3IVPROC glVertex3iv;
-extern PFNGLVERTEX3SVPROC glVertex3sv;
-extern PFNGLVERTEX4DVPROC glVertex4dv;
-extern PFNGLVERTEX4FVPROC glVertex4fv;
-extern PFNGLVERTEX4IVPROC glVertex4iv;
-extern PFNGLVERTEX4SVPROC glVertex4sv;
-extern PFNGLNORMAL3BPROC glNormal3b;
-extern PFNGLNORMAL3DPROC glNormal3d;
-extern PFNGLNORMAL3FPROC glNormal3f;
-extern PFNGLNORMAL3IPROC glNormal3i;
-extern PFNGLNORMAL3SPROC glNormal3s;
-extern PFNGLNORMAL3BVPROC glNormal3bv;
-extern PFNGLNORMAL3DVPROC glNormal3dv;
-extern PFNGLNORMAL3FVPROC glNormal3fv;
-extern PFNGLNORMAL3IVPROC glNormal3iv;
-extern PFNGLNORMAL3SVPROC glNormal3sv;
-extern PFNGLINDEXDPROC glIndexd;
-extern PFNGLINDEXFPROC glIndexf;
-extern PFNGLINDEXIPROC glIndexi;
-extern PFNGLINDEXSPROC glIndexs;
-extern PFNGLINDEXUBPROC glIndexub;
-extern PFNGLINDEXDVPROC glIndexdv;
-extern PFNGLINDEXFVPROC glIndexfv;
-extern PFNGLINDEXIVPROC glIndexiv;
-extern PFNGLINDEXSVPROC glIndexsv;
-extern PFNGLINDEXUBVPROC glIndexubv;
-extern PFNGLCOLOR3BPROC glColor3b;
-extern PFNGLCOLOR3DPROC glColor3d;
-extern PFNGLCOLOR3FPROC glColor3f;
-extern PFNGLCOLOR3IPROC glColor3i;
-extern PFNGLCOLOR3SPROC glColor3s;
-extern PFNGLCOLOR3UBPROC glColor3ub;
-extern PFNGLCOLOR3UIPROC glColor3ui;
-extern PFNGLCOLOR3USPROC glColor3us;
-extern PFNGLCOLOR4BPROC glColor4b;
-extern PFNGLCOLOR4DPROC glColor4d;
-extern PFNGLCOLOR4FPROC glColor4f;
-extern PFNGLCOLOR4IPROC glColor4i;
-extern PFNGLCOLOR4SPROC glColor4s;
-extern PFNGLCOLOR4UBPROC glColor4ub;
-extern PFNGLCOLOR4UIPROC glColor4ui;
-extern PFNGLCOLOR4USPROC glColor4us;
-extern PFNGLCOLOR3BVPROC glColor3bv;
-extern PFNGLCOLOR3DVPROC glColor3dv;
-extern PFNGLCOLOR3FVPROC glColor3fv;
-extern PFNGLCOLOR3IVPROC glColor3iv;
-extern PFNGLCOLOR3SVPROC glColor3sv;
-extern PFNGLCOLOR3UBVPROC glColor3ubv;
-extern PFNGLCOLOR3UIVPROC glColor3uiv;
-extern PFNGLCOLOR3USVPROC glColor3usv;
-extern PFNGLCOLOR4BVPROC glColor4bv;
-extern PFNGLCOLOR4DVPROC glColor4dv;
-extern PFNGLCOLOR4FVPROC glColor4fv;
-extern PFNGLCOLOR4IVPROC glColor4iv;
-extern PFNGLCOLOR4SVPROC glColor4sv;
-extern PFNGLCOLOR4UBVPROC glColor4ubv;
-extern PFNGLCOLOR4UIVPROC glColor4uiv;
-extern PFNGLCOLOR4USVPROC glColor4usv;
-extern PFNGLTEXCOORD1DPROC glTexCoord1d;
-extern PFNGLTEXCOORD1FPROC glTexCoord1f;
-extern PFNGLTEXCOORD1IPROC glTexCoord1i;
-extern PFNGLTEXCOORD1SPROC glTexCoord1s;
-extern PFNGLTEXCOORD2DPROC glTexCoord2d;
-extern PFNGLTEXCOORD2FPROC glTexCoord2f;
-extern PFNGLTEXCOORD2IPROC glTexCoord2i;
-extern PFNGLTEXCOORD2SPROC glTexCoord2s;
-extern PFNGLTEXCOORD3DPROC glTexCoord3d;
-extern PFNGLTEXCOORD3FPROC glTexCoord3f;
-extern PFNGLTEXCOORD3IPROC glTexCoord3i;
-extern PFNGLTEXCOORD3SPROC glTexCoord3s;
-extern PFNGLTEXCOORD4DPROC glTexCoord4d;
-extern PFNGLTEXCOORD4FPROC glTexCoord4f;
-extern PFNGLTEXCOORD4IPROC glTexCoord4i;
-extern PFNGLTEXCOORD4SPROC glTexCoord4s;
-extern PFNGLTEXCOORD1DVPROC glTexCoord1dv;
-extern PFNGLTEXCOORD1FVPROC glTexCoord1fv;
-extern PFNGLTEXCOORD1IVPROC glTexCoord1iv;
-extern PFNGLTEXCOORD1SVPROC glTexCoord1sv;
-extern PFNGLTEXCOORD2DVPROC glTexCoord2dv;
-extern PFNGLTEXCOORD2FVPROC glTexCoord2fv;
-extern PFNGLTEXCOORD2IVPROC glTexCoord2iv;
-extern PFNGLTEXCOORD2SVPROC glTexCoord2sv;
-extern PFNGLTEXCOORD3DVPROC glTexCoord3dv;
-extern PFNGLTEXCOORD3FVPROC glTexCoord3fv;
-extern PFNGLTEXCOORD3IVPROC glTexCoord3iv;
-extern PFNGLTEXCOORD3SVPROC glTexCoord3sv;
-extern PFNGLTEXCOORD4DVPROC glTexCoord4dv;
-extern PFNGLTEXCOORD4FVPROC glTexCoord4fv;
-extern PFNGLTEXCOORD4IVPROC glTexCoord4iv;
-extern PFNGLTEXCOORD4SVPROC glTexCoord4sv;
-extern PFNGLRASTERPOS2DPROC glRasterPos2d;
-extern PFNGLRASTERPOS2FPROC glRasterPos2f;
-extern PFNGLRASTERPOS2IPROC glRasterPos2i;
-extern PFNGLRASTERPOS2SPROC glRasterPos2s;
-extern PFNGLRASTERPOS3DPROC glRasterPos3d;
-extern PFNGLRASTERPOS3FPROC glRasterPos3f;
-extern PFNGLRASTERPOS3IPROC glRasterPos3i;
-extern PFNGLRASTERPOS3SPROC glRasterPos3s;
-extern PFNGLRASTERPOS4DPROC glRasterPos4d;
-extern PFNGLRASTERPOS4FPROC glRasterPos4f;
-extern PFNGLRASTERPOS4IPROC glRasterPos4i;
-extern PFNGLRASTERPOS4SPROC glRasterPos4s;
-extern PFNGLRASTERPOS2DVPROC glRasterPos2dv;
-extern PFNGLRASTERPOS2FVPROC glRasterPos2fv;
-extern PFNGLRASTERPOS2IVPROC glRasterPos2iv;
-extern PFNGLRASTERPOS2SVPROC glRasterPos2sv;
-extern PFNGLRASTERPOS3DVPROC glRasterPos3dv;
-extern PFNGLRASTERPOS3FVPROC glRasterPos3fv;
-extern PFNGLRASTERPOS3IVPROC glRasterPos3iv;
-extern PFNGLRASTERPOS3SVPROC glRasterPos3sv;
-extern PFNGLRASTERPOS4DVPROC glRasterPos4dv;
-extern PFNGLRASTERPOS4FVPROC glRasterPos4fv;
-extern PFNGLRASTERPOS4IVPROC glRasterPos4iv;
-extern PFNGLRASTERPOS4SVPROC glRasterPos4sv;
-extern PFNGLRECTDPROC glRectd;
-extern PFNGLRECTFPROC glRectf;
-extern PFNGLRECTIPROC glRecti;
-extern PFNGLRECTSPROC glRects;
-extern PFNGLRECTDVPROC glRectdv;
-extern PFNGLRECTFVPROC glRectfv;
-extern PFNGLRECTIVPROC glRectiv;
-extern PFNGLRECTSVPROC glRectsv;
-extern PFNGLVERTEXPOINTERPROC glVertexPointer;
-extern PFNGLNORMALPOINTERPROC glNormalPointer;
-extern PFNGLCOLORPOINTERPROC glColorPointer;
-extern PFNGLINDEXPOINTERPROC glIndexPointer;
-extern PFNGLTEXCOORDPOINTERPROC glTexCoordPointer;
-extern PFNGLEDGEFLAGPOINTERPROC glEdgeFlagPointer;
-extern PFNGLGETPOINTERVPROC glGetPointerv;
-extern PFNGLARRAYELEMENTPROC glArrayElement;
-extern PFNGLDRAWARRAYSPROC glDrawArrays;
-extern PFNGLDRAWELEMENTSPROC glDrawElements;
-extern PFNGLINTERLEAVEDARRAYSPROC glInterleavedArrays;
-extern PFNGLSHADEMODELPROC glShadeModel;
-extern PFNGLLIGHTFPROC glLightf;
-extern PFNGLLIGHTIPROC glLighti;
-extern PFNGLLIGHTFVPROC glLightfv;
-extern PFNGLLIGHTIVPROC glLightiv;
-extern PFNGLGETLIGHTFVPROC glGetLightfv;
-extern PFNGLGETLIGHTIVPROC glGetLightiv;
-extern PFNGLLIGHTMODELFPROC glLightModelf;
-extern PFNGLLIGHTMODELIPROC glLightModeli;
-extern PFNGLLIGHTMODELFVPROC glLightModelfv;
-extern PFNGLLIGHTMODELIVPROC glLightModeliv;
-extern PFNGLMATERIALFPROC glMaterialf;
-extern PFNGLMATERIALIPROC glMateriali;
-extern PFNGLMATERIALFVPROC glMaterialfv;
-extern PFNGLMATERIALIVPROC glMaterialiv;
-extern PFNGLGETMATERIALFVPROC glGetMaterialfv;
-extern PFNGLGETMATERIALIVPROC glGetMaterialiv;
-extern PFNGLCOLORMATERIALPROC glColorMaterial;
-extern PFNGLPIXELZOOMPROC glPixelZoom;
-extern PFNGLPIXELSTOREFPROC glPixelStoref;
-extern PFNGLPIXELSTOREIPROC glPixelStorei;
-extern PFNGLPIXELTRANSFERFPROC glPixelTransferf;
-extern PFNGLPIXELTRANSFERIPROC glPixelTransferi;
-extern PFNGLPIXELMAPFVPROC glPixelMapfv;
-extern PFNGLPIXELMAPUIVPROC glPixelMapuiv;
-extern PFNGLPIXELMAPUSVPROC glPixelMapusv;
-extern PFNGLGETPIXELMAPFVPROC glGetPixelMapfv;
-extern PFNGLGETPIXELMAPUIVPROC glGetPixelMapuiv;
-extern PFNGLGETPIXELMAPUSVPROC glGetPixelMapusv;
-extern PFNGLBITMAPPROC glBitmap;
-extern PFNGLREADPIXELSPROC glReadPixels;
-extern PFNGLDRAWPIXELSPROC glDrawPixels;
-extern PFNGLCOPYPIXELSPROC glCopyPixels;
-extern PFNGLSTENCILFUNCPROC glStencilFunc;
-extern PFNGLSTENCILMASKPROC glStencilMask;
-extern PFNGLSTENCILOPPROC glStencilOp;
-extern PFNGLCLEARSTENCILPROC glClearStencil;
-extern PFNGLTEXGENDPROC glTexGend;
-extern PFNGLTEXGENFPROC glTexGenf;
-extern PFNGLTEXGENIPROC glTexGeni;
-extern PFNGLTEXGENDVPROC glTexGendv;
-extern PFNGLTEXGENFVPROC glTexGenfv;
-extern PFNGLTEXGENIVPROC glTexGeniv;
-extern PFNGLGETTEXGENDVPROC glGetTexGendv;
-extern PFNGLGETTEXGENFVPROC glGetTexGenfv;
-extern PFNGLGETTEXGENIVPROC glGetTexGeniv;
-extern PFNGLTEXENVFPROC glTexEnvf;
-extern PFNGLTEXENVIPROC glTexEnvi;
-extern PFNGLTEXENVFVPROC glTexEnvfv;
-extern PFNGLTEXENVIVPROC glTexEnviv;
-extern PFNGLGETTEXENVFVPROC glGetTexEnvfv;
-extern PFNGLGETTEXENVIVPROC glGetTexEnviv;
-extern PFNGLTEXPARAMETERFPROC glTexParameterf;
-extern PFNGLTEXPARAMETERIPROC glTexParameteri;
-extern PFNGLTEXPARAMETERFVPROC glTexParameterfv;
-extern PFNGLTEXPARAMETERIVPROC glTexParameteriv;
-extern PFNGLGETTEXPARAMETERFVPROC glGetTexParameterfv;
-extern PFNGLGETTEXPARAMETERIVPROC glGetTexParameteriv;
-extern PFNGLGETTEXLEVELPARAMETERFVPROC glGetTexLevelParameterfv;
-extern PFNGLGETTEXLEVELPARAMETERIVPROC glGetTexLevelParameteriv;
-extern PFNGLTEXIMAGE1DPROC glTexImage1D;
-extern PFNGLTEXIMAGE2DPROC glTexImage2D;
-extern PFNGLGETTEXIMAGEPROC glGetTexImage;
-extern PFNGLGENTEXTURESPROC glGenTextures;
-extern PFNGLDELETETEXTURESPROC glDeleteTextures;
-extern PFNGLBINDTEXTUREPROC glBindTexture;
-extern PFNGLPRIORITIZETEXTURESPROC glPrioritizeTextures;
-extern PFNGLARETEXTURESRESIDENTPROC glAreTexturesResident;
-extern PFNGLISTEXTUREPROC glIsTexture;
-extern PFNGLTEXSUBIMAGE1DPROC glTexSubImage1D;
-extern PFNGLTEXSUBIMAGE2DPROC glTexSubImage2D;
-extern PFNGLCOPYTEXIMAGE1DPROC glCopyTexImage1D;
-extern PFNGLCOPYTEXIMAGE2DPROC glCopyTexImage2D;
-extern PFNGLCOPYTEXSUBIMAGE1DPROC glCopyTexSubImage1D;
-extern PFNGLCOPYTEXSUBIMAGE2DPROC glCopyTexSubImage2D;
-extern PFNGLMAP1DPROC glMap1d;
-extern PFNGLMAP1FPROC glMap1f;
-extern PFNGLMAP2DPROC glMap2d;
-extern PFNGLMAP2FPROC glMap2f;
-extern PFNGLGETMAPDVPROC glGetMapdv;
-extern PFNGLGETMAPFVPROC glGetMapfv;
-extern PFNGLGETMAPIVPROC glGetMapiv;
-extern PFNGLEVALCOORD1DPROC glEvalCoord1d;
-extern PFNGLEVALCOORD1FPROC glEvalCoord1f;
-extern PFNGLEVALCOORD1DVPROC glEvalCoord1dv;
-extern PFNGLEVALCOORD1FVPROC glEvalCoord1fv;
-extern PFNGLEVALCOORD2DPROC glEvalCoord2d;
-extern PFNGLEVALCOORD2FPROC glEvalCoord2f;
-extern PFNGLEVALCOORD2DVPROC glEvalCoord2dv;
-extern PFNGLEVALCOORD2FVPROC glEvalCoord2fv;
-extern PFNGLMAPGRID1DPROC glMapGrid1d;
-extern PFNGLMAPGRID1FPROC glMapGrid1f;
-extern PFNGLMAPGRID2DPROC glMapGrid2d;
-extern PFNGLMAPGRID2FPROC glMapGrid2f;
-extern PFNGLEVALPOINT1PROC glEvalPoint1;
-extern PFNGLEVALPOINT2PROC glEvalPoint2;
-extern PFNGLEVALMESH1PROC glEvalMesh1;
-extern PFNGLEVALMESH2PROC glEvalMesh2;
-extern PFNGLFOGFPROC glFogf;
-extern PFNGLFOGIPROC glFogi;
-extern PFNGLFOGFVPROC glFogfv;
-extern PFNGLFOGIVPROC glFogiv;
-extern PFNGLFEEDBACKBUFFERPROC glFeedbackBuffer;
-extern PFNGLPASSTHROUGHPROC glPassThrough;
-extern PFNGLSELECTBUFFERPROC glSelectBuffer;
-extern PFNGLINITNAMESPROC glInitNames;
-extern PFNGLLOADNAMEPROC glLoadName;
-extern PFNGLPUSHNAMEPROC glPushName;
-extern PFNGLPOPNAMEPROC glPopName;
+/* Boolean values */
+#define GL_FALSE 0
+#define GL_TRUE 1
+/* Data types */
+#define GL_BYTE 0x1400
+#define GL_UNSIGNED_BYTE 0x1401
+#define GL_SHORT 0x1402
+#define GL_UNSIGNED_SHORT 0x1403
+#define GL_INT 0x1404
+#define GL_UNSIGNED_INT 0x1405
+#define GL_FLOAT 0x1406
+#define GL_2_BYTES 0x1407
+#define GL_3_BYTES 0x1408
+#define GL_4_BYTES 0x1409
+#define GL_DOUBLE 0x140A
+
+/* Primitives */
+#define GL_POINTS 0x0000
+#define GL_LINES 0x0001
+#define GL_LINE_LOOP 0x0002
+#define GL_LINE_STRIP 0x0003
+#define GL_TRIANGLES 0x0004
+#define GL_TRIANGLE_STRIP 0x0005
+#define GL_TRIANGLE_FAN 0x0006
+#define GL_QUADS 0x0007
+#define GL_QUAD_STRIP 0x0008
+#define GL_POLYGON 0x0009
+
+/* Vertex Arrays */
+#define GL_VERTEX_ARRAY 0x8074
+#define GL_NORMAL_ARRAY 0x8075
+#define GL_COLOR_ARRAY 0x8076
+#define GL_INDEX_ARRAY 0x8077
+#define GL_TEXTURE_COORD_ARRAY 0x8078
+#define GL_EDGE_FLAG_ARRAY 0x8079
+#define GL_VERTEX_ARRAY_SIZE 0x807A
+#define GL_VERTEX_ARRAY_TYPE 0x807B
+#define GL_VERTEX_ARRAY_STRIDE 0x807C
+#define GL_NORMAL_ARRAY_TYPE 0x807E
+#define GL_NORMAL_ARRAY_STRIDE 0x807F
+#define GL_COLOR_ARRAY_SIZE 0x8081
+#define GL_COLOR_ARRAY_TYPE 0x8082
+#define GL_COLOR_ARRAY_STRIDE 0x8083
+#define GL_INDEX_ARRAY_TYPE 0x8085
+#define GL_INDEX_ARRAY_STRIDE 0x8086
+#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088
+#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089
+#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A
+#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C
+#define GL_VERTEX_ARRAY_POINTER 0x808E
+#define GL_NORMAL_ARRAY_POINTER 0x808F
+#define GL_COLOR_ARRAY_POINTER 0x8090
+#define GL_INDEX_ARRAY_POINTER 0x8091
+#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092
+#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093
+#define GL_V2F 0x2A20
+#define GL_V3F 0x2A21
+#define GL_C4UB_V2F 0x2A22
+#define GL_C4UB_V3F 0x2A23
+#define GL_C3F_V3F 0x2A24
+#define GL_N3F_V3F 0x2A25
+#define GL_C4F_N3F_V3F 0x2A26
+#define GL_T2F_V3F 0x2A27
+#define GL_T4F_V4F 0x2A28
+#define GL_T2F_C4UB_V3F 0x2A29
+#define GL_T2F_C3F_V3F 0x2A2A
+#define GL_T2F_N3F_V3F 0x2A2B
+#define GL_T2F_C4F_N3F_V3F 0x2A2C
+#define GL_T4F_C4F_N3F_V4F 0x2A2D
+
+/* Matrix Mode */
+#define GL_MATRIX_MODE 0x0BA0
+#define GL_MODELVIEW 0x1700
+#define GL_PROJECTION 0x1701
+#define GL_TEXTURE 0x1702
+
+/* Points */
+#define GL_POINT_SMOOTH 0x0B10
+#define GL_POINT_SIZE 0x0B11
+#define GL_POINT_SIZE_GRANULARITY 0x0B13
+#define GL_POINT_SIZE_RANGE 0x0B12
+
+/* Lines */
+#define GL_LINE_SMOOTH 0x0B20
+#define GL_LINE_STIPPLE 0x0B24
+#define GL_LINE_STIPPLE_PATTERN 0x0B25
+#define GL_LINE_STIPPLE_REPEAT 0x0B26
+#define GL_LINE_WIDTH 0x0B21
+#define GL_LINE_WIDTH_GRANULARITY 0x0B23
+#define GL_LINE_WIDTH_RANGE 0x0B22
+
+/* Polygons */
+#define GL_POINT 0x1B00
+#define GL_LINE 0x1B01
+#define GL_FILL 0x1B02
+#define GL_CW 0x0900
+#define GL_CCW 0x0901
+#define GL_FRONT 0x0404
+#define GL_BACK 0x0405
+#define GL_POLYGON_MODE 0x0B40
+#define GL_POLYGON_SMOOTH 0x0B41
+#define GL_POLYGON_STIPPLE 0x0B42
+#define GL_EDGE_FLAG 0x0B43
+#define GL_CULL_FACE 0x0B44
+#define GL_CULL_FACE_MODE 0x0B45
+#define GL_FRONT_FACE 0x0B46
+#define GL_POLYGON_OFFSET_FACTOR 0x8038
+#define GL_POLYGON_OFFSET_UNITS 0x2A00
+#define GL_POLYGON_OFFSET_POINT 0x2A01
+#define GL_POLYGON_OFFSET_LINE 0x2A02
+#define GL_POLYGON_OFFSET_FILL 0x8037
+
+/* Display Lists */
+#define GL_COMPILE 0x1300
+#define GL_COMPILE_AND_EXECUTE 0x1301
+#define GL_LIST_BASE 0x0B32
+#define GL_LIST_INDEX 0x0B33
+#define GL_LIST_MODE 0x0B30
+
+/* Depth buffer */
+#define GL_NEVER 0x0200
+#define GL_LESS 0x0201
+#define GL_EQUAL 0x0202
+#define GL_LEQUAL 0x0203
+#define GL_GREATER 0x0204
+#define GL_NOTEQUAL 0x0205
+#define GL_GEQUAL 0x0206
+#define GL_ALWAYS 0x0207
+#define GL_DEPTH_TEST 0x0B71
+#define GL_DEPTH_BITS 0x0D56
+#define GL_DEPTH_CLEAR_VALUE 0x0B73
+#define GL_DEPTH_FUNC 0x0B74
+#define GL_DEPTH_RANGE 0x0B70
+#define GL_DEPTH_WRITEMASK 0x0B72
+#define GL_DEPTH_COMPONENT 0x1902
+
+/* Lighting */
+#define GL_LIGHTING 0x0B50
+#define GL_LIGHT0 0x4000
+#define GL_LIGHT1 0x4001
+#define GL_LIGHT2 0x4002
+#define GL_LIGHT3 0x4003
+#define GL_LIGHT4 0x4004
+#define GL_LIGHT5 0x4005
+#define GL_LIGHT6 0x4006
+#define GL_LIGHT7 0x4007
+#define GL_SPOT_EXPONENT 0x1205
+#define GL_SPOT_CUTOFF 0x1206
+#define GL_CONSTANT_ATTENUATION 0x1207
+#define GL_LINEAR_ATTENUATION 0x1208
+#define GL_QUADRATIC_ATTENUATION 0x1209
+#define GL_AMBIENT 0x1200
+#define GL_DIFFUSE 0x1201
+#define GL_SPECULAR 0x1202
+#define GL_SHININESS 0x1601
+#define GL_EMISSION 0x1600
+#define GL_POSITION 0x1203
+#define GL_SPOT_DIRECTION 0x1204
+#define GL_AMBIENT_AND_DIFFUSE 0x1602
+#define GL_COLOR_INDEXES 0x1603
+#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52
+#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51
+#define GL_LIGHT_MODEL_AMBIENT 0x0B53
+#define GL_FRONT_AND_BACK 0x0408
+#define GL_SHADE_MODEL 0x0B54
+#define GL_FLAT 0x1D00
+#define GL_SMOOTH 0x1D01
+#define GL_COLOR_MATERIAL 0x0B57
+#define GL_COLOR_MATERIAL_FACE 0x0B55
+#define GL_COLOR_MATERIAL_PARAMETER 0x0B56
+#define GL_NORMALIZE 0x0BA1
+
+/* User clipping planes */
+#define GL_CLIP_PLANE0 0x3000
+#define GL_CLIP_PLANE1 0x3001
+#define GL_CLIP_PLANE2 0x3002
+#define GL_CLIP_PLANE3 0x3003
+#define GL_CLIP_PLANE4 0x3004
+#define GL_CLIP_PLANE5 0x3005
+
+/* Accumulation buffer */
+#define GL_ACCUM_RED_BITS 0x0D58
+#define GL_ACCUM_GREEN_BITS 0x0D59
+#define GL_ACCUM_BLUE_BITS 0x0D5A
+#define GL_ACCUM_ALPHA_BITS 0x0D5B
+#define GL_ACCUM_CLEAR_VALUE 0x0B80
+#define GL_ACCUM 0x0100
+#define GL_ADD 0x0104
+#define GL_LOAD 0x0101
+#define GL_MULT 0x0103
+#define GL_RETURN 0x0102
+
+/* Alpha testing */
+#define GL_ALPHA_TEST 0x0BC0
+#define GL_ALPHA_TEST_REF 0x0BC2
+#define GL_ALPHA_TEST_FUNC 0x0BC1
+
+/* Blending */
+#define GL_BLEND 0x0BE2
+#define GL_BLEND_SRC 0x0BE1
+#define GL_BLEND_DST 0x0BE0
+#define GL_ZERO 0
+#define GL_ONE 1
+#define GL_SRC_COLOR 0x0300
+#define GL_ONE_MINUS_SRC_COLOR 0x0301
+#define GL_SRC_ALPHA 0x0302
+#define GL_ONE_MINUS_SRC_ALPHA 0x0303
+#define GL_DST_ALPHA 0x0304
+#define GL_ONE_MINUS_DST_ALPHA 0x0305
+#define GL_DST_COLOR 0x0306
+#define GL_ONE_MINUS_DST_COLOR 0x0307
+#define GL_SRC_ALPHA_SATURATE 0x0308
+
+/* Render Mode */
+#define GL_FEEDBACK 0x1C01
+#define GL_RENDER 0x1C00
+#define GL_SELECT 0x1C02
+
+/* Feedback */
+#define GL_2D 0x0600
+#define GL_3D 0x0601
+#define GL_3D_COLOR 0x0602
+#define GL_3D_COLOR_TEXTURE 0x0603
+#define GL_4D_COLOR_TEXTURE 0x0604
+#define GL_POINT_TOKEN 0x0701
+#define GL_LINE_TOKEN 0x0702
+#define GL_LINE_RESET_TOKEN 0x0707
+#define GL_POLYGON_TOKEN 0x0703
+#define GL_BITMAP_TOKEN 0x0704
+#define GL_DRAW_PIXEL_TOKEN 0x0705
+#define GL_COPY_PIXEL_TOKEN 0x0706
+#define GL_PASS_THROUGH_TOKEN 0x0700
+#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0
+#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1
+#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2
+
+/* Selection */
+#define GL_SELECTION_BUFFER_POINTER 0x0DF3
+#define GL_SELECTION_BUFFER_SIZE 0x0DF4
+
+/* Fog */
+#define GL_FOG 0x0B60
+#define GL_FOG_MODE 0x0B65
+#define GL_FOG_DENSITY 0x0B62
+#define GL_FOG_COLOR 0x0B66
+#define GL_FOG_INDEX 0x0B61
+#define GL_FOG_START 0x0B63
+#define GL_FOG_END 0x0B64
+#define GL_LINEAR 0x2601
+#define GL_EXP 0x0800
+#define GL_EXP2 0x0801
+
+/* Logic Ops */
+#define GL_LOGIC_OP 0x0BF1
+#define GL_INDEX_LOGIC_OP 0x0BF1
+#define GL_COLOR_LOGIC_OP 0x0BF2
+#define GL_LOGIC_OP_MODE 0x0BF0
+#define GL_CLEAR 0x1500
+#define GL_SET 0x150F
+#define GL_COPY 0x1503
+#define GL_COPY_INVERTED 0x150C
+#define GL_NOOP 0x1505
+#define GL_INVERT 0x150A
+#define GL_AND 0x1501
+#define GL_NAND 0x150E
+#define GL_OR 0x1507
+#define GL_NOR 0x1508
+#define GL_XOR 0x1506
+#define GL_EQUIV 0x1509
+#define GL_AND_REVERSE 0x1502
+#define GL_AND_INVERTED 0x1504
+#define GL_OR_REVERSE 0x150B
+#define GL_OR_INVERTED 0x150D
+
+/* Stencil */
+#define GL_STENCIL_BITS 0x0D57
+#define GL_STENCIL_TEST 0x0B90
+#define GL_STENCIL_CLEAR_VALUE 0x0B91
+#define GL_STENCIL_FUNC 0x0B92
+#define GL_STENCIL_VALUE_MASK 0x0B93
+#define GL_STENCIL_FAIL 0x0B94
+#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
+#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
+#define GL_STENCIL_REF 0x0B97
+#define GL_STENCIL_WRITEMASK 0x0B98
+#define GL_STENCIL_INDEX 0x1901
+#define GL_KEEP 0x1E00
+#define GL_REPLACE 0x1E01
+#define GL_INCR 0x1E02
+#define GL_DECR 0x1E03
+
+/* Buffers, Pixel Drawing/Reading */
+#define GL_NONE 0
+#define GL_LEFT 0x0406
+#define GL_RIGHT 0x0407
+/*GL_FRONT 0x0404 */
+/*GL_BACK 0x0405 */
+/*GL_FRONT_AND_BACK 0x0408 */
+#define GL_FRONT_LEFT 0x0400
+#define GL_FRONT_RIGHT 0x0401
+#define GL_BACK_LEFT 0x0402
+#define GL_BACK_RIGHT 0x0403
+#define GL_AUX0 0x0409
+#define GL_AUX1 0x040A
+#define GL_AUX2 0x040B
+#define GL_AUX3 0x040C
+#define GL_COLOR_INDEX 0x1900
+#define GL_RED 0x1903
+#define GL_GREEN 0x1904
+#define GL_BLUE 0x1905
+#define GL_ALPHA 0x1906
+#define GL_LUMINANCE 0x1909
+#define GL_LUMINANCE_ALPHA 0x190A
+#define GL_ALPHA_BITS 0x0D55
+#define GL_RED_BITS 0x0D52
+#define GL_GREEN_BITS 0x0D53
+#define GL_BLUE_BITS 0x0D54
+#define GL_INDEX_BITS 0x0D51
+#define GL_SUBPIXEL_BITS 0x0D50
+#define GL_AUX_BUFFERS 0x0C00
+#define GL_READ_BUFFER 0x0C02
+#define GL_DRAW_BUFFER 0x0C01
+#define GL_DOUBLEBUFFER 0x0C32
+#define GL_STEREO 0x0C33
+#define GL_BITMAP 0x1A00
+#define GL_COLOR 0x1800
+#define GL_DEPTH 0x1801
+#define GL_STENCIL 0x1802
+#define GL_DITHER 0x0BD0
+#define GL_RGB 0x1907
+#define GL_RGBA 0x1908
+
+/* Implementation limits */
+#define GL_MAX_LIST_NESTING 0x0B31
+#define GL_MAX_EVAL_ORDER 0x0D30
+#define GL_MAX_LIGHTS 0x0D31
+#define GL_MAX_CLIP_PLANES 0x0D32
+#define GL_MAX_TEXTURE_SIZE 0x0D33
+#define GL_MAX_PIXEL_MAP_TABLE 0x0D34
+#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35
+#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36
+#define GL_MAX_NAME_STACK_DEPTH 0x0D37
+#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38
+#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39
+#define GL_MAX_VIEWPORT_DIMS 0x0D3A
+#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B
+
+/* Gets */
+#define GL_ATTRIB_STACK_DEPTH 0x0BB0
+#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1
+#define GL_COLOR_CLEAR_VALUE 0x0C22
+#define GL_COLOR_WRITEMASK 0x0C23
+#define GL_CURRENT_INDEX 0x0B01
+#define GL_CURRENT_COLOR 0x0B00
+#define GL_CURRENT_NORMAL 0x0B02
+#define GL_CURRENT_RASTER_COLOR 0x0B04
+#define GL_CURRENT_RASTER_DISTANCE 0x0B09
+#define GL_CURRENT_RASTER_INDEX 0x0B05
+#define GL_CURRENT_RASTER_POSITION 0x0B07
+#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06
+#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08
+#define GL_CURRENT_TEXTURE_COORDS 0x0B03
+#define GL_INDEX_CLEAR_VALUE 0x0C20
+#define GL_INDEX_MODE 0x0C30
+#define GL_INDEX_WRITEMASK 0x0C21
+#define GL_MODELVIEW_MATRIX 0x0BA6
+#define GL_MODELVIEW_STACK_DEPTH 0x0BA3
+#define GL_NAME_STACK_DEPTH 0x0D70
+#define GL_PROJECTION_MATRIX 0x0BA7
+#define GL_PROJECTION_STACK_DEPTH 0x0BA4
+#define GL_RENDER_MODE 0x0C40
+#define GL_RGBA_MODE 0x0C31
+#define GL_TEXTURE_MATRIX 0x0BA8
+#define GL_TEXTURE_STACK_DEPTH 0x0BA5
+#define GL_VIEWPORT 0x0BA2
+
+/* Evaluators */
+#define GL_AUTO_NORMAL 0x0D80
+#define GL_MAP1_COLOR_4 0x0D90
+#define GL_MAP1_INDEX 0x0D91
+#define GL_MAP1_NORMAL 0x0D92
+#define GL_MAP1_TEXTURE_COORD_1 0x0D93
+#define GL_MAP1_TEXTURE_COORD_2 0x0D94
+#define GL_MAP1_TEXTURE_COORD_3 0x0D95
+#define GL_MAP1_TEXTURE_COORD_4 0x0D96
+#define GL_MAP1_VERTEX_3 0x0D97
+#define GL_MAP1_VERTEX_4 0x0D98
+#define GL_MAP2_COLOR_4 0x0DB0
+#define GL_MAP2_INDEX 0x0DB1
+#define GL_MAP2_NORMAL 0x0DB2
+#define GL_MAP2_TEXTURE_COORD_1 0x0DB3
+#define GL_MAP2_TEXTURE_COORD_2 0x0DB4
+#define GL_MAP2_TEXTURE_COORD_3 0x0DB5
+#define GL_MAP2_TEXTURE_COORD_4 0x0DB6
+#define GL_MAP2_VERTEX_3 0x0DB7
+#define GL_MAP2_VERTEX_4 0x0DB8
+#define GL_MAP1_GRID_DOMAIN 0x0DD0
+#define GL_MAP1_GRID_SEGMENTS 0x0DD1
+#define GL_MAP2_GRID_DOMAIN 0x0DD2
+#define GL_MAP2_GRID_SEGMENTS 0x0DD3
+#define GL_COEFF 0x0A00
+#define GL_ORDER 0x0A01
+#define GL_DOMAIN 0x0A02
+
+/* Hints */
+#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50
+#define GL_POINT_SMOOTH_HINT 0x0C51
+#define GL_LINE_SMOOTH_HINT 0x0C52
+#define GL_POLYGON_SMOOTH_HINT 0x0C53
+#define GL_FOG_HINT 0x0C54
+#define GL_DONT_CARE 0x1100
+#define GL_FASTEST 0x1101
+#define GL_NICEST 0x1102
+
+/* Scissor box */
+#define GL_SCISSOR_BOX 0x0C10
+#define GL_SCISSOR_TEST 0x0C11
+
+/* Pixel Mode / Transfer */
+#define GL_MAP_COLOR 0x0D10
+#define GL_MAP_STENCIL 0x0D11
+#define GL_INDEX_SHIFT 0x0D12
+#define GL_INDEX_OFFSET 0x0D13
+#define GL_RED_SCALE 0x0D14
+#define GL_RED_BIAS 0x0D15
+#define GL_GREEN_SCALE 0x0D18
+#define GL_GREEN_BIAS 0x0D19
+#define GL_BLUE_SCALE 0x0D1A
+#define GL_BLUE_BIAS 0x0D1B
+#define GL_ALPHA_SCALE 0x0D1C
+#define GL_ALPHA_BIAS 0x0D1D
+#define GL_DEPTH_SCALE 0x0D1E
+#define GL_DEPTH_BIAS 0x0D1F
+#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1
+#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0
+#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2
+#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3
+#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4
+#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5
+#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6
+#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7
+#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8
+#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9
+#define GL_PIXEL_MAP_S_TO_S 0x0C71
+#define GL_PIXEL_MAP_I_TO_I 0x0C70
+#define GL_PIXEL_MAP_I_TO_R 0x0C72
+#define GL_PIXEL_MAP_I_TO_G 0x0C73
+#define GL_PIXEL_MAP_I_TO_B 0x0C74
+#define GL_PIXEL_MAP_I_TO_A 0x0C75
+#define GL_PIXEL_MAP_R_TO_R 0x0C76
+#define GL_PIXEL_MAP_G_TO_G 0x0C77
+#define GL_PIXEL_MAP_B_TO_B 0x0C78
+#define GL_PIXEL_MAP_A_TO_A 0x0C79
+#define GL_PACK_ALIGNMENT 0x0D05
+#define GL_PACK_LSB_FIRST 0x0D01
+#define GL_PACK_ROW_LENGTH 0x0D02
+#define GL_PACK_SKIP_PIXELS 0x0D04
+#define GL_PACK_SKIP_ROWS 0x0D03
+#define GL_PACK_SWAP_BYTES 0x0D00
+#define GL_UNPACK_ALIGNMENT 0x0CF5
+#define GL_UNPACK_LSB_FIRST 0x0CF1
+#define GL_UNPACK_ROW_LENGTH 0x0CF2
+#define GL_UNPACK_SKIP_PIXELS 0x0CF4
+#define GL_UNPACK_SKIP_ROWS 0x0CF3
+#define GL_UNPACK_SWAP_BYTES 0x0CF0
+#define GL_ZOOM_X 0x0D16
+#define GL_ZOOM_Y 0x0D17
+
+/* Texture mapping */
+#define GL_TEXTURE_ENV 0x2300
+#define GL_TEXTURE_ENV_MODE 0x2200
+#define GL_TEXTURE_1D 0x0DE0
+#define GL_TEXTURE_2D 0x0DE1
+#define GL_TEXTURE_WRAP_S 0x2802
+#define GL_TEXTURE_WRAP_T 0x2803
+#define GL_TEXTURE_MAG_FILTER 0x2800
+#define GL_TEXTURE_MIN_FILTER 0x2801
+#define GL_TEXTURE_ENV_COLOR 0x2201
+#define GL_TEXTURE_GEN_S 0x0C60
+#define GL_TEXTURE_GEN_T 0x0C61
+#define GL_TEXTURE_GEN_R 0x0C62
+#define GL_TEXTURE_GEN_Q 0x0C63
+#define GL_TEXTURE_GEN_MODE 0x2500
+#define GL_TEXTURE_BORDER_COLOR 0x1004
+#define GL_TEXTURE_WIDTH 0x1000
+#define GL_TEXTURE_HEIGHT 0x1001
+#define GL_TEXTURE_BORDER 0x1005
+#define GL_TEXTURE_COMPONENTS 0x1003
+#define GL_TEXTURE_RED_SIZE 0x805C
+#define GL_TEXTURE_GREEN_SIZE 0x805D
+#define GL_TEXTURE_BLUE_SIZE 0x805E
+#define GL_TEXTURE_ALPHA_SIZE 0x805F
+#define GL_TEXTURE_LUMINANCE_SIZE 0x8060
+#define GL_TEXTURE_INTENSITY_SIZE 0x8061
+#define GL_NEAREST_MIPMAP_NEAREST 0x2700
+#define GL_NEAREST_MIPMAP_LINEAR 0x2702
+#define GL_LINEAR_MIPMAP_NEAREST 0x2701
+#define GL_LINEAR_MIPMAP_LINEAR 0x2703
+#define GL_OBJECT_LINEAR 0x2401
+#define GL_OBJECT_PLANE 0x2501
+#define GL_EYE_LINEAR 0x2400
+#define GL_EYE_PLANE 0x2502
+#define GL_SPHERE_MAP 0x2402
+#define GL_DECAL 0x2101
+#define GL_MODULATE 0x2100
+#define GL_NEAREST 0x2600
+#define GL_REPEAT 0x2901
+#define GL_CLAMP 0x2900
+#define GL_S 0x2000
+#define GL_T 0x2001
+#define GL_R 0x2002
+#define GL_Q 0x2003
+
+/* Utility */
+#define GL_VENDOR 0x1F00
+#define GL_RENDERER 0x1F01
+#define GL_VERSION 0x1F02
+#define GL_EXTENSIONS 0x1F03
+
+/* Errors */
+#define GL_NO_ERROR 0
+#define GL_INVALID_ENUM 0x0500
+#define GL_INVALID_VALUE 0x0501
+#define GL_INVALID_OPERATION 0x0502
+#define GL_STACK_OVERFLOW 0x0503
+#define GL_STACK_UNDERFLOW 0x0504
+#define GL_OUT_OF_MEMORY 0x0505
+
+/* glPush/PopAttrib bits */
+#define GL_CURRENT_BIT 0x00000001
+#define GL_POINT_BIT 0x00000002
+#define GL_LINE_BIT 0x00000004
+#define GL_POLYGON_BIT 0x00000008
+#define GL_POLYGON_STIPPLE_BIT 0x00000010
+#define GL_PIXEL_MODE_BIT 0x00000020
+#define GL_LIGHTING_BIT 0x00000040
+#define GL_FOG_BIT 0x00000080
+#define GL_DEPTH_BUFFER_BIT 0x00000100
+#define GL_ACCUM_BUFFER_BIT 0x00000200
+#define GL_STENCIL_BUFFER_BIT 0x00000400
+#define GL_VIEWPORT_BIT 0x00000800
+#define GL_TRANSFORM_BIT 0x00001000
+#define GL_ENABLE_BIT 0x00002000
+#define GL_COLOR_BUFFER_BIT 0x00004000
+#define GL_HINT_BIT 0x00008000
+#define GL_EVAL_BIT 0x00010000
+#define GL_LIST_BIT 0x00020000
+#define GL_TEXTURE_BIT 0x00040000
+#define GL_SCISSOR_BIT 0x00080000
+#define GL_ALL_ATTRIB_BITS 0x000FFFFF
+
+
+/* OpenGL 1.1 */
+#define GL_PROXY_TEXTURE_1D 0x8063
+#define GL_PROXY_TEXTURE_2D 0x8064
+#define GL_TEXTURE_PRIORITY 0x8066
+#define GL_TEXTURE_RESIDENT 0x8067
+#define GL_TEXTURE_BINDING_1D 0x8068
+#define GL_TEXTURE_BINDING_2D 0x8069
+#define GL_TEXTURE_INTERNAL_FORMAT 0x1003
+#define GL_ALPHA4 0x803B
+#define GL_ALPHA8 0x803C
+#define GL_ALPHA12 0x803D
+#define GL_ALPHA16 0x803E
+#define GL_LUMINANCE4 0x803F
+#define GL_LUMINANCE8 0x8040
+#define GL_LUMINANCE12 0x8041
+#define GL_LUMINANCE16 0x8042
+#define GL_LUMINANCE4_ALPHA4 0x8043
+#define GL_LUMINANCE6_ALPHA2 0x8044
+#define GL_LUMINANCE8_ALPHA8 0x8045
+#define GL_LUMINANCE12_ALPHA4 0x8046
+#define GL_LUMINANCE12_ALPHA12 0x8047
+#define GL_LUMINANCE16_ALPHA16 0x8048
+#define GL_INTENSITY 0x8049
+#define GL_INTENSITY4 0x804A
+#define GL_INTENSITY8 0x804B
+#define GL_INTENSITY12 0x804C
+#define GL_INTENSITY16 0x804D
+#define GL_R3_G3_B2 0x2A10
+#define GL_RGB4 0x804F
+#define GL_RGB5 0x8050
+#define GL_RGB8 0x8051
+#define GL_RGB10 0x8052
+#define GL_RGB12 0x8053
+#define GL_RGB16 0x8054
+#define GL_RGBA2 0x8055
+#define GL_RGBA4 0x8056
+#define GL_RGB5_A1 0x8057
+#define GL_RGBA8 0x8058
+#define GL_RGB10_A2 0x8059
+#define GL_RGBA12 0x805A
+#define GL_RGBA16 0x805B
+#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001
+#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002
+#define GL_ALL_CLIENT_ATTRIB_BITS 0xFFFFFFFF
+#define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF
+
+typedef void (APIENTRYP PFNDOLCLEARINDEXPROC) ( GLfloat c );
+typedef void (APIENTRYP PFNDOLCLEARCOLORPROC) ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha );
+typedef void (APIENTRYP PFNDOLCLEARPROC) ( GLbitfield mask );
+typedef void (APIENTRYP PFNDOLINDEXMASKPROC) ( GLuint mask );
+typedef void (APIENTRYP PFNDOLCOLORMASKPROC) ( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha );
+typedef void (APIENTRYP PFNDOLALPHAFUNCPROC) ( GLenum func, GLclampf ref );
+typedef void (APIENTRYP PFNDOLBLENDFUNCPROC) ( GLenum sfactor, GLenum dfactor );
+typedef void (APIENTRYP PFNDOLLOGICOPPROC) ( GLenum opcode );
+typedef void (APIENTRYP PFNDOLCULLFACEPROC) ( GLenum mode );
+typedef void (APIENTRYP PFNDOLFRONTFACEPROC) ( GLenum mode );
+typedef void (APIENTRYP PFNDOLPOINTSIZEPROC) ( GLfloat size );
+typedef void (APIENTRYP PFNDOLLINEWIDTHPROC) ( GLfloat width );
+typedef void (APIENTRYP PFNDOLLINESTIPPLEPROC) ( GLint factor, GLushort pattern );
+typedef void (APIENTRYP PFNDOLPOLYGONMODEPROC) ( GLenum face, GLenum mode );
+typedef void (APIENTRYP PFNDOLPOLYGONOFFSETPROC) ( GLfloat factor, GLfloat units );
+typedef void (APIENTRYP PFNDOLPOLYGONSTIPPLEPROC) ( const GLubyte *mask );
+typedef void (APIENTRYP PFNDOLGETPOLYGONSTIPPLEPROC) ( GLubyte *mask );
+typedef void (APIENTRYP PFNDOLEDGEFLAGPROC) ( GLboolean flag );
+typedef void (APIENTRYP PFNDOLEDGEFLAGVPROC) ( const GLboolean *flag );
+typedef void (APIENTRYP PFNDOLSCISSORPROC) ( GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNDOLCLIPPLANEPROC) ( GLenum plane, const GLdouble *equation );
+typedef void (APIENTRYP PFNDOLGETCLIPPLANEPROC) ( GLenum plane, GLdouble *equation );
+typedef void (APIENTRYP PFNDOLDRAWBUFFERPROC) ( GLenum mode );
+typedef void (APIENTRYP PFNDOLREADBUFFERPROC) ( GLenum mode );
+typedef void (APIENTRYP PFNDOLENABLEPROC) ( GLenum cap );
+typedef void (APIENTRYP PFNDOLDISABLEPROC) ( GLenum cap );
+typedef GLboolean (APIENTRYP PFNDOLISENABLEDPROC) ( GLenum cap );
+typedef void (APIENTRYP PFNDOLENABLECLIENTSTATEPROC) ( GLenum cap ); /* 1.1 */
+typedef void (APIENTRYP PFNDOLDISABLECLIENTSTATEPROC) ( GLenum cap ); /* 1.1 */
+typedef void (APIENTRYP PFNDOLGETBOOLEANVPROC) ( GLenum pname, GLboolean *params );
+typedef void (APIENTRYP PFNDOLGETDOUBLEVPROC) ( GLenum pname, GLdouble *params );
+typedef void (APIENTRYP PFNDOLGETFLOATVPROC) ( GLenum pname, GLfloat *params );
+typedef void (APIENTRYP PFNDOLGETINTEGERVPROC) ( GLenum pname, GLint *params );
+typedef void (APIENTRYP PFNDOLPUSHATTRIBPROC) ( GLbitfield mask );
+typedef void (APIENTRYP PFNDOLPOPATTRIBPROC) ( void );
+typedef void (APIENTRYP PFNDOLPUSHCLIENTATTRIBPROC) ( GLbitfield mask ); /* 1.1 */
+typedef void (APIENTRYP PFNDOLPOPCLIENTATTRIBPROC) ( void ); /* 1.1 */
+typedef GLint (APIENTRYP PFNDOLRENDERMODEPROC) ( GLenum mode );
+typedef GLenum (APIENTRYP PFNDOLGETERRORPROC) ( void );
+typedef const GLubyte* (APIENTRYP PFNDOLGETSTRINGPROC) ( GLenum name );
+typedef void (APIENTRYP PFNDOLFINISHPROC) ( void );
+typedef void (APIENTRYP PFNDOLFLUSHPROC) ( void );
+typedef void (APIENTRYP PFNDOLHINTPROC) ( GLenum target, GLenum mode );
+typedef void (APIENTRYP PFNDOLCLEARDEPTHPROC) ( GLclampd depth );
+typedef void (APIENTRYP PFNDOLDEPTHFUNCPROC) ( GLenum func );
+typedef void (APIENTRYP PFNDOLDEPTHMASKPROC) ( GLboolean flag );
+typedef void (APIENTRYP PFNDOLDEPTHRANGEPROC) ( GLclampd near_val, GLclampd far_val );
+typedef void (APIENTRYP PFNDOLCLEARACCUMPROC) ( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha );
+typedef void (APIENTRYP PFNDOLACCUMPROC) ( GLenum op, GLfloat value );
+typedef void (APIENTRYP PFNDOLMATRIXMODEPROC) ( GLenum mode );
+typedef void (APIENTRYP PFNDOLORTHOPROC) ( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val );
+typedef void (APIENTRYP PFNDOLFRUSTUMPROC) ( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val );
+typedef void (APIENTRYP PFNDOLVIEWPORTPROC) ( GLint x, GLint y, GLsizei width, GLsizei height );
+typedef void (APIENTRYP PFNDOLPUSHMATRIXPROC) ( void );
+typedef void (APIENTRYP PFNDOLPOPMATRIXPROC) ( void );
+typedef void (APIENTRYP PFNDOLLOADIDENTITYPROC) ( void );
+typedef void (APIENTRYP PFNDOLLOADMATRIXDPROC) ( const GLdouble *m );
+typedef void (APIENTRYP PFNDOLLOADMATRIXFPROC) ( const GLfloat *m );
+typedef void (APIENTRYP PFNDOLMULTMATRIXDPROC) ( const GLdouble *m );
+typedef void (APIENTRYP PFNDOLMULTMATRIXFPROC) ( const GLfloat *m );
+typedef void (APIENTRYP PFNDOLROTATEDPROC) ( GLdouble angle, GLdouble x, GLdouble y, GLdouble z );
+typedef void (APIENTRYP PFNDOLROTATEFPROC) ( GLfloat angle, GLfloat x, GLfloat y, GLfloat z );
+typedef void (APIENTRYP PFNDOLSCALEDPROC) ( GLdouble x, GLdouble y, GLdouble z );
+typedef void (APIENTRYP PFNDOLSCALEFPROC) ( GLfloat x, GLfloat y, GLfloat z );
+typedef void (APIENTRYP PFNDOLTRANSLATEDPROC) ( GLdouble x, GLdouble y, GLdouble z );
+typedef void (APIENTRYP PFNDOLTRANSLATEFPROC) ( GLfloat x, GLfloat y, GLfloat z );
+typedef GLboolean (APIENTRYP PFNDOLISLISTPROC) ( GLuint list );
+typedef void (APIENTRYP PFNDOLDELETELISTSPROC) ( GLuint list, GLsizei range );
+typedef GLuint (APIENTRYP PFNDOLGENLISTSPROC) ( GLsizei range );
+typedef void (APIENTRYP PFNDOLNEWLISTPROC) ( GLuint list, GLenum mode );
+typedef void (APIENTRYP PFNDOLENDLISTPROC) ( void );
+typedef void (APIENTRYP PFNDOLCALLLISTPROC) ( GLuint list );
+typedef void (APIENTRYP PFNDOLCALLLISTSPROC) ( GLsizei n, GLenum type, const GLvoid *lists );
+typedef void (APIENTRYP PFNDOLLISTBASEPROC) ( GLuint base );
+typedef void (APIENTRYP PFNDOLBEGINPROC) ( GLenum mode );
+typedef void (APIENTRYP PFNDOLENDPROC) ( void );
+typedef void (APIENTRYP PFNDOLVERTEX2DPROC) ( GLdouble x, GLdouble y );
+typedef void (APIENTRYP PFNDOLVERTEX2FPROC) ( GLfloat x, GLfloat y );
+typedef void (APIENTRYP PFNDOLVERTEX2IPROC) ( GLint x, GLint y );
+typedef void (APIENTRYP PFNDOLVERTEX2SPROC) ( GLshort x, GLshort y );
+typedef void (APIENTRYP PFNDOLVERTEX3DPROC) ( GLdouble x, GLdouble y, GLdouble z );
+typedef void (APIENTRYP PFNDOLVERTEX3FPROC) ( GLfloat x, GLfloat y, GLfloat z );
+typedef void (APIENTRYP PFNDOLVERTEX3IPROC) ( GLint x, GLint y, GLint z );
+typedef void (APIENTRYP PFNDOLVERTEX3SPROC) ( GLshort x, GLshort y, GLshort z );
+typedef void (APIENTRYP PFNDOLVERTEX4DPROC) ( GLdouble x, GLdouble y, GLdouble z, GLdouble w );
+typedef void (APIENTRYP PFNDOLVERTEX4FPROC) ( GLfloat x, GLfloat y, GLfloat z, GLfloat w );
+typedef void (APIENTRYP PFNDOLVERTEX4IPROC) ( GLint x, GLint y, GLint z, GLint w );
+typedef void (APIENTRYP PFNDOLVERTEX4SPROC) ( GLshort x, GLshort y, GLshort z, GLshort w );
+typedef void (APIENTRYP PFNDOLVERTEX2DVPROC) ( const GLdouble *v );
+typedef void (APIENTRYP PFNDOLVERTEX2FVPROC) ( const GLfloat *v );
+typedef void (APIENTRYP PFNDOLVERTEX2IVPROC) ( const GLint *v );
+typedef void (APIENTRYP PFNDOLVERTEX2SVPROC) ( const GLshort *v );
+typedef void (APIENTRYP PFNDOLVERTEX3DVPROC) ( const GLdouble *v );
+typedef void (APIENTRYP PFNDOLVERTEX3FVPROC) ( const GLfloat *v );
+typedef void (APIENTRYP PFNDOLVERTEX3IVPROC) ( const GLint *v );
+typedef void (APIENTRYP PFNDOLVERTEX3SVPROC) ( const GLshort *v );
+typedef void (APIENTRYP PFNDOLVERTEX4DVPROC) ( const GLdouble *v );
+typedef void (APIENTRYP PFNDOLVERTEX4FVPROC) ( const GLfloat *v );
+typedef void (APIENTRYP PFNDOLVERTEX4IVPROC) ( const GLint *v );
+typedef void (APIENTRYP PFNDOLVERTEX4SVPROC) ( const GLshort *v );
+typedef void (APIENTRYP PFNDOLNORMAL3BPROC) ( GLbyte nx, GLbyte ny, GLbyte nz );
+typedef void (APIENTRYP PFNDOLNORMAL3DPROC) ( GLdouble nx, GLdouble ny, GLdouble nz );
+typedef void (APIENTRYP PFNDOLNORMAL3FPROC) ( GLfloat nx, GLfloat ny, GLfloat nz );
+typedef void (APIENTRYP PFNDOLNORMAL3IPROC) ( GLint nx, GLint ny, GLint nz );
+typedef void (APIENTRYP PFNDOLNORMAL3SPROC) ( GLshort nx, GLshort ny, GLshort nz );
+typedef void (APIENTRYP PFNDOLNORMAL3BVPROC) ( const GLbyte *v );
+typedef void (APIENTRYP PFNDOLNORMAL3DVPROC) ( const GLdouble *v );
+typedef void (APIENTRYP PFNDOLNORMAL3FVPROC) ( const GLfloat *v );
+typedef void (APIENTRYP PFNDOLNORMAL3IVPROC) ( const GLint *v );
+typedef void (APIENTRYP PFNDOLNORMAL3SVPROC) ( const GLshort *v );
+typedef void (APIENTRYP PFNDOLINDEXDPROC) ( GLdouble c );
+typedef void (APIENTRYP PFNDOLINDEXFPROC) ( GLfloat c );
+typedef void (APIENTRYP PFNDOLINDEXIPROC) ( GLint c );
+typedef void (APIENTRYP PFNDOLINDEXSPROC) ( GLshort c );
+typedef void (APIENTRYP PFNDOLINDEXUBPROC) ( GLubyte c ); /* 1.1 */
+typedef void (APIENTRYP PFNDOLINDEXDVPROC) ( const GLdouble *c );
+typedef void (APIENTRYP PFNDOLINDEXFVPROC) ( const GLfloat *c );
+typedef void (APIENTRYP PFNDOLINDEXIVPROC) ( const GLint *c );
+typedef void (APIENTRYP PFNDOLINDEXSVPROC) ( const GLshort *c );
+typedef void (APIENTRYP PFNDOLINDEXUBVPROC) ( const GLubyte *c ); /* 1.1 */
+typedef void (APIENTRYP PFNDOLCOLOR3BPROC) ( GLbyte red, GLbyte green, GLbyte blue );
+typedef void (APIENTRYP PFNDOLCOLOR3DPROC) ( GLdouble red, GLdouble green, GLdouble blue );
+typedef void (APIENTRYP PFNDOLCOLOR3FPROC) ( GLfloat red, GLfloat green, GLfloat blue );
+typedef void (APIENTRYP PFNDOLCOLOR3IPROC) ( GLint red, GLint green, GLint blue );
+typedef void (APIENTRYP PFNDOLCOLOR3SPROC) ( GLshort red, GLshort green, GLshort blue );
+typedef void (APIENTRYP PFNDOLCOLOR3UBPROC) ( GLubyte red, GLubyte green, GLubyte blue );
+typedef void (APIENTRYP PFNDOLCOLOR3UIPROC) ( GLuint red, GLuint green, GLuint blue );
+typedef void (APIENTRYP PFNDOLCOLOR3USPROC) ( GLushort red, GLushort green, GLushort blue );
+typedef void (APIENTRYP PFNDOLCOLOR4BPROC) ( GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha );
+typedef void (APIENTRYP PFNDOLCOLOR4DPROC) ( GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha );
+typedef void (APIENTRYP PFNDOLCOLOR4FPROC) ( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha );
+typedef void (APIENTRYP PFNDOLCOLOR4IPROC) ( GLint red, GLint green, GLint blue, GLint alpha );
+typedef void (APIENTRYP PFNDOLCOLOR4SPROC) ( GLshort red, GLshort green, GLshort blue, GLshort alpha );
+typedef void (APIENTRYP PFNDOLCOLOR4UBPROC) ( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha );
+typedef void (APIENTRYP PFNDOLCOLOR4UIPROC) ( GLuint red, GLuint green, GLuint blue, GLuint alpha );
+typedef void (APIENTRYP PFNDOLCOLOR4USPROC) ( GLushort red, GLushort green, GLushort blue, GLushort alpha );
+typedef void (APIENTRYP PFNDOLCOLOR3BVPROC) ( const GLbyte *v );
+typedef void (APIENTRYP PFNDOLCOLOR3DVPROC) ( const GLdouble *v );
+typedef void (APIENTRYP PFNDOLCOLOR3FVPROC) ( const GLfloat *v );
+typedef void (APIENTRYP PFNDOLCOLOR3IVPROC) ( const GLint *v );
+typedef void (APIENTRYP PFNDOLCOLOR3SVPROC) ( const GLshort *v );
+typedef void (APIENTRYP PFNDOLCOLOR3UBVPROC) ( const GLubyte *v );
+typedef void (APIENTRYP PFNDOLCOLOR3UIVPROC) ( const GLuint *v );
+typedef void (APIENTRYP PFNDOLCOLOR3USVPROC) ( const GLushort *v );
+typedef void (APIENTRYP PFNDOLCOLOR4BVPROC) ( const GLbyte *v );
+typedef void (APIENTRYP PFNDOLCOLOR4DVPROC) ( const GLdouble *v );
+typedef void (APIENTRYP PFNDOLCOLOR4FVPROC) ( const GLfloat *v );
+typedef void (APIENTRYP PFNDOLCOLOR4IVPROC) ( const GLint *v );
+typedef void (APIENTRYP PFNDOLCOLOR4SVPROC) ( const GLshort *v );
+typedef void (APIENTRYP PFNDOLCOLOR4UBVPROC) ( const GLubyte *v );
+typedef void (APIENTRYP PFNDOLCOLOR4UIVPROC) ( const GLuint *v );
+typedef void (APIENTRYP PFNDOLCOLOR4USVPROC) ( const GLushort *v );
+typedef void (APIENTRYP PFNDOLTEXCOORD1DPROC) ( GLdouble s );
+typedef void (APIENTRYP PFNDOLTEXCOORD1FPROC) ( GLfloat s );
+typedef void (APIENTRYP PFNDOLTEXCOORD1IPROC) ( GLint s );
+typedef void (APIENTRYP PFNDOLTEXCOORD1SPROC) ( GLshort s );
+typedef void (APIENTRYP PFNDOLTEXCOORD2DPROC) ( GLdouble s, GLdouble t );
+typedef void (APIENTRYP PFNDOLTEXCOORD2FPROC) ( GLfloat s, GLfloat t );
+typedef void (APIENTRYP PFNDOLTEXCOORD2IPROC) ( GLint s, GLint t );
+typedef void (APIENTRYP PFNDOLTEXCOORD2SPROC) ( GLshort s, GLshort t );
+typedef void (APIENTRYP PFNDOLTEXCOORD3DPROC) ( GLdouble s, GLdouble t, GLdouble r );
+typedef void (APIENTRYP PFNDOLTEXCOORD3FPROC) ( GLfloat s, GLfloat t, GLfloat r );
+typedef void (APIENTRYP PFNDOLTEXCOORD3IPROC) ( GLint s, GLint t, GLint r );
+typedef void (APIENTRYP PFNDOLTEXCOORD3SPROC) ( GLshort s, GLshort t, GLshort r );
+typedef void (APIENTRYP PFNDOLTEXCOORD4DPROC) ( GLdouble s, GLdouble t, GLdouble r, GLdouble q );
+typedef void (APIENTRYP PFNDOLTEXCOORD4FPROC) ( GLfloat s, GLfloat t, GLfloat r, GLfloat q );
+typedef void (APIENTRYP PFNDOLTEXCOORD4IPROC) ( GLint s, GLint t, GLint r, GLint q );
+typedef void (APIENTRYP PFNDOLTEXCOORD4SPROC) ( GLshort s, GLshort t, GLshort r, GLshort q );
+typedef void (APIENTRYP PFNDOLTEXCOORD1DVPROC) ( const GLdouble *v );
+typedef void (APIENTRYP PFNDOLTEXCOORD1FVPROC) ( const GLfloat *v );
+typedef void (APIENTRYP PFNDOLTEXCOORD1IVPROC) ( const GLint *v );
+typedef void (APIENTRYP PFNDOLTEXCOORD1SVPROC) ( const GLshort *v );
+typedef void (APIENTRYP PFNDOLTEXCOORD2DVPROC) ( const GLdouble *v );
+typedef void (APIENTRYP PFNDOLTEXCOORD2FVPROC) ( const GLfloat *v );
+typedef void (APIENTRYP PFNDOLTEXCOORD2IVPROC) ( const GLint *v );
+typedef void (APIENTRYP PFNDOLTEXCOORD2SVPROC) ( const GLshort *v );
+typedef void (APIENTRYP PFNDOLTEXCOORD3DVPROC) ( const GLdouble *v );
+typedef void (APIENTRYP PFNDOLTEXCOORD3FVPROC) ( const GLfloat *v );
+typedef void (APIENTRYP PFNDOLTEXCOORD3IVPROC) ( const GLint *v );
+typedef void (APIENTRYP PFNDOLTEXCOORD3SVPROC) ( const GLshort *v );
+typedef void (APIENTRYP PFNDOLTEXCOORD4DVPROC) ( const GLdouble *v );
+typedef void (APIENTRYP PFNDOLTEXCOORD4FVPROC) ( const GLfloat *v );
+typedef void (APIENTRYP PFNDOLTEXCOORD4IVPROC) ( const GLint *v );
+typedef void (APIENTRYP PFNDOLTEXCOORD4SVPROC) ( const GLshort *v );
+typedef void (APIENTRYP PFNDOLRASTERPOS2DPROC) ( GLdouble x, GLdouble y );
+typedef void (APIENTRYP PFNDOLRASTERPOS2FPROC) ( GLfloat x, GLfloat y );
+typedef void (APIENTRYP PFNDOLRASTERPOS2IPROC) ( GLint x, GLint y );
+typedef void (APIENTRYP PFNDOLRASTERPOS2SPROC) ( GLshort x, GLshort y );
+typedef void (APIENTRYP PFNDOLRASTERPOS3DPROC) ( GLdouble x, GLdouble y, GLdouble z );
+typedef void (APIENTRYP PFNDOLRASTERPOS3FPROC) ( GLfloat x, GLfloat y, GLfloat z );
+typedef void (APIENTRYP PFNDOLRASTERPOS3IPROC) ( GLint x, GLint y, GLint z );
+typedef void (APIENTRYP PFNDOLRASTERPOS3SPROC) ( GLshort x, GLshort y, GLshort z );
+typedef void (APIENTRYP PFNDOLRASTERPOS4DPROC) ( GLdouble x, GLdouble y, GLdouble z, GLdouble w );
+typedef void (APIENTRYP PFNDOLRASTERPOS4FPROC) ( GLfloat x, GLfloat y, GLfloat z, GLfloat w );
+typedef void (APIENTRYP PFNDOLRASTERPOS4IPROC) ( GLint x, GLint y, GLint z, GLint w );
+typedef void (APIENTRYP PFNDOLRASTERPOS4SPROC) ( GLshort x, GLshort y, GLshort z, GLshort w );
+typedef void (APIENTRYP PFNDOLRASTERPOS2DVPROC) ( const GLdouble *v );
+typedef void (APIENTRYP PFNDOLRASTERPOS2FVPROC) ( const GLfloat *v );
+typedef void (APIENTRYP PFNDOLRASTERPOS2IVPROC) ( const GLint *v );
+typedef void (APIENTRYP PFNDOLRASTERPOS2SVPROC) ( const GLshort *v );
+typedef void (APIENTRYP PFNDOLRASTERPOS3DVPROC) ( const GLdouble *v );
+typedef void (APIENTRYP PFNDOLRASTERPOS3FVPROC) ( const GLfloat *v );
+typedef void (APIENTRYP PFNDOLRASTERPOS3IVPROC) ( const GLint *v );
+typedef void (APIENTRYP PFNDOLRASTERPOS3SVPROC) ( const GLshort *v );
+typedef void (APIENTRYP PFNDOLRASTERPOS4DVPROC) ( const GLdouble *v );
+typedef void (APIENTRYP PFNDOLRASTERPOS4FVPROC) ( const GLfloat *v );
+typedef void (APIENTRYP PFNDOLRASTERPOS4IVPROC) ( const GLint *v );
+typedef void (APIENTRYP PFNDOLRASTERPOS4SVPROC) ( const GLshort *v );
+typedef void (APIENTRYP PFNDOLRECTDPROC) ( GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2 );
+typedef void (APIENTRYP PFNDOLRECTFPROC) ( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 );
+typedef void (APIENTRYP PFNDOLRECTIPROC) ( GLint x1, GLint y1, GLint x2, GLint y2 );
+typedef void (APIENTRYP PFNDOLRECTSPROC) ( GLshort x1, GLshort y1, GLshort x2, GLshort y2 );
+typedef void (APIENTRYP PFNDOLRECTDVPROC) ( const GLdouble *v1, const GLdouble *v2 );
+typedef void (APIENTRYP PFNDOLRECTFVPROC) ( const GLfloat *v1, const GLfloat *v2 );
+typedef void (APIENTRYP PFNDOLRECTIVPROC) ( const GLint *v1, const GLint *v2 );
+typedef void (APIENTRYP PFNDOLRECTSVPROC) ( const GLshort *v1, const GLshort *v2 );
+typedef void (APIENTRYP PFNDOLVERTEXPOINTERPROC) ( GLint size, GLenum type, GLsizei stride, const GLvoid *ptr );
+typedef void (APIENTRYP PFNDOLNORMALPOINTERPROC) ( GLenum type, GLsizei stride, const GLvoid *ptr );
+typedef void (APIENTRYP PFNDOLCOLORPOINTERPROC) ( GLint size, GLenum type, GLsizei stride, const GLvoid *ptr );
+typedef void (APIENTRYP PFNDOLINDEXPOINTERPROC) ( GLenum type, GLsizei stride, const GLvoid *ptr );
+typedef void (APIENTRYP PFNDOLTEXCOORDPOINTERPROC) ( GLint size, GLenum type, GLsizei stride, const GLvoid *ptr );
+typedef void (APIENTRYP PFNDOLEDGEFLAGPOINTERPROC) ( GLsizei stride, const GLvoid *ptr );
+typedef void (APIENTRYP PFNDOLGETPOINTERVPROC) ( GLenum pname, GLvoid **params );
+typedef void (APIENTRYP PFNDOLARRAYELEMENTPROC) ( GLint i );
+typedef void (APIENTRYP PFNDOLDRAWARRAYSPROC) ( GLenum mode, GLint first, GLsizei count );
+typedef void (APIENTRYP PFNDOLDRAWELEMENTSPROC) ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices );
+typedef void (APIENTRYP PFNDOLINTERLEAVEDARRAYSPROC) ( GLenum format, GLsizei stride, const GLvoid *pointer );
+typedef void (APIENTRYP PFNDOLSHADEMODELPROC) ( GLenum mode );
+typedef void (APIENTRYP PFNDOLLIGHTFPROC) ( GLenum light, GLenum pname, GLfloat param );
+typedef void (APIENTRYP PFNDOLLIGHTIPROC) ( GLenum light, GLenum pname, GLint param );
+typedef void (APIENTRYP PFNDOLLIGHTFVPROC) ( GLenum light, GLenum pname, const GLfloat *params );
+typedef void (APIENTRYP PFNDOLLIGHTIVPROC) ( GLenum light, GLenum pname, const GLint *params );
+typedef void (APIENTRYP PFNDOLGETLIGHTFVPROC) ( GLenum light, GLenum pname, GLfloat *params );
+typedef void (APIENTRYP PFNDOLGETLIGHTIVPROC) ( GLenum light, GLenum pname, GLint *params );
+typedef void (APIENTRYP PFNDOLLIGHTMODELFPROC) ( GLenum pname, GLfloat param );
+typedef void (APIENTRYP PFNDOLLIGHTMODELIPROC) ( GLenum pname, GLint param );
+typedef void (APIENTRYP PFNDOLLIGHTMODELFVPROC) ( GLenum pname, const GLfloat *params );
+typedef void (APIENTRYP PFNDOLLIGHTMODELIVPROC) ( GLenum pname, const GLint *params );
+typedef void (APIENTRYP PFNDOLMATERIALFPROC) ( GLenum face, GLenum pname, GLfloat param );
+typedef void (APIENTRYP PFNDOLMATERIALIPROC) ( GLenum face, GLenum pname, GLint param );
+typedef void (APIENTRYP PFNDOLMATERIALFVPROC) ( GLenum face, GLenum pname, const GLfloat *params );
+typedef void (APIENTRYP PFNDOLMATERIALIVPROC) ( GLenum face, GLenum pname, const GLint *params );
+typedef void (APIENTRYP PFNDOLGETMATERIALFVPROC) ( GLenum face, GLenum pname, GLfloat *params );
+typedef void (APIENTRYP PFNDOLGETMATERIALIVPROC) ( GLenum face, GLenum pname, GLint *params );
+typedef void (APIENTRYP PFNDOLCOLORMATERIALPROC) ( GLenum face, GLenum mode );
+typedef void (APIENTRYP PFNDOLPIXELZOOMPROC) ( GLfloat xfactor, GLfloat yfactor );
+typedef void (APIENTRYP PFNDOLPIXELSTOREFPROC) ( GLenum pname, GLfloat param );
+typedef void (APIENTRYP PFNDOLPIXELSTOREIPROC) ( GLenum pname, GLint param );
+typedef void (APIENTRYP PFNDOLPIXELTRANSFERFPROC) ( GLenum pname, GLfloat param );
+typedef void (APIENTRYP PFNDOLPIXELTRANSFERIPROC) ( GLenum pname, GLint param );
+typedef void (APIENTRYP PFNDOLPIXELMAPFVPROC) ( GLenum map, GLsizei mapsize, const GLfloat *values );
+typedef void (APIENTRYP PFNDOLPIXELMAPUIVPROC) ( GLenum map, GLsizei mapsize, const GLuint *values );
+typedef void (APIENTRYP PFNDOLPIXELMAPUSVPROC) ( GLenum map, GLsizei mapsize, const GLushort *values );
+typedef void (APIENTRYP PFNDOLGETPIXELMAPFVPROC) ( GLenum map, GLfloat *values );
+typedef void (APIENTRYP PFNDOLGETPIXELMAPUIVPROC) ( GLenum map, GLuint *values );
+typedef void (APIENTRYP PFNDOLGETPIXELMAPUSVPROC) ( GLenum map, GLushort *values );
+typedef void (APIENTRYP PFNDOLBITMAPPROC) ( GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap );
+typedef void (APIENTRYP PFNDOLREADPIXELSPROC) ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels );
+typedef void (APIENTRYP PFNDOLDRAWPIXELSPROC) ( GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels );
+typedef void (APIENTRYP PFNDOLCOPYPIXELSPROC) ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum type );
+typedef void (APIENTRYP PFNDOLSTENCILFUNCPROC) ( GLenum func, GLint ref, GLuint mask );
+typedef void (APIENTRYP PFNDOLSTENCILMASKPROC) ( GLuint mask );
+typedef void (APIENTRYP PFNDOLSTENCILOPPROC) ( GLenum fail, GLenum zfail, GLenum zpass );
+typedef void (APIENTRYP PFNDOLCLEARSTENCILPROC) ( GLint s );
+typedef void (APIENTRYP PFNDOLTEXGENDPROC) ( GLenum coord, GLenum pname, GLdouble param );
+typedef void (APIENTRYP PFNDOLTEXGENFPROC) ( GLenum coord, GLenum pname, GLfloat param );
+typedef void (APIENTRYP PFNDOLTEXGENIPROC) ( GLenum coord, GLenum pname, GLint param );
+typedef void (APIENTRYP PFNDOLTEXGENDVPROC) ( GLenum coord, GLenum pname, const GLdouble *params );
+typedef void (APIENTRYP PFNDOLTEXGENFVPROC) ( GLenum coord, GLenum pname, const GLfloat *params );
+typedef void (APIENTRYP PFNDOLTEXGENIVPROC) ( GLenum coord, GLenum pname, const GLint *params );
+typedef void (APIENTRYP PFNDOLGETTEXGENDVPROC) ( GLenum coord, GLenum pname, GLdouble *params );
+typedef void (APIENTRYP PFNDOLGETTEXGENFVPROC) ( GLenum coord, GLenum pname, GLfloat *params );
+typedef void (APIENTRYP PFNDOLGETTEXGENIVPROC) ( GLenum coord, GLenum pname, GLint *params );
+typedef void (APIENTRYP PFNDOLTEXENVFPROC) ( GLenum target, GLenum pname, GLfloat param );
+typedef void (APIENTRYP PFNDOLTEXENVIPROC) ( GLenum target, GLenum pname, GLint param );
+typedef void (APIENTRYP PFNDOLTEXENVFVPROC) ( GLenum target, GLenum pname, const GLfloat *params );
+typedef void (APIENTRYP PFNDOLTEXENVIVPROC) ( GLenum target, GLenum pname, const GLint *params );
+typedef void (APIENTRYP PFNDOLGETTEXENVFVPROC) ( GLenum target, GLenum pname, GLfloat *params );
+typedef void (APIENTRYP PFNDOLGETTEXENVIVPROC) ( GLenum target, GLenum pname, GLint *params );
+typedef void (APIENTRYP PFNDOLTEXPARAMETERFPROC) ( GLenum target, GLenum pname, GLfloat param );
+typedef void (APIENTRYP PFNDOLTEXPARAMETERIPROC) ( GLenum target, GLenum pname, GLint param );
+typedef void (APIENTRYP PFNDOLTEXPARAMETERFVPROC) ( GLenum target, GLenum pname, const GLfloat *params );
+typedef void (APIENTRYP PFNDOLTEXPARAMETERIVPROC) ( GLenum target, GLenum pname, const GLint *params );
+typedef void (APIENTRYP PFNDOLGETTEXPARAMETERFVPROC) ( GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNDOLGETTEXPARAMETERIVPROC) ( GLenum target, GLenum pname, GLint *params );
+typedef void (APIENTRYP PFNDOLGETTEXLEVELPARAMETERFVPROC) ( GLenum target, GLint level, GLenum pname, GLfloat *params );
+typedef void (APIENTRYP PFNDOLGETTEXLEVELPARAMETERIVPROC) ( GLenum target, GLint level, GLenum pname, GLint *params );
+typedef void (APIENTRYP PFNDOLTEXIMAGE1DPROC) ( GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels );
+typedef void (APIENTRYP PFNDOLTEXIMAGE2DPROC) ( GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels );
+typedef void (APIENTRYP PFNDOLGETTEXIMAGEPROC) ( GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels );
+typedef void (APIENTRYP PFNDOLGENTEXTURESPROC) ( GLsizei n, GLuint *textures );
+typedef void (APIENTRYP PFNDOLDELETETEXTURESPROC) ( GLsizei n, const GLuint *textures);
+typedef void (APIENTRYP PFNDOLBINDTEXTUREPROC) ( GLenum target, GLuint texture );
+typedef void (APIENTRYP PFNDOLPRIORITIZETEXTURESPROC) ( GLsizei n, const GLuint *textures, const GLclampf *priorities );
+typedef GLboolean (APIENTRYP PFNDOLARETEXTURESRESIDENTPROC) ( GLsizei n, const GLuint *textures, GLboolean *residences );
+typedef GLboolean (APIENTRYP PFNDOLISTEXTUREPROC) ( GLuint texture );
+typedef void (APIENTRYP PFNDOLTEXSUBIMAGE1DPROC) ( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels );
+typedef void (APIENTRYP PFNDOLTEXSUBIMAGE2DPROC) ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels );
+typedef void (APIENTRYP PFNDOLCOPYTEXIMAGE1DPROC) ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border );
+typedef void (APIENTRYP PFNDOLCOPYTEXIMAGE2DPROC) ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border );
+typedef void (APIENTRYP PFNDOLCOPYTEXSUBIMAGE1DPROC) ( GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width );
+typedef void (APIENTRYP PFNDOLCOPYTEXSUBIMAGE2DPROC) ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height );
+typedef void (APIENTRYP PFNDOLMAP1DPROC) ( GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points );
+typedef void (APIENTRYP PFNDOLMAP1FPROC) ( GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points );
+typedef void (APIENTRYP PFNDOLMAP2DPROC) ( GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points );
+typedef void (APIENTRYP PFNDOLMAP2FPROC) ( GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points );
+typedef void (APIENTRYP PFNDOLGETMAPDVPROC) ( GLenum target, GLenum query, GLdouble *v );
+typedef void (APIENTRYP PFNDOLGETMAPFVPROC) ( GLenum target, GLenum query, GLfloat *v );
+typedef void (APIENTRYP PFNDOLGETMAPIVPROC) ( GLenum target, GLenum query, GLint *v );
+typedef void (APIENTRYP PFNDOLEVALCOORD1DPROC) ( GLdouble u );
+typedef void (APIENTRYP PFNDOLEVALCOORD1FPROC) ( GLfloat u );
+typedef void (APIENTRYP PFNDOLEVALCOORD1DVPROC) ( const GLdouble *u );
+typedef void (APIENTRYP PFNDOLEVALCOORD1FVPROC) ( const GLfloat *u );
+typedef void (APIENTRYP PFNDOLEVALCOORD2DPROC) ( GLdouble u, GLdouble v );
+typedef void (APIENTRYP PFNDOLEVALCOORD2FPROC) ( GLfloat u, GLfloat v );
+typedef void (APIENTRYP PFNDOLEVALCOORD2DVPROC) ( const GLdouble *u );
+typedef void (APIENTRYP PFNDOLEVALCOORD2FVPROC) ( const GLfloat *u );
+typedef void (APIENTRYP PFNDOLMAPGRID1DPROC) ( GLint un, GLdouble u1, GLdouble u2 );
+typedef void (APIENTRYP PFNDOLMAPGRID1FPROC) ( GLint un, GLfloat u1, GLfloat u2 );
+typedef void (APIENTRYP PFNDOLMAPGRID2DPROC) ( GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2 );
+typedef void (APIENTRYP PFNDOLMAPGRID2FPROC) ( GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2 );
+typedef void (APIENTRYP PFNDOLEVALPOINT1PROC) ( GLint i );
+typedef void (APIENTRYP PFNDOLEVALPOINT2PROC) ( GLint i, GLint j );
+typedef void (APIENTRYP PFNDOLEVALMESH1PROC) ( GLenum mode, GLint i1, GLint i2 );
+typedef void (APIENTRYP PFNDOLEVALMESH2PROC) ( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 );
+typedef void (APIENTRYP PFNDOLFOGFPROC) ( GLenum pname, GLfloat param );
+typedef void (APIENTRYP PFNDOLFOGIPROC) ( GLenum pname, GLint param );
+typedef void (APIENTRYP PFNDOLFOGFVPROC) ( GLenum pname, const GLfloat *params );
+typedef void (APIENTRYP PFNDOLFOGIVPROC) ( GLenum pname, const GLint *params );
+typedef void (APIENTRYP PFNDOLFEEDBACKBUFFERPROC) ( GLsizei size, GLenum type, GLfloat *buffer );
+typedef void (APIENTRYP PFNDOLPASSTHROUGHPROC) ( GLfloat token );
+typedef void (APIENTRYP PFNDOLSELECTBUFFERPROC) ( GLsizei size, GLuint *buffer );
+typedef void (APIENTRYP PFNDOLINITNAMESPROC) ( void );
+typedef void (APIENTRYP PFNDOLLOADNAMEPROC) ( GLuint name );
+typedef void (APIENTRYP PFNDOLPUSHNAMEPROC) ( GLuint name );
+typedef void (APIENTRYP PFNDOLPOPNAMEPROC) ( void );
+
+extern PFNDOLCLEARINDEXPROC dolClearIndex;
+extern PFNDOLCLEARCOLORPROC dolClearColor;
+extern PFNDOLCLEARPROC dolClear;
+extern PFNDOLINDEXMASKPROC dolIndexMask;
+extern PFNDOLCOLORMASKPROC dolColorMask;
+extern PFNDOLALPHAFUNCPROC dolAlphaFunc;
+extern PFNDOLBLENDFUNCPROC dolBlendFunc;
+extern PFNDOLLOGICOPPROC dolLogicOp;
+extern PFNDOLCULLFACEPROC dolCullFace;
+extern PFNDOLFRONTFACEPROC dolFrontFace;
+extern PFNDOLPOINTSIZEPROC dolPointSize;
+extern PFNDOLLINEWIDTHPROC dolLineWidth;
+extern PFNDOLLINESTIPPLEPROC dolLineStipple;
+extern PFNDOLPOLYGONMODEPROC dolPolygonMode;
+extern PFNDOLPOLYGONOFFSETPROC dolPolygonOffset;
+extern PFNDOLPOLYGONSTIPPLEPROC dolPolygonStipple;
+extern PFNDOLGETPOLYGONSTIPPLEPROC dolGetPolygonStipple;
+extern PFNDOLEDGEFLAGPROC dolEdgeFlag;
+extern PFNDOLEDGEFLAGVPROC dolEdgeFlagv;
+extern PFNDOLSCISSORPROC dolScissor;
+extern PFNDOLCLIPPLANEPROC dolClipPlane;
+extern PFNDOLGETCLIPPLANEPROC dolGetClipPlane;
+extern PFNDOLDRAWBUFFERPROC dolDrawBuffer;
+extern PFNDOLREADBUFFERPROC dolReadBuffer;
+extern PFNDOLENABLEPROC dolEnable;
+extern PFNDOLDISABLEPROC dolDisable;
+extern PFNDOLISENABLEDPROC dolIsEnabled;
+extern PFNDOLENABLECLIENTSTATEPROC dolEnableClientState;
+extern PFNDOLDISABLECLIENTSTATEPROC dolDisableClientState;
+extern PFNDOLGETBOOLEANVPROC dolGetBooleanv;
+extern PFNDOLGETDOUBLEVPROC dolGetDoublev;
+extern PFNDOLGETFLOATVPROC dolGetFloatv;
+extern PFNDOLGETINTEGERVPROC dolGetIntegerv;
+extern PFNDOLPUSHATTRIBPROC dolPushAttrib;
+extern PFNDOLPOPATTRIBPROC dolPopAttrib;
+extern PFNDOLPUSHCLIENTATTRIBPROC dolPushClientAttrib;
+extern PFNDOLPOPCLIENTATTRIBPROC dolPopClientAttrib;
+extern PFNDOLRENDERMODEPROC dolRenderMode;
+extern PFNDOLGETERRORPROC dolGetError;
+extern PFNDOLGETSTRINGPROC dolGetString;
+extern PFNDOLFINISHPROC dolFinish;
+extern PFNDOLFLUSHPROC dolFlush;
+extern PFNDOLHINTPROC dolHint;
+extern PFNDOLCLEARDEPTHPROC dolClearDepth;
+extern PFNDOLDEPTHFUNCPROC dolDepthFunc;
+extern PFNDOLDEPTHMASKPROC dolDepthMask;
+extern PFNDOLDEPTHRANGEPROC dolDepthRange;
+extern PFNDOLCLEARACCUMPROC dolClearAccum;
+extern PFNDOLACCUMPROC dolAccum;
+extern PFNDOLMATRIXMODEPROC dolMatrixMode;
+extern PFNDOLORTHOPROC dolOrtho;
+extern PFNDOLFRUSTUMPROC dolFrustum;
+extern PFNDOLVIEWPORTPROC dolViewport;
+extern PFNDOLPUSHMATRIXPROC dolPushMatrix;
+extern PFNDOLPOPMATRIXPROC dolPopMatrix;
+extern PFNDOLLOADIDENTITYPROC dolLoadIdentity;
+extern PFNDOLLOADMATRIXDPROC dolLoadMatrixd;
+extern PFNDOLLOADMATRIXFPROC dolLoadMatrixf;
+extern PFNDOLMULTMATRIXDPROC dolMultMatrixd;
+extern PFNDOLMULTMATRIXFPROC dolMultMatrixf;
+extern PFNDOLROTATEDPROC dolRotated;
+extern PFNDOLROTATEFPROC dolRotatef;
+extern PFNDOLSCALEDPROC dolScaled;
+extern PFNDOLSCALEFPROC dolScalef;
+extern PFNDOLTRANSLATEDPROC dolTranslated;
+extern PFNDOLTRANSLATEFPROC dolTranslatef;
+extern PFNDOLISLISTPROC dolIsList;
+extern PFNDOLDELETELISTSPROC dolDeleteLists;
+extern PFNDOLGENLISTSPROC dolGenLists;
+extern PFNDOLNEWLISTPROC dolNewList;
+extern PFNDOLENDLISTPROC dolEndList;
+extern PFNDOLCALLLISTPROC dolCallList;
+extern PFNDOLCALLLISTSPROC dolCallLists;
+extern PFNDOLLISTBASEPROC dolListBase;
+extern PFNDOLBEGINPROC dolBegin;
+extern PFNDOLENDPROC dolEnd;
+extern PFNDOLVERTEX2DPROC dolVertex2d;
+extern PFNDOLVERTEX2FPROC dolVertex2f;
+extern PFNDOLVERTEX2IPROC dolVertex2i;
+extern PFNDOLVERTEX2SPROC dolVertex2s;
+extern PFNDOLVERTEX3DPROC dolVertex3d;
+extern PFNDOLVERTEX3FPROC dolVertex3f;
+extern PFNDOLVERTEX3IPROC dolVertex3i;
+extern PFNDOLVERTEX3SPROC dolVertex3s;
+extern PFNDOLVERTEX4DPROC dolVertex4d;
+extern PFNDOLVERTEX4FPROC dolVertex4f;
+extern PFNDOLVERTEX4IPROC dolVertex4i;
+extern PFNDOLVERTEX4SPROC dolVertex4s;
+extern PFNDOLVERTEX2DVPROC dolVertex2dv;
+extern PFNDOLVERTEX2FVPROC dolVertex2fv;
+extern PFNDOLVERTEX2IVPROC dolVertex2iv;
+extern PFNDOLVERTEX2SVPROC dolVertex2sv;
+extern PFNDOLVERTEX3DVPROC dolVertex3dv;
+extern PFNDOLVERTEX3FVPROC dolVertex3fv;
+extern PFNDOLVERTEX3IVPROC dolVertex3iv;
+extern PFNDOLVERTEX3SVPROC dolVertex3sv;
+extern PFNDOLVERTEX4DVPROC dolVertex4dv;
+extern PFNDOLVERTEX4FVPROC dolVertex4fv;
+extern PFNDOLVERTEX4IVPROC dolVertex4iv;
+extern PFNDOLVERTEX4SVPROC dolVertex4sv;
+extern PFNDOLNORMAL3BPROC dolNormal3b;
+extern PFNDOLNORMAL3DPROC dolNormal3d;
+extern PFNDOLNORMAL3FPROC dolNormal3f;
+extern PFNDOLNORMAL3IPROC dolNormal3i;
+extern PFNDOLNORMAL3SPROC dolNormal3s;
+extern PFNDOLNORMAL3BVPROC dolNormal3bv;
+extern PFNDOLNORMAL3DVPROC dolNormal3dv;
+extern PFNDOLNORMAL3FVPROC dolNormal3fv;
+extern PFNDOLNORMAL3IVPROC dolNormal3iv;
+extern PFNDOLNORMAL3SVPROC dolNormal3sv;
+extern PFNDOLINDEXDPROC dolIndexd;
+extern PFNDOLINDEXFPROC dolIndexf;
+extern PFNDOLINDEXIPROC dolIndexi;
+extern PFNDOLINDEXSPROC dolIndexs;
+extern PFNDOLINDEXUBPROC dolIndexub;
+extern PFNDOLINDEXDVPROC dolIndexdv;
+extern PFNDOLINDEXFVPROC dolIndexfv;
+extern PFNDOLINDEXIVPROC dolIndexiv;
+extern PFNDOLINDEXSVPROC dolIndexsv;
+extern PFNDOLINDEXUBVPROC dolIndexubv;
+extern PFNDOLCOLOR3BPROC dolColor3b;
+extern PFNDOLCOLOR3DPROC dolColor3d;
+extern PFNDOLCOLOR3FPROC dolColor3f;
+extern PFNDOLCOLOR3IPROC dolColor3i;
+extern PFNDOLCOLOR3SPROC dolColor3s;
+extern PFNDOLCOLOR3UBPROC dolColor3ub;
+extern PFNDOLCOLOR3UIPROC dolColor3ui;
+extern PFNDOLCOLOR3USPROC dolColor3us;
+extern PFNDOLCOLOR4BPROC dolColor4b;
+extern PFNDOLCOLOR4DPROC dolColor4d;
+extern PFNDOLCOLOR4FPROC dolColor4f;
+extern PFNDOLCOLOR4IPROC dolColor4i;
+extern PFNDOLCOLOR4SPROC dolColor4s;
+extern PFNDOLCOLOR4UBPROC dolColor4ub;
+extern PFNDOLCOLOR4UIPROC dolColor4ui;
+extern PFNDOLCOLOR4USPROC dolColor4us;
+extern PFNDOLCOLOR3BVPROC dolColor3bv;
+extern PFNDOLCOLOR3DVPROC dolColor3dv;
+extern PFNDOLCOLOR3FVPROC dolColor3fv;
+extern PFNDOLCOLOR3IVPROC dolColor3iv;
+extern PFNDOLCOLOR3SVPROC dolColor3sv;
+extern PFNDOLCOLOR3UBVPROC dolColor3ubv;
+extern PFNDOLCOLOR3UIVPROC dolColor3uiv;
+extern PFNDOLCOLOR3USVPROC dolColor3usv;
+extern PFNDOLCOLOR4BVPROC dolColor4bv;
+extern PFNDOLCOLOR4DVPROC dolColor4dv;
+extern PFNDOLCOLOR4FVPROC dolColor4fv;
+extern PFNDOLCOLOR4IVPROC dolColor4iv;
+extern PFNDOLCOLOR4SVPROC dolColor4sv;
+extern PFNDOLCOLOR4UBVPROC dolColor4ubv;
+extern PFNDOLCOLOR4UIVPROC dolColor4uiv;
+extern PFNDOLCOLOR4USVPROC dolColor4usv;
+extern PFNDOLTEXCOORD1DPROC dolTexCoord1d;
+extern PFNDOLTEXCOORD1FPROC dolTexCoord1f;
+extern PFNDOLTEXCOORD1IPROC dolTexCoord1i;
+extern PFNDOLTEXCOORD1SPROC dolTexCoord1s;
+extern PFNDOLTEXCOORD2DPROC dolTexCoord2d;
+extern PFNDOLTEXCOORD2FPROC dolTexCoord2f;
+extern PFNDOLTEXCOORD2IPROC dolTexCoord2i;
+extern PFNDOLTEXCOORD2SPROC dolTexCoord2s;
+extern PFNDOLTEXCOORD3DPROC dolTexCoord3d;
+extern PFNDOLTEXCOORD3FPROC dolTexCoord3f;
+extern PFNDOLTEXCOORD3IPROC dolTexCoord3i;
+extern PFNDOLTEXCOORD3SPROC dolTexCoord3s;
+extern PFNDOLTEXCOORD4DPROC dolTexCoord4d;
+extern PFNDOLTEXCOORD4FPROC dolTexCoord4f;
+extern PFNDOLTEXCOORD4IPROC dolTexCoord4i;
+extern PFNDOLTEXCOORD4SPROC dolTexCoord4s;
+extern PFNDOLTEXCOORD1DVPROC dolTexCoord1dv;
+extern PFNDOLTEXCOORD1FVPROC dolTexCoord1fv;
+extern PFNDOLTEXCOORD1IVPROC dolTexCoord1iv;
+extern PFNDOLTEXCOORD1SVPROC dolTexCoord1sv;
+extern PFNDOLTEXCOORD2DVPROC dolTexCoord2dv;
+extern PFNDOLTEXCOORD2FVPROC dolTexCoord2fv;
+extern PFNDOLTEXCOORD2IVPROC dolTexCoord2iv;
+extern PFNDOLTEXCOORD2SVPROC dolTexCoord2sv;
+extern PFNDOLTEXCOORD3DVPROC dolTexCoord3dv;
+extern PFNDOLTEXCOORD3FVPROC dolTexCoord3fv;
+extern PFNDOLTEXCOORD3IVPROC dolTexCoord3iv;
+extern PFNDOLTEXCOORD3SVPROC dolTexCoord3sv;
+extern PFNDOLTEXCOORD4DVPROC dolTexCoord4dv;
+extern PFNDOLTEXCOORD4FVPROC dolTexCoord4fv;
+extern PFNDOLTEXCOORD4IVPROC dolTexCoord4iv;
+extern PFNDOLTEXCOORD4SVPROC dolTexCoord4sv;
+extern PFNDOLRASTERPOS2DPROC dolRasterPos2d;
+extern PFNDOLRASTERPOS2FPROC dolRasterPos2f;
+extern PFNDOLRASTERPOS2IPROC dolRasterPos2i;
+extern PFNDOLRASTERPOS2SPROC dolRasterPos2s;
+extern PFNDOLRASTERPOS3DPROC dolRasterPos3d;
+extern PFNDOLRASTERPOS3FPROC dolRasterPos3f;
+extern PFNDOLRASTERPOS3IPROC dolRasterPos3i;
+extern PFNDOLRASTERPOS3SPROC dolRasterPos3s;
+extern PFNDOLRASTERPOS4DPROC dolRasterPos4d;
+extern PFNDOLRASTERPOS4FPROC dolRasterPos4f;
+extern PFNDOLRASTERPOS4IPROC dolRasterPos4i;
+extern PFNDOLRASTERPOS4SPROC dolRasterPos4s;
+extern PFNDOLRASTERPOS2DVPROC dolRasterPos2dv;
+extern PFNDOLRASTERPOS2FVPROC dolRasterPos2fv;
+extern PFNDOLRASTERPOS2IVPROC dolRasterPos2iv;
+extern PFNDOLRASTERPOS2SVPROC dolRasterPos2sv;
+extern PFNDOLRASTERPOS3DVPROC dolRasterPos3dv;
+extern PFNDOLRASTERPOS3FVPROC dolRasterPos3fv;
+extern PFNDOLRASTERPOS3IVPROC dolRasterPos3iv;
+extern PFNDOLRASTERPOS3SVPROC dolRasterPos3sv;
+extern PFNDOLRASTERPOS4DVPROC dolRasterPos4dv;
+extern PFNDOLRASTERPOS4FVPROC dolRasterPos4fv;
+extern PFNDOLRASTERPOS4IVPROC dolRasterPos4iv;
+extern PFNDOLRASTERPOS4SVPROC dolRasterPos4sv;
+extern PFNDOLRECTDPROC dolRectd;
+extern PFNDOLRECTFPROC dolRectf;
+extern PFNDOLRECTIPROC dolRecti;
+extern PFNDOLRECTSPROC dolRects;
+extern PFNDOLRECTDVPROC dolRectdv;
+extern PFNDOLRECTFVPROC dolRectfv;
+extern PFNDOLRECTIVPROC dolRectiv;
+extern PFNDOLRECTSVPROC dolRectsv;
+extern PFNDOLVERTEXPOINTERPROC dolVertexPointer;
+extern PFNDOLNORMALPOINTERPROC dolNormalPointer;
+extern PFNDOLCOLORPOINTERPROC dolColorPointer;
+extern PFNDOLINDEXPOINTERPROC dolIndexPointer;
+extern PFNDOLTEXCOORDPOINTERPROC dolTexCoordPointer;
+extern PFNDOLEDGEFLAGPOINTERPROC dolEdgeFlagPointer;
+extern PFNDOLGETPOINTERVPROC dolGetPointerv;
+extern PFNDOLARRAYELEMENTPROC dolArrayElement;
+extern PFNDOLDRAWARRAYSPROC dolDrawArrays;
+extern PFNDOLDRAWELEMENTSPROC dolDrawElements;
+extern PFNDOLINTERLEAVEDARRAYSPROC dolInterleavedArrays;
+extern PFNDOLSHADEMODELPROC dolShadeModel;
+extern PFNDOLLIGHTFPROC dolLightf;
+extern PFNDOLLIGHTIPROC dolLighti;
+extern PFNDOLLIGHTFVPROC dolLightfv;
+extern PFNDOLLIGHTIVPROC dolLightiv;
+extern PFNDOLGETLIGHTFVPROC dolGetLightfv;
+extern PFNDOLGETLIGHTIVPROC dolGetLightiv;
+extern PFNDOLLIGHTMODELFPROC dolLightModelf;
+extern PFNDOLLIGHTMODELIPROC dolLightModeli;
+extern PFNDOLLIGHTMODELFVPROC dolLightModelfv;
+extern PFNDOLLIGHTMODELIVPROC dolLightModeliv;
+extern PFNDOLMATERIALFPROC dolMaterialf;
+extern PFNDOLMATERIALIPROC dolMateriali;
+extern PFNDOLMATERIALFVPROC dolMaterialfv;
+extern PFNDOLMATERIALIVPROC dolMaterialiv;
+extern PFNDOLGETMATERIALFVPROC dolGetMaterialfv;
+extern PFNDOLGETMATERIALIVPROC dolGetMaterialiv;
+extern PFNDOLCOLORMATERIALPROC dolColorMaterial;
+extern PFNDOLPIXELZOOMPROC dolPixelZoom;
+extern PFNDOLPIXELSTOREFPROC dolPixelStoref;
+extern PFNDOLPIXELSTOREIPROC dolPixelStorei;
+extern PFNDOLPIXELTRANSFERFPROC dolPixelTransferf;
+extern PFNDOLPIXELTRANSFERIPROC dolPixelTransferi;
+extern PFNDOLPIXELMAPFVPROC dolPixelMapfv;
+extern PFNDOLPIXELMAPUIVPROC dolPixelMapuiv;
+extern PFNDOLPIXELMAPUSVPROC dolPixelMapusv;
+extern PFNDOLGETPIXELMAPFVPROC dolGetPixelMapfv;
+extern PFNDOLGETPIXELMAPUIVPROC dolGetPixelMapuiv;
+extern PFNDOLGETPIXELMAPUSVPROC dolGetPixelMapusv;
+extern PFNDOLBITMAPPROC dolBitmap;
+extern PFNDOLREADPIXELSPROC dolReadPixels;
+extern PFNDOLDRAWPIXELSPROC dolDrawPixels;
+extern PFNDOLCOPYPIXELSPROC dolCopyPixels;
+extern PFNDOLSTENCILFUNCPROC dolStencilFunc;
+extern PFNDOLSTENCILMASKPROC dolStencilMask;
+extern PFNDOLSTENCILOPPROC dolStencilOp;
+extern PFNDOLCLEARSTENCILPROC dolClearStencil;
+extern PFNDOLTEXGENDPROC dolTexGend;
+extern PFNDOLTEXGENFPROC dolTexGenf;
+extern PFNDOLTEXGENIPROC dolTexGeni;
+extern PFNDOLTEXGENDVPROC dolTexGendv;
+extern PFNDOLTEXGENFVPROC dolTexGenfv;
+extern PFNDOLTEXGENIVPROC dolTexGeniv;
+extern PFNDOLGETTEXGENDVPROC dolGetTexGendv;
+extern PFNDOLGETTEXGENFVPROC dolGetTexGenfv;
+extern PFNDOLGETTEXGENIVPROC dolGetTexGeniv;
+extern PFNDOLTEXENVFPROC dolTexEnvf;
+extern PFNDOLTEXENVIPROC dolTexEnvi;
+extern PFNDOLTEXENVFVPROC dolTexEnvfv;
+extern PFNDOLTEXENVIVPROC dolTexEnviv;
+extern PFNDOLGETTEXENVFVPROC dolGetTexEnvfv;
+extern PFNDOLGETTEXENVIVPROC dolGetTexEnviv;
+extern PFNDOLTEXPARAMETERFPROC dolTexParameterf;
+extern PFNDOLTEXPARAMETERIPROC dolTexParameteri;
+extern PFNDOLTEXPARAMETERFVPROC dolTexParameterfv;
+extern PFNDOLTEXPARAMETERIVPROC dolTexParameteriv;
+extern PFNDOLGETTEXPARAMETERFVPROC dolGetTexParameterfv;
+extern PFNDOLGETTEXPARAMETERIVPROC dolGetTexParameteriv;
+extern PFNDOLGETTEXLEVELPARAMETERFVPROC dolGetTexLevelParameterfv;
+extern PFNDOLGETTEXLEVELPARAMETERIVPROC dolGetTexLevelParameteriv;
+extern PFNDOLTEXIMAGE1DPROC dolTexImage1D;
+extern PFNDOLTEXIMAGE2DPROC dolTexImage2D;
+extern PFNDOLGETTEXIMAGEPROC dolGetTexImage;
+extern PFNDOLGENTEXTURESPROC dolGenTextures;
+extern PFNDOLDELETETEXTURESPROC dolDeleteTextures;
+extern PFNDOLBINDTEXTUREPROC dolBindTexture;
+extern PFNDOLPRIORITIZETEXTURESPROC dolPrioritizeTextures;
+extern PFNDOLARETEXTURESRESIDENTPROC dolAreTexturesResident;
+extern PFNDOLISTEXTUREPROC dolIsTexture;
+extern PFNDOLTEXSUBIMAGE1DPROC dolTexSubImage1D;
+extern PFNDOLTEXSUBIMAGE2DPROC dolTexSubImage2D;
+extern PFNDOLCOPYTEXIMAGE1DPROC dolCopyTexImage1D;
+extern PFNDOLCOPYTEXIMAGE2DPROC dolCopyTexImage2D;
+extern PFNDOLCOPYTEXSUBIMAGE1DPROC dolCopyTexSubImage1D;
+extern PFNDOLCOPYTEXSUBIMAGE2DPROC dolCopyTexSubImage2D;
+extern PFNDOLMAP1DPROC dolMap1d;
+extern PFNDOLMAP1FPROC dolMap1f;
+extern PFNDOLMAP2DPROC dolMap2d;
+extern PFNDOLMAP2FPROC dolMap2f;
+extern PFNDOLGETMAPDVPROC dolGetMapdv;
+extern PFNDOLGETMAPFVPROC dolGetMapfv;
+extern PFNDOLGETMAPIVPROC dolGetMapiv;
+extern PFNDOLEVALCOORD1DPROC dolEvalCoord1d;
+extern PFNDOLEVALCOORD1FPROC dolEvalCoord1f;
+extern PFNDOLEVALCOORD1DVPROC dolEvalCoord1dv;
+extern PFNDOLEVALCOORD1FVPROC dolEvalCoord1fv;
+extern PFNDOLEVALCOORD2DPROC dolEvalCoord2d;
+extern PFNDOLEVALCOORD2FPROC dolEvalCoord2f;
+extern PFNDOLEVALCOORD2DVPROC dolEvalCoord2dv;
+extern PFNDOLEVALCOORD2FVPROC dolEvalCoord2fv;
+extern PFNDOLMAPGRID1DPROC dolMapGrid1d;
+extern PFNDOLMAPGRID1FPROC dolMapGrid1f;
+extern PFNDOLMAPGRID2DPROC dolMapGrid2d;
+extern PFNDOLMAPGRID2FPROC dolMapGrid2f;
+extern PFNDOLEVALPOINT1PROC dolEvalPoint1;
+extern PFNDOLEVALPOINT2PROC dolEvalPoint2;
+extern PFNDOLEVALMESH1PROC dolEvalMesh1;
+extern PFNDOLEVALMESH2PROC dolEvalMesh2;
+extern PFNDOLFOGFPROC dolFogf;
+extern PFNDOLFOGIPROC dolFogi;
+extern PFNDOLFOGFVPROC dolFogfv;
+extern PFNDOLFOGIVPROC dolFogiv;
+extern PFNDOLFEEDBACKBUFFERPROC dolFeedbackBuffer;
+extern PFNDOLPASSTHROUGHPROC dolPassThrough;
+extern PFNDOLSELECTBUFFERPROC dolSelectBuffer;
+extern PFNDOLINITNAMESPROC dolInitNames;
+extern PFNDOLLOADNAMEPROC dolLoadName;
+extern PFNDOLPUSHNAMEPROC dolPushName;
+extern PFNDOLPOPNAMEPROC dolPopName;
+
+#define glClearIndex dolClearIndex
+#define glClearColor dolClearColor
+#define glClear dolClear
+#define glIndexMask dolIndexMask
+#define glColorMask dolColorMask
+#define glAlphaFunc dolAlphaFunc
+#define glBlendFunc dolBlendFunc
+#define glLogicOp dolLogicOp
+#define glCullFace dolCullFace
+#define glFrontFace dolFrontFace
+#define glPointSize dolPointSize
+#define glLineWidth dolLineWidth
+#define glLineStipple dolLineStipple
+#define glPolygonMode dolPolygonMode
+#define glPolygonOffset dolPolygonOffset
+#define glPolygonStipple dolPolygonStipple
+#define glGetPolygonStipple dolGetPolygonStipple
+#define glEdgeFlag dolEdgeFlag
+#define glEdgeFlagv dolEdgeFlagv
+#define glScissor dolScissor
+#define glClipPlane dolClipPlane
+#define glGetClipPlane dolGetClipPlane
+#define glDrawBuffer dolDrawBuffer
+#define glReadBuffer dolReadBuffer
+#define glEnable dolEnable
+#define glDisable dolDisable
+#define glIsEnabled dolIsEnabled
+#define glEnableClientState dolEnableClientState
+#define glDisableClientState dolDisableClientState
+#define glGetBooleanv dolGetBooleanv
+#define glGetDoublev dolGetDoublev
+#define glGetFloatv dolGetFloatv
+#define glGetIntegerv dolGetIntegerv
+#define glPushAttrib dolPushAttrib
+#define glPopAttrib dolPopAttrib
+#define glPushClientAttrib dolPushClientAttrib
+#define glPopClientAttrib dolPopClientAttrib
+#define glRenderMode dolRenderMode
+#define glGetError dolGetError
+#define glGetString dolGetString
+#define glFinish dolFinish
+#define glFlush dolFlush
+#define glHint dolHint
+#define glClearDepth dolClearDepth
+#define glDepthFunc dolDepthFunc
+#define glDepthMask dolDepthMask
+#define glDepthRange dolDepthRange
+#define glClearAccum dolClearAccum
+#define glAccum dolAccum
+#define glMatrixMode dolMatrixMode
+#define glOrtho dolOrtho
+#define glFrustum dolFrustum
+#define glViewport dolViewport
+#define glPushMatrix dolPushMatrix
+#define glPopMatrix dolPopMatrix
+#define glLoadIdentity dolLoadIdentity
+#define glLoadMatrixd dolLoadMatrixd
+#define glLoadMatrixf dolLoadMatrixf
+#define glMultMatrixd dolMultMatrixd
+#define glMultMatrixf dolMultMatrixf
+#define glRotated dolRotated
+#define glRotatef dolRotatef
+#define glScaled dolScaled
+#define glScalef dolScalef
+#define glTranslated dolTranslated
+#define glTranslatef dolTranslatef
+#define glIsList dolIsList
+#define glDeleteLists dolDeleteLists
+#define glGenLists dolGenLists
+#define glNewList dolNewList
+#define glEndList dolEndList
+#define glCallList dolCallList
+#define glCallLists dolCallLists
+#define glListBase dolListBase
+#define glBegin dolBegin
+#define glEnd dolEnd
+#define glVertex2d dolVertex2d
+#define glVertex2f dolVertex2f
+#define glVertex2i dolVertex2i
+#define glVertex2s dolVertex2s
+#define glVertex3d dolVertex3d
+#define glVertex3f dolVertex3f
+#define glVertex3i dolVertex3i
+#define glVertex3s dolVertex3s
+#define glVertex4d dolVertex4d
+#define glVertex4f dolVertex4f
+#define glVertex4i dolVertex4i
+#define glVertex4s dolVertex4s
+#define glVertex2dv dolVertex2dv
+#define glVertex2fv dolVertex2fv
+#define glVertex2iv dolVertex2iv
+#define glVertex2sv dolVertex2sv
+#define glVertex3dv dolVertex3dv
+#define glVertex3fv dolVertex3fv
+#define glVertex3iv dolVertex3iv
+#define glVertex3sv dolVertex3sv
+#define glVertex4dv dolVertex4dv
+#define glVertex4fv dolVertex4fv
+#define glVertex4iv dolVertex4iv
+#define glVertex4sv dolVertex4sv
+#define glNormal3b dolNormal3b
+#define glNormal3d dolNormal3d
+#define glNormal3f dolNormal3f
+#define glNormal3i dolNormal3i
+#define glNormal3s dolNormal3s
+#define glNormal3bv dolNormal3bv
+#define glNormal3dv dolNormal3dv
+#define glNormal3fv dolNormal3fv
+#define glNormal3iv dolNormal3iv
+#define glNormal3sv dolNormal3sv
+#define glIndexd dolIndexd
+#define glIndexf dolIndexf
+#define glIndexi dolIndexi
+#define glIndexs dolIndexs
+#define glIndexub dolIndexub
+#define glIndexdv dolIndexdv
+#define glIndexfv dolIndexfv
+#define glIndexiv dolIndexiv
+#define glIndexsv dolIndexsv
+#define glIndexubv dolIndexubv
+#define glColor3b dolColor3b
+#define glColor3d dolColor3d
+#define glColor3f dolColor3f
+#define glColor3i dolColor3i
+#define glColor3s dolColor3s
+#define glColor3ub dolColor3ub
+#define glColor3ui dolColor3ui
+#define glColor3us dolColor3us
+#define glColor4b dolColor4b
+#define glColor4d dolColor4d
+#define glColor4f dolColor4f
+#define glColor4i dolColor4i
+#define glColor4s dolColor4s
+#define glColor4ub dolColor4ub
+#define glColor4ui dolColor4ui
+#define glColor4us dolColor4us
+#define glColor3bv dolColor3bv
+#define glColor3dv dolColor3dv
+#define glColor3fv dolColor3fv
+#define glColor3iv dolColor3iv
+#define glColor3sv dolColor3sv
+#define glColor3ubv dolColor3ubv
+#define glColor3uiv dolColor3uiv
+#define glColor3usv dolColor3usv
+#define glColor4bv dolColor4bv
+#define glColor4dv dolColor4dv
+#define glColor4fv dolColor4fv
+#define glColor4iv dolColor4iv
+#define glColor4sv dolColor4sv
+#define glColor4ubv dolColor4ubv
+#define glColor4uiv dolColor4uiv
+#define glColor4usv dolColor4usv
+#define glTexCoord1d dolTexCoord1d
+#define glTexCoord1f dolTexCoord1f
+#define glTexCoord1i dolTexCoord1i
+#define glTexCoord1s dolTexCoord1s
+#define glTexCoord2d dolTexCoord2d
+#define glTexCoord2f dolTexCoord2f
+#define glTexCoord2i dolTexCoord2i
+#define glTexCoord2s dolTexCoord2s
+#define glTexCoord3d dolTexCoord3d
+#define glTexCoord3f dolTexCoord3f
+#define glTexCoord3i dolTexCoord3i
+#define glTexCoord3s dolTexCoord3s
+#define glTexCoord4d dolTexCoord4d
+#define glTexCoord4f dolTexCoord4f
+#define glTexCoord4i dolTexCoord4i
+#define glTexCoord4s dolTexCoord4s
+#define glTexCoord1dv dolTexCoord1dv
+#define glTexCoord1fv dolTexCoord1fv
+#define glTexCoord1iv dolTexCoord1iv
+#define glTexCoord1sv dolTexCoord1sv
+#define glTexCoord2dv dolTexCoord2dv
+#define glTexCoord2fv dolTexCoord2fv
+#define glTexCoord2iv dolTexCoord2iv
+#define glTexCoord2sv dolTexCoord2sv
+#define glTexCoord3dv dolTexCoord3dv
+#define glTexCoord3fv dolTexCoord3fv
+#define glTexCoord3iv dolTexCoord3iv
+#define glTexCoord3sv dolTexCoord3sv
+#define glTexCoord4dv dolTexCoord4dv
+#define glTexCoord4fv dolTexCoord4fv
+#define glTexCoord4iv dolTexCoord4iv
+#define glTexCoord4sv dolTexCoord4sv
+#define glRasterPos2d dolRasterPos2d
+#define glRasterPos2f dolRasterPos2f
+#define glRasterPos2i dolRasterPos2i
+#define glRasterPos2s dolRasterPos2s
+#define glRasterPos3d dolRasterPos3d
+#define glRasterPos3f dolRasterPos3f
+#define glRasterPos3i dolRasterPos3i
+#define glRasterPos3s dolRasterPos3s
+#define glRasterPos4d dolRasterPos4d
+#define glRasterPos4f dolRasterPos4f
+#define glRasterPos4i dolRasterPos4i
+#define glRasterPos4s dolRasterPos4s
+#define glRasterPos2dv dolRasterPos2dv
+#define glRasterPos2fv dolRasterPos2fv
+#define glRasterPos2iv dolRasterPos2iv
+#define glRasterPos2sv dolRasterPos2sv
+#define glRasterPos3dv dolRasterPos3dv
+#define glRasterPos3fv dolRasterPos3fv
+#define glRasterPos3iv dolRasterPos3iv
+#define glRasterPos3sv dolRasterPos3sv
+#define glRasterPos4dv dolRasterPos4dv
+#define glRasterPos4fv dolRasterPos4fv
+#define glRasterPos4iv dolRasterPos4iv
+#define glRasterPos4sv dolRasterPos4sv
+#define glRectd dolRectd
+#define glRectf dolRectf
+#define glRecti dolRecti
+#define glRects dolRects
+#define glRectdv dolRectdv
+#define glRectfv dolRectfv
+#define glRectiv dolRectiv
+#define glRectsv dolRectsv
+#define glVertexPointer dolVertexPointer
+#define glNormalPointer dolNormalPointer
+#define glColorPointer dolColorPointer
+#define glIndexPointer dolIndexPointer
+#define glTexCoordPointer dolTexCoordPointer
+#define glEdgeFlagPointer dolEdgeFlagPointer
+#define glGetPointerv dolGetPointerv
+#define glArrayElement dolArrayElement
+#define glDrawArrays dolDrawArrays
+#define glDrawElements dolDrawElements
+#define glInterleavedArrays dolInterleavedArrays
+#define glShadeModel dolShadeModel
+#define glLightf dolLightf
+#define glLighti dolLighti
+#define glLightfv dolLightfv
+#define glLightiv dolLightiv
+#define glGetLightfv dolGetLightfv
+#define glGetLightiv dolGetLightiv
+#define glLightModelf dolLightModelf
+#define glLightModeli dolLightModeli
+#define glLightModelfv dolLightModelfv
+#define glLightModeliv dolLightModeliv
+#define glMaterialf dolMaterialf
+#define glMateriali dolMateriali
+#define glMaterialfv dolMaterialfv
+#define glMaterialiv dolMaterialiv
+#define glGetMaterialfv dolGetMaterialfv
+#define glGetMaterialiv dolGetMaterialiv
+#define glColorMaterial dolColorMaterial
+#define glPixelZoom dolPixelZoom
+#define glPixelStoref dolPixelStoref
+#define glPixelStorei dolPixelStorei
+#define glPixelTransferf dolPixelTransferf
+#define glPixelTransferi dolPixelTransferi
+#define glPixelMapfv dolPixelMapfv
+#define glPixelMapuiv dolPixelMapuiv
+#define glPixelMapusv dolPixelMapusv
+#define glGetPixelMapfv dolGetPixelMapfv
+#define glGetPixelMapuiv dolGetPixelMapuiv
+#define glGetPixelMapusv dolGetPixelMapusv
+#define glBitmap dolBitmap
+#define glReadPixels dolReadPixels
+#define glDrawPixels dolDrawPixels
+#define glCopyPixels dolCopyPixels
+#define glStencilFunc dolStencilFunc
+#define glStencilMask dolStencilMask
+#define glStencilOp dolStencilOp
+#define glClearStencil dolClearStencil
+#define glTexGend dolTexGend
+#define glTexGenf dolTexGenf
+#define glTexGeni dolTexGeni
+#define glTexGendv dolTexGendv
+#define glTexGenfv dolTexGenfv
+#define glTexGeniv dolTexGeniv
+#define glGetTexGendv dolGetTexGendv
+#define glGetTexGenfv dolGetTexGenfv
+#define glGetTexGeniv dolGetTexGeniv
+#define glTexEnvf dolTexEnvf
+#define glTexEnvi dolTexEnvi
+#define glTexEnvfv dolTexEnvfv
+#define glTexEnviv dolTexEnviv
+#define glGetTexEnvfv dolGetTexEnvfv
+#define glGetTexEnviv dolGetTexEnviv
+#define glTexParameterf dolTexParameterf
+#define glTexParameteri dolTexParameteri
+#define glTexParameterfv dolTexParameterfv
+#define glTexParameteriv dolTexParameteriv
+#define glGetTexParameterfv dolGetTexParameterfv
+#define glGetTexParameteriv dolGetTexParameteriv
+#define glGetTexLevelParameterfv dolGetTexLevelParameterfv
+#define glGetTexLevelParameteriv dolGetTexLevelParameteriv
+#define glTexImage1D dolTexImage1D
+#define glTexImage2D dolTexImage2D
+#define glGetTexImage dolGetTexImage
+#define glGenTextures dolGenTextures
+#define glDeleteTextures dolDeleteTextures
+#define glBindTexture dolBindTexture
+#define glPrioritizeTextures dolPrioritizeTextures
+#define glAreTexturesResident dolAreTexturesResident
+#define glIsTexture dolIsTexture
+#define glTexSubImage1D dolTexSubImage1D
+#define glTexSubImage2D dolTexSubImage2D
+#define glCopyTexImage1D dolCopyTexImage1D
+#define glCopyTexImage2D dolCopyTexImage2D
+#define glCopyTexSubImage1D dolCopyTexSubImage1D
+#define glCopyTexSubImage2D dolCopyTexSubImage2D
+#define glMap1d dolMap1d
+#define glMap1f dolMap1f
+#define glMap2d dolMap2d
+#define glMap2f dolMap2f
+#define glGetMapdv dolGetMapdv
+#define glGetMapfv dolGetMapfv
+#define glGetMapiv dolGetMapiv
+#define glEvalCoord1d dolEvalCoord1d
+#define glEvalCoord1f dolEvalCoord1f
+#define glEvalCoord1dv dolEvalCoord1dv
+#define glEvalCoord1fv dolEvalCoord1fv
+#define glEvalCoord2d dolEvalCoord2d
+#define glEvalCoord2f dolEvalCoord2f
+#define glEvalCoord2dv dolEvalCoord2dv
+#define glEvalCoord2fv dolEvalCoord2fv
+#define glMapGrid1d dolMapGrid1d
+#define glMapGrid1f dolMapGrid1f
+#define glMapGrid2d dolMapGrid2d
+#define glMapGrid2f dolMapGrid2f
+#define glEvalPoint1 dolEvalPoint1
+#define glEvalPoint2 dolEvalPoint2
+#define glEvalMesh1 dolEvalMesh1
+#define glEvalMesh2 dolEvalMesh2
+#define glFogf dolFogf
+#define glFogi dolFogi
+#define glFogfv dolFogfv
+#define glFogiv dolFogiv
+#define glFeedbackBuffer dolFeedbackBuffer
+#define glPassThrough dolPassThrough
+#define glSelectBuffer dolSelectBuffer
+#define glInitNames dolInitNames
+#define glLoadName dolLoadName
+#define glPushName dolPushName
+#define glPopName dolPopName
diff --git a/Source/Core/Common/GL/GLExtensions/gl_1_2.h b/Source/Core/Common/GL/GLExtensions/gl_1_2.h
index 835179c1fd..097cedd135 100644
--- a/Source/Core/Common/GL/GLExtensions/gl_1_2.h
+++ b/Source/Core/Common/GL/GLExtensions/gl_1_2.h
@@ -1,11 +1,81 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLCOPYTEXSUBIMAGE3DPROC glCopyTexSubImage3D;
-extern PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements;
-extern PFNGLTEXIMAGE3DPROC glTexImage3D;
-extern PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D;
+#define GL_RESCALE_NORMAL 0x803A
+#define GL_CLAMP_TO_EDGE 0x812F
+#define GL_MAX_ELEMENTS_VERTICES 0x80E8
+#define GL_MAX_ELEMENTS_INDICES 0x80E9
+#define GL_BGR 0x80E0
+#define GL_BGRA 0x80E1
+#define GL_UNSIGNED_BYTE_3_3_2 0x8032
+#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
+#define GL_UNSIGNED_SHORT_5_6_5 0x8363
+#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
+#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
+#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
+#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
+#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
+#define GL_UNSIGNED_INT_8_8_8_8 0x8035
+#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
+#define GL_UNSIGNED_INT_10_10_10_2 0x8036
+#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
+#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8
+#define GL_SINGLE_COLOR 0x81F9
+#define GL_SEPARATE_SPECULAR_COLOR 0x81FA
+#define GL_TEXTURE_MIN_LOD 0x813A
+#define GL_TEXTURE_MAX_LOD 0x813B
+#define GL_TEXTURE_BASE_LEVEL 0x813C
+#define GL_TEXTURE_MAX_LEVEL 0x813D
+#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
+#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
+#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
+#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
+#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
+#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
+#define GL_PACK_SKIP_IMAGES 0x806B
+#define GL_PACK_IMAGE_HEIGHT 0x806C
+#define GL_UNPACK_SKIP_IMAGES 0x806D
+#define GL_UNPACK_IMAGE_HEIGHT 0x806E
+#define GL_TEXTURE_3D 0x806F
+#define GL_PROXY_TEXTURE_3D 0x8070
+#define GL_TEXTURE_DEPTH 0x8071
+#define GL_TEXTURE_WRAP_R 0x8072
+#define GL_MAX_3D_TEXTURE_SIZE 0x8073
+#define GL_TEXTURE_BINDING_3D 0x806A
+typedef void (APIENTRYP PFNDOLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
+typedef void (APIENTRYP PFNDOLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNDOLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRYP PFNDOLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+
+extern PFNDOLCOPYTEXSUBIMAGE3DPROC dolCopyTexSubImage3D;
+extern PFNDOLDRAWRANGEELEMENTSPROC dolDrawRangeElements;
+extern PFNDOLTEXIMAGE3DPROC dolTexImage3D;
+extern PFNDOLTEXSUBIMAGE3DPROC dolTexSubImage3D;
+
+#define glCopyTexSubImage3D dolCopyTexSubImage3D
+#define glDrawRangeElements dolDrawRangeElements
+#define glTexImage3D dolTexImage3D
+#define glTexSubImage3D dolTexSubImage3D
diff --git a/Source/Core/Common/GL/GLExtensions/gl_1_3.h b/Source/Core/Common/GL/GLExtensions/gl_1_3.h
index 62715a8b48..330d9b5b5a 100644
--- a/Source/Core/Common/GL/GLExtensions/gl_1_3.h
+++ b/Source/Core/Common/GL/GLExtensions/gl_1_3.h
@@ -1,53 +1,273 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLACTIVETEXTUREARBPROC glActiveTexture;
-extern PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTexture;
-extern PFNGLCOMPRESSEDTEXIMAGE1DPROC glCompressedTexImage1D;
-extern PFNGLCOMPRESSEDTEXIMAGE2DPROC glCompressedTexImage2D;
-extern PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D;
-extern PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glCompressedTexSubImage1D;
-extern PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glCompressedTexSubImage2D;
-extern PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D;
-extern PFNGLGETCOMPRESSEDTEXIMAGEPROC glGetCompressedTexImage;
-extern PFNGLLOADTRANSPOSEMATRIXDARBPROC glLoadTransposeMatrixd;
-extern PFNGLLOADTRANSPOSEMATRIXFARBPROC glLoadTransposeMatrixf;
-extern PFNGLMULTTRANSPOSEMATRIXDARBPROC glMultTransposeMatrixd;
-extern PFNGLMULTTRANSPOSEMATRIXFARBPROC glMultTransposeMatrixf;
-extern PFNGLMULTITEXCOORD1DARBPROC glMultiTexCoord1d;
-extern PFNGLMULTITEXCOORD1DVARBPROC glMultiTexCoord1dv;
-extern PFNGLMULTITEXCOORD1FARBPROC glMultiTexCoord1f;
-extern PFNGLMULTITEXCOORD1FVARBPROC glMultiTexCoord1fv;
-extern PFNGLMULTITEXCOORD1IARBPROC glMultiTexCoord1i;
-extern PFNGLMULTITEXCOORD1IVARBPROC glMultiTexCoord1iv;
-extern PFNGLMULTITEXCOORD1SARBPROC glMultiTexCoord1s;
-extern PFNGLMULTITEXCOORD1SVARBPROC glMultiTexCoord1sv;
-extern PFNGLMULTITEXCOORD2DARBPROC glMultiTexCoord2d;
-extern PFNGLMULTITEXCOORD2DVARBPROC glMultiTexCoord2dv;
-extern PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2f;
-extern PFNGLMULTITEXCOORD2FVARBPROC glMultiTexCoord2fv;
-extern PFNGLMULTITEXCOORD2IARBPROC glMultiTexCoord2i;
-extern PFNGLMULTITEXCOORD2IVARBPROC glMultiTexCoord2iv;
-extern PFNGLMULTITEXCOORD2SARBPROC glMultiTexCoord2s;
-extern PFNGLMULTITEXCOORD2SVARBPROC glMultiTexCoord2sv;
-extern PFNGLMULTITEXCOORD3DARBPROC glMultiTexCoord3d;
-extern PFNGLMULTITEXCOORD3DVARBPROC glMultiTexCoord3dv;
-extern PFNGLMULTITEXCOORD3FARBPROC glMultiTexCoord3f;
-extern PFNGLMULTITEXCOORD3FVARBPROC glMultiTexCoord3fv;
-extern PFNGLMULTITEXCOORD3IARBPROC glMultiTexCoord3i;
-extern PFNGLMULTITEXCOORD3IVARBPROC glMultiTexCoord3iv;
-extern PFNGLMULTITEXCOORD3SARBPROC glMultiTexCoord3s;
-extern PFNGLMULTITEXCOORD3SVARBPROC glMultiTexCoord3sv;
-extern PFNGLMULTITEXCOORD4DARBPROC glMultiTexCoord4d;
-extern PFNGLMULTITEXCOORD4DVARBPROC glMultiTexCoord4dv;
-extern PFNGLMULTITEXCOORD4FARBPROC glMultiTexCoord4f;
-extern PFNGLMULTITEXCOORD4FVARBPROC glMultiTexCoord4fv;
-extern PFNGLMULTITEXCOORD4IARBPROC glMultiTexCoord4i;
-extern PFNGLMULTITEXCOORD4IVARBPROC glMultiTexCoord4iv;
-extern PFNGLMULTITEXCOORD4SARBPROC glMultiTexCoord4s;
-extern PFNGLMULTITEXCOORD4SVARBPROC glMultiTexCoord4sv;
-extern PFNGLSAMPLECOVERAGEARBPROC glSampleCoverage;
+/* multitexture */
+#define GL_TEXTURE0 0x84C0
+#define GL_TEXTURE1 0x84C1
+#define GL_TEXTURE2 0x84C2
+#define GL_TEXTURE3 0x84C3
+#define GL_TEXTURE4 0x84C4
+#define GL_TEXTURE5 0x84C5
+#define GL_TEXTURE6 0x84C6
+#define GL_TEXTURE7 0x84C7
+#define GL_TEXTURE8 0x84C8
+#define GL_TEXTURE9 0x84C9
+#define GL_TEXTURE10 0x84CA
+#define GL_TEXTURE11 0x84CB
+#define GL_TEXTURE12 0x84CC
+#define GL_TEXTURE13 0x84CD
+#define GL_TEXTURE14 0x84CE
+#define GL_TEXTURE15 0x84CF
+#define GL_TEXTURE16 0x84D0
+#define GL_TEXTURE17 0x84D1
+#define GL_TEXTURE18 0x84D2
+#define GL_TEXTURE19 0x84D3
+#define GL_TEXTURE20 0x84D4
+#define GL_TEXTURE21 0x84D5
+#define GL_TEXTURE22 0x84D6
+#define GL_TEXTURE23 0x84D7
+#define GL_TEXTURE24 0x84D8
+#define GL_TEXTURE25 0x84D9
+#define GL_TEXTURE26 0x84DA
+#define GL_TEXTURE27 0x84DB
+#define GL_TEXTURE28 0x84DC
+#define GL_TEXTURE29 0x84DD
+#define GL_TEXTURE30 0x84DE
+#define GL_TEXTURE31 0x84DF
+#define GL_ACTIVE_TEXTURE 0x84E0
+#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1
+#define GL_MAX_TEXTURE_UNITS 0x84E2
+/* texture_cube_map */
+#define GL_NORMAL_MAP 0x8511
+#define GL_REFLECTION_MAP 0x8512
+#define GL_TEXTURE_CUBE_MAP 0x8513
+#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
+#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
+/* texture_compression */
+#define GL_COMPRESSED_ALPHA 0x84E9
+#define GL_COMPRESSED_LUMINANCE 0x84EA
+#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB
+#define GL_COMPRESSED_INTENSITY 0x84EC
+#define GL_COMPRESSED_RGB 0x84ED
+#define GL_COMPRESSED_RGBA 0x84EE
+#define GL_TEXTURE_COMPRESSION_HINT 0x84EF
+#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
+#define GL_TEXTURE_COMPRESSED 0x86A1
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
+#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
+/* multisample */
+#define GL_MULTISAMPLE 0x809D
+#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE 0x809F
+#define GL_SAMPLE_COVERAGE 0x80A0
+#define GL_SAMPLE_BUFFERS 0x80A8
+#define GL_SAMPLES 0x80A9
+#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
+#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
+#define GL_MULTISAMPLE_BIT 0x20000000
+/* transpose_matrix */
+#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3
+#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4
+#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5
+#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6
+/* texture_env_combine */
+#define GL_COMBINE 0x8570
+#define GL_COMBINE_RGB 0x8571
+#define GL_COMBINE_ALPHA 0x8572
+#define GL_SOURCE0_RGB 0x8580
+#define GL_SOURCE1_RGB 0x8581
+#define GL_SOURCE2_RGB 0x8582
+#define GL_SOURCE0_ALPHA 0x8588
+#define GL_SOURCE1_ALPHA 0x8589
+#define GL_SOURCE2_ALPHA 0x858A
+#define GL_OPERAND0_RGB 0x8590
+#define GL_OPERAND1_RGB 0x8591
+#define GL_OPERAND2_RGB 0x8592
+#define GL_OPERAND0_ALPHA 0x8598
+#define GL_OPERAND1_ALPHA 0x8599
+#define GL_OPERAND2_ALPHA 0x859A
+#define GL_RGB_SCALE 0x8573
+#define GL_ADD_SIGNED 0x8574
+#define GL_INTERPOLATE 0x8575
+#define GL_SUBTRACT 0x84E7
+#define GL_CONSTANT 0x8576
+#define GL_PRIMARY_COLOR 0x8577
+#define GL_PREVIOUS 0x8578
+/* texture_env_dot3 */
+#define GL_DOT3_RGB 0x86AE
+#define GL_DOT3_RGBA 0x86AF
+/* texture_border_clamp */
+#define GL_CLAMP_TO_BORDER 0x812D
+typedef void (APIENTRYP PFNDOLACTIVETEXTUREPROC) (GLenum texture);
+typedef void (APIENTRYP PFNDOLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert);
+typedef void (APIENTRYP PFNDOLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRYP PFNDOLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRYP PFNDOLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRYP PFNDOLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRYP PFNDOLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRYP PFNDOLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
+typedef void (APIENTRYP PFNDOLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img);
+
+typedef void (APIENTRYP PFNDOLACTIVETEXTUREARBPROC) (GLenum texture);
+typedef void (APIENTRYP PFNDOLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+typedef void (APIENTRYP PFNDOLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRYP PFNDOLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m);
+typedef void (APIENTRYP PFNDOLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m);
+typedef void (APIENTRYP PFNDOLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m);
+typedef void (APIENTRYP PFNDOLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m);
+typedef void (APIENTRYP PFNDOLSAMPLECOVERAGEARBPROC) (GLfloat value, GLboolean invert);
+
+extern PFNDOLACTIVETEXTUREARBPROC dolActiveTexture;
+extern PFNDOLCLIENTACTIVETEXTUREARBPROC dolClientActiveTexture;
+extern PFNDOLCOMPRESSEDTEXIMAGE1DPROC dolCompressedTexImage1D;
+extern PFNDOLCOMPRESSEDTEXIMAGE2DPROC dolCompressedTexImage2D;
+extern PFNDOLCOMPRESSEDTEXIMAGE3DPROC dolCompressedTexImage3D;
+extern PFNDOLCOMPRESSEDTEXSUBIMAGE1DPROC dolCompressedTexSubImage1D;
+extern PFNDOLCOMPRESSEDTEXSUBIMAGE2DPROC dolCompressedTexSubImage2D;
+extern PFNDOLCOMPRESSEDTEXSUBIMAGE3DPROC dolCompressedTexSubImage3D;
+extern PFNDOLGETCOMPRESSEDTEXIMAGEPROC dolGetCompressedTexImage;
+extern PFNDOLLOADTRANSPOSEMATRIXDARBPROC dolLoadTransposeMatrixd;
+extern PFNDOLLOADTRANSPOSEMATRIXFARBPROC dolLoadTransposeMatrixf;
+extern PFNDOLMULTTRANSPOSEMATRIXDARBPROC dolMultTransposeMatrixd;
+extern PFNDOLMULTTRANSPOSEMATRIXFARBPROC dolMultTransposeMatrixf;
+extern PFNDOLMULTITEXCOORD1DARBPROC dolMultiTexCoord1d;
+extern PFNDOLMULTITEXCOORD1DVARBPROC dolMultiTexCoord1dv;
+extern PFNDOLMULTITEXCOORD1FARBPROC dolMultiTexCoord1f;
+extern PFNDOLMULTITEXCOORD1FVARBPROC dolMultiTexCoord1fv;
+extern PFNDOLMULTITEXCOORD1IARBPROC dolMultiTexCoord1i;
+extern PFNDOLMULTITEXCOORD1IVARBPROC dolMultiTexCoord1iv;
+extern PFNDOLMULTITEXCOORD1SARBPROC dolMultiTexCoord1s;
+extern PFNDOLMULTITEXCOORD1SVARBPROC dolMultiTexCoord1sv;
+extern PFNDOLMULTITEXCOORD2DARBPROC dolMultiTexCoord2d;
+extern PFNDOLMULTITEXCOORD2DVARBPROC dolMultiTexCoord2dv;
+extern PFNDOLMULTITEXCOORD2FARBPROC dolMultiTexCoord2f;
+extern PFNDOLMULTITEXCOORD2FVARBPROC dolMultiTexCoord2fv;
+extern PFNDOLMULTITEXCOORD2IARBPROC dolMultiTexCoord2i;
+extern PFNDOLMULTITEXCOORD2IVARBPROC dolMultiTexCoord2iv;
+extern PFNDOLMULTITEXCOORD2SARBPROC dolMultiTexCoord2s;
+extern PFNDOLMULTITEXCOORD2SVARBPROC dolMultiTexCoord2sv;
+extern PFNDOLMULTITEXCOORD3DARBPROC dolMultiTexCoord3d;
+extern PFNDOLMULTITEXCOORD3DVARBPROC dolMultiTexCoord3dv;
+extern PFNDOLMULTITEXCOORD3FARBPROC dolMultiTexCoord3f;
+extern PFNDOLMULTITEXCOORD3FVARBPROC dolMultiTexCoord3fv;
+extern PFNDOLMULTITEXCOORD3IARBPROC dolMultiTexCoord3i;
+extern PFNDOLMULTITEXCOORD3IVARBPROC dolMultiTexCoord3iv;
+extern PFNDOLMULTITEXCOORD3SARBPROC dolMultiTexCoord3s;
+extern PFNDOLMULTITEXCOORD3SVARBPROC dolMultiTexCoord3sv;
+extern PFNDOLMULTITEXCOORD4DARBPROC dolMultiTexCoord4d;
+extern PFNDOLMULTITEXCOORD4DVARBPROC dolMultiTexCoord4dv;
+extern PFNDOLMULTITEXCOORD4FARBPROC dolMultiTexCoord4f;
+extern PFNDOLMULTITEXCOORD4FVARBPROC dolMultiTexCoord4fv;
+extern PFNDOLMULTITEXCOORD4IARBPROC dolMultiTexCoord4i;
+extern PFNDOLMULTITEXCOORD4IVARBPROC dolMultiTexCoord4iv;
+extern PFNDOLMULTITEXCOORD4SARBPROC dolMultiTexCoord4s;
+extern PFNDOLMULTITEXCOORD4SVARBPROC dolMultiTexCoord4sv;
+extern PFNDOLSAMPLECOVERAGEARBPROC dolSampleCoverage;
+
+#define glActiveTexture dolActiveTexture
+#define glClientActiveTexture dolClientActiveTexture
+#define glCompressedTexImage1D dolCompressedTexImage1D
+#define glCompressedTexImage2D dolCompressedTexImage2D
+#define glCompressedTexImage3D dolCompressedTexImage3D
+#define glCompressedTexSubImage1D dolCompressedTexSubImage1D
+#define glCompressedTexSubImage2D dolCompressedTexSubImage2D
+#define glCompressedTexSubImage3D dolCompressedTexSubImage3D
+#define glGetCompressedTexImage dolGetCompressedTexImage
+#define glLoadTransposeMatrixd dolLoadTransposeMatrixd
+#define glLoadTransposeMatrixf dolLoadTransposeMatrixf
+#define glMultTransposeMatrixd dolMultTransposeMatrixd
+#define glMultTransposeMatrixf dolMultTransposeMatrixf
+#define glMultiTexCoord1d dolMultiTexCoord1d
+#define glMultiTexCoord1dv dolMultiTexCoord1dv
+#define glMultiTexCoord1f dolMultiTexCoord1f
+#define glMultiTexCoord1fv dolMultiTexCoord1fv
+#define glMultiTexCoord1i dolMultiTexCoord1i
+#define glMultiTexCoord1iv dolMultiTexCoord1iv
+#define glMultiTexCoord1s dolMultiTexCoord1s
+#define glMultiTexCoord1sv dolMultiTexCoord1sv
+#define glMultiTexCoord2d dolMultiTexCoord2d
+#define glMultiTexCoord2dv dolMultiTexCoord2dv
+#define glMultiTexCoord2f dolMultiTexCoord2f
+#define glMultiTexCoord2fv dolMultiTexCoord2fv
+#define glMultiTexCoord2i dolMultiTexCoord2i
+#define glMultiTexCoord2iv dolMultiTexCoord2iv
+#define glMultiTexCoord2s dolMultiTexCoord2s
+#define glMultiTexCoord2sv dolMultiTexCoord2sv
+#define glMultiTexCoord3d dolMultiTexCoord3d
+#define glMultiTexCoord3dv dolMultiTexCoord3dv
+#define glMultiTexCoord3f dolMultiTexCoord3f
+#define glMultiTexCoord3fv dolMultiTexCoord3fv
+#define glMultiTexCoord3i dolMultiTexCoord3i
+#define glMultiTexCoord3iv dolMultiTexCoord3iv
+#define glMultiTexCoord3s dolMultiTexCoord3s
+#define glMultiTexCoord3sv dolMultiTexCoord3sv
+#define glMultiTexCoord4d dolMultiTexCoord4d
+#define glMultiTexCoord4dv dolMultiTexCoord4dv
+#define glMultiTexCoord4f dolMultiTexCoord4f
+#define glMultiTexCoord4fv dolMultiTexCoord4fv
+#define glMultiTexCoord4i dolMultiTexCoord4i
+#define glMultiTexCoord4iv dolMultiTexCoord4iv
+#define glMultiTexCoord4s dolMultiTexCoord4s
+#define glMultiTexCoord4sv dolMultiTexCoord4sv
+#define glSampleCoverage dolSampleCoverage
diff --git a/Source/Core/Common/GL/GLExtensions/gl_1_4.h b/Source/Core/Common/GL/GLExtensions/gl_1_4.h
index a956912051..1c0ce3641d 100644
--- a/Source/Core/Common/GL/GLExtensions/gl_1_4.h
+++ b/Source/Core/Common/GL/GLExtensions/gl_1_4.h
@@ -1,55 +1,218 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-// These two are provided by ARB_imaging as well
-extern PFNGLBLENDCOLORPROC glBlendColor;
-extern PFNGLBLENDEQUATIONPROC glBlendEquation;
-extern PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate;
-extern PFNGLFOGCOORDPOINTERPROC glFogCoordPointer;
-extern PFNGLFOGCOORDDPROC glFogCoordd;
-extern PFNGLFOGCOORDDVPROC glFogCoorddv;
-extern PFNGLFOGCOORDFPROC glFogCoordf;
-extern PFNGLFOGCOORDFVPROC glFogCoordfv;
-extern PFNGLMULTIDRAWARRAYSPROC glMultiDrawArrays;
-extern PFNGLMULTIDRAWELEMENTSPROC glMultiDrawElements;
-extern PFNGLPOINTPARAMETERFPROC glPointParameterf;
-extern PFNGLPOINTPARAMETERFVPROC glPointParameterfv;
-extern PFNGLPOINTPARAMETERIPROC glPointParameteri;
-extern PFNGLPOINTPARAMETERIVPROC glPointParameteriv;
-extern PFNGLSECONDARYCOLOR3BPROC glSecondaryColor3b;
-extern PFNGLSECONDARYCOLOR3BVPROC glSecondaryColor3bv;
-extern PFNGLSECONDARYCOLOR3DPROC glSecondaryColor3d;
-extern PFNGLSECONDARYCOLOR3DVPROC glSecondaryColor3dv;
-extern PFNGLSECONDARYCOLOR3FPROC glSecondaryColor3f;
-extern PFNGLSECONDARYCOLOR3FVPROC glSecondaryColor3fv;
-extern PFNGLSECONDARYCOLOR3IPROC glSecondaryColor3i;
-extern PFNGLSECONDARYCOLOR3IVPROC glSecondaryColor3iv;
-extern PFNGLSECONDARYCOLOR3SPROC glSecondaryColor3s;
-extern PFNGLSECONDARYCOLOR3SVPROC glSecondaryColor3sv;
-extern PFNGLSECONDARYCOLOR3UBPROC glSecondaryColor3ub;
-extern PFNGLSECONDARYCOLOR3UBVPROC glSecondaryColor3ubv;
-extern PFNGLSECONDARYCOLOR3UIPROC glSecondaryColor3ui;
-extern PFNGLSECONDARYCOLOR3UIVPROC glSecondaryColor3uiv;
-extern PFNGLSECONDARYCOLOR3USPROC glSecondaryColor3us;
-extern PFNGLSECONDARYCOLOR3USVPROC glSecondaryColor3usv;
-extern PFNGLSECONDARYCOLORPOINTERPROC glSecondaryColorPointer;
-extern PFNGLWINDOWPOS2DPROC glWindowPos2d;
-extern PFNGLWINDOWPOS2DVPROC glWindowPos2dv;
-extern PFNGLWINDOWPOS2FPROC glWindowPos2f;
-extern PFNGLWINDOWPOS2FVPROC glWindowPos2fv;
-extern PFNGLWINDOWPOS2IPROC glWindowPos2i;
-extern PFNGLWINDOWPOS2IVPROC glWindowPos2iv;
-extern PFNGLWINDOWPOS2SPROC glWindowPos2s;
-extern PFNGLWINDOWPOS2SVPROC glWindowPos2sv;
-extern PFNGLWINDOWPOS3DPROC glWindowPos3d;
-extern PFNGLWINDOWPOS3DVPROC glWindowPos3dv;
-extern PFNGLWINDOWPOS3FPROC glWindowPos3f;
-extern PFNGLWINDOWPOS3FVPROC glWindowPos3fv;
-extern PFNGLWINDOWPOS3IPROC glWindowPos3i;
-extern PFNGLWINDOWPOS3IVPROC glWindowPos3iv;
-extern PFNGLWINDOWPOS3SPROC glWindowPos3s;
-extern PFNGLWINDOWPOS3SVPROC glWindowPos3sv;
+#define GL_BLEND_DST_RGB 0x80C8
+#define GL_BLEND_SRC_RGB 0x80C9
+#define GL_BLEND_DST_ALPHA 0x80CA
+#define GL_BLEND_SRC_ALPHA 0x80CB
+#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
+#define GL_DEPTH_COMPONENT16 0x81A5
+#define GL_DEPTH_COMPONENT24 0x81A6
+#define GL_DEPTH_COMPONENT32 0x81A7
+#define GL_MIRRORED_REPEAT 0x8370
+#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
+#define GL_TEXTURE_LOD_BIAS 0x8501
+#define GL_INCR_WRAP 0x8507
+#define GL_DECR_WRAP 0x8508
+#define GL_TEXTURE_DEPTH_SIZE 0x884A
+#define GL_TEXTURE_COMPARE_MODE 0x884C
+#define GL_TEXTURE_COMPARE_FUNC 0x884D
+#define GL_POINT_SIZE_MIN 0x8126
+#define GL_POINT_SIZE_MAX 0x8127
+#define GL_POINT_DISTANCE_ATTENUATION 0x8129
+#define GL_GENERATE_MIPMAP 0x8191
+#define GL_GENERATE_MIPMAP_HINT 0x8192
+#define GL_FOG_COORDINATE_SOURCE 0x8450
+#define GL_FOG_COORDINATE 0x8451
+#define GL_FRAGMENT_DEPTH 0x8452
+#define GL_CURRENT_FOG_COORDINATE 0x8453
+#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454
+#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455
+#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456
+#define GL_FOG_COORDINATE_ARRAY 0x8457
+#define GL_COLOR_SUM 0x8458
+#define GL_CURRENT_SECONDARY_COLOR 0x8459
+#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A
+#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B
+#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C
+#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D
+#define GL_SECONDARY_COLOR_ARRAY 0x845E
+#define GL_TEXTURE_FILTER_CONTROL 0x8500
+#define GL_DEPTH_TEXTURE_MODE 0x884B
+#define GL_COMPARE_R_TO_TEXTURE 0x884E
+#define GL_FUNC_ADD 0x8006
+#define GL_FUNC_SUBTRACT 0x800A
+#define GL_FUNC_REVERSE_SUBTRACT 0x800B
+#define GL_MIN 0x8007
+#define GL_MAX 0x8008
+#define GL_CONSTANT_COLOR 0x8001
+#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
+#define GL_CONSTANT_ALPHA 0x8003
+#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
+typedef void (APIENTRYP PFNDOLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+typedef void (APIENTRYP PFNDOLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount);
+typedef void (APIENTRYP PFNDOLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount);
+typedef void (APIENTRYP PFNDOLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNDOLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNDOLPOINTPARAMETERIPROC) (GLenum pname, GLint param);
+typedef void (APIENTRYP PFNDOLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNDOLFOGCOORDFPROC) (GLfloat coord);
+typedef void (APIENTRYP PFNDOLFOGCOORDFVPROC) (const GLfloat *coord);
+typedef void (APIENTRYP PFNDOLFOGCOORDDPROC) (GLdouble coord);
+typedef void (APIENTRYP PFNDOLFOGCOORDDVPROC) (const GLdouble *coord);
+typedef void (APIENTRYP PFNDOLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const void *pointer);
+typedef void (APIENTRYP PFNDOLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue);
+typedef void (APIENTRYP PFNDOLSECONDARYCOLOR3BVPROC) (const GLbyte *v);
+typedef void (APIENTRYP PFNDOLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue);
+typedef void (APIENTRYP PFNDOLSECONDARYCOLOR3DVPROC) (const GLdouble *v);
+typedef void (APIENTRYP PFNDOLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue);
+typedef void (APIENTRYP PFNDOLSECONDARYCOLOR3FVPROC) (const GLfloat *v);
+typedef void (APIENTRYP PFNDOLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue);
+typedef void (APIENTRYP PFNDOLSECONDARYCOLOR3IVPROC) (const GLint *v);
+typedef void (APIENTRYP PFNDOLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue);
+typedef void (APIENTRYP PFNDOLSECONDARYCOLOR3SVPROC) (const GLshort *v);
+typedef void (APIENTRYP PFNDOLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue);
+typedef void (APIENTRYP PFNDOLSECONDARYCOLOR3UBVPROC) (const GLubyte *v);
+typedef void (APIENTRYP PFNDOLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue);
+typedef void (APIENTRYP PFNDOLSECONDARYCOLOR3UIVPROC) (const GLuint *v);
+typedef void (APIENTRYP PFNDOLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue);
+typedef void (APIENTRYP PFNDOLSECONDARYCOLOR3USVPROC) (const GLushort *v);
+typedef void (APIENTRYP PFNDOLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer);
+typedef void (APIENTRYP PFNDOLWINDOWPOS2DPROC) (GLdouble x, GLdouble y);
+typedef void (APIENTRYP PFNDOLWINDOWPOS2DVPROC) (const GLdouble *v);
+typedef void (APIENTRYP PFNDOLWINDOWPOS2FPROC) (GLfloat x, GLfloat y);
+typedef void (APIENTRYP PFNDOLWINDOWPOS2FVPROC) (const GLfloat *v);
+typedef void (APIENTRYP PFNDOLWINDOWPOS2IPROC) (GLint x, GLint y);
+typedef void (APIENTRYP PFNDOLWINDOWPOS2IVPROC) (const GLint *v);
+typedef void (APIENTRYP PFNDOLWINDOWPOS2SPROC) (GLshort x, GLshort y);
+typedef void (APIENTRYP PFNDOLWINDOWPOS2SVPROC) (const GLshort *v);
+typedef void (APIENTRYP PFNDOLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNDOLWINDOWPOS3DVPROC) (const GLdouble *v);
+typedef void (APIENTRYP PFNDOLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNDOLWINDOWPOS3FVPROC) (const GLfloat *v);
+typedef void (APIENTRYP PFNDOLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z);
+typedef void (APIENTRYP PFNDOLWINDOWPOS3IVPROC) (const GLint *v);
+typedef void (APIENTRYP PFNDOLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRYP PFNDOLWINDOWPOS3SVPROC) (const GLshort *v);
+typedef void (APIENTRYP PFNDOLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+typedef void (APIENTRYP PFNDOLBLENDEQUATIONPROC) (GLenum mode);
+
+// These two are provided by ARB_imaging as well
+extern PFNDOLBLENDCOLORPROC dolBlendColor;
+extern PFNDOLBLENDEQUATIONPROC dolBlendEquation;
+extern PFNDOLBLENDFUNCSEPARATEPROC dolBlendFuncSeparate;
+extern PFNDOLFOGCOORDPOINTERPROC dolFogCoordPointer;
+extern PFNDOLFOGCOORDDPROC dolFogCoordd;
+extern PFNDOLFOGCOORDDVPROC dolFogCoorddv;
+extern PFNDOLFOGCOORDFPROC dolFogCoordf;
+extern PFNDOLFOGCOORDFVPROC dolFogCoordfv;
+extern PFNDOLMULTIDRAWARRAYSPROC dolMultiDrawArrays;
+extern PFNDOLMULTIDRAWELEMENTSPROC dolMultiDrawElements;
+extern PFNDOLPOINTPARAMETERFPROC dolPointParameterf;
+extern PFNDOLPOINTPARAMETERFVPROC dolPointParameterfv;
+extern PFNDOLPOINTPARAMETERIPROC dolPointParameteri;
+extern PFNDOLPOINTPARAMETERIVPROC dolPointParameteriv;
+extern PFNDOLSECONDARYCOLOR3BPROC dolSecondaryColor3b;
+extern PFNDOLSECONDARYCOLOR3BVPROC dolSecondaryColor3bv;
+extern PFNDOLSECONDARYCOLOR3DPROC dolSecondaryColor3d;
+extern PFNDOLSECONDARYCOLOR3DVPROC dolSecondaryColor3dv;
+extern PFNDOLSECONDARYCOLOR3FPROC dolSecondaryColor3f;
+extern PFNDOLSECONDARYCOLOR3FVPROC dolSecondaryColor3fv;
+extern PFNDOLSECONDARYCOLOR3IPROC dolSecondaryColor3i;
+extern PFNDOLSECONDARYCOLOR3IVPROC dolSecondaryColor3iv;
+extern PFNDOLSECONDARYCOLOR3SPROC dolSecondaryColor3s;
+extern PFNDOLSECONDARYCOLOR3SVPROC dolSecondaryColor3sv;
+extern PFNDOLSECONDARYCOLOR3UBPROC dolSecondaryColor3ub;
+extern PFNDOLSECONDARYCOLOR3UBVPROC dolSecondaryColor3ubv;
+extern PFNDOLSECONDARYCOLOR3UIPROC dolSecondaryColor3ui;
+extern PFNDOLSECONDARYCOLOR3UIVPROC dolSecondaryColor3uiv;
+extern PFNDOLSECONDARYCOLOR3USPROC dolSecondaryColor3us;
+extern PFNDOLSECONDARYCOLOR3USVPROC dolSecondaryColor3usv;
+extern PFNDOLSECONDARYCOLORPOINTERPROC dolSecondaryColorPointer;
+extern PFNDOLWINDOWPOS2DPROC dolWindowPos2d;
+extern PFNDOLWINDOWPOS2DVPROC dolWindowPos2dv;
+extern PFNDOLWINDOWPOS2FPROC dolWindowPos2f;
+extern PFNDOLWINDOWPOS2FVPROC dolWindowPos2fv;
+extern PFNDOLWINDOWPOS2IPROC dolWindowPos2i;
+extern PFNDOLWINDOWPOS2IVPROC dolWindowPos2iv;
+extern PFNDOLWINDOWPOS2SPROC dolWindowPos2s;
+extern PFNDOLWINDOWPOS2SVPROC dolWindowPos2sv;
+extern PFNDOLWINDOWPOS3DPROC dolWindowPos3d;
+extern PFNDOLWINDOWPOS3DVPROC dolWindowPos3dv;
+extern PFNDOLWINDOWPOS3FPROC dolWindowPos3f;
+extern PFNDOLWINDOWPOS3FVPROC dolWindowPos3fv;
+extern PFNDOLWINDOWPOS3IPROC dolWindowPos3i;
+extern PFNDOLWINDOWPOS3IVPROC dolWindowPos3iv;
+extern PFNDOLWINDOWPOS3SPROC dolWindowPos3s;
+extern PFNDOLWINDOWPOS3SVPROC dolWindowPos3sv;
+
+#define glBlendColor dolBlendColor
+#define glBlendEquation dolBlendEquation
+#define glBlendFuncSeparate dolBlendFuncSeparate
+#define glFogCoordPointer dolFogCoordPointer
+#define glFogCoordd dolFogCoordd
+#define glFogCoorddv dolFogCoorddv
+#define glFogCoordf dolFogCoordf
+#define glFogCoordfv dolFogCoordfv
+#define glMultiDrawArrays dolMultiDrawArrays
+#define glMultiDrawElements dolMultiDrawElements
+#define glPointParameterf dolPointParameterf
+#define glPointParameterfv dolPointParameterfv
+#define glPointParameteri dolPointParameteri
+#define glPointParameteriv dolPointParameteriv
+#define glSecondaryColor3b dolSecondaryColor3b
+#define glSecondaryColor3bv dolSecondaryColor3bv
+#define glSecondaryColor3d dolSecondaryColor3d
+#define glSecondaryColor3dv dolSecondaryColor3dv
+#define glSecondaryColor3f dolSecondaryColor3f
+#define glSecondaryColor3fv dolSecondaryColor3fv
+#define glSecondaryColor3i dolSecondaryColor3i
+#define glSecondaryColor3iv dolSecondaryColor3iv
+#define glSecondaryColor3s dolSecondaryColor3s
+#define glSecondaryColor3sv dolSecondaryColor3sv
+#define glSecondaryColor3ub dolSecondaryColor3ub
+#define glSecondaryColor3ubv dolSecondaryColor3ubv
+#define glSecondaryColor3ui dolSecondaryColor3ui
+#define glSecondaryColor3uiv dolSecondaryColor3uiv
+#define glSecondaryColor3us dolSecondaryColor3us
+#define glSecondaryColor3usv dolSecondaryColor3usv
+#define glSecondaryColorPointer dolSecondaryColorPointer
+#define glWindowPos2d dolWindowPos2d
+#define glWindowPos2dv dolWindowPos2dv
+#define glWindowPos2f dolWindowPos2f
+#define glWindowPos2fv dolWindowPos2fv
+#define glWindowPos2i dolWindowPos2i
+#define glWindowPos2iv dolWindowPos2iv
+#define glWindowPos2s dolWindowPos2s
+#define glWindowPos2sv dolWindowPos2sv
+#define glWindowPos3d dolWindowPos3d
+#define glWindowPos3dv dolWindowPos3dv
+#define glWindowPos3f dolWindowPos3f
+#define glWindowPos3fv dolWindowPos3fv
+#define glWindowPos3i dolWindowPos3i
+#define glWindowPos3iv dolWindowPos3iv
+#define glWindowPos3s dolWindowPos3s
+#define glWindowPos3sv dolWindowPos3sv
diff --git a/Source/Core/Common/GL/GLExtensions/gl_1_5.h b/Source/Core/Common/GL/GLExtensions/gl_1_5.h
index b81cb33712..2867182984 100644
--- a/Source/Core/Common/GL/GLExtensions/gl_1_5.h
+++ b/Source/Core/Common/GL/GLExtensions/gl_1_5.h
@@ -1,26 +1,135 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLBEGINQUERYPROC glBeginQuery;
-extern PFNGLBINDBUFFERPROC glBindBuffer;
-extern PFNGLBUFFERDATAPROC glBufferData;
-extern PFNGLBUFFERSUBDATAPROC glBufferSubData;
-extern PFNGLDELETEBUFFERSPROC glDeleteBuffers;
-extern PFNGLDELETEQUERIESPROC glDeleteQueries;
-extern PFNGLENDQUERYPROC glEndQuery;
-extern PFNGLGENBUFFERSPROC glGenBuffers;
-extern PFNGLGENQUERIESPROC glGenQueries;
-extern PFNGLGETBUFFERPARAMETERIVPROC glGetBufferParameteriv;
-extern PFNGLGETBUFFERPOINTERVPROC glGetBufferPointerv;
-extern PFNGLGETBUFFERSUBDATAPROC glGetBufferSubData;
-extern PFNGLGETQUERYOBJECTIVPROC glGetQueryObjectiv;
-extern PFNGLGETQUERYOBJECTUIVPROC glGetQueryObjectuiv;
-extern PFNGLGETQUERYIVPROC glGetQueryiv;
-extern PFNGLISBUFFERPROC glIsBuffer;
-extern PFNGLISQUERYPROC glIsQuery;
-extern PFNGLMAPBUFFERPROC glMapBuffer;
-extern PFNGLUNMAPBUFFERPROC glUnmapBuffer;
+#define GL_BUFFER_SIZE 0x8764
+#define GL_BUFFER_USAGE 0x8765
+#define GL_QUERY_COUNTER_BITS 0x8864
+#define GL_CURRENT_QUERY 0x8865
+#define GL_QUERY_RESULT 0x8866
+#define GL_QUERY_RESULT_AVAILABLE 0x8867
+#define GL_ARRAY_BUFFER 0x8892
+#define GL_ELEMENT_ARRAY_BUFFER 0x8893
+#define GL_ARRAY_BUFFER_BINDING 0x8894
+#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
+#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
+#define GL_READ_ONLY 0x88B8
+#define GL_WRITE_ONLY 0x88B9
+#define GL_READ_WRITE 0x88BA
+#define GL_BUFFER_ACCESS 0x88BB
+#define GL_BUFFER_MAPPED 0x88BC
+#define GL_BUFFER_MAP_POINTER 0x88BD
+#define GL_STREAM_DRAW 0x88E0
+#define GL_STREAM_READ 0x88E1
+#define GL_STREAM_COPY 0x88E2
+#define GL_STATIC_DRAW 0x88E4
+#define GL_STATIC_READ 0x88E5
+#define GL_STATIC_COPY 0x88E6
+#define GL_DYNAMIC_DRAW 0x88E8
+#define GL_DYNAMIC_READ 0x88E9
+#define GL_DYNAMIC_COPY 0x88EA
+#define GL_SAMPLES_PASSED 0x8914
+#define GL_SRC1_ALPHA 0x8589
+#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896
+#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897
+#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898
+#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899
+#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A
+#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B
+#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C
+#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D
+#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E
+#define GL_FOG_COORD_SRC 0x8450
+#define GL_FOG_COORD 0x8451
+#define GL_CURRENT_FOG_COORD 0x8453
+#define GL_FOG_COORD_ARRAY_TYPE 0x8454
+#define GL_FOG_COORD_ARRAY_STRIDE 0x8455
+#define GL_FOG_COORD_ARRAY_POINTER 0x8456
+#define GL_FOG_COORD_ARRAY 0x8457
+#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D
+#define GL_SRC0_RGB 0x8580
+#define GL_SRC1_RGB 0x8581
+#define GL_SRC2_RGB 0x8582
+#define GL_SRC0_ALPHA 0x8588
+#define GL_SRC2_ALPHA 0x858A
+typedef void (APIENTRYP PFNDOLGENQUERIESPROC) (GLsizei n, GLuint *ids);
+typedef void (APIENTRYP PFNDOLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids);
+typedef GLboolean (APIENTRYP PFNDOLISQUERYPROC) (GLuint id);
+typedef void (APIENTRYP PFNDOLBEGINQUERYPROC) (GLenum target, GLuint id);
+typedef void (APIENTRYP PFNDOLENDQUERYPROC) (GLenum target);
+typedef void (APIENTRYP PFNDOLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNDOLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNDOLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params);
+typedef void (APIENTRYP PFNDOLBINDBUFFERPROC) (GLenum target, GLuint buffer);
+typedef void (APIENTRYP PFNDOLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers);
+typedef void (APIENTRYP PFNDOLGENBUFFERSPROC) (GLsizei n, GLuint *buffers);
+typedef GLboolean (APIENTRYP PFNDOLISBUFFERPROC) (GLuint buffer);
+typedef void (APIENTRYP PFNDOLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage);
+typedef void (APIENTRYP PFNDOLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
+typedef void (APIENTRYP PFNDOLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, void *data);
+typedef void *(APIENTRYP PFNDOLMAPBUFFERPROC) (GLenum target, GLenum access);
+typedef GLboolean (APIENTRYP PFNDOLUNMAPBUFFERPROC) (GLenum target);
+typedef void (APIENTRYP PFNDOLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNDOLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params);
+
+extern PFNDOLBEGINQUERYPROC dolBeginQuery;
+extern PFNDOLBINDBUFFERPROC dolBindBuffer;
+extern PFNDOLBUFFERDATAPROC dolBufferData;
+extern PFNDOLBUFFERSUBDATAPROC dolBufferSubData;
+extern PFNDOLDELETEBUFFERSPROC dolDeleteBuffers;
+extern PFNDOLDELETEQUERIESPROC dolDeleteQueries;
+extern PFNDOLENDQUERYPROC dolEndQuery;
+extern PFNDOLGENBUFFERSPROC dolGenBuffers;
+extern PFNDOLGENQUERIESPROC dolGenQueries;
+extern PFNDOLGETBUFFERPARAMETERIVPROC dolGetBufferParameteriv;
+extern PFNDOLGETBUFFERPOINTERVPROC dolGetBufferPointerv;
+extern PFNDOLGETBUFFERSUBDATAPROC dolGetBufferSubData;
+extern PFNDOLGETQUERYOBJECTIVPROC dolGetQueryObjectiv;
+extern PFNDOLGETQUERYOBJECTUIVPROC dolGetQueryObjectuiv;
+extern PFNDOLGETQUERYIVPROC dolGetQueryiv;
+extern PFNDOLISBUFFERPROC dolIsBuffer;
+extern PFNDOLISQUERYPROC dolIsQuery;
+extern PFNDOLMAPBUFFERPROC dolMapBuffer;
+extern PFNDOLUNMAPBUFFERPROC dolUnmapBuffer;
+
+#define glBeginQuery dolBeginQuery
+#define glBindBuffer dolBindBuffer
+#define glBufferData dolBufferData
+#define glBufferSubData dolBufferSubData
+#define glDeleteBuffers dolDeleteBuffers
+#define glDeleteQueries dolDeleteQueries
+#define glEndQuery dolEndQuery
+#define glGenBuffers dolGenBuffers
+#define glGenQueries dolGenQueries
+#define glGetBufferParameteriv dolGetBufferParameteriv
+#define glGetBufferPointerv dolGetBufferPointerv
+#define glGetBufferSubData dolGetBufferSubData
+#define glGetQueryObjectiv dolGetQueryObjectiv
+#define glGetQueryObjectuiv dolGetQueryObjectuiv
+#define glGetQueryiv dolGetQueryiv
+#define glIsBuffer dolIsBuffer
+#define glIsQuery dolIsQuery
+#define glMapBuffer dolMapBuffer
+#define glUnmapBuffer dolUnmapBuffer
diff --git a/Source/Core/Common/GL/GLExtensions/gl_2_0.h b/Source/Core/Common/GL/GLExtensions/gl_2_0.h
index aa71e343e5..acac1d80f0 100644
--- a/Source/Core/Common/GL/GLExtensions/gl_2_0.h
+++ b/Source/Core/Common/GL/GLExtensions/gl_2_0.h
@@ -1,100 +1,391 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLATTACHSHADERPROC glAttachShader;
-extern PFNGLBINDATTRIBLOCATIONPROC glBindAttribLocation;
-extern PFNGLBLENDEQUATIONSEPARATEPROC glBlendEquationSeparate;
-extern PFNGLCOMPILESHADERPROC glCompileShader;
-extern PFNGLCREATEPROGRAMPROC glCreateProgram;
-extern PFNGLCREATESHADERPROC glCreateShader;
-extern PFNGLDELETEPROGRAMPROC glDeleteProgram;
-extern PFNGLDELETESHADERPROC glDeleteShader;
-extern PFNGLDETACHSHADERPROC glDetachShader;
-extern PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray;
-extern PFNGLDRAWBUFFERSPROC glDrawBuffers;
-extern PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray;
-extern PFNGLGETACTIVEATTRIBPROC glGetActiveAttrib;
-extern PFNGLGETACTIVEUNIFORMPROC glGetActiveUniform;
-extern PFNGLGETATTACHEDSHADERSPROC glGetAttachedShaders;
-extern PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation;
-extern PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog;
-extern PFNGLGETPROGRAMIVPROC glGetProgramiv;
-extern PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog;
-extern PFNGLGETSHADERSOURCEPROC glGetShaderSource;
-extern PFNGLGETSHADERIVPROC glGetShaderiv;
-extern PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation;
-extern PFNGLGETUNIFORMFVPROC glGetUniformfv;
-extern PFNGLGETUNIFORMIVPROC glGetUniformiv;
-extern PFNGLGETVERTEXATTRIBPOINTERVPROC glGetVertexAttribPointerv;
-extern PFNGLGETVERTEXATTRIBDVPROC glGetVertexAttribdv;
-extern PFNGLGETVERTEXATTRIBFVPROC glGetVertexAttribfv;
-extern PFNGLGETVERTEXATTRIBIVPROC glGetVertexAttribiv;
-extern PFNGLISPROGRAMPROC glIsProgram;
-extern PFNGLISSHADERPROC glIsShader;
-extern PFNGLLINKPROGRAMPROC glLinkProgram;
-extern PFNGLSHADERSOURCEPROC glShaderSource;
-extern PFNGLSTENCILFUNCSEPARATEPROC glStencilFuncSeparate;
-extern PFNGLSTENCILMASKSEPARATEPROC glStencilMaskSeparate;
-extern PFNGLSTENCILOPSEPARATEPROC glStencilOpSeparate;
-extern PFNGLUNIFORM1FPROC glUniform1f;
-extern PFNGLUNIFORM1FVPROC glUniform1fv;
-extern PFNGLUNIFORM1IPROC glUniform1i;
-extern PFNGLUNIFORM1IVPROC glUniform1iv;
-extern PFNGLUNIFORM2FPROC glUniform2f;
-extern PFNGLUNIFORM2FVPROC glUniform2fv;
-extern PFNGLUNIFORM2IPROC glUniform2i;
-extern PFNGLUNIFORM2IVPROC glUniform2iv;
-extern PFNGLUNIFORM3FPROC glUniform3f;
-extern PFNGLUNIFORM3FVPROC glUniform3fv;
-extern PFNGLUNIFORM3IPROC glUniform3i;
-extern PFNGLUNIFORM3IVPROC glUniform3iv;
-extern PFNGLUNIFORM4FPROC glUniform4f;
-extern PFNGLUNIFORM4FVPROC glUniform4fv;
-extern PFNGLUNIFORM4IPROC glUniform4i;
-extern PFNGLUNIFORM4IVPROC glUniform4iv;
-extern PFNGLUNIFORMMATRIX2FVPROC glUniformMatrix2fv;
-extern PFNGLUNIFORMMATRIX3FVPROC glUniformMatrix3fv;
-extern PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv;
-extern PFNGLUSEPROGRAMPROC glUseProgram;
-extern PFNGLVALIDATEPROGRAMPROC glValidateProgram;
-extern PFNGLVERTEXATTRIB1DPROC glVertexAttrib1d;
-extern PFNGLVERTEXATTRIB1DVPROC glVertexAttrib1dv;
-extern PFNGLVERTEXATTRIB1FPROC glVertexAttrib1f;
-extern PFNGLVERTEXATTRIB1FVPROC glVertexAttrib1fv;
-extern PFNGLVERTEXATTRIB1SPROC glVertexAttrib1s;
-extern PFNGLVERTEXATTRIB1SVPROC glVertexAttrib1sv;
-extern PFNGLVERTEXATTRIB2DPROC glVertexAttrib2d;
-extern PFNGLVERTEXATTRIB2DVPROC glVertexAttrib2dv;
-extern PFNGLVERTEXATTRIB2FPROC glVertexAttrib2f;
-extern PFNGLVERTEXATTRIB2FVPROC glVertexAttrib2fv;
-extern PFNGLVERTEXATTRIB2SPROC glVertexAttrib2s;
-extern PFNGLVERTEXATTRIB2SVPROC glVertexAttrib2sv;
-extern PFNGLVERTEXATTRIB3DPROC glVertexAttrib3d;
-extern PFNGLVERTEXATTRIB3DVPROC glVertexAttrib3dv;
-extern PFNGLVERTEXATTRIB3FPROC glVertexAttrib3f;
-extern PFNGLVERTEXATTRIB3FVPROC glVertexAttrib3fv;
-extern PFNGLVERTEXATTRIB3SPROC glVertexAttrib3s;
-extern PFNGLVERTEXATTRIB3SVPROC glVertexAttrib3sv;
-extern PFNGLVERTEXATTRIB4NBVPROC glVertexAttrib4Nbv;
-extern PFNGLVERTEXATTRIB4NIVPROC glVertexAttrib4Niv;
-extern PFNGLVERTEXATTRIB4NSVPROC glVertexAttrib4Nsv;
-extern PFNGLVERTEXATTRIB4NUBPROC glVertexAttrib4Nub;
-extern PFNGLVERTEXATTRIB4NUBVPROC glVertexAttrib4Nubv;
-extern PFNGLVERTEXATTRIB4NUIVPROC glVertexAttrib4Nuiv;
-extern PFNGLVERTEXATTRIB4NUSVPROC glVertexAttrib4Nusv;
-extern PFNGLVERTEXATTRIB4BVPROC glVertexAttrib4bv;
-extern PFNGLVERTEXATTRIB4DPROC glVertexAttrib4d;
-extern PFNGLVERTEXATTRIB4DVPROC glVertexAttrib4dv;
-extern PFNGLVERTEXATTRIB4FPROC glVertexAttrib4f;
-extern PFNGLVERTEXATTRIB4FVPROC glVertexAttrib4fv;
-extern PFNGLVERTEXATTRIB4IVPROC glVertexAttrib4iv;
-extern PFNGLVERTEXATTRIB4SPROC glVertexAttrib4s;
-extern PFNGLVERTEXATTRIB4SVPROC glVertexAttrib4sv;
-extern PFNGLVERTEXATTRIB4UBVPROC glVertexAttrib4ubv;
-extern PFNGLVERTEXATTRIB4UIVPROC glVertexAttrib4uiv;
-extern PFNGLVERTEXATTRIB4USVPROC glVertexAttrib4usv;
-extern PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer;
+#define GL_BLEND_EQUATION_RGB 0x8009
+#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
+#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
+#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
+#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
+#define GL_CURRENT_VERTEX_ATTRIB 0x8626
+#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
+#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
+#define GL_STENCIL_BACK_FUNC 0x8800
+#define GL_STENCIL_BACK_FAIL 0x8801
+#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
+#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
+#define GL_MAX_DRAW_BUFFERS 0x8824
+#define GL_DRAW_BUFFER0 0x8825
+#define GL_DRAW_BUFFER1 0x8826
+#define GL_DRAW_BUFFER2 0x8827
+#define GL_DRAW_BUFFER3 0x8828
+#define GL_DRAW_BUFFER4 0x8829
+#define GL_DRAW_BUFFER5 0x882A
+#define GL_DRAW_BUFFER6 0x882B
+#define GL_DRAW_BUFFER7 0x882C
+#define GL_DRAW_BUFFER8 0x882D
+#define GL_DRAW_BUFFER9 0x882E
+#define GL_DRAW_BUFFER10 0x882F
+#define GL_DRAW_BUFFER11 0x8830
+#define GL_DRAW_BUFFER12 0x8831
+#define GL_DRAW_BUFFER13 0x8832
+#define GL_DRAW_BUFFER14 0x8833
+#define GL_DRAW_BUFFER15 0x8834
+#define GL_BLEND_EQUATION_ALPHA 0x883D
+#define GL_MAX_VERTEX_ATTRIBS 0x8869
+#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
+#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
+#define GL_FRAGMENT_SHADER 0x8B30
+#define GL_VERTEX_SHADER 0x8B31
+#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
+#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
+#define GL_MAX_VARYING_FLOATS 0x8B4B
+#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
+#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
+#define GL_SHADER_TYPE 0x8B4F
+#define GL_FLOAT_VEC2 0x8B50
+#define GL_FLOAT_VEC3 0x8B51
+#define GL_FLOAT_VEC4 0x8B52
+#define GL_INT_VEC2 0x8B53
+#define GL_INT_VEC3 0x8B54
+#define GL_INT_VEC4 0x8B55
+#define GL_BOOL 0x8B56
+#define GL_BOOL_VEC2 0x8B57
+#define GL_BOOL_VEC3 0x8B58
+#define GL_BOOL_VEC4 0x8B59
+#define GL_FLOAT_MAT2 0x8B5A
+#define GL_FLOAT_MAT3 0x8B5B
+#define GL_FLOAT_MAT4 0x8B5C
+#define GL_SAMPLER_1D 0x8B5D
+#define GL_SAMPLER_2D 0x8B5E
+#define GL_SAMPLER_3D 0x8B5F
+#define GL_SAMPLER_CUBE 0x8B60
+#define GL_SAMPLER_1D_SHADOW 0x8B61
+#define GL_SAMPLER_2D_SHADOW 0x8B62
+#define GL_DELETE_STATUS 0x8B80
+#define GL_COMPILE_STATUS 0x8B81
+#define GL_LINK_STATUS 0x8B82
+#define GL_VALIDATE_STATUS 0x8B83
+#define GL_INFO_LOG_LENGTH 0x8B84
+#define GL_ATTACHED_SHADERS 0x8B85
+#define GL_ACTIVE_UNIFORMS 0x8B86
+#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
+#define GL_SHADER_SOURCE_LENGTH 0x8B88
+#define GL_ACTIVE_ATTRIBUTES 0x8B89
+#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
+#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
+#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
+#define GL_CURRENT_PROGRAM 0x8B8D
+#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0
+#define GL_LOWER_LEFT 0x8CA1
+#define GL_UPPER_LEFT 0x8CA2
+#define GL_STENCIL_BACK_REF 0x8CA3
+#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
+#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
+#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643
+#define GL_POINT_SPRITE 0x8861
+#define GL_COORD_REPLACE 0x8862
+#define GL_MAX_TEXTURE_COORDS 0x8871
+typedef void (APIENTRYP PFNDOLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
+typedef void (APIENTRYP PFNDOLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs);
+typedef void (APIENTRYP PFNDOLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+typedef void (APIENTRYP PFNDOLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask);
+typedef void (APIENTRYP PFNDOLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
+typedef void (APIENTRYP PFNDOLATTACHSHADERPROC) (GLuint program, GLuint shader);
+typedef void (APIENTRYP PFNDOLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name);
+typedef void (APIENTRYP PFNDOLCOMPILESHADERPROC) (GLuint shader);
+typedef GLuint (APIENTRYP PFNDOLCREATEPROGRAMPROC) (void);
+typedef GLuint (APIENTRYP PFNDOLCREATESHADERPROC) (GLenum type);
+typedef void (APIENTRYP PFNDOLDELETEPROGRAMPROC) (GLuint program);
+typedef void (APIENTRYP PFNDOLDELETESHADERPROC) (GLuint shader);
+typedef void (APIENTRYP PFNDOLDETACHSHADERPROC) (GLuint program, GLuint shader);
+typedef void (APIENTRYP PFNDOLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
+typedef void (APIENTRYP PFNDOLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
+typedef void (APIENTRYP PFNDOLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
+typedef void (APIENTRYP PFNDOLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
+typedef void (APIENTRYP PFNDOLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
+typedef GLint (APIENTRYP PFNDOLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name);
+typedef void (APIENTRYP PFNDOLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNDOLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
+typedef void (APIENTRYP PFNDOLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNDOLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
+typedef void (APIENTRYP PFNDOLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
+typedef GLint (APIENTRYP PFNDOLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name);
+typedef void (APIENTRYP PFNDOLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params);
+typedef void (APIENTRYP PFNDOLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params);
+typedef void (APIENTRYP PFNDOLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params);
+typedef void (APIENTRYP PFNDOLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNDOLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNDOLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer);
+typedef GLboolean (APIENTRYP PFNDOLISPROGRAMPROC) (GLuint program);
+typedef GLboolean (APIENTRYP PFNDOLISSHADERPROC) (GLuint shader);
+typedef void (APIENTRYP PFNDOLLINKPROGRAMPROC) (GLuint program);
+typedef void (APIENTRYP PFNDOLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
+typedef void (APIENTRYP PFNDOLUSEPROGRAMPROC) (GLuint program);
+typedef void (APIENTRYP PFNDOLUNIFORM1FPROC) (GLint location, GLfloat v0);
+typedef void (APIENTRYP PFNDOLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
+typedef void (APIENTRYP PFNDOLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void (APIENTRYP PFNDOLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void (APIENTRYP PFNDOLUNIFORM1IPROC) (GLint location, GLint v0);
+typedef void (APIENTRYP PFNDOLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
+typedef void (APIENTRYP PFNDOLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
+typedef void (APIENTRYP PFNDOLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+typedef void (APIENTRYP PFNDOLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNDOLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNDOLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNDOLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNDOLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNDOLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNDOLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNDOLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNDOLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNDOLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNDOLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNDOLVALIDATEPROGRAMPROC) (GLuint program);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB1SPROC) (GLuint index, GLshort x);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
+
+extern PFNDOLATTACHSHADERPROC dolAttachShader;
+extern PFNDOLBINDATTRIBLOCATIONPROC dolBindAttribLocation;
+extern PFNDOLBLENDEQUATIONSEPARATEPROC dolBlendEquationSeparate;
+extern PFNDOLCOMPILESHADERPROC dolCompileShader;
+extern PFNDOLCREATEPROGRAMPROC dolCreateProgram;
+extern PFNDOLCREATESHADERPROC dolCreateShader;
+extern PFNDOLDELETEPROGRAMPROC dolDeleteProgram;
+extern PFNDOLDELETESHADERPROC dolDeleteShader;
+extern PFNDOLDETACHSHADERPROC dolDetachShader;
+extern PFNDOLDISABLEVERTEXATTRIBARRAYPROC dolDisableVertexAttribArray;
+extern PFNDOLDRAWBUFFERSPROC dolDrawBuffers;
+extern PFNDOLENABLEVERTEXATTRIBARRAYPROC dolEnableVertexAttribArray;
+extern PFNDOLGETACTIVEATTRIBPROC dolGetActiveAttrib;
+extern PFNDOLGETACTIVEUNIFORMPROC dolGetActiveUniform;
+extern PFNDOLGETATTACHEDSHADERSPROC dolGetAttachedShaders;
+extern PFNDOLGETATTRIBLOCATIONPROC dolGetAttribLocation;
+extern PFNDOLGETPROGRAMINFOLOGPROC dolGetProgramInfoLog;
+extern PFNDOLGETPROGRAMIVPROC dolGetProgramiv;
+extern PFNDOLGETSHADERINFOLOGPROC dolGetShaderInfoLog;
+extern PFNDOLGETSHADERSOURCEPROC dolGetShaderSource;
+extern PFNDOLGETSHADERIVPROC dolGetShaderiv;
+extern PFNDOLGETUNIFORMLOCATIONPROC dolGetUniformLocation;
+extern PFNDOLGETUNIFORMFVPROC dolGetUniformfv;
+extern PFNDOLGETUNIFORMIVPROC dolGetUniformiv;
+extern PFNDOLGETVERTEXATTRIBPOINTERVPROC dolGetVertexAttribPointerv;
+extern PFNDOLGETVERTEXATTRIBDVPROC dolGetVertexAttribdv;
+extern PFNDOLGETVERTEXATTRIBFVPROC dolGetVertexAttribfv;
+extern PFNDOLGETVERTEXATTRIBIVPROC dolGetVertexAttribiv;
+extern PFNDOLISPROGRAMPROC dolIsProgram;
+extern PFNDOLISSHADERPROC dolIsShader;
+extern PFNDOLLINKPROGRAMPROC dolLinkProgram;
+extern PFNDOLSHADERSOURCEPROC dolShaderSource;
+extern PFNDOLSTENCILFUNCSEPARATEPROC dolStencilFuncSeparate;
+extern PFNDOLSTENCILMASKSEPARATEPROC dolStencilMaskSeparate;
+extern PFNDOLSTENCILOPSEPARATEPROC dolStencilOpSeparate;
+extern PFNDOLUNIFORM1FPROC dolUniform1f;
+extern PFNDOLUNIFORM1FVPROC dolUniform1fv;
+extern PFNDOLUNIFORM1IPROC dolUniform1i;
+extern PFNDOLUNIFORM1IVPROC dolUniform1iv;
+extern PFNDOLUNIFORM2FPROC dolUniform2f;
+extern PFNDOLUNIFORM2FVPROC dolUniform2fv;
+extern PFNDOLUNIFORM2IPROC dolUniform2i;
+extern PFNDOLUNIFORM2IVPROC dolUniform2iv;
+extern PFNDOLUNIFORM3FPROC dolUniform3f;
+extern PFNDOLUNIFORM3FVPROC dolUniform3fv;
+extern PFNDOLUNIFORM3IPROC dolUniform3i;
+extern PFNDOLUNIFORM3IVPROC dolUniform3iv;
+extern PFNDOLUNIFORM4FPROC dolUniform4f;
+extern PFNDOLUNIFORM4FVPROC dolUniform4fv;
+extern PFNDOLUNIFORM4IPROC dolUniform4i;
+extern PFNDOLUNIFORM4IVPROC dolUniform4iv;
+extern PFNDOLUNIFORMMATRIX2FVPROC dolUniformMatrix2fv;
+extern PFNDOLUNIFORMMATRIX3FVPROC dolUniformMatrix3fv;
+extern PFNDOLUNIFORMMATRIX4FVPROC dolUniformMatrix4fv;
+extern PFNDOLUSEPROGRAMPROC dolUseProgram;
+extern PFNDOLVALIDATEPROGRAMPROC dolValidateProgram;
+extern PFNDOLVERTEXATTRIB1DPROC dolVertexAttrib1d;
+extern PFNDOLVERTEXATTRIB1DVPROC dolVertexAttrib1dv;
+extern PFNDOLVERTEXATTRIB1FPROC dolVertexAttrib1f;
+extern PFNDOLVERTEXATTRIB1FVPROC dolVertexAttrib1fv;
+extern PFNDOLVERTEXATTRIB1SPROC dolVertexAttrib1s;
+extern PFNDOLVERTEXATTRIB1SVPROC dolVertexAttrib1sv;
+extern PFNDOLVERTEXATTRIB2DPROC dolVertexAttrib2d;
+extern PFNDOLVERTEXATTRIB2DVPROC dolVertexAttrib2dv;
+extern PFNDOLVERTEXATTRIB2FPROC dolVertexAttrib2f;
+extern PFNDOLVERTEXATTRIB2FVPROC dolVertexAttrib2fv;
+extern PFNDOLVERTEXATTRIB2SPROC dolVertexAttrib2s;
+extern PFNDOLVERTEXATTRIB2SVPROC dolVertexAttrib2sv;
+extern PFNDOLVERTEXATTRIB3DPROC dolVertexAttrib3d;
+extern PFNDOLVERTEXATTRIB3DVPROC dolVertexAttrib3dv;
+extern PFNDOLVERTEXATTRIB3FPROC dolVertexAttrib3f;
+extern PFNDOLVERTEXATTRIB3FVPROC dolVertexAttrib3fv;
+extern PFNDOLVERTEXATTRIB3SPROC dolVertexAttrib3s;
+extern PFNDOLVERTEXATTRIB3SVPROC dolVertexAttrib3sv;
+extern PFNDOLVERTEXATTRIB4NBVPROC dolVertexAttrib4Nbv;
+extern PFNDOLVERTEXATTRIB4NIVPROC dolVertexAttrib4Niv;
+extern PFNDOLVERTEXATTRIB4NSVPROC dolVertexAttrib4Nsv;
+extern PFNDOLVERTEXATTRIB4NUBPROC dolVertexAttrib4Nub;
+extern PFNDOLVERTEXATTRIB4NUBVPROC dolVertexAttrib4Nubv;
+extern PFNDOLVERTEXATTRIB4NUIVPROC dolVertexAttrib4Nuiv;
+extern PFNDOLVERTEXATTRIB4NUSVPROC dolVertexAttrib4Nusv;
+extern PFNDOLVERTEXATTRIB4BVPROC dolVertexAttrib4bv;
+extern PFNDOLVERTEXATTRIB4DPROC dolVertexAttrib4d;
+extern PFNDOLVERTEXATTRIB4DVPROC dolVertexAttrib4dv;
+extern PFNDOLVERTEXATTRIB4FPROC dolVertexAttrib4f;
+extern PFNDOLVERTEXATTRIB4FVPROC dolVertexAttrib4fv;
+extern PFNDOLVERTEXATTRIB4IVPROC dolVertexAttrib4iv;
+extern PFNDOLVERTEXATTRIB4SPROC dolVertexAttrib4s;
+extern PFNDOLVERTEXATTRIB4SVPROC dolVertexAttrib4sv;
+extern PFNDOLVERTEXATTRIB4UBVPROC dolVertexAttrib4ubv;
+extern PFNDOLVERTEXATTRIB4UIVPROC dolVertexAttrib4uiv;
+extern PFNDOLVERTEXATTRIB4USVPROC dolVertexAttrib4usv;
+extern PFNDOLVERTEXATTRIBPOINTERPROC dolVertexAttribPointer;
+
+#define glAttachShader dolAttachShader
+#define glBindAttribLocation dolBindAttribLocation
+#define glBlendEquationSeparate dolBlendEquationSeparate
+#define glCompileShader dolCompileShader
+#define glCreateProgram dolCreateProgram
+#define glCreateShader dolCreateShader
+#define glDeleteProgram dolDeleteProgram
+#define glDeleteShader dolDeleteShader
+#define glDetachShader dolDetachShader
+#define glDisableVertexAttribArray dolDisableVertexAttribArray
+#define glDrawBuffers dolDrawBuffers
+#define glEnableVertexAttribArray dolEnableVertexAttribArray
+#define glGetActiveAttrib dolGetActiveAttrib
+#define glGetActiveUniform dolGetActiveUniform
+#define glGetAttachedShaders dolGetAttachedShaders
+#define glGetAttribLocation dolGetAttribLocation
+#define glGetProgramInfoLog dolGetProgramInfoLog
+#define glGetProgramiv dolGetProgramiv
+#define glGetShaderInfoLog dolGetShaderInfoLog
+#define glGetShaderSource dolGetShaderSource
+#define glGetShaderiv dolGetShaderiv
+#define glGetUniformLocation dolGetUniformLocation
+#define glGetUniformfv dolGetUniformfv
+#define glGetUniformiv dolGetUniformiv
+#define glGetVertexAttribPointerv dolGetVertexAttribPointerv
+#define glGetVertexAttribdv dolGetVertexAttribdv
+#define glGetVertexAttribfv dolGetVertexAttribfv
+#define glGetVertexAttribiv dolGetVertexAttribiv
+#define glIsProgram dolIsProgram
+#define glIsShader dolIsShader
+#define glLinkProgram dolLinkProgram
+#define glShaderSource dolShaderSource
+#define glStencilFuncSeparate dolStencilFuncSeparate
+#define glStencilMaskSeparate dolStencilMaskSeparate
+#define glStencilOpSeparate dolStencilOpSeparate
+#define glUniform1f dolUniform1f
+#define glUniform1fv dolUniform1fv
+#define glUniform1i dolUniform1i
+#define glUniform1iv dolUniform1iv
+#define glUniform2f dolUniform2f
+#define glUniform2fv dolUniform2fv
+#define glUniform2i dolUniform2i
+#define glUniform2iv dolUniform2iv
+#define glUniform3f dolUniform3f
+#define glUniform3fv dolUniform3fv
+#define glUniform3i dolUniform3i
+#define glUniform3iv dolUniform3iv
+#define glUniform4f dolUniform4f
+#define glUniform4fv dolUniform4fv
+#define glUniform4i dolUniform4i
+#define glUniform4iv dolUniform4iv
+#define glUniformMatrix2fv dolUniformMatrix2fv
+#define glUniformMatrix3fv dolUniformMatrix3fv
+#define glUniformMatrix4fv dolUniformMatrix4fv
+#define glUseProgram dolUseProgram
+#define glValidateProgram dolValidateProgram
+#define glVertexAttrib1d dolVertexAttrib1d
+#define glVertexAttrib1dv dolVertexAttrib1dv
+#define glVertexAttrib1f dolVertexAttrib1f
+#define glVertexAttrib1fv dolVertexAttrib1fv
+#define glVertexAttrib1s dolVertexAttrib1s
+#define glVertexAttrib1sv dolVertexAttrib1sv
+#define glVertexAttrib2d dolVertexAttrib2d
+#define glVertexAttrib2dv dolVertexAttrib2dv
+#define glVertexAttrib2f dolVertexAttrib2f
+#define glVertexAttrib2fv dolVertexAttrib2fv
+#define glVertexAttrib2s dolVertexAttrib2s
+#define glVertexAttrib2sv dolVertexAttrib2sv
+#define glVertexAttrib3d dolVertexAttrib3d
+#define glVertexAttrib3dv dolVertexAttrib3dv
+#define glVertexAttrib3f dolVertexAttrib3f
+#define glVertexAttrib3fv dolVertexAttrib3fv
+#define glVertexAttrib3s dolVertexAttrib3s
+#define glVertexAttrib3sv dolVertexAttrib3sv
+#define glVertexAttrib4Nbv dolVertexAttrib4Nbv
+#define glVertexAttrib4Niv dolVertexAttrib4Niv
+#define glVertexAttrib4Nsv dolVertexAttrib4Nsv
+#define glVertexAttrib4Nub dolVertexAttrib4Nub
+#define glVertexAttrib4Nubv dolVertexAttrib4Nubv
+#define glVertexAttrib4Nuiv dolVertexAttrib4Nuiv
+#define glVertexAttrib4Nusv dolVertexAttrib4Nusv
+#define glVertexAttrib4bv dolVertexAttrib4bv
+#define glVertexAttrib4d dolVertexAttrib4d
+#define glVertexAttrib4dv dolVertexAttrib4dv
+#define glVertexAttrib4f dolVertexAttrib4f
+#define glVertexAttrib4fv dolVertexAttrib4fv
+#define glVertexAttrib4iv dolVertexAttrib4iv
+#define glVertexAttrib4s dolVertexAttrib4s
+#define glVertexAttrib4sv dolVertexAttrib4sv
+#define glVertexAttrib4ubv dolVertexAttrib4ubv
+#define glVertexAttrib4uiv dolVertexAttrib4uiv
+#define glVertexAttrib4usv dolVertexAttrib4usv
+#define glVertexAttribPointer dolVertexAttribPointer
diff --git a/Source/Core/Common/GL/GLExtensions/gl_2_1.h b/Source/Core/Common/GL/GLExtensions/gl_2_1.h
new file mode 100644
index 0000000000..48c1f03312
--- /dev/null
+++ b/Source/Core/Common/GL/GLExtensions/gl_2_1.h
@@ -0,0 +1,69 @@
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+
+#include "Common/GL/GLExtensions/gl_common.h"
+
+#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F
+#define GL_PIXEL_PACK_BUFFER 0x88EB
+#define GL_PIXEL_UNPACK_BUFFER 0x88EC
+#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
+#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
+#define GL_FLOAT_MAT2x3 0x8B65
+#define GL_FLOAT_MAT2x4 0x8B66
+#define GL_FLOAT_MAT3x2 0x8B67
+#define GL_FLOAT_MAT3x4 0x8B68
+#define GL_FLOAT_MAT4x2 0x8B69
+#define GL_FLOAT_MAT4x3 0x8B6A
+#define GL_SRGB 0x8C40
+#define GL_SRGB8 0x8C41
+#define GL_SRGB_ALPHA 0x8C42
+#define GL_SRGB8_ALPHA8 0x8C43
+#define GL_SLUMINANCE_ALPHA 0x8C44
+#define GL_SLUMINANCE8_ALPHA8 0x8C45
+#define GL_SLUMINANCE 0x8C46
+#define GL_SLUMINANCE8 0x8C47
+#define GL_COMPRESSED_SRGB 0x8C48
+#define GL_COMPRESSED_SRGB_ALPHA 0x8C49
+#define GL_COMPRESSED_SLUMINANCE 0x8C4A
+#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B
+
+typedef void (APIENTRYP PFNDOLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNDOLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNDOLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNDOLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNDOLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNDOLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+
+extern PFNDOLUNIFORMMATRIX2X3FVPROC dolUniformMatrix2x3fv;
+extern PFNDOLUNIFORMMATRIX2X4FVPROC dolUniformMatrix2x4fv;
+extern PFNDOLUNIFORMMATRIX3X2FVPROC dolUniformMatrix3x2fv;
+extern PFNDOLUNIFORMMATRIX3X4FVPROC dolUniformMatrix3x4fv;
+extern PFNDOLUNIFORMMATRIX4X2FVPROC dolUniformMatrix4x2fv;
+extern PFNDOLUNIFORMMATRIX4X3FVPROC dolUniformMatrix4x3fv;
+
+#define glUniformMatrix2x3fv dolUniformMatrix2x3fv
+#define glUniformMatrix2x4fv dolUniformMatrix2x4fv
+#define glUniformMatrix3x2fv dolUniformMatrix3x2fv
+#define glUniformMatrix3x4fv dolUniformMatrix3x4fv
+#define glUniformMatrix4x2fv dolUniformMatrix4x2fv
+#define glUniformMatrix4x3fv dolUniformMatrix4x3fv
diff --git a/Source/Core/Common/GL/GLExtensions/gl_3_0.h b/Source/Core/Common/GL/GLExtensions/gl_3_0.h
index 5c06da496c..de28cb75ce 100644
--- a/Source/Core/Common/GL/GLExtensions/gl_3_0.h
+++ b/Source/Core/Common/GL/GLExtensions/gl_3_0.h
@@ -1,62 +1,459 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLBEGINCONDITIONALRENDERPROC glBeginConditionalRender;
-extern PFNGLBEGINTRANSFORMFEEDBACKPROC glBeginTransformFeedback;
-extern PFNGLBINDFRAGDATALOCATIONPROC glBindFragDataLocation;
-extern PFNGLCLAMPCOLORPROC glClampColor;
-extern PFNGLCLEARBUFFERFIPROC glClearBufferfi;
-extern PFNGLCLEARBUFFERFVPROC glClearBufferfv;
-extern PFNGLCLEARBUFFERIVPROC glClearBufferiv;
-extern PFNGLCLEARBUFFERUIVPROC glClearBufferuiv;
-extern PFNGLCOLORMASKIPROC glColorMaski;
-extern PFNGLDISABLEIPROC glDisablei;
-extern PFNGLENABLEIPROC glEnablei;
-extern PFNGLENDCONDITIONALRENDERPROC glEndConditionalRender;
-extern PFNGLENDTRANSFORMFEEDBACKPROC glEndTransformFeedback;
-extern PFNGLGETBOOLEANI_VPROC glGetBooleani_v;
-extern PFNGLGETFRAGDATALOCATIONPROC glGetFragDataLocation;
-extern PFNGLGETSTRINGIPROC glGetStringi;
-extern PFNGLGETTEXPARAMETERIIVPROC glGetTexParameterIiv;
-extern PFNGLGETTEXPARAMETERIUIVPROC glGetTexParameterIuiv;
-extern PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glGetTransformFeedbackVarying;
-extern PFNGLGETUNIFORMUIVPROC glGetUniformuiv;
-extern PFNGLGETVERTEXATTRIBIIVPROC glGetVertexAttribIiv;
-extern PFNGLGETVERTEXATTRIBIUIVPROC glGetVertexAttribIuiv;
-extern PFNGLISENABLEDIPROC glIsEnabledi;
-extern PFNGLTEXPARAMETERIIVPROC glTexParameterIiv;
-extern PFNGLTEXPARAMETERIUIVPROC glTexParameterIuiv;
-extern PFNGLTRANSFORMFEEDBACKVARYINGSPROC glTransformFeedbackVaryings;
-extern PFNGLUNIFORM1UIPROC glUniform1ui;
-extern PFNGLUNIFORM1UIVPROC glUniform1uiv;
-extern PFNGLUNIFORM2UIPROC glUniform2ui;
-extern PFNGLUNIFORM2UIVPROC glUniform2uiv;
-extern PFNGLUNIFORM3UIPROC glUniform3ui;
-extern PFNGLUNIFORM3UIVPROC glUniform3uiv;
-extern PFNGLUNIFORM4UIPROC glUniform4ui;
-extern PFNGLUNIFORM4UIVPROC glUniform4uiv;
-extern PFNGLVERTEXATTRIBI1IPROC glVertexAttribI1i;
-extern PFNGLVERTEXATTRIBI1IVPROC glVertexAttribI1iv;
-extern PFNGLVERTEXATTRIBI1UIPROC glVertexAttribI1ui;
-extern PFNGLVERTEXATTRIBI1UIVPROC glVertexAttribI1uiv;
-extern PFNGLVERTEXATTRIBI2IPROC glVertexAttribI2i;
-extern PFNGLVERTEXATTRIBI2IVPROC glVertexAttribI2iv;
-extern PFNGLVERTEXATTRIBI2UIPROC glVertexAttribI2ui;
-extern PFNGLVERTEXATTRIBI2UIVPROC glVertexAttribI2uiv;
-extern PFNGLVERTEXATTRIBI3IPROC glVertexAttribI3i;
-extern PFNGLVERTEXATTRIBI3IVPROC glVertexAttribI3iv;
-extern PFNGLVERTEXATTRIBI3UIPROC glVertexAttribI3ui;
-extern PFNGLVERTEXATTRIBI3UIVPROC glVertexAttribI3uiv;
-extern PFNGLVERTEXATTRIBI4BVPROC glVertexAttribI4bv;
-extern PFNGLVERTEXATTRIBI4IPROC glVertexAttribI4i;
-extern PFNGLVERTEXATTRIBI4IVPROC glVertexAttribI4iv;
-extern PFNGLVERTEXATTRIBI4SVPROC glVertexAttribI4sv;
-extern PFNGLVERTEXATTRIBI4UBVPROC glVertexAttribI4ubv;
-extern PFNGLVERTEXATTRIBI4UIPROC glVertexAttribI4ui;
-extern PFNGLVERTEXATTRIBI4UIVPROC glVertexAttribI4uiv;
-extern PFNGLVERTEXATTRIBI4USVPROC glVertexAttribI4usv;
-extern PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer;
+#define GL_COMPARE_REF_TO_TEXTURE 0x884E
+#define GL_CLIP_DISTANCE0 0x3000
+#define GL_CLIP_DISTANCE1 0x3001
+#define GL_CLIP_DISTANCE2 0x3002
+#define GL_CLIP_DISTANCE3 0x3003
+#define GL_CLIP_DISTANCE4 0x3004
+#define GL_CLIP_DISTANCE5 0x3005
+#define GL_CLIP_DISTANCE6 0x3006
+#define GL_CLIP_DISTANCE7 0x3007
+#define GL_MAX_CLIP_DISTANCES 0x0D32
+#define GL_MAJOR_VERSION 0x821B
+#define GL_MINOR_VERSION 0x821C
+#define GL_NUM_EXTENSIONS 0x821D
+#define GL_CONTEXT_FLAGS 0x821E
+#define GL_COMPRESSED_RED 0x8225
+#define GL_COMPRESSED_RG 0x8226
+#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001
+#define GL_RGBA32F 0x8814
+#define GL_RGB32F 0x8815
+#define GL_RGBA16F 0x881A
+#define GL_RGB16F 0x881B
+#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD
+#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF
+#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904
+#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905
+#define GL_CLAMP_READ_COLOR 0x891C
+#define GL_FIXED_ONLY 0x891D
+#define GL_MAX_VARYING_COMPONENTS 0x8B4B
+#define GL_TEXTURE_1D_ARRAY 0x8C18
+#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19
+#define GL_TEXTURE_2D_ARRAY 0x8C1A
+#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B
+#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C
+#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
+#define GL_R11F_G11F_B10F 0x8C3A
+#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
+#define GL_RGB9_E5 0x8C3D
+#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E
+#define GL_TEXTURE_SHARED_SIZE 0x8C3F
+#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
+#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
+#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83
+#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
+#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
+#define GL_PRIMITIVES_GENERATED 0x8C87
+#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
+#define GL_RASTERIZER_DISCARD 0x8C89
+#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
+#define GL_INTERLEAVED_ATTRIBS 0x8C8C
+#define GL_SEPARATE_ATTRIBS 0x8C8D
+#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
+#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
+#define GL_RGBA32UI 0x8D70
+#define GL_RGB32UI 0x8D71
+#define GL_RGBA16UI 0x8D76
+#define GL_RGB16UI 0x8D77
+#define GL_RGBA8UI 0x8D7C
+#define GL_RGB8UI 0x8D7D
+#define GL_RGBA32I 0x8D82
+#define GL_RGB32I 0x8D83
+#define GL_RGBA16I 0x8D88
+#define GL_RGB16I 0x8D89
+#define GL_RGBA8I 0x8D8E
+#define GL_RGB8I 0x8D8F
+#define GL_RED_INTEGER 0x8D94
+#define GL_GREEN_INTEGER 0x8D95
+#define GL_BLUE_INTEGER 0x8D96
+#define GL_RGB_INTEGER 0x8D98
+#define GL_RGBA_INTEGER 0x8D99
+#define GL_BGR_INTEGER 0x8D9A
+#define GL_BGRA_INTEGER 0x8D9B
+#define GL_SAMPLER_1D_ARRAY 0x8DC0
+#define GL_SAMPLER_2D_ARRAY 0x8DC1
+#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3
+#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4
+#define GL_SAMPLER_CUBE_SHADOW 0x8DC5
+#define GL_UNSIGNED_INT_VEC2 0x8DC6
+#define GL_UNSIGNED_INT_VEC3 0x8DC7
+#define GL_UNSIGNED_INT_VEC4 0x8DC8
+#define GL_INT_SAMPLER_1D 0x8DC9
+#define GL_INT_SAMPLER_2D 0x8DCA
+#define GL_INT_SAMPLER_3D 0x8DCB
+#define GL_INT_SAMPLER_CUBE 0x8DCC
+#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE
+#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF
+#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1
+#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2
+#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3
+#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4
+#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6
+#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7
+#define GL_QUERY_WAIT 0x8E13
+#define GL_QUERY_NO_WAIT 0x8E14
+#define GL_QUERY_BY_REGION_WAIT 0x8E15
+#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16
+#define GL_BUFFER_ACCESS_FLAGS 0x911F
+#define GL_BUFFER_MAP_LENGTH 0x9120
+#define GL_BUFFER_MAP_OFFSET 0x9121
+#define GL_DEPTH_COMPONENT32F 0x8CAC
+#define GL_DEPTH32F_STENCIL8 0x8CAD
+#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
+#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
+#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
+#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
+#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
+#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
+#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
+#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
+#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
+#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
+#define GL_FRAMEBUFFER_DEFAULT 0x8218
+#define GL_FRAMEBUFFER_UNDEFINED 0x8219
+#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A
+#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
+#define GL_DEPTH_STENCIL 0x84F9
+#define GL_UNSIGNED_INT_24_8 0x84FA
+#define GL_DEPTH24_STENCIL8 0x88F0
+#define GL_TEXTURE_STENCIL_SIZE 0x88F1
+#define GL_TEXTURE_RED_TYPE 0x8C10
+#define GL_TEXTURE_GREEN_TYPE 0x8C11
+#define GL_TEXTURE_BLUE_TYPE 0x8C12
+#define GL_TEXTURE_ALPHA_TYPE 0x8C13
+#define GL_TEXTURE_DEPTH_TYPE 0x8C16
+#define GL_UNSIGNED_NORMALIZED 0x8C17
+#define GL_FRAMEBUFFER_BINDING 0x8CA6
+#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
+#define GL_RENDERBUFFER_BINDING 0x8CA7
+#define GL_READ_FRAMEBUFFER 0x8CA8
+#define GL_DRAW_FRAMEBUFFER 0x8CA9
+#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
+#define GL_RENDERBUFFER_SAMPLES 0x8CAB
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
+#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
+#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
+#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
+#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB
+#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC
+#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
+#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
+#define GL_COLOR_ATTACHMENT0 0x8CE0
+#define GL_COLOR_ATTACHMENT1 0x8CE1
+#define GL_COLOR_ATTACHMENT2 0x8CE2
+#define GL_COLOR_ATTACHMENT3 0x8CE3
+#define GL_COLOR_ATTACHMENT4 0x8CE4
+#define GL_COLOR_ATTACHMENT5 0x8CE5
+#define GL_COLOR_ATTACHMENT6 0x8CE6
+#define GL_COLOR_ATTACHMENT7 0x8CE7
+#define GL_COLOR_ATTACHMENT8 0x8CE8
+#define GL_COLOR_ATTACHMENT9 0x8CE9
+#define GL_COLOR_ATTACHMENT10 0x8CEA
+#define GL_COLOR_ATTACHMENT11 0x8CEB
+#define GL_COLOR_ATTACHMENT12 0x8CEC
+#define GL_COLOR_ATTACHMENT13 0x8CED
+#define GL_COLOR_ATTACHMENT14 0x8CEE
+#define GL_COLOR_ATTACHMENT15 0x8CEF
+#define GL_COLOR_ATTACHMENT16 0x8CF0
+#define GL_COLOR_ATTACHMENT17 0x8CF1
+#define GL_COLOR_ATTACHMENT18 0x8CF2
+#define GL_COLOR_ATTACHMENT19 0x8CF3
+#define GL_COLOR_ATTACHMENT20 0x8CF4
+#define GL_COLOR_ATTACHMENT21 0x8CF5
+#define GL_COLOR_ATTACHMENT22 0x8CF6
+#define GL_COLOR_ATTACHMENT23 0x8CF7
+#define GL_COLOR_ATTACHMENT24 0x8CF8
+#define GL_COLOR_ATTACHMENT25 0x8CF9
+#define GL_COLOR_ATTACHMENT26 0x8CFA
+#define GL_COLOR_ATTACHMENT27 0x8CFB
+#define GL_COLOR_ATTACHMENT28 0x8CFC
+#define GL_COLOR_ATTACHMENT29 0x8CFD
+#define GL_COLOR_ATTACHMENT30 0x8CFE
+#define GL_COLOR_ATTACHMENT31 0x8CFF
+#define GL_DEPTH_ATTACHMENT 0x8D00
+#define GL_STENCIL_ATTACHMENT 0x8D20
+#define GL_FRAMEBUFFER 0x8D40
+#define GL_RENDERBUFFER 0x8D41
+#define GL_RENDERBUFFER_WIDTH 0x8D42
+#define GL_RENDERBUFFER_HEIGHT 0x8D43
+#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
+#define GL_STENCIL_INDEX1 0x8D46
+#define GL_STENCIL_INDEX4 0x8D47
+#define GL_STENCIL_INDEX8 0x8D48
+#define GL_STENCIL_INDEX16 0x8D49
+#define GL_RENDERBUFFER_RED_SIZE 0x8D50
+#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
+#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
+#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
+#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
+#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
+#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
+#define GL_MAX_SAMPLES 0x8D57
+#define GL_INDEX 0x8222
+#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14
+#define GL_TEXTURE_INTENSITY_TYPE 0x8C15
+#define GL_FRAMEBUFFER_SRGB 0x8DB9
+#define GL_HALF_FLOAT 0x140B
+#define GL_MAP_READ_BIT 0x0001
+#define GL_MAP_WRITE_BIT 0x0002
+#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004
+#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008
+#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010
+#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020
+#define GL_COMPRESSED_RED_RGTC1 0x8DBB
+#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC
+#define GL_COMPRESSED_RG_RGTC2 0x8DBD
+#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE
+#define GL_RG 0x8227
+#define GL_RG_INTEGER 0x8228
+#define GL_R8 0x8229
+#define GL_R16 0x822A
+#define GL_RG8 0x822B
+#define GL_RG16 0x822C
+#define GL_R16F 0x822D
+#define GL_R32F 0x822E
+#define GL_RG16F 0x822F
+#define GL_RG32F 0x8230
+#define GL_R8I 0x8231
+#define GL_R8UI 0x8232
+#define GL_R16I 0x8233
+#define GL_R16UI 0x8234
+#define GL_R32I 0x8235
+#define GL_R32UI 0x8236
+#define GL_RG8I 0x8237
+#define GL_RG8UI 0x8238
+#define GL_RG16I 0x8239
+#define GL_RG16UI 0x823A
+#define GL_RG32I 0x823B
+#define GL_RG32UI 0x823C
+#define GL_VERTEX_ARRAY_BINDING 0x85B5
+#define GL_CLAMP_VERTEX_COLOR 0x891A
+#define GL_CLAMP_FRAGMENT_COLOR 0x891B
+#define GL_ALPHA_INTEGER 0x8D97
+typedef void (APIENTRYP PFNDOLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+typedef void (APIENTRYP PFNDOLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data);
+typedef void (APIENTRYP PFNDOLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data);
+typedef void (APIENTRYP PFNDOLENABLEIPROC) (GLenum target, GLuint index);
+typedef void (APIENTRYP PFNDOLDISABLEIPROC) (GLenum target, GLuint index);
+typedef GLboolean (APIENTRYP PFNDOLISENABLEDIPROC) (GLenum target, GLuint index);
+typedef void (APIENTRYP PFNDOLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode);
+typedef void (APIENTRYP PFNDOLENDTRANSFORMFEEDBACKPROC) (void);
+typedef void (APIENTRYP PFNDOLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (APIENTRYP PFNDOLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer);
+typedef void (APIENTRYP PFNDOLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode);
+typedef void (APIENTRYP PFNDOLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
+typedef void (APIENTRYP PFNDOLCLAMPCOLORPROC) (GLenum target, GLenum clamp);
+typedef void (APIENTRYP PFNDOLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode);
+typedef void (APIENTRYP PFNDOLENDCONDITIONALRENDERPROC) (void);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
+typedef void (APIENTRYP PFNDOLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNDOLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI1IPROC) (GLuint index, GLint x);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v);
+typedef void (APIENTRYP PFNDOLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v);
+typedef void (APIENTRYP PFNDOLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params);
+typedef void (APIENTRYP PFNDOLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name);
+typedef GLint (APIENTRYP PFNDOLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name);
+typedef void (APIENTRYP PFNDOLUNIFORM1UIPROC) (GLint location, GLuint v0);
+typedef void (APIENTRYP PFNDOLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1);
+typedef void (APIENTRYP PFNDOLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
+typedef void (APIENTRYP PFNDOLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+typedef void (APIENTRYP PFNDOLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNDOLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNDOLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNDOLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNDOLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNDOLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params);
+typedef void (APIENTRYP PFNDOLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNDOLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params);
+typedef void (APIENTRYP PFNDOLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value);
+typedef void (APIENTRYP PFNDOLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value);
+typedef void (APIENTRYP PFNDOLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value);
+typedef void (APIENTRYP PFNDOLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+typedef const GLubyte *(APIENTRYP PFNDOLGETSTRINGIPROC) (GLenum name, GLuint index);
+typedef GLboolean (APIENTRYP PFNDOLISRENDERBUFFERPROC) (GLuint renderbuffer);
+typedef void (APIENTRYP PFNDOLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer);
+typedef void (APIENTRYP PFNDOLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers);
+typedef void (APIENTRYP PFNDOLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers);
+typedef void (APIENTRYP PFNDOLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNDOLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef GLboolean (APIENTRYP PFNDOLISFRAMEBUFFERPROC) (GLuint framebuffer);
+typedef void (APIENTRYP PFNDOLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer);
+typedef void (APIENTRYP PFNDOLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers);
+typedef void (APIENTRYP PFNDOLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers);
+typedef GLenum (APIENTRYP PFNDOLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target);
+typedef void (APIENTRYP PFNDOLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNDOLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNDOLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+typedef void (APIENTRYP PFNDOLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+typedef void (APIENTRYP PFNDOLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNDOLGENERATEMIPMAPPROC) (GLenum target);
+typedef void (APIENTRYP PFNDOLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+typedef void (APIENTRYP PFNDOLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNDOLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+typedef void *(APIENTRYP PFNDOLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
+typedef void (APIENTRYP PFNDOLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
+typedef void (APIENTRYP PFNDOLBINDVERTEXARRAYPROC) (GLuint array);
+typedef void (APIENTRYP PFNDOLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays);
+typedef void (APIENTRYP PFNDOLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays);
+typedef GLboolean (APIENTRYP PFNDOLISVERTEXARRAYPROC) (GLuint array);
+
+extern PFNDOLBEGINCONDITIONALRENDERPROC dolBeginConditionalRender;
+extern PFNDOLBEGINTRANSFORMFEEDBACKPROC dolBeginTransformFeedback;
+extern PFNDOLBINDFRAGDATALOCATIONPROC dolBindFragDataLocation;
+extern PFNDOLCLAMPCOLORPROC dolClampColor;
+extern PFNDOLCLEARBUFFERFIPROC dolClearBufferfi;
+extern PFNDOLCLEARBUFFERFVPROC dolClearBufferfv;
+extern PFNDOLCLEARBUFFERIVPROC dolClearBufferiv;
+extern PFNDOLCLEARBUFFERUIVPROC dolClearBufferuiv;
+extern PFNDOLCOLORMASKIPROC dolColorMaski;
+extern PFNDOLDISABLEIPROC dolDisablei;
+extern PFNDOLENABLEIPROC dolEnablei;
+extern PFNDOLENDCONDITIONALRENDERPROC dolEndConditionalRender;
+extern PFNDOLENDTRANSFORMFEEDBACKPROC dolEndTransformFeedback;
+extern PFNDOLGETBOOLEANI_VPROC dolGetBooleani_v;
+extern PFNDOLGETFRAGDATALOCATIONPROC dolGetFragDataLocation;
+extern PFNDOLGETSTRINGIPROC dolGetStringi;
+extern PFNDOLGETTEXPARAMETERIIVPROC dolGetTexParameterIiv;
+extern PFNDOLGETTEXPARAMETERIUIVPROC dolGetTexParameterIuiv;
+extern PFNDOLGETTRANSFORMFEEDBACKVARYINGPROC dolGetTransformFeedbackVarying;
+extern PFNDOLGETUNIFORMUIVPROC dolGetUniformuiv;
+extern PFNDOLGETVERTEXATTRIBIIVPROC dolGetVertexAttribIiv;
+extern PFNDOLGETVERTEXATTRIBIUIVPROC dolGetVertexAttribIuiv;
+extern PFNDOLISENABLEDIPROC dolIsEnabledi;
+extern PFNDOLTEXPARAMETERIIVPROC dolTexParameterIiv;
+extern PFNDOLTEXPARAMETERIUIVPROC dolTexParameterIuiv;
+extern PFNDOLTRANSFORMFEEDBACKVARYINGSPROC dolTransformFeedbackVaryings;
+extern PFNDOLUNIFORM1UIPROC dolUniform1ui;
+extern PFNDOLUNIFORM1UIVPROC dolUniform1uiv;
+extern PFNDOLUNIFORM2UIPROC dolUniform2ui;
+extern PFNDOLUNIFORM2UIVPROC dolUniform2uiv;
+extern PFNDOLUNIFORM3UIPROC dolUniform3ui;
+extern PFNDOLUNIFORM3UIVPROC dolUniform3uiv;
+extern PFNDOLUNIFORM4UIPROC dolUniform4ui;
+extern PFNDOLUNIFORM4UIVPROC dolUniform4uiv;
+extern PFNDOLVERTEXATTRIBI1IPROC dolVertexAttribI1i;
+extern PFNDOLVERTEXATTRIBI1IVPROC dolVertexAttribI1iv;
+extern PFNDOLVERTEXATTRIBI1UIPROC dolVertexAttribI1ui;
+extern PFNDOLVERTEXATTRIBI1UIVPROC dolVertexAttribI1uiv;
+extern PFNDOLVERTEXATTRIBI2IPROC dolVertexAttribI2i;
+extern PFNDOLVERTEXATTRIBI2IVPROC dolVertexAttribI2iv;
+extern PFNDOLVERTEXATTRIBI2UIPROC dolVertexAttribI2ui;
+extern PFNDOLVERTEXATTRIBI2UIVPROC dolVertexAttribI2uiv;
+extern PFNDOLVERTEXATTRIBI3IPROC dolVertexAttribI3i;
+extern PFNDOLVERTEXATTRIBI3IVPROC dolVertexAttribI3iv;
+extern PFNDOLVERTEXATTRIBI3UIPROC dolVertexAttribI3ui;
+extern PFNDOLVERTEXATTRIBI3UIVPROC dolVertexAttribI3uiv;
+extern PFNDOLVERTEXATTRIBI4BVPROC dolVertexAttribI4bv;
+extern PFNDOLVERTEXATTRIBI4IPROC dolVertexAttribI4i;
+extern PFNDOLVERTEXATTRIBI4IVPROC dolVertexAttribI4iv;
+extern PFNDOLVERTEXATTRIBI4SVPROC dolVertexAttribI4sv;
+extern PFNDOLVERTEXATTRIBI4UBVPROC dolVertexAttribI4ubv;
+extern PFNDOLVERTEXATTRIBI4UIPROC dolVertexAttribI4ui;
+extern PFNDOLVERTEXATTRIBI4UIVPROC dolVertexAttribI4uiv;
+extern PFNDOLVERTEXATTRIBI4USVPROC dolVertexAttribI4usv;
+extern PFNDOLVERTEXATTRIBIPOINTERPROC dolVertexAttribIPointer;
+
+#define glBeginConditionalRender dolBeginConditionalRender
+#define glBeginTransformFeedback dolBeginTransformFeedback
+#define glBindFragDataLocation dolBindFragDataLocation
+#define glClampColor dolClampColor
+#define glClearBufferfi dolClearBufferfi
+#define glClearBufferfv dolClearBufferfv
+#define glClearBufferiv dolClearBufferiv
+#define glClearBufferuiv dolClearBufferuiv
+#define glColorMaski dolColorMaski
+#define glDisablei dolDisablei
+#define glEnablei dolEnablei
+#define glEndConditionalRender dolEndConditionalRender
+#define glEndTransformFeedback dolEndTransformFeedback
+#define glGetBooleani_v dolGetBooleani_v
+#define glGetFragDataLocation dolGetFragDataLocation
+#define glGetStringi dolGetStringi
+#define glGetTexParameterIiv dolGetTexParameterIiv
+#define glGetTexParameterIuiv dolGetTexParameterIuiv
+#define glGetTransformFeedbackVarying dolGetTransformFeedbackVarying
+#define glGetUniformuiv dolGetUniformuiv
+#define glGetVertexAttribIiv dolGetVertexAttribIiv
+#define glGetVertexAttribIuiv dolGetVertexAttribIuiv
+#define glIsEnabledi dolIsEnabledi
+#define glTexParameterIiv dolTexParameterIiv
+#define glTexParameterIuiv dolTexParameterIuiv
+#define glTransformFeedbackVaryings dolTransformFeedbackVaryings
+#define glUniform1ui dolUniform1ui
+#define glUniform1uiv dolUniform1uiv
+#define glUniform2ui dolUniform2ui
+#define glUniform2uiv dolUniform2uiv
+#define glUniform3ui dolUniform3ui
+#define glUniform3uiv dolUniform3uiv
+#define glUniform4ui dolUniform4ui
+#define glUniform4uiv dolUniform4uiv
+#define glVertexAttribI1i dolVertexAttribI1i
+#define glVertexAttribI1iv dolVertexAttribI1iv
+#define glVertexAttribI1ui dolVertexAttribI1ui
+#define glVertexAttribI1uiv dolVertexAttribI1uiv
+#define glVertexAttribI2i dolVertexAttribI2i
+#define glVertexAttribI2iv dolVertexAttribI2iv
+#define glVertexAttribI2ui dolVertexAttribI2ui
+#define glVertexAttribI2uiv dolVertexAttribI2uiv
+#define glVertexAttribI3i dolVertexAttribI3i
+#define glVertexAttribI3iv dolVertexAttribI3iv
+#define glVertexAttribI3ui dolVertexAttribI3ui
+#define glVertexAttribI3uiv dolVertexAttribI3uiv
+#define glVertexAttribI4bv dolVertexAttribI4bv
+#define glVertexAttribI4i dolVertexAttribI4i
+#define glVertexAttribI4iv dolVertexAttribI4iv
+#define glVertexAttribI4sv dolVertexAttribI4sv
+#define glVertexAttribI4ubv dolVertexAttribI4ubv
+#define glVertexAttribI4ui dolVertexAttribI4ui
+#define glVertexAttribI4uiv dolVertexAttribI4uiv
+#define glVertexAttribI4usv dolVertexAttribI4usv
+#define glVertexAttribIPointer dolVertexAttribIPointer
diff --git a/Source/Core/Common/GL/GLExtensions/gl_3_1.h b/Source/Core/Common/GL/GLExtensions/gl_3_1.h
index 8d1935262b..3f7fa5f73c 100644
--- a/Source/Core/Common/GL/GLExtensions/gl_3_1.h
+++ b/Source/Core/Common/GL/GLExtensions/gl_3_1.h
@@ -1,11 +1,109 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLDRAWARRAYSINSTANCEDPROC glDrawArraysInstanced;
-extern PFNGLDRAWELEMENTSINSTANCEDPROC glDrawElementsInstanced;
-extern PFNGLPRIMITIVERESTARTINDEXPROC glPrimitiveRestartIndex;
-extern PFNGLTEXBUFFERPROC glTexBuffer;
+#define GL_SAMPLER_2D_RECT 0x8B63
+#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64
+#define GL_SAMPLER_BUFFER 0x8DC2
+#define GL_INT_SAMPLER_2D_RECT 0x8DCD
+#define GL_INT_SAMPLER_BUFFER 0x8DD0
+#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5
+#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8
+#define GL_TEXTURE_BUFFER 0x8C2A
+#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B
+#define GL_TEXTURE_BINDING_BUFFER 0x8C2C
+#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D
+#define GL_TEXTURE_RECTANGLE 0x84F5
+#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6
+#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8
+#define GL_R8_SNORM 0x8F94
+#define GL_RG8_SNORM 0x8F95
+#define GL_RGB8_SNORM 0x8F96
+#define GL_RGBA8_SNORM 0x8F97
+#define GL_R16_SNORM 0x8F98
+#define GL_RG16_SNORM 0x8F99
+#define GL_RGB16_SNORM 0x8F9A
+#define GL_RGBA16_SNORM 0x8F9B
+#define GL_SIGNED_NORMALIZED 0x8F9C
+#define GL_PRIMITIVE_RESTART 0x8F9D
+#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E
+#define GL_COPY_READ_BUFFER 0x8F36
+#define GL_COPY_WRITE_BUFFER 0x8F37
+#define GL_UNIFORM_BUFFER 0x8A11
+#define GL_UNIFORM_BUFFER_BINDING 0x8A28
+#define GL_UNIFORM_BUFFER_START 0x8A29
+#define GL_UNIFORM_BUFFER_SIZE 0x8A2A
+#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B
+#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C
+#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D
+#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E
+#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F
+#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30
+#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
+#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32
+#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
+#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
+#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
+#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36
+#define GL_UNIFORM_TYPE 0x8A37
+#define GL_UNIFORM_SIZE 0x8A38
+#define GL_UNIFORM_NAME_LENGTH 0x8A39
+#define GL_UNIFORM_BLOCK_INDEX 0x8A3A
+#define GL_UNIFORM_OFFSET 0x8A3B
+#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C
+#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D
+#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E
+#define GL_UNIFORM_BLOCK_BINDING 0x8A3F
+#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40
+#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41
+#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42
+#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
+#define GL_INVALID_INDEX 0xFFFFFFFFu
+typedef void (APIENTRYP PFNDOLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+typedef void (APIENTRYP PFNDOLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount);
+typedef void (APIENTRYP PFNDOLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer);
+typedef void (APIENTRYP PFNDOLPRIMITIVERESTARTINDEXPROC) (GLuint index);
+typedef void (APIENTRYP PFNDOLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+typedef void (APIENTRYP PFNDOLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices);
+typedef void (APIENTRYP PFNDOLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNDOLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
+typedef GLuint (APIENTRYP PFNDOLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName);
+typedef void (APIENTRYP PFNDOLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNDOLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
+typedef void (APIENTRYP PFNDOLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
+
+extern PFNDOLDRAWARRAYSINSTANCEDPROC dolDrawArraysInstanced;
+extern PFNDOLDRAWELEMENTSINSTANCEDPROC dolDrawElementsInstanced;
+extern PFNDOLPRIMITIVERESTARTINDEXPROC dolPrimitiveRestartIndex;
+extern PFNDOLTEXBUFFERPROC dolTexBuffer;
+
+#define glDrawArraysInstanced dolDrawArraysInstanced
+#define glDrawElementsInstanced dolDrawElementsInstanced
+#define glPrimitiveRestartIndex dolPrimitiveRestartIndex
+#define glTexBuffer dolTexBuffer
diff --git a/Source/Core/Common/GL/GLExtensions/gl_3_2.h b/Source/Core/Common/GL/GLExtensions/gl_3_2.h
index 5d767556cc..1731c2aab7 100644
--- a/Source/Core/Common/GL/GLExtensions/gl_3_2.h
+++ b/Source/Core/Common/GL/GLExtensions/gl_3_2.h
@@ -1,10 +1,117 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
#include "Common/GL/GLExtensions/gl_common.h"
-extern PFNGLFRAMEBUFFERTEXTUREPROC glFramebufferTexture;
-extern PFNGLGETBUFFERPARAMETERI64VPROC glGetBufferParameteri64v;
-extern PFNGLGETINTEGER64I_VPROC glGetInteger64i_v;
+#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001
+#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002
+#define GL_LINES_ADJACENCY 0x000A
+#define GL_LINE_STRIP_ADJACENCY 0x000B
+#define GL_TRIANGLES_ADJACENCY 0x000C
+#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D
+#define GL_PROGRAM_POINT_SIZE 0x8642
+#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29
+#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8
+#define GL_GEOMETRY_SHADER 0x8DD9
+#define GL_GEOMETRY_VERTICES_OUT 0x8916
+#define GL_GEOMETRY_INPUT_TYPE 0x8917
+#define GL_GEOMETRY_OUTPUT_TYPE 0x8918
+#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF
+#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0
+#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1
+#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
+#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123
+#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124
+#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
+#define GL_CONTEXT_PROFILE_MASK 0x9126
+#define GL_DEPTH_CLAMP 0x864F
+#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C
+#define GL_FIRST_VERTEX_CONVENTION 0x8E4D
+#define GL_LAST_VERTEX_CONVENTION 0x8E4E
+#define GL_PROVOKING_VERTEX 0x8E4F
+#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
+#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
+#define GL_OBJECT_TYPE 0x9112
+#define GL_SYNC_CONDITION 0x9113
+#define GL_SYNC_STATUS 0x9114
+#define GL_SYNC_FLAGS 0x9115
+#define GL_SYNC_FENCE 0x9116
+#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
+#define GL_UNSIGNALED 0x9118
+#define GL_SIGNALED 0x9119
+#define GL_ALREADY_SIGNALED 0x911A
+#define GL_TIMEOUT_EXPIRED 0x911B
+#define GL_CONDITION_SATISFIED 0x911C
+#define GL_WAIT_FAILED 0x911D
+#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull
+#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
+#define GL_SAMPLE_POSITION 0x8E50
+#define GL_SAMPLE_MASK 0x8E51
+#define GL_SAMPLE_MASK_VALUE 0x8E52
+#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59
+#define GL_TEXTURE_2D_MULTISAMPLE 0x9100
+#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101
+#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
+#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
+#define GL_TEXTURE_SAMPLES 0x9106
+#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107
+#define GL_SAMPLER_2D_MULTISAMPLE 0x9108
+#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
+#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
+#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
+#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
+#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F
+#define GL_MAX_INTEGER_SAMPLES 0x9110
+typedef void (APIENTRYP PFNDOLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
+typedef void (APIENTRYP PFNDOLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
+typedef void (APIENTRYP PFNDOLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
+typedef void (APIENTRYP PFNDOLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex);
+typedef void (APIENTRYP PFNDOLPROVOKINGVERTEXPROC) (GLenum mode);
+typedef GLsync (APIENTRYP PFNDOLFENCESYNCPROC) (GLenum condition, GLbitfield flags);
+typedef GLboolean (APIENTRYP PFNDOLISSYNCPROC) (GLsync sync);
+typedef void (APIENTRYP PFNDOLDELETESYNCPROC) (GLsync sync);
+typedef GLenum (APIENTRYP PFNDOLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
+typedef void (APIENTRYP PFNDOLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
+typedef void (APIENTRYP PFNDOLGETINTEGER64VPROC) (GLenum pname, GLint64 *data);
+typedef void (APIENTRYP PFNDOLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
+typedef void (APIENTRYP PFNDOLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data);
+typedef void (APIENTRYP PFNDOLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params);
+typedef void (APIENTRYP PFNDOLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNDOLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+typedef void (APIENTRYP PFNDOLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+typedef void (APIENTRYP PFNDOLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val);
+typedef void (APIENTRYP PFNDOLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask);
+
+extern PFNDOLFRAMEBUFFERTEXTUREPROC dolFramebufferTexture;
+extern PFNDOLGETBUFFERPARAMETERI64VPROC dolGetBufferParameteri64v;
+extern PFNDOLGETINTEGER64I_VPROC dolGetInteger64i_v;
+
+#define glFramebufferTexture dolFramebufferTexture
+#define glGetBufferParameteri64v dolGetBufferParameteri64v
+#define glGetInteger64i_v dolGetInteger64i_v
diff --git a/Source/Core/Common/GL/GLExtensions/gl_common.h b/Source/Core/Common/GL/GLExtensions/gl_common.h
index 4019b5026b..2d3e57b459 100644
--- a/Source/Core/Common/GL/GLExtensions/gl_common.h
+++ b/Source/Core/Common/GL/GLExtensions/gl_common.h
@@ -1,7 +1,104 @@
-// Copyright 2008 Dolphin Emulator Project
-// Licensed under GPLv2+
-// Refer to the license.txt file included.
+/*
+** Copyright (c) 2013-2015 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
-#include
-#include
+#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
+#ifndef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN 1
+#endif
+#include
+#endif
+#ifndef APIENTRY
+#define APIENTRY
+#endif
+#ifndef APIENTRYP
+#define APIENTRYP APIENTRY *
+#endif
+#ifndef GLAPI
+#define GLAPI extern
+#endif
+
+/*
+ * Datatypes
+ */
+#include
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef char GLchar;
+typedef unsigned short GLhalf;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptr;
+
+typedef struct __GLsync *GLsync;
+#ifndef GLEXT_64_TYPES_DEFINED
+/* This code block is duplicated in glxext.h, so must be protected */
+#define GLEXT_64_TYPES_DEFINED
+/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
+/* (as used in the GL_EXT_timer_query extension). */
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#include
+#elif defined(__sun__) || defined(__digital__)
+#include
+#if defined(__STDC__)
+#if defined(__arch64__) || defined(_LP64)
+typedef long int int64_t;
+typedef unsigned long int uint64_t;
+#else
+typedef long long int int64_t;
+typedef unsigned long long int uint64_t;
+#endif /* __arch64__ */
+#endif /* __STDC__ */
+#elif defined( __VMS ) || defined(__sgi)
+#include
+#elif defined(__SCO__) || defined(__USLC__)
+#include
+#elif defined(__UNIXOS2__) || defined(__SOL64__)
+typedef long int int32_t;
+typedef long long int int64_t;
+typedef unsigned long long int uint64_t;
+#elif defined(_WIN32) && defined(__GNUC__)
+#include
+#elif defined(_WIN32)
+typedef __int32 int32_t;
+typedef __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+#else
+/* Fallback if nothing above works */
+#include
+#endif
+#endif
+typedef uint64_t GLuint64;
+typedef int64_t GLint64;
diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp
index a311420477..70e66b8cd4 100644
--- a/Source/Core/VideoBackends/OGL/Render.cpp
+++ b/Source/Core/VideoBackends/OGL/Render.cpp
@@ -90,7 +90,7 @@ static bool s_efbCacheValid[2][EFB_CACHE_WIDTH * EFB_CACHE_HEIGHT];
static bool s_efbCacheIsCleared = false;
static std::vector s_efbCache[2][EFB_CACHE_WIDTH * EFB_CACHE_HEIGHT]; // 2 for PEEK_Z and PEEK_COLOR
-static void GLAPIENTRY ErrorCallback( GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const char* message, const void* userParam)
+static void APIENTRY ErrorCallback( GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const char* message, const void* userParam)
{
const char *s_source;
const char *s_type;
@@ -126,11 +126,11 @@ static void GLAPIENTRY ErrorCallback( GLenum source, GLenum type, GLuint id, GLe
}
// Two small Fallbacks to avoid GL_ARB_ES2_compatibility
-static void GLAPIENTRY DepthRangef(GLfloat neardepth, GLfloat fardepth)
+static void APIENTRY DepthRangef(GLfloat neardepth, GLfloat fardepth)
{
glDepthRange(neardepth, fardepth);
}
-static void GLAPIENTRY ClearDepthf(GLfloat depthval)
+static void APIENTRY ClearDepthf(GLfloat depthval)
{
glClearDepth(depthval);
}