"Fossies" - the Fresh Open Source Software Archive

Member "FreeBASIC-1.09.0-win64/inc/GL/windows/glext.bi" (1 Jan 2022, 797557 Bytes) of package /windows/misc/FreeBASIC-1.09.0-win64.zip:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Visual Basic source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

A hint: This file contains one or more very long lines, so maybe it is better readable using the pure text view mode that shows the contents as wrapped lines within the browser window.


    1 '' FreeBASIC binding for mingw-w64-v4.0.4
    2 ''
    3 '' based on the C header files:
    4 ''   Copyright (c) 2013-2014 The Khronos Group Inc.
    5 ''
    6 ''   Permission is hereby granted, free of charge, to any person obtaining a
    7 ''   copy of this software and/or associated documentation files (the
    8 ''   "Materials"), to deal in the Materials without restriction, including
    9 ''   without limitation the rights to use, copy, modify, merge, publish,
   10 ''   distribute, sublicense, and/or sell copies of the Materials, and to
   11 ''   permit persons to whom the Materials are furnished to do so, subject to
   12 ''   the following conditions:
   13 ''
   14 ''   The above copyright notice and this permission notice shall be included
   15 ''   in all copies or substantial portions of the Materials.
   16 ''
   17 ''   THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
   18 ''   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
   19 ''   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
   20 ''   IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
   21 ''   CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
   22 ''   TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
   23 ''   MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
   24 ''
   25 '' translated to FreeBASIC by:
   26 ''   Copyright © 2015 FreeBASIC development team
   27 
   28 #pragma once
   29 
   30 #include once "GL/windows/gl.bi"
   31 
   32 extern "Windows"
   33 
   34 const __glext_h_ = 1
   35 const GL_GLEXT_VERSION = 20150104
   36 const GL_VERSION_1_2 = 1
   37 const GL_UNSIGNED_BYTE_3_3_2 = &h8032
   38 const GL_UNSIGNED_SHORT_4_4_4_4 = &h8033
   39 const GL_UNSIGNED_SHORT_5_5_5_1 = &h8034
   40 const GL_UNSIGNED_INT_8_8_8_8 = &h8035
   41 const GL_UNSIGNED_INT_10_10_10_2 = &h8036
   42 const GL_TEXTURE_BINDING_3D = &h806A
   43 const GL_PACK_SKIP_IMAGES = &h806B
   44 const GL_PACK_IMAGE_HEIGHT = &h806C
   45 const GL_UNPACK_SKIP_IMAGES = &h806D
   46 const GL_UNPACK_IMAGE_HEIGHT = &h806E
   47 const GL_TEXTURE_3D = &h806F
   48 const GL_PROXY_TEXTURE_3D = &h8070
   49 const GL_TEXTURE_DEPTH = &h8071
   50 const GL_TEXTURE_WRAP_R = &h8072
   51 const GL_MAX_3D_TEXTURE_SIZE = &h8073
   52 const GL_UNSIGNED_BYTE_2_3_3_REV = &h8362
   53 const GL_UNSIGNED_SHORT_5_6_5 = &h8363
   54 const GL_UNSIGNED_SHORT_5_6_5_REV = &h8364
   55 const GL_UNSIGNED_SHORT_4_4_4_4_REV = &h8365
   56 const GL_UNSIGNED_SHORT_1_5_5_5_REV = &h8366
   57 const GL_UNSIGNED_INT_8_8_8_8_REV = &h8367
   58 const GL_UNSIGNED_INT_2_10_10_10_REV = &h8368
   59 const GL_BGR = &h80E0
   60 const GL_BGRA = &h80E1
   61 const GL_MAX_ELEMENTS_VERTICES = &h80E8
   62 const GL_MAX_ELEMENTS_INDICES = &h80E9
   63 const GL_CLAMP_TO_EDGE = &h812F
   64 const GL_TEXTURE_MIN_LOD = &h813A
   65 const GL_TEXTURE_MAX_LOD = &h813B
   66 const GL_TEXTURE_BASE_LEVEL = &h813C
   67 const GL_TEXTURE_MAX_LEVEL = &h813D
   68 const GL_SMOOTH_POINT_SIZE_RANGE = &h0B12
   69 const GL_SMOOTH_POINT_SIZE_GRANULARITY = &h0B13
   70 const GL_SMOOTH_LINE_WIDTH_RANGE = &h0B22
   71 const GL_SMOOTH_LINE_WIDTH_GRANULARITY = &h0B23
   72 const GL_ALIASED_LINE_WIDTH_RANGE = &h846E
   73 const GL_RESCALE_NORMAL = &h803A
   74 const GL_LIGHT_MODEL_COLOR_CONTROL = &h81F8
   75 const GL_SINGLE_COLOR = &h81F9
   76 const GL_SEPARATE_SPECULAR_COLOR = &h81FA
   77 const GL_ALIASED_POINT_SIZE_RANGE = &h846D
   78 
   79 type PFNGLDRAWRANGEELEMENTSPROC as sub(byval mode as GLenum, byval start as GLuint, byval end as GLuint, byval count as GLsizei, byval type as GLenum, byval indices as const any ptr)
   80 type PFNGLTEXIMAGE3DPROC as sub(byval target as GLenum, byval level as GLint, byval internalformat as GLint, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval border as GLint, byval format as GLenum, byval type as GLenum, byval pixels as const any ptr)
   81 type PFNGLTEXSUBIMAGE3DPROC as sub(byval target as GLenum, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval format as GLenum, byval type as GLenum, byval pixels as const any ptr)
   82 type PFNGLCOPYTEXSUBIMAGE3DPROC as sub(byval target as GLenum, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval x as GLint, byval y as GLint, byval width as GLsizei, byval height as GLsizei)
   83 
   84 #ifdef GL_GLEXT_PROTOTYPES
   85     declare sub glDrawRangeElements(byval mode as GLenum, byval start as GLuint, byval end as GLuint, byval count as GLsizei, byval type as GLenum, byval indices as const any ptr)
   86     declare sub glTexImage3D(byval target as GLenum, byval level as GLint, byval internalformat as GLint, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval border as GLint, byval format as GLenum, byval type as GLenum, byval pixels as const any ptr)
   87     declare sub glTexSubImage3D(byval target as GLenum, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval format as GLenum, byval type as GLenum, byval pixels as const any ptr)
   88     declare sub glCopyTexSubImage3D(byval target as GLenum, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval x as GLint, byval y as GLint, byval width as GLsizei, byval height as GLsizei)
   89 #endif
   90 
   91 const GL_VERSION_1_3 = 1
   92 const GL_TEXTURE0 = &h84C0
   93 const GL_TEXTURE1 = &h84C1
   94 const GL_TEXTURE2 = &h84C2
   95 const GL_TEXTURE3 = &h84C3
   96 const GL_TEXTURE4 = &h84C4
   97 const GL_TEXTURE5 = &h84C5
   98 const GL_TEXTURE6 = &h84C6
   99 const GL_TEXTURE7 = &h84C7
  100 const GL_TEXTURE8 = &h84C8
  101 const GL_TEXTURE9 = &h84C9
  102 const GL_TEXTURE10 = &h84CA
  103 const GL_TEXTURE11 = &h84CB
  104 const GL_TEXTURE12 = &h84CC
  105 const GL_TEXTURE13 = &h84CD
  106 const GL_TEXTURE14 = &h84CE
  107 const GL_TEXTURE15 = &h84CF
  108 const GL_TEXTURE16 = &h84D0
  109 const GL_TEXTURE17 = &h84D1
  110 const GL_TEXTURE18 = &h84D2
  111 const GL_TEXTURE19 = &h84D3
  112 const GL_TEXTURE20 = &h84D4
  113 const GL_TEXTURE21 = &h84D5
  114 const GL_TEXTURE22 = &h84D6
  115 const GL_TEXTURE23 = &h84D7
  116 const GL_TEXTURE24 = &h84D8
  117 const GL_TEXTURE25 = &h84D9
  118 const GL_TEXTURE26 = &h84DA
  119 const GL_TEXTURE27 = &h84DB
  120 const GL_TEXTURE28 = &h84DC
  121 const GL_TEXTURE29 = &h84DD
  122 const GL_TEXTURE30 = &h84DE
  123 const GL_TEXTURE31 = &h84DF
  124 const GL_ACTIVE_TEXTURE = &h84E0
  125 const GL_MULTISAMPLE = &h809D
  126 const GL_SAMPLE_ALPHA_TO_COVERAGE = &h809E
  127 const GL_SAMPLE_ALPHA_TO_ONE = &h809F
  128 const GL_SAMPLE_COVERAGE = &h80A0
  129 const GL_SAMPLE_BUFFERS = &h80A8
  130 const GL_SAMPLES = &h80A9
  131 const GL_SAMPLE_COVERAGE_VALUE = &h80AA
  132 const GL_SAMPLE_COVERAGE_INVERT = &h80AB
  133 const GL_TEXTURE_CUBE_MAP = &h8513
  134 const GL_TEXTURE_BINDING_CUBE_MAP = &h8514
  135 const GL_TEXTURE_CUBE_MAP_POSITIVE_X = &h8515
  136 const GL_TEXTURE_CUBE_MAP_NEGATIVE_X = &h8516
  137 const GL_TEXTURE_CUBE_MAP_POSITIVE_Y = &h8517
  138 const GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = &h8518
  139 const GL_TEXTURE_CUBE_MAP_POSITIVE_Z = &h8519
  140 const GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = &h851A
  141 const GL_PROXY_TEXTURE_CUBE_MAP = &h851B
  142 const GL_MAX_CUBE_MAP_TEXTURE_SIZE = &h851C
  143 const GL_COMPRESSED_RGB = &h84ED
  144 const GL_COMPRESSED_RGBA = &h84EE
  145 const GL_TEXTURE_COMPRESSION_HINT = &h84EF
  146 const GL_TEXTURE_COMPRESSED_IMAGE_SIZE = &h86A0
  147 const GL_TEXTURE_COMPRESSED = &h86A1
  148 const GL_NUM_COMPRESSED_TEXTURE_FORMATS = &h86A2
  149 const GL_COMPRESSED_TEXTURE_FORMATS = &h86A3
  150 const GL_CLAMP_TO_BORDER = &h812D
  151 const GL_CLIENT_ACTIVE_TEXTURE = &h84E1
  152 const GL_MAX_TEXTURE_UNITS = &h84E2
  153 const GL_TRANSPOSE_MODELVIEW_MATRIX = &h84E3
  154 const GL_TRANSPOSE_PROJECTION_MATRIX = &h84E4
  155 const GL_TRANSPOSE_TEXTURE_MATRIX = &h84E5
  156 const GL_TRANSPOSE_COLOR_MATRIX = &h84E6
  157 const GL_MULTISAMPLE_BIT = &h20000000
  158 const GL_NORMAL_MAP = &h8511
  159 const GL_REFLECTION_MAP = &h8512
  160 const GL_COMPRESSED_ALPHA = &h84E9
  161 const GL_COMPRESSED_LUMINANCE = &h84EA
  162 const GL_COMPRESSED_LUMINANCE_ALPHA = &h84EB
  163 const GL_COMPRESSED_INTENSITY = &h84EC
  164 const GL_COMBINE = &h8570
  165 const GL_COMBINE_RGB = &h8571
  166 const GL_COMBINE_ALPHA = &h8572
  167 const GL_SOURCE0_RGB = &h8580
  168 const GL_SOURCE1_RGB = &h8581
  169 const GL_SOURCE2_RGB = &h8582
  170 const GL_SOURCE0_ALPHA = &h8588
  171 const GL_SOURCE1_ALPHA = &h8589
  172 const GL_SOURCE2_ALPHA = &h858A
  173 const GL_OPERAND0_RGB = &h8590
  174 const GL_OPERAND1_RGB = &h8591
  175 const GL_OPERAND2_RGB = &h8592
  176 const GL_OPERAND0_ALPHA = &h8598
  177 const GL_OPERAND1_ALPHA = &h8599
  178 const GL_OPERAND2_ALPHA = &h859A
  179 const GL_RGB_SCALE = &h8573
  180 const GL_ADD_SIGNED = &h8574
  181 const GL_INTERPOLATE = &h8575
  182 const GL_SUBTRACT = &h84E7
  183 const GL_CONSTANT = &h8576
  184 const GL_PRIMARY_COLOR = &h8577
  185 const GL_PREVIOUS = &h8578
  186 const GL_DOT3_RGB = &h86AE
  187 const GL_DOT3_RGBA = &h86AF
  188 
  189 type PFNGLACTIVETEXTUREPROC as sub(byval texture as GLenum)
  190 type PFNGLSAMPLECOVERAGEPROC as sub(byval value as GLfloat, byval invert as GLboolean)
  191 type PFNGLCOMPRESSEDTEXIMAGE3DPROC as sub(byval target as GLenum, byval level as GLint, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval border as GLint, byval imageSize as GLsizei, byval data as const any ptr)
  192 type PFNGLCOMPRESSEDTEXIMAGE2DPROC as sub(byval target as GLenum, byval level as GLint, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval border as GLint, byval imageSize as GLsizei, byval data as const any ptr)
  193 type PFNGLCOMPRESSEDTEXIMAGE1DPROC as sub(byval target as GLenum, byval level as GLint, byval internalformat as GLenum, byval width as GLsizei, byval border as GLint, byval imageSize as GLsizei, byval data as const any ptr)
  194 type PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC as sub(byval target as GLenum, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval format as GLenum, byval imageSize as GLsizei, byval data as const any ptr)
  195 type PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC as sub(byval target as GLenum, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval format as GLenum, byval imageSize as GLsizei, byval data as const any ptr)
  196 type PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC as sub(byval target as GLenum, byval level as GLint, byval xoffset as GLint, byval width as GLsizei, byval format as GLenum, byval imageSize as GLsizei, byval data as const any ptr)
  197 type PFNGLGETCOMPRESSEDTEXIMAGEPROC as sub(byval target as GLenum, byval level as GLint, byval img as any ptr)
  198 type PFNGLCLIENTACTIVETEXTUREPROC as sub(byval texture as GLenum)
  199 type PFNGLMULTITEXCOORD1DPROC as sub(byval target as GLenum, byval s as GLdouble)
  200 type PFNGLMULTITEXCOORD1DVPROC as sub(byval target as GLenum, byval v as const GLdouble ptr)
  201 type PFNGLMULTITEXCOORD1FPROC as sub(byval target as GLenum, byval s as GLfloat)
  202 type PFNGLMULTITEXCOORD1FVPROC as sub(byval target as GLenum, byval v as const GLfloat ptr)
  203 type PFNGLMULTITEXCOORD1IPROC as sub(byval target as GLenum, byval s as GLint)
  204 type PFNGLMULTITEXCOORD1IVPROC as sub(byval target as GLenum, byval v as const GLint ptr)
  205 type PFNGLMULTITEXCOORD1SPROC as sub(byval target as GLenum, byval s as GLshort)
  206 type PFNGLMULTITEXCOORD1SVPROC as sub(byval target as GLenum, byval v as const GLshort ptr)
  207 type PFNGLMULTITEXCOORD2DPROC as sub(byval target as GLenum, byval s as GLdouble, byval t as GLdouble)
  208 type PFNGLMULTITEXCOORD2DVPROC as sub(byval target as GLenum, byval v as const GLdouble ptr)
  209 type PFNGLMULTITEXCOORD2FPROC as sub(byval target as GLenum, byval s as GLfloat, byval t as GLfloat)
  210 type PFNGLMULTITEXCOORD2FVPROC as sub(byval target as GLenum, byval v as const GLfloat ptr)
  211 type PFNGLMULTITEXCOORD2IPROC as sub(byval target as GLenum, byval s as GLint, byval t as GLint)
  212 type PFNGLMULTITEXCOORD2IVPROC as sub(byval target as GLenum, byval v as const GLint ptr)
  213 type PFNGLMULTITEXCOORD2SPROC as sub(byval target as GLenum, byval s as GLshort, byval t as GLshort)
  214 type PFNGLMULTITEXCOORD2SVPROC as sub(byval target as GLenum, byval v as const GLshort ptr)
  215 type PFNGLMULTITEXCOORD3DPROC as sub(byval target as GLenum, byval s as GLdouble, byval t as GLdouble, byval r as GLdouble)
  216 type PFNGLMULTITEXCOORD3DVPROC as sub(byval target as GLenum, byval v as const GLdouble ptr)
  217 type PFNGLMULTITEXCOORD3FPROC as sub(byval target as GLenum, byval s as GLfloat, byval t as GLfloat, byval r as GLfloat)
  218 type PFNGLMULTITEXCOORD3FVPROC as sub(byval target as GLenum, byval v as const GLfloat ptr)
  219 type PFNGLMULTITEXCOORD3IPROC as sub(byval target as GLenum, byval s as GLint, byval t as GLint, byval r as GLint)
  220 type PFNGLMULTITEXCOORD3IVPROC as sub(byval target as GLenum, byval v as const GLint ptr)
  221 type PFNGLMULTITEXCOORD3SPROC as sub(byval target as GLenum, byval s as GLshort, byval t as GLshort, byval r as GLshort)
  222 type PFNGLMULTITEXCOORD3SVPROC as sub(byval target as GLenum, byval v as const GLshort ptr)
  223 type PFNGLMULTITEXCOORD4DPROC as sub(byval target as GLenum, byval s as GLdouble, byval t as GLdouble, byval r as GLdouble, byval q as GLdouble)
  224 type PFNGLMULTITEXCOORD4DVPROC as sub(byval target as GLenum, byval v as const GLdouble ptr)
  225 type PFNGLMULTITEXCOORD4FPROC as sub(byval target as GLenum, byval s as GLfloat, byval t as GLfloat, byval r as GLfloat, byval q as GLfloat)
  226 type PFNGLMULTITEXCOORD4FVPROC as sub(byval target as GLenum, byval v as const GLfloat ptr)
  227 type PFNGLMULTITEXCOORD4IPROC as sub(byval target as GLenum, byval s as GLint, byval t as GLint, byval r as GLint, byval q as GLint)
  228 type PFNGLMULTITEXCOORD4IVPROC as sub(byval target as GLenum, byval v as const GLint ptr)
  229 type PFNGLMULTITEXCOORD4SPROC as sub(byval target as GLenum, byval s as GLshort, byval t as GLshort, byval r as GLshort, byval q as GLshort)
  230 type PFNGLMULTITEXCOORD4SVPROC as sub(byval target as GLenum, byval v as const GLshort ptr)
  231 type PFNGLLOADTRANSPOSEMATRIXFPROC as sub(byval m as const GLfloat ptr)
  232 type PFNGLLOADTRANSPOSEMATRIXDPROC as sub(byval m as const GLdouble ptr)
  233 type PFNGLMULTTRANSPOSEMATRIXFPROC as sub(byval m as const GLfloat ptr)
  234 type PFNGLMULTTRANSPOSEMATRIXDPROC as sub(byval m as const GLdouble ptr)
  235 
  236 #ifdef GL_GLEXT_PROTOTYPES
  237     declare sub glActiveTexture(byval texture as GLenum)
  238     declare sub glSampleCoverage(byval value as GLfloat, byval invert as GLboolean)
  239     declare sub glCompressedTexImage3D(byval target as GLenum, byval level as GLint, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval border as GLint, byval imageSize as GLsizei, byval data as const any ptr)
  240     declare sub glCompressedTexImage2D(byval target as GLenum, byval level as GLint, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval border as GLint, byval imageSize as GLsizei, byval data as const any ptr)
  241     declare sub glCompressedTexImage1D(byval target as GLenum, byval level as GLint, byval internalformat as GLenum, byval width as GLsizei, byval border as GLint, byval imageSize as GLsizei, byval data as const any ptr)
  242     declare sub glCompressedTexSubImage3D(byval target as GLenum, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval format as GLenum, byval imageSize as GLsizei, byval data as const any ptr)
  243     declare sub glCompressedTexSubImage2D(byval target as GLenum, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval format as GLenum, byval imageSize as GLsizei, byval data as const any ptr)
  244     declare sub glCompressedTexSubImage1D(byval target as GLenum, byval level as GLint, byval xoffset as GLint, byval width as GLsizei, byval format as GLenum, byval imageSize as GLsizei, byval data as const any ptr)
  245     declare sub glGetCompressedTexImage(byval target as GLenum, byval level as GLint, byval img as any ptr)
  246     declare sub glClientActiveTexture(byval texture as GLenum)
  247     declare sub glMultiTexCoord1d(byval target as GLenum, byval s as GLdouble)
  248     declare sub glMultiTexCoord1dv(byval target as GLenum, byval v as const GLdouble ptr)
  249     declare sub glMultiTexCoord1f(byval target as GLenum, byval s as GLfloat)
  250     declare sub glMultiTexCoord1fv(byval target as GLenum, byval v as const GLfloat ptr)
  251     declare sub glMultiTexCoord1i(byval target as GLenum, byval s as GLint)
  252     declare sub glMultiTexCoord1iv(byval target as GLenum, byval v as const GLint ptr)
  253     declare sub glMultiTexCoord1s(byval target as GLenum, byval s as GLshort)
  254     declare sub glMultiTexCoord1sv(byval target as GLenum, byval v as const GLshort ptr)
  255     declare sub glMultiTexCoord2d(byval target as GLenum, byval s as GLdouble, byval t as GLdouble)
  256     declare sub glMultiTexCoord2dv(byval target as GLenum, byval v as const GLdouble ptr)
  257     declare sub glMultiTexCoord2f(byval target as GLenum, byval s as GLfloat, byval t as GLfloat)
  258     declare sub glMultiTexCoord2fv(byval target as GLenum, byval v as const GLfloat ptr)
  259     declare sub glMultiTexCoord2i(byval target as GLenum, byval s as GLint, byval t as GLint)
  260     declare sub glMultiTexCoord2iv(byval target as GLenum, byval v as const GLint ptr)
  261     declare sub glMultiTexCoord2s(byval target as GLenum, byval s as GLshort, byval t as GLshort)
  262     declare sub glMultiTexCoord2sv(byval target as GLenum, byval v as const GLshort ptr)
  263     declare sub glMultiTexCoord3d(byval target as GLenum, byval s as GLdouble, byval t as GLdouble, byval r as GLdouble)
  264     declare sub glMultiTexCoord3dv(byval target as GLenum, byval v as const GLdouble ptr)
  265     declare sub glMultiTexCoord3f(byval target as GLenum, byval s as GLfloat, byval t as GLfloat, byval r as GLfloat)
  266     declare sub glMultiTexCoord3fv(byval target as GLenum, byval v as const GLfloat ptr)
  267     declare sub glMultiTexCoord3i(byval target as GLenum, byval s as GLint, byval t as GLint, byval r as GLint)
  268     declare sub glMultiTexCoord3iv(byval target as GLenum, byval v as const GLint ptr)
  269     declare sub glMultiTexCoord3s(byval target as GLenum, byval s as GLshort, byval t as GLshort, byval r as GLshort)
  270     declare sub glMultiTexCoord3sv(byval target as GLenum, byval v as const GLshort ptr)
  271     declare sub glMultiTexCoord4d(byval target as GLenum, byval s as GLdouble, byval t as GLdouble, byval r as GLdouble, byval q as GLdouble)
  272     declare sub glMultiTexCoord4dv(byval target as GLenum, byval v as const GLdouble ptr)
  273     declare sub glMultiTexCoord4f(byval target as GLenum, byval s as GLfloat, byval t as GLfloat, byval r as GLfloat, byval q as GLfloat)
  274     declare sub glMultiTexCoord4fv(byval target as GLenum, byval v as const GLfloat ptr)
  275     declare sub glMultiTexCoord4i(byval target as GLenum, byval s as GLint, byval t as GLint, byval r as GLint, byval q as GLint)
  276     declare sub glMultiTexCoord4iv(byval target as GLenum, byval v as const GLint ptr)
  277     declare sub glMultiTexCoord4s(byval target as GLenum, byval s as GLshort, byval t as GLshort, byval r as GLshort, byval q as GLshort)
  278     declare sub glMultiTexCoord4sv(byval target as GLenum, byval v as const GLshort ptr)
  279     declare sub glLoadTransposeMatrixf(byval m as const GLfloat ptr)
  280     declare sub glLoadTransposeMatrixd(byval m as const GLdouble ptr)
  281     declare sub glMultTransposeMatrixf(byval m as const GLfloat ptr)
  282     declare sub glMultTransposeMatrixd(byval m as const GLdouble ptr)
  283 #endif
  284 
  285 const GL_VERSION_1_4 = 1
  286 const GL_BLEND_DST_RGB = &h80C8
  287 const GL_BLEND_SRC_RGB = &h80C9
  288 const GL_BLEND_DST_ALPHA = &h80CA
  289 const GL_BLEND_SRC_ALPHA = &h80CB
  290 const GL_POINT_FADE_THRESHOLD_SIZE = &h8128
  291 const GL_DEPTH_COMPONENT16 = &h81A5
  292 const GL_DEPTH_COMPONENT24 = &h81A6
  293 const GL_DEPTH_COMPONENT32 = &h81A7
  294 const GL_MIRRORED_REPEAT = &h8370
  295 const GL_MAX_TEXTURE_LOD_BIAS = &h84FD
  296 const GL_TEXTURE_LOD_BIAS = &h8501
  297 const GL_INCR_WRAP = &h8507
  298 const GL_DECR_WRAP = &h8508
  299 const GL_TEXTURE_DEPTH_SIZE = &h884A
  300 const GL_TEXTURE_COMPARE_MODE = &h884C
  301 const GL_TEXTURE_COMPARE_FUNC = &h884D
  302 const GL_POINT_SIZE_MIN = &h8126
  303 const GL_POINT_SIZE_MAX = &h8127
  304 const GL_POINT_DISTANCE_ATTENUATION = &h8129
  305 const GL_GENERATE_MIPMAP = &h8191
  306 const GL_GENERATE_MIPMAP_HINT = &h8192
  307 const GL_FOG_COORDINATE_SOURCE = &h8450
  308 const GL_FOG_COORDINATE = &h8451
  309 const GL_FRAGMENT_DEPTH = &h8452
  310 const GL_CURRENT_FOG_COORDINATE = &h8453
  311 const GL_FOG_COORDINATE_ARRAY_TYPE = &h8454
  312 const GL_FOG_COORDINATE_ARRAY_STRIDE = &h8455
  313 const GL_FOG_COORDINATE_ARRAY_POINTER = &h8456
  314 const GL_FOG_COORDINATE_ARRAY = &h8457
  315 const GL_COLOR_SUM = &h8458
  316 const GL_CURRENT_SECONDARY_COLOR = &h8459
  317 const GL_SECONDARY_COLOR_ARRAY_SIZE = &h845A
  318 const GL_SECONDARY_COLOR_ARRAY_TYPE = &h845B
  319 const GL_SECONDARY_COLOR_ARRAY_STRIDE = &h845C
  320 const GL_SECONDARY_COLOR_ARRAY_POINTER = &h845D
  321 const GL_SECONDARY_COLOR_ARRAY = &h845E
  322 const GL_TEXTURE_FILTER_CONTROL = &h8500
  323 const GL_DEPTH_TEXTURE_MODE = &h884B
  324 const GL_COMPARE_R_TO_TEXTURE = &h884E
  325 const GL_FUNC_ADD = &h8006
  326 const GL_FUNC_SUBTRACT = &h800A
  327 const GL_FUNC_REVERSE_SUBTRACT = &h800B
  328 const GL_MIN = &h8007
  329 const GL_MAX = &h8008
  330 const GL_CONSTANT_COLOR = &h8001
  331 const GL_ONE_MINUS_CONSTANT_COLOR = &h8002
  332 const GL_CONSTANT_ALPHA = &h8003
  333 const GL_ONE_MINUS_CONSTANT_ALPHA = &h8004
  334 
  335 type PFNGLBLENDFUNCSEPARATEPROC as sub(byval sfactorRGB as GLenum, byval dfactorRGB as GLenum, byval sfactorAlpha as GLenum, byval dfactorAlpha as GLenum)
  336 type PFNGLMULTIDRAWARRAYSPROC as sub(byval mode as GLenum, byval first as const GLint ptr, byval count as const GLsizei ptr, byval drawcount as GLsizei)
  337 type PFNGLMULTIDRAWELEMENTSPROC as sub(byval mode as GLenum, byval count as const GLsizei ptr, byval type as GLenum, byval indices as const any const ptr ptr, byval drawcount as GLsizei)
  338 type PFNGLPOINTPARAMETERFPROC as sub(byval pname as GLenum, byval param as GLfloat)
  339 type PFNGLPOINTPARAMETERFVPROC as sub(byval pname as GLenum, byval params as const GLfloat ptr)
  340 type PFNGLPOINTPARAMETERIPROC as sub(byval pname as GLenum, byval param as GLint)
  341 type PFNGLPOINTPARAMETERIVPROC as sub(byval pname as GLenum, byval params as const GLint ptr)
  342 type PFNGLFOGCOORDFPROC as sub(byval coord as GLfloat)
  343 type PFNGLFOGCOORDFVPROC as sub(byval coord as const GLfloat ptr)
  344 type PFNGLFOGCOORDDPROC as sub(byval coord as GLdouble)
  345 type PFNGLFOGCOORDDVPROC as sub(byval coord as const GLdouble ptr)
  346 type PFNGLFOGCOORDPOINTERPROC as sub(byval type as GLenum, byval stride as GLsizei, byval pointer as const any ptr)
  347 type PFNGLSECONDARYCOLOR3BPROC as sub(byval red as GLbyte, byval green as GLbyte, byval blue as GLbyte)
  348 type PFNGLSECONDARYCOLOR3BVPROC as sub(byval v as const GLbyte ptr)
  349 type PFNGLSECONDARYCOLOR3DPROC as sub(byval red as GLdouble, byval green as GLdouble, byval blue as GLdouble)
  350 type PFNGLSECONDARYCOLOR3DVPROC as sub(byval v as const GLdouble ptr)
  351 type PFNGLSECONDARYCOLOR3FPROC as sub(byval red as GLfloat, byval green as GLfloat, byval blue as GLfloat)
  352 type PFNGLSECONDARYCOLOR3FVPROC as sub(byval v as const GLfloat ptr)
  353 type PFNGLSECONDARYCOLOR3IPROC as sub(byval red as GLint, byval green as GLint, byval blue as GLint)
  354 type PFNGLSECONDARYCOLOR3IVPROC as sub(byval v as const GLint ptr)
  355 type PFNGLSECONDARYCOLOR3SPROC as sub(byval red as GLshort, byval green as GLshort, byval blue as GLshort)
  356 type PFNGLSECONDARYCOLOR3SVPROC as sub(byval v as const GLshort ptr)
  357 type PFNGLSECONDARYCOLOR3UBPROC as sub(byval red as GLubyte, byval green as GLubyte, byval blue as GLubyte)
  358 type PFNGLSECONDARYCOLOR3UBVPROC as sub(byval v as const GLubyte ptr)
  359 type PFNGLSECONDARYCOLOR3UIPROC as sub(byval red as GLuint, byval green as GLuint, byval blue as GLuint)
  360 type PFNGLSECONDARYCOLOR3UIVPROC as sub(byval v as const GLuint ptr)
  361 type PFNGLSECONDARYCOLOR3USPROC as sub(byval red as GLushort, byval green as GLushort, byval blue as GLushort)
  362 type PFNGLSECONDARYCOLOR3USVPROC as sub(byval v as const GLushort ptr)
  363 type PFNGLSECONDARYCOLORPOINTERPROC as sub(byval size as GLint, byval type as GLenum, byval stride as GLsizei, byval pointer as const any ptr)
  364 type PFNGLWINDOWPOS2DPROC as sub(byval x as GLdouble, byval y as GLdouble)
  365 type PFNGLWINDOWPOS2DVPROC as sub(byval v as const GLdouble ptr)
  366 type PFNGLWINDOWPOS2FPROC as sub(byval x as GLfloat, byval y as GLfloat)
  367 type PFNGLWINDOWPOS2FVPROC as sub(byval v as const GLfloat ptr)
  368 type PFNGLWINDOWPOS2IPROC as sub(byval x as GLint, byval y as GLint)
  369 type PFNGLWINDOWPOS2IVPROC as sub(byval v as const GLint ptr)
  370 type PFNGLWINDOWPOS2SPROC as sub(byval x as GLshort, byval y as GLshort)
  371 type PFNGLWINDOWPOS2SVPROC as sub(byval v as const GLshort ptr)
  372 type PFNGLWINDOWPOS3DPROC as sub(byval x as GLdouble, byval y as GLdouble, byval z as GLdouble)
  373 type PFNGLWINDOWPOS3DVPROC as sub(byval v as const GLdouble ptr)
  374 type PFNGLWINDOWPOS3FPROC as sub(byval x as GLfloat, byval y as GLfloat, byval z as GLfloat)
  375 type PFNGLWINDOWPOS3FVPROC as sub(byval v as const GLfloat ptr)
  376 type PFNGLWINDOWPOS3IPROC as sub(byval x as GLint, byval y as GLint, byval z as GLint)
  377 type PFNGLWINDOWPOS3IVPROC as sub(byval v as const GLint ptr)
  378 type PFNGLWINDOWPOS3SPROC as sub(byval x as GLshort, byval y as GLshort, byval z as GLshort)
  379 type PFNGLWINDOWPOS3SVPROC as sub(byval v as const GLshort ptr)
  380 type PFNGLBLENDCOLORPROC as sub(byval red as GLfloat, byval green as GLfloat, byval blue as GLfloat, byval alpha as GLfloat)
  381 type PFNGLBLENDEQUATIONPROC as sub(byval mode as GLenum)
  382 
  383 #ifdef GL_GLEXT_PROTOTYPES
  384     declare sub glBlendFuncSeparate(byval sfactorRGB as GLenum, byval dfactorRGB as GLenum, byval sfactorAlpha as GLenum, byval dfactorAlpha as GLenum)
  385     declare sub glMultiDrawArrays(byval mode as GLenum, byval first as const GLint ptr, byval count as const GLsizei ptr, byval drawcount as GLsizei)
  386     declare sub glMultiDrawElements(byval mode as GLenum, byval count as const GLsizei ptr, byval type as GLenum, byval indices as const any const ptr ptr, byval drawcount as GLsizei)
  387     declare sub glPointParameterf(byval pname as GLenum, byval param as GLfloat)
  388     declare sub glPointParameterfv(byval pname as GLenum, byval params as const GLfloat ptr)
  389     declare sub glPointParameteri(byval pname as GLenum, byval param as GLint)
  390     declare sub glPointParameteriv(byval pname as GLenum, byval params as const GLint ptr)
  391     declare sub glFogCoordf(byval coord as GLfloat)
  392     declare sub glFogCoordfv(byval coord as const GLfloat ptr)
  393     declare sub glFogCoordd(byval coord as GLdouble)
  394     declare sub glFogCoorddv(byval coord as const GLdouble ptr)
  395     declare sub glFogCoordPointer(byval type as GLenum, byval stride as GLsizei, byval pointer as const any ptr)
  396     declare sub glSecondaryColor3b(byval red as GLbyte, byval green as GLbyte, byval blue as GLbyte)
  397     declare sub glSecondaryColor3bv(byval v as const GLbyte ptr)
  398     declare sub glSecondaryColor3d(byval red as GLdouble, byval green as GLdouble, byval blue as GLdouble)
  399     declare sub glSecondaryColor3dv(byval v as const GLdouble ptr)
  400     declare sub glSecondaryColor3f(byval red as GLfloat, byval green as GLfloat, byval blue as GLfloat)
  401     declare sub glSecondaryColor3fv(byval v as const GLfloat ptr)
  402     declare sub glSecondaryColor3i(byval red as GLint, byval green as GLint, byval blue as GLint)
  403     declare sub glSecondaryColor3iv(byval v as const GLint ptr)
  404     declare sub glSecondaryColor3s(byval red as GLshort, byval green as GLshort, byval blue as GLshort)
  405     declare sub glSecondaryColor3sv(byval v as const GLshort ptr)
  406     declare sub glSecondaryColor3ub(byval red as GLubyte, byval green as GLubyte, byval blue as GLubyte)
  407     declare sub glSecondaryColor3ubv(byval v as const GLubyte ptr)
  408     declare sub glSecondaryColor3ui(byval red as GLuint, byval green as GLuint, byval blue as GLuint)
  409     declare sub glSecondaryColor3uiv(byval v as const GLuint ptr)
  410     declare sub glSecondaryColor3us(byval red as GLushort, byval green as GLushort, byval blue as GLushort)
  411     declare sub glSecondaryColor3usv(byval v as const GLushort ptr)
  412     declare sub glSecondaryColorPointer(byval size as GLint, byval type as GLenum, byval stride as GLsizei, byval pointer as const any ptr)
  413     declare sub glWindowPos2d(byval x as GLdouble, byval y as GLdouble)
  414     declare sub glWindowPos2dv(byval v as const GLdouble ptr)
  415     declare sub glWindowPos2f(byval x as GLfloat, byval y as GLfloat)
  416     declare sub glWindowPos2fv(byval v as const GLfloat ptr)
  417     declare sub glWindowPos2i(byval x as GLint, byval y as GLint)
  418     declare sub glWindowPos2iv(byval v as const GLint ptr)
  419     declare sub glWindowPos2s(byval x as GLshort, byval y as GLshort)
  420     declare sub glWindowPos2sv(byval v as const GLshort ptr)
  421     declare sub glWindowPos3d(byval x as GLdouble, byval y as GLdouble, byval z as GLdouble)
  422     declare sub glWindowPos3dv(byval v as const GLdouble ptr)
  423     declare sub glWindowPos3f(byval x as GLfloat, byval y as GLfloat, byval z as GLfloat)
  424     declare sub glWindowPos3fv(byval v as const GLfloat ptr)
  425     declare sub glWindowPos3i(byval x as GLint, byval y as GLint, byval z as GLint)
  426     declare sub glWindowPos3iv(byval v as const GLint ptr)
  427     declare sub glWindowPos3s(byval x as GLshort, byval y as GLshort, byval z as GLshort)
  428     declare sub glWindowPos3sv(byval v as const GLshort ptr)
  429     declare sub glBlendColor(byval red as GLfloat, byval green as GLfloat, byval blue as GLfloat, byval alpha as GLfloat)
  430     declare sub glBlendEquation(byval mode as GLenum)
  431 #endif
  432 
  433 const GL_VERSION_1_5 = 1
  434 type GLsizeiptr as integer
  435 type GLintptr as integer
  436 const GL_BUFFER_SIZE = &h8764
  437 const GL_BUFFER_USAGE = &h8765
  438 const GL_QUERY_COUNTER_BITS = &h8864
  439 const GL_CURRENT_QUERY = &h8865
  440 const GL_QUERY_RESULT = &h8866
  441 const GL_QUERY_RESULT_AVAILABLE = &h8867
  442 const GL_ARRAY_BUFFER = &h8892
  443 const GL_ELEMENT_ARRAY_BUFFER = &h8893
  444 const GL_ARRAY_BUFFER_BINDING = &h8894
  445 const GL_ELEMENT_ARRAY_BUFFER_BINDING = &h8895
  446 const GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = &h889F
  447 const GL_READ_ONLY = &h88B8
  448 const GL_WRITE_ONLY = &h88B9
  449 const GL_READ_WRITE = &h88BA
  450 const GL_BUFFER_ACCESS = &h88BB
  451 const GL_BUFFER_MAPPED = &h88BC
  452 const GL_BUFFER_MAP_POINTER = &h88BD
  453 const GL_STREAM_DRAW = &h88E0
  454 const GL_STREAM_READ = &h88E1
  455 const GL_STREAM_COPY = &h88E2
  456 const GL_STATIC_DRAW = &h88E4
  457 const GL_STATIC_READ = &h88E5
  458 const GL_STATIC_COPY = &h88E6
  459 const GL_DYNAMIC_DRAW = &h88E8
  460 const GL_DYNAMIC_READ = &h88E9
  461 const GL_DYNAMIC_COPY = &h88EA
  462 const GL_SAMPLES_PASSED = &h8914
  463 const GL_SRC1_ALPHA = &h8589
  464 const GL_VERTEX_ARRAY_BUFFER_BINDING = &h8896
  465 const GL_NORMAL_ARRAY_BUFFER_BINDING = &h8897
  466 const GL_COLOR_ARRAY_BUFFER_BINDING = &h8898
  467 const GL_INDEX_ARRAY_BUFFER_BINDING = &h8899
  468 const GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = &h889A
  469 const GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = &h889B
  470 const GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = &h889C
  471 const GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = &h889D
  472 const GL_WEIGHT_ARRAY_BUFFER_BINDING = &h889E
  473 const GL_FOG_COORD_SRC = &h8450
  474 const GL_FOG_COORD = &h8451
  475 const GL_CURRENT_FOG_COORD = &h8453
  476 const GL_FOG_COORD_ARRAY_TYPE = &h8454
  477 const GL_FOG_COORD_ARRAY_STRIDE = &h8455
  478 const GL_FOG_COORD_ARRAY_POINTER = &h8456
  479 const GL_FOG_COORD_ARRAY = &h8457
  480 const GL_FOG_COORD_ARRAY_BUFFER_BINDING = &h889D
  481 const GL_SRC0_RGB = &h8580
  482 const GL_SRC1_RGB = &h8581
  483 const GL_SRC2_RGB = &h8582
  484 const GL_SRC0_ALPHA = &h8588
  485 const GL_SRC2_ALPHA = &h858A
  486 
  487 type PFNGLGENQUERIESPROC as sub(byval n as GLsizei, byval ids as GLuint ptr)
  488 type PFNGLDELETEQUERIESPROC as sub(byval n as GLsizei, byval ids as const GLuint ptr)
  489 type PFNGLISQUERYPROC as function(byval id as GLuint) as GLboolean
  490 type PFNGLBEGINQUERYPROC as sub(byval target as GLenum, byval id as GLuint)
  491 type PFNGLENDQUERYPROC as sub(byval target as GLenum)
  492 type PFNGLGETQUERYIVPROC as sub(byval target as GLenum, byval pname as GLenum, byval params as GLint ptr)
  493 type PFNGLGETQUERYOBJECTIVPROC as sub(byval id as GLuint, byval pname as GLenum, byval params as GLint ptr)
  494 type PFNGLGETQUERYOBJECTUIVPROC as sub(byval id as GLuint, byval pname as GLenum, byval params as GLuint ptr)
  495 type PFNGLBINDBUFFERPROC as sub(byval target as GLenum, byval buffer as GLuint)
  496 type PFNGLDELETEBUFFERSPROC as sub(byval n as GLsizei, byval buffers as const GLuint ptr)
  497 type PFNGLGENBUFFERSPROC as sub(byval n as GLsizei, byval buffers as GLuint ptr)
  498 type PFNGLISBUFFERPROC as function(byval buffer as GLuint) as GLboolean
  499 type PFNGLBUFFERDATAPROC as sub(byval target as GLenum, byval size as GLsizeiptr, byval data as const any ptr, byval usage as GLenum)
  500 type PFNGLBUFFERSUBDATAPROC as sub(byval target as GLenum, byval offset as GLintptr, byval size as GLsizeiptr, byval data as const any ptr)
  501 type PFNGLGETBUFFERSUBDATAPROC as sub(byval target as GLenum, byval offset as GLintptr, byval size as GLsizeiptr, byval data as any ptr)
  502 type PFNGLMAPBUFFERPROC as function(byval target as GLenum, byval access as GLenum) as any ptr
  503 type PFNGLUNMAPBUFFERPROC as function(byval target as GLenum) as GLboolean
  504 type PFNGLGETBUFFERPARAMETERIVPROC as sub(byval target as GLenum, byval pname as GLenum, byval params as GLint ptr)
  505 type PFNGLGETBUFFERPOINTERVPROC as sub(byval target as GLenum, byval pname as GLenum, byval params as any ptr ptr)
  506 
  507 #ifdef GL_GLEXT_PROTOTYPES
  508     declare sub glGenQueries(byval n as GLsizei, byval ids as GLuint ptr)
  509     declare sub glDeleteQueries(byval n as GLsizei, byval ids as const GLuint ptr)
  510     declare function glIsQuery(byval id as GLuint) as GLboolean
  511     declare sub glBeginQuery(byval target as GLenum, byval id as GLuint)
  512     declare sub glEndQuery(byval target as GLenum)
  513     declare sub glGetQueryiv(byval target as GLenum, byval pname as GLenum, byval params as GLint ptr)
  514     declare sub glGetQueryObjectiv(byval id as GLuint, byval pname as GLenum, byval params as GLint ptr)
  515     declare sub glGetQueryObjectuiv(byval id as GLuint, byval pname as GLenum, byval params as GLuint ptr)
  516     declare sub glBindBuffer(byval target as GLenum, byval buffer as GLuint)
  517     declare sub glDeleteBuffers(byval n as GLsizei, byval buffers as const GLuint ptr)
  518     declare sub glGenBuffers(byval n as GLsizei, byval buffers as GLuint ptr)
  519     declare function glIsBuffer(byval buffer as GLuint) as GLboolean
  520     declare sub glBufferData(byval target as GLenum, byval size as GLsizeiptr, byval data as const any ptr, byval usage as GLenum)
  521     declare sub glBufferSubData(byval target as GLenum, byval offset as GLintptr, byval size as GLsizeiptr, byval data as const any ptr)
  522     declare sub glGetBufferSubData(byval target as GLenum, byval offset as GLintptr, byval size as GLsizeiptr, byval data as any ptr)
  523     declare function glMapBuffer(byval target as GLenum, byval access as GLenum) as any ptr
  524     declare function glUnmapBuffer(byval target as GLenum) as GLboolean
  525     declare sub glGetBufferParameteriv(byval target as GLenum, byval pname as GLenum, byval params as GLint ptr)
  526     declare sub glGetBufferPointerv(byval target as GLenum, byval pname as GLenum, byval params as any ptr ptr)
  527 #endif
  528 
  529 const GL_VERSION_2_0 = 1
  530 type GLchar as zstring
  531 const GL_BLEND_EQUATION_RGB = &h8009
  532 const GL_VERTEX_ATTRIB_ARRAY_ENABLED = &h8622
  533 const GL_VERTEX_ATTRIB_ARRAY_SIZE = &h8623
  534 const GL_VERTEX_ATTRIB_ARRAY_STRIDE = &h8624
  535 const GL_VERTEX_ATTRIB_ARRAY_TYPE = &h8625
  536 const GL_CURRENT_VERTEX_ATTRIB = &h8626
  537 const GL_VERTEX_PROGRAM_POINT_SIZE = &h8642
  538 const GL_VERTEX_ATTRIB_ARRAY_POINTER = &h8645
  539 const GL_STENCIL_BACK_FUNC = &h8800
  540 const GL_STENCIL_BACK_FAIL = &h8801
  541 const GL_STENCIL_BACK_PASS_DEPTH_FAIL = &h8802
  542 const GL_STENCIL_BACK_PASS_DEPTH_PASS = &h8803
  543 const GL_MAX_DRAW_BUFFERS = &h8824
  544 const GL_DRAW_BUFFER0 = &h8825
  545 const GL_DRAW_BUFFER1 = &h8826
  546 const GL_DRAW_BUFFER2 = &h8827
  547 const GL_DRAW_BUFFER3 = &h8828
  548 const GL_DRAW_BUFFER4 = &h8829
  549 const GL_DRAW_BUFFER5 = &h882A
  550 const GL_DRAW_BUFFER6 = &h882B
  551 const GL_DRAW_BUFFER7 = &h882C
  552 const GL_DRAW_BUFFER8 = &h882D
  553 const GL_DRAW_BUFFER9 = &h882E
  554 const GL_DRAW_BUFFER10 = &h882F
  555 const GL_DRAW_BUFFER11 = &h8830
  556 const GL_DRAW_BUFFER12 = &h8831
  557 const GL_DRAW_BUFFER13 = &h8832
  558 const GL_DRAW_BUFFER14 = &h8833
  559 const GL_DRAW_BUFFER15 = &h8834
  560 const GL_BLEND_EQUATION_ALPHA = &h883D
  561 const GL_MAX_VERTEX_ATTRIBS = &h8869
  562 const GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = &h886A
  563 const GL_MAX_TEXTURE_IMAGE_UNITS = &h8872
  564 const GL_FRAGMENT_SHADER = &h8B30
  565 const GL_VERTEX_SHADER = &h8B31
  566 const GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = &h8B49
  567 const GL_MAX_VERTEX_UNIFORM_COMPONENTS = &h8B4A
  568 const GL_MAX_VARYING_FLOATS = &h8B4B
  569 const GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = &h8B4C
  570 const GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = &h8B4D
  571 const GL_SHADER_TYPE = &h8B4F
  572 const GL_FLOAT_VEC2 = &h8B50
  573 const GL_FLOAT_VEC3 = &h8B51
  574 const GL_FLOAT_VEC4 = &h8B52
  575 const GL_INT_VEC2 = &h8B53
  576 const GL_INT_VEC3 = &h8B54
  577 const GL_INT_VEC4 = &h8B55
  578 const GL_BOOL = &h8B56
  579 const GL_BOOL_VEC2 = &h8B57
  580 const GL_BOOL_VEC3 = &h8B58
  581 const GL_BOOL_VEC4 = &h8B59
  582 const GL_FLOAT_MAT2 = &h8B5A
  583 const GL_FLOAT_MAT3 = &h8B5B
  584 const GL_FLOAT_MAT4 = &h8B5C
  585 const GL_SAMPLER_1D = &h8B5D
  586 const GL_SAMPLER_2D = &h8B5E
  587 const GL_SAMPLER_3D = &h8B5F
  588 const GL_SAMPLER_CUBE = &h8B60
  589 const GL_SAMPLER_1D_SHADOW = &h8B61
  590 const GL_SAMPLER_2D_SHADOW = &h8B62
  591 const GL_DELETE_STATUS = &h8B80
  592 const GL_COMPILE_STATUS = &h8B81
  593 const GL_LINK_STATUS = &h8B82
  594 const GL_VALIDATE_STATUS = &h8B83
  595 const GL_INFO_LOG_LENGTH = &h8B84
  596 const GL_ATTACHED_SHADERS = &h8B85
  597 const GL_ACTIVE_UNIFORMS = &h8B86
  598 const GL_ACTIVE_UNIFORM_MAX_LENGTH = &h8B87
  599 const GL_SHADER_SOURCE_LENGTH = &h8B88
  600 const GL_ACTIVE_ATTRIBUTES = &h8B89
  601 const GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = &h8B8A
  602 const GL_FRAGMENT_SHADER_DERIVATIVE_HINT = &h8B8B
  603 const GL_SHADING_LANGUAGE_VERSION = &h8B8C
  604 const GL_CURRENT_PROGRAM = &h8B8D
  605 const GL_POINT_SPRITE_COORD_ORIGIN = &h8CA0
  606 const GL_LOWER_LEFT = &h8CA1
  607 const GL_UPPER_LEFT = &h8CA2
  608 const GL_STENCIL_BACK_REF = &h8CA3
  609 const GL_STENCIL_BACK_VALUE_MASK = &h8CA4
  610 const GL_STENCIL_BACK_WRITEMASK = &h8CA5
  611 const GL_VERTEX_PROGRAM_TWO_SIDE = &h8643
  612 const GL_POINT_SPRITE = &h8861
  613 const GL_COORD_REPLACE = &h8862
  614 const GL_MAX_TEXTURE_COORDS = &h8871
  615 
  616 type PFNGLBLENDEQUATIONSEPARATEPROC as sub(byval modeRGB as GLenum, byval modeAlpha as GLenum)
  617 type PFNGLDRAWBUFFERSPROC as sub(byval n as GLsizei, byval bufs as const GLenum ptr)
  618 type PFNGLSTENCILOPSEPARATEPROC as sub(byval face as GLenum, byval sfail as GLenum, byval dpfail as GLenum, byval dppass as GLenum)
  619 type PFNGLSTENCILFUNCSEPARATEPROC as sub(byval face as GLenum, byval func as GLenum, byval ref as GLint, byval mask as GLuint)
  620 type PFNGLSTENCILMASKSEPARATEPROC as sub(byval face as GLenum, byval mask as GLuint)
  621 type PFNGLATTACHSHADERPROC as sub(byval program as GLuint, byval shader as GLuint)
  622 type PFNGLBINDATTRIBLOCATIONPROC as sub(byval program as GLuint, byval index as GLuint, byval name as const GLchar ptr)
  623 type PFNGLCOMPILESHADERPROC as sub(byval shader as GLuint)
  624 type PFNGLCREATEPROGRAMPROC as function() as GLuint
  625 type PFNGLCREATESHADERPROC as function(byval type as GLenum) as GLuint
  626 type PFNGLDELETEPROGRAMPROC as sub(byval program as GLuint)
  627 type PFNGLDELETESHADERPROC as sub(byval shader as GLuint)
  628 type PFNGLDETACHSHADERPROC as sub(byval program as GLuint, byval shader as GLuint)
  629 type PFNGLDISABLEVERTEXATTRIBARRAYPROC as sub(byval index as GLuint)
  630 type PFNGLENABLEVERTEXATTRIBARRAYPROC as sub(byval index as GLuint)
  631 type PFNGLGETACTIVEATTRIBPROC as sub(byval program as GLuint, byval index as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval size as GLint ptr, byval type as GLenum ptr, byval name as GLchar ptr)
  632 type PFNGLGETACTIVEUNIFORMPROC as sub(byval program as GLuint, byval index as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval size as GLint ptr, byval type as GLenum ptr, byval name as GLchar ptr)
  633 type PFNGLGETATTACHEDSHADERSPROC as sub(byval program as GLuint, byval maxCount as GLsizei, byval count as GLsizei ptr, byval shaders as GLuint ptr)
  634 type PFNGLGETATTRIBLOCATIONPROC as function(byval program as GLuint, byval name as const GLchar ptr) as GLint
  635 type PFNGLGETPROGRAMIVPROC as sub(byval program as GLuint, byval pname as GLenum, byval params as GLint ptr)
  636 type PFNGLGETPROGRAMINFOLOGPROC as sub(byval program as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval infoLog as GLchar ptr)
  637 type PFNGLGETSHADERIVPROC as sub(byval shader as GLuint, byval pname as GLenum, byval params as GLint ptr)
  638 type PFNGLGETSHADERINFOLOGPROC as sub(byval shader as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval infoLog as GLchar ptr)
  639 type PFNGLGETSHADERSOURCEPROC as sub(byval shader as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval source as GLchar ptr)
  640 type PFNGLGETUNIFORMLOCATIONPROC as function(byval program as GLuint, byval name as const GLchar ptr) as GLint
  641 type PFNGLGETUNIFORMFVPROC as sub(byval program as GLuint, byval location as GLint, byval params as GLfloat ptr)
  642 type PFNGLGETUNIFORMIVPROC as sub(byval program as GLuint, byval location as GLint, byval params as GLint ptr)
  643 type PFNGLGETVERTEXATTRIBDVPROC as sub(byval index as GLuint, byval pname as GLenum, byval params as GLdouble ptr)
  644 type PFNGLGETVERTEXATTRIBFVPROC as sub(byval index as GLuint, byval pname as GLenum, byval params as GLfloat ptr)
  645 type PFNGLGETVERTEXATTRIBIVPROC as sub(byval index as GLuint, byval pname as GLenum, byval params as GLint ptr)
  646 type PFNGLGETVERTEXATTRIBPOINTERVPROC as sub(byval index as GLuint, byval pname as GLenum, byval pointer as any ptr ptr)
  647 type PFNGLISPROGRAMPROC as function(byval program as GLuint) as GLboolean
  648 type PFNGLISSHADERPROC as function(byval shader as GLuint) as GLboolean
  649 type PFNGLLINKPROGRAMPROC as sub(byval program as GLuint)
  650 type PFNGLSHADERSOURCEPROC as sub(byval shader as GLuint, byval count as GLsizei, byval string as const GLchar const ptr ptr, byval length as const GLint ptr)
  651 type PFNGLUSEPROGRAMPROC as sub(byval program as GLuint)
  652 type PFNGLUNIFORM1FPROC as sub(byval location as GLint, byval v0 as GLfloat)
  653 type PFNGLUNIFORM2FPROC as sub(byval location as GLint, byval v0 as GLfloat, byval v1 as GLfloat)
  654 type PFNGLUNIFORM3FPROC as sub(byval location as GLint, byval v0 as GLfloat, byval v1 as GLfloat, byval v2 as GLfloat)
  655 type PFNGLUNIFORM4FPROC as sub(byval location as GLint, byval v0 as GLfloat, byval v1 as GLfloat, byval v2 as GLfloat, byval v3 as GLfloat)
  656 type PFNGLUNIFORM1IPROC as sub(byval location as GLint, byval v0 as GLint)
  657 type PFNGLUNIFORM2IPROC as sub(byval location as GLint, byval v0 as GLint, byval v1 as GLint)
  658 type PFNGLUNIFORM3IPROC as sub(byval location as GLint, byval v0 as GLint, byval v1 as GLint, byval v2 as GLint)
  659 type PFNGLUNIFORM4IPROC as sub(byval location as GLint, byval v0 as GLint, byval v1 as GLint, byval v2 as GLint, byval v3 as GLint)
  660 type PFNGLUNIFORM1FVPROC as sub(byval location as GLint, byval count as GLsizei, byval value as const GLfloat ptr)
  661 type PFNGLUNIFORM2FVPROC as sub(byval location as GLint, byval count as GLsizei, byval value as const GLfloat ptr)
  662 type PFNGLUNIFORM3FVPROC as sub(byval location as GLint, byval count as GLsizei, byval value as const GLfloat ptr)
  663 type PFNGLUNIFORM4FVPROC as sub(byval location as GLint, byval count as GLsizei, byval value as const GLfloat ptr)
  664 type PFNGLUNIFORM1IVPROC as sub(byval location as GLint, byval count as GLsizei, byval value as const GLint ptr)
  665 type PFNGLUNIFORM2IVPROC as sub(byval location as GLint, byval count as GLsizei, byval value as const GLint ptr)
  666 type PFNGLUNIFORM3IVPROC as sub(byval location as GLint, byval count as GLsizei, byval value as const GLint ptr)
  667 type PFNGLUNIFORM4IVPROC as sub(byval location as GLint, byval count as GLsizei, byval value as const GLint ptr)
  668 type PFNGLUNIFORMMATRIX2FVPROC as sub(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
  669 type PFNGLUNIFORMMATRIX3FVPROC as sub(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
  670 type PFNGLUNIFORMMATRIX4FVPROC as sub(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
  671 type PFNGLVALIDATEPROGRAMPROC as sub(byval program as GLuint)
  672 type PFNGLVERTEXATTRIB1DPROC as sub(byval index as GLuint, byval x as GLdouble)
  673 type PFNGLVERTEXATTRIB1DVPROC as sub(byval index as GLuint, byval v as const GLdouble ptr)
  674 type PFNGLVERTEXATTRIB1FPROC as sub(byval index as GLuint, byval x as GLfloat)
  675 type PFNGLVERTEXATTRIB1FVPROC as sub(byval index as GLuint, byval v as const GLfloat ptr)
  676 type PFNGLVERTEXATTRIB1SPROC as sub(byval index as GLuint, byval x as GLshort)
  677 type PFNGLVERTEXATTRIB1SVPROC as sub(byval index as GLuint, byval v as const GLshort ptr)
  678 type PFNGLVERTEXATTRIB2DPROC as sub(byval index as GLuint, byval x as GLdouble, byval y as GLdouble)
  679 type PFNGLVERTEXATTRIB2DVPROC as sub(byval index as GLuint, byval v as const GLdouble ptr)
  680 type PFNGLVERTEXATTRIB2FPROC as sub(byval index as GLuint, byval x as GLfloat, byval y as GLfloat)
  681 type PFNGLVERTEXATTRIB2FVPROC as sub(byval index as GLuint, byval v as const GLfloat ptr)
  682 type PFNGLVERTEXATTRIB2SPROC as sub(byval index as GLuint, byval x as GLshort, byval y as GLshort)
  683 type PFNGLVERTEXATTRIB2SVPROC as sub(byval index as GLuint, byval v as const GLshort ptr)
  684 type PFNGLVERTEXATTRIB3DPROC as sub(byval index as GLuint, byval x as GLdouble, byval y as GLdouble, byval z as GLdouble)
  685 type PFNGLVERTEXATTRIB3DVPROC as sub(byval index as GLuint, byval v as const GLdouble ptr)
  686 type PFNGLVERTEXATTRIB3FPROC as sub(byval index as GLuint, byval x as GLfloat, byval y as GLfloat, byval z as GLfloat)
  687 type PFNGLVERTEXATTRIB3FVPROC as sub(byval index as GLuint, byval v as const GLfloat ptr)
  688 type PFNGLVERTEXATTRIB3SPROC as sub(byval index as GLuint, byval x as GLshort, byval y as GLshort, byval z as GLshort)
  689 type PFNGLVERTEXATTRIB3SVPROC as sub(byval index as GLuint, byval v as const GLshort ptr)
  690 type PFNGLVERTEXATTRIB4NBVPROC as sub(byval index as GLuint, byval v as const GLbyte ptr)
  691 type PFNGLVERTEXATTRIB4NIVPROC as sub(byval index as GLuint, byval v as const GLint ptr)
  692 type PFNGLVERTEXATTRIB4NSVPROC as sub(byval index as GLuint, byval v as const GLshort ptr)
  693 type PFNGLVERTEXATTRIB4NUBPROC as sub(byval index as GLuint, byval x as GLubyte, byval y as GLubyte, byval z as GLubyte, byval w as GLubyte)
  694 type PFNGLVERTEXATTRIB4NUBVPROC as sub(byval index as GLuint, byval v as const GLubyte ptr)
  695 type PFNGLVERTEXATTRIB4NUIVPROC as sub(byval index as GLuint, byval v as const GLuint ptr)
  696 type PFNGLVERTEXATTRIB4NUSVPROC as sub(byval index as GLuint, byval v as const GLushort ptr)
  697 type PFNGLVERTEXATTRIB4BVPROC as sub(byval index as GLuint, byval v as const GLbyte ptr)
  698 type PFNGLVERTEXATTRIB4DPROC as sub(byval index as GLuint, byval x as GLdouble, byval y as GLdouble, byval z as GLdouble, byval w as GLdouble)
  699 type PFNGLVERTEXATTRIB4DVPROC as sub(byval index as GLuint, byval v as const GLdouble ptr)
  700 type PFNGLVERTEXATTRIB4FPROC as sub(byval index as GLuint, byval x as GLfloat, byval y as GLfloat, byval z as GLfloat, byval w as GLfloat)
  701 type PFNGLVERTEXATTRIB4FVPROC as sub(byval index as GLuint, byval v as const GLfloat ptr)
  702 type PFNGLVERTEXATTRIB4IVPROC as sub(byval index as GLuint, byval v as const GLint ptr)
  703 type PFNGLVERTEXATTRIB4SPROC as sub(byval index as GLuint, byval x as GLshort, byval y as GLshort, byval z as GLshort, byval w as GLshort)
  704 type PFNGLVERTEXATTRIB4SVPROC as sub(byval index as GLuint, byval v as const GLshort ptr)
  705 type PFNGLVERTEXATTRIB4UBVPROC as sub(byval index as GLuint, byval v as const GLubyte ptr)
  706 type PFNGLVERTEXATTRIB4UIVPROC as sub(byval index as GLuint, byval v as const GLuint ptr)
  707 type PFNGLVERTEXATTRIB4USVPROC as sub(byval index as GLuint, byval v as const GLushort ptr)
  708 type PFNGLVERTEXATTRIBPOINTERPROC as sub(byval index as GLuint, byval size as GLint, byval type as GLenum, byval normalized as GLboolean, byval stride as GLsizei, byval pointer as const any ptr)
  709 
  710 #ifdef GL_GLEXT_PROTOTYPES
  711     declare sub glBlendEquationSeparate(byval modeRGB as GLenum, byval modeAlpha as GLenum)
  712     declare sub glDrawBuffers(byval n as GLsizei, byval bufs as const GLenum ptr)
  713     declare sub glStencilOpSeparate(byval face as GLenum, byval sfail as GLenum, byval dpfail as GLenum, byval dppass as GLenum)
  714     declare sub glStencilFuncSeparate(byval face as GLenum, byval func as GLenum, byval ref as GLint, byval mask as GLuint)
  715     declare sub glStencilMaskSeparate(byval face as GLenum, byval mask as GLuint)
  716     declare sub glAttachShader(byval program as GLuint, byval shader as GLuint)
  717     declare sub glBindAttribLocation(byval program as GLuint, byval index as GLuint, byval name as const GLchar ptr)
  718     declare sub glCompileShader(byval shader as GLuint)
  719     declare function glCreateProgram() as GLuint
  720     declare function glCreateShader(byval type as GLenum) as GLuint
  721     declare sub glDeleteProgram(byval program as GLuint)
  722     declare sub glDeleteShader(byval shader as GLuint)
  723     declare sub glDetachShader(byval program as GLuint, byval shader as GLuint)
  724     declare sub glDisableVertexAttribArray(byval index as GLuint)
  725     declare sub glEnableVertexAttribArray(byval index as GLuint)
  726     declare sub glGetActiveAttrib(byval program as GLuint, byval index as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval size as GLint ptr, byval type as GLenum ptr, byval name as GLchar ptr)
  727     declare sub glGetActiveUniform(byval program as GLuint, byval index as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval size as GLint ptr, byval type as GLenum ptr, byval name as GLchar ptr)
  728     declare sub glGetAttachedShaders(byval program as GLuint, byval maxCount as GLsizei, byval count as GLsizei ptr, byval shaders as GLuint ptr)
  729     declare function glGetAttribLocation(byval program as GLuint, byval name as const GLchar ptr) as GLint
  730     declare sub glGetProgramiv(byval program as GLuint, byval pname as GLenum, byval params as GLint ptr)
  731     declare sub glGetProgramInfoLog(byval program as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval infoLog as GLchar ptr)
  732     declare sub glGetShaderiv(byval shader as GLuint, byval pname as GLenum, byval params as GLint ptr)
  733     declare sub glGetShaderInfoLog(byval shader as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval infoLog as GLchar ptr)
  734     declare sub glGetShaderSource(byval shader as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval source as GLchar ptr)
  735     declare function glGetUniformLocation(byval program as GLuint, byval name as const GLchar ptr) as GLint
  736     declare sub glGetUniformfv(byval program as GLuint, byval location as GLint, byval params as GLfloat ptr)
  737     declare sub glGetUniformiv(byval program as GLuint, byval location as GLint, byval params as GLint ptr)
  738     declare sub glGetVertexAttribdv(byval index as GLuint, byval pname as GLenum, byval params as GLdouble ptr)
  739     declare sub glGetVertexAttribfv(byval index as GLuint, byval pname as GLenum, byval params as GLfloat ptr)
  740     declare sub glGetVertexAttribiv(byval index as GLuint, byval pname as GLenum, byval params as GLint ptr)
  741     declare sub glGetVertexAttribPointerv(byval index as GLuint, byval pname as GLenum, byval pointer as any ptr ptr)
  742     declare function glIsProgram(byval program as GLuint) as GLboolean
  743     declare function glIsShader(byval shader as GLuint) as GLboolean
  744     declare sub glLinkProgram(byval program as GLuint)
  745     declare sub glShaderSource(byval shader as GLuint, byval count as GLsizei, byval string as const GLchar const ptr ptr, byval length as const GLint ptr)
  746     declare sub glUseProgram(byval program as GLuint)
  747     declare sub glUniform1f(byval location as GLint, byval v0 as GLfloat)
  748     declare sub glUniform2f(byval location as GLint, byval v0 as GLfloat, byval v1 as GLfloat)
  749     declare sub glUniform3f(byval location as GLint, byval v0 as GLfloat, byval v1 as GLfloat, byval v2 as GLfloat)
  750     declare sub glUniform4f(byval location as GLint, byval v0 as GLfloat, byval v1 as GLfloat, byval v2 as GLfloat, byval v3 as GLfloat)
  751     declare sub glUniform1i(byval location as GLint, byval v0 as GLint)
  752     declare sub glUniform2i(byval location as GLint, byval v0 as GLint, byval v1 as GLint)
  753     declare sub glUniform3i(byval location as GLint, byval v0 as GLint, byval v1 as GLint, byval v2 as GLint)
  754     declare sub glUniform4i(byval location as GLint, byval v0 as GLint, byval v1 as GLint, byval v2 as GLint, byval v3 as GLint)
  755     declare sub glUniform1fv(byval location as GLint, byval count as GLsizei, byval value as const GLfloat ptr)
  756     declare sub glUniform2fv(byval location as GLint, byval count as GLsizei, byval value as const GLfloat ptr)
  757     declare sub glUniform3fv(byval location as GLint, byval count as GLsizei, byval value as const GLfloat ptr)
  758     declare sub glUniform4fv(byval location as GLint, byval count as GLsizei, byval value as const GLfloat ptr)
  759     declare sub glUniform1iv(byval location as GLint, byval count as GLsizei, byval value as const GLint ptr)
  760     declare sub glUniform2iv(byval location as GLint, byval count as GLsizei, byval value as const GLint ptr)
  761     declare sub glUniform3iv(byval location as GLint, byval count as GLsizei, byval value as const GLint ptr)
  762     declare sub glUniform4iv(byval location as GLint, byval count as GLsizei, byval value as const GLint ptr)
  763     declare sub glUniformMatrix2fv(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
  764     declare sub glUniformMatrix3fv(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
  765     declare sub glUniformMatrix4fv(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
  766     declare sub glValidateProgram(byval program as GLuint)
  767     declare sub glVertexAttrib1d(byval index as GLuint, byval x as GLdouble)
  768     declare sub glVertexAttrib1dv(byval index as GLuint, byval v as const GLdouble ptr)
  769     declare sub glVertexAttrib1f(byval index as GLuint, byval x as GLfloat)
  770     declare sub glVertexAttrib1fv(byval index as GLuint, byval v as const GLfloat ptr)
  771     declare sub glVertexAttrib1s(byval index as GLuint, byval x as GLshort)
  772     declare sub glVertexAttrib1sv(byval index as GLuint, byval v as const GLshort ptr)
  773     declare sub glVertexAttrib2d(byval index as GLuint, byval x as GLdouble, byval y as GLdouble)
  774     declare sub glVertexAttrib2dv(byval index as GLuint, byval v as const GLdouble ptr)
  775     declare sub glVertexAttrib2f(byval index as GLuint, byval x as GLfloat, byval y as GLfloat)
  776     declare sub glVertexAttrib2fv(byval index as GLuint, byval v as const GLfloat ptr)
  777     declare sub glVertexAttrib2s(byval index as GLuint, byval x as GLshort, byval y as GLshort)
  778     declare sub glVertexAttrib2sv(byval index as GLuint, byval v as const GLshort ptr)
  779     declare sub glVertexAttrib3d(byval index as GLuint, byval x as GLdouble, byval y as GLdouble, byval z as GLdouble)
  780     declare sub glVertexAttrib3dv(byval index as GLuint, byval v as const GLdouble ptr)
  781     declare sub glVertexAttrib3f(byval index as GLuint, byval x as GLfloat, byval y as GLfloat, byval z as GLfloat)
  782     declare sub glVertexAttrib3fv(byval index as GLuint, byval v as const GLfloat ptr)
  783     declare sub glVertexAttrib3s(byval index as GLuint, byval x as GLshort, byval y as GLshort, byval z as GLshort)
  784     declare sub glVertexAttrib3sv(byval index as GLuint, byval v as const GLshort ptr)
  785     declare sub glVertexAttrib4Nbv(byval index as GLuint, byval v as const GLbyte ptr)
  786     declare sub glVertexAttrib4Niv(byval index as GLuint, byval v as const GLint ptr)
  787     declare sub glVertexAttrib4Nsv(byval index as GLuint, byval v as const GLshort ptr)
  788     declare sub glVertexAttrib4Nub(byval index as GLuint, byval x as GLubyte, byval y as GLubyte, byval z as GLubyte, byval w as GLubyte)
  789     declare sub glVertexAttrib4Nubv(byval index as GLuint, byval v as const GLubyte ptr)
  790     declare sub glVertexAttrib4Nuiv(byval index as GLuint, byval v as const GLuint ptr)
  791     declare sub glVertexAttrib4Nusv(byval index as GLuint, byval v as const GLushort ptr)
  792     declare sub glVertexAttrib4bv(byval index as GLuint, byval v as const GLbyte ptr)
  793     declare sub glVertexAttrib4d(byval index as GLuint, byval x as GLdouble, byval y as GLdouble, byval z as GLdouble, byval w as GLdouble)
  794     declare sub glVertexAttrib4dv(byval index as GLuint, byval v as const GLdouble ptr)
  795     declare sub glVertexAttrib4f(byval index as GLuint, byval x as GLfloat, byval y as GLfloat, byval z as GLfloat, byval w as GLfloat)
  796     declare sub glVertexAttrib4fv(byval index as GLuint, byval v as const GLfloat ptr)
  797     declare sub glVertexAttrib4iv(byval index as GLuint, byval v as const GLint ptr)
  798     declare sub glVertexAttrib4s(byval index as GLuint, byval x as GLshort, byval y as GLshort, byval z as GLshort, byval w as GLshort)
  799     declare sub glVertexAttrib4sv(byval index as GLuint, byval v as const GLshort ptr)
  800     declare sub glVertexAttrib4ubv(byval index as GLuint, byval v as const GLubyte ptr)
  801     declare sub glVertexAttrib4uiv(byval index as GLuint, byval v as const GLuint ptr)
  802     declare sub glVertexAttrib4usv(byval index as GLuint, byval v as const GLushort ptr)
  803     declare sub glVertexAttribPointer(byval index as GLuint, byval size as GLint, byval type as GLenum, byval normalized as GLboolean, byval stride as GLsizei, byval pointer as const any ptr)
  804 #endif
  805 
  806 const GL_VERSION_2_1 = 1
  807 const GL_PIXEL_PACK_BUFFER = &h88EB
  808 const GL_PIXEL_UNPACK_BUFFER = &h88EC
  809 const GL_PIXEL_PACK_BUFFER_BINDING = &h88ED
  810 const GL_PIXEL_UNPACK_BUFFER_BINDING = &h88EF
  811 const GL_FLOAT_MAT2x3 = &h8B65
  812 const GL_FLOAT_MAT2x4 = &h8B66
  813 const GL_FLOAT_MAT3x2 = &h8B67
  814 const GL_FLOAT_MAT3x4 = &h8B68
  815 const GL_FLOAT_MAT4x2 = &h8B69
  816 const GL_FLOAT_MAT4x3 = &h8B6A
  817 const GL_SRGB = &h8C40
  818 const GL_SRGB8 = &h8C41
  819 const GL_SRGB_ALPHA = &h8C42
  820 const GL_SRGB8_ALPHA8 = &h8C43
  821 const GL_COMPRESSED_SRGB = &h8C48
  822 const GL_COMPRESSED_SRGB_ALPHA = &h8C49
  823 const GL_CURRENT_RASTER_SECONDARY_COLOR = &h845F
  824 const GL_SLUMINANCE_ALPHA = &h8C44
  825 const GL_SLUMINANCE8_ALPHA8 = &h8C45
  826 const GL_SLUMINANCE = &h8C46
  827 const GL_SLUMINANCE8 = &h8C47
  828 const GL_COMPRESSED_SLUMINANCE = &h8C4A
  829 const GL_COMPRESSED_SLUMINANCE_ALPHA = &h8C4B
  830 
  831 type PFNGLUNIFORMMATRIX2X3FVPROC as sub(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
  832 type PFNGLUNIFORMMATRIX3X2FVPROC as sub(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
  833 type PFNGLUNIFORMMATRIX2X4FVPROC as sub(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
  834 type PFNGLUNIFORMMATRIX4X2FVPROC as sub(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
  835 type PFNGLUNIFORMMATRIX3X4FVPROC as sub(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
  836 type PFNGLUNIFORMMATRIX4X3FVPROC as sub(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
  837 
  838 #ifdef GL_GLEXT_PROTOTYPES
  839     declare sub glUniformMatrix2x3fv(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
  840     declare sub glUniformMatrix3x2fv(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
  841     declare sub glUniformMatrix2x4fv(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
  842     declare sub glUniformMatrix4x2fv(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
  843     declare sub glUniformMatrix3x4fv(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
  844     declare sub glUniformMatrix4x3fv(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
  845 #endif
  846 
  847 const GL_VERSION_3_0 = 1
  848 type GLhalf as ushort
  849 const GL_COMPARE_REF_TO_TEXTURE = &h884E
  850 const GL_CLIP_DISTANCE0 = &h3000
  851 const GL_CLIP_DISTANCE1 = &h3001
  852 const GL_CLIP_DISTANCE2 = &h3002
  853 const GL_CLIP_DISTANCE3 = &h3003
  854 const GL_CLIP_DISTANCE4 = &h3004
  855 const GL_CLIP_DISTANCE5 = &h3005
  856 const GL_CLIP_DISTANCE6 = &h3006
  857 const GL_CLIP_DISTANCE7 = &h3007
  858 const GL_MAX_CLIP_DISTANCES = &h0D32
  859 const GL_MAJOR_VERSION = &h821B
  860 const GL_MINOR_VERSION = &h821C
  861 const GL_NUM_EXTENSIONS = &h821D
  862 const GL_CONTEXT_FLAGS = &h821E
  863 const GL_COMPRESSED_RED = &h8225
  864 const GL_COMPRESSED_RG = &h8226
  865 const GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = &h00000001
  866 const GL_RGBA32F = &h8814
  867 const GL_RGB32F = &h8815
  868 const GL_RGBA16F = &h881A
  869 const GL_RGB16F = &h881B
  870 const GL_VERTEX_ATTRIB_ARRAY_INTEGER = &h88FD
  871 const GL_MAX_ARRAY_TEXTURE_LAYERS = &h88FF
  872 const GL_MIN_PROGRAM_TEXEL_OFFSET = &h8904
  873 const GL_MAX_PROGRAM_TEXEL_OFFSET = &h8905
  874 const GL_CLAMP_READ_COLOR = &h891C
  875 const GL_FIXED_ONLY = &h891D
  876 const GL_MAX_VARYING_COMPONENTS = &h8B4B
  877 const GL_TEXTURE_1D_ARRAY = &h8C18
  878 const GL_PROXY_TEXTURE_1D_ARRAY = &h8C19
  879 const GL_TEXTURE_2D_ARRAY = &h8C1A
  880 const GL_PROXY_TEXTURE_2D_ARRAY = &h8C1B
  881 const GL_TEXTURE_BINDING_1D_ARRAY = &h8C1C
  882 const GL_TEXTURE_BINDING_2D_ARRAY = &h8C1D
  883 const GL_R11F_G11F_B10F = &h8C3A
  884 const GL_UNSIGNED_INT_10F_11F_11F_REV = &h8C3B
  885 const GL_RGB9_E5 = &h8C3D
  886 const GL_UNSIGNED_INT_5_9_9_9_REV = &h8C3E
  887 const GL_TEXTURE_SHARED_SIZE = &h8C3F
  888 const GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = &h8C76
  889 const GL_TRANSFORM_FEEDBACK_BUFFER_MODE = &h8C7F
  890 const GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = &h8C80
  891 const GL_TRANSFORM_FEEDBACK_VARYINGS = &h8C83
  892 const GL_TRANSFORM_FEEDBACK_BUFFER_START = &h8C84
  893 const GL_TRANSFORM_FEEDBACK_BUFFER_SIZE = &h8C85
  894 const GL_PRIMITIVES_GENERATED = &h8C87
  895 const GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = &h8C88
  896 const GL_RASTERIZER_DISCARD = &h8C89
  897 const GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = &h8C8A
  898 const GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = &h8C8B
  899 const GL_INTERLEAVED_ATTRIBS = &h8C8C
  900 const GL_SEPARATE_ATTRIBS = &h8C8D
  901 const GL_TRANSFORM_FEEDBACK_BUFFER = &h8C8E
  902 const GL_TRANSFORM_FEEDBACK_BUFFER_BINDING = &h8C8F
  903 const GL_RGBA32UI = &h8D70
  904 const GL_RGB32UI = &h8D71
  905 const GL_RGBA16UI = &h8D76
  906 const GL_RGB16UI = &h8D77
  907 const GL_RGBA8UI = &h8D7C
  908 const GL_RGB8UI = &h8D7D
  909 const GL_RGBA32I = &h8D82
  910 const GL_RGB32I = &h8D83
  911 const GL_RGBA16I = &h8D88
  912 const GL_RGB16I = &h8D89
  913 const GL_RGBA8I = &h8D8E
  914 const GL_RGB8I = &h8D8F
  915 const GL_RED_INTEGER = &h8D94
  916 const GL_GREEN_INTEGER = &h8D95
  917 const GL_BLUE_INTEGER = &h8D96
  918 const GL_RGB_INTEGER = &h8D98
  919 const GL_RGBA_INTEGER = &h8D99
  920 const GL_BGR_INTEGER = &h8D9A
  921 const GL_BGRA_INTEGER = &h8D9B
  922 const GL_SAMPLER_1D_ARRAY = &h8DC0
  923 const GL_SAMPLER_2D_ARRAY = &h8DC1
  924 const GL_SAMPLER_1D_ARRAY_SHADOW = &h8DC3
  925 const GL_SAMPLER_2D_ARRAY_SHADOW = &h8DC4
  926 const GL_SAMPLER_CUBE_SHADOW = &h8DC5
  927 const GL_UNSIGNED_INT_VEC2 = &h8DC6
  928 const GL_UNSIGNED_INT_VEC3 = &h8DC7
  929 const GL_UNSIGNED_INT_VEC4 = &h8DC8
  930 const GL_INT_SAMPLER_1D = &h8DC9
  931 const GL_INT_SAMPLER_2D = &h8DCA
  932 const GL_INT_SAMPLER_3D = &h8DCB
  933 const GL_INT_SAMPLER_CUBE = &h8DCC
  934 const GL_INT_SAMPLER_1D_ARRAY = &h8DCE
  935 const GL_INT_SAMPLER_2D_ARRAY = &h8DCF
  936 const GL_UNSIGNED_INT_SAMPLER_1D = &h8DD1
  937 const GL_UNSIGNED_INT_SAMPLER_2D = &h8DD2
  938 const GL_UNSIGNED_INT_SAMPLER_3D = &h8DD3
  939 const GL_UNSIGNED_INT_SAMPLER_CUBE = &h8DD4
  940 const GL_UNSIGNED_INT_SAMPLER_1D_ARRAY = &h8DD6
  941 const GL_UNSIGNED_INT_SAMPLER_2D_ARRAY = &h8DD7
  942 const GL_QUERY_WAIT = &h8E13
  943 const GL_QUERY_NO_WAIT = &h8E14
  944 const GL_QUERY_BY_REGION_WAIT = &h8E15
  945 const GL_QUERY_BY_REGION_NO_WAIT = &h8E16
  946 const GL_BUFFER_ACCESS_FLAGS = &h911F
  947 const GL_BUFFER_MAP_LENGTH = &h9120
  948 const GL_BUFFER_MAP_OFFSET = &h9121
  949 const GL_DEPTH_COMPONENT32F = &h8CAC
  950 const GL_DEPTH32F_STENCIL8 = &h8CAD
  951 const GL_FLOAT_32_UNSIGNED_INT_24_8_REV = &h8DAD
  952 const GL_INVALID_FRAMEBUFFER_OPERATION = &h0506
  953 const GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = &h8210
  954 const GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = &h8211
  955 const GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE = &h8212
  956 const GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = &h8213
  957 const GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = &h8214
  958 const GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = &h8215
  959 const GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = &h8216
  960 const GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = &h8217
  961 const GL_FRAMEBUFFER_DEFAULT = &h8218
  962 const GL_FRAMEBUFFER_UNDEFINED = &h8219
  963 const GL_DEPTH_STENCIL_ATTACHMENT = &h821A
  964 const GL_MAX_RENDERBUFFER_SIZE = &h84E8
  965 const GL_DEPTH_STENCIL = &h84F9
  966 const GL_UNSIGNED_INT_24_8 = &h84FA
  967 const GL_DEPTH24_STENCIL8 = &h88F0
  968 const GL_TEXTURE_STENCIL_SIZE = &h88F1
  969 const GL_TEXTURE_RED_TYPE = &h8C10
  970 const GL_TEXTURE_GREEN_TYPE = &h8C11
  971 const GL_TEXTURE_BLUE_TYPE = &h8C12
  972 const GL_TEXTURE_ALPHA_TYPE = &h8C13
  973 const GL_TEXTURE_DEPTH_TYPE = &h8C16
  974 const GL_UNSIGNED_NORMALIZED = &h8C17
  975 const GL_FRAMEBUFFER_BINDING = &h8CA6
  976 const GL_DRAW_FRAMEBUFFER_BINDING = &h8CA6
  977 const GL_RENDERBUFFER_BINDING = &h8CA7
  978 const GL_READ_FRAMEBUFFER = &h8CA8
  979 const GL_DRAW_FRAMEBUFFER = &h8CA9
  980 const GL_READ_FRAMEBUFFER_BINDING = &h8CAA
  981 const GL_RENDERBUFFER_SAMPLES = &h8CAB
  982 const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = &h8CD0
  983 const GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = &h8CD1
  984 const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = &h8CD2
  985 const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = &h8CD3
  986 const GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = &h8CD4
  987 const GL_FRAMEBUFFER_COMPLETE = &h8CD5
  988 const GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = &h8CD6
  989 const GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = &h8CD7
  990 const GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = &h8CDB
  991 const GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER = &h8CDC
  992 const GL_FRAMEBUFFER_UNSUPPORTED = &h8CDD
  993 const GL_MAX_COLOR_ATTACHMENTS = &h8CDF
  994 const GL_COLOR_ATTACHMENT0 = &h8CE0
  995 const GL_COLOR_ATTACHMENT1 = &h8CE1
  996 const GL_COLOR_ATTACHMENT2 = &h8CE2
  997 const GL_COLOR_ATTACHMENT3 = &h8CE3
  998 const GL_COLOR_ATTACHMENT4 = &h8CE4
  999 const GL_COLOR_ATTACHMENT5 = &h8CE5
 1000 const GL_COLOR_ATTACHMENT6 = &h8CE6
 1001 const GL_COLOR_ATTACHMENT7 = &h8CE7
 1002 const GL_COLOR_ATTACHMENT8 = &h8CE8
 1003 const GL_COLOR_ATTACHMENT9 = &h8CE9
 1004 const GL_COLOR_ATTACHMENT10 = &h8CEA
 1005 const GL_COLOR_ATTACHMENT11 = &h8CEB
 1006 const GL_COLOR_ATTACHMENT12 = &h8CEC
 1007 const GL_COLOR_ATTACHMENT13 = &h8CED
 1008 const GL_COLOR_ATTACHMENT14 = &h8CEE
 1009 const GL_COLOR_ATTACHMENT15 = &h8CEF
 1010 const GL_DEPTH_ATTACHMENT = &h8D00
 1011 const GL_STENCIL_ATTACHMENT = &h8D20
 1012 const GL_FRAMEBUFFER = &h8D40
 1013 const GL_RENDERBUFFER = &h8D41
 1014 const GL_RENDERBUFFER_WIDTH = &h8D42
 1015 const GL_RENDERBUFFER_HEIGHT = &h8D43
 1016 const GL_RENDERBUFFER_INTERNAL_FORMAT = &h8D44
 1017 const GL_STENCIL_INDEX1 = &h8D46
 1018 const GL_STENCIL_INDEX4 = &h8D47
 1019 const GL_STENCIL_INDEX8 = &h8D48
 1020 const GL_STENCIL_INDEX16 = &h8D49
 1021 const GL_RENDERBUFFER_RED_SIZE = &h8D50
 1022 const GL_RENDERBUFFER_GREEN_SIZE = &h8D51
 1023 const GL_RENDERBUFFER_BLUE_SIZE = &h8D52
 1024 const GL_RENDERBUFFER_ALPHA_SIZE = &h8D53
 1025 const GL_RENDERBUFFER_DEPTH_SIZE = &h8D54
 1026 const GL_RENDERBUFFER_STENCIL_SIZE = &h8D55
 1027 const GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = &h8D56
 1028 const GL_MAX_SAMPLES = &h8D57
 1029 const GL_INDEX = &h8222
 1030 const GL_TEXTURE_LUMINANCE_TYPE = &h8C14
 1031 const GL_TEXTURE_INTENSITY_TYPE = &h8C15
 1032 const GL_FRAMEBUFFER_SRGB = &h8DB9
 1033 const GL_HALF_FLOAT = &h140B
 1034 const GL_MAP_READ_BIT = &h0001
 1035 const GL_MAP_WRITE_BIT = &h0002
 1036 const GL_MAP_INVALIDATE_RANGE_BIT = &h0004
 1037 const GL_MAP_INVALIDATE_BUFFER_BIT = &h0008
 1038 const GL_MAP_FLUSH_EXPLICIT_BIT = &h0010
 1039 const GL_MAP_UNSYNCHRONIZED_BIT = &h0020
 1040 const GL_COMPRESSED_RED_RGTC1 = &h8DBB
 1041 const GL_COMPRESSED_SIGNED_RED_RGTC1 = &h8DBC
 1042 const GL_COMPRESSED_RG_RGTC2 = &h8DBD
 1043 const GL_COMPRESSED_SIGNED_RG_RGTC2 = &h8DBE
 1044 const GL_RG = &h8227
 1045 const GL_RG_INTEGER = &h8228
 1046 const GL_R8 = &h8229
 1047 const GL_R16 = &h822A
 1048 const GL_RG8 = &h822B
 1049 const GL_RG16 = &h822C
 1050 const GL_R16F = &h822D
 1051 const GL_R32F = &h822E
 1052 const GL_RG16F = &h822F
 1053 const GL_RG32F = &h8230
 1054 const GL_R8I = &h8231
 1055 const GL_R8UI = &h8232
 1056 const GL_R16I = &h8233
 1057 const GL_R16UI = &h8234
 1058 const GL_R32I = &h8235
 1059 const GL_R32UI = &h8236
 1060 const GL_RG8I = &h8237
 1061 const GL_RG8UI = &h8238
 1062 const GL_RG16I = &h8239
 1063 const GL_RG16UI = &h823A
 1064 const GL_RG32I = &h823B
 1065 const GL_RG32UI = &h823C
 1066 const GL_VERTEX_ARRAY_BINDING = &h85B5
 1067 const GL_CLAMP_VERTEX_COLOR = &h891A
 1068 const GL_CLAMP_FRAGMENT_COLOR = &h891B
 1069 const GL_ALPHA_INTEGER = &h8D97
 1070 
 1071 type PFNGLCOLORMASKIPROC as sub(byval index as GLuint, byval r as GLboolean, byval g as GLboolean, byval b as GLboolean, byval a as GLboolean)
 1072 type PFNGLGETBOOLEANI_VPROC as sub(byval target as GLenum, byval index as GLuint, byval data as GLboolean ptr)
 1073 type PFNGLGETINTEGERI_VPROC as sub(byval target as GLenum, byval index as GLuint, byval data as GLint ptr)
 1074 type PFNGLENABLEIPROC as sub(byval target as GLenum, byval index as GLuint)
 1075 type PFNGLDISABLEIPROC as sub(byval target as GLenum, byval index as GLuint)
 1076 type PFNGLISENABLEDIPROC as function(byval target as GLenum, byval index as GLuint) as GLboolean
 1077 type PFNGLBEGINTRANSFORMFEEDBACKPROC as sub(byval primitiveMode as GLenum)
 1078 type PFNGLENDTRANSFORMFEEDBACKPROC as sub()
 1079 type PFNGLBINDBUFFERRANGEPROC as sub(byval target as GLenum, byval index as GLuint, byval buffer as GLuint, byval offset as GLintptr, byval size as GLsizeiptr)
 1080 type PFNGLBINDBUFFERBASEPROC as sub(byval target as GLenum, byval index as GLuint, byval buffer as GLuint)
 1081 type PFNGLTRANSFORMFEEDBACKVARYINGSPROC as sub(byval program as GLuint, byval count as GLsizei, byval varyings as const GLchar const ptr ptr, byval bufferMode as GLenum)
 1082 type PFNGLGETTRANSFORMFEEDBACKVARYINGPROC as sub(byval program as GLuint, byval index as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval size as GLsizei ptr, byval type as GLenum ptr, byval name as GLchar ptr)
 1083 type PFNGLCLAMPCOLORPROC as sub(byval target as GLenum, byval clamp as GLenum)
 1084 type PFNGLBEGINCONDITIONALRENDERPROC as sub(byval id as GLuint, byval mode as GLenum)
 1085 type PFNGLENDCONDITIONALRENDERPROC as sub()
 1086 type PFNGLVERTEXATTRIBIPOINTERPROC as sub(byval index as GLuint, byval size as GLint, byval type as GLenum, byval stride as GLsizei, byval pointer as const any ptr)
 1087 type PFNGLGETVERTEXATTRIBIIVPROC as sub(byval index as GLuint, byval pname as GLenum, byval params as GLint ptr)
 1088 type PFNGLGETVERTEXATTRIBIUIVPROC as sub(byval index as GLuint, byval pname as GLenum, byval params as GLuint ptr)
 1089 type PFNGLVERTEXATTRIBI1IPROC as sub(byval index as GLuint, byval x as GLint)
 1090 type PFNGLVERTEXATTRIBI2IPROC as sub(byval index as GLuint, byval x as GLint, byval y as GLint)
 1091 type PFNGLVERTEXATTRIBI3IPROC as sub(byval index as GLuint, byval x as GLint, byval y as GLint, byval z as GLint)
 1092 type PFNGLVERTEXATTRIBI4IPROC as sub(byval index as GLuint, byval x as GLint, byval y as GLint, byval z as GLint, byval w as GLint)
 1093 type PFNGLVERTEXATTRIBI1UIPROC as sub(byval index as GLuint, byval x as GLuint)
 1094 type PFNGLVERTEXATTRIBI2UIPROC as sub(byval index as GLuint, byval x as GLuint, byval y as GLuint)
 1095 type PFNGLVERTEXATTRIBI3UIPROC as sub(byval index as GLuint, byval x as GLuint, byval y as GLuint, byval z as GLuint)
 1096 type PFNGLVERTEXATTRIBI4UIPROC as sub(byval index as GLuint, byval x as GLuint, byval y as GLuint, byval z as GLuint, byval w as GLuint)
 1097 type PFNGLVERTEXATTRIBI1IVPROC as sub(byval index as GLuint, byval v as const GLint ptr)
 1098 type PFNGLVERTEXATTRIBI2IVPROC as sub(byval index as GLuint, byval v as const GLint ptr)
 1099 type PFNGLVERTEXATTRIBI3IVPROC as sub(byval index as GLuint, byval v as const GLint ptr)
 1100 type PFNGLVERTEXATTRIBI4IVPROC as sub(byval index as GLuint, byval v as const GLint ptr)
 1101 type PFNGLVERTEXATTRIBI1UIVPROC as sub(byval index as GLuint, byval v as const GLuint ptr)
 1102 type PFNGLVERTEXATTRIBI2UIVPROC as sub(byval index as GLuint, byval v as const GLuint ptr)
 1103 type PFNGLVERTEXATTRIBI3UIVPROC as sub(byval index as GLuint, byval v as const GLuint ptr)
 1104 type PFNGLVERTEXATTRIBI4UIVPROC as sub(byval index as GLuint, byval v as const GLuint ptr)
 1105 type PFNGLVERTEXATTRIBI4BVPROC as sub(byval index as GLuint, byval v as const GLbyte ptr)
 1106 type PFNGLVERTEXATTRIBI4SVPROC as sub(byval index as GLuint, byval v as const GLshort ptr)
 1107 type PFNGLVERTEXATTRIBI4UBVPROC as sub(byval index as GLuint, byval v as const GLubyte ptr)
 1108 type PFNGLVERTEXATTRIBI4USVPROC as sub(byval index as GLuint, byval v as const GLushort ptr)
 1109 type PFNGLGETUNIFORMUIVPROC as sub(byval program as GLuint, byval location as GLint, byval params as GLuint ptr)
 1110 type PFNGLBINDFRAGDATALOCATIONPROC as sub(byval program as GLuint, byval color as GLuint, byval name as const GLchar ptr)
 1111 type PFNGLGETFRAGDATALOCATIONPROC as function(byval program as GLuint, byval name as const GLchar ptr) as GLint
 1112 type PFNGLUNIFORM1UIPROC as sub(byval location as GLint, byval v0 as GLuint)
 1113 type PFNGLUNIFORM2UIPROC as sub(byval location as GLint, byval v0 as GLuint, byval v1 as GLuint)
 1114 type PFNGLUNIFORM3UIPROC as sub(byval location as GLint, byval v0 as GLuint, byval v1 as GLuint, byval v2 as GLuint)
 1115 type PFNGLUNIFORM4UIPROC as sub(byval location as GLint, byval v0 as GLuint, byval v1 as GLuint, byval v2 as GLuint, byval v3 as GLuint)
 1116 type PFNGLUNIFORM1UIVPROC as sub(byval location as GLint, byval count as GLsizei, byval value as const GLuint ptr)
 1117 type PFNGLUNIFORM2UIVPROC as sub(byval location as GLint, byval count as GLsizei, byval value as const GLuint ptr)
 1118 type PFNGLUNIFORM3UIVPROC as sub(byval location as GLint, byval count as GLsizei, byval value as const GLuint ptr)
 1119 type PFNGLUNIFORM4UIVPROC as sub(byval location as GLint, byval count as GLsizei, byval value as const GLuint ptr)
 1120 type PFNGLTEXPARAMETERIIVPROC as sub(byval target as GLenum, byval pname as GLenum, byval params as const GLint ptr)
 1121 type PFNGLTEXPARAMETERIUIVPROC as sub(byval target as GLenum, byval pname as GLenum, byval params as const GLuint ptr)
 1122 type PFNGLGETTEXPARAMETERIIVPROC as sub(byval target as GLenum, byval pname as GLenum, byval params as GLint ptr)
 1123 type PFNGLGETTEXPARAMETERIUIVPROC as sub(byval target as GLenum, byval pname as GLenum, byval params as GLuint ptr)
 1124 type PFNGLCLEARBUFFERIVPROC as sub(byval buffer as GLenum, byval drawbuffer as GLint, byval value as const GLint ptr)
 1125 type PFNGLCLEARBUFFERUIVPROC as sub(byval buffer as GLenum, byval drawbuffer as GLint, byval value as const GLuint ptr)
 1126 type PFNGLCLEARBUFFERFVPROC as sub(byval buffer as GLenum, byval drawbuffer as GLint, byval value as const GLfloat ptr)
 1127 type PFNGLCLEARBUFFERFIPROC as sub(byval buffer as GLenum, byval drawbuffer as GLint, byval depth as GLfloat, byval stencil as GLint)
 1128 type PFNGLGETSTRINGIPROC as function(byval name as GLenum, byval index as GLuint) as const zstring ptr
 1129 type PFNGLISRENDERBUFFERPROC as function(byval renderbuffer as GLuint) as GLboolean
 1130 type PFNGLBINDRENDERBUFFERPROC as sub(byval target as GLenum, byval renderbuffer as GLuint)
 1131 type PFNGLDELETERENDERBUFFERSPROC as sub(byval n as GLsizei, byval renderbuffers as const GLuint ptr)
 1132 type PFNGLGENRENDERBUFFERSPROC as sub(byval n as GLsizei, byval renderbuffers as GLuint ptr)
 1133 type PFNGLRENDERBUFFERSTORAGEPROC as sub(byval target as GLenum, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei)
 1134 type PFNGLGETRENDERBUFFERPARAMETERIVPROC as sub(byval target as GLenum, byval pname as GLenum, byval params as GLint ptr)
 1135 type PFNGLISFRAMEBUFFERPROC as function(byval framebuffer as GLuint) as GLboolean
 1136 type PFNGLBINDFRAMEBUFFERPROC as sub(byval target as GLenum, byval framebuffer as GLuint)
 1137 type PFNGLDELETEFRAMEBUFFERSPROC as sub(byval n as GLsizei, byval framebuffers as const GLuint ptr)
 1138 type PFNGLGENFRAMEBUFFERSPROC as sub(byval n as GLsizei, byval framebuffers as GLuint ptr)
 1139 type PFNGLCHECKFRAMEBUFFERSTATUSPROC as function(byval target as GLenum) as GLenum
 1140 type PFNGLFRAMEBUFFERTEXTURE1DPROC as sub(byval target as GLenum, byval attachment as GLenum, byval textarget as GLenum, byval texture as GLuint, byval level as GLint)
 1141 type PFNGLFRAMEBUFFERTEXTURE2DPROC as sub(byval target as GLenum, byval attachment as GLenum, byval textarget as GLenum, byval texture as GLuint, byval level as GLint)
 1142 type PFNGLFRAMEBUFFERTEXTURE3DPROC as sub(byval target as GLenum, byval attachment as GLenum, byval textarget as GLenum, byval texture as GLuint, byval level as GLint, byval zoffset as GLint)
 1143 type PFNGLFRAMEBUFFERRENDERBUFFERPROC as sub(byval target as GLenum, byval attachment as GLenum, byval renderbuffertarget as GLenum, byval renderbuffer as GLuint)
 1144 type PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC as sub(byval target as GLenum, byval attachment as GLenum, byval pname as GLenum, byval params as GLint ptr)
 1145 type PFNGLGENERATEMIPMAPPROC as sub(byval target as GLenum)
 1146 type PFNGLBLITFRAMEBUFFERPROC as sub(byval srcX0 as GLint, byval srcY0 as GLint, byval srcX1 as GLint, byval srcY1 as GLint, byval dstX0 as GLint, byval dstY0 as GLint, byval dstX1 as GLint, byval dstY1 as GLint, byval mask as GLbitfield, byval filter as GLenum)
 1147 type PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC as sub(byval target as GLenum, byval samples as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei)
 1148 type PFNGLFRAMEBUFFERTEXTURELAYERPROC as sub(byval target as GLenum, byval attachment as GLenum, byval texture as GLuint, byval level as GLint, byval layer as GLint)
 1149 type PFNGLMAPBUFFERRANGEPROC as function(byval target as GLenum, byval offset as GLintptr, byval length as GLsizeiptr, byval access as GLbitfield) as any ptr
 1150 type PFNGLFLUSHMAPPEDBUFFERRANGEPROC as sub(byval target as GLenum, byval offset as GLintptr, byval length as GLsizeiptr)
 1151 type PFNGLBINDVERTEXARRAYPROC as sub(byval array as GLuint)
 1152 type PFNGLDELETEVERTEXARRAYSPROC as sub(byval n as GLsizei, byval arrays as const GLuint ptr)
 1153 type PFNGLGENVERTEXARRAYSPROC as sub(byval n as GLsizei, byval arrays as GLuint ptr)
 1154 type PFNGLISVERTEXARRAYPROC as function(byval array as GLuint) as GLboolean
 1155 
 1156 #ifdef GL_GLEXT_PROTOTYPES
 1157     declare sub glColorMaski(byval index as GLuint, byval r as GLboolean, byval g as GLboolean, byval b as GLboolean, byval a as GLboolean)
 1158     declare sub glGetBooleani_v(byval target as GLenum, byval index as GLuint, byval data as GLboolean ptr)
 1159     declare sub glGetIntegeri_v(byval target as GLenum, byval index as GLuint, byval data as GLint ptr)
 1160     declare sub glEnablei(byval target as GLenum, byval index as GLuint)
 1161     declare sub glDisablei(byval target as GLenum, byval index as GLuint)
 1162     declare function glIsEnabledi(byval target as GLenum, byval index as GLuint) as GLboolean
 1163     declare sub glBeginTransformFeedback(byval primitiveMode as GLenum)
 1164     declare sub glEndTransformFeedback()
 1165     declare sub glBindBufferRange(byval target as GLenum, byval index as GLuint, byval buffer as GLuint, byval offset as GLintptr, byval size as GLsizeiptr)
 1166     declare sub glBindBufferBase(byval target as GLenum, byval index as GLuint, byval buffer as GLuint)
 1167     declare sub glTransformFeedbackVaryings(byval program as GLuint, byval count as GLsizei, byval varyings as const GLchar const ptr ptr, byval bufferMode as GLenum)
 1168     declare sub glGetTransformFeedbackVarying(byval program as GLuint, byval index as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval size as GLsizei ptr, byval type as GLenum ptr, byval name as GLchar ptr)
 1169     declare sub glClampColor(byval target as GLenum, byval clamp as GLenum)
 1170     declare sub glBeginConditionalRender(byval id as GLuint, byval mode as GLenum)
 1171     declare sub glEndConditionalRender()
 1172     declare sub glVertexAttribIPointer(byval index as GLuint, byval size as GLint, byval type as GLenum, byval stride as GLsizei, byval pointer as const any ptr)
 1173     declare sub glGetVertexAttribIiv(byval index as GLuint, byval pname as GLenum, byval params as GLint ptr)
 1174     declare sub glGetVertexAttribIuiv(byval index as GLuint, byval pname as GLenum, byval params as GLuint ptr)
 1175     declare sub glVertexAttribI1i(byval index as GLuint, byval x as GLint)
 1176     declare sub glVertexAttribI2i(byval index as GLuint, byval x as GLint, byval y as GLint)
 1177     declare sub glVertexAttribI3i(byval index as GLuint, byval x as GLint, byval y as GLint, byval z as GLint)
 1178     declare sub glVertexAttribI4i(byval index as GLuint, byval x as GLint, byval y as GLint, byval z as GLint, byval w as GLint)
 1179     declare sub glVertexAttribI1ui(byval index as GLuint, byval x as GLuint)
 1180     declare sub glVertexAttribI2ui(byval index as GLuint, byval x as GLuint, byval y as GLuint)
 1181     declare sub glVertexAttribI3ui(byval index as GLuint, byval x as GLuint, byval y as GLuint, byval z as GLuint)
 1182     declare sub glVertexAttribI4ui(byval index as GLuint, byval x as GLuint, byval y as GLuint, byval z as GLuint, byval w as GLuint)
 1183     declare sub glVertexAttribI1iv(byval index as GLuint, byval v as const GLint ptr)
 1184     declare sub glVertexAttribI2iv(byval index as GLuint, byval v as const GLint ptr)
 1185     declare sub glVertexAttribI3iv(byval index as GLuint, byval v as const GLint ptr)
 1186     declare sub glVertexAttribI4iv(byval index as GLuint, byval v as const GLint ptr)
 1187     declare sub glVertexAttribI1uiv(byval index as GLuint, byval v as const GLuint ptr)
 1188     declare sub glVertexAttribI2uiv(byval index as GLuint, byval v as const GLuint ptr)
 1189     declare sub glVertexAttribI3uiv(byval index as GLuint, byval v as const GLuint ptr)
 1190     declare sub glVertexAttribI4uiv(byval index as GLuint, byval v as const GLuint ptr)
 1191     declare sub glVertexAttribI4bv(byval index as GLuint, byval v as const GLbyte ptr)
 1192     declare sub glVertexAttribI4sv(byval index as GLuint, byval v as const GLshort ptr)
 1193     declare sub glVertexAttribI4ubv(byval index as GLuint, byval v as const GLubyte ptr)
 1194     declare sub glVertexAttribI4usv(byval index as GLuint, byval v as const GLushort ptr)
 1195     declare sub glGetUniformuiv(byval program as GLuint, byval location as GLint, byval params as GLuint ptr)
 1196     declare sub glBindFragDataLocation(byval program as GLuint, byval color as GLuint, byval name as const GLchar ptr)
 1197     declare function glGetFragDataLocation(byval program as GLuint, byval name as const GLchar ptr) as GLint
 1198     declare sub glUniform1ui(byval location as GLint, byval v0 as GLuint)
 1199     declare sub glUniform2ui(byval location as GLint, byval v0 as GLuint, byval v1 as GLuint)
 1200     declare sub glUniform3ui(byval location as GLint, byval v0 as GLuint, byval v1 as GLuint, byval v2 as GLuint)
 1201     declare sub glUniform4ui(byval location as GLint, byval v0 as GLuint, byval v1 as GLuint, byval v2 as GLuint, byval v3 as GLuint)
 1202     declare sub glUniform1uiv(byval location as GLint, byval count as GLsizei, byval value as const GLuint ptr)
 1203     declare sub glUniform2uiv(byval location as GLint, byval count as GLsizei, byval value as const GLuint ptr)
 1204     declare sub glUniform3uiv(byval location as GLint, byval count as GLsizei, byval value as const GLuint ptr)
 1205     declare sub glUniform4uiv(byval location as GLint, byval count as GLsizei, byval value as const GLuint ptr)
 1206     declare sub glTexParameterIiv(byval target as GLenum, byval pname as GLenum, byval params as const GLint ptr)
 1207     declare sub glTexParameterIuiv(byval target as GLenum, byval pname as GLenum, byval params as const GLuint ptr)
 1208     declare sub glGetTexParameterIiv(byval target as GLenum, byval pname as GLenum, byval params as GLint ptr)
 1209     declare sub glGetTexParameterIuiv(byval target as GLenum, byval pname as GLenum, byval params as GLuint ptr)
 1210     declare sub glClearBufferiv(byval buffer as GLenum, byval drawbuffer as GLint, byval value as const GLint ptr)
 1211     declare sub glClearBufferuiv(byval buffer as GLenum, byval drawbuffer as GLint, byval value as const GLuint ptr)
 1212     declare sub glClearBufferfv(byval buffer as GLenum, byval drawbuffer as GLint, byval value as const GLfloat ptr)
 1213     declare sub glClearBufferfi(byval buffer as GLenum, byval drawbuffer as GLint, byval depth as GLfloat, byval stencil as GLint)
 1214     declare function glGetStringi(byval name as GLenum, byval index as GLuint) as const zstring ptr
 1215     declare function glIsRenderbuffer(byval renderbuffer as GLuint) as GLboolean
 1216     declare sub glBindRenderbuffer(byval target as GLenum, byval renderbuffer as GLuint)
 1217     declare sub glDeleteRenderbuffers(byval n as GLsizei, byval renderbuffers as const GLuint ptr)
 1218     declare sub glGenRenderbuffers(byval n as GLsizei, byval renderbuffers as GLuint ptr)
 1219     declare sub glRenderbufferStorage(byval target as GLenum, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei)
 1220     declare sub glGetRenderbufferParameteriv(byval target as GLenum, byval pname as GLenum, byval params as GLint ptr)
 1221     declare function glIsFramebuffer(byval framebuffer as GLuint) as GLboolean
 1222     declare sub glBindFramebuffer(byval target as GLenum, byval framebuffer as GLuint)
 1223     declare sub glDeleteFramebuffers(byval n as GLsizei, byval framebuffers as const GLuint ptr)
 1224     declare sub glGenFramebuffers(byval n as GLsizei, byval framebuffers as GLuint ptr)
 1225     declare function glCheckFramebufferStatus(byval target as GLenum) as GLenum
 1226     declare sub glFramebufferTexture1D(byval target as GLenum, byval attachment as GLenum, byval textarget as GLenum, byval texture as GLuint, byval level as GLint)
 1227     declare sub glFramebufferTexture2D(byval target as GLenum, byval attachment as GLenum, byval textarget as GLenum, byval texture as GLuint, byval level as GLint)
 1228     declare sub glFramebufferTexture3D(byval target as GLenum, byval attachment as GLenum, byval textarget as GLenum, byval texture as GLuint, byval level as GLint, byval zoffset as GLint)
 1229     declare sub glFramebufferRenderbuffer(byval target as GLenum, byval attachment as GLenum, byval renderbuffertarget as GLenum, byval renderbuffer as GLuint)
 1230     declare sub glGetFramebufferAttachmentParameteriv(byval target as GLenum, byval attachment as GLenum, byval pname as GLenum, byval params as GLint ptr)
 1231     declare sub glGenerateMipmap(byval target as GLenum)
 1232     declare sub glBlitFramebuffer(byval srcX0 as GLint, byval srcY0 as GLint, byval srcX1 as GLint, byval srcY1 as GLint, byval dstX0 as GLint, byval dstY0 as GLint, byval dstX1 as GLint, byval dstY1 as GLint, byval mask as GLbitfield, byval filter as GLenum)
 1233     declare sub glRenderbufferStorageMultisample(byval target as GLenum, byval samples as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei)
 1234     declare sub glFramebufferTextureLayer(byval target as GLenum, byval attachment as GLenum, byval texture as GLuint, byval level as GLint, byval layer as GLint)
 1235     declare function glMapBufferRange(byval target as GLenum, byval offset as GLintptr, byval length as GLsizeiptr, byval access as GLbitfield) as any ptr
 1236     declare sub glFlushMappedBufferRange(byval target as GLenum, byval offset as GLintptr, byval length as GLsizeiptr)
 1237     declare sub glBindVertexArray(byval array as GLuint)
 1238     declare sub glDeleteVertexArrays(byval n as GLsizei, byval arrays as const GLuint ptr)
 1239     declare sub glGenVertexArrays(byval n as GLsizei, byval arrays as GLuint ptr)
 1240     declare function glIsVertexArray(byval array as GLuint) as GLboolean
 1241 #endif
 1242 
 1243 const GL_VERSION_3_1 = 1
 1244 const GL_SAMPLER_2D_RECT = &h8B63
 1245 const GL_SAMPLER_2D_RECT_SHADOW = &h8B64
 1246 const GL_SAMPLER_BUFFER = &h8DC2
 1247 const GL_INT_SAMPLER_2D_RECT = &h8DCD
 1248 const GL_INT_SAMPLER_BUFFER = &h8DD0
 1249 const GL_UNSIGNED_INT_SAMPLER_2D_RECT = &h8DD5
 1250 const GL_UNSIGNED_INT_SAMPLER_BUFFER = &h8DD8
 1251 const GL_TEXTURE_BUFFER = &h8C2A
 1252 const GL_MAX_TEXTURE_BUFFER_SIZE = &h8C2B
 1253 const GL_TEXTURE_BINDING_BUFFER = &h8C2C
 1254 const GL_TEXTURE_BUFFER_DATA_STORE_BINDING = &h8C2D
 1255 const GL_TEXTURE_RECTANGLE = &h84F5
 1256 const GL_TEXTURE_BINDING_RECTANGLE = &h84F6
 1257 const GL_PROXY_TEXTURE_RECTANGLE = &h84F7
 1258 const GL_MAX_RECTANGLE_TEXTURE_SIZE = &h84F8
 1259 const GL_R8_SNORM = &h8F94
 1260 const GL_RG8_SNORM = &h8F95
 1261 const GL_RGB8_SNORM = &h8F96
 1262 const GL_RGBA8_SNORM = &h8F97
 1263 const GL_R16_SNORM = &h8F98
 1264 const GL_RG16_SNORM = &h8F99
 1265 const GL_RGB16_SNORM = &h8F9A
 1266 const GL_RGBA16_SNORM = &h8F9B
 1267 const GL_SIGNED_NORMALIZED = &h8F9C
 1268 const GL_PRIMITIVE_RESTART = &h8F9D
 1269 const GL_PRIMITIVE_RESTART_INDEX = &h8F9E
 1270 const GL_COPY_READ_BUFFER = &h8F36
 1271 const GL_COPY_WRITE_BUFFER = &h8F37
 1272 const GL_UNIFORM_BUFFER = &h8A11
 1273 const GL_UNIFORM_BUFFER_BINDING = &h8A28
 1274 const GL_UNIFORM_BUFFER_START = &h8A29
 1275 const GL_UNIFORM_BUFFER_SIZE = &h8A2A
 1276 const GL_MAX_VERTEX_UNIFORM_BLOCKS = &h8A2B
 1277 const GL_MAX_GEOMETRY_UNIFORM_BLOCKS = &h8A2C
 1278 const GL_MAX_FRAGMENT_UNIFORM_BLOCKS = &h8A2D
 1279 const GL_MAX_COMBINED_UNIFORM_BLOCKS = &h8A2E
 1280 const GL_MAX_UNIFORM_BUFFER_BINDINGS = &h8A2F
 1281 const GL_MAX_UNIFORM_BLOCK_SIZE = &h8A30
 1282 const GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = &h8A31
 1283 const GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = &h8A32
 1284 const GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = &h8A33
 1285 const GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = &h8A34
 1286 const GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = &h8A35
 1287 const GL_ACTIVE_UNIFORM_BLOCKS = &h8A36
 1288 const GL_UNIFORM_TYPE = &h8A37
 1289 const GL_UNIFORM_SIZE = &h8A38
 1290 const GL_UNIFORM_NAME_LENGTH = &h8A39
 1291 const GL_UNIFORM_BLOCK_INDEX = &h8A3A
 1292 const GL_UNIFORM_OFFSET = &h8A3B
 1293 const GL_UNIFORM_ARRAY_STRIDE = &h8A3C
 1294 const GL_UNIFORM_MATRIX_STRIDE = &h8A3D
 1295 const GL_UNIFORM_IS_ROW_MAJOR = &h8A3E
 1296 const GL_UNIFORM_BLOCK_BINDING = &h8A3F
 1297 const GL_UNIFORM_BLOCK_DATA_SIZE = &h8A40
 1298 const GL_UNIFORM_BLOCK_NAME_LENGTH = &h8A41
 1299 const GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS = &h8A42
 1300 const GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = &h8A43
 1301 const GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = &h8A44
 1302 const GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = &h8A45
 1303 const GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = &h8A46
 1304 const GL_INVALID_INDEX = &hFFFFFFFFu
 1305 
 1306 type PFNGLDRAWARRAYSINSTANCEDPROC as sub(byval mode as GLenum, byval first as GLint, byval count as GLsizei, byval instancecount as GLsizei)
 1307 type PFNGLDRAWELEMENTSINSTANCEDPROC as sub(byval mode as GLenum, byval count as GLsizei, byval type as GLenum, byval indices as const any ptr, byval instancecount as GLsizei)
 1308 type PFNGLTEXBUFFERPROC as sub(byval target as GLenum, byval internalformat as GLenum, byval buffer as GLuint)
 1309 type PFNGLPRIMITIVERESTARTINDEXPROC as sub(byval index as GLuint)
 1310 type PFNGLCOPYBUFFERSUBDATAPROC as sub(byval readTarget as GLenum, byval writeTarget as GLenum, byval readOffset as GLintptr, byval writeOffset as GLintptr, byval size as GLsizeiptr)
 1311 type PFNGLGETUNIFORMINDICESPROC as sub(byval program as GLuint, byval uniformCount as GLsizei, byval uniformNames as const GLchar const ptr ptr, byval uniformIndices as GLuint ptr)
 1312 type PFNGLGETACTIVEUNIFORMSIVPROC as sub(byval program as GLuint, byval uniformCount as GLsizei, byval uniformIndices as const GLuint ptr, byval pname as GLenum, byval params as GLint ptr)
 1313 type PFNGLGETACTIVEUNIFORMNAMEPROC as sub(byval program as GLuint, byval uniformIndex as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval uniformName as GLchar ptr)
 1314 type PFNGLGETUNIFORMBLOCKINDEXPROC as function(byval program as GLuint, byval uniformBlockName as const GLchar ptr) as GLuint
 1315 type PFNGLGETACTIVEUNIFORMBLOCKIVPROC as sub(byval program as GLuint, byval uniformBlockIndex as GLuint, byval pname as GLenum, byval params as GLint ptr)
 1316 type PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC as sub(byval program as GLuint, byval uniformBlockIndex as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval uniformBlockName as GLchar ptr)
 1317 type PFNGLUNIFORMBLOCKBINDINGPROC as sub(byval program as GLuint, byval uniformBlockIndex as GLuint, byval uniformBlockBinding as GLuint)
 1318 
 1319 #ifdef GL_GLEXT_PROTOTYPES
 1320     declare sub glDrawArraysInstanced(byval mode as GLenum, byval first as GLint, byval count as GLsizei, byval instancecount as GLsizei)
 1321     declare sub glDrawElementsInstanced(byval mode as GLenum, byval count as GLsizei, byval type as GLenum, byval indices as const any ptr, byval instancecount as GLsizei)
 1322     declare sub glTexBuffer(byval target as GLenum, byval internalformat as GLenum, byval buffer as GLuint)
 1323     declare sub glPrimitiveRestartIndex(byval index as GLuint)
 1324     declare sub glCopyBufferSubData(byval readTarget as GLenum, byval writeTarget as GLenum, byval readOffset as GLintptr, byval writeOffset as GLintptr, byval size as GLsizeiptr)
 1325     declare sub glGetUniformIndices(byval program as GLuint, byval uniformCount as GLsizei, byval uniformNames as const GLchar const ptr ptr, byval uniformIndices as GLuint ptr)
 1326     declare sub glGetActiveUniformsiv(byval program as GLuint, byval uniformCount as GLsizei, byval uniformIndices as const GLuint ptr, byval pname as GLenum, byval params as GLint ptr)
 1327     declare sub glGetActiveUniformName(byval program as GLuint, byval uniformIndex as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval uniformName as GLchar ptr)
 1328     declare function glGetUniformBlockIndex(byval program as GLuint, byval uniformBlockName as const GLchar ptr) as GLuint
 1329     declare sub glGetActiveUniformBlockiv(byval program as GLuint, byval uniformBlockIndex as GLuint, byval pname as GLenum, byval params as GLint ptr)
 1330     declare sub glGetActiveUniformBlockName(byval program as GLuint, byval uniformBlockIndex as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval uniformBlockName as GLchar ptr)
 1331     declare sub glUniformBlockBinding(byval program as GLuint, byval uniformBlockIndex as GLuint, byval uniformBlockBinding as GLuint)
 1332 #endif
 1333 
 1334 const GL_VERSION_3_2 = 1
 1335 type GLsync as __GLsync ptr
 1336 #define GLEXT_64_TYPES_DEFINED
 1337 type GLuint64 as ulongint
 1338 type GLint64 as longint
 1339 const GL_CONTEXT_CORE_PROFILE_BIT = &h00000001
 1340 const GL_CONTEXT_COMPATIBILITY_PROFILE_BIT = &h00000002
 1341 const GL_LINES_ADJACENCY = &h000A
 1342 const GL_LINE_STRIP_ADJACENCY = &h000B
 1343 const GL_TRIANGLES_ADJACENCY = &h000C
 1344 const GL_TRIANGLE_STRIP_ADJACENCY = &h000D
 1345 const GL_PROGRAM_POINT_SIZE = &h8642
 1346 const GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = &h8C29
 1347 const GL_FRAMEBUFFER_ATTACHMENT_LAYERED = &h8DA7
 1348 const GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = &h8DA8
 1349 const GL_GEOMETRY_SHADER = &h8DD9
 1350 const GL_GEOMETRY_VERTICES_OUT = &h8916
 1351 const GL_GEOMETRY_INPUT_TYPE = &h8917
 1352 const GL_GEOMETRY_OUTPUT_TYPE = &h8918
 1353 const GL_MAX_GEOMETRY_UNIFORM_COMPONENTS = &h8DDF
 1354 const GL_MAX_GEOMETRY_OUTPUT_VERTICES = &h8DE0
 1355 const GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = &h8DE1
 1356 const GL_MAX_VERTEX_OUTPUT_COMPONENTS = &h9122
 1357 const GL_MAX_GEOMETRY_INPUT_COMPONENTS = &h9123
 1358 const GL_MAX_GEOMETRY_OUTPUT_COMPONENTS = &h9124
 1359 const GL_MAX_FRAGMENT_INPUT_COMPONENTS = &h9125
 1360 const GL_CONTEXT_PROFILE_MASK = &h9126
 1361 const GL_DEPTH_CLAMP = &h864F
 1362 const GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = &h8E4C
 1363 const GL_FIRST_VERTEX_CONVENTION = &h8E4D
 1364 const GL_LAST_VERTEX_CONVENTION = &h8E4E
 1365 const GL_PROVOKING_VERTEX = &h8E4F
 1366 const GL_TEXTURE_CUBE_MAP_SEAMLESS = &h884F
 1367 const GL_MAX_SERVER_WAIT_TIMEOUT = &h9111
 1368 const GL_OBJECT_TYPE = &h9112
 1369 const GL_SYNC_CONDITION = &h9113
 1370 const GL_SYNC_STATUS = &h9114
 1371 const GL_SYNC_FLAGS = &h9115
 1372 const GL_SYNC_FENCE = &h9116
 1373 const GL_SYNC_GPU_COMMANDS_COMPLETE = &h9117
 1374 const GL_UNSIGNALED = &h9118
 1375 const GL_SIGNALED = &h9119
 1376 const GL_ALREADY_SIGNALED = &h911A
 1377 const GL_TIMEOUT_EXPIRED = &h911B
 1378 const GL_CONDITION_SATISFIED = &h911C
 1379 const GL_WAIT_FAILED = &h911D
 1380 const GL_TIMEOUT_IGNORED = &hFFFFFFFFFFFFFFFFull
 1381 const GL_SYNC_FLUSH_COMMANDS_BIT = &h00000001
 1382 const GL_SAMPLE_POSITION = &h8E50
 1383 const GL_SAMPLE_MASK = &h8E51
 1384 const GL_SAMPLE_MASK_VALUE = &h8E52
 1385 const GL_MAX_SAMPLE_MASK_WORDS = &h8E59
 1386 const GL_TEXTURE_2D_MULTISAMPLE = &h9100
 1387 const GL_PROXY_TEXTURE_2D_MULTISAMPLE = &h9101
 1388 const GL_TEXTURE_2D_MULTISAMPLE_ARRAY = &h9102
 1389 const GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = &h9103
 1390 const GL_TEXTURE_BINDING_2D_MULTISAMPLE = &h9104
 1391 const GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = &h9105
 1392 const GL_TEXTURE_SAMPLES = &h9106
 1393 const GL_TEXTURE_FIXED_SAMPLE_LOCATIONS = &h9107
 1394 const GL_SAMPLER_2D_MULTISAMPLE = &h9108
 1395 const GL_INT_SAMPLER_2D_MULTISAMPLE = &h9109
 1396 const GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = &h910A
 1397 const GL_SAMPLER_2D_MULTISAMPLE_ARRAY = &h910B
 1398 const GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = &h910C
 1399 const GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = &h910D
 1400 const GL_MAX_COLOR_TEXTURE_SAMPLES = &h910E
 1401 const GL_MAX_DEPTH_TEXTURE_SAMPLES = &h910F
 1402 const GL_MAX_INTEGER_SAMPLES = &h9110
 1403 
 1404 type PFNGLDRAWELEMENTSBASEVERTEXPROC as sub(byval mode as GLenum, byval count as GLsizei, byval type as GLenum, byval indices as const any ptr, byval basevertex as GLint)
 1405 type PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC as sub(byval mode as GLenum, byval start as GLuint, byval end as GLuint, byval count as GLsizei, byval type as GLenum, byval indices as const any ptr, byval basevertex as GLint)
 1406 type PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC as sub(byval mode as GLenum, byval count as GLsizei, byval type as GLenum, byval indices as const any ptr, byval instancecount as GLsizei, byval basevertex as GLint)
 1407 type PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC as sub(byval mode as GLenum, byval count as const GLsizei ptr, byval type as GLenum, byval indices as const any const ptr ptr, byval drawcount as GLsizei, byval basevertex as const GLint ptr)
 1408 type PFNGLPROVOKINGVERTEXPROC as sub(byval mode as GLenum)
 1409 type PFNGLFENCESYNCPROC as function(byval condition as GLenum, byval flags as GLbitfield) as GLsync
 1410 type PFNGLISSYNCPROC as function(byval sync as GLsync) as GLboolean
 1411 type PFNGLDELETESYNCPROC as sub(byval sync as GLsync)
 1412 type PFNGLCLIENTWAITSYNCPROC as function(byval sync as GLsync, byval flags as GLbitfield, byval timeout as GLuint64) as GLenum
 1413 type PFNGLWAITSYNCPROC as sub(byval sync as GLsync, byval flags as GLbitfield, byval timeout as GLuint64)
 1414 type PFNGLGETINTEGER64VPROC as sub(byval pname as GLenum, byval data as GLint64 ptr)
 1415 type PFNGLGETSYNCIVPROC as sub(byval sync as GLsync, byval pname as GLenum, byval bufSize as GLsizei, byval length as GLsizei ptr, byval values as GLint ptr)
 1416 type PFNGLGETINTEGER64I_VPROC as sub(byval target as GLenum, byval index as GLuint, byval data as GLint64 ptr)
 1417 type PFNGLGETBUFFERPARAMETERI64VPROC as sub(byval target as GLenum, byval pname as GLenum, byval params as GLint64 ptr)
 1418 type PFNGLFRAMEBUFFERTEXTUREPROC as sub(byval target as GLenum, byval attachment as GLenum, byval texture as GLuint, byval level as GLint)
 1419 type PFNGLTEXIMAGE2DMULTISAMPLEPROC as sub(byval target as GLenum, byval samples as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval fixedsamplelocations as GLboolean)
 1420 type PFNGLTEXIMAGE3DMULTISAMPLEPROC as sub(byval target as GLenum, byval samples as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval fixedsamplelocations as GLboolean)
 1421 type PFNGLGETMULTISAMPLEFVPROC as sub(byval pname as GLenum, byval index as GLuint, byval val as GLfloat ptr)
 1422 type PFNGLSAMPLEMASKIPROC as sub(byval maskNumber as GLuint, byval mask as GLbitfield)
 1423 
 1424 #ifdef GL_GLEXT_PROTOTYPES
 1425     declare sub glDrawElementsBaseVertex(byval mode as GLenum, byval count as GLsizei, byval type as GLenum, byval indices as const any ptr, byval basevertex as GLint)
 1426     declare sub glDrawRangeElementsBaseVertex(byval mode as GLenum, byval start as GLuint, byval end as GLuint, byval count as GLsizei, byval type as GLenum, byval indices as const any ptr, byval basevertex as GLint)
 1427     declare sub glDrawElementsInstancedBaseVertex(byval mode as GLenum, byval count as GLsizei, byval type as GLenum, byval indices as const any ptr, byval instancecount as GLsizei, byval basevertex as GLint)
 1428     declare sub glMultiDrawElementsBaseVertex(byval mode as GLenum, byval count as const GLsizei ptr, byval type as GLenum, byval indices as const any const ptr ptr, byval drawcount as GLsizei, byval basevertex as const GLint ptr)
 1429     declare sub glProvokingVertex(byval mode as GLenum)
 1430     declare function glFenceSync(byval condition as GLenum, byval flags as GLbitfield) as GLsync
 1431     declare function glIsSync(byval sync as GLsync) as GLboolean
 1432     declare sub glDeleteSync(byval sync as GLsync)
 1433     declare function glClientWaitSync(byval sync as GLsync, byval flags as GLbitfield, byval timeout as GLuint64) as GLenum
 1434     declare sub glWaitSync(byval sync as GLsync, byval flags as GLbitfield, byval timeout as GLuint64)
 1435     declare sub glGetInteger64v(byval pname as GLenum, byval data as GLint64 ptr)
 1436     declare sub glGetSynciv(byval sync as GLsync, byval pname as GLenum, byval bufSize as GLsizei, byval length as GLsizei ptr, byval values as GLint ptr)
 1437     declare sub glGetInteger64i_v(byval target as GLenum, byval index as GLuint, byval data as GLint64 ptr)
 1438     declare sub glGetBufferParameteri64v(byval target as GLenum, byval pname as GLenum, byval params as GLint64 ptr)
 1439     declare sub glFramebufferTexture(byval target as GLenum, byval attachment as GLenum, byval texture as GLuint, byval level as GLint)
 1440     declare sub glTexImage2DMultisample(byval target as GLenum, byval samples as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval fixedsamplelocations as GLboolean)
 1441     declare sub glTexImage3DMultisample(byval target as GLenum, byval samples as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval fixedsamplelocations as GLboolean)
 1442     declare sub glGetMultisamplefv(byval pname as GLenum, byval index as GLuint, byval val as GLfloat ptr)
 1443     declare sub glSampleMaski(byval maskNumber as GLuint, byval mask as GLbitfield)
 1444 #endif
 1445 
 1446 const GL_VERSION_3_3 = 1
 1447 const GL_VERTEX_ATTRIB_ARRAY_DIVISOR = &h88FE
 1448 const GL_SRC1_COLOR = &h88F9
 1449 const GL_ONE_MINUS_SRC1_COLOR = &h88FA
 1450 const GL_ONE_MINUS_SRC1_ALPHA = &h88FB
 1451 const GL_MAX_DUAL_SOURCE_DRAW_BUFFERS = &h88FC
 1452 const GL_ANY_SAMPLES_PASSED = &h8C2F
 1453 const GL_SAMPLER_BINDING = &h8919
 1454 const GL_RGB10_A2UI = &h906F
 1455 const GL_TEXTURE_SWIZZLE_R = &h8E42
 1456 const GL_TEXTURE_SWIZZLE_G = &h8E43
 1457 const GL_TEXTURE_SWIZZLE_B = &h8E44
 1458 const GL_TEXTURE_SWIZZLE_A = &h8E45
 1459 const GL_TEXTURE_SWIZZLE_RGBA = &h8E46
 1460 const GL_TIME_ELAPSED = &h88BF
 1461 const GL_TIMESTAMP = &h8E28
 1462 const GL_INT_2_10_10_10_REV = &h8D9F
 1463 
 1464 type PFNGLBINDFRAGDATALOCATIONINDEXEDPROC as sub(byval program as GLuint, byval colorNumber as GLuint, byval index as GLuint, byval name as const GLchar ptr)
 1465 type PFNGLGETFRAGDATAINDEXPROC as function(byval program as GLuint, byval name as const GLchar ptr) as GLint
 1466 type PFNGLGENSAMPLERSPROC as sub(byval count as GLsizei, byval samplers as GLuint ptr)
 1467 type PFNGLDELETESAMPLERSPROC as sub(byval count as GLsizei, byval samplers as const GLuint ptr)
 1468 type PFNGLISSAMPLERPROC as function(byval sampler as GLuint) as GLboolean
 1469 type PFNGLBINDSAMPLERPROC as sub(byval unit as GLuint, byval sampler as GLuint)
 1470 type PFNGLSAMPLERPARAMETERIPROC as sub(byval sampler as GLuint, byval pname as GLenum, byval param as GLint)
 1471 type PFNGLSAMPLERPARAMETERIVPROC as sub(byval sampler as GLuint, byval pname as GLenum, byval param as const GLint ptr)
 1472 type PFNGLSAMPLERPARAMETERFPROC as sub(byval sampler as GLuint, byval pname as GLenum, byval param as GLfloat)
 1473 type PFNGLSAMPLERPARAMETERFVPROC as sub(byval sampler as GLuint, byval pname as GLenum, byval param as const GLfloat ptr)
 1474 type PFNGLSAMPLERPARAMETERIIVPROC as sub(byval sampler as GLuint, byval pname as GLenum, byval param as const GLint ptr)
 1475 type PFNGLSAMPLERPARAMETERIUIVPROC as sub(byval sampler as GLuint, byval pname as GLenum, byval param as const GLuint ptr)
 1476 type PFNGLGETSAMPLERPARAMETERIVPROC as sub(byval sampler as GLuint, byval pname as GLenum, byval params as GLint ptr)
 1477 type PFNGLGETSAMPLERPARAMETERIIVPROC as sub(byval sampler as GLuint, byval pname as GLenum, byval params as GLint ptr)
 1478 type PFNGLGETSAMPLERPARAMETERFVPROC as sub(byval sampler as GLuint, byval pname as GLenum, byval params as GLfloat ptr)
 1479 type PFNGLGETSAMPLERPARAMETERIUIVPROC as sub(byval sampler as GLuint, byval pname as GLenum, byval params as GLuint ptr)
 1480 type PFNGLQUERYCOUNTERPROC as sub(byval id as GLuint, byval target as GLenum)
 1481 type PFNGLGETQUERYOBJECTI64VPROC as sub(byval id as GLuint, byval pname as GLenum, byval params as GLint64 ptr)
 1482 type PFNGLGETQUERYOBJECTUI64VPROC as sub(byval id as GLuint, byval pname as GLenum, byval params as GLuint64 ptr)
 1483 type PFNGLVERTEXATTRIBDIVISORPROC as sub(byval index as GLuint, byval divisor as GLuint)
 1484 type PFNGLVERTEXATTRIBP1UIPROC as sub(byval index as GLuint, byval type as GLenum, byval normalized as GLboolean, byval value as GLuint)
 1485 type PFNGLVERTEXATTRIBP1UIVPROC as sub(byval index as GLuint, byval type as GLenum, byval normalized as GLboolean, byval value as const GLuint ptr)
 1486 type PFNGLVERTEXATTRIBP2UIPROC as sub(byval index as GLuint, byval type as GLenum, byval normalized as GLboolean, byval value as GLuint)
 1487 type PFNGLVERTEXATTRIBP2UIVPROC as sub(byval index as GLuint, byval type as GLenum, byval normalized as GLboolean, byval value as const GLuint ptr)
 1488 type PFNGLVERTEXATTRIBP3UIPROC as sub(byval index as GLuint, byval type as GLenum, byval normalized as GLboolean, byval value as GLuint)
 1489 type PFNGLVERTEXATTRIBP3UIVPROC as sub(byval index as GLuint, byval type as GLenum, byval normalized as GLboolean, byval value as const GLuint ptr)
 1490 type PFNGLVERTEXATTRIBP4UIPROC as sub(byval index as GLuint, byval type as GLenum, byval normalized as GLboolean, byval value as GLuint)
 1491 type PFNGLVERTEXATTRIBP4UIVPROC as sub(byval index as GLuint, byval type as GLenum, byval normalized as GLboolean, byval value as const GLuint ptr)
 1492 type PFNGLVERTEXP2UIPROC as sub(byval type as GLenum, byval value as GLuint)
 1493 type PFNGLVERTEXP2UIVPROC as sub(byval type as GLenum, byval value as const GLuint ptr)
 1494 type PFNGLVERTEXP3UIPROC as sub(byval type as GLenum, byval value as GLuint)
 1495 type PFNGLVERTEXP3UIVPROC as sub(byval type as GLenum, byval value as const GLuint ptr)
 1496 type PFNGLVERTEXP4UIPROC as sub(byval type as GLenum, byval value as GLuint)
 1497 type PFNGLVERTEXP4UIVPROC as sub(byval type as GLenum, byval value as const GLuint ptr)
 1498 type PFNGLTEXCOORDP1UIPROC as sub(byval type as GLenum, byval coords as GLuint)
 1499 type PFNGLTEXCOORDP1UIVPROC as sub(byval type as GLenum, byval coords as const GLuint ptr)
 1500 type PFNGLTEXCOORDP2UIPROC as sub(byval type as GLenum, byval coords as GLuint)
 1501 type PFNGLTEXCOORDP2UIVPROC as sub(byval type as GLenum, byval coords as const GLuint ptr)
 1502 type PFNGLTEXCOORDP3UIPROC as sub(byval type as GLenum, byval coords as GLuint)
 1503 type PFNGLTEXCOORDP3UIVPROC as sub(byval type as GLenum, byval coords as const GLuint ptr)
 1504 type PFNGLTEXCOORDP4UIPROC as sub(byval type as GLenum, byval coords as GLuint)
 1505 type PFNGLTEXCOORDP4UIVPROC as sub(byval type as GLenum, byval coords as const GLuint ptr)
 1506 type PFNGLMULTITEXCOORDP1UIPROC as sub(byval texture as GLenum, byval type as GLenum, byval coords as GLuint)
 1507 type PFNGLMULTITEXCOORDP1UIVPROC as sub(byval texture as GLenum, byval type as GLenum, byval coords as const GLuint ptr)
 1508 type PFNGLMULTITEXCOORDP2UIPROC as sub(byval texture as GLenum, byval type as GLenum, byval coords as GLuint)
 1509 type PFNGLMULTITEXCOORDP2UIVPROC as sub(byval texture as GLenum, byval type as GLenum, byval coords as const GLuint ptr)
 1510 type PFNGLMULTITEXCOORDP3UIPROC as sub(byval texture as GLenum, byval type as GLenum, byval coords as GLuint)
 1511 type PFNGLMULTITEXCOORDP3UIVPROC as sub(byval texture as GLenum, byval type as GLenum, byval coords as const GLuint ptr)
 1512 type PFNGLMULTITEXCOORDP4UIPROC as sub(byval texture as GLenum, byval type as GLenum, byval coords as GLuint)
 1513 type PFNGLMULTITEXCOORDP4UIVPROC as sub(byval texture as GLenum, byval type as GLenum, byval coords as const GLuint ptr)
 1514 type PFNGLNORMALP3UIPROC as sub(byval type as GLenum, byval coords as GLuint)
 1515 type PFNGLNORMALP3UIVPROC as sub(byval type as GLenum, byval coords as const GLuint ptr)
 1516 type PFNGLCOLORP3UIPROC as sub(byval type as GLenum, byval color as GLuint)
 1517 type PFNGLCOLORP3UIVPROC as sub(byval type as GLenum, byval color as const GLuint ptr)
 1518 type PFNGLCOLORP4UIPROC as sub(byval type as GLenum, byval color as GLuint)
 1519 type PFNGLCOLORP4UIVPROC as sub(byval type as GLenum, byval color as const GLuint ptr)
 1520 type PFNGLSECONDARYCOLORP3UIPROC as sub(byval type as GLenum, byval color as GLuint)
 1521 type PFNGLSECONDARYCOLORP3UIVPROC as sub(byval type as GLenum, byval color as const GLuint ptr)
 1522 
 1523 #ifdef GL_GLEXT_PROTOTYPES
 1524     declare sub glBindFragDataLocationIndexed(byval program as GLuint, byval colorNumber as GLuint, byval index as GLuint, byval name as const GLchar ptr)
 1525     declare function glGetFragDataIndex(byval program as GLuint, byval name as const GLchar ptr) as GLint
 1526     declare sub glGenSamplers(byval count as GLsizei, byval samplers as GLuint ptr)
 1527     declare sub glDeleteSamplers(byval count as GLsizei, byval samplers as const GLuint ptr)
 1528     declare function glIsSampler(byval sampler as GLuint) as GLboolean
 1529     declare sub glBindSampler(byval unit as GLuint, byval sampler as GLuint)
 1530     declare sub glSamplerParameteri(byval sampler as GLuint, byval pname as GLenum, byval param as GLint)
 1531     declare sub glSamplerParameteriv(byval sampler as GLuint, byval pname as GLenum, byval param as const GLint ptr)
 1532     declare sub glSamplerParameterf(byval sampler as GLuint, byval pname as GLenum, byval param as GLfloat)
 1533     declare sub glSamplerParameterfv(byval sampler as GLuint, byval pname as GLenum, byval param as const GLfloat ptr)
 1534     declare sub glSamplerParameterIiv(byval sampler as GLuint, byval pname as GLenum, byval param as const GLint ptr)
 1535     declare sub glSamplerParameterIuiv(byval sampler as GLuint, byval pname as GLenum, byval param as const GLuint ptr)
 1536     declare sub glGetSamplerParameteriv(byval sampler as GLuint, byval pname as GLenum, byval params as GLint ptr)
 1537     declare sub glGetSamplerParameterIiv(byval sampler as GLuint, byval pname as GLenum, byval params as GLint ptr)
 1538     declare sub glGetSamplerParameterfv(byval sampler as GLuint, byval pname as GLenum, byval params as GLfloat ptr)
 1539     declare sub glGetSamplerParameterIuiv(byval sampler as GLuint, byval pname as GLenum, byval params as GLuint ptr)
 1540     declare sub glQueryCounter(byval id as GLuint, byval target as GLenum)
 1541     declare sub glGetQueryObjecti64v(byval id as GLuint, byval pname as GLenum, byval params as GLint64 ptr)
 1542     declare sub glGetQueryObjectui64v(byval id as GLuint, byval pname as GLenum, byval params as GLuint64 ptr)
 1543     declare sub glVertexAttribDivisor(byval index as GLuint, byval divisor as GLuint)
 1544     declare sub glVertexAttribP1ui(byval index as GLuint, byval type as GLenum, byval normalized as GLboolean, byval value as GLuint)
 1545     declare sub glVertexAttribP1uiv(byval index as GLuint, byval type as GLenum, byval normalized as GLboolean, byval value as const GLuint ptr)
 1546     declare sub glVertexAttribP2ui(byval index as GLuint, byval type as GLenum, byval normalized as GLboolean, byval value as GLuint)
 1547     declare sub glVertexAttribP2uiv(byval index as GLuint, byval type as GLenum, byval normalized as GLboolean, byval value as const GLuint ptr)
 1548     declare sub glVertexAttribP3ui(byval index as GLuint, byval type as GLenum, byval normalized as GLboolean, byval value as GLuint)
 1549     declare sub glVertexAttribP3uiv(byval index as GLuint, byval type as GLenum, byval normalized as GLboolean, byval value as const GLuint ptr)
 1550     declare sub glVertexAttribP4ui(byval index as GLuint, byval type as GLenum, byval normalized as GLboolean, byval value as GLuint)
 1551     declare sub glVertexAttribP4uiv(byval index as GLuint, byval type as GLenum, byval normalized as GLboolean, byval value as const GLuint ptr)
 1552     declare sub glVertexP2ui(byval type as GLenum, byval value as GLuint)
 1553     declare sub glVertexP2uiv(byval type as GLenum, byval value as const GLuint ptr)
 1554     declare sub glVertexP3ui(byval type as GLenum, byval value as GLuint)
 1555     declare sub glVertexP3uiv(byval type as GLenum, byval value as const GLuint ptr)
 1556     declare sub glVertexP4ui(byval type as GLenum, byval value as GLuint)
 1557     declare sub glVertexP4uiv(byval type as GLenum, byval value as const GLuint ptr)
 1558     declare sub glTexCoordP1ui(byval type as GLenum, byval coords as GLuint)
 1559     declare sub glTexCoordP1uiv(byval type as GLenum, byval coords as const GLuint ptr)
 1560     declare sub glTexCoordP2ui(byval type as GLenum, byval coords as GLuint)
 1561     declare sub glTexCoordP2uiv(byval type as GLenum, byval coords as const GLuint ptr)
 1562     declare sub glTexCoordP3ui(byval type as GLenum, byval coords as GLuint)
 1563     declare sub glTexCoordP3uiv(byval type as GLenum, byval coords as const GLuint ptr)
 1564     declare sub glTexCoordP4ui(byval type as GLenum, byval coords as GLuint)
 1565     declare sub glTexCoordP4uiv(byval type as GLenum, byval coords as const GLuint ptr)
 1566     declare sub glMultiTexCoordP1ui(byval texture as GLenum, byval type as GLenum, byval coords as GLuint)
 1567     declare sub glMultiTexCoordP1uiv(byval texture as GLenum, byval type as GLenum, byval coords as const GLuint ptr)
 1568     declare sub glMultiTexCoordP2ui(byval texture as GLenum, byval type as GLenum, byval coords as GLuint)
 1569     declare sub glMultiTexCoordP2uiv(byval texture as GLenum, byval type as GLenum, byval coords as const GLuint ptr)
 1570     declare sub glMultiTexCoordP3ui(byval texture as GLenum, byval type as GLenum, byval coords as GLuint)
 1571     declare sub glMultiTexCoordP3uiv(byval texture as GLenum, byval type as GLenum, byval coords as const GLuint ptr)
 1572     declare sub glMultiTexCoordP4ui(byval texture as GLenum, byval type as GLenum, byval coords as GLuint)
 1573     declare sub glMultiTexCoordP4uiv(byval texture as GLenum, byval type as GLenum, byval coords as const GLuint ptr)
 1574     declare sub glNormalP3ui(byval type as GLenum, byval coords as GLuint)
 1575     declare sub glNormalP3uiv(byval type as GLenum, byval coords as const GLuint ptr)
 1576     declare sub glColorP3ui(byval type as GLenum, byval color as GLuint)
 1577     declare sub glColorP3uiv(byval type as GLenum, byval color as const GLuint ptr)
 1578     declare sub glColorP4ui(byval type as GLenum, byval color as GLuint)
 1579     declare sub glColorP4uiv(byval type as GLenum, byval color as const GLuint ptr)
 1580     declare sub glSecondaryColorP3ui(byval type as GLenum, byval color as GLuint)
 1581     declare sub glSecondaryColorP3uiv(byval type as GLenum, byval color as const GLuint ptr)
 1582 #endif
 1583 
 1584 const GL_VERSION_4_0 = 1
 1585 const GL_SAMPLE_SHADING = &h8C36
 1586 const GL_MIN_SAMPLE_SHADING_VALUE = &h8C37
 1587 const GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET = &h8E5E
 1588 const GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET = &h8E5F
 1589 const GL_TEXTURE_CUBE_MAP_ARRAY = &h9009
 1590 const GL_TEXTURE_BINDING_CUBE_MAP_ARRAY = &h900A
 1591 const GL_PROXY_TEXTURE_CUBE_MAP_ARRAY = &h900B
 1592 const GL_SAMPLER_CUBE_MAP_ARRAY = &h900C
 1593 const GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW = &h900D
 1594 const GL_INT_SAMPLER_CUBE_MAP_ARRAY = &h900E
 1595 const GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = &h900F
 1596 const GL_DRAW_INDIRECT_BUFFER = &h8F3F
 1597 const GL_DRAW_INDIRECT_BUFFER_BINDING = &h8F43
 1598 const GL_GEOMETRY_SHADER_INVOCATIONS = &h887F
 1599 const GL_MAX_GEOMETRY_SHADER_INVOCATIONS = &h8E5A
 1600 const GL_MIN_FRAGMENT_INTERPOLATION_OFFSET = &h8E5B
 1601 const GL_MAX_FRAGMENT_INTERPOLATION_OFFSET = &h8E5C
 1602 const GL_FRAGMENT_INTERPOLATION_OFFSET_BITS = &h8E5D
 1603 const GL_MAX_VERTEX_STREAMS = &h8E71
 1604 const GL_DOUBLE_VEC2 = &h8FFC
 1605 const GL_DOUBLE_VEC3 = &h8FFD
 1606 const GL_DOUBLE_VEC4 = &h8FFE
 1607 const GL_DOUBLE_MAT2 = &h8F46
 1608 const GL_DOUBLE_MAT3 = &h8F47
 1609 const GL_DOUBLE_MAT4 = &h8F48
 1610 const GL_DOUBLE_MAT2x3 = &h8F49
 1611 const GL_DOUBLE_MAT2x4 = &h8F4A
 1612 const GL_DOUBLE_MAT3x2 = &h8F4B
 1613 const GL_DOUBLE_MAT3x4 = &h8F4C
 1614 const GL_DOUBLE_MAT4x2 = &h8F4D
 1615 const GL_DOUBLE_MAT4x3 = &h8F4E
 1616 const GL_ACTIVE_SUBROUTINES = &h8DE5
 1617 const GL_ACTIVE_SUBROUTINE_UNIFORMS = &h8DE6
 1618 const GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = &h8E47
 1619 const GL_ACTIVE_SUBROUTINE_MAX_LENGTH = &h8E48
 1620 const GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = &h8E49
 1621 const GL_MAX_SUBROUTINES = &h8DE7
 1622 const GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS = &h8DE8
 1623 const GL_NUM_COMPATIBLE_SUBROUTINES = &h8E4A
 1624 const GL_COMPATIBLE_SUBROUTINES = &h8E4B
 1625 const GL_PATCHES = &h000E
 1626 const GL_PATCH_VERTICES = &h8E72
 1627 const GL_PATCH_DEFAULT_INNER_LEVEL = &h8E73
 1628 const GL_PATCH_DEFAULT_OUTER_LEVEL = &h8E74
 1629 const GL_TESS_CONTROL_OUTPUT_VERTICES = &h8E75
 1630 const GL_TESS_GEN_MODE = &h8E76
 1631 const GL_TESS_GEN_SPACING = &h8E77
 1632 const GL_TESS_GEN_VERTEX_ORDER = &h8E78
 1633 const GL_TESS_GEN_POINT_MODE = &h8E79
 1634 const GL_ISOLINES = &h8E7A
 1635 const GL_FRACTIONAL_ODD = &h8E7B
 1636 const GL_FRACTIONAL_EVEN = &h8E7C
 1637 const GL_MAX_PATCH_VERTICES = &h8E7D
 1638 const GL_MAX_TESS_GEN_LEVEL = &h8E7E
 1639 const GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS = &h8E7F
 1640 const GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = &h8E80
 1641 const GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = &h8E81
 1642 const GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = &h8E82
 1643 const GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS = &h8E83
 1644 const GL_MAX_TESS_PATCH_COMPONENTS = &h8E84
 1645 const GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = &h8E85
 1646 const GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = &h8E86
 1647 const GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS = &h8E89
 1648 const GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS = &h8E8A
 1649 const GL_MAX_TESS_CONTROL_INPUT_COMPONENTS = &h886C
 1650 const GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS = &h886D
 1651 const GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = &h8E1E
 1652 const GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = &h8E1F
 1653 const GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = &h84F0
 1654 const GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = &h84F1
 1655 const GL_TESS_EVALUATION_SHADER = &h8E87
 1656 const GL_TESS_CONTROL_SHADER = &h8E88
 1657 const GL_TRANSFORM_FEEDBACK = &h8E22
 1658 const GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED = &h8E23
 1659 const GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE = &h8E24
 1660 const GL_TRANSFORM_FEEDBACK_BINDING = &h8E25
 1661 const GL_MAX_TRANSFORM_FEEDBACK_BUFFERS = &h8E70
 1662 
 1663 type PFNGLMINSAMPLESHADINGPROC as sub(byval value as GLfloat)
 1664 type PFNGLBLENDEQUATIONIPROC as sub(byval buf as GLuint, byval mode as GLenum)
 1665 type PFNGLBLENDEQUATIONSEPARATEIPROC as sub(byval buf as GLuint, byval modeRGB as GLenum, byval modeAlpha as GLenum)
 1666 type PFNGLBLENDFUNCIPROC as sub(byval buf as GLuint, byval src as GLenum, byval dst as GLenum)
 1667 type PFNGLBLENDFUNCSEPARATEIPROC as sub(byval buf as GLuint, byval srcRGB as GLenum, byval dstRGB as GLenum, byval srcAlpha as GLenum, byval dstAlpha as GLenum)
 1668 type PFNGLDRAWARRAYSINDIRECTPROC as sub(byval mode as GLenum, byval indirect as const any ptr)
 1669 type PFNGLDRAWELEMENTSINDIRECTPROC as sub(byval mode as GLenum, byval type as GLenum, byval indirect as const any ptr)
 1670 type PFNGLUNIFORM1DPROC as sub(byval location as GLint, byval x as GLdouble)
 1671 type PFNGLUNIFORM2DPROC as sub(byval location as GLint, byval x as GLdouble, byval y as GLdouble)
 1672 type PFNGLUNIFORM3DPROC as sub(byval location as GLint, byval x as GLdouble, byval y as GLdouble, byval z as GLdouble)
 1673 type PFNGLUNIFORM4DPROC as sub(byval location as GLint, byval x as GLdouble, byval y as GLdouble, byval z as GLdouble, byval w as GLdouble)
 1674 type PFNGLUNIFORM1DVPROC as sub(byval location as GLint, byval count as GLsizei, byval value as const GLdouble ptr)
 1675 type PFNGLUNIFORM2DVPROC as sub(byval location as GLint, byval count as GLsizei, byval value as const GLdouble ptr)
 1676 type PFNGLUNIFORM3DVPROC as sub(byval location as GLint, byval count as GLsizei, byval value as const GLdouble ptr)
 1677 type PFNGLUNIFORM4DVPROC as sub(byval location as GLint, byval count as GLsizei, byval value as const GLdouble ptr)
 1678 type PFNGLUNIFORMMATRIX2DVPROC as sub(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1679 type PFNGLUNIFORMMATRIX3DVPROC as sub(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1680 type PFNGLUNIFORMMATRIX4DVPROC as sub(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1681 type PFNGLUNIFORMMATRIX2X3DVPROC as sub(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1682 type PFNGLUNIFORMMATRIX2X4DVPROC as sub(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1683 type PFNGLUNIFORMMATRIX3X2DVPROC as sub(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1684 type PFNGLUNIFORMMATRIX3X4DVPROC as sub(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1685 type PFNGLUNIFORMMATRIX4X2DVPROC as sub(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1686 type PFNGLUNIFORMMATRIX4X3DVPROC as sub(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1687 type PFNGLGETUNIFORMDVPROC as sub(byval program as GLuint, byval location as GLint, byval params as GLdouble ptr)
 1688 type PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC as function(byval program as GLuint, byval shadertype as GLenum, byval name as const GLchar ptr) as GLint
 1689 type PFNGLGETSUBROUTINEINDEXPROC as function(byval program as GLuint, byval shadertype as GLenum, byval name as const GLchar ptr) as GLuint
 1690 type PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC as sub(byval program as GLuint, byval shadertype as GLenum, byval index as GLuint, byval pname as GLenum, byval values as GLint ptr)
 1691 type PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC as sub(byval program as GLuint, byval shadertype as GLenum, byval index as GLuint, byval bufsize as GLsizei, byval length as GLsizei ptr, byval name as GLchar ptr)
 1692 type PFNGLGETACTIVESUBROUTINENAMEPROC as sub(byval program as GLuint, byval shadertype as GLenum, byval index as GLuint, byval bufsize as GLsizei, byval length as GLsizei ptr, byval name as GLchar ptr)
 1693 type PFNGLUNIFORMSUBROUTINESUIVPROC as sub(byval shadertype as GLenum, byval count as GLsizei, byval indices as const GLuint ptr)
 1694 type PFNGLGETUNIFORMSUBROUTINEUIVPROC as sub(byval shadertype as GLenum, byval location as GLint, byval params as GLuint ptr)
 1695 type PFNGLGETPROGRAMSTAGEIVPROC as sub(byval program as GLuint, byval shadertype as GLenum, byval pname as GLenum, byval values as GLint ptr)
 1696 type PFNGLPATCHPARAMETERIPROC as sub(byval pname as GLenum, byval value as GLint)
 1697 type PFNGLPATCHPARAMETERFVPROC as sub(byval pname as GLenum, byval values as const GLfloat ptr)
 1698 type PFNGLBINDTRANSFORMFEEDBACKPROC as sub(byval target as GLenum, byval id as GLuint)
 1699 type PFNGLDELETETRANSFORMFEEDBACKSPROC as sub(byval n as GLsizei, byval ids as const GLuint ptr)
 1700 type PFNGLGENTRANSFORMFEEDBACKSPROC as sub(byval n as GLsizei, byval ids as GLuint ptr)
 1701 type PFNGLISTRANSFORMFEEDBACKPROC as function(byval id as GLuint) as GLboolean
 1702 type PFNGLPAUSETRANSFORMFEEDBACKPROC as sub()
 1703 type PFNGLRESUMETRANSFORMFEEDBACKPROC as sub()
 1704 type PFNGLDRAWTRANSFORMFEEDBACKPROC as sub(byval mode as GLenum, byval id as GLuint)
 1705 type PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC as sub(byval mode as GLenum, byval id as GLuint, byval stream as GLuint)
 1706 type PFNGLBEGINQUERYINDEXEDPROC as sub(byval target as GLenum, byval index as GLuint, byval id as GLuint)
 1707 type PFNGLENDQUERYINDEXEDPROC as sub(byval target as GLenum, byval index as GLuint)
 1708 type PFNGLGETQUERYINDEXEDIVPROC as sub(byval target as GLenum, byval index as GLuint, byval pname as GLenum, byval params as GLint ptr)
 1709 
 1710 #ifdef GL_GLEXT_PROTOTYPES
 1711     declare sub glMinSampleShading(byval value as GLfloat)
 1712     declare sub glBlendEquationi(byval buf as GLuint, byval mode as GLenum)
 1713     declare sub glBlendEquationSeparatei(byval buf as GLuint, byval modeRGB as GLenum, byval modeAlpha as GLenum)
 1714     declare sub glBlendFunci(byval buf as GLuint, byval src as GLenum, byval dst as GLenum)
 1715     declare sub glBlendFuncSeparatei(byval buf as GLuint, byval srcRGB as GLenum, byval dstRGB as GLenum, byval srcAlpha as GLenum, byval dstAlpha as GLenum)
 1716     declare sub glDrawArraysIndirect(byval mode as GLenum, byval indirect as const any ptr)
 1717     declare sub glDrawElementsIndirect(byval mode as GLenum, byval type as GLenum, byval indirect as const any ptr)
 1718     declare sub glUniform1d(byval location as GLint, byval x as GLdouble)
 1719     declare sub glUniform2d(byval location as GLint, byval x as GLdouble, byval y as GLdouble)
 1720     declare sub glUniform3d(byval location as GLint, byval x as GLdouble, byval y as GLdouble, byval z as GLdouble)
 1721     declare sub glUniform4d(byval location as GLint, byval x as GLdouble, byval y as GLdouble, byval z as GLdouble, byval w as GLdouble)
 1722     declare sub glUniform1dv(byval location as GLint, byval count as GLsizei, byval value as const GLdouble ptr)
 1723     declare sub glUniform2dv(byval location as GLint, byval count as GLsizei, byval value as const GLdouble ptr)
 1724     declare sub glUniform3dv(byval location as GLint, byval count as GLsizei, byval value as const GLdouble ptr)
 1725     declare sub glUniform4dv(byval location as GLint, byval count as GLsizei, byval value as const GLdouble ptr)
 1726     declare sub glUniformMatrix2dv(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1727     declare sub glUniformMatrix3dv(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1728     declare sub glUniformMatrix4dv(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1729     declare sub glUniformMatrix2x3dv(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1730     declare sub glUniformMatrix2x4dv(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1731     declare sub glUniformMatrix3x2dv(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1732     declare sub glUniformMatrix3x4dv(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1733     declare sub glUniformMatrix4x2dv(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1734     declare sub glUniformMatrix4x3dv(byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1735     declare sub glGetUniformdv(byval program as GLuint, byval location as GLint, byval params as GLdouble ptr)
 1736     declare function glGetSubroutineUniformLocation(byval program as GLuint, byval shadertype as GLenum, byval name as const GLchar ptr) as GLint
 1737     declare function glGetSubroutineIndex(byval program as GLuint, byval shadertype as GLenum, byval name as const GLchar ptr) as GLuint
 1738     declare sub glGetActiveSubroutineUniformiv(byval program as GLuint, byval shadertype as GLenum, byval index as GLuint, byval pname as GLenum, byval values as GLint ptr)
 1739     declare sub glGetActiveSubroutineUniformName(byval program as GLuint, byval shadertype as GLenum, byval index as GLuint, byval bufsize as GLsizei, byval length as GLsizei ptr, byval name as GLchar ptr)
 1740     declare sub glGetActiveSubroutineName(byval program as GLuint, byval shadertype as GLenum, byval index as GLuint, byval bufsize as GLsizei, byval length as GLsizei ptr, byval name as GLchar ptr)
 1741     declare sub glUniformSubroutinesuiv(byval shadertype as GLenum, byval count as GLsizei, byval indices as const GLuint ptr)
 1742     declare sub glGetUniformSubroutineuiv(byval shadertype as GLenum, byval location as GLint, byval params as GLuint ptr)
 1743     declare sub glGetProgramStageiv(byval program as GLuint, byval shadertype as GLenum, byval pname as GLenum, byval values as GLint ptr)
 1744     declare sub glPatchParameteri(byval pname as GLenum, byval value as GLint)
 1745     declare sub glPatchParameterfv(byval pname as GLenum, byval values as const GLfloat ptr)
 1746     declare sub glBindTransformFeedback(byval target as GLenum, byval id as GLuint)
 1747     declare sub glDeleteTransformFeedbacks(byval n as GLsizei, byval ids as const GLuint ptr)
 1748     declare sub glGenTransformFeedbacks(byval n as GLsizei, byval ids as GLuint ptr)
 1749     declare function glIsTransformFeedback(byval id as GLuint) as GLboolean
 1750     declare sub glPauseTransformFeedback()
 1751     declare sub glResumeTransformFeedback()
 1752     declare sub glDrawTransformFeedback(byval mode as GLenum, byval id as GLuint)
 1753     declare sub glDrawTransformFeedbackStream(byval mode as GLenum, byval id as GLuint, byval stream as GLuint)
 1754     declare sub glBeginQueryIndexed(byval target as GLenum, byval index as GLuint, byval id as GLuint)
 1755     declare sub glEndQueryIndexed(byval target as GLenum, byval index as GLuint)
 1756     declare sub glGetQueryIndexediv(byval target as GLenum, byval index as GLuint, byval pname as GLenum, byval params as GLint ptr)
 1757 #endif
 1758 
 1759 const GL_VERSION_4_1 = 1
 1760 const GL_FIXED = &h140C
 1761 const GL_IMPLEMENTATION_COLOR_READ_TYPE = &h8B9A
 1762 const GL_IMPLEMENTATION_COLOR_READ_FORMAT = &h8B9B
 1763 const GL_LOW_FLOAT = &h8DF0
 1764 const GL_MEDIUM_FLOAT = &h8DF1
 1765 const GL_HIGH_FLOAT = &h8DF2
 1766 const GL_LOW_INT = &h8DF3
 1767 const GL_MEDIUM_INT = &h8DF4
 1768 const GL_HIGH_INT = &h8DF5
 1769 const GL_SHADER_COMPILER = &h8DFA
 1770 const GL_SHADER_BINARY_FORMATS = &h8DF8
 1771 const GL_NUM_SHADER_BINARY_FORMATS = &h8DF9
 1772 const GL_MAX_VERTEX_UNIFORM_VECTORS = &h8DFB
 1773 const GL_MAX_VARYING_VECTORS = &h8DFC
 1774 const GL_MAX_FRAGMENT_UNIFORM_VECTORS = &h8DFD
 1775 const GL_RGB565 = &h8D62
 1776 const GL_PROGRAM_BINARY_RETRIEVABLE_HINT = &h8257
 1777 const GL_PROGRAM_BINARY_LENGTH = &h8741
 1778 const GL_NUM_PROGRAM_BINARY_FORMATS = &h87FE
 1779 const GL_PROGRAM_BINARY_FORMATS = &h87FF
 1780 const GL_VERTEX_SHADER_BIT = &h00000001
 1781 const GL_FRAGMENT_SHADER_BIT = &h00000002
 1782 const GL_GEOMETRY_SHADER_BIT = &h00000004
 1783 const GL_TESS_CONTROL_SHADER_BIT = &h00000008
 1784 const GL_TESS_EVALUATION_SHADER_BIT = &h00000010
 1785 const GL_ALL_SHADER_BITS = &hFFFFFFFF
 1786 const GL_PROGRAM_SEPARABLE = &h8258
 1787 const GL_ACTIVE_PROGRAM = &h8259
 1788 const GL_PROGRAM_PIPELINE_BINDING = &h825A
 1789 const GL_MAX_VIEWPORTS = &h825B
 1790 const GL_VIEWPORT_SUBPIXEL_BITS = &h825C
 1791 const GL_VIEWPORT_BOUNDS_RANGE = &h825D
 1792 const GL_LAYER_PROVOKING_VERTEX = &h825E
 1793 const GL_VIEWPORT_INDEX_PROVOKING_VERTEX = &h825F
 1794 const GL_UNDEFINED_VERTEX = &h8260
 1795 
 1796 type PFNGLRELEASESHADERCOMPILERPROC as sub()
 1797 type PFNGLSHADERBINARYPROC as sub(byval count as GLsizei, byval shaders as const GLuint ptr, byval binaryformat as GLenum, byval binary as const any ptr, byval length as GLsizei)
 1798 type PFNGLGETSHADERPRECISIONFORMATPROC as sub(byval shadertype as GLenum, byval precisiontype as GLenum, byval range as GLint ptr, byval precision as GLint ptr)
 1799 type PFNGLDEPTHRANGEFPROC as sub(byval n as GLfloat, byval f as GLfloat)
 1800 type PFNGLCLEARDEPTHFPROC as sub(byval d as GLfloat)
 1801 type PFNGLGETPROGRAMBINARYPROC as sub(byval program as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval binaryFormat as GLenum ptr, byval binary as any ptr)
 1802 type PFNGLPROGRAMBINARYPROC as sub(byval program as GLuint, byval binaryFormat as GLenum, byval binary as const any ptr, byval length as GLsizei)
 1803 type PFNGLPROGRAMPARAMETERIPROC as sub(byval program as GLuint, byval pname as GLenum, byval value as GLint)
 1804 type PFNGLUSEPROGRAMSTAGESPROC as sub(byval pipeline as GLuint, byval stages as GLbitfield, byval program as GLuint)
 1805 type PFNGLACTIVESHADERPROGRAMPROC as sub(byval pipeline as GLuint, byval program as GLuint)
 1806 type PFNGLCREATESHADERPROGRAMVPROC as function(byval type as GLenum, byval count as GLsizei, byval strings as const GLchar const ptr ptr) as GLuint
 1807 type PFNGLBINDPROGRAMPIPELINEPROC as sub(byval pipeline as GLuint)
 1808 type PFNGLDELETEPROGRAMPIPELINESPROC as sub(byval n as GLsizei, byval pipelines as const GLuint ptr)
 1809 type PFNGLGENPROGRAMPIPELINESPROC as sub(byval n as GLsizei, byval pipelines as GLuint ptr)
 1810 type PFNGLISPROGRAMPIPELINEPROC as function(byval pipeline as GLuint) as GLboolean
 1811 type PFNGLGETPROGRAMPIPELINEIVPROC as sub(byval pipeline as GLuint, byval pname as GLenum, byval params as GLint ptr)
 1812 type PFNGLPROGRAMUNIFORM1IPROC as sub(byval program as GLuint, byval location as GLint, byval v0 as GLint)
 1813 type PFNGLPROGRAMUNIFORM1IVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLint ptr)
 1814 type PFNGLPROGRAMUNIFORM1FPROC as sub(byval program as GLuint, byval location as GLint, byval v0 as GLfloat)
 1815 type PFNGLPROGRAMUNIFORM1FVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLfloat ptr)
 1816 type PFNGLPROGRAMUNIFORM1DPROC as sub(byval program as GLuint, byval location as GLint, byval v0 as GLdouble)
 1817 type PFNGLPROGRAMUNIFORM1DVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLdouble ptr)
 1818 type PFNGLPROGRAMUNIFORM1UIPROC as sub(byval program as GLuint, byval location as GLint, byval v0 as GLuint)
 1819 type PFNGLPROGRAMUNIFORM1UIVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLuint ptr)
 1820 type PFNGLPROGRAMUNIFORM2IPROC as sub(byval program as GLuint, byval location as GLint, byval v0 as GLint, byval v1 as GLint)
 1821 type PFNGLPROGRAMUNIFORM2IVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLint ptr)
 1822 type PFNGLPROGRAMUNIFORM2FPROC as sub(byval program as GLuint, byval location as GLint, byval v0 as GLfloat, byval v1 as GLfloat)
 1823 type PFNGLPROGRAMUNIFORM2FVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLfloat ptr)
 1824 type PFNGLPROGRAMUNIFORM2DPROC as sub(byval program as GLuint, byval location as GLint, byval v0 as GLdouble, byval v1 as GLdouble)
 1825 type PFNGLPROGRAMUNIFORM2DVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLdouble ptr)
 1826 type PFNGLPROGRAMUNIFORM2UIPROC as sub(byval program as GLuint, byval location as GLint, byval v0 as GLuint, byval v1 as GLuint)
 1827 type PFNGLPROGRAMUNIFORM2UIVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLuint ptr)
 1828 type PFNGLPROGRAMUNIFORM3IPROC as sub(byval program as GLuint, byval location as GLint, byval v0 as GLint, byval v1 as GLint, byval v2 as GLint)
 1829 type PFNGLPROGRAMUNIFORM3IVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLint ptr)
 1830 type PFNGLPROGRAMUNIFORM3FPROC as sub(byval program as GLuint, byval location as GLint, byval v0 as GLfloat, byval v1 as GLfloat, byval v2 as GLfloat)
 1831 type PFNGLPROGRAMUNIFORM3FVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLfloat ptr)
 1832 type PFNGLPROGRAMUNIFORM3DPROC as sub(byval program as GLuint, byval location as GLint, byval v0 as GLdouble, byval v1 as GLdouble, byval v2 as GLdouble)
 1833 type PFNGLPROGRAMUNIFORM3DVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLdouble ptr)
 1834 type PFNGLPROGRAMUNIFORM3UIPROC as sub(byval program as GLuint, byval location as GLint, byval v0 as GLuint, byval v1 as GLuint, byval v2 as GLuint)
 1835 type PFNGLPROGRAMUNIFORM3UIVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLuint ptr)
 1836 type PFNGLPROGRAMUNIFORM4IPROC as sub(byval program as GLuint, byval location as GLint, byval v0 as GLint, byval v1 as GLint, byval v2 as GLint, byval v3 as GLint)
 1837 type PFNGLPROGRAMUNIFORM4IVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLint ptr)
 1838 type PFNGLPROGRAMUNIFORM4FPROC as sub(byval program as GLuint, byval location as GLint, byval v0 as GLfloat, byval v1 as GLfloat, byval v2 as GLfloat, byval v3 as GLfloat)
 1839 type PFNGLPROGRAMUNIFORM4FVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLfloat ptr)
 1840 type PFNGLPROGRAMUNIFORM4DPROC as sub(byval program as GLuint, byval location as GLint, byval v0 as GLdouble, byval v1 as GLdouble, byval v2 as GLdouble, byval v3 as GLdouble)
 1841 type PFNGLPROGRAMUNIFORM4DVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLdouble ptr)
 1842 type PFNGLPROGRAMUNIFORM4UIPROC as sub(byval program as GLuint, byval location as GLint, byval v0 as GLuint, byval v1 as GLuint, byval v2 as GLuint, byval v3 as GLuint)
 1843 type PFNGLPROGRAMUNIFORM4UIVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLuint ptr)
 1844 type PFNGLPROGRAMUNIFORMMATRIX2FVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
 1845 type PFNGLPROGRAMUNIFORMMATRIX3FVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
 1846 type PFNGLPROGRAMUNIFORMMATRIX4FVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
 1847 type PFNGLPROGRAMUNIFORMMATRIX2DVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1848 type PFNGLPROGRAMUNIFORMMATRIX3DVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1849 type PFNGLPROGRAMUNIFORMMATRIX4DVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1850 type PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
 1851 type PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
 1852 type PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
 1853 type PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
 1854 type PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
 1855 type PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
 1856 type PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1857 type PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1858 type PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1859 type PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1860 type PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1861 type PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1862 type PFNGLVALIDATEPROGRAMPIPELINEPROC as sub(byval pipeline as GLuint)
 1863 type PFNGLGETPROGRAMPIPELINEINFOLOGPROC as sub(byval pipeline as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval infoLog as GLchar ptr)
 1864 type PFNGLVERTEXATTRIBL1DPROC as sub(byval index as GLuint, byval x as GLdouble)
 1865 type PFNGLVERTEXATTRIBL2DPROC as sub(byval index as GLuint, byval x as GLdouble, byval y as GLdouble)
 1866 type PFNGLVERTEXATTRIBL3DPROC as sub(byval index as GLuint, byval x as GLdouble, byval y as GLdouble, byval z as GLdouble)
 1867 type PFNGLVERTEXATTRIBL4DPROC as sub(byval index as GLuint, byval x as GLdouble, byval y as GLdouble, byval z as GLdouble, byval w as GLdouble)
 1868 type PFNGLVERTEXATTRIBL1DVPROC as sub(byval index as GLuint, byval v as const GLdouble ptr)
 1869 type PFNGLVERTEXATTRIBL2DVPROC as sub(byval index as GLuint, byval v as const GLdouble ptr)
 1870 type PFNGLVERTEXATTRIBL3DVPROC as sub(byval index as GLuint, byval v as const GLdouble ptr)
 1871 type PFNGLVERTEXATTRIBL4DVPROC as sub(byval index as GLuint, byval v as const GLdouble ptr)
 1872 type PFNGLVERTEXATTRIBLPOINTERPROC as sub(byval index as GLuint, byval size as GLint, byval type as GLenum, byval stride as GLsizei, byval pointer as const any ptr)
 1873 type PFNGLGETVERTEXATTRIBLDVPROC as sub(byval index as GLuint, byval pname as GLenum, byval params as GLdouble ptr)
 1874 type PFNGLVIEWPORTARRAYVPROC as sub(byval first as GLuint, byval count as GLsizei, byval v as const GLfloat ptr)
 1875 type PFNGLVIEWPORTINDEXEDFPROC as sub(byval index as GLuint, byval x as GLfloat, byval y as GLfloat, byval w as GLfloat, byval h as GLfloat)
 1876 type PFNGLVIEWPORTINDEXEDFVPROC as sub(byval index as GLuint, byval v as const GLfloat ptr)
 1877 type PFNGLSCISSORARRAYVPROC as sub(byval first as GLuint, byval count as GLsizei, byval v as const GLint ptr)
 1878 type PFNGLSCISSORINDEXEDPROC as sub(byval index as GLuint, byval left as GLint, byval bottom as GLint, byval width as GLsizei, byval height as GLsizei)
 1879 type PFNGLSCISSORINDEXEDVPROC as sub(byval index as GLuint, byval v as const GLint ptr)
 1880 type PFNGLDEPTHRANGEARRAYVPROC as sub(byval first as GLuint, byval count as GLsizei, byval v as const GLdouble ptr)
 1881 type PFNGLDEPTHRANGEINDEXEDPROC as sub(byval index as GLuint, byval n as GLdouble, byval f as GLdouble)
 1882 type PFNGLGETFLOATI_VPROC as sub(byval target as GLenum, byval index as GLuint, byval data as GLfloat ptr)
 1883 type PFNGLGETDOUBLEI_VPROC as sub(byval target as GLenum, byval index as GLuint, byval data as GLdouble ptr)
 1884 
 1885 #ifdef GL_GLEXT_PROTOTYPES
 1886     declare sub glReleaseShaderCompiler()
 1887     declare sub glShaderBinary(byval count as GLsizei, byval shaders as const GLuint ptr, byval binaryformat as GLenum, byval binary as const any ptr, byval length as GLsizei)
 1888     declare sub glGetShaderPrecisionFormat(byval shadertype as GLenum, byval precisiontype as GLenum, byval range as GLint ptr, byval precision as GLint ptr)
 1889     declare sub glDepthRangef(byval n as GLfloat, byval f as GLfloat)
 1890     declare sub glClearDepthf(byval d as GLfloat)
 1891     declare sub glGetProgramBinary(byval program as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval binaryFormat as GLenum ptr, byval binary as any ptr)
 1892     declare sub glProgramBinary(byval program as GLuint, byval binaryFormat as GLenum, byval binary as const any ptr, byval length as GLsizei)
 1893     declare sub glProgramParameteri(byval program as GLuint, byval pname as GLenum, byval value as GLint)
 1894     declare sub glUseProgramStages(byval pipeline as GLuint, byval stages as GLbitfield, byval program as GLuint)
 1895     declare sub glActiveShaderProgram(byval pipeline as GLuint, byval program as GLuint)
 1896     declare function glCreateShaderProgramv(byval type as GLenum, byval count as GLsizei, byval strings as const GLchar const ptr ptr) as GLuint
 1897     declare sub glBindProgramPipeline(byval pipeline as GLuint)
 1898     declare sub glDeleteProgramPipelines(byval n as GLsizei, byval pipelines as const GLuint ptr)
 1899     declare sub glGenProgramPipelines(byval n as GLsizei, byval pipelines as GLuint ptr)
 1900     declare function glIsProgramPipeline(byval pipeline as GLuint) as GLboolean
 1901     declare sub glGetProgramPipelineiv(byval pipeline as GLuint, byval pname as GLenum, byval params as GLint ptr)
 1902     declare sub glProgramUniform1i(byval program as GLuint, byval location as GLint, byval v0 as GLint)
 1903     declare sub glProgramUniform1iv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLint ptr)
 1904     declare sub glProgramUniform1f(byval program as GLuint, byval location as GLint, byval v0 as GLfloat)
 1905     declare sub glProgramUniform1fv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLfloat ptr)
 1906     declare sub glProgramUniform1d(byval program as GLuint, byval location as GLint, byval v0 as GLdouble)
 1907     declare sub glProgramUniform1dv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLdouble ptr)
 1908     declare sub glProgramUniform1ui(byval program as GLuint, byval location as GLint, byval v0 as GLuint)
 1909     declare sub glProgramUniform1uiv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLuint ptr)
 1910     declare sub glProgramUniform2i(byval program as GLuint, byval location as GLint, byval v0 as GLint, byval v1 as GLint)
 1911     declare sub glProgramUniform2iv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLint ptr)
 1912     declare sub glProgramUniform2f(byval program as GLuint, byval location as GLint, byval v0 as GLfloat, byval v1 as GLfloat)
 1913     declare sub glProgramUniform2fv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLfloat ptr)
 1914     declare sub glProgramUniform2d(byval program as GLuint, byval location as GLint, byval v0 as GLdouble, byval v1 as GLdouble)
 1915     declare sub glProgramUniform2dv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLdouble ptr)
 1916     declare sub glProgramUniform2ui(byval program as GLuint, byval location as GLint, byval v0 as GLuint, byval v1 as GLuint)
 1917     declare sub glProgramUniform2uiv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLuint ptr)
 1918     declare sub glProgramUniform3i(byval program as GLuint, byval location as GLint, byval v0 as GLint, byval v1 as GLint, byval v2 as GLint)
 1919     declare sub glProgramUniform3iv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLint ptr)
 1920     declare sub glProgramUniform3f(byval program as GLuint, byval location as GLint, byval v0 as GLfloat, byval v1 as GLfloat, byval v2 as GLfloat)
 1921     declare sub glProgramUniform3fv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLfloat ptr)
 1922     declare sub glProgramUniform3d(byval program as GLuint, byval location as GLint, byval v0 as GLdouble, byval v1 as GLdouble, byval v2 as GLdouble)
 1923     declare sub glProgramUniform3dv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLdouble ptr)
 1924     declare sub glProgramUniform3ui(byval program as GLuint, byval location as GLint, byval v0 as GLuint, byval v1 as GLuint, byval v2 as GLuint)
 1925     declare sub glProgramUniform3uiv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLuint ptr)
 1926     declare sub glProgramUniform4i(byval program as GLuint, byval location as GLint, byval v0 as GLint, byval v1 as GLint, byval v2 as GLint, byval v3 as GLint)
 1927     declare sub glProgramUniform4iv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLint ptr)
 1928     declare sub glProgramUniform4f(byval program as GLuint, byval location as GLint, byval v0 as GLfloat, byval v1 as GLfloat, byval v2 as GLfloat, byval v3 as GLfloat)
 1929     declare sub glProgramUniform4fv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLfloat ptr)
 1930     declare sub glProgramUniform4d(byval program as GLuint, byval location as GLint, byval v0 as GLdouble, byval v1 as GLdouble, byval v2 as GLdouble, byval v3 as GLdouble)
 1931     declare sub glProgramUniform4dv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLdouble ptr)
 1932     declare sub glProgramUniform4ui(byval program as GLuint, byval location as GLint, byval v0 as GLuint, byval v1 as GLuint, byval v2 as GLuint, byval v3 as GLuint)
 1933     declare sub glProgramUniform4uiv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval value as const GLuint ptr)
 1934     declare sub glProgramUniformMatrix2fv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
 1935     declare sub glProgramUniformMatrix3fv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
 1936     declare sub glProgramUniformMatrix4fv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
 1937     declare sub glProgramUniformMatrix2dv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1938     declare sub glProgramUniformMatrix3dv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1939     declare sub glProgramUniformMatrix4dv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1940     declare sub glProgramUniformMatrix2x3fv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
 1941     declare sub glProgramUniformMatrix3x2fv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
 1942     declare sub glProgramUniformMatrix2x4fv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
 1943     declare sub glProgramUniformMatrix4x2fv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
 1944     declare sub glProgramUniformMatrix3x4fv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
 1945     declare sub glProgramUniformMatrix4x3fv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLfloat ptr)
 1946     declare sub glProgramUniformMatrix2x3dv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1947     declare sub glProgramUniformMatrix3x2dv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1948     declare sub glProgramUniformMatrix2x4dv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1949     declare sub glProgramUniformMatrix4x2dv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1950     declare sub glProgramUniformMatrix3x4dv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1951     declare sub glProgramUniformMatrix4x3dv(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval transpose as GLboolean, byval value as const GLdouble ptr)
 1952     declare sub glValidateProgramPipeline(byval pipeline as GLuint)
 1953     declare sub glGetProgramPipelineInfoLog(byval pipeline as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval infoLog as GLchar ptr)
 1954     declare sub glVertexAttribL1d(byval index as GLuint, byval x as GLdouble)
 1955     declare sub glVertexAttribL2d(byval index as GLuint, byval x as GLdouble, byval y as GLdouble)
 1956     declare sub glVertexAttribL3d(byval index as GLuint, byval x as GLdouble, byval y as GLdouble, byval z as GLdouble)
 1957     declare sub glVertexAttribL4d(byval index as GLuint, byval x as GLdouble, byval y as GLdouble, byval z as GLdouble, byval w as GLdouble)
 1958     declare sub glVertexAttribL1dv(byval index as GLuint, byval v as const GLdouble ptr)
 1959     declare sub glVertexAttribL2dv(byval index as GLuint, byval v as const GLdouble ptr)
 1960     declare sub glVertexAttribL3dv(byval index as GLuint, byval v as const GLdouble ptr)
 1961     declare sub glVertexAttribL4dv(byval index as GLuint, byval v as const GLdouble ptr)
 1962     declare sub glVertexAttribLPointer(byval index as GLuint, byval size as GLint, byval type as GLenum, byval stride as GLsizei, byval pointer as const any ptr)
 1963     declare sub glGetVertexAttribLdv(byval index as GLuint, byval pname as GLenum, byval params as GLdouble ptr)
 1964     declare sub glViewportArrayv(byval first as GLuint, byval count as GLsizei, byval v as const GLfloat ptr)
 1965     declare sub glViewportIndexedf(byval index as GLuint, byval x as GLfloat, byval y as GLfloat, byval w as GLfloat, byval h as GLfloat)
 1966     declare sub glViewportIndexedfv(byval index as GLuint, byval v as const GLfloat ptr)
 1967     declare sub glScissorArrayv(byval first as GLuint, byval count as GLsizei, byval v as const GLint ptr)
 1968     declare sub glScissorIndexed(byval index as GLuint, byval left as GLint, byval bottom as GLint, byval width as GLsizei, byval height as GLsizei)
 1969     declare sub glScissorIndexedv(byval index as GLuint, byval v as const GLint ptr)
 1970     declare sub glDepthRangeArrayv(byval first as GLuint, byval count as GLsizei, byval v as const GLdouble ptr)
 1971     declare sub glDepthRangeIndexed(byval index as GLuint, byval n as GLdouble, byval f as GLdouble)
 1972     declare sub glGetFloati_v(byval target as GLenum, byval index as GLuint, byval data as GLfloat ptr)
 1973     declare sub glGetDoublei_v(byval target as GLenum, byval index as GLuint, byval data as GLdouble ptr)
 1974 #endif
 1975 
 1976 const GL_VERSION_4_2 = 1
 1977 const GL_COPY_READ_BUFFER_BINDING = &h8F36
 1978 const GL_COPY_WRITE_BUFFER_BINDING = &h8F37
 1979 const GL_TRANSFORM_FEEDBACK_ACTIVE = &h8E24
 1980 const GL_TRANSFORM_FEEDBACK_PAUSED = &h8E23
 1981 const GL_UNPACK_COMPRESSED_BLOCK_WIDTH = &h9127
 1982 const GL_UNPACK_COMPRESSED_BLOCK_HEIGHT = &h9128
 1983 const GL_UNPACK_COMPRESSED_BLOCK_DEPTH = &h9129
 1984 const GL_UNPACK_COMPRESSED_BLOCK_SIZE = &h912A
 1985 const GL_PACK_COMPRESSED_BLOCK_WIDTH = &h912B
 1986 const GL_PACK_COMPRESSED_BLOCK_HEIGHT = &h912C
 1987 const GL_PACK_COMPRESSED_BLOCK_DEPTH = &h912D
 1988 const GL_PACK_COMPRESSED_BLOCK_SIZE = &h912E
 1989 const GL_NUM_SAMPLE_COUNTS = &h9380
 1990 const GL_MIN_MAP_BUFFER_ALIGNMENT = &h90BC
 1991 const GL_ATOMIC_COUNTER_BUFFER = &h92C0
 1992 const GL_ATOMIC_COUNTER_BUFFER_BINDING = &h92C1
 1993 const GL_ATOMIC_COUNTER_BUFFER_START = &h92C2
 1994 const GL_ATOMIC_COUNTER_BUFFER_SIZE = &h92C3
 1995 const GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE = &h92C4
 1996 const GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = &h92C5
 1997 const GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = &h92C6
 1998 const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = &h92C7
 1999 const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = &h92C8
 2000 const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = &h92C9
 2001 const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = &h92CA
 2002 const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = &h92CB
 2003 const GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = &h92CC
 2004 const GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = &h92CD
 2005 const GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = &h92CE
 2006 const GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = &h92CF
 2007 const GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = &h92D0
 2008 const GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = &h92D1
 2009 const GL_MAX_VERTEX_ATOMIC_COUNTERS = &h92D2
 2010 const GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS = &h92D3
 2011 const GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS = &h92D4
 2012 const GL_MAX_GEOMETRY_ATOMIC_COUNTERS = &h92D5
 2013 const GL_MAX_FRAGMENT_ATOMIC_COUNTERS = &h92D6
 2014 const GL_MAX_COMBINED_ATOMIC_COUNTERS = &h92D7
 2015 const GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE = &h92D8
 2016 const GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = &h92DC
 2017 const GL_ACTIVE_ATOMIC_COUNTER_BUFFERS = &h92D9
 2018 const GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = &h92DA
 2019 const GL_UNSIGNED_INT_ATOMIC_COUNTER = &h92DB
 2020 const GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT = &h00000001
 2021 const GL_ELEMENT_ARRAY_BARRIER_BIT = &h00000002
 2022 const GL_UNIFORM_BARRIER_BIT = &h00000004
 2023 const GL_TEXTURE_FETCH_BARRIER_BIT = &h00000008
 2024 const GL_SHADER_IMAGE_ACCESS_BARRIER_BIT = &h00000020
 2025 const GL_COMMAND_BARRIER_BIT = &h00000040
 2026 const GL_PIXEL_BUFFER_BARRIER_BIT = &h00000080
 2027 const GL_TEXTURE_UPDATE_BARRIER_BIT = &h00000100
 2028 const GL_BUFFER_UPDATE_BARRIER_BIT = &h00000200
 2029 const GL_FRAMEBUFFER_BARRIER_BIT = &h00000400
 2030 const GL_TRANSFORM_FEEDBACK_BARRIER_BIT = &h00000800
 2031 const GL_ATOMIC_COUNTER_BARRIER_BIT = &h00001000
 2032 const GL_ALL_BARRIER_BITS = &hFFFFFFFF
 2033 const GL_MAX_IMAGE_UNITS = &h8F38
 2034 const GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = &h8F39
 2035 const GL_IMAGE_BINDING_NAME = &h8F3A
 2036 const GL_IMAGE_BINDING_LEVEL = &h8F3B
 2037 const GL_IMAGE_BINDING_LAYERED = &h8F3C
 2038 const GL_IMAGE_BINDING_LAYER = &h8F3D
 2039 const GL_IMAGE_BINDING_ACCESS = &h8F3E
 2040 const GL_IMAGE_1D = &h904C
 2041 const GL_IMAGE_2D = &h904D
 2042 const GL_IMAGE_3D = &h904E
 2043 const GL_IMAGE_2D_RECT = &h904F
 2044 const GL_IMAGE_CUBE = &h9050
 2045 const GL_IMAGE_BUFFER = &h9051
 2046 const GL_IMAGE_1D_ARRAY = &h9052
 2047 const GL_IMAGE_2D_ARRAY = &h9053
 2048 const GL_IMAGE_CUBE_MAP_ARRAY = &h9054
 2049 const GL_IMAGE_2D_MULTISAMPLE = &h9055
 2050 const GL_IMAGE_2D_MULTISAMPLE_ARRAY = &h9056
 2051 const GL_INT_IMAGE_1D = &h9057
 2052 const GL_INT_IMAGE_2D = &h9058
 2053 const GL_INT_IMAGE_3D = &h9059
 2054 const GL_INT_IMAGE_2D_RECT = &h905A
 2055 const GL_INT_IMAGE_CUBE = &h905B
 2056 const GL_INT_IMAGE_BUFFER = &h905C
 2057 const GL_INT_IMAGE_1D_ARRAY = &h905D
 2058 const GL_INT_IMAGE_2D_ARRAY = &h905E
 2059 const GL_INT_IMAGE_CUBE_MAP_ARRAY = &h905F
 2060 const GL_INT_IMAGE_2D_MULTISAMPLE = &h9060
 2061 const GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY = &h9061
 2062 const GL_UNSIGNED_INT_IMAGE_1D = &h9062
 2063 const GL_UNSIGNED_INT_IMAGE_2D = &h9063
 2064 const GL_UNSIGNED_INT_IMAGE_3D = &h9064
 2065 const GL_UNSIGNED_INT_IMAGE_2D_RECT = &h9065
 2066 const GL_UNSIGNED_INT_IMAGE_CUBE = &h9066
 2067 const GL_UNSIGNED_INT_IMAGE_BUFFER = &h9067
 2068 const GL_UNSIGNED_INT_IMAGE_1D_ARRAY = &h9068
 2069 const GL_UNSIGNED_INT_IMAGE_2D_ARRAY = &h9069
 2070 const GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = &h906A
 2071 const GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = &h906B
 2072 const GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = &h906C
 2073 const GL_MAX_IMAGE_SAMPLES = &h906D
 2074 const GL_IMAGE_BINDING_FORMAT = &h906E
 2075 const GL_IMAGE_FORMAT_COMPATIBILITY_TYPE = &h90C7
 2076 const GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = &h90C8
 2077 const GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = &h90C9
 2078 const GL_MAX_VERTEX_IMAGE_UNIFORMS = &h90CA
 2079 const GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS = &h90CB
 2080 const GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS = &h90CC
 2081 const GL_MAX_GEOMETRY_IMAGE_UNIFORMS = &h90CD
 2082 const GL_MAX_FRAGMENT_IMAGE_UNIFORMS = &h90CE
 2083 const GL_MAX_COMBINED_IMAGE_UNIFORMS = &h90CF
 2084 const GL_COMPRESSED_RGBA_BPTC_UNORM = &h8E8C
 2085 const GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM = &h8E8D
 2086 const GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT = &h8E8E
 2087 const GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = &h8E8F
 2088 const GL_TEXTURE_IMMUTABLE_FORMAT = &h912F
 2089 
 2090 type PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC as sub(byval mode as GLenum, byval first as GLint, byval count as GLsizei, byval instancecount as GLsizei, byval baseinstance as GLuint)
 2091 type PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC as sub(byval mode as GLenum, byval count as GLsizei, byval type as GLenum, byval indices as const any ptr, byval instancecount as GLsizei, byval baseinstance as GLuint)
 2092 type PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC as sub(byval mode as GLenum, byval count as GLsizei, byval type as GLenum, byval indices as const any ptr, byval instancecount as GLsizei, byval basevertex as GLint, byval baseinstance as GLuint)
 2093 type PFNGLGETINTERNALFORMATIVPROC as sub(byval target as GLenum, byval internalformat as GLenum, byval pname as GLenum, byval bufSize as GLsizei, byval params as GLint ptr)
 2094 type PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC as sub(byval program as GLuint, byval bufferIndex as GLuint, byval pname as GLenum, byval params as GLint ptr)
 2095 type PFNGLBINDIMAGETEXTUREPROC as sub(byval unit as GLuint, byval texture as GLuint, byval level as GLint, byval layered as GLboolean, byval layer as GLint, byval access as GLenum, byval format as GLenum)
 2096 type PFNGLMEMORYBARRIERPROC as sub(byval barriers as GLbitfield)
 2097 type PFNGLTEXSTORAGE1DPROC as sub(byval target as GLenum, byval levels as GLsizei, byval internalformat as GLenum, byval width as GLsizei)
 2098 type PFNGLTEXSTORAGE2DPROC as sub(byval target as GLenum, byval levels as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei)
 2099 type PFNGLTEXSTORAGE3DPROC as sub(byval target as GLenum, byval levels as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei)
 2100 type PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC as sub(byval mode as GLenum, byval id as GLuint, byval instancecount as GLsizei)
 2101 type PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC as sub(byval mode as GLenum, byval id as GLuint, byval stream as GLuint, byval instancecount as GLsizei)
 2102 
 2103 #ifdef GL_GLEXT_PROTOTYPES
 2104     declare sub glDrawArraysInstancedBaseInstance(byval mode as GLenum, byval first as GLint, byval count as GLsizei, byval instancecount as GLsizei, byval baseinstance as GLuint)
 2105     declare sub glDrawElementsInstancedBaseInstance(byval mode as GLenum, byval count as GLsizei, byval type as GLenum, byval indices as const any ptr, byval instancecount as GLsizei, byval baseinstance as GLuint)
 2106     declare sub glDrawElementsInstancedBaseVertexBaseInstance(byval mode as GLenum, byval count as GLsizei, byval type as GLenum, byval indices as const any ptr, byval instancecount as GLsizei, byval basevertex as GLint, byval baseinstance as GLuint)
 2107     declare sub glGetInternalformativ(byval target as GLenum, byval internalformat as GLenum, byval pname as GLenum, byval bufSize as GLsizei, byval params as GLint ptr)
 2108     declare sub glGetActiveAtomicCounterBufferiv(byval program as GLuint, byval bufferIndex as GLuint, byval pname as GLenum, byval params as GLint ptr)
 2109     declare sub glBindImageTexture(byval unit as GLuint, byval texture as GLuint, byval level as GLint, byval layered as GLboolean, byval layer as GLint, byval access as GLenum, byval format as GLenum)
 2110     declare sub glMemoryBarrier(byval barriers as GLbitfield)
 2111     declare sub glTexStorage1D(byval target as GLenum, byval levels as GLsizei, byval internalformat as GLenum, byval width as GLsizei)
 2112     declare sub glTexStorage2D(byval target as GLenum, byval levels as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei)
 2113     declare sub glTexStorage3D(byval target as GLenum, byval levels as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei)
 2114     declare sub glDrawTransformFeedbackInstanced(byval mode as GLenum, byval id as GLuint, byval instancecount as GLsizei)
 2115     declare sub glDrawTransformFeedbackStreamInstanced(byval mode as GLenum, byval id as GLuint, byval stream as GLuint, byval instancecount as GLsizei)
 2116 #endif
 2117 
 2118 const GL_VERSION_4_3 = 1
 2119 type GLDEBUGPROC as sub(byval source as GLenum, byval type as GLenum, byval id as GLuint, byval severity as GLenum, byval length as GLsizei, byval message as const GLchar ptr, byval userParam as const any ptr)
 2120 const GL_NUM_SHADING_LANGUAGE_VERSIONS = &h82E9
 2121 const GL_VERTEX_ATTRIB_ARRAY_LONG = &h874E
 2122 const GL_COMPRESSED_RGB8_ETC2 = &h9274
 2123 const GL_COMPRESSED_SRGB8_ETC2 = &h9275
 2124 const GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = &h9276
 2125 const GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = &h9277
 2126 const GL_COMPRESSED_RGBA8_ETC2_EAC = &h9278
 2127 const GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = &h9279
 2128 const GL_COMPRESSED_R11_EAC = &h9270
 2129 const GL_COMPRESSED_SIGNED_R11_EAC = &h9271
 2130 const GL_COMPRESSED_RG11_EAC = &h9272
 2131 const GL_COMPRESSED_SIGNED_RG11_EAC = &h9273
 2132 const GL_PRIMITIVE_RESTART_FIXED_INDEX = &h8D69
 2133 const GL_ANY_SAMPLES_PASSED_CONSERVATIVE = &h8D6A
 2134 const GL_MAX_ELEMENT_INDEX = &h8D6B
 2135 const GL_COMPUTE_SHADER = &h91B9
 2136 const GL_MAX_COMPUTE_UNIFORM_BLOCKS = &h91BB
 2137 const GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS = &h91BC
 2138 const GL_MAX_COMPUTE_IMAGE_UNIFORMS = &h91BD
 2139 const GL_MAX_COMPUTE_SHARED_MEMORY_SIZE = &h8262
 2140 const GL_MAX_COMPUTE_UNIFORM_COMPONENTS = &h8263
 2141 const GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = &h8264
 2142 const GL_MAX_COMPUTE_ATOMIC_COUNTERS = &h8265
 2143 const GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = &h8266
 2144 const GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS = &h90EB
 2145 const GL_MAX_COMPUTE_WORK_GROUP_COUNT = &h91BE
 2146 const GL_MAX_COMPUTE_WORK_GROUP_SIZE = &h91BF
 2147 const GL_COMPUTE_WORK_GROUP_SIZE = &h8267
 2148 const GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = &h90EC
 2149 const GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = &h90ED
 2150 const GL_DISPATCH_INDIRECT_BUFFER = &h90EE
 2151 const GL_DISPATCH_INDIRECT_BUFFER_BINDING = &h90EF
 2152 const GL_COMPUTE_SHADER_BIT = &h00000020
 2153 const GL_DEBUG_OUTPUT_SYNCHRONOUS = &h8242
 2154 const GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = &h8243
 2155 const GL_DEBUG_CALLBACK_FUNCTION = &h8244
 2156 const GL_DEBUG_CALLBACK_USER_PARAM = &h8245
 2157 const GL_DEBUG_SOURCE_API = &h8246
 2158 const GL_DEBUG_SOURCE_WINDOW_SYSTEM = &h8247
 2159 const GL_DEBUG_SOURCE_SHADER_COMPILER = &h8248
 2160 const GL_DEBUG_SOURCE_THIRD_PARTY = &h8249
 2161 const GL_DEBUG_SOURCE_APPLICATION = &h824A
 2162 const GL_DEBUG_SOURCE_OTHER = &h824B
 2163 const GL_DEBUG_TYPE_ERROR = &h824C
 2164 const GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR = &h824D
 2165 const GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR = &h824E
 2166 const GL_DEBUG_TYPE_PORTABILITY = &h824F
 2167 const GL_DEBUG_TYPE_PERFORMANCE = &h8250
 2168 const GL_DEBUG_TYPE_OTHER = &h8251
 2169 const GL_MAX_DEBUG_MESSAGE_LENGTH = &h9143
 2170 const GL_MAX_DEBUG_LOGGED_MESSAGES = &h9144
 2171 const GL_DEBUG_LOGGED_MESSAGES = &h9145
 2172 const GL_DEBUG_SEVERITY_HIGH = &h9146
 2173 const GL_DEBUG_SEVERITY_MEDIUM = &h9147
 2174 const GL_DEBUG_SEVERITY_LOW = &h9148
 2175 const GL_DEBUG_TYPE_MARKER = &h8268
 2176 const GL_DEBUG_TYPE_PUSH_GROUP = &h8269
 2177 const GL_DEBUG_TYPE_POP_GROUP = &h826A
 2178 const GL_DEBUG_SEVERITY_NOTIFICATION = &h826B
 2179 const GL_MAX_DEBUG_GROUP_STACK_DEPTH = &h826C
 2180 const GL_DEBUG_GROUP_STACK_DEPTH = &h826D
 2181 const GL_BUFFER = &h82E0
 2182 const GL_SHADER = &h82E1
 2183 const GL_PROGRAM = &h82E2
 2184 const GL_QUERY = &h82E3
 2185 const GL_PROGRAM_PIPELINE = &h82E4
 2186 const GL_SAMPLER = &h82E6
 2187 const GL_MAX_LABEL_LENGTH = &h82E8
 2188 const GL_DEBUG_OUTPUT = &h92E0
 2189 const GL_CONTEXT_FLAG_DEBUG_BIT = &h00000002
 2190 const GL_MAX_UNIFORM_LOCATIONS = &h826E
 2191 const GL_FRAMEBUFFER_DEFAULT_WIDTH = &h9310
 2192 const GL_FRAMEBUFFER_DEFAULT_HEIGHT = &h9311
 2193 const GL_FRAMEBUFFER_DEFAULT_LAYERS = &h9312
 2194 const GL_FRAMEBUFFER_DEFAULT_SAMPLES = &h9313
 2195 const GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = &h9314
 2196 const GL_MAX_FRAMEBUFFER_WIDTH = &h9315
 2197 const GL_MAX_FRAMEBUFFER_HEIGHT = &h9316
 2198 const GL_MAX_FRAMEBUFFER_LAYERS = &h9317
 2199 const GL_MAX_FRAMEBUFFER_SAMPLES = &h9318
 2200 const GL_INTERNALFORMAT_SUPPORTED = &h826F
 2201 const GL_INTERNALFORMAT_PREFERRED = &h8270
 2202 const GL_INTERNALFORMAT_RED_SIZE = &h8271
 2203 const GL_INTERNALFORMAT_GREEN_SIZE = &h8272
 2204 const GL_INTERNALFORMAT_BLUE_SIZE = &h8273
 2205 const GL_INTERNALFORMAT_ALPHA_SIZE = &h8274
 2206 const GL_INTERNALFORMAT_DEPTH_SIZE = &h8275
 2207 const GL_INTERNALFORMAT_STENCIL_SIZE = &h8276
 2208 const GL_INTERNALFORMAT_SHARED_SIZE = &h8277
 2209 const GL_INTERNALFORMAT_RED_TYPE = &h8278
 2210 const GL_INTERNALFORMAT_GREEN_TYPE = &h8279
 2211 const GL_INTERNALFORMAT_BLUE_TYPE = &h827A
 2212 const GL_INTERNALFORMAT_ALPHA_TYPE = &h827B
 2213 const GL_INTERNALFORMAT_DEPTH_TYPE = &h827C
 2214 const GL_INTERNALFORMAT_STENCIL_TYPE = &h827D
 2215 const GL_MAX_WIDTH = &h827E
 2216 const GL_MAX_HEIGHT = &h827F
 2217 const GL_MAX_DEPTH = &h8280
 2218 const GL_MAX_LAYERS = &h8281
 2219 const GL_MAX_COMBINED_DIMENSIONS = &h8282
 2220 const GL_COLOR_COMPONENTS = &h8283
 2221 const GL_DEPTH_COMPONENTS = &h8284
 2222 const GL_STENCIL_COMPONENTS = &h8285
 2223 const GL_COLOR_RENDERABLE = &h8286
 2224 const GL_DEPTH_RENDERABLE = &h8287
 2225 const GL_STENCIL_RENDERABLE = &h8288
 2226 const GL_FRAMEBUFFER_RENDERABLE = &h8289
 2227 const GL_FRAMEBUFFER_RENDERABLE_LAYERED = &h828A
 2228 const GL_FRAMEBUFFER_BLEND = &h828B
 2229 const GL_READ_PIXELS = &h828C
 2230 const GL_READ_PIXELS_FORMAT = &h828D
 2231 const GL_READ_PIXELS_TYPE = &h828E
 2232 const GL_TEXTURE_IMAGE_FORMAT = &h828F
 2233 const GL_TEXTURE_IMAGE_TYPE = &h8290
 2234 const GL_GET_TEXTURE_IMAGE_FORMAT = &h8291
 2235 const GL_GET_TEXTURE_IMAGE_TYPE = &h8292
 2236 const GL_MIPMAP = &h8293
 2237 const GL_MANUAL_GENERATE_MIPMAP = &h8294
 2238 const GL_AUTO_GENERATE_MIPMAP = &h8295
 2239 const GL_COLOR_ENCODING = &h8296
 2240 const GL_SRGB_READ = &h8297
 2241 const GL_SRGB_WRITE = &h8298
 2242 const GL_FILTER = &h829A
 2243 const GL_VERTEX_TEXTURE = &h829B
 2244 const GL_TESS_CONTROL_TEXTURE = &h829C
 2245 const GL_TESS_EVALUATION_TEXTURE = &h829D
 2246 const GL_GEOMETRY_TEXTURE = &h829E
 2247 const GL_FRAGMENT_TEXTURE = &h829F
 2248 const GL_COMPUTE_TEXTURE = &h82A0
 2249 const GL_TEXTURE_SHADOW = &h82A1
 2250 const GL_TEXTURE_GATHER = &h82A2
 2251 const GL_TEXTURE_GATHER_SHADOW = &h82A3
 2252 const GL_SHADER_IMAGE_LOAD = &h82A4
 2253 const GL_SHADER_IMAGE_STORE = &h82A5
 2254 const GL_SHADER_IMAGE_ATOMIC = &h82A6
 2255 const GL_IMAGE_TEXEL_SIZE = &h82A7
 2256 const GL_IMAGE_COMPATIBILITY_CLASS = &h82A8
 2257 const GL_IMAGE_PIXEL_FORMAT = &h82A9
 2258 const GL_IMAGE_PIXEL_TYPE = &h82AA
 2259 const GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = &h82AC
 2260 const GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = &h82AD
 2261 const GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = &h82AE
 2262 const GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = &h82AF
 2263 const GL_TEXTURE_COMPRESSED_BLOCK_WIDTH = &h82B1
 2264 const GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT = &h82B2
 2265 const GL_TEXTURE_COMPRESSED_BLOCK_SIZE = &h82B3
 2266 const GL_CLEAR_BUFFER = &h82B4
 2267 const GL_TEXTURE_VIEW = &h82B5
 2268 const GL_VIEW_COMPATIBILITY_CLASS = &h82B6
 2269 const GL_FULL_SUPPORT = &h82B7
 2270 const GL_CAVEAT_SUPPORT = &h82B8
 2271 const GL_IMAGE_CLASS_4_X_32 = &h82B9
 2272 const GL_IMAGE_CLASS_2_X_32 = &h82BA
 2273 const GL_IMAGE_CLASS_1_X_32 = &h82BB
 2274 const GL_IMAGE_CLASS_4_X_16 = &h82BC
 2275 const GL_IMAGE_CLASS_2_X_16 = &h82BD
 2276 const GL_IMAGE_CLASS_1_X_16 = &h82BE
 2277 const GL_IMAGE_CLASS_4_X_8 = &h82BF
 2278 const GL_IMAGE_CLASS_2_X_8 = &h82C0
 2279 const GL_IMAGE_CLASS_1_X_8 = &h82C1
 2280 const GL_IMAGE_CLASS_11_11_10 = &h82C2
 2281 const GL_IMAGE_CLASS_10_10_10_2 = &h82C3
 2282 const GL_VIEW_CLASS_128_BITS = &h82C4
 2283 const GL_VIEW_CLASS_96_BITS = &h82C5
 2284 const GL_VIEW_CLASS_64_BITS = &h82C6
 2285 const GL_VIEW_CLASS_48_BITS = &h82C7
 2286 const GL_VIEW_CLASS_32_BITS = &h82C8
 2287 const GL_VIEW_CLASS_24_BITS = &h82C9
 2288 const GL_VIEW_CLASS_16_BITS = &h82CA
 2289 const GL_VIEW_CLASS_8_BITS = &h82CB
 2290 const GL_VIEW_CLASS_S3TC_DXT1_RGB = &h82CC
 2291 const GL_VIEW_CLASS_S3TC_DXT1_RGBA = &h82CD
 2292 const GL_VIEW_CLASS_S3TC_DXT3_RGBA = &h82CE
 2293 const GL_VIEW_CLASS_S3TC_DXT5_RGBA = &h82CF
 2294 const GL_VIEW_CLASS_RGTC1_RED = &h82D0
 2295 const GL_VIEW_CLASS_RGTC2_RG = &h82D1
 2296 const GL_VIEW_CLASS_BPTC_UNORM = &h82D2
 2297 const GL_VIEW_CLASS_BPTC_FLOAT = &h82D3
 2298 const GL_UNIFORM = &h92E1
 2299 const GL_UNIFORM_BLOCK = &h92E2
 2300 const GL_PROGRAM_INPUT = &h92E3
 2301 const GL_PROGRAM_OUTPUT = &h92E4
 2302 const GL_BUFFER_VARIABLE = &h92E5
 2303 const GL_SHADER_STORAGE_BLOCK = &h92E6
 2304 const GL_VERTEX_SUBROUTINE = &h92E8
 2305 const GL_TESS_CONTROL_SUBROUTINE = &h92E9
 2306 const GL_TESS_EVALUATION_SUBROUTINE = &h92EA
 2307 const GL_GEOMETRY_SUBROUTINE = &h92EB
 2308 const GL_FRAGMENT_SUBROUTINE = &h92EC
 2309 const GL_COMPUTE_SUBROUTINE = &h92ED
 2310 const GL_VERTEX_SUBROUTINE_UNIFORM = &h92EE
 2311 const GL_TESS_CONTROL_SUBROUTINE_UNIFORM = &h92EF
 2312 const GL_TESS_EVALUATION_SUBROUTINE_UNIFORM = &h92F0
 2313 const GL_GEOMETRY_SUBROUTINE_UNIFORM = &h92F1
 2314 const GL_FRAGMENT_SUBROUTINE_UNIFORM = &h92F2
 2315 const GL_COMPUTE_SUBROUTINE_UNIFORM = &h92F3
 2316 const GL_TRANSFORM_FEEDBACK_VARYING = &h92F4
 2317 const GL_ACTIVE_RESOURCES = &h92F5
 2318 const GL_MAX_NAME_LENGTH = &h92F6
 2319 const GL_MAX_NUM_ACTIVE_VARIABLES = &h92F7
 2320 const GL_MAX_NUM_COMPATIBLE_SUBROUTINES = &h92F8
 2321 const GL_NAME_LENGTH = &h92F9
 2322 const GL_TYPE = &h92FA
 2323 const GL_ARRAY_SIZE = &h92FB
 2324 const GL_OFFSET = &h92FC
 2325 const GL_BLOCK_INDEX = &h92FD
 2326 const GL_ARRAY_STRIDE = &h92FE
 2327 const GL_MATRIX_STRIDE = &h92FF
 2328 const GL_IS_ROW_MAJOR = &h9300
 2329 const GL_ATOMIC_COUNTER_BUFFER_INDEX = &h9301
 2330 const GL_BUFFER_BINDING = &h9302
 2331 const GL_BUFFER_DATA_SIZE = &h9303
 2332 const GL_NUM_ACTIVE_VARIABLES = &h9304
 2333 const GL_ACTIVE_VARIABLES = &h9305
 2334 const GL_REFERENCED_BY_VERTEX_SHADER = &h9306
 2335 const GL_REFERENCED_BY_TESS_CONTROL_SHADER = &h9307
 2336 const GL_REFERENCED_BY_TESS_EVALUATION_SHADER = &h9308
 2337 const GL_REFERENCED_BY_GEOMETRY_SHADER = &h9309
 2338 const GL_REFERENCED_BY_FRAGMENT_SHADER = &h930A
 2339 const GL_REFERENCED_BY_COMPUTE_SHADER = &h930B
 2340 const GL_TOP_LEVEL_ARRAY_SIZE = &h930C
 2341 const GL_TOP_LEVEL_ARRAY_STRIDE = &h930D
 2342 const GL_LOCATION = &h930E
 2343 const GL_LOCATION_INDEX = &h930F
 2344 const GL_IS_PER_PATCH = &h92E7
 2345 const GL_SHADER_STORAGE_BUFFER = &h90D2
 2346 const GL_SHADER_STORAGE_BUFFER_BINDING = &h90D3
 2347 const GL_SHADER_STORAGE_BUFFER_START = &h90D4
 2348 const GL_SHADER_STORAGE_BUFFER_SIZE = &h90D5
 2349 const GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS = &h90D6
 2350 const GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = &h90D7
 2351 const GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = &h90D8
 2352 const GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = &h90D9
 2353 const GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = &h90DA
 2354 const GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS = &h90DB
 2355 const GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS = &h90DC
 2356 const GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS = &h90DD
 2357 const GL_MAX_SHADER_STORAGE_BLOCK_SIZE = &h90DE
 2358 const GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = &h90DF
 2359 const GL_SHADER_STORAGE_BARRIER_BIT = &h00002000
 2360 const GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES = &h8F39
 2361 const GL_DEPTH_STENCIL_TEXTURE_MODE = &h90EA
 2362 const GL_TEXTURE_BUFFER_OFFSET = &h919D
 2363 const GL_TEXTURE_BUFFER_SIZE = &h919E
 2364 const GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT = &h919F
 2365 const GL_TEXTURE_VIEW_MIN_LEVEL = &h82DB
 2366 const GL_TEXTURE_VIEW_NUM_LEVELS = &h82DC
 2367 const GL_TEXTURE_VIEW_MIN_LAYER = &h82DD
 2368 const GL_TEXTURE_VIEW_NUM_LAYERS = &h82DE
 2369 const GL_TEXTURE_IMMUTABLE_LEVELS = &h82DF
 2370 const GL_VERTEX_ATTRIB_BINDING = &h82D4
 2371 const GL_VERTEX_ATTRIB_RELATIVE_OFFSET = &h82D5
 2372 const GL_VERTEX_BINDING_DIVISOR = &h82D6
 2373 const GL_VERTEX_BINDING_OFFSET = &h82D7
 2374 const GL_VERTEX_BINDING_STRIDE = &h82D8
 2375 const GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = &h82D9
 2376 const GL_MAX_VERTEX_ATTRIB_BINDINGS = &h82DA
 2377 const GL_VERTEX_BINDING_BUFFER = &h8F4F
 2378 const GL_DISPLAY_LIST = &h82E7
 2379 
 2380 type PFNGLCLEARBUFFERDATAPROC as sub(byval target as GLenum, byval internalformat as GLenum, byval format as GLenum, byval type as GLenum, byval data as const any ptr)
 2381 type PFNGLCLEARBUFFERSUBDATAPROC as sub(byval target as GLenum, byval internalformat as GLenum, byval offset as GLintptr, byval size as GLsizeiptr, byval format as GLenum, byval type as GLenum, byval data as const any ptr)
 2382 type PFNGLDISPATCHCOMPUTEPROC as sub(byval num_groups_x as GLuint, byval num_groups_y as GLuint, byval num_groups_z as GLuint)
 2383 type PFNGLDISPATCHCOMPUTEINDIRECTPROC as sub(byval indirect as GLintptr)
 2384 type PFNGLCOPYIMAGESUBDATAPROC as sub(byval srcName as GLuint, byval srcTarget as GLenum, byval srcLevel as GLint, byval srcX as GLint, byval srcY as GLint, byval srcZ as GLint, byval dstName as GLuint, byval dstTarget as GLenum, byval dstLevel as GLint, byval dstX as GLint, byval dstY as GLint, byval dstZ as GLint, byval srcWidth as GLsizei, byval srcHeight as GLsizei, byval srcDepth as GLsizei)
 2385 type PFNGLFRAMEBUFFERPARAMETERIPROC as sub(byval target as GLenum, byval pname as GLenum, byval param as GLint)
 2386 type PFNGLGETFRAMEBUFFERPARAMETERIVPROC as sub(byval target as GLenum, byval pname as GLenum, byval params as GLint ptr)
 2387 type PFNGLGETINTERNALFORMATI64VPROC as sub(byval target as GLenum, byval internalformat as GLenum, byval pname as GLenum, byval bufSize as GLsizei, byval params as GLint64 ptr)
 2388 type PFNGLINVALIDATETEXSUBIMAGEPROC as sub(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei)
 2389 type PFNGLINVALIDATETEXIMAGEPROC as sub(byval texture as GLuint, byval level as GLint)
 2390 type PFNGLINVALIDATEBUFFERSUBDATAPROC as sub(byval buffer as GLuint, byval offset as GLintptr, byval length as GLsizeiptr)
 2391 type PFNGLINVALIDATEBUFFERDATAPROC as sub(byval buffer as GLuint)
 2392 type PFNGLINVALIDATEFRAMEBUFFERPROC as sub(byval target as GLenum, byval numAttachments as GLsizei, byval attachments as const GLenum ptr)
 2393 type PFNGLINVALIDATESUBFRAMEBUFFERPROC as sub(byval target as GLenum, byval numAttachments as GLsizei, byval attachments as const GLenum ptr, byval x as GLint, byval y as GLint, byval width as GLsizei, byval height as GLsizei)
 2394 type PFNGLMULTIDRAWARRAYSINDIRECTPROC as sub(byval mode as GLenum, byval indirect as const any ptr, byval drawcount as GLsizei, byval stride as GLsizei)
 2395 type PFNGLMULTIDRAWELEMENTSINDIRECTPROC as sub(byval mode as GLenum, byval type as GLenum, byval indirect as const any ptr, byval drawcount as GLsizei, byval stride as GLsizei)
 2396 type PFNGLGETPROGRAMINTERFACEIVPROC as sub(byval program as GLuint, byval programInterface as GLenum, byval pname as GLenum, byval params as GLint ptr)
 2397 type PFNGLGETPROGRAMRESOURCEINDEXPROC as function(byval program as GLuint, byval programInterface as GLenum, byval name as const GLchar ptr) as GLuint
 2398 type PFNGLGETPROGRAMRESOURCENAMEPROC as sub(byval program as GLuint, byval programInterface as GLenum, byval index as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval name as GLchar ptr)
 2399 type PFNGLGETPROGRAMRESOURCEIVPROC as sub(byval program as GLuint, byval programInterface as GLenum, byval index as GLuint, byval propCount as GLsizei, byval props as const GLenum ptr, byval bufSize as GLsizei, byval length as GLsizei ptr, byval params as GLint ptr)
 2400 type PFNGLGETPROGRAMRESOURCELOCATIONPROC as function(byval program as GLuint, byval programInterface as GLenum, byval name as const GLchar ptr) as GLint
 2401 type PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC as function(byval program as GLuint, byval programInterface as GLenum, byval name as const GLchar ptr) as GLint
 2402 type PFNGLSHADERSTORAGEBLOCKBINDINGPROC as sub(byval program as GLuint, byval storageBlockIndex as GLuint, byval storageBlockBinding as GLuint)
 2403 type PFNGLTEXBUFFERRANGEPROC as sub(byval target as GLenum, byval internalformat as GLenum, byval buffer as GLuint, byval offset as GLintptr, byval size as GLsizeiptr)
 2404 type PFNGLTEXSTORAGE2DMULTISAMPLEPROC as sub(byval target as GLenum, byval samples as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval fixedsamplelocations as GLboolean)
 2405 type PFNGLTEXSTORAGE3DMULTISAMPLEPROC as sub(byval target as GLenum, byval samples as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval fixedsamplelocations as GLboolean)
 2406 type PFNGLTEXTUREVIEWPROC as sub(byval texture as GLuint, byval target as GLenum, byval origtexture as GLuint, byval internalformat as GLenum, byval minlevel as GLuint, byval numlevels as GLuint, byval minlayer as GLuint, byval numlayers as GLuint)
 2407 type PFNGLBINDVERTEXBUFFERPROC as sub(byval bindingindex as GLuint, byval buffer as GLuint, byval offset as GLintptr, byval stride as GLsizei)
 2408 type PFNGLVERTEXATTRIBFORMATPROC as sub(byval attribindex as GLuint, byval size as GLint, byval type as GLenum, byval normalized as GLboolean, byval relativeoffset as GLuint)
 2409 type PFNGLVERTEXATTRIBIFORMATPROC as sub(byval attribindex as GLuint, byval size as GLint, byval type as GLenum, byval relativeoffset as GLuint)
 2410 type PFNGLVERTEXATTRIBLFORMATPROC as sub(byval attribindex as GLuint, byval size as GLint, byval type as GLenum, byval relativeoffset as GLuint)
 2411 type PFNGLVERTEXATTRIBBINDINGPROC as sub(byval attribindex as GLuint, byval bindingindex as GLuint)
 2412 type PFNGLVERTEXBINDINGDIVISORPROC as sub(byval bindingindex as GLuint, byval divisor as GLuint)
 2413 type PFNGLDEBUGMESSAGECONTROLPROC as sub(byval source as GLenum, byval type as GLenum, byval severity as GLenum, byval count as GLsizei, byval ids as const GLuint ptr, byval enabled as GLboolean)
 2414 type PFNGLDEBUGMESSAGEINSERTPROC as sub(byval source as GLenum, byval type as GLenum, byval id as GLuint, byval severity as GLenum, byval length as GLsizei, byval buf as const GLchar ptr)
 2415 type PFNGLDEBUGMESSAGECALLBACKPROC as sub(byval callback as GLDEBUGPROC, byval userParam as const any ptr)
 2416 type PFNGLGETDEBUGMESSAGELOGPROC as function(byval count as GLuint, byval bufSize as GLsizei, byval sources as GLenum ptr, byval types as GLenum ptr, byval ids as GLuint ptr, byval severities as GLenum ptr, byval lengths as GLsizei ptr, byval messageLog as GLchar ptr) as GLuint
 2417 type PFNGLPUSHDEBUGGROUPPROC as sub(byval source as GLenum, byval id as GLuint, byval length as GLsizei, byval message as const GLchar ptr)
 2418 type PFNGLPOPDEBUGGROUPPROC as sub()
 2419 type PFNGLOBJECTLABELPROC as sub(byval identifier as GLenum, byval name as GLuint, byval length as GLsizei, byval label as const GLchar ptr)
 2420 type PFNGLGETOBJECTLABELPROC as sub(byval identifier as GLenum, byval name as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval label as GLchar ptr)
 2421 type PFNGLOBJECTPTRLABELPROC as sub(byval ptr as const any ptr, byval length as GLsizei, byval label as const GLchar ptr)
 2422 type PFNGLGETOBJECTPTRLABELPROC as sub(byval ptr as const any ptr, byval bufSize as GLsizei, byval length as GLsizei ptr, byval label as GLchar ptr)
 2423 
 2424 #ifdef GL_GLEXT_PROTOTYPES
 2425     declare sub glClearBufferData(byval target as GLenum, byval internalformat as GLenum, byval format as GLenum, byval type as GLenum, byval data as const any ptr)
 2426     declare sub glClearBufferSubData(byval target as GLenum, byval internalformat as GLenum, byval offset as GLintptr, byval size as GLsizeiptr, byval format as GLenum, byval type as GLenum, byval data as const any ptr)
 2427     declare sub glDispatchCompute(byval num_groups_x as GLuint, byval num_groups_y as GLuint, byval num_groups_z as GLuint)
 2428     declare sub glDispatchComputeIndirect(byval indirect as GLintptr)
 2429     declare sub glCopyImageSubData(byval srcName as GLuint, byval srcTarget as GLenum, byval srcLevel as GLint, byval srcX as GLint, byval srcY as GLint, byval srcZ as GLint, byval dstName as GLuint, byval dstTarget as GLenum, byval dstLevel as GLint, byval dstX as GLint, byval dstY as GLint, byval dstZ as GLint, byval srcWidth as GLsizei, byval srcHeight as GLsizei, byval srcDepth as GLsizei)
 2430     declare sub glFramebufferParameteri(byval target as GLenum, byval pname as GLenum, byval param as GLint)
 2431     declare sub glGetFramebufferParameteriv(byval target as GLenum, byval pname as GLenum, byval params as GLint ptr)
 2432     declare sub glGetInternalformati64v(byval target as GLenum, byval internalformat as GLenum, byval pname as GLenum, byval bufSize as GLsizei, byval params as GLint64 ptr)
 2433     declare sub glInvalidateTexSubImage(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei)
 2434     declare sub glInvalidateTexImage(byval texture as GLuint, byval level as GLint)
 2435     declare sub glInvalidateBufferSubData(byval buffer as GLuint, byval offset as GLintptr, byval length as GLsizeiptr)
 2436     declare sub glInvalidateBufferData(byval buffer as GLuint)
 2437     declare sub glInvalidateFramebuffer(byval target as GLenum, byval numAttachments as GLsizei, byval attachments as const GLenum ptr)
 2438     declare sub glInvalidateSubFramebuffer(byval target as GLenum, byval numAttachments as GLsizei, byval attachments as const GLenum ptr, byval x as GLint, byval y as GLint, byval width as GLsizei, byval height as GLsizei)
 2439     declare sub glMultiDrawArraysIndirect(byval mode as GLenum, byval indirect as const any ptr, byval drawcount as GLsizei, byval stride as GLsizei)
 2440     declare sub glMultiDrawElementsIndirect(byval mode as GLenum, byval type as GLenum, byval indirect as const any ptr, byval drawcount as GLsizei, byval stride as GLsizei)
 2441     declare sub glGetProgramInterfaceiv(byval program as GLuint, byval programInterface as GLenum, byval pname as GLenum, byval params as GLint ptr)
 2442     declare function glGetProgramResourceIndex(byval program as GLuint, byval programInterface as GLenum, byval name as const GLchar ptr) as GLuint
 2443     declare sub glGetProgramResourceName(byval program as GLuint, byval programInterface as GLenum, byval index as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval name as GLchar ptr)
 2444     declare sub glGetProgramResourceiv(byval program as GLuint, byval programInterface as GLenum, byval index as GLuint, byval propCount as GLsizei, byval props as const GLenum ptr, byval bufSize as GLsizei, byval length as GLsizei ptr, byval params as GLint ptr)
 2445     declare function glGetProgramResourceLocation(byval program as GLuint, byval programInterface as GLenum, byval name as const GLchar ptr) as GLint
 2446     declare function glGetProgramResourceLocationIndex(byval program as GLuint, byval programInterface as GLenum, byval name as const GLchar ptr) as GLint
 2447     declare sub glShaderStorageBlockBinding(byval program as GLuint, byval storageBlockIndex as GLuint, byval storageBlockBinding as GLuint)
 2448     declare sub glTexBufferRange(byval target as GLenum, byval internalformat as GLenum, byval buffer as GLuint, byval offset as GLintptr, byval size as GLsizeiptr)
 2449     declare sub glTexStorage2DMultisample(byval target as GLenum, byval samples as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval fixedsamplelocations as GLboolean)
 2450     declare sub glTexStorage3DMultisample(byval target as GLenum, byval samples as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval fixedsamplelocations as GLboolean)
 2451     declare sub glTextureView(byval texture as GLuint, byval target as GLenum, byval origtexture as GLuint, byval internalformat as GLenum, byval minlevel as GLuint, byval numlevels as GLuint, byval minlayer as GLuint, byval numlayers as GLuint)
 2452     declare sub glBindVertexBuffer(byval bindingindex as GLuint, byval buffer as GLuint, byval offset as GLintptr, byval stride as GLsizei)
 2453     declare sub glVertexAttribFormat(byval attribindex as GLuint, byval size as GLint, byval type as GLenum, byval normalized as GLboolean, byval relativeoffset as GLuint)
 2454     declare sub glVertexAttribIFormat(byval attribindex as GLuint, byval size as GLint, byval type as GLenum, byval relativeoffset as GLuint)
 2455     declare sub glVertexAttribLFormat(byval attribindex as GLuint, byval size as GLint, byval type as GLenum, byval relativeoffset as GLuint)
 2456     declare sub glVertexAttribBinding(byval attribindex as GLuint, byval bindingindex as GLuint)
 2457     declare sub glVertexBindingDivisor(byval bindingindex as GLuint, byval divisor as GLuint)
 2458     declare sub glDebugMessageControl(byval source as GLenum, byval type as GLenum, byval severity as GLenum, byval count as GLsizei, byval ids as const GLuint ptr, byval enabled as GLboolean)
 2459     declare sub glDebugMessageInsert(byval source as GLenum, byval type as GLenum, byval id as GLuint, byval severity as GLenum, byval length as GLsizei, byval buf as const GLchar ptr)
 2460     declare sub glDebugMessageCallback(byval callback as GLDEBUGPROC, byval userParam as const any ptr)
 2461     declare function glGetDebugMessageLog(byval count as GLuint, byval bufSize as GLsizei, byval sources as GLenum ptr, byval types as GLenum ptr, byval ids as GLuint ptr, byval severities as GLenum ptr, byval lengths as GLsizei ptr, byval messageLog as GLchar ptr) as GLuint
 2462     declare sub glPushDebugGroup(byval source as GLenum, byval id as GLuint, byval length as GLsizei, byval message as const GLchar ptr)
 2463     declare sub glPopDebugGroup()
 2464     declare sub glObjectLabel(byval identifier as GLenum, byval name as GLuint, byval length as GLsizei, byval label as const GLchar ptr)
 2465     declare sub glGetObjectLabel(byval identifier as GLenum, byval name as GLuint, byval bufSize as GLsizei, byval length as GLsizei ptr, byval label as GLchar ptr)
 2466     declare sub glObjectPtrLabel(byval ptr as const any ptr, byval length as GLsizei, byval label as const GLchar ptr)
 2467     declare sub glGetObjectPtrLabel(byval ptr as const any ptr, byval bufSize as GLsizei, byval length as GLsizei ptr, byval label as GLchar ptr)
 2468 #endif
 2469 
 2470 const GL_VERSION_4_4 = 1
 2471 const GL_MAX_VERTEX_ATTRIB_STRIDE = &h82E5
 2472 const GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED = &h8221
 2473 const GL_TEXTURE_BUFFER_BINDING = &h8C2A
 2474 const GL_MAP_PERSISTENT_BIT = &h0040
 2475 const GL_MAP_COHERENT_BIT = &h0080
 2476 const GL_DYNAMIC_STORAGE_BIT = &h0100
 2477 const GL_CLIENT_STORAGE_BIT = &h0200
 2478 const GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT = &h00004000
 2479 const GL_BUFFER_IMMUTABLE_STORAGE = &h821F
 2480 const GL_BUFFER_STORAGE_FLAGS = &h8220
 2481 const GL_CLEAR_TEXTURE = &h9365
 2482 const GL_LOCATION_COMPONENT = &h934A
 2483 const GL_TRANSFORM_FEEDBACK_BUFFER_INDEX = &h934B
 2484 const GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE = &h934C
 2485 const GL_QUERY_BUFFER = &h9192
 2486 const GL_QUERY_BUFFER_BARRIER_BIT = &h00008000
 2487 const GL_QUERY_BUFFER_BINDING = &h9193
 2488 const GL_QUERY_RESULT_NO_WAIT = &h9194
 2489 const GL_MIRROR_CLAMP_TO_EDGE = &h8743
 2490 
 2491 type PFNGLBUFFERSTORAGEPROC as sub(byval target as GLenum, byval size as GLsizeiptr, byval data as const any ptr, byval flags as GLbitfield)
 2492 type PFNGLCLEARTEXIMAGEPROC as sub(byval texture as GLuint, byval level as GLint, byval format as GLenum, byval type as GLenum, byval data as const any ptr)
 2493 type PFNGLCLEARTEXSUBIMAGEPROC as sub(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval format as GLenum, byval type as GLenum, byval data as const any ptr)
 2494 type PFNGLBINDBUFFERSBASEPROC as sub(byval target as GLenum, byval first as GLuint, byval count as GLsizei, byval buffers as const GLuint ptr)
 2495 type PFNGLBINDBUFFERSRANGEPROC as sub(byval target as GLenum, byval first as GLuint, byval count as GLsizei, byval buffers as const GLuint ptr, byval offsets as const GLintptr ptr, byval sizes as const GLsizeiptr ptr)
 2496 type PFNGLBINDTEXTURESPROC as sub(byval first as GLuint, byval count as GLsizei, byval textures as const GLuint ptr)
 2497 type PFNGLBINDSAMPLERSPROC as sub(byval first as GLuint, byval count as GLsizei, byval samplers as const GLuint ptr)
 2498 type PFNGLBINDIMAGETEXTURESPROC as sub(byval first as GLuint, byval count as GLsizei, byval textures as const GLuint ptr)
 2499 type PFNGLBINDVERTEXBUFFERSPROC as sub(byval first as GLuint, byval count as GLsizei, byval buffers as const GLuint ptr, byval offsets as const GLintptr ptr, byval strides as const GLsizei ptr)
 2500 
 2501 #ifdef GL_GLEXT_PROTOTYPES
 2502     declare sub glBufferStorage(byval target as GLenum, byval size as GLsizeiptr, byval data as const any ptr, byval flags as GLbitfield)
 2503     declare sub glClearTexImage(byval texture as GLuint, byval level as GLint, byval format as GLenum, byval type as GLenum, byval data as const any ptr)
 2504     declare sub glClearTexSubImage(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval format as GLenum, byval type as GLenum, byval data as const any ptr)
 2505     declare sub glBindBuffersBase(byval target as GLenum, byval first as GLuint, byval count as GLsizei, byval buffers as const GLuint ptr)
 2506     declare sub glBindBuffersRange(byval target as GLenum, byval first as GLuint, byval count as GLsizei, byval buffers as const GLuint ptr, byval offsets as const GLintptr ptr, byval sizes as const GLsizeiptr ptr)
 2507     declare sub glBindTextures(byval first as GLuint, byval count as GLsizei, byval textures as const GLuint ptr)
 2508     declare sub glBindSamplers(byval first as GLuint, byval count as GLsizei, byval samplers as const GLuint ptr)
 2509     declare sub glBindImageTextures(byval first as GLuint, byval count as GLsizei, byval textures as const GLuint ptr)
 2510     declare sub glBindVertexBuffers(byval first as GLuint, byval count as GLsizei, byval buffers as const GLuint ptr, byval offsets as const GLintptr ptr, byval strides as const GLsizei ptr)
 2511 #endif
 2512 
 2513 const GL_VERSION_4_5 = 1
 2514 const GL_CONTEXT_LOST = &h0507
 2515 const GL_NEGATIVE_ONE_TO_ONE = &h935E
 2516 const GL_ZERO_TO_ONE = &h935F
 2517 const GL_CLIP_ORIGIN = &h935C
 2518 const GL_CLIP_DEPTH_MODE = &h935D
 2519 const GL_QUERY_WAIT_INVERTED = &h8E17
 2520 const GL_QUERY_NO_WAIT_INVERTED = &h8E18
 2521 const GL_QUERY_BY_REGION_WAIT_INVERTED = &h8E19
 2522 const GL_QUERY_BY_REGION_NO_WAIT_INVERTED = &h8E1A
 2523 const GL_MAX_CULL_DISTANCES = &h82F9
 2524 const GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES = &h82FA
 2525 const GL_TEXTURE_TARGET = &h1006
 2526 const GL_QUERY_TARGET = &h82EA
 2527 const GL_TEXTURE_BINDING = &h82EB
 2528 const GL_GUILTY_CONTEXT_RESET = &h8253
 2529 const GL_INNOCENT_CONTEXT_RESET = &h8254
 2530 const GL_UNKNOWN_CONTEXT_RESET = &h8255
 2531 const GL_RESET_NOTIFICATION_STRATEGY = &h8256
 2532 const GL_LOSE_CONTEXT_ON_RESET = &h8252
 2533 const GL_NO_RESET_NOTIFICATION = &h8261
 2534 const GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT = &h00000004
 2535 const GL_CONTEXT_RELEASE_BEHAVIOR = &h82FB
 2536 const GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = &h82FC
 2537 
 2538 type PFNGLCLIPCONTROLPROC as sub(byval origin as GLenum, byval depth as GLenum)
 2539 type PFNGLCREATETRANSFORMFEEDBACKSPROC as sub(byval n as GLsizei, byval ids as GLuint ptr)
 2540 type PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC as sub(byval xfb as GLuint, byval index as GLuint, byval buffer as GLuint)
 2541 type PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC as sub(byval xfb as GLuint, byval index as GLuint, byval buffer as GLuint, byval offset as GLintptr, byval size as GLsizei)
 2542 type PFNGLGETTRANSFORMFEEDBACKIVPROC as sub(byval xfb as GLuint, byval pname as GLenum, byval param as GLint ptr)
 2543 type PFNGLGETTRANSFORMFEEDBACKI_VPROC as sub(byval xfb as GLuint, byval pname as GLenum, byval index as GLuint, byval param as GLint ptr)
 2544 type PFNGLGETTRANSFORMFEEDBACKI64_VPROC as sub(byval xfb as GLuint, byval pname as GLenum, byval index as GLuint, byval param as GLint64 ptr)
 2545 type PFNGLCREATEBUFFERSPROC as sub(byval n as GLsizei, byval buffers as GLuint ptr)
 2546 type PFNGLNAMEDBUFFERSTORAGEPROC as sub(byval buffer as GLuint, byval size as GLsizei, byval data as const any ptr, byval flags as GLbitfield)
 2547 type PFNGLNAMEDBUFFERDATAPROC as sub(byval buffer as GLuint, byval size as GLsizei, byval data as const any ptr, byval usage as GLenum)
 2548 type PFNGLNAMEDBUFFERSUBDATAPROC as sub(byval buffer as GLuint, byval offset as GLintptr, byval size as GLsizei, byval data as const any ptr)
 2549 type PFNGLCOPYNAMEDBUFFERSUBDATAPROC as sub(byval readBuffer as GLuint, byval writeBuffer as GLuint, byval readOffset as GLintptr, byval writeOffset as GLintptr, byval size as GLsizei)
 2550 type PFNGLCLEARNAMEDBUFFERDATAPROC as sub(byval buffer as GLuint, byval internalformat as GLenum, byval format as GLenum, byval type as GLenum, byval data as const any ptr)
 2551 type PFNGLCLEARNAMEDBUFFERSUBDATAPROC as sub(byval buffer as GLuint, byval internalformat as GLenum, byval offset as GLintptr, byval size as GLsizei, byval format as GLenum, byval type as GLenum, byval data as const any ptr)
 2552 type PFNGLMAPNAMEDBUFFERPROC as function(byval buffer as GLuint, byval access as GLenum) as any ptr
 2553 type PFNGLMAPNAMEDBUFFERRANGEPROC as function(byval buffer as GLuint, byval offset as GLintptr, byval length as GLsizei, byval access as GLbitfield) as any ptr
 2554 type PFNGLUNMAPNAMEDBUFFERPROC as function(byval buffer as GLuint) as GLboolean
 2555 type PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC as sub(byval buffer as GLuint, byval offset as GLintptr, byval length as GLsizei)
 2556 type PFNGLGETNAMEDBUFFERPARAMETERIVPROC as sub(byval buffer as GLuint, byval pname as GLenum, byval params as GLint ptr)
 2557 type PFNGLGETNAMEDBUFFERPARAMETERI64VPROC as sub(byval buffer as GLuint, byval pname as GLenum, byval params as GLint64 ptr)
 2558 type PFNGLGETNAMEDBUFFERPOINTERVPROC as sub(byval buffer as GLuint, byval pname as GLenum, byval params as any ptr ptr)
 2559 type PFNGLGETNAMEDBUFFERSUBDATAPROC as sub(byval buffer as GLuint, byval offset as GLintptr, byval size as GLsizei, byval data as any ptr)
 2560 type PFNGLCREATEFRAMEBUFFERSPROC as sub(byval n as GLsizei, byval framebuffers as GLuint ptr)
 2561 type PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC as sub(byval framebuffer as GLuint, byval attachment as GLenum, byval renderbuffertarget as GLenum, byval renderbuffer as GLuint)
 2562 type PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC as sub(byval framebuffer as GLuint, byval pname as GLenum, byval param as GLint)
 2563 type PFNGLNAMEDFRAMEBUFFERTEXTUREPROC as sub(byval framebuffer as GLuint, byval attachment as GLenum, byval texture as GLuint, byval level as GLint)
 2564 type PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC as sub(byval framebuffer as GLuint, byval attachment as GLenum, byval texture as GLuint, byval level as GLint, byval layer as GLint)
 2565 type PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC as sub(byval framebuffer as GLuint, byval buf as GLenum)
 2566 type PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC as sub(byval framebuffer as GLuint, byval n as GLsizei, byval bufs as const GLenum ptr)
 2567 type PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC as sub(byval framebuffer as GLuint, byval src as GLenum)
 2568 type PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC as sub(byval framebuffer as GLuint, byval numAttachments as GLsizei, byval attachments as const GLenum ptr)
 2569 type PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC as sub(byval framebuffer as GLuint, byval numAttachments as GLsizei, byval attachments as const GLenum ptr, byval x as GLint, byval y as GLint, byval width as GLsizei, byval height as GLsizei)
 2570 type PFNGLCLEARNAMEDFRAMEBUFFERIVPROC as sub(byval framebuffer as GLuint, byval buffer as GLenum, byval drawbuffer as GLint, byval value as const GLint ptr)
 2571 type PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC as sub(byval framebuffer as GLuint, byval buffer as GLenum, byval drawbuffer as GLint, byval value as const GLuint ptr)
 2572 type PFNGLCLEARNAMEDFRAMEBUFFERFVPROC as sub(byval framebuffer as GLuint, byval buffer as GLenum, byval drawbuffer as GLint, byval value as const GLfloat ptr)
 2573 type PFNGLCLEARNAMEDFRAMEBUFFERFIPROC as sub(byval framebuffer as GLuint, byval buffer as GLenum, byval depth as const GLfloat, byval stencil as GLint)
 2574 type PFNGLBLITNAMEDFRAMEBUFFERPROC as sub(byval readFramebuffer as GLuint, byval drawFramebuffer as GLuint, byval srcX0 as GLint, byval srcY0 as GLint, byval srcX1 as GLint, byval srcY1 as GLint, byval dstX0 as GLint, byval dstY0 as GLint, byval dstX1 as GLint, byval dstY1 as GLint, byval mask as GLbitfield, byval filter as GLenum)
 2575 type PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC as function(byval framebuffer as GLuint, byval target as GLenum) as GLenum
 2576 type PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC as sub(byval framebuffer as GLuint, byval pname as GLenum, byval param as GLint ptr)
 2577 type PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC as sub(byval framebuffer as GLuint, byval attachment as GLenum, byval pname as GLenum, byval params as GLint ptr)
 2578 type PFNGLCREATERENDERBUFFERSPROC as sub(byval n as GLsizei, byval renderbuffers as GLuint ptr)
 2579 type PFNGLNAMEDRENDERBUFFERSTORAGEPROC as sub(byval renderbuffer as GLuint, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei)
 2580 type PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC as sub(byval renderbuffer as GLuint, byval samples as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei)
 2581 type PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC as sub(byval renderbuffer as GLuint, byval pname as GLenum, byval params as GLint ptr)
 2582 type PFNGLCREATETEXTURESPROC as sub(byval target as GLenum, byval n as GLsizei, byval textures as GLuint ptr)
 2583 type PFNGLTEXTUREBUFFERPROC as sub(byval texture as GLuint, byval internalformat as GLenum, byval buffer as GLuint)
 2584 type PFNGLTEXTUREBUFFERRANGEPROC as sub(byval texture as GLuint, byval internalformat as GLenum, byval buffer as GLuint, byval offset as GLintptr, byval size as GLsizei)
 2585 type PFNGLTEXTURESTORAGE1DPROC as sub(byval texture as GLuint, byval levels as GLsizei, byval internalformat as GLenum, byval width as GLsizei)
 2586 type PFNGLTEXTURESTORAGE2DPROC as sub(byval texture as GLuint, byval levels as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei)
 2587 type PFNGLTEXTURESTORAGE3DPROC as sub(byval texture as GLuint, byval levels as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei)
 2588 type PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC as sub(byval texture as GLuint, byval samples as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval fixedsamplelocations as GLboolean)
 2589 type PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC as sub(byval texture as GLuint, byval samples as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval fixedsamplelocations as GLboolean)
 2590 type PFNGLTEXTURESUBIMAGE1DPROC as sub(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval width as GLsizei, byval format as GLenum, byval type as GLenum, byval pixels as const any ptr)
 2591 type PFNGLTEXTURESUBIMAGE2DPROC as sub(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval format as GLenum, byval type as GLenum, byval pixels as const any ptr)
 2592 type PFNGLTEXTURESUBIMAGE3DPROC as sub(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval format as GLenum, byval type as GLenum, byval pixels as const any ptr)
 2593 type PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC as sub(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval width as GLsizei, byval format as GLenum, byval imageSize as GLsizei, byval data as const any ptr)
 2594 type PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC as sub(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval format as GLenum, byval imageSize as GLsizei, byval data as const any ptr)
 2595 type PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC as sub(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval format as GLenum, byval imageSize as GLsizei, byval data as const any ptr)
 2596 type PFNGLCOPYTEXTURESUBIMAGE1DPROC as sub(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval x as GLint, byval y as GLint, byval width as GLsizei)
 2597 type PFNGLCOPYTEXTURESUBIMAGE2DPROC as sub(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval x as GLint, byval y as GLint, byval width as GLsizei, byval height as GLsizei)
 2598 type PFNGLCOPYTEXTURESUBIMAGE3DPROC as sub(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval x as GLint, byval y as GLint, byval width as GLsizei, byval height as GLsizei)
 2599 type PFNGLTEXTUREPARAMETERFPROC as sub(byval texture as GLuint, byval pname as GLenum, byval param as GLfloat)
 2600 type PFNGLTEXTUREPARAMETERFVPROC as sub(byval texture as GLuint, byval pname as GLenum, byval param as const GLfloat ptr)
 2601 type PFNGLTEXTUREPARAMETERIPROC as sub(byval texture as GLuint, byval pname as GLenum, byval param as GLint)
 2602 type PFNGLTEXTUREPARAMETERIIVPROC as sub(byval texture as GLuint, byval pname as GLenum, byval params as const GLint ptr)
 2603 type PFNGLTEXTUREPARAMETERIUIVPROC as sub(byval texture as GLuint, byval pname as GLenum, byval params as const GLuint ptr)
 2604 type PFNGLTEXTUREPARAMETERIVPROC as sub(byval texture as GLuint, byval pname as GLenum, byval param as const GLint ptr)
 2605 type PFNGLGENERATETEXTUREMIPMAPPROC as sub(byval texture as GLuint)
 2606 type PFNGLBINDTEXTUREUNITPROC as sub(byval unit as GLuint, byval texture as GLuint)
 2607 type PFNGLGETTEXTUREIMAGEPROC as sub(byval texture as GLuint, byval level as GLint, byval format as GLenum, byval type as GLenum, byval bufSize as GLsizei, byval pixels as any ptr)
 2608 type PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC as sub(byval texture as GLuint, byval level as GLint, byval bufSize as GLsizei, byval pixels as any ptr)
 2609 type PFNGLGETTEXTURELEVELPARAMETERFVPROC as sub(byval texture as GLuint, byval level as GLint, byval pname as GLenum, byval params as GLfloat ptr)
 2610 type PFNGLGETTEXTURELEVELPARAMETERIVPROC as sub(byval texture as GLuint, byval level as GLint, byval pname as GLenum, byval params as GLint ptr)
 2611 type PFNGLGETTEXTUREPARAMETERFVPROC as sub(byval texture as GLuint, byval pname as GLenum, byval params as GLfloat ptr)
 2612 type PFNGLGETTEXTUREPARAMETERIIVPROC as sub(byval texture as GLuint, byval pname as GLenum, byval params as GLint ptr)
 2613 type PFNGLGETTEXTUREPARAMETERIUIVPROC as sub(byval texture as GLuint, byval pname as GLenum, byval params as GLuint ptr)
 2614 type PFNGLGETTEXTUREPARAMETERIVPROC as sub(byval texture as GLuint, byval pname as GLenum, byval params as GLint ptr)
 2615 type PFNGLCREATEVERTEXARRAYSPROC as sub(byval n as GLsizei, byval arrays as GLuint ptr)
 2616 type PFNGLDISABLEVERTEXARRAYATTRIBPROC as sub(byval vaobj as GLuint, byval index as GLuint)
 2617 type PFNGLENABLEVERTEXARRAYATTRIBPROC as sub(byval vaobj as GLuint, byval index as GLuint)
 2618 type PFNGLVERTEXARRAYELEMENTBUFFERPROC as sub(byval vaobj as GLuint, byval buffer as GLuint)
 2619 type PFNGLVERTEXARRAYVERTEXBUFFERPROC as sub(byval vaobj as GLuint, byval bindingindex as GLuint, byval buffer as GLuint, byval offset as GLintptr, byval stride as GLsizei)
 2620 type PFNGLVERTEXARRAYVERTEXBUFFERSPROC as sub(byval vaobj as GLuint, byval first as GLuint, byval count as GLsizei, byval buffers as const GLuint ptr, byval offsets as const GLintptr ptr, byval strides as const GLsizei ptr)
 2621 type PFNGLVERTEXARRAYATTRIBBINDINGPROC as sub(byval vaobj as GLuint, byval attribindex as GLuint, byval bindingindex as GLuint)
 2622 type PFNGLVERTEXARRAYATTRIBFORMATPROC as sub(byval vaobj as GLuint, byval attribindex as GLuint, byval size as GLint, byval type as GLenum, byval normalized as GLboolean, byval relativeoffset as GLuint)
 2623 type PFNGLVERTEXARRAYATTRIBIFORMATPROC as sub(byval vaobj as GLuint, byval attribindex as GLuint, byval size as GLint, byval type as GLenum, byval relativeoffset as GLuint)
 2624 type PFNGLVERTEXARRAYATTRIBLFORMATPROC as sub(byval vaobj as GLuint, byval attribindex as GLuint, byval size as GLint, byval type as GLenum, byval relativeoffset as GLuint)
 2625 type PFNGLVERTEXARRAYBINDINGDIVISORPROC as sub(byval vaobj as GLuint, byval bindingindex as GLuint, byval divisor as GLuint)
 2626 type PFNGLGETVERTEXARRAYIVPROC as sub(byval vaobj as GLuint, byval pname as GLenum, byval param as GLint ptr)
 2627 type PFNGLGETVERTEXARRAYINDEXEDIVPROC as sub(byval vaobj as GLuint, byval index as GLuint, byval pname as GLenum, byval param as GLint ptr)
 2628 type PFNGLGETVERTEXARRAYINDEXED64IVPROC as sub(byval vaobj as GLuint, byval index as GLuint, byval pname as GLenum, byval param as GLint64 ptr)
 2629 type PFNGLCREATESAMPLERSPROC as sub(byval n as GLsizei, byval samplers as GLuint ptr)
 2630 type PFNGLCREATEPROGRAMPIPELINESPROC as sub(byval n as GLsizei, byval pipelines as GLuint ptr)
 2631 type PFNGLCREATEQUERIESPROC as sub(byval target as GLenum, byval n as GLsizei, byval ids as GLuint ptr)
 2632 type PFNGLGETQUERYBUFFEROBJECTI64VPROC as sub(byval id as GLuint, byval buffer as GLuint, byval pname as GLenum, byval offset as GLintptr)
 2633 type PFNGLGETQUERYBUFFEROBJECTIVPROC as sub(byval id as GLuint, byval buffer as GLuint, byval pname as GLenum, byval offset as GLintptr)
 2634 type PFNGLGETQUERYBUFFEROBJECTUI64VPROC as sub(byval id as GLuint, byval buffer as GLuint, byval pname as GLenum, byval offset as GLintptr)
 2635 type PFNGLGETQUERYBUFFEROBJECTUIVPROC as sub(byval id as GLuint, byval buffer as GLuint, byval pname as GLenum, byval offset as GLintptr)
 2636 type PFNGLMEMORYBARRIERBYREGIONPROC as sub(byval barriers as GLbitfield)
 2637 type PFNGLGETTEXTURESUBIMAGEPROC as sub(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval format as GLenum, byval type as GLenum, byval bufSize as GLsizei, byval pixels as any ptr)
 2638 type PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC as sub(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval bufSize as GLsizei, byval pixels as any ptr)
 2639 type PFNGLGETGRAPHICSRESETSTATUSPROC as function() as GLenum
 2640 type PFNGLGETNCOMPRESSEDTEXIMAGEPROC as sub(byval target as GLenum, byval lod as GLint, byval bufSize as GLsizei, byval pixels as any ptr)
 2641 type PFNGLGETNTEXIMAGEPROC as sub(byval target as GLenum, byval level as GLint, byval format as GLenum, byval type as GLenum, byval bufSize as GLsizei, byval pixels as any ptr)
 2642 type PFNGLGETNUNIFORMDVPROC as sub(byval program as GLuint, byval location as GLint, byval bufSize as GLsizei, byval params as GLdouble ptr)
 2643 type PFNGLGETNUNIFORMFVPROC as sub(byval program as GLuint, byval location as GLint, byval bufSize as GLsizei, byval params as GLfloat ptr)
 2644 type PFNGLGETNUNIFORMIVPROC as sub(byval program as GLuint, byval location as GLint, byval bufSize as GLsizei, byval params as GLint ptr)
 2645 type PFNGLGETNUNIFORMUIVPROC as sub(byval program as GLuint, byval location as GLint, byval bufSize as GLsizei, byval params as GLuint ptr)
 2646 type PFNGLREADNPIXELSPROC as sub(byval x as GLint, byval y as GLint, byval width as GLsizei, byval height as GLsizei, byval format as GLenum, byval type as GLenum, byval bufSize as GLsizei, byval data as any ptr)
 2647 type PFNGLGETNMAPDVPROC as sub(byval target as GLenum, byval query as GLenum, byval bufSize as GLsizei, byval v as GLdouble ptr)
 2648 type PFNGLGETNMAPFVPROC as sub(byval target as GLenum, byval query as GLenum, byval bufSize as GLsizei, byval v as GLfloat ptr)
 2649 type PFNGLGETNMAPIVPROC as sub(byval target as GLenum, byval query as GLenum, byval bufSize as GLsizei, byval v as GLint ptr)
 2650 type PFNGLGETNPIXELMAPFVPROC as sub(byval map as GLenum, byval bufSize as GLsizei, byval values as GLfloat ptr)
 2651 type PFNGLGETNPIXELMAPUIVPROC as sub(byval map as GLenum, byval bufSize as GLsizei, byval values as GLuint ptr)
 2652 type PFNGLGETNPIXELMAPUSVPROC as sub(byval map as GLenum, byval bufSize as GLsizei, byval values as GLushort ptr)
 2653 type PFNGLGETNPOLYGONSTIPPLEPROC as sub(byval bufSize as GLsizei, byval pattern as GLubyte ptr)
 2654 type PFNGLGETNCOLORTABLEPROC as sub(byval target as GLenum, byval format as GLenum, byval type as GLenum, byval bufSize as GLsizei, byval table as any ptr)
 2655 type PFNGLGETNCONVOLUTIONFILTERPROC as sub(byval target as GLenum, byval format as GLenum, byval type as GLenum, byval bufSize as GLsizei, byval image as any ptr)
 2656 type PFNGLGETNSEPARABLEFILTERPROC as sub(byval target as GLenum, byval format as GLenum, byval type as GLenum, byval rowBufSize as GLsizei, byval row as any ptr, byval columnBufSize as GLsizei, byval column as any ptr, byval span as any ptr)
 2657 type PFNGLGETNHISTOGRAMPROC as sub(byval target as GLenum, byval reset as GLboolean, byval format as GLenum, byval type as GLenum, byval bufSize as GLsizei, byval values as any ptr)
 2658 type PFNGLGETNMINMAXPROC as sub(byval target as GLenum, byval reset as GLboolean, byval format as GLenum, byval type as GLenum, byval bufSize as GLsizei, byval values as any ptr)
 2659 type PFNGLTEXTUREBARRIERPROC as sub()
 2660 
 2661 #ifdef GL_GLEXT_PROTOTYPES
 2662     declare sub glClipControl(byval origin as GLenum, byval depth as GLenum)
 2663     declare sub glCreateTransformFeedbacks(byval n as GLsizei, byval ids as GLuint ptr)
 2664     declare sub glTransformFeedbackBufferBase(byval xfb as GLuint, byval index as GLuint, byval buffer as GLuint)
 2665     declare sub glTransformFeedbackBufferRange(byval xfb as GLuint, byval index as GLuint, byval buffer as GLuint, byval offset as GLintptr, byval size as GLsizei)
 2666     declare sub glGetTransformFeedbackiv(byval xfb as GLuint, byval pname as GLenum, byval param as GLint ptr)
 2667     declare sub glGetTransformFeedbacki_v(byval xfb as GLuint, byval pname as GLenum, byval index as GLuint, byval param as GLint ptr)
 2668     declare sub glGetTransformFeedbacki64_v(byval xfb as GLuint, byval pname as GLenum, byval index as GLuint, byval param as GLint64 ptr)
 2669     declare sub glCreateBuffers(byval n as GLsizei, byval buffers as GLuint ptr)
 2670     declare sub glNamedBufferStorage(byval buffer as GLuint, byval size as GLsizei, byval data as const any ptr, byval flags as GLbitfield)
 2671     declare sub glNamedBufferData(byval buffer as GLuint, byval size as GLsizei, byval data as const any ptr, byval usage as GLenum)
 2672     declare sub glNamedBufferSubData(byval buffer as GLuint, byval offset as GLintptr, byval size as GLsizei, byval data as const any ptr)
 2673     declare sub glCopyNamedBufferSubData(byval readBuffer as GLuint, byval writeBuffer as GLuint, byval readOffset as GLintptr, byval writeOffset as GLintptr, byval size as GLsizei)
 2674     declare sub glClearNamedBufferData(byval buffer as GLuint, byval internalformat as GLenum, byval format as GLenum, byval type as GLenum, byval data as const any ptr)
 2675     declare sub glClearNamedBufferSubData(byval buffer as GLuint, byval internalformat as GLenum, byval offset as GLintptr, byval size as GLsizei, byval format as GLenum, byval type as GLenum, byval data as const any ptr)
 2676     declare function glMapNamedBuffer(byval buffer as GLuint, byval access as GLenum) as any ptr
 2677     declare function glMapNamedBufferRange(byval buffer as GLuint, byval offset as GLintptr, byval length as GLsizei, byval access as GLbitfield) as any ptr
 2678     declare function glUnmapNamedBuffer(byval buffer as GLuint) as GLboolean
 2679     declare sub glFlushMappedNamedBufferRange(byval buffer as GLuint, byval offset as GLintptr, byval length as GLsizei)
 2680     declare sub glGetNamedBufferParameteriv(byval buffer as GLuint, byval pname as GLenum, byval params as GLint ptr)
 2681     declare sub glGetNamedBufferParameteri64v(byval buffer as GLuint, byval pname as GLenum, byval params as GLint64 ptr)
 2682     declare sub glGetNamedBufferPointerv(byval buffer as GLuint, byval pname as GLenum, byval params as any ptr ptr)
 2683     declare sub glGetNamedBufferSubData(byval buffer as GLuint, byval offset as GLintptr, byval size as GLsizei, byval data as any ptr)
 2684     declare sub glCreateFramebuffers(byval n as GLsizei, byval framebuffers as GLuint ptr)
 2685     declare sub glNamedFramebufferRenderbuffer(byval framebuffer as GLuint, byval attachment as GLenum, byval renderbuffertarget as GLenum, byval renderbuffer as GLuint)
 2686     declare sub glNamedFramebufferParameteri(byval framebuffer as GLuint, byval pname as GLenum, byval param as GLint)
 2687     declare sub glNamedFramebufferTexture(byval framebuffer as GLuint, byval attachment as GLenum, byval texture as GLuint, byval level as GLint)
 2688     declare sub glNamedFramebufferTextureLayer(byval framebuffer as GLuint, byval attachment as GLenum, byval texture as GLuint, byval level as GLint, byval layer as GLint)
 2689     declare sub glNamedFramebufferDrawBuffer(byval framebuffer as GLuint, byval buf as GLenum)
 2690     declare sub glNamedFramebufferDrawBuffers(byval framebuffer as GLuint, byval n as GLsizei, byval bufs as const GLenum ptr)
 2691     declare sub glNamedFramebufferReadBuffer(byval framebuffer as GLuint, byval src as GLenum)
 2692     declare sub glInvalidateNamedFramebufferData(byval framebuffer as GLuint, byval numAttachments as GLsizei, byval attachments as const GLenum ptr)
 2693     declare sub glInvalidateNamedFramebufferSubData(byval framebuffer as GLuint, byval numAttachments as GLsizei, byval attachments as const GLenum ptr, byval x as GLint, byval y as GLint, byval width as GLsizei, byval height as GLsizei)
 2694     declare sub glClearNamedFramebufferiv(byval framebuffer as GLuint, byval buffer as GLenum, byval drawbuffer as GLint, byval value as const GLint ptr)
 2695     declare sub glClearNamedFramebufferuiv(byval framebuffer as GLuint, byval buffer as GLenum, byval drawbuffer as GLint, byval value as const GLuint ptr)
 2696     declare sub glClearNamedFramebufferfv(byval framebuffer as GLuint, byval buffer as GLenum, byval drawbuffer as GLint, byval value as const GLfloat ptr)
 2697     declare sub glClearNamedFramebufferfi(byval framebuffer as GLuint, byval buffer as GLenum, byval depth as const GLfloat, byval stencil as GLint)
 2698     declare sub glBlitNamedFramebuffer(byval readFramebuffer as GLuint, byval drawFramebuffer as GLuint, byval srcX0 as GLint, byval srcY0 as GLint, byval srcX1 as GLint, byval srcY1 as GLint, byval dstX0 as GLint, byval dstY0 as GLint, byval dstX1 as GLint, byval dstY1 as GLint, byval mask as GLbitfield, byval filter as GLenum)
 2699     declare function glCheckNamedFramebufferStatus(byval framebuffer as GLuint, byval target as GLenum) as GLenum
 2700     declare sub glGetNamedFramebufferParameteriv(byval framebuffer as GLuint, byval pname as GLenum, byval param as GLint ptr)
 2701     declare sub glGetNamedFramebufferAttachmentParameteriv(byval framebuffer as GLuint, byval attachment as GLenum, byval pname as GLenum, byval params as GLint ptr)
 2702     declare sub glCreateRenderbuffers(byval n as GLsizei, byval renderbuffers as GLuint ptr)
 2703     declare sub glNamedRenderbufferStorage(byval renderbuffer as GLuint, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei)
 2704     declare sub glNamedRenderbufferStorageMultisample(byval renderbuffer as GLuint, byval samples as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei)
 2705     declare sub glGetNamedRenderbufferParameteriv(byval renderbuffer as GLuint, byval pname as GLenum, byval params as GLint ptr)
 2706     declare sub glCreateTextures(byval target as GLenum, byval n as GLsizei, byval textures as GLuint ptr)
 2707     declare sub glTextureBuffer(byval texture as GLuint, byval internalformat as GLenum, byval buffer as GLuint)
 2708     declare sub glTextureBufferRange(byval texture as GLuint, byval internalformat as GLenum, byval buffer as GLuint, byval offset as GLintptr, byval size as GLsizei)
 2709     declare sub glTextureStorage1D(byval texture as GLuint, byval levels as GLsizei, byval internalformat as GLenum, byval width as GLsizei)
 2710     declare sub glTextureStorage2D(byval texture as GLuint, byval levels as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei)
 2711     declare sub glTextureStorage3D(byval texture as GLuint, byval levels as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei)
 2712     declare sub glTextureStorage2DMultisample(byval texture as GLuint, byval samples as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval fixedsamplelocations as GLboolean)
 2713     declare sub glTextureStorage3DMultisample(byval texture as GLuint, byval samples as GLsizei, byval internalformat as GLenum, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval fixedsamplelocations as GLboolean)
 2714     declare sub glTextureSubImage1D(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval width as GLsizei, byval format as GLenum, byval type as GLenum, byval pixels as const any ptr)
 2715     declare sub glTextureSubImage2D(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval format as GLenum, byval type as GLenum, byval pixels as const any ptr)
 2716     declare sub glTextureSubImage3D(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval format as GLenum, byval type as GLenum, byval pixels as const any ptr)
 2717     declare sub glCompressedTextureSubImage1D(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval width as GLsizei, byval format as GLenum, byval imageSize as GLsizei, byval data as const any ptr)
 2718     declare sub glCompressedTextureSubImage2D(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval format as GLenum, byval imageSize as GLsizei, byval data as const any ptr)
 2719     declare sub glCompressedTextureSubImage3D(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval format as GLenum, byval imageSize as GLsizei, byval data as const any ptr)
 2720     declare sub glCopyTextureSubImage1D(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval x as GLint, byval y as GLint, byval width as GLsizei)
 2721     declare sub glCopyTextureSubImage2D(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval x as GLint, byval y as GLint, byval width as GLsizei, byval height as GLsizei)
 2722     declare sub glCopyTextureSubImage3D(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval x as GLint, byval y as GLint, byval width as GLsizei, byval height as GLsizei)
 2723     declare sub glTextureParameterf(byval texture as GLuint, byval pname as GLenum, byval param as GLfloat)
 2724     declare sub glTextureParameterfv(byval texture as GLuint, byval pname as GLenum, byval param as const GLfloat ptr)
 2725     declare sub glTextureParameteri(byval texture as GLuint, byval pname as GLenum, byval param as GLint)
 2726     declare sub glTextureParameterIiv(byval texture as GLuint, byval pname as GLenum, byval params as const GLint ptr)
 2727     declare sub glTextureParameterIuiv(byval texture as GLuint, byval pname as GLenum, byval params as const GLuint ptr)
 2728     declare sub glTextureParameteriv(byval texture as GLuint, byval pname as GLenum, byval param as const GLint ptr)
 2729     declare sub glGenerateTextureMipmap(byval texture as GLuint)
 2730     declare sub glBindTextureUnit(byval unit as GLuint, byval texture as GLuint)
 2731     declare sub glGetTextureImage(byval texture as GLuint, byval level as GLint, byval format as GLenum, byval type as GLenum, byval bufSize as GLsizei, byval pixels as any ptr)
 2732     declare sub glGetCompressedTextureImage(byval texture as GLuint, byval level as GLint, byval bufSize as GLsizei, byval pixels as any ptr)
 2733     declare sub glGetTextureLevelParameterfv(byval texture as GLuint, byval level as GLint, byval pname as GLenum, byval params as GLfloat ptr)
 2734     declare sub glGetTextureLevelParameteriv(byval texture as GLuint, byval level as GLint, byval pname as GLenum, byval params as GLint ptr)
 2735     declare sub glGetTextureParameterfv(byval texture as GLuint, byval pname as GLenum, byval params as GLfloat ptr)
 2736     declare sub glGetTextureParameterIiv(byval texture as GLuint, byval pname as GLenum, byval params as GLint ptr)
 2737     declare sub glGetTextureParameterIuiv(byval texture as GLuint, byval pname as GLenum, byval params as GLuint ptr)
 2738     declare sub glGetTextureParameteriv(byval texture as GLuint, byval pname as GLenum, byval params as GLint ptr)
 2739     declare sub glCreateVertexArrays(byval n as GLsizei, byval arrays as GLuint ptr)
 2740     declare sub glDisableVertexArrayAttrib(byval vaobj as GLuint, byval index as GLuint)
 2741     declare sub glEnableVertexArrayAttrib(byval vaobj as GLuint, byval index as GLuint)
 2742     declare sub glVertexArrayElementBuffer(byval vaobj as GLuint, byval buffer as GLuint)
 2743     declare sub glVertexArrayVertexBuffer(byval vaobj as GLuint, byval bindingindex as GLuint, byval buffer as GLuint, byval offset as GLintptr, byval stride as GLsizei)
 2744     declare sub glVertexArrayVertexBuffers(byval vaobj as GLuint, byval first as GLuint, byval count as GLsizei, byval buffers as const GLuint ptr, byval offsets as const GLintptr ptr, byval strides as const GLsizei ptr)
 2745     declare sub glVertexArrayAttribBinding(byval vaobj as GLuint, byval attribindex as GLuint, byval bindingindex as GLuint)
 2746     declare sub glVertexArrayAttribFormat(byval vaobj as GLuint, byval attribindex as GLuint, byval size as GLint, byval type as GLenum, byval normalized as GLboolean, byval relativeoffset as GLuint)
 2747     declare sub glVertexArrayAttribIFormat(byval vaobj as GLuint, byval attribindex as GLuint, byval size as GLint, byval type as GLenum, byval relativeoffset as GLuint)
 2748     declare sub glVertexArrayAttribLFormat(byval vaobj as GLuint, byval attribindex as GLuint, byval size as GLint, byval type as GLenum, byval relativeoffset as GLuint)
 2749     declare sub glVertexArrayBindingDivisor(byval vaobj as GLuint, byval bindingindex as GLuint, byval divisor as GLuint)
 2750     declare sub glGetVertexArrayiv(byval vaobj as GLuint, byval pname as GLenum, byval param as GLint ptr)
 2751     declare sub glGetVertexArrayIndexediv(byval vaobj as GLuint, byval index as GLuint, byval pname as GLenum, byval param as GLint ptr)
 2752     declare sub glGetVertexArrayIndexed64iv(byval vaobj as GLuint, byval index as GLuint, byval pname as GLenum, byval param as GLint64 ptr)
 2753     declare sub glCreateSamplers(byval n as GLsizei, byval samplers as GLuint ptr)
 2754     declare sub glCreateProgramPipelines(byval n as GLsizei, byval pipelines as GLuint ptr)
 2755     declare sub glCreateQueries(byval target as GLenum, byval n as GLsizei, byval ids as GLuint ptr)
 2756     declare sub glGetQueryBufferObjecti64v(byval id as GLuint, byval buffer as GLuint, byval pname as GLenum, byval offset as GLintptr)
 2757     declare sub glGetQueryBufferObjectiv(byval id as GLuint, byval buffer as GLuint, byval pname as GLenum, byval offset as GLintptr)
 2758     declare sub glGetQueryBufferObjectui64v(byval id as GLuint, byval buffer as GLuint, byval pname as GLenum, byval offset as GLintptr)
 2759     declare sub glGetQueryBufferObjectuiv(byval id as GLuint, byval buffer as GLuint, byval pname as GLenum, byval offset as GLintptr)
 2760     declare sub glMemoryBarrierByRegion(byval barriers as GLbitfield)
 2761     declare sub glGetTextureSubImage(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval format as GLenum, byval type as GLenum, byval bufSize as GLsizei, byval pixels as any ptr)
 2762     declare sub glGetCompressedTextureSubImage(byval texture as GLuint, byval level as GLint, byval xoffset as GLint, byval yoffset as GLint, byval zoffset as GLint, byval width as GLsizei, byval height as GLsizei, byval depth as GLsizei, byval bufSize as GLsizei, byval pixels as any ptr)
 2763     declare function glGetGraphicsResetStatus() as GLenum
 2764     declare sub glGetnCompressedTexImage(byval target as GLenum, byval lod as GLint, byval bufSize as GLsizei, byval pixels as any ptr)
 2765     declare sub glGetnTexImage(byval target as GLenum, byval level as GLint, byval format as GLenum, byval type as GLenum, byval bufSize as GLsizei, byval pixels as any ptr)
 2766     declare sub glGetnUniformdv(byval program as GLuint, byval location as GLint, byval bufSize as GLsizei, byval params as GLdouble ptr)
 2767     declare sub glGetnUniformfv(byval program as GLuint, byval location as GLint, byval bufSize as GLsizei, byval params as GLfloat ptr)
 2768     declare sub glGetnUniformiv(byval program as GLuint, byval location as GLint, byval bufSize as GLsizei, byval params as GLint ptr)
 2769     declare sub glGetnUniformuiv(byval program as GLuint, byval location as GLint, byval bufSize as GLsizei, byval params as GLuint ptr)
 2770     declare sub glReadnPixels(byval x as GLint, byval y as GLint, byval width as GLsizei, byval height as GLsizei, byval format as GLenum, byval type as GLenum, byval bufSize as GLsizei, byval data as any ptr)
 2771     declare sub glGetnMapdv(byval target as GLenum, byval query as GLenum, byval bufSize as GLsizei, byval v as GLdouble ptr)
 2772     declare sub glGetnMapfv(byval target as GLenum, byval query as GLenum, byval bufSize as GLsizei, byval v as GLfloat ptr)
 2773     declare sub glGetnMapiv(byval target as GLenum, byval query as GLenum, byval bufSize as GLsizei, byval v as GLint ptr)
 2774     declare sub glGetnPixelMapfv(byval map as GLenum, byval bufSize as GLsizei, byval values as GLfloat ptr)
 2775     declare sub glGetnPixelMapuiv(byval map as GLenum, byval bufSize as GLsizei, byval values as GLuint ptr)
 2776     declare sub glGetnPixelMapusv(byval map as GLenum, byval bufSize as GLsizei, byval values as GLushort ptr)
 2777     declare sub glGetnPolygonStipple(byval bufSize as GLsizei, byval pattern as GLubyte ptr)
 2778     declare sub glGetnColorTable(byval target as GLenum, byval format as GLenum, byval type as GLenum, byval bufSize as GLsizei, byval table as any ptr)
 2779     declare sub glGetnConvolutionFilter(byval target as GLenum, byval format as GLenum, byval type as GLenum, byval bufSize as GLsizei, byval image as any ptr)
 2780     declare sub glGetnSeparableFilter(byval target as GLenum, byval format as GLenum, byval type as GLenum, byval rowBufSize as GLsizei, byval row as any ptr, byval columnBufSize as GLsizei, byval column as any ptr, byval span as any ptr)
 2781     declare sub glGetnHistogram(byval target as GLenum, byval reset as GLboolean, byval format as GLenum, byval type as GLenum, byval bufSize as GLsizei, byval values as any ptr)
 2782     declare sub glGetnMinmax(byval target as GLenum, byval reset as GLboolean, byval format as GLenum, byval type as GLenum, byval bufSize as GLsizei, byval values as any ptr)
 2783     declare sub glTextureBarrier()
 2784 #endif
 2785 
 2786 const GL_ARB_ES2_compatibility = 1
 2787 const GL_ARB_ES3_1_compatibility = 1
 2788 const GL_ARB_ES3_compatibility = 1
 2789 const GL_ARB_arrays_of_arrays = 1
 2790 const GL_ARB_base_instance = 1
 2791 const GL_ARB_bindless_texture = 1
 2792 type GLuint64EXT as ulongint
 2793 const GL_UNSIGNED_INT64_ARB = &h140F
 2794 
 2795 type PFNGLGETTEXTUREHANDLEARBPROC as function(byval texture as GLuint) as GLuint64
 2796 type PFNGLGETTEXTURESAMPLERHANDLEARBPROC as function(byval texture as GLuint, byval sampler as GLuint) as GLuint64
 2797 type PFNGLMAKETEXTUREHANDLERESIDENTARBPROC as sub(byval handle as GLuint64)
 2798 type PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC as sub(byval handle as GLuint64)
 2799 type PFNGLGETIMAGEHANDLEARBPROC as function(byval texture as GLuint, byval level as GLint, byval layered as GLboolean, byval layer as GLint, byval format as GLenum) as GLuint64
 2800 type PFNGLMAKEIMAGEHANDLERESIDENTARBPROC as sub(byval handle as GLuint64, byval access as GLenum)
 2801 type PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC as sub(byval handle as GLuint64)
 2802 type PFNGLUNIFORMHANDLEUI64ARBPROC as sub(byval location as GLint, byval value as GLuint64)
 2803 type PFNGLUNIFORMHANDLEUI64VARBPROC as sub(byval location as GLint, byval count as GLsizei, byval value as const GLuint64 ptr)
 2804 type PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC as sub(byval program as GLuint, byval location as GLint, byval value as GLuint64)
 2805 type PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC as sub(byval program as GLuint, byval location as GLint, byval count as GLsizei, byval values as const GLuint64 ptr)
 2806 type PFNGLISTEXTUREHANDLERESIDENTARBPROC as function(byval handle as GLuint64) as GLboolean
 2807 type PFNGLISIMAGEHANDLERESIDENTARBPROC as function(byval handle as GLuint64) as GLboolean
 2808 type PFNGLVERTEXATTRIBL1UI64ARBPROC as sub(byval index as GLuint, byval x as GLuint64EXT)
 2809 type PFNGLVERTEXATTRIBL1UI64VARBPROC as sub(byval index as GLuint, byval v as const GLuint64EXT ptr)
 2810 type PFNGLGETVERTEXATTRIBLUI64VARBPROC as sub(byval index as GLuint, byval pname as GLenum, byval params as GLuint64EXT ptr)
 2811 
 2812 #ifdef GL_GLEXT_PROTOTYPES
 2813     declare function glGetTextureHandleARB(byval texture as GLuint) as GLuint64
 2814     declare function glGetTextureSamplerHandleARB(byval texture as GLuint, byval sampler as GLuint) as GLuint64
 2815     declare sub glMakeTextureHandleResidentARB(byval handle as GLuint64)
 2816     declare sub glMakeTextureHandleNonResidentARB(byval handle as GLuint64)
 2817     declare function glGetImageHandleARB(byval texture as GLuint, byval level as GLint, byval layered as GLboolean, byval layer as GLint, byval format as GLenum) as GLuint64
 2818     declare sub glMakeImageHandleResidentARB(byval handle as GLuint64, byval access as GLenum)
 2819     declare sub glMakeImageHandleNonResidentARB(byval handle as GLuint64)
 2820     declare sub glUniformHandleui64ARB(byval location as GLint, byval value as GLuint64)
 2821     declare sub glUniformHandleui64vARB(byval location as GLint, byval count as GLsizei, byval value as const GLuint64 ptr)
 2822     declare sub glProgramUniformHandleui64ARB(byval program as GLuint, byval location as GLint, byval value as GLuint64)
 2823     declare sub glProgramUniformHandleui64vARB(