"Fossies" - the Fresh Open Source Software Archive

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