--[[
Copyright (C) 2016 Nick Guletskii

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without selftriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPselfS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

A translation of glext.h.

/*
** 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.
*/
]]
local ffi = require("ffi")

GL_UNSIGNED_BYTE_3_3_2 = 0x8032

GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033

GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034

GL_UNSIGNED_INT_8_8_8_8 = 0x8035

GL_UNSIGNED_INT_10_10_10_2 = 0x8036

GL_TEXTURE_BINDING_3D = 0x806A

GL_PACK_SKIP_IMAGES = 0x806B

GL_PACK_IMAGE_HEIGHT = 0x806C

GL_UNPACK_SKIP_IMAGES = 0x806D

GL_UNPACK_IMAGE_HEIGHT = 0x806E

GL_TEXTURE_3D = 0x806F

GL_PROXY_TEXTURE_3D = 0x8070

GL_TEXTURE_DEPTH = 0x8071

GL_TEXTURE_WRAP_R = 0x8072

GL_MAX_3D_TEXTURE_SIZE = 0x8073

GL_UNSIGNED_BYTE_2_3_3_REV = 0x8362

GL_UNSIGNED_SHORT_5_6_5 = 0x8363

GL_UNSIGNED_SHORT_5_6_5_REV = 0x8364

GL_UNSIGNED_SHORT_4_4_4_4_REV = 0x8365

GL_UNSIGNED_SHORT_1_5_5_5_REV = 0x8366

GL_UNSIGNED_INT_8_8_8_8_REV = 0x8367

GL_UNSIGNED_INT_2_10_10_10_REV = 0x8368

GL_BGR = 0x80E0

GL_BGRA = 0x80E1

GL_MAX_ELEMENTS_VERTICES = 0x80E8

GL_MAX_ELEMENTS_INDICES = 0x80E9

GL_CLAMP_TO_EDGE = 0x812F

GL_TEXTURE_MIN_LOD = 0x813A

GL_TEXTURE_MAX_LOD = 0x813B

GL_TEXTURE_BASE_LEVEL = 0x813C

GL_TEXTURE_MAX_LEVEL = 0x813D

GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12

GL_SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13

GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22

GL_SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23

GL_ALIASED_LINE_WIDTH_RANGE = 0x846E

GL_RESCALE_NORMAL = 0x803A

GL_LIGHT_MODEL_COLOR_CONTROL = 0x81F8

GL_SINGLE_COLOR = 0x81F9

GL_SEPARATE_SPECULAR_COLOR = 0x81FA

GL_ALIASED_POINT_SIZE_RANGE = 0x846D

GL_TEXTURE0 = 0x84C0

GL_TEXTURE1 = 0x84C1

GL_TEXTURE2 = 0x84C2

GL_TEXTURE3 = 0x84C3

GL_TEXTURE4 = 0x84C4

GL_TEXTURE5 = 0x84C5

GL_TEXTURE6 = 0x84C6

GL_TEXTURE7 = 0x84C7

GL_TEXTURE8 = 0x84C8

GL_TEXTURE9 = 0x84C9

GL_TEXTURE10 = 0x84CA

GL_TEXTURE11 = 0x84CB

GL_TEXTURE12 = 0x84CC

GL_TEXTURE13 = 0x84CD

GL_TEXTURE14 = 0x84CE

GL_TEXTURE15 = 0x84CF

GL_TEXTURE16 = 0x84D0

GL_TEXTURE17 = 0x84D1

GL_TEXTURE18 = 0x84D2

GL_TEXTURE19 = 0x84D3

GL_TEXTURE20 = 0x84D4

GL_TEXTURE21 = 0x84D5

GL_TEXTURE22 = 0x84D6

GL_TEXTURE23 = 0x84D7

GL_TEXTURE24 = 0x84D8

GL_TEXTURE25 = 0x84D9

GL_TEXTURE26 = 0x84DA

GL_TEXTURE27 = 0x84DB

GL_TEXTURE28 = 0x84DC

GL_TEXTURE29 = 0x84DD

GL_TEXTURE30 = 0x84DE

GL_TEXTURE31 = 0x84DF

GL_ACTIVE_TEXTURE = 0x84E0

GL_MULTISAMPLE = 0x809D

GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E

GL_SAMPLE_ALPHA_TO_ONE = 0x809F

GL_SAMPLE_COVERAGE = 0x80A0

GL_SAMPLE_BUFFERS = 0x80A8

GL_SAMPLES = 0x80A9

GL_SAMPLE_COVERAGE_VALUE = 0x80AA

GL_SAMPLE_COVERAGE_INVERT = 0x80AB

GL_TEXTURE_CUBE_MAP = 0x8513

GL_TEXTURE_BINDING_CUBE_MAP = 0x8514

GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515

GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516

GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517

GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518

GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519

GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A

GL_PROXY_TEXTURE_CUBE_MAP = 0x851B

GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C

GL_COMPRESSED_RGB = 0x84ED

GL_COMPRESSED_RGBA = 0x84EE

GL_TEXTURE_COMPRESSION_HINT = 0x84EF

GL_TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0

GL_TEXTURE_COMPRESSED = 0x86A1

GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2

GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3

GL_CLAMP_TO_BORDER = 0x812D

GL_CLIENT_ACTIVE_TEXTURE = 0x84E1

GL_MAX_TEXTURE_UNITS = 0x84E2

GL_TRANSPOSE_MODELVIEW_MATRIX = 0x84E3

GL_TRANSPOSE_PROJECTION_MATRIX = 0x84E4

GL_TRANSPOSE_TEXTURE_MATRIX = 0x84E5

GL_TRANSPOSE_COLOR_MATRIX = 0x84E6

GL_MULTISAMPLE_BIT = 0x20000000

GL_NORMAL_MAP = 0x8511

GL_REFLECTION_MAP = 0x8512

GL_COMPRESSED_ALPHA = 0x84E9

GL_COMPRESSED_LUMINANCE = 0x84EA

GL_COMPRESSED_LUMINANCE_ALPHA = 0x84EB

GL_COMPRESSED_INTENSITY = 0x84EC

GL_COMBINE = 0x8570

GL_COMBINE_RGB = 0x8571

GL_COMBINE_ALPHA = 0x8572

GL_SOURCE0_RGB = 0x8580

GL_SOURCE1_RGB = 0x8581

GL_SOURCE2_RGB = 0x8582

GL_SOURCE0_ALPHA = 0x8588

GL_SOURCE1_ALPHA = 0x8589

GL_SOURCE2_ALPHA = 0x858A

GL_OPERAND0_RGB = 0x8590

GL_OPERAND1_RGB = 0x8591

GL_OPERAND2_RGB = 0x8592

GL_OPERAND0_ALPHA = 0x8598

GL_OPERAND1_ALPHA = 0x8599

GL_OPERAND2_ALPHA = 0x859A

GL_RGB_SCALE = 0x8573

GL_ADD_SIGNED = 0x8574

GL_INTERPOLATE = 0x8575

GL_SUBTRACT = 0x84E7

GL_CONSTANT = 0x8576

GL_PRIMARY_COLOR = 0x8577

GL_PREVIOUS = 0x8578

GL_DOT3_RGB = 0x86AE

GL_DOT3_RGBA = 0x86AF

GL_BLEND_DST_RGB = 0x80C8

GL_BLEND_SRC_RGB = 0x80C9

GL_BLEND_DST_ALPHA = 0x80CA

GL_BLEND_SRC_ALPHA = 0x80CB

GL_POINT_FADE_THRESHOLD_SIZE = 0x8128

GL_DEPTH_COMPONENT16 = 0x81A5

GL_DEPTH_COMPONENT24 = 0x81A6

GL_DEPTH_COMPONENT32 = 0x81A7

GL_MIRRORED_REPEAT = 0x8370

GL_MAX_TEXTURE_LOD_BIAS = 0x84FD

GL_TEXTURE_LOD_BIAS = 0x8501

GL_INCR_WRAP = 0x8507

GL_DECR_WRAP = 0x8508

GL_TEXTURE_DEPTH_SIZE = 0x884A

GL_TEXTURE_COMPARE_MODE = 0x884C

GL_TEXTURE_COMPARE_FUNC = 0x884D

GL_POINT_SIZE_MIN = 0x8126

GL_POINT_SIZE_MAX = 0x8127

GL_POINT_DISTANCE_ATTENUATION = 0x8129

GL_GENERATE_MIPMAP = 0x8191

GL_GENERATE_MIPMAP_HINT = 0x8192

GL_FOG_COORDINATE_SOURCE = 0x8450

GL_FOG_COORDINATE = 0x8451

GL_FRAGMENT_DEPTH = 0x8452

GL_CURRENT_FOG_COORDINATE = 0x8453

GL_FOG_COORDINATE_ARRAY_TYPE = 0x8454

GL_FOG_COORDINATE_ARRAY_STRIDE = 0x8455

GL_FOG_COORDINATE_ARRAY_POINTER = 0x8456

GL_FOG_COORDINATE_ARRAY = 0x8457

GL_COLOR_SUM = 0x8458

GL_CURRENT_SECONDARY_COLOR = 0x8459

GL_SECONDARY_COLOR_ARRAY_SIZE = 0x845A

GL_SECONDARY_COLOR_ARRAY_TYPE = 0x845B

GL_SECONDARY_COLOR_ARRAY_STRIDE = 0x845C

GL_SECONDARY_COLOR_ARRAY_POINTER = 0x845D

GL_SECONDARY_COLOR_ARRAY = 0x845E

GL_TEXTURE_FILTER_CONTROL = 0x8500

GL_DEPTH_TEXTURE_MODE = 0x884B

GL_COMPARE_R_TO_TEXTURE = 0x884E

GL_FUNC_ADD = 0x8006

GL_FUNC_SUBTRACT = 0x800A

GL_FUNC_REVERSE_SUBTRACT = 0x800B

GL_MIN = 0x8007

GL_MAX = 0x8008

GL_CONSTANT_COLOR = 0x8001

GL_ONE_MINUS_CONSTANT_COLOR = 0x8002

GL_CONSTANT_ALPHA = 0x8003

GL_ONE_MINUS_CONSTANT_ALPHA = 0x8004

GL_BUFFER_SIZE = 0x8764

GL_BUFFER_USAGE = 0x8765

GL_QUERY_COUNTER_BITS = 0x8864

GL_CURRENT_QUERY = 0x8865

GL_QUERY_RESULT = 0x8866

GL_QUERY_RESULT_AVAILABLE = 0x8867

GL_ARRAY_BUFFER = 0x8892

GL_ELEMENT_ARRAY_BUFFER = 0x8893

GL_ARRAY_BUFFER_BINDING = 0x8894

GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895

GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F

GL_READ_ONLY = 0x88B8

GL_WRITE_ONLY = 0x88B9

GL_READ_WRITE = 0x88BA

GL_BUFFER_ACCESS = 0x88BB

GL_BUFFER_MAPPED = 0x88BC

GL_BUFFER_MAP_POINTER = 0x88BD

GL_STREAM_DRAW = 0x88E0

GL_STREAM_READ = 0x88E1

GL_STREAM_COPY = 0x88E2

GL_STATIC_DRAW = 0x88E4

GL_STATIC_READ = 0x88E5

GL_STATIC_COPY = 0x88E6

GL_DYNAMIC_DRAW = 0x88E8

GL_DYNAMIC_READ = 0x88E9

GL_DYNAMIC_COPY = 0x88EA

GL_SAMPLES_PASSED = 0x8914

GL_SRC1_ALPHA = 0x8589

GL_VERTEX_ARRAY_BUFFER_BINDING = 0x8896

GL_NORMAL_ARRAY_BUFFER_BINDING = 0x8897

GL_COLOR_ARRAY_BUFFER_BINDING = 0x8898

GL_INDEX_ARRAY_BUFFER_BINDING = 0x8899

GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A

GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B

GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C

GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D

GL_WEIGHT_ARRAY_BUFFER_BINDING = 0x889E

GL_FOG_COORD_SRC = 0x8450

GL_FOG_COORD = 0x8451

GL_CURRENT_FOG_COORD = 0x8453

GL_FOG_COORD_ARRAY_TYPE = 0x8454

GL_FOG_COORD_ARRAY_STRIDE = 0x8455

GL_FOG_COORD_ARRAY_POINTER = 0x8456

GL_FOG_COORD_ARRAY = 0x8457

GL_FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D

GL_SRC0_RGB = 0x8580

GL_SRC1_RGB = 0x8581

GL_SRC2_RGB = 0x8582

GL_SRC0_ALPHA = 0x8588

GL_SRC2_ALPHA = 0x858A

GL_BLEND_EQUATION_RGB = 0x8009

GL_VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622

GL_VERTEX_ATTRIB_ARRAY_SIZE = 0x8623

GL_VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624

GL_VERTEX_ATTRIB_ARRAY_TYPE = 0x8625

GL_CURRENT_VERTEX_ATTRIB = 0x8626

GL_VERTEX_PROGRAM_POINT_SIZE = 0x8642

GL_VERTEX_ATTRIB_ARRAY_POINTER = 0x8645

GL_STENCIL_BACK_FUNC = 0x8800

GL_STENCIL_BACK_FAIL = 0x8801

GL_STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802

GL_STENCIL_BACK_PASS_DEPTH_PASS = 0x8803

GL_MAX_DRAW_BUFFERS = 0x8824

GL_DRAW_BUFFER0 = 0x8825

GL_DRAW_BUFFER1 = 0x8826

GL_DRAW_BUFFER2 = 0x8827

GL_DRAW_BUFFER3 = 0x8828

GL_DRAW_BUFFER4 = 0x8829

GL_DRAW_BUFFER5 = 0x882A

GL_DRAW_BUFFER6 = 0x882B

GL_DRAW_BUFFER7 = 0x882C

GL_DRAW_BUFFER8 = 0x882D

GL_DRAW_BUFFER9 = 0x882E

GL_DRAW_BUFFER10 = 0x882F

GL_DRAW_BUFFER11 = 0x8830

GL_DRAW_BUFFER12 = 0x8831

GL_DRAW_BUFFER13 = 0x8832

GL_DRAW_BUFFER14 = 0x8833

GL_DRAW_BUFFER15 = 0x8834

GL_BLEND_EQUATION_ALPHA = 0x883D

GL_MAX_VERTEX_ATTRIBS = 0x8869

GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A

GL_MAX_TEXTURE_IMAGE_UNITS = 0x8872

GL_FRAGMENT_SHADER = 0x8B30

GL_VERTEX_SHADER = 0x8B31

GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49

GL_MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A

GL_MAX_VARYING_FLOATS = 0x8B4B

GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C

GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D

GL_SHADER_TYPE = 0x8B4F

GL_FLOAT_VEC2 = 0x8B50

GL_FLOAT_VEC3 = 0x8B51

GL_FLOAT_VEC4 = 0x8B52

GL_INT_VEC2 = 0x8B53

GL_INT_VEC3 = 0x8B54

GL_INT_VEC4 = 0x8B55

GL_BOOL = 0x8B56

GL_BOOL_VEC2 = 0x8B57

GL_BOOL_VEC3 = 0x8B58

GL_BOOL_VEC4 = 0x8B59

GL_FLOAT_MAT2 = 0x8B5A

GL_FLOAT_MAT3 = 0x8B5B

GL_FLOAT_MAT4 = 0x8B5C

GL_SAMPLER_1D = 0x8B5D

GL_SAMPLER_2D = 0x8B5E

GL_SAMPLER_3D = 0x8B5F

GL_SAMPLER_CUBE = 0x8B60

GL_SAMPLER_1D_SHADOW = 0x8B61

GL_SAMPLER_2D_SHADOW = 0x8B62

GL_DELETE_STATUS = 0x8B80

GL_COMPILE_STATUS = 0x8B81

GL_LINK_STATUS = 0x8B82

GL_VALIDATE_STATUS = 0x8B83

GL_INFO_LOG_LENGTH = 0x8B84

GL_ATTACHED_SHADERS = 0x8B85

GL_ACTIVE_UNIFORMS = 0x8B86

GL_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87

GL_SHADER_SOURCE_LENGTH = 0x8B88

GL_ACTIVE_ATTRIBUTES = 0x8B89

GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A

GL_FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B

GL_SHADING_LANGUAGE_VERSION = 0x8B8C

GL_CURRENT_PROGRAM = 0x8B8D

GL_POINT_SPRITE_COORD_ORIGIN = 0x8CA0

GL_LOWER_LEFT = 0x8CA1

GL_UPPER_LEFT = 0x8CA2

GL_STENCIL_BACK_REF = 0x8CA3

GL_STENCIL_BACK_VALUE_MASK = 0x8CA4

GL_STENCIL_BACK_WRITEMASK = 0x8CA5

GL_VERTEX_PROGRAM_TWO_SIDE = 0x8643

GL_POINT_SPRITE = 0x8861

GL_COORD_REPLACE = 0x8862

GL_MAX_TEXTURE_COORDS = 0x8871

GL_PIXEL_PACK_BUFFER = 0x88EB

GL_PIXEL_UNPACK_BUFFER = 0x88EC

GL_PIXEL_PACK_BUFFER_BINDING = 0x88ED

GL_PIXEL_UNPACK_BUFFER_BINDING = 0x88EF

GL_FLOAT_MAT2x3 = 0x8B65

GL_FLOAT_MAT2x4 = 0x8B66

GL_FLOAT_MAT3x2 = 0x8B67

GL_FLOAT_MAT3x4 = 0x8B68

GL_FLOAT_MAT4x2 = 0x8B69

GL_FLOAT_MAT4x3 = 0x8B6A

GL_SRGB = 0x8C40

GL_SRGB8 = 0x8C41

GL_SRGB_ALPHA = 0x8C42

GL_SRGB8_ALPHA8 = 0x8C43

GL_COMPRESSED_SRGB = 0x8C48

GL_COMPRESSED_SRGB_ALPHA = 0x8C49

GL_CURRENT_RASTER_SECONDARY_COLOR = 0x845F

GL_SLUMINANCE_ALPHA = 0x8C44

GL_SLUMINANCE8_ALPHA8 = 0x8C45

GL_SLUMINANCE = 0x8C46

GL_SLUMINANCE8 = 0x8C47

GL_COMPRESSED_SLUMINANCE = 0x8C4A

GL_COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B

GL_COMPARE_REF_TO_TEXTURE = 0x884E

GL_CLIP_DISTANCE0 = 0x3000

GL_CLIP_DISTANCE1 = 0x3001

GL_CLIP_DISTANCE2 = 0x3002

GL_CLIP_DISTANCE3 = 0x3003

GL_CLIP_DISTANCE4 = 0x3004

GL_CLIP_DISTANCE5 = 0x3005

GL_CLIP_DISTANCE6 = 0x3006

GL_CLIP_DISTANCE7 = 0x3007

GL_MAX_CLIP_DISTANCES = 0x0D32

GL_MAJOR_VERSION = 0x821B

GL_MINOR_VERSION = 0x821C

GL_NUM_EXTENSIONS = 0x821D

GL_CONTEXT_FLAGS = 0x821E

GL_COMPRESSED_RED = 0x8225

GL_COMPRESSED_RG = 0x8226

GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001

GL_RGBA32F = 0x8814

GL_RGB32F = 0x8815

GL_RGBA16F = 0x881A

GL_RGB16F = 0x881B

GL_VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD

GL_MAX_ARRAY_TEXTURE_LAYERS = 0x88FF

GL_MIN_PROGRAM_TEXEL_OFFSET = 0x8904

GL_MAX_PROGRAM_TEXEL_OFFSET = 0x8905

GL_CLAMP_READ_COLOR = 0x891C

GL_FIXED_ONLY = 0x891D

GL_MAX_VARYING_COMPONENTS = 0x8B4B

GL_TEXTURE_1D_ARRAY = 0x8C18

GL_PROXY_TEXTURE_1D_ARRAY = 0x8C19

GL_TEXTURE_2D_ARRAY = 0x8C1A

GL_PROXY_TEXTURE_2D_ARRAY = 0x8C1B

GL_TEXTURE_BINDING_1D_ARRAY = 0x8C1C

GL_TEXTURE_BINDING_2D_ARRAY = 0x8C1D

GL_R11F_G11F_B10F = 0x8C3A

GL_UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B

GL_RGB9_E5 = 0x8C3D

GL_UNSIGNED_INT_5_9_9_9_REV = 0x8C3E

GL_TEXTURE_SHARED_SIZE = 0x8C3F

GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76

GL_TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F

GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80

GL_TRANSFORM_FEEDBACK_VARYINGS = 0x8C83

GL_TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84

GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85

GL_PRIMITIVES_GENERATED = 0x8C87

GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88

GL_RASTERIZER_DISCARD = 0x8C89

GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A

GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B

GL_INTERLEAVED_ATTRIBS = 0x8C8C

GL_SEPARATE_ATTRIBS = 0x8C8D

GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E

GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F

GL_RGBA32UI = 0x8D70

GL_RGB32UI = 0x8D71

GL_RGBA16UI = 0x8D76

GL_RGB16UI = 0x8D77

GL_RGBA8UI = 0x8D7C

GL_RGB8UI = 0x8D7D

GL_RGBA32I = 0x8D82

GL_RGB32I = 0x8D83

GL_RGBA16I = 0x8D88

GL_RGB16I = 0x8D89

GL_RGBA8I = 0x8D8E

GL_RGB8I = 0x8D8F

GL_RED_INTEGER = 0x8D94

GL_GREEN_INTEGER = 0x8D95

GL_BLUE_INTEGER = 0x8D96

GL_RGB_INTEGER = 0x8D98

GL_RGBA_INTEGER = 0x8D99

GL_BGR_INTEGER = 0x8D9A

GL_BGRA_INTEGER = 0x8D9B

GL_SAMPLER_1D_ARRAY = 0x8DC0

GL_SAMPLER_2D_ARRAY = 0x8DC1

GL_SAMPLER_1D_ARRAY_SHADOW = 0x8DC3

GL_SAMPLER_2D_ARRAY_SHADOW = 0x8DC4

GL_SAMPLER_CUBE_SHADOW = 0x8DC5

GL_UNSIGNED_INT_VEC2 = 0x8DC6

GL_UNSIGNED_INT_VEC3 = 0x8DC7

GL_UNSIGNED_INT_VEC4 = 0x8DC8

GL_INT_SAMPLER_1D = 0x8DC9

GL_INT_SAMPLER_2D = 0x8DCA

GL_INT_SAMPLER_3D = 0x8DCB

GL_INT_SAMPLER_CUBE = 0x8DCC

GL_INT_SAMPLER_1D_ARRAY = 0x8DCE

GL_INT_SAMPLER_2D_ARRAY = 0x8DCF

GL_UNSIGNED_INT_SAMPLER_1D = 0x8DD1

GL_UNSIGNED_INT_SAMPLER_2D = 0x8DD2

GL_UNSIGNED_INT_SAMPLER_3D = 0x8DD3

GL_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4

GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6

GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7

GL_QUERY_WAIT = 0x8E13

GL_QUERY_NO_WAIT = 0x8E14

GL_QUERY_BY_REGION_WAIT = 0x8E15

GL_QUERY_BY_REGION_NO_WAIT = 0x8E16

GL_BUFFER_ACCESS_FLAGS = 0x911F

GL_BUFFER_MAP_LENGTH = 0x9120

GL_BUFFER_MAP_OFFSET = 0x9121

GL_DEPTH_COMPONENT32F = 0x8CAC

GL_DEPTH32F_STENCIL8 = 0x8CAD

GL_FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD

GL_INVALID_FRAMEBUFFER_OPERATION = 0x0506

GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210

GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211

GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212

GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213

GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214

GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215

GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216

GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217

GL_FRAMEBUFFER_DEFAULT = 0x8218

GL_FRAMEBUFFER_UNDEFINED = 0x8219

GL_DEPTH_STENCIL_ATTACHMENT = 0x821A

GL_MAX_RENDERBUFFER_SIZE = 0x84E8

GL_DEPTH_STENCIL = 0x84F9

GL_UNSIGNED_INT_24_8 = 0x84FA

GL_DEPTH24_STENCIL8 = 0x88F0

GL_TEXTURE_STENCIL_SIZE = 0x88F1

GL_TEXTURE_RED_TYPE = 0x8C10

GL_TEXTURE_GREEN_TYPE = 0x8C11

GL_TEXTURE_BLUE_TYPE = 0x8C12

GL_TEXTURE_ALPHA_TYPE = 0x8C13

GL_TEXTURE_DEPTH_TYPE = 0x8C16

GL_UNSIGNED_NORMALIZED = 0x8C17

GL_FRAMEBUFFER_BINDING = 0x8CA6

GL_DRAW_FRAMEBUFFER_BINDING = 0x8CA6

GL_RENDERBUFFER_BINDING = 0x8CA7

GL_READ_FRAMEBUFFER = 0x8CA8

GL_DRAW_FRAMEBUFFER = 0x8CA9

GL_READ_FRAMEBUFFER_BINDING = 0x8CAA

GL_RENDERBUFFER_SAMPLES = 0x8CAB

GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0

GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1

GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2

GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3

GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4

GL_FRAMEBUFFER_COMPLETE = 0x8CD5

GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6

GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7

GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB

GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC

GL_FRAMEBUFFER_UNSUPPORTED = 0x8CDD

GL_MAX_COLOR_ATTACHMENTS = 0x8CDF

GL_COLOR_ATTACHMENT0 = 0x8CE0

GL_COLOR_ATTACHMENT1 = 0x8CE1

GL_COLOR_ATTACHMENT2 = 0x8CE2

GL_COLOR_ATTACHMENT3 = 0x8CE3

GL_COLOR_ATTACHMENT4 = 0x8CE4

GL_COLOR_ATTACHMENT5 = 0x8CE5

GL_COLOR_ATTACHMENT6 = 0x8CE6

GL_COLOR_ATTACHMENT7 = 0x8CE7

GL_COLOR_ATTACHMENT8 = 0x8CE8

GL_COLOR_ATTACHMENT9 = 0x8CE9

GL_COLOR_ATTACHMENT10 = 0x8CEA

GL_COLOR_ATTACHMENT11 = 0x8CEB

GL_COLOR_ATTACHMENT12 = 0x8CEC

GL_COLOR_ATTACHMENT13 = 0x8CED

GL_COLOR_ATTACHMENT14 = 0x8CEE

GL_COLOR_ATTACHMENT15 = 0x8CEF

GL_COLOR_ATTACHMENT16 = 0x8CF0

GL_COLOR_ATTACHMENT17 = 0x8CF1

GL_COLOR_ATTACHMENT18 = 0x8CF2

GL_COLOR_ATTACHMENT19 = 0x8CF3

GL_COLOR_ATTACHMENT20 = 0x8CF4

GL_COLOR_ATTACHMENT21 = 0x8CF5

GL_COLOR_ATTACHMENT22 = 0x8CF6

GL_COLOR_ATTACHMENT23 = 0x8CF7

GL_COLOR_ATTACHMENT24 = 0x8CF8

GL_COLOR_ATTACHMENT25 = 0x8CF9

GL_COLOR_ATTACHMENT26 = 0x8CFA

GL_COLOR_ATTACHMENT27 = 0x8CFB

GL_COLOR_ATTACHMENT28 = 0x8CFC

GL_COLOR_ATTACHMENT29 = 0x8CFD

GL_COLOR_ATTACHMENT30 = 0x8CFE

GL_COLOR_ATTACHMENT31 = 0x8CFF

GL_DEPTH_ATTACHMENT = 0x8D00

GL_STENCIL_ATTACHMENT = 0x8D20

GL_FRAMEBUFFER = 0x8D40

GL_RENDERBUFFER = 0x8D41

GL_RENDERBUFFER_WIDTH = 0x8D42

GL_RENDERBUFFER_HEIGHT = 0x8D43

GL_RENDERBUFFER_INTERNAL_FORMAT = 0x8D44

GL_STENCIL_INDEX1 = 0x8D46

GL_STENCIL_INDEX4 = 0x8D47

GL_STENCIL_INDEX8 = 0x8D48

GL_STENCIL_INDEX16 = 0x8D49

GL_RENDERBUFFER_RED_SIZE = 0x8D50

GL_RENDERBUFFER_GREEN_SIZE = 0x8D51

GL_RENDERBUFFER_BLUE_SIZE = 0x8D52

GL_RENDERBUFFER_ALPHA_SIZE = 0x8D53

GL_RENDERBUFFER_DEPTH_SIZE = 0x8D54

GL_RENDERBUFFER_STENCIL_SIZE = 0x8D55

GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56

GL_MAX_SAMPLES = 0x8D57

GL_INDEX = 0x8222

GL_TEXTURE_LUMINANCE_TYPE = 0x8C14

GL_TEXTURE_INTENSITY_TYPE = 0x8C15

GL_FRAMEBUFFER_SRGB = 0x8DB9

GL_HALF_FLOAT = 0x140B

GL_MAP_READ_BIT = 0x0001

GL_MAP_WRITE_BIT = 0x0002

GL_MAP_INVALIDATE_RANGE_BIT = 0x0004

GL_MAP_INVALIDATE_BUFFER_BIT = 0x0008

GL_MAP_FLUSH_EXPLICIT_BIT = 0x0010

GL_MAP_UNSYNCHRONIZED_BIT = 0x0020

GL_COMPRESSED_RED_RGTC1 = 0x8DBB

GL_COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC

GL_COMPRESSED_RG_RGTC2 = 0x8DBD

GL_COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE

GL_RG = 0x8227

GL_RG_INTEGER = 0x8228

GL_R8 = 0x8229

GL_R16 = 0x822A

GL_RG8 = 0x822B

GL_RG16 = 0x822C

GL_R16F = 0x822D

GL_R32F = 0x822E

GL_RG16F = 0x822F

GL_RG32F = 0x8230

GL_R8I = 0x8231

GL_R8UI = 0x8232

GL_R16I = 0x8233

GL_R16UI = 0x8234

GL_R32I = 0x8235

GL_R32UI = 0x8236

GL_RG8I = 0x8237

GL_RG8UI = 0x8238

GL_RG16I = 0x8239

GL_RG16UI = 0x823A

GL_RG32I = 0x823B

GL_RG32UI = 0x823C

GL_VERTEX_ARRAY_BINDING = 0x85B5

GL_CLAMP_VERTEX_COLOR = 0x891A

GL_CLAMP_FRAGMENT_COLOR = 0x891B

GL_ALPHA_INTEGER = 0x8D97

GL_SAMPLER_2D_RECT = 0x8B63

GL_SAMPLER_2D_RECT_SHADOW = 0x8B64

GL_SAMPLER_BUFFER = 0x8DC2

GL_INT_SAMPLER_2D_RECT = 0x8DCD

GL_INT_SAMPLER_BUFFER = 0x8DD0

GL_UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5

GL_UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8

GL_TEXTURE_BUFFER = 0x8C2A

GL_MAX_TEXTURE_BUFFER_SIZE = 0x8C2B

GL_TEXTURE_BINDING_BUFFER = 0x8C2C

GL_TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D

GL_TEXTURE_RECTANGLE = 0x84F5

GL_TEXTURE_BINDING_RECTANGLE = 0x84F6

GL_PROXY_TEXTURE_RECTANGLE = 0x84F7

GL_MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8

GL_R8_SNORM = 0x8F94

GL_RG8_SNORM = 0x8F95

GL_RGB8_SNORM = 0x8F96

GL_RGBA8_SNORM = 0x8F97

GL_R16_SNORM = 0x8F98

GL_RG16_SNORM = 0x8F99

GL_RGB16_SNORM = 0x8F9A

GL_RGBA16_SNORM = 0x8F9B

GL_SIGNED_NORMALIZED = 0x8F9C

GL_PRIMITIVE_RESTART = 0x8F9D

GL_PRIMITIVE_RESTART_INDEX = 0x8F9E

GL_COPY_READ_BUFFER = 0x8F36

GL_COPY_WRITE_BUFFER = 0x8F37

GL_UNIFORM_BUFFER = 0x8A11

GL_UNIFORM_BUFFER_BINDING = 0x8A28

GL_UNIFORM_BUFFER_START = 0x8A29

GL_UNIFORM_BUFFER_SIZE = 0x8A2A

GL_MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B

GL_MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C

GL_MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D

GL_MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E

GL_MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F

GL_MAX_UNIFORM_BLOCK_SIZE = 0x8A30

GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31

GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32

GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33

GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34

GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35

GL_ACTIVE_UNIFORM_BLOCKS = 0x8A36

GL_UNIFORM_TYPE = 0x8A37

GL_UNIFORM_SIZE = 0x8A38

GL_UNIFORM_NAME_LENGTH = 0x8A39

GL_UNIFORM_BLOCK_INDEX = 0x8A3A

GL_UNIFORM_OFFSET = 0x8A3B

GL_UNIFORM_ARRAY_STRIDE = 0x8A3C

GL_UNIFORM_MATRIX_STRIDE = 0x8A3D

GL_UNIFORM_IS_ROW_MAJOR = 0x8A3E

GL_UNIFORM_BLOCK_BINDING = 0x8A3F

GL_UNIFORM_BLOCK_DATA_SIZE = 0x8A40

GL_UNIFORM_BLOCK_NAME_LENGTH = 0x8A41

GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42

GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43

GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44

GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45

GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46

GL_INVALID_INDEX = 0xFFFFFFFF

GL_CONTEXT_CORE_PROFILE_BIT = 0x00000001

GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002

GL_LINES_ADJACENCY = 0x000A

GL_LINE_STRIP_ADJACENCY = 0x000B

GL_TRIANGLES_ADJACENCY = 0x000C

GL_TRIANGLE_STRIP_ADJACENCY = 0x000D

GL_PROGRAM_POINT_SIZE = 0x8642

GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29

GL_FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7

GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8

GL_GEOMETRY_SHADER = 0x8DD9

GL_GEOMETRY_VERTICES_OUT = 0x8916

GL_GEOMETRY_INPUT_TYPE = 0x8917

GL_GEOMETRY_OUTPUT_TYPE = 0x8918

GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF

GL_MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0

GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1

GL_MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122

GL_MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123

GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124

GL_MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125

GL_CONTEXT_PROFILE_MASK = 0x9126

GL_DEPTH_CLAMP = 0x864F

GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C

GL_FIRST_VERTEX_CONVENTION = 0x8E4D

GL_LAST_VERTEX_CONVENTION = 0x8E4E

GL_PROVOKING_VERTEX = 0x8E4F

GL_TEXTURE_CUBE_MAP_SEAMLESS = 0x884F

GL_MAX_SERVER_WAIT_TIMEOUT = 0x9111

GL_OBJECT_TYPE = 0x9112

GL_SYNC_CONDITION = 0x9113

GL_SYNC_STATUS = 0x9114

GL_SYNC_FLAGS = 0x9115

GL_SYNC_FENCE = 0x9116

GL_SYNC_GPU_COMMANDS_COMPLETE = 0x9117

GL_UNSIGNALED = 0x9118

GL_SIGNALED = 0x9119

GL_ALREADY_SIGNALED = 0x911A

GL_TIMEOUT_EXPIRED = 0x911B

GL_CONDITION_SATISFIED = 0x911C

GL_WAIT_FAILED = 0x911D

GL_TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF

GL_SYNC_FLUSH_COMMANDS_BIT = 0x00000001

GL_SAMPLE_POSITION = 0x8E50

GL_SAMPLE_MASK = 0x8E51

GL_SAMPLE_MASK_VALUE = 0x8E52

GL_MAX_SAMPLE_MASK_WORDS = 0x8E59

GL_TEXTURE_2D_MULTISAMPLE = 0x9100

GL_PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101

GL_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102

GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103

GL_TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104

GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105

GL_TEXTURE_SAMPLES = 0x9106

GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107

GL_SAMPLER_2D_MULTISAMPLE = 0x9108

GL_INT_SAMPLER_2D_MULTISAMPLE = 0x9109

GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A

GL_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B

GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C

GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D

GL_MAX_COLOR_TEXTURE_SAMPLES = 0x910E

GL_MAX_DEPTH_TEXTURE_SAMPLES = 0x910F

GL_MAX_INTEGER_SAMPLES = 0x9110

GL_VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE

GL_SRC1_COLOR = 0x88F9

GL_ONE_MINUS_SRC1_COLOR = 0x88FA

GL_ONE_MINUS_SRC1_ALPHA = 0x88FB

GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC

GL_ANY_SAMPLES_PASSED = 0x8C2F

GL_SAMPLER_BINDING = 0x8919

GL_RGB10_A2UI = 0x906F

GL_TEXTURE_SWIZZLE_R = 0x8E42

GL_TEXTURE_SWIZZLE_G = 0x8E43

GL_TEXTURE_SWIZZLE_B = 0x8E44

GL_TEXTURE_SWIZZLE_A = 0x8E45

GL_TEXTURE_SWIZZLE_RGBA = 0x8E46

GL_TIME_ELAPSED = 0x88BF

GL_TIMESTAMP = 0x8E28

GL_INT_2_10_10_10_REV = 0x8D9F

GL_SAMPLE_SHADING = 0x8C36

GL_MIN_SAMPLE_SHADING_VALUE = 0x8C37

GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E

GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F

GL_TEXTURE_CUBE_MAP_ARRAY = 0x9009

GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A

GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B

GL_SAMPLER_CUBE_MAP_ARRAY = 0x900C

GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D

GL_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E

GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F

GL_DRAW_INDIRECT_BUFFER = 0x8F3F

GL_DRAW_INDIRECT_BUFFER_BINDING = 0x8F43

GL_GEOMETRY_SHADER_INVOCATIONS = 0x887F

GL_MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A

GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B

GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C

GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D

GL_MAX_VERTEX_STREAMS = 0x8E71

GL_DOUBLE_VEC2 = 0x8FFC

GL_DOUBLE_VEC3 = 0x8FFD

GL_DOUBLE_VEC4 = 0x8FFE

GL_DOUBLE_MAT2 = 0x8F46

GL_DOUBLE_MAT3 = 0x8F47

GL_DOUBLE_MAT4 = 0x8F48

GL_DOUBLE_MAT2x3 = 0x8F49

GL_DOUBLE_MAT2x4 = 0x8F4A

GL_DOUBLE_MAT3x2 = 0x8F4B

GL_DOUBLE_MAT3x4 = 0x8F4C

GL_DOUBLE_MAT4x2 = 0x8F4D

GL_DOUBLE_MAT4x3 = 0x8F4E

GL_ACTIVE_SUBROUTINES = 0x8DE5

GL_ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6

GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47

GL_ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48

GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49

GL_MAX_SUBROUTINES = 0x8DE7

GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8

GL_NUM_COMPATIBLE_SUBROUTINES = 0x8E4A

GL_COMPATIBLE_SUBROUTINES = 0x8E4B

GL_PATCHES = 0x000E

GL_PATCH_VERTICES = 0x8E72

GL_PATCH_DEFAULT_INNER_LEVEL = 0x8E73

GL_PATCH_DEFAULT_OUTER_LEVEL = 0x8E74

GL_TESS_CONTROL_OUTPUT_VERTICES = 0x8E75

GL_TESS_GEN_MODE = 0x8E76

GL_TESS_GEN_SPACING = 0x8E77

GL_TESS_GEN_VERTEX_ORDER = 0x8E78

GL_TESS_GEN_POINT_MODE = 0x8E79

GL_ISOLINES = 0x8E7A

GL_FRACTIONAL_ODD = 0x8E7B

GL_FRACTIONAL_EVEN = 0x8E7C

GL_MAX_PATCH_VERTICES = 0x8E7D

GL_MAX_TESS_GEN_LEVEL = 0x8E7E

GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F

GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80

GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81

GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82

GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83

GL_MAX_TESS_PATCH_COMPONENTS = 0x8E84

GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85

GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86

GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89

GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A

GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C

GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D

GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E

GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F

GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0

GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1

GL_TESS_EVALUATION_SHADER = 0x8E87

GL_TESS_CONTROL_SHADER = 0x8E88

GL_TRANSFORM_FEEDBACK = 0x8E22

GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23

GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24

GL_TRANSFORM_FEEDBACK_BINDING = 0x8E25

GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70

GL_FIXED = 0x140C

GL_IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A

GL_IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B

GL_LOW_FLOAT = 0x8DF0

GL_MEDIUM_FLOAT = 0x8DF1

GL_HIGH_FLOAT = 0x8DF2

GL_LOW_INT = 0x8DF3

GL_MEDIUM_INT = 0x8DF4

GL_HIGH_INT = 0x8DF5

GL_SHADER_COMPILER = 0x8DFA

GL_SHADER_BINARY_FORMATS = 0x8DF8

GL_NUM_SHADER_BINARY_FORMATS = 0x8DF9

GL_MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB

GL_MAX_VARYING_VECTORS = 0x8DFC

GL_MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD

GL_RGB565 = 0x8D62

GL_PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257

GL_PROGRAM_BINARY_LENGTH = 0x8741

GL_NUM_PROGRAM_BINARY_FORMATS = 0x87FE

GL_PROGRAM_BINARY_FORMATS = 0x87FF

GL_VERTEX_SHADER_BIT = 0x00000001

GL_FRAGMENT_SHADER_BIT = 0x00000002

GL_GEOMETRY_SHADER_BIT = 0x00000004

GL_TESS_CONTROL_SHADER_BIT = 0x00000008

GL_TESS_EVALUATION_SHADER_BIT = 0x00000010

GL_ALL_SHADER_BITS = 0xFFFFFFFF

GL_PROGRAM_SEPARABLE = 0x8258

GL_ACTIVE_PROGRAM = 0x8259

GL_PROGRAM_PIPELINE_BINDING = 0x825A

GL_MAX_VIEWPORTS = 0x825B

GL_VIEWPORT_SUBPIXEL_BITS = 0x825C

GL_VIEWPORT_BOUNDS_RANGE = 0x825D

GL_LAYER_PROVOKING_VERTEX = 0x825E

GL_VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F

GL_UNDEFINED_VERTEX = 0x8260

GL_COPY_READ_BUFFER_BINDING = 0x8F36

GL_COPY_WRITE_BUFFER_BINDING = 0x8F37

GL_TRANSFORM_FEEDBACK_ACTIVE = 0x8E24

GL_TRANSFORM_FEEDBACK_PAUSED = 0x8E23

GL_UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127

GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128

GL_UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129

GL_UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A

GL_PACK_COMPRESSED_BLOCK_WIDTH = 0x912B

GL_PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C

GL_PACK_COMPRESSED_BLOCK_DEPTH = 0x912D

GL_PACK_COMPRESSED_BLOCK_SIZE = 0x912E

GL_NUM_SAMPLE_COUNTS = 0x9380

GL_MIN_MAP_BUFFER_ALIGNMENT = 0x90BC

GL_ATOMIC_COUNTER_BUFFER = 0x92C0

GL_ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1

GL_ATOMIC_COUNTER_BUFFER_START = 0x92C2

GL_ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3

GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4

GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5

GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6

GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7

GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8

GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9

GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA

GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB

GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC

GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD

GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE

GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF

GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0

GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1

GL_MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2

GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3

GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4

GL_MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5

GL_MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6

GL_MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7

GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8

GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC

GL_ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9

GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA

GL_UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB

GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001

GL_ELEMENT_ARRAY_BARRIER_BIT = 0x00000002

GL_UNIFORM_BARRIER_BIT = 0x00000004

GL_TEXTURE_FETCH_BARRIER_BIT = 0x00000008

GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020

GL_COMMAND_BARRIER_BIT = 0x00000040

GL_PIXEL_BUFFER_BARRIER_BIT = 0x00000080

GL_TEXTURE_UPDATE_BARRIER_BIT = 0x00000100

GL_BUFFER_UPDATE_BARRIER_BIT = 0x00000200

GL_FRAMEBUFFER_BARRIER_BIT = 0x00000400

GL_TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800

GL_ATOMIC_COUNTER_BARRIER_BIT = 0x00001000

GL_ALL_BARRIER_BITS = 0xFFFFFFFF

GL_MAX_IMAGE_UNITS = 0x8F38

GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39

GL_IMAGE_BINDING_NAME = 0x8F3A

GL_IMAGE_BINDING_LEVEL = 0x8F3B

GL_IMAGE_BINDING_LAYERED = 0x8F3C

GL_IMAGE_BINDING_LAYER = 0x8F3D

GL_IMAGE_BINDING_ACCESS = 0x8F3E

GL_IMAGE_1D = 0x904C

GL_IMAGE_2D = 0x904D

GL_IMAGE_3D = 0x904E

GL_IMAGE_2D_RECT = 0x904F

GL_IMAGE_CUBE = 0x9050

GL_IMAGE_BUFFER = 0x9051

GL_IMAGE_1D_ARRAY = 0x9052

GL_IMAGE_2D_ARRAY = 0x9053

GL_IMAGE_CUBE_MAP_ARRAY = 0x9054

GL_IMAGE_2D_MULTISAMPLE = 0x9055

GL_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056

GL_INT_IMAGE_1D = 0x9057

GL_INT_IMAGE_2D = 0x9058

GL_INT_IMAGE_3D = 0x9059

GL_INT_IMAGE_2D_RECT = 0x905A

GL_INT_IMAGE_CUBE = 0x905B

GL_INT_IMAGE_BUFFER = 0x905C

GL_INT_IMAGE_1D_ARRAY = 0x905D

GL_INT_IMAGE_2D_ARRAY = 0x905E

GL_INT_IMAGE_CUBE_MAP_ARRAY = 0x905F

GL_INT_IMAGE_2D_MULTISAMPLE = 0x9060

GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061

GL_UNSIGNED_INT_IMAGE_1D = 0x9062

GL_UNSIGNED_INT_IMAGE_2D = 0x9063

GL_UNSIGNED_INT_IMAGE_3D = 0x9064

GL_UNSIGNED_INT_IMAGE_2D_RECT = 0x9065

GL_UNSIGNED_INT_IMAGE_CUBE = 0x9066

GL_UNSIGNED_INT_IMAGE_BUFFER = 0x9067

GL_UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068

GL_UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069

GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A

GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B

GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C

GL_MAX_IMAGE_SAMPLES = 0x906D

GL_IMAGE_BINDING_FORMAT = 0x906E

GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7

GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8

GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9

GL_MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA

GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB

GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC

GL_MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD

GL_MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE

GL_MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF

GL_COMPRESSED_RGBA_BPTC_UNORM = 0x8E8C

GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 0x8E8D

GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 0x8E8E

GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 0x8E8F

GL_TEXTURE_IMMUTABLE_FORMAT = 0x912F

GL_NUM_SHADING_LANGUAGE_VERSIONS = 0x82E9

GL_VERTEX_ATTRIB_ARRAY_LONG = 0x874E

GL_COMPRESSED_RGB8_ETC2 = 0x9274

GL_COMPRESSED_SRGB8_ETC2 = 0x9275

GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276

GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277

GL_COMPRESSED_RGBA8_ETC2_EAC = 0x9278

GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279

GL_COMPRESSED_R11_EAC = 0x9270

GL_COMPRESSED_SIGNED_R11_EAC = 0x9271

GL_COMPRESSED_RG11_EAC = 0x9272

GL_COMPRESSED_SIGNED_RG11_EAC = 0x9273

GL_PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69

GL_ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A

GL_MAX_ELEMENT_INDEX = 0x8D6B

GL_COMPUTE_SHADER = 0x91B9

GL_MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB

GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC

GL_MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD

GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262

GL_MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263

GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264

GL_MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265

GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266

GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB

GL_MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE

GL_MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF

GL_COMPUTE_WORK_GROUP_SIZE = 0x8267

GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC

GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED

GL_DISPATCH_INDIRECT_BUFFER = 0x90EE

GL_DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF

GL_COMPUTE_SHADER_BIT = 0x00000020

GL_DEBUG_OUTPUT_SYNCHRONOUS = 0x8242

GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243

GL_DEBUG_CALLBACK_FUNCTION = 0x8244

GL_DEBUG_CALLBACK_USER_PARAM = 0x8245

GL_DEBUG_SOURCE_API = 0x8246

GL_DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247

GL_DEBUG_SOURCE_SHADER_COMPILER = 0x8248

GL_DEBUG_SOURCE_THIRD_PARTY = 0x8249

GL_DEBUG_SOURCE_APPLICATION = 0x824A

GL_DEBUG_SOURCE_OTHER = 0x824B

GL_DEBUG_TYPE_ERROR = 0x824C

GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D

GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E

GL_DEBUG_TYPE_PORTABILITY = 0x824F

GL_DEBUG_TYPE_PERFORMANCE = 0x8250

GL_DEBUG_TYPE_OTHER = 0x8251

GL_MAX_DEBUG_MESSAGE_LENGTH = 0x9143

GL_MAX_DEBUG_LOGGED_MESSAGES = 0x9144

GL_DEBUG_LOGGED_MESSAGES = 0x9145

GL_DEBUG_SEVERITY_HIGH = 0x9146

GL_DEBUG_SEVERITY_MEDIUM = 0x9147

GL_DEBUG_SEVERITY_LOW = 0x9148

GL_DEBUG_TYPE_MARKER = 0x8268

GL_DEBUG_TYPE_PUSH_GROUP = 0x8269

GL_DEBUG_TYPE_POP_GROUP = 0x826A

GL_DEBUG_SEVERITY_NOTIFICATION = 0x826B

GL_MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C

GL_DEBUG_GROUP_STACK_DEPTH = 0x826D

GL_BUFFER = 0x82E0

GL_SHADER = 0x82E1

GL_PROGRAM = 0x82E2

GL_QUERY = 0x82E3

GL_PROGRAM_PIPELINE = 0x82E4

GL_SAMPLER = 0x82E6

GL_MAX_LABEL_LENGTH = 0x82E8

GL_DEBUG_OUTPUT = 0x92E0

GL_CONTEXT_FLAG_DEBUG_BIT = 0x00000002

GL_MAX_UNIFORM_LOCATIONS = 0x826E

GL_FRAMEBUFFER_DEFAULT_WIDTH = 0x9310

GL_FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311

GL_FRAMEBUFFER_DEFAULT_LAYERS = 0x9312

GL_FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313

GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314

GL_MAX_FRAMEBUFFER_WIDTH = 0x9315

GL_MAX_FRAMEBUFFER_HEIGHT = 0x9316

GL_MAX_FRAMEBUFFER_LAYERS = 0x9317

GL_MAX_FRAMEBUFFER_SAMPLES = 0x9318

GL_INTERNALFORMAT_SUPPORTED = 0x826F

GL_INTERNALFORMAT_PREFERRED = 0x8270

GL_INTERNALFORMAT_RED_SIZE = 0x8271

GL_INTERNALFORMAT_GREEN_SIZE = 0x8272

GL_INTERNALFORMAT_BLUE_SIZE = 0x8273

GL_INTERNALFORMAT_ALPHA_SIZE = 0x8274

GL_INTERNALFORMAT_DEPTH_SIZE = 0x8275

GL_INTERNALFORMAT_STENCIL_SIZE = 0x8276

GL_INTERNALFORMAT_SHARED_SIZE = 0x8277

GL_INTERNALFORMAT_RED_TYPE = 0x8278

GL_INTERNALFORMAT_GREEN_TYPE = 0x8279

GL_INTERNALFORMAT_BLUE_TYPE = 0x827A

GL_INTERNALFORMAT_ALPHA_TYPE = 0x827B

GL_INTERNALFORMAT_DEPTH_TYPE = 0x827C

GL_INTERNALFORMAT_STENCIL_TYPE = 0x827D

GL_MAX_WIDTH = 0x827E

GL_MAX_HEIGHT = 0x827F

GL_MAX_DEPTH = 0x8280

GL_MAX_LAYERS = 0x8281

GL_MAX_COMBINED_DIMENSIONS = 0x8282

GL_COLOR_COMPONENTS = 0x8283

GL_DEPTH_COMPONENTS = 0x8284

GL_STENCIL_COMPONENTS = 0x8285

GL_COLOR_RENDERABLE = 0x8286

GL_DEPTH_RENDERABLE = 0x8287

GL_STENCIL_RENDERABLE = 0x8288

GL_FRAMEBUFFER_RENDERABLE = 0x8289

GL_FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A

GL_FRAMEBUFFER_BLEND = 0x828B

GL_READ_PIXELS = 0x828C

GL_READ_PIXELS_FORMAT = 0x828D

GL_READ_PIXELS_TYPE = 0x828E

GL_TEXTURE_IMAGE_FORMAT = 0x828F

GL_TEXTURE_IMAGE_TYPE = 0x8290

GL_GET_TEXTURE_IMAGE_FORMAT = 0x8291

GL_GET_TEXTURE_IMAGE_TYPE = 0x8292

GL_MIPMAP = 0x8293

GL_MANUAL_GENERATE_MIPMAP = 0x8294

GL_AUTO_GENERATE_MIPMAP = 0x8295

GL_COLOR_ENCODING = 0x8296

GL_SRGB_READ = 0x8297

GL_SRGB_WRITE = 0x8298

GL_FILTER = 0x829A

GL_VERTEX_TEXTURE = 0x829B

GL_TESS_CONTROL_TEXTURE = 0x829C

GL_TESS_EVALUATION_TEXTURE = 0x829D

GL_GEOMETRY_TEXTURE = 0x829E

GL_FRAGMENT_TEXTURE = 0x829F

GL_COMPUTE_TEXTURE = 0x82A0

GL_TEXTURE_SHADOW = 0x82A1

GL_TEXTURE_GATHER = 0x82A2

GL_TEXTURE_GATHER_SHADOW = 0x82A3

GL_SHADER_IMAGE_LOAD = 0x82A4

GL_SHADER_IMAGE_STORE = 0x82A5

GL_SHADER_IMAGE_ATOMIC = 0x82A6

GL_IMAGE_TEXEL_SIZE = 0x82A7

GL_IMAGE_COMPATIBILITY_CLASS = 0x82A8

GL_IMAGE_PIXEL_FORMAT = 0x82A9

GL_IMAGE_PIXEL_TYPE = 0x82AA

GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC

GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD

GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE

GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF

GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1

GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2

GL_TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3

GL_CLEAR_BUFFER = 0x82B4

GL_TEXTURE_VIEW = 0x82B5

GL_VIEW_COMPATIBILITY_CLASS = 0x82B6

GL_FULL_SUPPORT = 0x82B7

GL_CAVEAT_SUPPORT = 0x82B8

GL_IMAGE_CLASS_4_X_32 = 0x82B9

GL_IMAGE_CLASS_2_X_32 = 0x82BA

GL_IMAGE_CLASS_1_X_32 = 0x82BB

GL_IMAGE_CLASS_4_X_16 = 0x82BC

GL_IMAGE_CLASS_2_X_16 = 0x82BD

GL_IMAGE_CLASS_1_X_16 = 0x82BE

GL_IMAGE_CLASS_4_X_8 = 0x82BF

GL_IMAGE_CLASS_2_X_8 = 0x82C0

GL_IMAGE_CLASS_1_X_8 = 0x82C1

GL_IMAGE_CLASS_11_11_10 = 0x82C2

GL_IMAGE_CLASS_10_10_10_2 = 0x82C3

GL_VIEW_CLASS_128_BITS = 0x82C4

GL_VIEW_CLASS_96_BITS = 0x82C5

GL_VIEW_CLASS_64_BITS = 0x82C6

GL_VIEW_CLASS_48_BITS = 0x82C7

GL_VIEW_CLASS_32_BITS = 0x82C8

GL_VIEW_CLASS_24_BITS = 0x82C9

GL_VIEW_CLASS_16_BITS = 0x82CA

GL_VIEW_CLASS_8_BITS = 0x82CB

GL_VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC

GL_VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD

GL_VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE

GL_VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF

GL_VIEW_CLASS_RGTC1_RED = 0x82D0

GL_VIEW_CLASS_RGTC2_RG = 0x82D1

GL_VIEW_CLASS_BPTC_UNORM = 0x82D2

GL_VIEW_CLASS_BPTC_FLOAT = 0x82D3

GL_UNIFORM = 0x92E1

GL_UNIFORM_BLOCK = 0x92E2

GL_PROGRAM_INPUT = 0x92E3

GL_PROGRAM_OUTPUT = 0x92E4

GL_BUFFER_VARIABLE = 0x92E5

GL_SHADER_STORAGE_BLOCK = 0x92E6

GL_VERTEX_SUBROUTINE = 0x92E8

GL_TESS_CONTROL_SUBROUTINE = 0x92E9

GL_TESS_EVALUATION_SUBROUTINE = 0x92EA

GL_GEOMETRY_SUBROUTINE = 0x92EB

GL_FRAGMENT_SUBROUTINE = 0x92EC

GL_COMPUTE_SUBROUTINE = 0x92ED

GL_VERTEX_SUBROUTINE_UNIFORM = 0x92EE

GL_TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF

GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0

GL_GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1

GL_FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2

GL_COMPUTE_SUBROUTINE_UNIFORM = 0x92F3

GL_TRANSFORM_FEEDBACK_VARYING = 0x92F4

GL_ACTIVE_RESOURCES = 0x92F5

GL_MAX_NAME_LENGTH = 0x92F6

GL_MAX_NUM_ACTIVE_VARIABLES = 0x92F7

GL_MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8

GL_NAME_LENGTH = 0x92F9

GL_TYPE = 0x92FA

GL_ARRAY_SIZE = 0x92FB

GL_OFFSET = 0x92FC

GL_BLOCK_INDEX = 0x92FD

GL_ARRAY_STRIDE = 0x92FE

GL_MATRIX_STRIDE = 0x92FF

GL_IS_ROW_MAJOR = 0x9300

GL_ATOMIC_COUNTER_BUFFER_INDEX = 0x9301

GL_BUFFER_BINDING = 0x9302

GL_BUFFER_DATA_SIZE = 0x9303

GL_NUM_ACTIVE_VARIABLES = 0x9304

GL_ACTIVE_VARIABLES = 0x9305

GL_REFERENCED_BY_VERTEX_SHADER = 0x9306

GL_REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307

GL_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308

GL_REFERENCED_BY_GEOMETRY_SHADER = 0x9309

GL_REFERENCED_BY_FRAGMENT_SHADER = 0x930A

GL_REFERENCED_BY_COMPUTE_SHADER = 0x930B

GL_TOP_LEVEL_ARRAY_SIZE = 0x930C

GL_TOP_LEVEL_ARRAY_STRIDE = 0x930D

GL_LOCATION = 0x930E

GL_LOCATION_INDEX = 0x930F

GL_IS_PER_PATCH = 0x92E7

GL_SHADER_STORAGE_BUFFER = 0x90D2

GL_SHADER_STORAGE_BUFFER_BINDING = 0x90D3

GL_SHADER_STORAGE_BUFFER_START = 0x90D4

GL_SHADER_STORAGE_BUFFER_SIZE = 0x90D5

GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6

GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7

GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8

GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9

GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA

GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB

GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC

GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD

GL_MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE

GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF

GL_SHADER_STORAGE_BARRIER_BIT = 0x00002000

GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39

GL_DEPTH_STENCIL_TEXTURE_MODE = 0x90EA

GL_TEXTURE_BUFFER_OFFSET = 0x919D

GL_TEXTURE_BUFFER_SIZE = 0x919E

GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F

GL_TEXTURE_VIEW_MIN_LEVEL = 0x82DB

GL_TEXTURE_VIEW_NUM_LEVELS = 0x82DC

GL_TEXTURE_VIEW_MIN_LAYER = 0x82DD

GL_TEXTURE_VIEW_NUM_LAYERS = 0x82DE

GL_TEXTURE_IMMUTABLE_LEVELS = 0x82DF

GL_VERTEX_ATTRIB_BINDING = 0x82D4

GL_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5

GL_VERTEX_BINDING_DIVISOR = 0x82D6

GL_VERTEX_BINDING_OFFSET = 0x82D7

GL_VERTEX_BINDING_STRIDE = 0x82D8

GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9

GL_MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA

GL_VERTEX_BINDING_BUFFER = 0x8F4F

GL_DISPLAY_LIST = 0x82E7

GL_MAX_VERTEX_ATTRIB_STRIDE = 0x82E5

GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = 0x8221

GL_TEXTURE_BUFFER_BINDING = 0x8C2A

GL_MAP_PERSISTENT_BIT = 0x0040

GL_MAP_COHERENT_BIT = 0x0080

GL_DYNAMIC_STORAGE_BIT = 0x0100

GL_CLIENT_STORAGE_BIT = 0x0200

GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = 0x00004000

GL_BUFFER_IMMUTABLE_STORAGE = 0x821F

GL_BUFFER_STORAGE_FLAGS = 0x8220

GL_CLEAR_TEXTURE = 0x9365

GL_LOCATION_COMPONENT = 0x934A

GL_TRANSFORM_FEEDBACK_BUFFER_INDEX = 0x934B

GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = 0x934C

GL_QUERY_BUFFER = 0x9192

GL_QUERY_BUFFER_BARRIER_BIT = 0x00008000

GL_QUERY_BUFFER_BINDING = 0x9193

GL_QUERY_RESULT_NO_WAIT = 0x9194

GL_MIRROR_CLAMP_TO_EDGE = 0x8743

GL_CONTEXT_LOST = 0x0507

GL_NEGATIVE_ONE_TO_ONE = 0x935E

GL_ZERO_TO_ONE = 0x935F

GL_CLIP_ORIGIN = 0x935C

GL_CLIP_DEPTH_MODE = 0x935D

GL_QUERY_WAIT_INVERTED = 0x8E17

GL_QUERY_NO_WAIT_INVERTED = 0x8E18

GL_QUERY_BY_REGION_WAIT_INVERTED = 0x8E19

GL_QUERY_BY_REGION_NO_WAIT_INVERTED = 0x8E1A

GL_MAX_CULL_DISTANCES = 0x82F9

GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = 0x82FA

GL_TEXTURE_TARGET = 0x1006

GL_QUERY_TARGET = 0x82EA

GL_GUILTY_CONTEXT_RESET = 0x8253

GL_INNOCENT_CONTEXT_RESET = 0x8254

GL_UNKNOWN_CONTEXT_RESET = 0x8255

GL_RESET_NOTIFICATION_STRATEGY = 0x8256

GL_LOSE_CONTEXT_ON_RESET = 0x8252

GL_NO_RESET_NOTIFICATION = 0x8261

GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT = 0x00000004

GL_CONTEXT_RELEASE_BEHAVIOR = 0x82FB

GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x82FC

ffi.cdef[[
typedef void (*PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
typedef void (*PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
typedef void (*PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
typedef void (*PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
 void  glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
 void  glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
 void  glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
 void  glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);


typedef void (*PFNGLACTIVETEXTUREPROC) (GLenum texture);
typedef void (*PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert);
typedef void (*PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
typedef void (*PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
typedef void (*PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
typedef void (*PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
typedef void (*PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
typedef void (*PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
typedef void (*PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, void *img);
typedef void (*PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture);
typedef void (*PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s);
typedef void (*PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v);
typedef void (*PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s);
typedef void (*PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v);
typedef void (*PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s);
typedef void (*PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v);
typedef void (*PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s);
typedef void (*PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v);
typedef void (*PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t);
typedef void (*PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v);
typedef void (*PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t);
typedef void (*PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v);
typedef void (*PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t);
typedef void (*PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v);
typedef void (*PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t);
typedef void (*PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v);
typedef void (*PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
typedef void (*PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v);
typedef void (*PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
typedef void (*PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v);
typedef void (*PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r);
typedef void (*PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v);
typedef void (*PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
typedef void (*PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v);
typedef void (*PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
typedef void (*PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v);
typedef void (*PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
typedef void (*PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v);
typedef void (*PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
typedef void (*PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v);
typedef void (*PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
typedef void (*PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v);
typedef void (*PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m);
typedef void (*PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m);
typedef void (*PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m);
typedef void (*PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m);
 void  glActiveTexture (GLenum texture);
 void  glSampleCoverage (GLfloat value, GLboolean invert);
 void  glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
 void  glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
 void  glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
 void  glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
 void  glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
 void  glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
 void  glGetCompressedTexImage (GLenum target, GLint level, void *img);
 void  glClientActiveTexture (GLenum texture);
 void  glMultiTexCoord1d (GLenum target, GLdouble s);
 void  glMultiTexCoord1dv (GLenum target, const GLdouble *v);
 void  glMultiTexCoord1f (GLenum target, GLfloat s);
 void  glMultiTexCoord1fv (GLenum target, const GLfloat *v);
 void  glMultiTexCoord1i (GLenum target, GLint s);
 void  glMultiTexCoord1iv (GLenum target, const GLint *v);
 void  glMultiTexCoord1s (GLenum target, GLshort s);
 void  glMultiTexCoord1sv (GLenum target, const GLshort *v);
 void  glMultiTexCoord2d (GLenum target, GLdouble s, GLdouble t);
 void  glMultiTexCoord2dv (GLenum target, const GLdouble *v);
 void  glMultiTexCoord2f (GLenum target, GLfloat s, GLfloat t);
 void  glMultiTexCoord2fv (GLenum target, const GLfloat *v);
 void  glMultiTexCoord2i (GLenum target, GLint s, GLint t);
 void  glMultiTexCoord2iv (GLenum target, const GLint *v);
 void  glMultiTexCoord2s (GLenum target, GLshort s, GLshort t);
 void  glMultiTexCoord2sv (GLenum target, const GLshort *v);
 void  glMultiTexCoord3d (GLenum target, GLdouble s, GLdouble t, GLdouble r);
 void  glMultiTexCoord3dv (GLenum target, const GLdouble *v);
 void  glMultiTexCoord3f (GLenum target, GLfloat s, GLfloat t, GLfloat r);
 void  glMultiTexCoord3fv (GLenum target, const GLfloat *v);
 void  glMultiTexCoord3i (GLenum target, GLint s, GLint t, GLint r);
 void  glMultiTexCoord3iv (GLenum target, const GLint *v);
 void  glMultiTexCoord3s (GLenum target, GLshort s, GLshort t, GLshort r);
 void  glMultiTexCoord3sv (GLenum target, const GLshort *v);
 void  glMultiTexCoord4d (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
 void  glMultiTexCoord4dv (GLenum target, const GLdouble *v);
 void  glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
 void  glMultiTexCoord4fv (GLenum target, const GLfloat *v);
 void  glMultiTexCoord4i (GLenum target, GLint s, GLint t, GLint r, GLint q);
 void  glMultiTexCoord4iv (GLenum target, const GLint *v);
 void  glMultiTexCoord4s (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
 void  glMultiTexCoord4sv (GLenum target, const GLshort *v);
 void  glLoadTransposeMatrixf (const GLfloat *m);
 void  glLoadTransposeMatrixd (const GLdouble *m);
 void  glMultTransposeMatrixf (const GLfloat *m);
 void  glMultTransposeMatrixd (const GLdouble *m);

typedef void (*PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
typedef void (*PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount);
typedef void (*PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount);
typedef void (*PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param);
typedef void (*PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params);
typedef void (*PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param);
typedef void (*PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params);
typedef void (*PFNGLFOGCOORDFPROC) (GLfloat coord);
typedef void (*PFNGLFOGCOORDFVPROC) (const GLfloat *coord);
typedef void (*PFNGLFOGCOORDDPROC) (GLdouble coord);
typedef void (*PFNGLFOGCOORDDVPROC) (const GLdouble *coord);
typedef void (*PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const void *pointer);
typedef void (*PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue);
typedef void (*PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v);
typedef void (*PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue);
typedef void (*PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v);
typedef void (*PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue);
typedef void (*PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v);
typedef void (*PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue);
typedef void (*PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v);
typedef void (*PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue);
typedef void (*PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v);
typedef void (*PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue);
typedef void (*PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v);
typedef void (*PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue);
typedef void (*PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v);
typedef void (*PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue);
typedef void (*PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v);
typedef void (*PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer);
typedef void (*PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y);
typedef void (*PFNGLWINDOWPOS2DVPROC) (const GLdouble *v);
typedef void (*PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y);
typedef void (*PFNGLWINDOWPOS2FVPROC) (const GLfloat *v);
typedef void (*PFNGLWINDOWPOS2IPROC) (GLint x, GLint y);
typedef void (*PFNGLWINDOWPOS2IVPROC) (const GLint *v);
typedef void (*PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y);
typedef void (*PFNGLWINDOWPOS2SVPROC) (const GLshort *v);
typedef void (*PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z);
typedef void (*PFNGLWINDOWPOS3DVPROC) (const GLdouble *v);
typedef void (*PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z);
typedef void (*PFNGLWINDOWPOS3FVPROC) (const GLfloat *v);
typedef void (*PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z);
typedef void (*PFNGLWINDOWPOS3IVPROC) (const GLint *v);
typedef void (*PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z);
typedef void (*PFNGLWINDOWPOS3SVPROC) (const GLshort *v);
typedef void (*PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
typedef void (*PFNGLBLENDEQUATIONPROC) (GLenum mode);

 void  glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
 void  glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount);
 void  glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount);
 void  glPointParameterf (GLenum pname, GLfloat param);
 void  glPointParameterfv (GLenum pname, const GLfloat *params);
 void  glPointParameteri (GLenum pname, GLint param);
 void  glPointParameteriv (GLenum pname, const GLint *params);
 void  glFogCoordf (GLfloat coord);
 void  glFogCoordfv (const GLfloat *coord);
 void  glFogCoordd (GLdouble coord);
 void  glFogCoorddv (const GLdouble *coord);
 void  glFogCoordPointer (GLenum type, GLsizei stride, const void *pointer);
 void  glSecondaryColor3b (GLbyte red, GLbyte green, GLbyte blue);
 void  glSecondaryColor3bv (const GLbyte *v);
 void  glSecondaryColor3d (GLdouble red, GLdouble green, GLdouble blue);
 void  glSecondaryColor3dv (const GLdouble *v);
 void  glSecondaryColor3f (GLfloat red, GLfloat green, GLfloat blue);
 void  glSecondaryColor3fv (const GLfloat *v);
 void  glSecondaryColor3i (GLint red, GLint green, GLint blue);
 void  glSecondaryColor3iv (const GLint *v);
 void  glSecondaryColor3s (GLshort red, GLshort green, GLshort blue);
 void  glSecondaryColor3sv (const GLshort *v);
 void  glSecondaryColor3ub (GLubyte red, GLubyte green, GLubyte blue);
 void  glSecondaryColor3ubv (const GLubyte *v);
 void  glSecondaryColor3ui (GLuint red, GLuint green, GLuint blue);
 void  glSecondaryColor3uiv (const GLuint *v);
 void  glSecondaryColor3us (GLushort red, GLushort green, GLushort blue);
 void  glSecondaryColor3usv (const GLushort *v);
 void  glSecondaryColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
 void  glWindowPos2d (GLdouble x, GLdouble y);
 void  glWindowPos2dv (const GLdouble *v);
 void  glWindowPos2f (GLfloat x, GLfloat y);
 void  glWindowPos2fv (const GLfloat *v);
 void  glWindowPos2i (GLint x, GLint y);
 void  glWindowPos2iv (const GLint *v);
 void  glWindowPos2s (GLshort x, GLshort y);
 void  glWindowPos2sv (const GLshort *v);
 void  glWindowPos3d (GLdouble x, GLdouble y, GLdouble z);
 void  glWindowPos3dv (const GLdouble *v);
 void  glWindowPos3f (GLfloat x, GLfloat y, GLfloat z);
 void  glWindowPos3fv (const GLfloat *v);
 void  glWindowPos3i (GLint x, GLint y, GLint z);
 void  glWindowPos3iv (const GLint *v);
 void  glWindowPos3s (GLshort x, GLshort y, GLshort z);
 void  glWindowPos3sv (const GLshort *v);
 void  glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
 void  glBlendEquation (GLenum mode);

typedef ptrdiff_t GLsizeiptr;
typedef ptrdiff_t GLintptr;
typedef void (*PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids);
typedef void (*PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids);
typedef GLboolean (*PFNGLISQUERYPROC) (GLuint id);
typedef void (*PFNGLBEGINQUERYPROC) (GLenum target, GLuint id);
typedef void (*PFNGLENDQUERYPROC) (GLenum target);
typedef void (*PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params);
typedef void (*PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params);
typedef void (*PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params);
typedef void (*PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
typedef void (*PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers);
typedef void (*PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers);
typedef GLboolean (*PFNGLISBUFFERPROC) (GLuint buffer);
typedef void (*PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage);
typedef void (*PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
typedef void (*PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, void *data);
typedef void *(*PFNGLMAPBUFFERPROC) (GLenum target, GLenum access);
typedef GLboolean (*PFNGLUNMAPBUFFERPROC) (GLenum target);
typedef void (*PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
typedef void (*PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params);
 void  glGenQueries (GLsizei n, GLuint *ids);
 void  glDeleteQueries (GLsizei n, const GLuint *ids);
 GLboolean  glIsQuery (GLuint id);
 void  glBeginQuery (GLenum target, GLuint id);
 void  glEndQuery (GLenum target);
 void  glGetQueryiv (GLenum target, GLenum pname, GLint *params);
 void  glGetQueryObjectiv (GLuint id, GLenum pname, GLint *params);
 void  glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params);
 void  glBindBuffer (GLenum target, GLuint buffer);
 void  glDeleteBuffers (GLsizei n, const GLuint *buffers);
 void  glGenBuffers (GLsizei n, GLuint *buffers);
 GLboolean  glIsBuffer (GLuint buffer);
 void  glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage);
 void  glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
 void  glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, void *data);
 void * glMapBuffer (GLenum target, GLenum access);
 GLboolean  glUnmapBuffer (GLenum target);
 void  glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params);
 void  glGetBufferPointerv (GLenum target, GLenum pname, void **params);

typedef char GLchar;
typedef void (*PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
typedef void (*PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs);
typedef void (*PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
typedef void (*PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask);
typedef void (*PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
typedef void (*PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
typedef void (*PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name);
typedef void (*PFNGLCOMPILESHADERPROC) (GLuint shader);
typedef GLuint (*PFNGLCREATEPROGRAMPROC) (void);
typedef GLuint (*PFNGLCREATESHADERPROC) (GLenum type);
typedef void (*PFNGLDELETEPROGRAMPROC) (GLuint program);
typedef void (*PFNGLDELETESHADERPROC) (GLuint shader);
typedef void (*PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
typedef void (*PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
typedef void (*PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
typedef void (*PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
typedef void (*PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
typedef void (*PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
typedef GLint (*PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name);
typedef void (*PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params);
typedef void (*PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
typedef void (*PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params);
typedef void (*PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
typedef void (*PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
typedef GLint (*PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name);
typedef void (*PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params);
typedef void (*PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params);
typedef void (*PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params);
typedef void (*PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params);
typedef void (*PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params);
typedef void (*PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer);
typedef GLboolean (*PFNGLISPROGRAMPROC) (GLuint program);
typedef GLboolean (*PFNGLISSHADERPROC) (GLuint shader);
typedef void (*PFNGLLINKPROGRAMPROC) (GLuint program);
typedef void (*PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
typedef void (*PFNGLUSEPROGRAMPROC) (GLuint program);
typedef void (*PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
typedef void (*PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
typedef void (*PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
typedef void (*PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
typedef void (*PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
typedef void (*PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
typedef void (*PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
typedef void (*PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
typedef void (*PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value);
typedef void (*PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value);
typedef void (*PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value);
typedef void (*PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value);
typedef void (*PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value);
typedef void (*PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value);
typedef void (*PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value);
typedef void (*PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value);
typedef void (*PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (*PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (*PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (*PFNGLVALIDATEPROGRAMPROC) (GLuint program);
typedef void (*PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x);
typedef void (*PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v);
typedef void (*PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
typedef void (*PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v);
typedef void (*PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x);
typedef void (*PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v);
typedef void (*PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y);
typedef void (*PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v);
typedef void (*PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
typedef void (*PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v);
typedef void (*PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y);
typedef void (*PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v);
typedef void (*PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
typedef void (*PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v);
typedef void (*PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
typedef void (*PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v);
typedef void (*PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
typedef void (*PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v);
typedef void (*PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v);
typedef void (*PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v);
typedef void (*PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v);
typedef void (*PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
typedef void (*PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v);
typedef void (*PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v);
typedef void (*PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v);
typedef void (*PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v);
typedef void (*PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (*PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v);
typedef void (*PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (*PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v);
typedef void (*PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v);
typedef void (*PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
typedef void (*PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v);
typedef void (*PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v);
typedef void (*PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v);
typedef void (*PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v);
typedef void (*PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
 void  glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha);
 void  glDrawBuffers (GLsizei n, const GLenum *bufs);
 void  glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
 void  glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask);
 void  glStencilMaskSeparate (GLenum face, GLuint mask);
 void  glAttachShader (GLuint program, GLuint shader);
 void  glBindAttribLocation (GLuint program, GLuint index, const GLchar *name);
 void  glCompileShader (GLuint shader);
 GLuint  glCreateProgram (void);
 GLuint  glCreateShader (GLenum type);
 void  glDeleteProgram (GLuint program);
 void  glDeleteShader (GLuint shader);
 void  glDetachShader (GLuint program, GLuint shader);
 void  glDisableVertexAttribArray (GLuint index);
 void  glEnableVertexAttribArray (GLuint index);
 void  glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
 void  glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
 void  glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
 GLint  glGetAttribLocation (GLuint program, const GLchar *name);
 void  glGetProgramiv (GLuint program, GLenum pname, GLint *params);
 void  glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
 void  glGetShaderiv (GLuint shader, GLenum pname, GLint *params);
 void  glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
 void  glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
 GLint  glGetUniformLocation (GLuint program, const GLchar *name);
 void  glGetUniformfv (GLuint program, GLint location, GLfloat *params);
 void  glGetUniformiv (GLuint program, GLint location, GLint *params);
 void  glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble *params);
 void  glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params);
 void  glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params);
 void  glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer);
 GLboolean  glIsProgram (GLuint program);
 GLboolean  glIsShader (GLuint shader);
 void  glLinkProgram (GLuint program);
 void  glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
 void  glUseProgram (GLuint program);
 void  glUniform1f (GLint location, GLfloat v0);
 void  glUniform2f (GLint location, GLfloat v0, GLfloat v1);
 void  glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
 void  glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
 void  glUniform1i (GLint location, GLint v0);
 void  glUniform2i (GLint location, GLint v0, GLint v1);
 void  glUniform3i (GLint location, GLint v0, GLint v1, GLint v2);
 void  glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
 void  glUniform1fv (GLint location, GLsizei count, const GLfloat *value);
 void  glUniform2fv (GLint location, GLsizei count, const GLfloat *value);
 void  glUniform3fv (GLint location, GLsizei count, const GLfloat *value);
 void  glUniform4fv (GLint location, GLsizei count, const GLfloat *value);
 void  glUniform1iv (GLint location, GLsizei count, const GLint *value);
 void  glUniform2iv (GLint location, GLsizei count, const GLint *value);
 void  glUniform3iv (GLint location, GLsizei count, const GLint *value);
 void  glUniform4iv (GLint location, GLsizei count, const GLint *value);
 void  glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 void  glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 void  glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 void  glValidateProgram (GLuint program);
 void  glVertexAttrib1d (GLuint index, GLdouble x);
 void  glVertexAttrib1dv (GLuint index, const GLdouble *v);
 void  glVertexAttrib1f (GLuint index, GLfloat x);
 void  glVertexAttrib1fv (GLuint index, const GLfloat *v);
 void  glVertexAttrib1s (GLuint index, GLshort x);
 void  glVertexAttrib1sv (GLuint index, const GLshort *v);
 void  glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y);
 void  glVertexAttrib2dv (GLuint index, const GLdouble *v);
 void  glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y);
 void  glVertexAttrib2fv (GLuint index, const GLfloat *v);
 void  glVertexAttrib2s (GLuint index, GLshort x, GLshort y);
 void  glVertexAttrib2sv (GLuint index, const GLshort *v);
 void  glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z);
 void  glVertexAttrib3dv (GLuint index, const GLdouble *v);
 void  glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z);
 void  glVertexAttrib3fv (GLuint index, const GLfloat *v);
 void  glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z);
 void  glVertexAttrib3sv (GLuint index, const GLshort *v);
 void  glVertexAttrib4Nbv (GLuint index, const GLbyte *v);
 void  glVertexAttrib4Niv (GLuint index, const GLint *v);
 void  glVertexAttrib4Nsv (GLuint index, const GLshort *v);
 void  glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
 void  glVertexAttrib4Nubv (GLuint index, const GLubyte *v);
 void  glVertexAttrib4Nuiv (GLuint index, const GLuint *v);
 void  glVertexAttrib4Nusv (GLuint index, const GLushort *v);
 void  glVertexAttrib4bv (GLuint index, const GLbyte *v);
 void  glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
 void  glVertexAttrib4dv (GLuint index, const GLdouble *v);
 void  glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
 void  glVertexAttrib4fv (GLuint index, const GLfloat *v);
 void  glVertexAttrib4iv (GLuint index, const GLint *v);
 void  glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
 void  glVertexAttrib4sv (GLuint index, const GLshort *v);
 void  glVertexAttrib4ubv (GLuint index, const GLubyte *v);
 void  glVertexAttrib4uiv (GLuint index, const GLuint *v);
 void  glVertexAttrib4usv (GLuint index, const GLushort *v);
 void  glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);

typedef void (*PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (*PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (*PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (*PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (*PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (*PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 void  glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 void  glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 void  glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 void  glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 void  glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 void  glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);

typedef unsigned short GLhalf;
typedef void (*PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
typedef void (*PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data);
typedef void (*PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data);
typedef void (*PFNGLENABLEIPROC) (GLenum target, GLuint index);
typedef void (*PFNGLDISABLEIPROC) (GLenum target, GLuint index);
typedef GLboolean (*PFNGLISENABLEDIPROC) (GLenum target, GLuint index);
typedef void (*PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode);
typedef void (*PFNGLENDTRANSFORMFEEDBACKPROC) (void);
typedef void (*PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
typedef void (*PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer);
typedef void (*PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode);
typedef void (*PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
typedef void (*PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp);
typedef void (*PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode);
typedef void (*PFNGLENDCONDITIONALRENDERPROC) (void);
typedef void (*PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
typedef void (*PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params);
typedef void (*PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params);
typedef void (*PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x);
typedef void (*PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y);
typedef void (*PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z);
typedef void (*PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w);
typedef void (*PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x);
typedef void (*PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y);
typedef void (*PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z);
typedef void (*PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
typedef void (*PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v);
typedef void (*PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v);
typedef void (*PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v);
typedef void (*PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v);
typedef void (*PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v);
typedef void (*PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v);
typedef void (*PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v);
typedef void (*PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v);
typedef void (*PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v);
typedef void (*PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v);
typedef void (*PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v);
typedef void (*PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v);
typedef void (*PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params);
typedef void (*PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name);
typedef GLint (*PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name);
typedef void (*PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0);
typedef void (*PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1);
typedef void (*PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
typedef void (*PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
typedef void (*PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value);
typedef void (*PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value);
typedef void (*PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value);
typedef void (*PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value);
typedef void (*PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params);
typedef void (*PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params);
typedef void (*PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params);
typedef void (*PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params);
typedef void (*PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value);
typedef void (*PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value);
typedef void (*PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value);
typedef void (*PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
typedef const GLubyte *(*PFNGLGETSTRINGIPROC) (GLenum name, GLuint index);
typedef GLboolean (*PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer);
typedef void (*PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer);
typedef void (*PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers);
typedef void (*PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers);
typedef void (*PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
typedef void (*PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
typedef GLboolean (*PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer);
typedef void (*PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer);
typedef void (*PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers);
typedef void (*PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers);
typedef GLenum (*PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target);
typedef void (*PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
typedef void (*PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
typedef void (*PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
typedef void (*PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
typedef void (*PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
typedef void (*PFNGLGENERATEMIPMAPPROC) (GLenum target);
typedef void (*PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
typedef void (*PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
typedef void (*PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
typedef void *(*PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
typedef void (*PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
typedef void (*PFNGLBINDVERTEXARRAYPROC) (GLuint array);
typedef void (*PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays);
typedef void (*PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays);
typedef GLboolean (*PFNGLISVERTEXARRAYPROC) (GLuint array);
 void  glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
 void  glGetBooleani_v (GLenum target, GLuint index, GLboolean *data);
 void  glGetIntegeri_v (GLenum target, GLuint index, GLint *data);
 void  glEnablei (GLenum target, GLuint index);
 void  glDisablei (GLenum target, GLuint index);
 GLboolean  glIsEnabledi (GLenum target, GLuint index);
 void  glBeginTransformFeedback (GLenum primitiveMode);
 void  glEndTransformFeedback (void);
 void  glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
 void  glBindBufferBase (GLenum target, GLuint index, GLuint buffer);
 void  glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode);
 void  glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
 void  glClampColor (GLenum target, GLenum clamp);
 void  glBeginConditionalRender (GLuint id, GLenum mode);
 void  glEndConditionalRender (void);
 void  glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
 void  glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params);
 void  glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params);
 void  glVertexAttribI1i (GLuint index, GLint x);
 void  glVertexAttribI2i (GLuint index, GLint x, GLint y);
 void  glVertexAttribI3i (GLuint index, GLint x, GLint y, GLint z);
 void  glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w);
 void  glVertexAttribI1ui (GLuint index, GLuint x);
 void  glVertexAttribI2ui (GLuint index, GLuint x, GLuint y);
 void  glVertexAttribI3ui (GLuint index, GLuint x, GLuint y, GLuint z);
 void  glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
 void  glVertexAttribI1iv (GLuint index, const GLint *v);
 void  glVertexAttribI2iv (GLuint index, const GLint *v);
 void  glVertexAttribI3iv (GLuint index, const GLint *v);
 void  glVertexAttribI4iv (GLuint index, const GLint *v);
 void  glVertexAttribI1uiv (GLuint index, const GLuint *v);
 void  glVertexAttribI2uiv (GLuint index, const GLuint *v);
 void  glVertexAttribI3uiv (GLuint index, const GLuint *v);
 void  glVertexAttribI4uiv (GLuint index, const GLuint *v);
 void  glVertexAttribI4bv (GLuint index, const GLbyte *v);
 void  glVertexAttribI4sv (GLuint index, const GLshort *v);
 void  glVertexAttribI4ubv (GLuint index, const GLubyte *v);
 void  glVertexAttribI4usv (GLuint index, const GLushort *v);
 void  glGetUniformuiv (GLuint program, GLint location, GLuint *params);
 void  glBindFragDataLocation (GLuint program, GLuint color, const GLchar *name);
 GLint  glGetFragDataLocation (GLuint program, const GLchar *name);
 void  glUniform1ui (GLint location, GLuint v0);
 void  glUniform2ui (GLint location, GLuint v0, GLuint v1);
 void  glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2);
 void  glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
 void  glUniform1uiv (GLint location, GLsizei count, const GLuint *value);
 void  glUniform2uiv (GLint location, GLsizei count, const GLuint *value);
 void  glUniform3uiv (GLint location, GLsizei count, const GLuint *value);
 void  glUniform4uiv (GLint location, GLsizei count, const GLuint *value);
 void  glTexParameterIiv (GLenum target, GLenum pname, const GLint *params);
 void  glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params);
 void  glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params);
 void  glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params);
 void  glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value);
 void  glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value);
 void  glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value);
 void  glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
 const GLubyte * glGetStringi (GLenum name, GLuint index);
 GLboolean  glIsRenderbuffer (GLuint renderbuffer);
 void  glBindRenderbuffer (GLenum target, GLuint renderbuffer);
 void  glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers);
 void  glGenRenderbuffers (GLsizei n, GLuint *renderbuffers);
 void  glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
 void  glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params);
 GLboolean  glIsFramebuffer (GLuint framebuffer);
 void  glBindFramebuffer (GLenum target, GLuint framebuffer);
 void  glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers);
 void  glGenFramebuffers (GLsizei n, GLuint *framebuffers);
 GLenum  glCheckFramebufferStatus (GLenum target);
 void  glFramebufferTexture1D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
 void  glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
 void  glFramebufferTexture3D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
 void  glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
 void  glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params);
 void  glGenerateMipmap (GLenum target);
 void  glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
 void  glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
 void  glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
 void * glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
 void  glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length);
 void  glBindVertexArray (GLuint array);
 void  glDeleteVertexArrays (GLsizei n, const GLuint *arrays);
 void  glGenVertexArrays (GLsizei n, GLuint *arrays);
 GLboolean  glIsVertexArray (GLuint array);
typedef void (*PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
typedef void (*PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount);
typedef void (*PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer);
typedef void (*PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint index);
typedef void (*PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
typedef void (*PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices);
typedef void (*PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
typedef void (*PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
typedef GLuint (*PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName);
typedef void (*PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
typedef void (*PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
typedef void (*PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
 void  glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
 void  glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount);
 void  glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer);
 void  glPrimitiveRestartIndex (GLuint index);
 void  glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
 void  glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices);
 void  glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
 void  glGetActiveUniformName (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
 GLuint  glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName);
 void  glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
 void  glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
 void  glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);

typedef struct __GLsync *GLsync;

typedef uint64_t GLuint64;
typedef int64_t GLint64;
typedef void (*PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
typedef void (*PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
typedef void (*PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
typedef void (*PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex);
typedef void (*PFNGLPROVOKINGVERTEXPROC) (GLenum mode);
typedef GLsync (*PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags);
typedef GLboolean (*PFNGLISSYNCPROC) (GLsync sync);
typedef void (*PFNGLDELETESYNCPROC) (GLsync sync);
typedef GLenum (*PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
typedef void (*PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
typedef void (*PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data);
typedef void (*PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
typedef void (*PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data);
typedef void (*PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params);
typedef void (*PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
typedef void (*PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
typedef void (*PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
typedef void (*PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val);
typedef void (*PFNGLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask);


typedef void (*PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
typedef GLint (*PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar *name);
typedef void (*PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers);
typedef void (*PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers);
typedef GLboolean (*PFNGLISSAMPLERPROC) (GLuint sampler);
typedef void (*PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler);
typedef void (*PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param);
typedef void (*PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param);
typedef void (*PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param);
typedef void (*PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param);
typedef void (*PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param);
typedef void (*PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param);
typedef void (*PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params);
typedef void (*PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params);
typedef void (*PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params);
typedef void (*PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params);
typedef void (*PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target);
typedef void (*PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64 *params);
typedef void (*PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64 *params);
typedef void (*PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor);
typedef void (*PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
typedef void (*PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
typedef void (*PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
typedef void (*PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
typedef void (*PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
typedef void (*PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
typedef void (*PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
typedef void (*PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
typedef void (*PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value);
typedef void (*PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint *value);
typedef void (*PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value);
typedef void (*PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint *value);
typedef void (*PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value);
typedef void (*PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint *value);
typedef void (*PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords);
typedef void (*PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint *coords);
typedef void (*PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords);
typedef void (*PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint *coords);
typedef void (*PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords);
typedef void (*PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint *coords);
typedef void (*PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords);
typedef void (*PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint *coords);
typedef void (*PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords);
typedef void (*PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
typedef void (*PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords);
typedef void (*PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
typedef void (*PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords);
typedef void (*PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
typedef void (*PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords);
typedef void (*PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
typedef void (*PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords);
typedef void (*PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint *coords);
typedef void (*PFNGLCOLORP3UIPROC) (GLenum type, GLuint color);
typedef void (*PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint *color);
typedef void (*PFNGLCOLORP4UIPROC) (GLenum type, GLuint color);
typedef void (*PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint *color);
typedef void (*PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color);
typedef void (*PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint *color);
 void  glBindFragDataLocationIndexed (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
 GLint  glGetFragDataIndex (GLuint program, const GLchar *name);
 void  glGenSamplers (GLsizei count, GLuint *samplers);
 void  glDeleteSamplers (GLsizei count, const GLuint *samplers);
 GLboolean  glIsSampler (GLuint sampler);
 void  glBindSampler (GLuint unit, GLuint sampler);
 void  glSamplerParameteri (GLuint sampler, GLenum pname, GLint param);
 void  glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param);
 void  glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param);
 void  glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param);
 void  glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param);
 void  glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param);
 void  glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params);
 void  glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params);
 void  glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params);
 void  glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params);
 void  glQueryCounter (GLuint id, GLenum target);
 void  glGetQueryObjecti64v (GLuint id, GLenum pname, GLint64 *params);
 void  glGetQueryObjectui64v (GLuint id, GLenum pname, GLuint64 *params);
 void  glVertexAttribDivisor (GLuint index, GLuint divisor);
 void  glVertexAttribP1ui (GLuint index, GLenum type, GLboolean normalized, GLuint value);
 void  glVertexAttribP1uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
 void  glVertexAttribP2ui (GLuint index, GLenum type, GLboolean normalized, GLuint value);
 void  glVertexAttribP2uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
 void  glVertexAttribP3ui (GLuint index, GLenum type, GLboolean normalized, GLuint value);
 void  glVertexAttribP3uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
 void  glVertexAttribP4ui (GLuint index, GLenum type, GLboolean normalized, GLuint value);
 void  glVertexAttribP4uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
 void  glVertexP2ui (GLenum type, GLuint value);
 void  glVertexP2uiv (GLenum type, const GLuint *value);
 void  glVertexP3ui (GLenum type, GLuint value);
 void  glVertexP3uiv (GLenum type, const GLuint *value);
 void  glVertexP4ui (GLenum type, GLuint value);
 void  glVertexP4uiv (GLenum type, const GLuint *value);
 void  glTexCoordP1ui (GLenum type, GLuint coords);
 void  glTexCoordP1uiv (GLenum type, const GLuint *coords);
 void  glTexCoordP2ui (GLenum type, GLuint coords);
 void  glTexCoordP2uiv (GLenum type, const GLuint *coords);
 void  glTexCoordP3ui (GLenum type, GLuint coords);
 void  glTexCoordP3uiv (GLenum type, const GLuint *coords);
 void  glTexCoordP4ui (GLenum type, GLuint coords);
 void  glTexCoordP4uiv (GLenum type, const GLuint *coords);
 void  glMultiTexCoordP1ui (GLenum texture, GLenum type, GLuint coords);
 void  glMultiTexCoordP1uiv (GLenum texture, GLenum type, const GLuint *coords);
 void  glMultiTexCoordP2ui (GLenum texture, GLenum type, GLuint coords);
 void  glMultiTexCoordP2uiv (GLenum texture, GLenum type, const GLuint *coords);
 void  glMultiTexCoordP3ui (GLenum texture, GLenum type, GLuint coords);
 void  glMultiTexCoordP3uiv (GLenum texture, GLenum type, const GLuint *coords);
 void  glMultiTexCoordP4ui (GLenum texture, GLenum type, GLuint coords);
 void  glMultiTexCoordP4uiv (GLenum texture, GLenum type, const GLuint *coords);
 void  glNormalP3ui (GLenum type, GLuint coords);
 void  glNormalP3uiv (GLenum type, const GLuint *coords);
 void  glColorP3ui (GLenum type, GLuint color);
 void  glColorP3uiv (GLenum type, const GLuint *color);
 void  glColorP4ui (GLenum type, GLuint color);
 void  glColorP4uiv (GLenum type, const GLuint *color);
 void  glSecondaryColorP3ui (GLenum type, GLuint color);
 void  glSecondaryColorP3uiv (GLenum type, const GLuint *color);

typedef void (*PFNGLMINSAMPLESHADINGPROC) (GLfloat value);
typedef void (*PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode);
typedef void (*PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
typedef void (*PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst);
typedef void (*PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
typedef void (*PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect);
typedef void (*PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect);
typedef void (*PFNGLUNIFORM1DPROC) (GLint location, GLdouble x);
typedef void (*PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y);
typedef void (*PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z);
typedef void (*PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (*PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble *value);
typedef void (*PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble *value);
typedef void (*PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble *value);
typedef void (*PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble *value);
typedef void (*PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (*PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (*PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (*PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (*PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (*PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (*PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (*PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (*PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (*PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble *params);
typedef GLint (*PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar *name);
typedef GLuint (*PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar *name);
typedef void (*PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values);
typedef void (*PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
typedef void (*PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
typedef void (*PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint *indices);
typedef void (*PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint *params);
typedef void (*PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint *values);
typedef void (*PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value);
typedef void (*PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat *values);
typedef void (*PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id);
typedef void (*PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids);
typedef void (*PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids);
typedef GLboolean (*PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id);
typedef void (*PFNGLPAUSETRANSFORMFEEDBACKPROC) (void);
typedef void (*PFNGLRESUMETRANSFORMFEEDBACKPROC) (void);
typedef void (*PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id);
typedef void (*PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream);
typedef void (*PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id);
typedef void (*PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index);
typedef void (*PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params);
 void  glMinSampleShading (GLfloat value);
 void  glBlendEquationi (GLuint buf, GLenum mode);
 void  glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
 void  glBlendFunci (GLuint buf, GLenum src, GLenum dst);
 void  glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
 void  glDrawArraysIndirect (GLenum mode, const void *indirect);
 void  glDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect);
 void  glUniform1d (GLint location, GLdouble x);
 void  glUniform2d (GLint location, GLdouble x, GLdouble y);
 void  glUniform3d (GLint location, GLdouble x, GLdouble y, GLdouble z);
 void  glUniform4d (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
 void  glUniform1dv (GLint location, GLsizei count, const GLdouble *value);
 void  glUniform2dv (GLint location, GLsizei count, const GLdouble *value);
 void  glUniform3dv (GLint location, GLsizei count, const GLdouble *value);
 void  glUniform4dv (GLint location, GLsizei count, const GLdouble *value);
 void  glUniformMatrix2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
 void  glUniformMatrix3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
 void  glUniformMatrix4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
 void  glUniformMatrix2x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
 void  glUniformMatrix2x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
 void  glUniformMatrix3x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
 void  glUniformMatrix3x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
 void  glUniformMatrix4x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
 void  glUniformMatrix4x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
 void  glGetUniformdv (GLuint program, GLint location, GLdouble *params);
 GLint  glGetSubroutineUniformLocation (GLuint program, GLenum shadertype, const GLchar *name);
 GLuint  glGetSubroutineIndex (GLuint program, GLenum shadertype, const GLchar *name);
 void  glGetActiveSubroutineUniformiv (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values);
 void  glGetActiveSubroutineUniformName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
 void  glGetActiveSubroutineName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
 void  glUniformSubroutinesuiv (GLenum shadertype, GLsizei count, const GLuint *indices);
 void  glGetUniformSubroutineuiv (GLenum shadertype, GLint location, GLuint *params);
 void  glGetProgramStageiv (GLuint program, GLenum shadertype, GLenum pname, GLint *values);
 void  glPatchParameteri (GLenum pname, GLint value);
 void  glPatchParameterfv (GLenum pname, const GLfloat *values);
 void  glBindTransformFeedback (GLenum target, GLuint id);
 void  glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids);
 void  glGenTransformFeedbacks (GLsizei n, GLuint *ids);
 GLboolean  glIsTransformFeedback (GLuint id);
 void  glPauseTransformFeedback (void);
 void  glResumeTransformFeedback (void);
 void  glDrawTransformFeedback (GLenum mode, GLuint id);
 void  glDrawTransformFeedbackStream (GLenum mode, GLuint id, GLuint stream);
 void  glBeginQueryIndexed (GLenum target, GLuint index, GLuint id);
 void  glEndQueryIndexed (GLenum target, GLuint index);
 void  glGetQueryIndexediv (GLenum target, GLuint index, GLenum pname, GLint *params);

typedef void (*PFNGLRELEASESHADERCOMPILERPROC) (void);
typedef void (*PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length);
typedef void (*PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
typedef void (*PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f);
typedef void (*PFNGLCLEARDEPTHFPROC) (GLfloat d);
typedef void (*PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary);
typedef void (*PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
typedef void (*PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value);
typedef void (*PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program);
typedef void (*PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program);
typedef GLuint (*PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar *const*strings);
typedef void (*PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline);
typedef void (*PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines);
typedef void (*PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines);
typedef GLboolean (*PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline);
typedef void (*PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params);
typedef void (*PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0);
typedef void (*PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
typedef void (*PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0);
typedef void (*PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
typedef void (*PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble v0);
typedef void (*PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
typedef void (*PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0);
typedef void (*PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
typedef void (*PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1);
typedef void (*PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
typedef void (*PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1);
typedef void (*PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
typedef void (*PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1);
typedef void (*PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
typedef void (*PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1);
typedef void (*PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
typedef void (*PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
typedef void (*PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
typedef void (*PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
typedef void (*PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
typedef void (*PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
typedef void (*PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
typedef void (*PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
typedef void (*PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
typedef void (*PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
typedef void (*PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
typedef void (*PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
typedef void (*PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
typedef void (*PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
typedef void (*PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
typedef void (*PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
typedef void (*PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (*PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (*PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (*PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (*PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline);
typedef void (*PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
typedef void (*PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x);
typedef void (*PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y);
typedef void (*PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
typedef void (*PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (*PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble *v);
typedef void (*PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble *v);
typedef void (*PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble *v);
typedef void (*PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble *v);
typedef void (*PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
typedef void (*PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble *params);
typedef void (*PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat *v);
typedef void (*PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
typedef void (*PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat *v);
typedef void (*PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint *v);
typedef void (*PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
typedef void (*PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint *v);
typedef void (*PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLdouble *v);
typedef void (*PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLdouble n, GLdouble f);
typedef void (*PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat *data);
typedef void (*PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble *data);
 void  glReleaseShaderCompiler (void);
 void  glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length);
 void  glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
 void  glDepthRangef (GLfloat n, GLfloat f);
 void  glClearDepthf (GLfloat d);
 void  glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary);
 void  glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
 void  glProgramParameteri (GLuint program, GLenum pname, GLint value);
 void  glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program);
 void  glActiveShaderProgram (GLuint pipeline, GLuint program);
 GLuint  glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar *const*strings);
 void  glBindProgramPipeline (GLuint pipeline);
 void  glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines);
 void  glGenProgramPipelines (GLsizei n, GLuint *pipelines);
 GLboolean  glIsProgramPipeline (GLuint pipeline);
 void  glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params);
 void  glProgramUniform1i (GLuint program, GLint location, GLint v0);
 void  glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value);
 void  glProgramUniform1f (GLuint program, GLint location, GLfloat v0);
 void  glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value);
 void  glProgramUniform1d (GLuint program, GLint location, GLdouble v0);
 void  glProgramUniform1dv (GLuint program, GLint location, GLsizei count, const GLdouble *value);
 void  glProgramUniform1ui (GLuint program, GLint location, GLuint v0);
 void  glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value);
 void  glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1);
 void  glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value);
 void  glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1);
 void  glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value);
 void  glProgramUniform2d (GLuint program, GLint location, GLdouble v0, GLdouble v1);
 void  glProgramUniform2dv (GLuint program, GLint location, GLsizei count, const GLdouble *value);
 void  glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1);
 void  glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value);
 void  glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
 void  glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value);
 void  glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
 void  glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value);
 void  glProgramUniform3d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
 void  glProgramUniform3dv (GLuint program, GLint location, GLsizei count, const GLdouble *value);
 void  glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
 void  glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value);
 void  glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
 void  glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value);
 void  glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
 void  glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value);
 void  glProgramUniform4d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
 void  glProgramUniform4dv (GLuint program, GLint location, GLsizei count, const GLdouble *value);
 void  glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
 void  glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value);
 void  glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 void  glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 void  glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 void  glProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
 void  glProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
 void  glProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
 void  glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 void  glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 void  glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 void  glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 void  glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 void  glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 void  glProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
 void  glProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
 void  glProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
 void  glProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
 void  glProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
 void  glProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
 void  glValidateProgramPipeline (GLuint pipeline);
 void  glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
 void  glVertexAttribL1d (GLuint index, GLdouble x);
 void  glVertexAttribL2d (GLuint index, GLdouble x, GLdouble y);
 void  glVertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z);
 void  glVertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
 void  glVertexAttribL1dv (GLuint index, const GLdouble *v);
 void  glVertexAttribL2dv (GLuint index, const GLdouble *v);
 void  glVertexAttribL3dv (GLuint index, const GLdouble *v);
 void  glVertexAttribL4dv (GLuint index, const GLdouble *v);
 void  glVertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
 void  glGetVertexAttribLdv (GLuint index, GLenum pname, GLdouble *params);
 void  glViewportArrayv (GLuint first, GLsizei count, const GLfloat *v);
 void  glViewportIndexedf (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
 void  glViewportIndexedfv (GLuint index, const GLfloat *v);
 void  glScissorArrayv (GLuint first, GLsizei count, const GLint *v);
 void  glScissorIndexed (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
 void  glScissorIndexedv (GLuint index, const GLint *v);
 void  glDepthRangeArrayv (GLuint first, GLsizei count, const GLdouble *v);
 void  glDepthRangeIndexed (GLuint index, GLdouble n, GLdouble f);
 void  glGetFloati_v (GLenum target, GLuint index, GLfloat *data);
 void  glGetDoublei_v (GLenum target, GLuint index, GLdouble *data);

typedef void (*PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
typedef void (*PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance);
typedef void (*PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
typedef void (*PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
typedef void (*PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params);
typedef void (*PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
typedef void (*PFNGLMEMORYBARRIERPROC) (GLbitfield barriers);
typedef void (*PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
typedef void (*PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
typedef void (*PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
typedef void (*PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) (GLenum mode, GLuint id, GLsizei instancecount);
typedef void (*PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) (GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);
 void  glDrawArraysInstancedBaseInstance (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
 void  glDrawElementsInstancedBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance);
 void  glDrawElementsInstancedBaseVertexBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
 void  glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
 void  glGetActiveAtomicCounterBufferiv (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params);
 void  glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
 void  glMemoryBarrier (GLbitfield barriers);
 void  glTexStorage1D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
 void  glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
 void  glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
 void  glDrawTransformFeedbackInstanced (GLenum mode, GLuint id, GLsizei instancecount);
 void  glDrawTransformFeedbackStreamInstanced (GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);

typedef void (  *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
typedef void (*PFNGLCLEARBUFFERDATAPROC) (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data);
typedef void (*PFNGLCLEARBUFFERSUBDATAPROC) (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
typedef void (*PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
typedef void (*PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect);
typedef void (*PFNGLCOPYIMAGESUBDATAPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
typedef void (*PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param);
typedef void (*PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
typedef void (*PFNGLGETINTERNALFORMATI64VPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 *params);
typedef void (*PFNGLINVALIDATETEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
typedef void (*PFNGLINVALIDATETEXIMAGEPROC) (GLuint texture, GLint level);
typedef void (*PFNGLINVALIDATEBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length);
typedef void (*PFNGLINVALIDATEBUFFERDATAPROC) (GLuint buffer);
typedef void (*PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
typedef void (*PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (*PFNGLMULTIDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride);
typedef void (*PFNGLMULTIDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride);
typedef void (*PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint *params);
typedef GLuint (*PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name);
typedef void (*PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
typedef void (*PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params);
typedef GLint (*PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar *name);
typedef GLint (*PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name);
typedef void (*PFNGLSHADERSTORAGEBLOCKBINDINGPROC) (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
typedef void (*PFNGLTEXBUFFERRANGEPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
typedef void (*PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
typedef void (*PFNGLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
typedef void (*PFNGLTEXTUREVIEWPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
typedef void (*PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
typedef void (*PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
typedef void (*PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
typedef void (*PFNGLVERTEXATTRIBLFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
typedef void (*PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex);
typedef void (*PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor);
typedef void (*PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
typedef void (*PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
typedef void (*PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam);
typedef GLuint (*PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
typedef void (*PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message);
typedef void (*PFNGLPOPDEBUGGROUPPROC) (void);
typedef void (*PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
typedef void (*PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
typedef void (*PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar *label);
typedef void (*PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
 void  glClearBufferData (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data);
 void  glClearBufferSubData (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
 void  glDispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
 void  glDispatchComputeIndirect (GLintptr indirect);
 void  glCopyImageSubData (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
 void  glFramebufferParameteri (GLenum target, GLenum pname, GLint param);
 void  glGetFramebufferParameteriv (GLenum target, GLenum pname, GLint *params);
 void  glGetInternalformati64v (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 *params);
 void  glInvalidateTexSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
 void  glInvalidateTexImage (GLuint texture, GLint level);
 void  glInvalidateBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr length);
 void  glInvalidateBufferData (GLuint buffer);
 void  glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments);
 void  glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
 void  glMultiDrawArraysIndirect (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride);
 void  glMultiDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride);
 void  glGetProgramInterfaceiv (GLuint program, GLenum programInterface, GLenum pname, GLint *params);
 GLuint  glGetProgramResourceIndex (GLuint program, GLenum programInterface, const GLchar *name);
 void  glGetProgramResourceName (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
 void  glGetProgramResourceiv (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params);
 GLint  glGetProgramResourceLocation (GLuint program, GLenum programInterface, const GLchar *name);
 GLint  glGetProgramResourceLocationIndex (GLuint program, GLenum programInterface, const GLchar *name);
 void  glShaderStorageBlockBinding (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
 void  glTexBufferRange (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
 void  glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
 void  glTexStorage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
 void  glTextureView (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
 void  glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
 void  glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
 void  glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
 void  glVertexAttribLFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
 void  glVertexAttribBinding (GLuint attribindex, GLuint bindingindex);
 void  glVertexBindingDivisor (GLuint bindingindex, GLuint divisor);
 void  glDebugMessageControl (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
 void  glDebugMessageInsert (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
 void  glDebugMessageCallback (GLDEBUGPROC callback, const void *userParam);
 GLuint  glGetDebugMessageLog (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
 void  glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message);
 void  glPopDebugGroup (void);
 void  glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
 void  glGetObjectLabel (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
 void  glObjectPtrLabel (const void *ptr, GLsizei length, const GLchar *label);
 void  glGetObjectPtrLabel (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
typedef void (*PFNGLBUFFERSTORAGEPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
typedef void (*PFNGLCLEARTEXIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data);
typedef void (*PFNGLCLEARTEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
typedef void (*PFNGLBINDBUFFERSBASEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint *buffers);
typedef void (*PFNGLBINDBUFFERSRANGEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes);
typedef void (*PFNGLBINDTEXTURESPROC) (GLuint first, GLsizei count, const GLuint *textures);
typedef void (*PFNGLBINDSAMPLERSPROC) (GLuint first, GLsizei count, const GLuint *samplers);
typedef void (*PFNGLBINDIMAGETEXTURESPROC) (GLuint first, GLsizei count, const GLuint *textures);
typedef void (*PFNGLBINDVERTEXBUFFERSPROC) (GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
 void  glBufferStorage (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
 void  glClearTexImage (GLuint texture, GLint level, GLenum format, GLenum type, const void *data);
 void  glClearTexSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
 void  glBindBuffersBase (GLenum target, GLuint first, GLsizei count, const GLuint *buffers);
 void  glBindBuffersRange (GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes);
 void  glBindTextures (GLuint first, GLsizei count, const GLuint *textures);
 void  glBindSamplers (GLuint first, GLsizei count, const GLuint *samplers);
 void  glBindImageTextures (GLuint first, GLsizei count, const GLuint *textures);
 void  glBindVertexBuffers (GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);

typedef void (*PFNGLCLIPCONTROLPROC) (GLenum origin, GLenum depth);
typedef void (*PFNGLCREATETRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids);
typedef void (*PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC) (GLuint xfb, GLuint index, GLuint buffer);
typedef void (*PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC) (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
typedef void (*PFNGLGETTRANSFORMFEEDBACKIVPROC) (GLuint xfb, GLenum pname, GLint *param);
typedef void (*PFNGLGETTRANSFORMFEEDBACKI_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint *param);
typedef void (*PFNGLGETTRANSFORMFEEDBACKI64_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint64 *param);
typedef void (*PFNGLCREATEBUFFERSPROC) (GLsizei n, GLuint *buffers);
typedef void (*PFNGLNAMEDBUFFERSTORAGEPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
typedef void (*PFNGLNAMEDBUFFERDATAPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
typedef void (*PFNGLNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
typedef void (*PFNGLCOPYNAMEDBUFFERSUBDATAPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
typedef void (*PFNGLCLEARNAMEDBUFFERDATAPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
typedef void (*PFNGLCLEARNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
typedef void *(*PFNGLMAPNAMEDBUFFERPROC) (GLuint buffer, GLenum access);
typedef void *(*PFNGLMAPNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
typedef GLboolean (*PFNGLUNMAPNAMEDBUFFERPROC) (GLuint buffer);
typedef void (*PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length);
typedef void (*PFNGLGETNAMEDBUFFERPARAMETERIVPROC) (GLuint buffer, GLenum pname, GLint *params);
typedef void (*PFNGLGETNAMEDBUFFERPARAMETERI64VPROC) (GLuint buffer, GLenum pname, GLint64 *params);
typedef void (*PFNGLGETNAMEDBUFFERPOINTERVPROC) (GLuint buffer, GLenum pname, void **params);
typedef void (*PFNGLGETNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
typedef void (*PFNGLCREATEFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers);
typedef void (*PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
typedef void (*PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC) (GLuint framebuffer, GLenum pname, GLint param);
typedef void (*PFNGLNAMEDFRAMEBUFFERTEXTUREPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
typedef void (*PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
typedef void (*PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC) (GLuint framebuffer, GLenum buf);
typedef void (*PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC) (GLuint framebuffer, GLsizei n, const GLenum *bufs);
typedef void (*PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC) (GLuint framebuffer, GLenum src);
typedef void (*PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments);
typedef void (*PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (*PFNGLCLEARNAMEDFRAMEBUFFERIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value);
typedef void (*PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value);
typedef void (*PFNGLCLEARNAMEDFRAMEBUFFERFVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value);
typedef void (*PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) (GLuint framebuffer, GLenum buffer, const GLfloat depth, GLint stencil);
typedef void (*PFNGLBLITNAMEDFRAMEBUFFERPROC) (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
typedef GLenum (*PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC) (GLuint framebuffer, GLenum target);
typedef void (*PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC) (GLuint framebuffer, GLenum pname, GLint *param);
typedef void (*PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
typedef void (*PFNGLCREATERENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers);
typedef void (*PFNGLNAMEDRENDERBUFFERSTORAGEPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
typedef void (*PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
typedef void (*PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC) (GLuint renderbuffer, GLenum pname, GLint *params);
typedef void (*PFNGLCREATETEXTURESPROC) (GLenum target, GLsizei n, GLuint *textures);
typedef void (*PFNGLTEXTUREBUFFERPROC) (GLuint texture, GLenum internalformat, GLuint buffer);
typedef void (*PFNGLTEXTUREBUFFERRANGEPROC) (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
typedef void (*PFNGLTEXTURESTORAGE1DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
typedef void (*PFNGLTEXTURESTORAGE2DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
typedef void (*PFNGLTEXTURESTORAGE3DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
typedef void (*PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
typedef void (*PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
typedef void (*PFNGLTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
typedef void (*PFNGLTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
typedef void (*PFNGLTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
typedef void (*PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
typedef void (*PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
typedef void (*PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
typedef void (*PFNGLCOPYTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
typedef void (*PFNGLCOPYTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (*PFNGLCOPYTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (*PFNGLTEXTUREPARAMETERFPROC) (GLuint texture, GLenum pname, GLfloat param);
typedef void (*PFNGLTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, const GLfloat *param);
typedef void (*PFNGLTEXTUREPARAMETERIPROC) (GLuint texture, GLenum pname, GLint param);
typedef void (*PFNGLTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, const GLint *params);
typedef void (*PFNGLTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, const GLuint *params);
typedef void (*PFNGLTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, const GLint *param);
typedef void (*PFNGLGENERATETEXTUREMIPMAPPROC) (GLuint texture);
typedef void (*PFNGLBINDTEXTUREUNITPROC) (GLuint unit, GLuint texture);
typedef void (*PFNGLGETTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
typedef void (*PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLsizei bufSize, void *pixels);
typedef void (*PFNGLGETTEXTURELEVELPARAMETERFVPROC) (GLuint texture, GLint level, GLenum pname, GLfloat *params);
typedef void (*PFNGLGETTEXTURELEVELPARAMETERIVPROC) (GLuint texture, GLint level, GLenum pname, GLint *params);
typedef void (*PFNGLGETTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, GLfloat *params);
typedef void (*PFNGLGETTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, GLint *params);
typedef void (*PFNGLGETTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, GLuint *params);
typedef void (*PFNGLGETTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, GLint *params);
typedef void (*PFNGLCREATEVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays);
typedef void (*PFNGLDISABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index);
typedef void (*PFNGLENABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index);
typedef void (*PFNGLVERTEXARRAYELEMENTBUFFERPROC) (GLuint vaobj, GLuint buffer);
typedef void (*PFNGLVERTEXARRAYVERTEXBUFFERPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
typedef void (*PFNGLVERTEXARRAYVERTEXBUFFERSPROC) (GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
typedef void (*PFNGLVERTEXARRAYATTRIBBINDINGPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex);
typedef void (*PFNGLVERTEXARRAYATTRIBFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
typedef void (*PFNGLVERTEXARRAYATTRIBIFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
typedef void (*PFNGLVERTEXARRAYATTRIBLFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
typedef void (*PFNGLVERTEXARRAYBINDINGDIVISORPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor);
typedef void (*PFNGLGETVERTEXARRAYIVPROC) (GLuint vaobj, GLenum pname, GLint *param);
typedef void (*PFNGLGETVERTEXARRAYINDEXEDIVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint *param);
typedef void (*PFNGLGETVERTEXARRAYINDEXED64IVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint64 *param);
typedef void (*PFNGLCREATESAMPLERSPROC) (GLsizei n, GLuint *samplers);
typedef void (*PFNGLCREATEPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines);
typedef void (*PFNGLCREATEQUERIESPROC) (GLenum target, GLsizei n, GLuint *ids);
typedef void (*PFNGLGETQUERYBUFFEROBJECTI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
typedef void (*PFNGLGETQUERYBUFFEROBJECTIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
typedef void (*PFNGLGETQUERYBUFFEROBJECTUI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
typedef void (*PFNGLGETQUERYBUFFEROBJECTUIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
typedef void (*PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers);
typedef void (*PFNGLGETTEXTURESUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
typedef void (*PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels);
typedef GLenum (*PFNGLGETGRAPHICSRESETSTATUSPROC) (void);
typedef void (*PFNGLGETNCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, GLsizei bufSize, void *pixels);
typedef void (*PFNGLGETNTEXIMAGEPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
typedef void (*PFNGLGETNUNIFORMDVPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
typedef void (*PFNGLGETNUNIFORMFVPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
typedef void (*PFNGLGETNUNIFORMIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params);
typedef void (*PFNGLGETNUNIFORMUIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params);
typedef void (*PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
typedef void (*PFNGLGETNMAPDVPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v);
typedef void (*PFNGLGETNMAPFVPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v);
typedef void (*PFNGLGETNMAPIVPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint *v);
typedef void (*PFNGLGETNPIXELMAPFVPROC) (GLenum map, GLsizei bufSize, GLfloat *values);
typedef void (*PFNGLGETNPIXELMAPUIVPROC) (GLenum map, GLsizei bufSize, GLuint *values);
typedef void (*PFNGLGETNPIXELMAPUSVPROC) (GLenum map, GLsizei bufSize, GLushort *values);
typedef void (*PFNGLGETNPOLYGONSTIPPLEPROC) (GLsizei bufSize, GLubyte *pattern);
typedef void (*PFNGLGETNCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table);
typedef void (*PFNGLGETNCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image);
typedef void (*PFNGLGETNSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span);
typedef void (*PFNGLGETNHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values);
typedef void (*PFNGLGETNMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values);
typedef void (*PFNGLTEXTUREBARRIERPROC) (void);
 void  glClipControl (GLenum origin, GLenum depth);
 void  glCreateTransformFeedbacks (GLsizei n, GLuint *ids);
 void  glTransformFeedbackBufferBase (GLuint xfb, GLuint index, GLuint buffer);
 void  glTransformFeedbackBufferRange (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
 void  glGetTransformFeedbackiv (GLuint xfb, GLenum pname, GLint *param);
 void  glGetTransformFeedbacki_v (GLuint xfb, GLenum pname, GLuint index, GLint *param);
 void  glGetTransformFeedbacki64_v (GLuint xfb, GLenum pname, GLuint index, GLint64 *param);
 void  glCreateBuffers (GLsizei n, GLuint *buffers);
 void  glNamedBufferStorage (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
 void  glNamedBufferData (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
 void  glNamedBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
 void  glCopyNamedBufferSubData (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
 void  glClearNamedBufferData (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
 void  glClearNamedBufferSubData (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
 void * glMapNamedBuffer (GLuint buffer, GLenum access);
 void * glMapNamedBufferRange (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
 GLboolean  glUnmapNamedBuffer (GLuint buffer);
 void  glFlushMappedNamedBufferRange (GLuint buffer, GLintptr offset, GLsizeiptr length);
 void  glGetNamedBufferParameteriv (GLuint buffer, GLenum pname, GLint *params);
 void  glGetNamedBufferParameteri64v (GLuint buffer, GLenum pname, GLint64 *params);
 void  glGetNamedBufferPointerv (GLuint buffer, GLenum pname, void **params);
 void  glGetNamedBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
 void  glCreateFramebuffers (GLsizei n, GLuint *framebuffers);
 void  glNamedFramebufferRenderbuffer (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
 void  glNamedFramebufferParameteri (GLuint framebuffer, GLenum pname, GLint param);
 void  glNamedFramebufferTexture (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
 void  glNamedFramebufferTextureLayer (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
 void  glNamedFramebufferDrawBuffer (GLuint framebuffer, GLenum buf);
 void  glNamedFramebufferDrawBuffers (GLuint framebuffer, GLsizei n, const GLenum *bufs);
 void  glNamedFramebufferReadBuffer (GLuint framebuffer, GLenum src);
 void  glInvalidateNamedFramebufferData (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments);
 void  glInvalidateNamedFramebufferSubData (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
 void  glClearNamedFramebufferiv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value);
 void  glClearNamedFramebufferuiv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value);
 void  glClearNamedFramebufferfv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value);
 void  glClearNamedFramebufferfi (GLuint framebuffer, GLenum buffer, const GLfloat depth, GLint stencil);
 void  glBlitNamedFramebuffer (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
 GLenum  glCheckNamedFramebufferStatus (GLuint framebuffer, GLenum target);
 void  glGetNamedFramebufferParameteriv (GLuint framebuffer, GLenum pname, GLint *param);
 void  glGetNamedFramebufferAttachmentParameteriv (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
 void  glCreateRenderbuffers (GLsizei n, GLuint *renderbuffers);
 void  glNamedRenderbufferStorage (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
 void  glNamedRenderbufferStorageMultisample (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
 void  glGetNamedRenderbufferParameteriv (GLuint renderbuffer, GLenum pname, GLint *params);
 void  glCreateTextures (GLenum target, GLsizei n, GLuint *textures);
 void  glTextureBuffer (GLuint texture, GLenum internalformat, GLuint buffer);
 void  glTextureBufferRange (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
 void  glTextureStorage1D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
 void  glTextureStorage2D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
 void  glTextureStorage3D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
 void  glTextureStorage2DMultisample (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
 void  glTextureStorage3DMultisample (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
 void  glTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
 void  glTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
 void  glTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
 void  glCompressedTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
 void  glCompressedTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
 void  glCompressedTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
 void  glCopyTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
 void  glCopyTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
 void  glCopyTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
 void  glTextureParameterf (GLuint texture, GLenum pname, GLfloat param);
 void  glTextureParameterfv (GLuint texture, GLenum pname, const GLfloat *param);
 void  glTextureParameteri (GLuint texture, GLenum pname, GLint param);
 void  glTextureParameterIiv (GLuint texture, GLenum pname, const GLint *params);
 void  glTextureParameterIuiv (GLuint texture, GLenum pname, const GLuint *params);
 void  glTextureParameteriv (GLuint texture, GLenum pname, const GLint *param);
 void  glGenerateTextureMipmap (GLuint texture);
 void  glBindTextureUnit (GLuint unit, GLuint texture);
 void  glGetTextureImage (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
 void  glGetCompressedTextureImage (GLuint texture, GLint level, GLsizei bufSize, void *pixels);
 void  glGetTextureLevelParameterfv (GLuint texture, GLint level, GLenum pname, GLfloat *params);
 void  glGetTextureLevelParameteriv (GLuint texture, GLint level, GLenum pname, GLint *params);
 void  glGetTextureParameterfv (GLuint texture, GLenum pname, GLfloat *params);
 void  glGetTextureParameterIiv (GLuint texture, GLenum pname, GLint *params);
 void  glGetTextureParameterIuiv (GLuint texture, GLenum pname, GLuint *params);
 void  glGetTextureParameteriv (GLuint texture, GLenum pname, GLint *params);
 void  glCreateVertexArrays (GLsizei n, GLuint *arrays);
 void  glDisableVertexArrayAttrib (GLuint vaobj, GLuint index);
 void  glEnableVertexArrayAttrib (GLuint vaobj, GLuint index);
 void  glVertexArrayElementBuffer (GLuint vaobj, GLuint buffer);
 void  glVertexArrayVertexBuffer (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
 void  glVertexArrayVertexBuffers (GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
 void  glVertexArrayAttribBinding (GLuint vaobj, GLuint attribindex, GLuint bindingindex);
 void  glVertexArrayAttribFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
 void  glVertexArrayAttribIFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
 void  glVertexArrayAttribLFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
 void  glVertexArrayBindingDivisor (GLuint vaobj, GLuint bindingindex, GLuint divisor);
 void  glGetVertexArrayiv (GLuint vaobj, GLenum pname, GLint *param);
 void  glGetVertexArrayIndexediv (GLuint vaobj, GLuint index, GLenum pname, GLint *param);
 void  glGetVertexArrayIndexed64iv (GLuint vaobj, GLuint index, GLenum pname, GLint64 *param);
 void  glCreateSamplers (GLsizei n, GLuint *samplers);
 void  glCreateProgramPipelines (GLsizei n, GLuint *pipelines);
 void  glCreateQueries (GLenum target, GLsizei n, GLuint *ids);
 void  glGetQueryBufferObjecti64v (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
 void  glGetQueryBufferObjectiv (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
 void  glGetQueryBufferObjectui64v (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
 void  glGetQueryBufferObjectuiv (GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
 void  glMemoryBarrierByRegion (GLbitfield barriers);
 void  glGetTextureSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
 void  glGetCompressedTextureSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels);
 GLenum  glGetGraphicsResetStatus (void);
 void  glGetnCompressedTexImage (GLenum target, GLint lod, GLsizei bufSize, void *pixels);
 void  glGetnTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
 void  glGetnUniformdv (GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
 void  glGetnUniformfv (GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
 void  glGetnUniformiv (GLuint program, GLint location, GLsizei bufSize, GLint *params);
 void  glGetnUniformuiv (GLuint program, GLint location, GLsizei bufSize, GLuint *params);
 void  glReadnPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
 void  glGetnMapdv (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v);
 void  glGetnMapfv (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v);
 void  glGetnMapiv (GLenum target, GLenum query, GLsizei bufSize, GLint *v);
 void  glGetnPixelMapfv (GLenum map, GLsizei bufSize, GLfloat *values);
 void  glGetnPixelMapuiv (GLenum map, GLsizei bufSize, GLuint *values);
 void  glGetnPixelMapusv (GLenum map, GLsizei bufSize, GLushort *values);
 void  glGetnPolygonStipple (GLsizei bufSize, GLubyte *pattern);
 void  glGetnColorTable (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table);
 void  glGetnConvolutionFilter (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image);
 void  glGetnSeparableFilter (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span);
 void  glGetnHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values);
 void  glGetnMinmax (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values);
 void  glTextureBarrier (void);

]]
