public import opengl.types.*;
public import opengl.enums.*;
import opengl.platform.*;
import opengl.nolookup as self;

initGLFunctions(x) { }
overload initGLFunctions() { }

external (GLAPI) glAccum(_op: GLenum, _value: GLfloat);
external (GLAPI) glActiveTexture(_texture: GLenum);
external (GLAPI) glAlphaFunc(_func: GLenum, _ref: GLclampf);
external (GLAPI) glAreTexturesResident(_n: GLsizei, _textures: Pointer[GLuint], _residences: Pointer[GLboolean]);
external (GLAPI) glArrayElement(_i: GLint);
external (GLAPI) glAttachShader(_program: GLuint, _shader: GLuint);
external (GLAPI) glBegin(_mode: GLenum);
external (GLAPI) glBeginConditionalRender(_id: GLuint, _mode: GLenum);
external (GLAPI) glBeginQuery(_target: GLenum, _id: GLuint);
external (GLAPI) glBeginQueryIndexed(_target: GLenum, _index: GLuint, _id: GLuint);
external (GLAPI) glBeginTransformFeedback(_primitiveMode: GLenum);
external (GLAPI) glBindAttribLocation(_program: GLuint, _index: GLuint, _name: GLstring);
external (GLAPI) glBindBuffer(_target: GLenum, _buffer: GLuint);
external (GLAPI) glBindBufferBase(_target: GLenum, _index: GLuint, _buffer: GLuint);
external (GLAPI) glBindBufferRange(_target: GLenum, _index: GLuint, _buffer: GLuint, _offset: GLintptr, _size: GLsizeiptr);
external (GLAPI) glBindFragDataLocation(_program: GLuint, _colorNumber: GLuint, _name: GLstring);
external (GLAPI) glBindFragDataLocationIndexed(_program: GLuint, _colorNumber: GLuint, _index: GLuint, _name: GLstring);
external (GLAPI) glBindFramebuffer(_target: GLenum, _framebuffer: GLuint);
external (GLAPI) glBindRenderbuffer(_target: GLenum, _renderbuffer: GLuint);
external (GLAPI) glBindSampler(_unit: GLenum, _sampler: GLuint);
external (GLAPI) glBindTexture(_target: GLenum, _texture: GLuint);
external (GLAPI) glBindTransformFeedback(_target: GLenum, _id: GLuint);
external (GLAPI) glBindVertexArray(_array: GLuint);
external (GLAPI) glBitmap(_width: GLsizei, _height: GLsizei, _xorig: GLfloat, _yorig: GLfloat, _xmove: GLfloat, _ymove: GLfloat, _bitmap: Pointer[GLubyte]);
external (GLAPI) glBlendColor(_red: GLclampf, _green: GLclampf, _blue: GLclampf, _alpha: GLclampf);
external (GLAPI) glBlendEquation(_mode: GLenum);
external (GLAPI) glBlendEquationSeparate(_modeRGB: GLenum, _modeAlpha: GLenum);
external (GLAPI) glBlendFunc(_sfactor: GLenum, _dfactor: GLenum);
external (GLAPI) glBlendFuncSeparate(_sfactorRGB: GLenum, _dfactorRGB: GLenum, _sfactorAlpha: GLenum, _dfactorAlpha: GLenum);
external (GLAPI) glBlitFramebuffer(_srcX0: GLint, _srcY0: GLint, _srcX1: GLint, _srcY1: GLint, _dstX0: GLint, _dstY0: GLint, _dstX1: GLint, _dstY1: GLint, _mask: GLbitfield, _filter: GLenum);
external (GLAPI) glBufferData(_target: GLenum, _size: GLsizeiptr, _data: Pointer[GLvoid], _usage: GLenum);
external (GLAPI) glBufferSubData(_target: GLenum, _offset: GLintptr, _size: GLsizeiptr, _data: Pointer[GLvoid]);
external (GLAPI) glCallList(_list: GLuint);
external (GLAPI) glCallLists(_n: GLsizei, _type: GLenum, _lists: Pointer[GLvoid]);
external (GLAPI) glCheckFramebufferStatus(_target: GLenum);
external (GLAPI) glClampColor(_target: GLenum, _clamp: GLenum);
external (GLAPI) glClear(_mask: GLbitfield);
external (GLAPI) glClearAccum(_red: GLfloat, _green: GLfloat, _blue: GLfloat, _alpha: GLfloat);
external (GLAPI) glClearBufferfi(_buffer: GLenum, _drawbuffer: GLint, _depth: GLfloat, _stencil: GLint);
external (GLAPI) glClearBufferfv(_buffer: GLenum, _drawbuffer: GLint, _value: Pointer[GLfloat]);
external (GLAPI) glClearBufferiv(_buffer: GLenum, _drawbuffer: GLint, _value: Pointer[GLint]);
external (GLAPI) glClearBufferuiv(_buffer: GLenum, _drawbuffer: GLint, _value: Pointer[GLuint]);
external (GLAPI) glClearColor(_red: GLclampf, _green: GLclampf, _blue: GLclampf, _alpha: GLclampf);
external (GLAPI) glClearColorIiEXT(_r: GLint, _g: GLint, _b: GLint, _a: GLint);
external (GLAPI) glClearColorIuiEXT(_r: GLuint, _g: GLuint, _b: GLuint, _a: GLuint);
external (GLAPI) glClearDepth(_depth: GLclampd);
external (GLAPI) glClearIndex(_c: GLfloat);
external (GLAPI) glClearStencil(_s: GLint);
external (GLAPI) glClientActiveTexture(_texture: GLenum);
external (GLAPI) glClientWaitSync(_sync: GLsync, _flags: GLbitfield, _timeout: GLuint64);
external (GLAPI) glClipPlane(_plane: GLenum, _equation: Pointer[GLdouble]);
external (GLAPI) glColor3b(_red: GLbyte, _green: GLbyte, _blue: GLbyte);
external (GLAPI) glColor3bv(_v: Pointer[GLbyte]);
external (GLAPI) glColor3d(_red: GLdouble, _green: GLdouble, _blue: GLdouble);
external (GLAPI) glColor3dv(_v: Pointer[GLdouble]);
external (GLAPI) glColor3f(_red: GLfloat, _green: GLfloat, _blue: GLfloat);
external (GLAPI) glColor3fv(_v: Pointer[GLfloat]);
external (GLAPI) glColor3i(_red: GLint, _green: GLint, _blue: GLint);
external (GLAPI) glColor3iv(_v: Pointer[GLint]);
external (GLAPI) glColor3s(_red: GLshort, _green: GLshort, _blue: GLshort);
external (GLAPI) glColor3sv(_v: Pointer[GLshort]);
external (GLAPI) glColor3ub(_red: GLubyte, _green: GLubyte, _blue: GLubyte);
external (GLAPI) glColor3ubv(_v: Pointer[GLubyte]);
external (GLAPI) glColor3ui(_red: GLuint, _green: GLuint, _blue: GLuint);
external (GLAPI) glColor3uiv(_v: Pointer[GLuint]);
external (GLAPI) glColor3us(_red: GLushort, _green: GLushort, _blue: GLushort);
external (GLAPI) glColor3usv(_v: Pointer[GLushort]);
external (GLAPI) glColor4b(_red: GLbyte, _green: GLbyte, _blue: GLbyte, _alpha: GLbyte);
external (GLAPI) glColor4bv(_v: Pointer[GLbyte]);
external (GLAPI) glColor4d(_red: GLdouble, _green: GLdouble, _blue: GLdouble, _alpha: GLdouble);
external (GLAPI) glColor4dv(_v: Pointer[GLdouble]);
external (GLAPI) glColor4f(_red: GLfloat, _green: GLfloat, _blue: GLfloat, _alpha: GLfloat);
external (GLAPI) glColor4fv(_v: Pointer[GLfloat]);
external (GLAPI) glColor4i(_red: GLint, _green: GLint, _blue: GLint, _alpha: GLint);
external (GLAPI) glColor4iv(_v: Pointer[GLint]);
external (GLAPI) glColor4s(_red: GLshort, _green: GLshort, _blue: GLshort, _alpha: GLshort);
external (GLAPI) glColor4sv(_v: Pointer[GLshort]);
external (GLAPI) glColor4ub(_red: GLubyte, _green: GLubyte, _blue: GLubyte, _alpha: GLubyte);
external (GLAPI) glColor4ubv(_v: Pointer[GLubyte]);
external (GLAPI) glColor4ui(_red: GLuint, _green: GLuint, _blue: GLuint, _alpha: GLuint);
external (GLAPI) glColor4uiv(_v: Pointer[GLuint]);
external (GLAPI) glColor4us(_red: GLushort, _green: GLushort, _blue: GLushort, _alpha: GLushort);
external (GLAPI) glColor4usv(_v: Pointer[GLushort]);
external (GLAPI) glColorMask(_red: GLboolean, _green: GLboolean, _blue: GLboolean, _alpha: GLboolean);
external (GLAPI) glColorMaski(_buf: GLuint, _r: GLboolean, _g: GLboolean, _b: GLboolean, _a: GLboolean);
external (GLAPI) glColorMaterial(_face: GLenum, _mode: GLenum);
external (GLAPI) glColorP3ui(_type: GLenum, _color: GLuint);
external (GLAPI) glColorP3uiv(_type: GLenum, _color: Pointer[GLuint]);
external (GLAPI) glColorP4ui(_type: GLenum, _color: GLuint);
external (GLAPI) glColorP4uiv(_type: GLenum, _color: Pointer[GLuint]);
external (GLAPI) glColorPointer(_size: GLint, _type: GLenum, _stride: GLsizei, _ptr: Pointer[GLvoid]);
external (GLAPI) glCompileShader(_shader: GLuint);
external (GLAPI) glCompressedTexImage1D(_target: GLenum, _level: GLint, _internalformat: GLenum, _width: GLsizei, _border: GLint, _imageSize: GLsizei, _data: Pointer[GLvoid]);
external (GLAPI) glCompressedTexImage2D(_target: GLenum, _level: GLint, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _border: GLint, _imageSize: GLsizei, _data: Pointer[GLvoid]);
external (GLAPI) glCompressedTexImage3D(_target: GLenum, _level: GLint, _internalformat: GLenum, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _border: GLint, _imageSize: GLsizei, _data: Pointer[GLvoid]);
external (GLAPI) glCompressedTexSubImage1D(_target: GLenum, _level: GLint, _xoffset: GLint, _width: GLsizei, _format: GLenum, _imageSize: GLsizei, _data: Pointer[GLvoid]);
external (GLAPI) glCompressedTexSubImage2D(_target: GLenum, _level: GLint, _xoffset: GLint, _yoffset: GLint, _width: GLsizei, _height: GLsizei, _format: GLenum, _imageSize: GLsizei, _data: Pointer[GLvoid]);
external (GLAPI) glCompressedTexSubImage3D(_target: GLenum, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _format: GLenum, _imageSize: GLsizei, _data: Pointer[GLvoid]);
external (GLAPI) glCopyBufferSubData(_readtarget: GLenum, _writetarget: GLenum, _readoffset: GLintptr, _writeoffset: GLintptr, _size: GLsizeiptr);
external (GLAPI) glCopyPixels(_x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei, _type: GLenum);
external (GLAPI) glCopyTexImage1D(_target: GLenum, _level: GLint, _internalformat: GLenum, _x: GLint, _y: GLint, _width: GLsizei, _border: GLint);
external (GLAPI) glCopyTexImage2D(_target: GLenum, _level: GLint, _internalformat: GLenum, _x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei, _border: GLint);
external (GLAPI) glCopyTexSubImage1D(_target: GLenum, _level: GLint, _xoffset: GLint, _x: GLint, _y: GLint, _width: GLsizei);
external (GLAPI) glCopyTexSubImage2D(_target: GLenum, _level: GLint, _xoffset: GLint, _yoffset: GLint, _x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei);
external (GLAPI) glCopyTexSubImage3D(_target: GLenum, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei);
external (GLAPI) glCreateProgram();
external (GLAPI) glCreateShader(_type: GLenum);
external (GLAPI) glCullFace(_mode: GLenum);
external (GLAPI) glDeleteBuffers(_n: GLsizei, _buffers: Pointer[GLuint]);
external (GLAPI) glDeleteFramebuffers(_n: GLsizei, _framebuffers: Pointer[GLuint]);
external (GLAPI) glDeleteLists(_list: GLuint, _range: GLsizei);
external (GLAPI) glDeleteProgram(_program: GLuint);
external (GLAPI) glDeleteQueries(_n: GLsizei, _ids: Pointer[GLuint]);
external (GLAPI) glDeleteRenderbuffers(_n: GLsizei, _renderbuffers: Pointer[GLuint]);
external (GLAPI) glDeleteSamplers(_count: GLsizei, _samplers: Pointer[GLuint]);
external (GLAPI) glDeleteShader(_shader: GLuint);
external (GLAPI) glDeleteSync(_sync: GLsync);
external (GLAPI) glDeleteTextures(_n: GLsizei, _textures: Pointer[GLuint]);
external (GLAPI) glDeleteTransformFeedbacks(_n: GLsizei, _ids: Pointer[GLuint]);
external (GLAPI) glDeleteVertexArrays(_n: GLsizei, _arrays: Pointer[GLuint]);
external (GLAPI) glDepthFunc(_func: GLenum);
external (GLAPI) glDepthMask(_flag: GLboolean);
external (GLAPI) glDepthRange(_near_val: GLclampd, _far_val: GLclampd);
external (GLAPI) glDetachShader(_program: GLuint, _shader: GLuint);
external (GLAPI) glDisable(_cap: GLenum);
external (GLAPI) glDisableClientState(_cap: GLenum);
external (GLAPI) glDisableVertexAttribArray(_index: GLuint);
external (GLAPI) glDisablei(_target: GLenum, _index: GLuint);
external (GLAPI) glDrawArrays(_mode: GLenum, _first: GLint, _count: GLsizei);
external (GLAPI) glDrawArraysInstanced(_mode: GLenum, _first: GLint, _count: GLsizei, _primcount: GLsizei);
external (GLAPI) glDrawBuffer(_mode: GLenum);
external (GLAPI) glDrawBuffers(_n: GLsizei, _bufs: Pointer[GLenum]);
external (GLAPI) glDrawElements(_mode: GLenum, _count: GLsizei, _type: GLenum, _indices: Pointer[GLvoid]);
external (GLAPI) glDrawElementsInstanced(_mode: GLenum, _count: GLsizei, _type: GLenum, _indices: Pointer[GLvoid], _primcount: GLsizei);
external (GLAPI) glDrawPixels(_width: GLsizei, _height: GLsizei, _format: GLenum, _type: GLenum, _pixels: Pointer[GLvoid]);
external (GLAPI) glDrawRangeElements(_mode: GLenum, _start: GLuint, _end: GLuint, _count: GLsizei, _type: GLenum, _indices: Pointer[GLvoid]);
external (GLAPI) glDrawTransformFeedback(_mode: GLenum, _id: GLuint);
external (GLAPI) glDrawTransformFeedbackStream(_mode: GLenum, _id: GLuint, _stream: GLuint);
external (GLAPI) glEdgeFlag(_flag: GLboolean);
external (GLAPI) glEdgeFlagPointer(_stride: GLsizei, _ptr: Pointer[GLvoid]);
external (GLAPI) glEdgeFlagv(_flag: Pointer[GLboolean]);
external (GLAPI) glEnable(_cap: GLenum);
external (GLAPI) glEnableClientState(_cap: GLenum);
external (GLAPI) glEnableVertexAttribArray(_index: GLuint);
external (GLAPI) glEnablei(_target: GLenum, _index: GLuint);
external (GLAPI) glEnd();
external (GLAPI) glEndConditionalRender();
external (GLAPI) glEndList();
external (GLAPI) glEndQuery(_target: GLenum);
external (GLAPI) glEndQueryIndexed(_target: GLenum, _index: GLuint);
external (GLAPI) glEndTransformFeedback();
external (GLAPI) glEvalCoord1d(_u: GLdouble);
external (GLAPI) glEvalCoord1dv(_u: Pointer[GLdouble]);
external (GLAPI) glEvalCoord1f(_u: GLfloat);
external (GLAPI) glEvalCoord1fv(_u: Pointer[GLfloat]);
external (GLAPI) glEvalCoord2d(_u: GLdouble, _v: GLdouble);
external (GLAPI) glEvalCoord2dv(_u: Pointer[GLdouble]);
external (GLAPI) glEvalCoord2f(_u: GLfloat, _v: GLfloat);
external (GLAPI) glEvalCoord2fv(_u: Pointer[GLfloat]);
external (GLAPI) glEvalMesh1(_mode: GLenum, _i1: GLint, _i2: GLint);
external (GLAPI) glEvalMesh2(_mode: GLenum, _i1: GLint, _i2: GLint, _j1: GLint, _j2: GLint);
external (GLAPI) glEvalPoint1(_i: GLint);
external (GLAPI) glEvalPoint2(_i: GLint, _j: GLint);
external (GLAPI) glFeedbackBuffer(_size: GLsizei, _type: GLenum, _buffer: Pointer[GLfloat]);
external (GLAPI) glFenceSync(_condition: GLenum, _flags: GLbitfield);
external (GLAPI) glFinish();
external (GLAPI) glFlush();
external (GLAPI) glFlushMappedBufferRange(_target: GLenum, _offset: GLintptr, _size: GLsizeiptr);
external (GLAPI) glFogCoordPointer(_type: GLenum, _stride: GLsizei, _pointer: Pointer[GLvoid]);
external (GLAPI) glFogCoordd(_coord: GLdouble);
external (GLAPI) glFogCoorddv(_coord: Pointer[GLdouble]);
external (GLAPI) glFogCoordf(_coord: GLfloat);
external (GLAPI) glFogCoordfv(_coord: Pointer[GLfloat]);
external (GLAPI) glFogf(_pname: GLenum, _param: GLfloat);
external (GLAPI) glFogfv(_pname: GLenum, _params: Pointer[GLfloat]);
external (GLAPI) glFogi(_pname: GLenum, _param: GLint);
external (GLAPI) glFogiv(_pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glFramebufferRenderbuffer(_target: GLenum, _attachment: GLenum, _renderbuffertarget: GLenum, _renderbuffer: GLuint);
external (GLAPI) glFramebufferTexture(_target: GLenum, _attachment: GLenum, _texture: GLuint, _level: GLint);
external (GLAPI) glFramebufferTexture1D(_target: GLenum, _attachment: GLenum, _textarget: GLenum, _texture: GLuint, _level: GLint);
external (GLAPI) glFramebufferTexture2D(_target: GLenum, _attachment: GLenum, _textarget: GLenum, _texture: GLuint, _level: GLint);
external (GLAPI) glFramebufferTexture3D(_target: GLenum, _attachment: GLenum, _textarget: GLenum, _texture: GLuint, _level: GLint, _zoffset: GLint);
external (GLAPI) glFramebufferTextureFaceARB(_target: GLenum, _attachment: GLenum, _texture: GLuint, _level: GLint, _face: GLenum);
external (GLAPI) glFramebufferTextureLayer(_target: GLenum, _attachment: GLenum, _texture: GLuint, _level: GLint, _layer: GLint);
external (GLAPI) glFramebufferTextureLayerARB(_target: GLenum, _attachment: GLenum, _texture: GLuint, _level: GLint, _layer: GLint);
external (GLAPI) glFrontFace(_mode: GLenum);
external (GLAPI) glFrustum(_left: GLdouble, _right: GLdouble, _bottom: GLdouble, _top: GLdouble, _near_val: GLdouble, _far_val: GLdouble);
external (GLAPI) glGenBuffers(_n: GLsizei, _buffers: Pointer[GLuint]);
external (GLAPI) glGenFramebuffers(_n: GLsizei, _framebuffers: Pointer[GLuint]);
external (GLAPI) glGenLists(_range: GLsizei);
external (GLAPI) glGenQueries(_n: GLsizei, _ids: Pointer[GLuint]);
external (GLAPI) glGenRenderbuffers(_n: GLsizei, _renderbuffers: Pointer[GLuint]);
external (GLAPI) glGenSamplers(_count: GLsizei, _samplers: Pointer[GLuint]);
external (GLAPI) glGenTextures(_n: GLsizei, _textures: Pointer[GLuint]);
external (GLAPI) glGenTransformFeedbacks(_n: GLsizei, _ids: Pointer[GLuint]);
external (GLAPI) glGenVertexArrays(_n: GLsizei, _arrays: Pointer[GLuint]);
external (GLAPI) glGenerateMipmap(_target: GLenum);
external (GLAPI) glGetActiveAttrib(_program: GLuint, _index: GLuint, _maxLength: GLsizei, _length: Pointer[GLsizei], _size: Pointer[GLint], _type: Pointer[GLenum], _name: GLstring);
external (GLAPI) glGetActiveSubroutineName(_program: GLuint, _shadertype: GLenum, _index: GLuint, _bufsize: GLsizei, _length: Pointer[GLsizei], _name: GLstring);
external (GLAPI) glGetActiveSubroutineUniformName(_program: GLuint, _shadertype: GLenum, _index: GLuint, _bufsize: GLsizei, _length: Pointer[GLsizei], _name: GLstring);
external (GLAPI) glGetActiveSubroutineUniformiv(_program: GLuint, _shadertype: GLenum, _index: GLuint, _pname: GLenum, _values: Pointer[GLint]);
external (GLAPI) glGetActiveUniform(_program: GLuint, _index: GLuint, _maxLength: GLsizei, _length: Pointer[GLsizei], _size: Pointer[GLint], _type: Pointer[GLenum], _name: GLstring);
external (GLAPI) glGetActiveUniformBlockName(_program: GLuint, _uniformBlockIndex: GLuint, _bufSize: GLsizei, _length: Pointer[GLsizei], _uniformName: GLstring);
external (GLAPI) glGetActiveUniformBlockiv(_program: GLuint, _uniformBlockIndex: GLuint, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glGetActiveUniformName(_program: GLuint, _uniformIndex: GLuint, _bufSize: GLsizei, _length: Pointer[GLsizei], _uniformName: GLstring);
external (GLAPI) glGetActiveUniformsiv(_program: GLuint, _uniformCount: GLsizei, _uniformIndices: Pointer[GLuint], _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glGetAttachedShaders(_program: GLuint, _maxCount: GLsizei, _count: Pointer[GLsizei], _shaders: Pointer[GLuint]);
external (GLAPI) glGetAttribLocation(_program: GLuint, _name: GLstring);
external (GLAPI) glGetBooleani_v(_value: GLenum, _index: GLuint, _data: Pointer[GLboolean]);
external (GLAPI) glGetBooleanv(_pname: GLenum, _params: Pointer[GLboolean]);
external (GLAPI) glGetBufferParameteri64v(_target: GLenum, _pname: GLenum, _params: Pointer[GLint64]);
external (GLAPI) glGetBufferParameteriv(_target: GLenum, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glGetBufferPointerv(_target: GLenum, _pname: GLenum, _params: Pointer[Pointer[GLvoid]]);
external (GLAPI) glGetBufferSubData(_target: GLenum, _offset: GLintptr, _size: GLsizeiptr, _data: Pointer[GLvoid]);
external (GLAPI) glGetClipPlane(_plane: GLenum, _equation: Pointer[GLdouble]);
external (GLAPI) glGetCompressedTexImage(_target: GLenum, _lod: GLint, _img: Pointer[GLvoid]);
external (GLAPI) glGetDoublev(_pname: GLenum, _params: Pointer[GLdouble]);
external (GLAPI) glGetError();
external (GLAPI) glGetFloatv(_pname: GLenum, _params: Pointer[GLfloat]);
external (GLAPI) glGetFragDataIndex(_program: GLuint, _name: GLstring);
external (GLAPI) glGetFragDataLocation(_program: GLuint, _name: GLstring);
external (GLAPI) glGetFramebufferAttachmentParameteriv(_target: GLenum, _attachment: GLenum, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glGetInteger64i_v(_target: GLenum, _index: GLuint, _data: Pointer[GLint64]);
external (GLAPI) glGetInteger64v(_pname: GLenum, _params: Pointer[GLint64]);
external (GLAPI) glGetIntegeri_v(_value: GLenum, _index: GLuint, _data: Pointer[GLint]);
external (GLAPI) glGetIntegerv(_pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glGetLightfv(_light: GLenum, _pname: GLenum, _params: Pointer[GLfloat]);
external (GLAPI) glGetLightiv(_light: GLenum, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glGetMapdv(_target: GLenum, _query: GLenum, _v: Pointer[GLdouble]);
external (GLAPI) glGetMapfv(_target: GLenum, _query: GLenum, _v: Pointer[GLfloat]);
external (GLAPI) glGetMapiv(_target: GLenum, _query: GLenum, _v: Pointer[GLint]);
external (GLAPI) glGetMaterialfv(_face: GLenum, _pname: GLenum, _params: Pointer[GLfloat]);
external (GLAPI) glGetMaterialiv(_face: GLenum, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glGetMultisamplefv(_pname: GLenum, _index: GLuint, _val: Pointer[GLfloat]);
external (GLAPI) glGetPixelMapfv(_map: GLenum, _values: Pointer[GLfloat]);
external (GLAPI) glGetPixelMapuiv(_map: GLenum, _values: Pointer[GLuint]);
external (GLAPI) glGetPixelMapusv(_map: GLenum, _values: Pointer[GLushort]);
external (GLAPI) glGetPointerv(_pname: GLenum, _params: Pointer[Pointer[GLvoid]]);
external (GLAPI) glGetPolygonStipple(_mask: Pointer[GLubyte]);
external (GLAPI) glGetProgramInfoLog(_program: GLuint, _bufSize: GLsizei, _length: Pointer[GLsizei], _infoLog: GLstring);
external (GLAPI) glGetProgramStageiv(_program: GLuint, _shadertype: GLenum, _pname: GLenum, _values: Pointer[GLint]);
external (GLAPI) glGetProgramiv(_program: GLuint, _pname: GLenum, _param: Pointer[GLint]);
external (GLAPI) glGetQueryIndexediv(_target: GLenum, _index: GLuint, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glGetQueryObjecti64v(_id: GLuint, _pname: GLenum, _params: Pointer[GLint64]);
external (GLAPI) glGetQueryObjectiv(_id: GLuint, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glGetQueryObjectui64v(_id: GLuint, _pname: GLenum, _params: Pointer[GLuint64]);
external (GLAPI) glGetQueryObjectuiv(_id: GLuint, _pname: GLenum, _params: Pointer[GLuint]);
external (GLAPI) glGetQueryiv(_target: GLenum, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glGetRenderbufferParameteriv(_target: GLenum, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glGetSamplerParameterIfv(_sampler: GLuint, _pname: GLenum, _params: Pointer[GLfloat]);
external (GLAPI) glGetSamplerParameterIiv(_sampler: GLuint, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glGetSamplerParameterfv(_sampler: GLuint, _pname: GLenum, _params: Pointer[GLfloat]);
external (GLAPI) glGetSamplerParameteriv(_sampler: GLuint, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glGetShaderInfoLog(_shader: GLuint, _bufSize: GLsizei, _length: Pointer[GLsizei], _infoLog: GLstring);
external (GLAPI) glGetShaderSource(_obj: GLint, _maxLength: GLsizei, _length: Pointer[GLsizei], _source: GLstring);
external (GLAPI) glGetShaderiv(_shader: GLuint, _pname: GLenum, _param: Pointer[GLint]);
external (GLAPI) glGetString(_name: GLenum);
external (GLAPI) glGetStringi(_value: GLenum, _index: GLuint);
external (GLAPI) glGetSubroutineIndex(_program: GLuint, _shadertype: GLenum, _name: GLstring);
external (GLAPI) glGetSubroutineUniformLocation(_program: GLuint, _shadertype: GLenum, _name: GLstring);
external (GLAPI) glGetSynciv(_sync: GLsync, _pname: GLenum, _bufSize: GLsizei, _length: Pointer[GLsizei], _values: Pointer[GLint]);
external (GLAPI) glGetTexEnvfv(_target: GLenum, _pname: GLenum, _params: Pointer[GLfloat]);
external (GLAPI) glGetTexEnviv(_target: GLenum, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glGetTexGendv(_coord: GLenum, _pname: GLenum, _params: Pointer[GLdouble]);
external (GLAPI) glGetTexGenfv(_coord: GLenum, _pname: GLenum, _params: Pointer[GLfloat]);
external (GLAPI) glGetTexGeniv(_coord: GLenum, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glGetTexImage(_target: GLenum, _level: GLint, _format: GLenum, _type: GLenum, _pixels: Pointer[GLvoid]);
external (GLAPI) glGetTexLevelParameterfv(_target: GLenum, _level: GLint, _pname: GLenum, _params: Pointer[GLfloat]);
external (GLAPI) glGetTexLevelParameteriv(_target: GLenum, _level: GLint, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glGetTexParameterIiv(_target: GLenum, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glGetTexParameterIuiv(_target: GLenum, _pname: GLenum, _params: Pointer[GLuint]);
external (GLAPI) glGetTexParameterfv(_target: GLenum, _pname: GLenum, _params: Pointer[GLfloat]);
external (GLAPI) glGetTexParameteriv(_target: GLenum, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glGetTransformFeedbackVarying(_program: GLuint, _index: GLuint, _bufSize: GLsizei, _length: Pointer[GLsizei], _size: Pointer[GLsizei], _type: Pointer[GLenum], _name: GLstring);
external (GLAPI) glGetUniformBlockIndex(_program: GLuint, _uniformBlockName: GLstring);
external (GLAPI) glGetUniformIndices(_program: GLuint, _uniformCount: GLsizei, _uniformNames: Pointer[GLstring], _uniformIndices: Pointer[GLuint]);
external (GLAPI) glGetUniformLocation(_programObj: GLint, _name: GLstring);
external (GLAPI) glGetUniformSubroutineuiv(_shadertype: GLenum, _location: GLint, _params: Pointer[GLuint]);
external (GLAPI) glGetUniformdv(_program: GLuint, _location: GLint, _params: Pointer[GLdouble]);
external (GLAPI) glGetUniformfv(_program: GLuint, _location: GLint, _params: Pointer[GLfloat]);
external (GLAPI) glGetUniformiv(_program: GLuint, _location: GLint, _params: Pointer[GLint]);
external (GLAPI) glGetUniformuiv(_program: GLuint, _location: GLint, _params: Pointer[GLuint]);
external (GLAPI) glGetVertexAttribIiv(_index: GLuint, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glGetVertexAttribIuiv(_index: GLuint, _pname: GLenum, _params: Pointer[GLuint]);
external (GLAPI) glGetVertexAttribPointerv(_index: GLuint, _pname: GLenum, _pointer: Pointer[Pointer[GLvoid]]);
external (GLAPI) glGetVertexAttribdv(_index: GLuint, _pname: GLenum, _params: Pointer[GLdouble]);
external (GLAPI) glGetVertexAttribfv(_index: GLuint, _pname: GLenum, _params: Pointer[GLfloat]);
external (GLAPI) glGetVertexAttribiv(_index: GLuint, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glHint(_target: GLenum, _mode: GLenum);
external (GLAPI) glIndexMask(_mask: GLuint);
external (GLAPI) glIndexPointer(_type: GLenum, _stride: GLsizei, _ptr: Pointer[GLvoid]);
external (GLAPI) glIndexd(_c: GLdouble);
external (GLAPI) glIndexdv(_c: Pointer[GLdouble]);
external (GLAPI) glIndexf(_c: GLfloat);
external (GLAPI) glIndexfv(_c: Pointer[GLfloat]);
external (GLAPI) glIndexi(_c: GLint);
external (GLAPI) glIndexiv(_c: Pointer[GLint]);
external (GLAPI) glIndexs(_c: GLshort);
external (GLAPI) glIndexsv(_c: Pointer[GLshort]);
external (GLAPI) glIndexub(_c: GLubyte);
external (GLAPI) glIndexubv(_c: Pointer[GLubyte]);
external (GLAPI) glInitNames();
external (GLAPI) glInterleavedArrays(_format: GLenum, _stride: GLsizei, _pointer: Pointer[GLvoid]);
external (GLAPI) glIsBuffer(_buffer: GLuint);
external (GLAPI) glIsEnabled(_cap: GLenum);
external (GLAPI) glIsEnabledi(_target: GLenum, _index: GLuint);
external (GLAPI) glIsFramebuffer(_framebuffer: GLuint);
external (GLAPI) glIsList(_list: GLuint);
external (GLAPI) glIsProgram(_program: GLuint);
external (GLAPI) glIsQuery(_id: GLuint);
external (GLAPI) glIsRenderbuffer(_renderbuffer: GLuint);
external (GLAPI) glIsSampler(_sampler: GLuint);
external (GLAPI) glIsShader(_shader: GLuint);
external (GLAPI) glIsSync(_sync: GLsync);
external (GLAPI) glIsTexture(_texture: GLuint);
external (GLAPI) glIsTransformFeedback(_id: GLuint);
external (GLAPI) glIsVertexArray(_array: GLuint);
external (GLAPI) glLightModelf(_pname: GLenum, _param: GLfloat);
external (GLAPI) glLightModelfv(_pname: GLenum, _params: Pointer[GLfloat]);
external (GLAPI) glLightModeli(_pname: GLenum, _param: GLint);
external (GLAPI) glLightModeliv(_pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glLightf(_light: GLenum, _pname: GLenum, _param: GLfloat);
external (GLAPI) glLightfv(_light: GLenum, _pname: GLenum, _params: Pointer[GLfloat]);
external (GLAPI) glLighti(_light: GLenum, _pname: GLenum, _param: GLint);
external (GLAPI) glLightiv(_light: GLenum, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glLineStipple(_factor: GLint, _pattern: GLushort);
external (GLAPI) glLineWidth(_width: GLfloat);
external (GLAPI) glLinkProgram(_program: GLuint);
external (GLAPI) glListBase(_base: GLuint);
external (GLAPI) glLoadIdentity();
external (GLAPI) glLoadMatrixd(_m: Pointer[GLdouble]);
external (GLAPI) glLoadMatrixf(_m: Pointer[GLfloat]);
external (GLAPI) glLoadName(_name: GLuint);
external (GLAPI) glLoadTransposeMatrixd(_m: Pointer[GLdouble]);
external (GLAPI) glLoadTransposeMatrixf(_m: Pointer[GLfloat]);
external (GLAPI) glLogicOp(_opcode: GLenum);
external (GLAPI) glMap1d(_target: GLenum, _u1: GLdouble, _u2: GLdouble, _stride: GLint, _order: GLint, _points: Pointer[GLdouble]);
external (GLAPI) glMap1f(_target: GLenum, _u1: GLfloat, _u2: GLfloat, _stride: GLint, _order: GLint, _points: Pointer[GLfloat]);
external (GLAPI) glMap2d(_target: GLenum, _u1: GLdouble, _u2: GLdouble, _ustride: GLint, _uorder: GLint, _v1: GLdouble, _v2: GLdouble, _vstride: GLint, _vorder: GLint, _points: Pointer[GLdouble]);
external (GLAPI) glMap2f(_target: GLenum, _u1: GLfloat, _u2: GLfloat, _ustride: GLint, _uorder: GLint, _v1: GLfloat, _v2: GLfloat, _vstride: GLint, _vorder: GLint, _points: Pointer[GLfloat]);
external (GLAPI) glMapBuffer(_target: GLenum, _access: GLenum);
external (GLAPI) glMapBufferRange(_target: GLenum, _offset: GLintptr, _length: GLsizeiptr, _access: GLbitfield);
external (GLAPI) glMapGrid1d(_un: GLint, _u1: GLdouble, _u2: GLdouble);
external (GLAPI) glMapGrid1f(_un: GLint, _u1: GLfloat, _u2: GLfloat);
external (GLAPI) glMapGrid2d(_un: GLint, _u1: GLdouble, _u2: GLdouble, _vn: GLint, _v1: GLdouble, _v2: GLdouble);
external (GLAPI) glMapGrid2f(_un: GLint, _u1: GLfloat, _u2: GLfloat, _vn: GLint, _v1: GLfloat, _v2: GLfloat);
external (GLAPI) glMaterialf(_face: GLenum, _pname: GLenum, _param: GLfloat);
external (GLAPI) glMaterialfv(_face: GLenum, _pname: GLenum, _params: Pointer[GLfloat]);
external (GLAPI) glMateriali(_face: GLenum, _pname: GLenum, _param: GLint);
external (GLAPI) glMaterialiv(_face: GLenum, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glMatrixMode(_mode: GLenum);
external (GLAPI) glMultMatrixd(_m: Pointer[GLdouble]);
external (GLAPI) glMultMatrixf(_m: Pointer[GLfloat]);
external (GLAPI) glMultTransposeMatrixd(_m: Pointer[GLdouble]);
external (GLAPI) glMultTransposeMatrixf(_m: Pointer[GLfloat]);
external (GLAPI) glMultiDrawArrays(_mode: GLenum, _first: Pointer[GLint], _count: Pointer[GLsizei], _primcount: GLsizei);
external (GLAPI) glMultiDrawElements(_mode: GLenum, _count: Pointer[GLsizei], _type: GLenum, _indices: Pointer[Pointer[GLvoid]], _primcount: GLsizei);
external (GLAPI) glMultiTexCoord1d(_target: GLenum, _s: GLdouble);
external (GLAPI) glMultiTexCoord1dv(_target: GLenum, _v: Pointer[GLdouble]);
external (GLAPI) glMultiTexCoord1f(_target: GLenum, _s: GLfloat);
external (GLAPI) glMultiTexCoord1fv(_target: GLenum, _v: Pointer[GLfloat]);
external (GLAPI) glMultiTexCoord1i(_target: GLenum, _s: GLint);
external (GLAPI) glMultiTexCoord1iv(_target: GLenum, _v: Pointer[GLint]);
external (GLAPI) glMultiTexCoord1s(_target: GLenum, _s: GLshort);
external (GLAPI) glMultiTexCoord1sv(_target: GLenum, _v: Pointer[GLshort]);
external (GLAPI) glMultiTexCoord2d(_target: GLenum, _s: GLdouble, _t: GLdouble);
external (GLAPI) glMultiTexCoord2dv(_target: GLenum, _v: Pointer[GLdouble]);
external (GLAPI) glMultiTexCoord2f(_target: GLenum, _s: GLfloat, _t: GLfloat);
external (GLAPI) glMultiTexCoord2fv(_target: GLenum, _v: Pointer[GLfloat]);
external (GLAPI) glMultiTexCoord2i(_target: GLenum, _s: GLint, _t: GLint);
external (GLAPI) glMultiTexCoord2iv(_target: GLenum, _v: Pointer[GLint]);
external (GLAPI) glMultiTexCoord2s(_target: GLenum, _s: GLshort, _t: GLshort);
external (GLAPI) glMultiTexCoord2sv(_target: GLenum, _v: Pointer[GLshort]);
external (GLAPI) glMultiTexCoord3d(_target: GLenum, _s: GLdouble, _t: GLdouble, _r: GLdouble);
external (GLAPI) glMultiTexCoord3dv(_target: GLenum, _v: Pointer[GLdouble]);
external (GLAPI) glMultiTexCoord3f(_target: GLenum, _s: GLfloat, _t: GLfloat, _r: GLfloat);
external (GLAPI) glMultiTexCoord3fv(_target: GLenum, _v: Pointer[GLfloat]);
external (GLAPI) glMultiTexCoord3i(_target: GLenum, _s: GLint, _t: GLint, _r: GLint);
external (GLAPI) glMultiTexCoord3iv(_target: GLenum, _v: Pointer[GLint]);
external (GLAPI) glMultiTexCoord3s(_target: GLenum, _s: GLshort, _t: GLshort, _r: GLshort);
external (GLAPI) glMultiTexCoord3sv(_target: GLenum, _v: Pointer[GLshort]);
external (GLAPI) glMultiTexCoord4d(_target: GLenum, _s: GLdouble, _t: GLdouble, _r: GLdouble, _q: GLdouble);
external (GLAPI) glMultiTexCoord4dv(_target: GLenum, _v: Pointer[GLdouble]);
external (GLAPI) glMultiTexCoord4f(_target: GLenum, _s: GLfloat, _t: GLfloat, _r: GLfloat, _q: GLfloat);
external (GLAPI) glMultiTexCoord4fv(_target: GLenum, _v: Pointer[GLfloat]);
external (GLAPI) glMultiTexCoord4i(_target: GLenum, _s: GLint, _t: GLint, _r: GLint, _q: GLint);
external (GLAPI) glMultiTexCoord4iv(_target: GLenum, _v: Pointer[GLint]);
external (GLAPI) glMultiTexCoord4s(_target: GLenum, _s: GLshort, _t: GLshort, _r: GLshort, _q: GLshort);
external (GLAPI) glMultiTexCoord4sv(_target: GLenum, _v: Pointer[GLshort]);
external (GLAPI) glMultiTexCoordP1ui(_texture: GLenum, _type: GLenum, _coords: GLuint);
external (GLAPI) glMultiTexCoordP1uiv(_texture: GLenum, _type: GLenum, _coords: Pointer[GLuint]);
external (GLAPI) glMultiTexCoordP2ui(_texture: GLenum, _type: GLenum, _coords: GLuint);
external (GLAPI) glMultiTexCoordP2uiv(_texture: GLenum, _type: GLenum, _coords: Pointer[GLuint]);
external (GLAPI) glMultiTexCoordP3ui(_texture: GLenum, _type: GLenum, _coords: GLuint);
external (GLAPI) glMultiTexCoordP3uiv(_texture: GLenum, _type: GLenum, _coords: Pointer[GLuint]);
external (GLAPI) glMultiTexCoordP4ui(_texture: GLenum, _type: GLenum, _coords: GLuint);
external (GLAPI) glMultiTexCoordP4uiv(_texture: GLenum, _type: GLenum, _coords: Pointer[GLuint]);
external (GLAPI) glNewList(_list: GLuint, _mode: GLenum);
external (GLAPI) glNormal3b(_nx: GLbyte, _ny: GLbyte, _nz: GLbyte);
external (GLAPI) glNormal3bv(_v: Pointer[GLbyte]);
external (GLAPI) glNormal3d(_nx: GLdouble, _ny: GLdouble, _nz: GLdouble);
external (GLAPI) glNormal3dv(_v: Pointer[GLdouble]);
external (GLAPI) glNormal3f(_nx: GLfloat, _ny: GLfloat, _nz: GLfloat);
external (GLAPI) glNormal3fv(_v: Pointer[GLfloat]);
external (GLAPI) glNormal3i(_nx: GLint, _ny: GLint, _nz: GLint);
external (GLAPI) glNormal3iv(_v: Pointer[GLint]);
external (GLAPI) glNormal3s(_nx: GLshort, _ny: GLshort, _nz: GLshort);
external (GLAPI) glNormal3sv(_v: Pointer[GLshort]);
external (GLAPI) glNormalP3ui(_type: GLenum, _coords: GLuint);
external (GLAPI) glNormalP3uiv(_type: GLenum, _coords: Pointer[GLuint]);
external (GLAPI) glNormalPointer(_type: GLenum, _stride: GLsizei, _ptr: Pointer[GLvoid]);
external (GLAPI) glOrtho(_left: GLdouble, _right: GLdouble, _bottom: GLdouble, _top: GLdouble, _near_val: GLdouble, _far_val: GLdouble);
external (GLAPI) glPassThrough(_token: GLfloat);
external (GLAPI) glPatchParameterfv(_pname: GLenum, _values: Pointer[GLfloat]);
external (GLAPI) glPatchParameteri(_pname: GLenum, _value: GLint);
external (GLAPI) glPauseTransformFeedback();
external (GLAPI) glPixelMapfv(_map: GLenum, _mapsize: GLsizei, _values: Pointer[GLfloat]);
external (GLAPI) glPixelMapuiv(_map: GLenum, _mapsize: GLsizei, _values: Pointer[GLuint]);
external (GLAPI) glPixelMapusv(_map: GLenum, _mapsize: GLsizei, _values: Pointer[GLushort]);
external (GLAPI) glPixelStoref(_pname: GLenum, _param: GLfloat);
external (GLAPI) glPixelStorei(_pname: GLenum, _param: GLint);
external (GLAPI) glPixelTransferf(_pname: GLenum, _param: GLfloat);
external (GLAPI) glPixelTransferi(_pname: GLenum, _param: GLint);
external (GLAPI) glPixelZoom(_xfactor: GLfloat, _yfactor: GLfloat);
external (GLAPI) glPointParameterf(_pname: GLenum, _param: GLfloat);
external (GLAPI) glPointParameterfv(_pname: GLenum, _params: Pointer[GLfloat]);
external (GLAPI) glPointParameteri(_pname: GLenum, _param: GLint);
external (GLAPI) glPointParameteriv(_pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glPointSize(_size: GLfloat);
external (GLAPI) glPolygonMode(_face: GLenum, _mode: GLenum);
external (GLAPI) glPolygonOffset(_factor: GLfloat, _units: GLfloat);
external (GLAPI) glPolygonStipple(_mask: Pointer[GLubyte]);
external (GLAPI) glPopAttrib();
external (GLAPI) glPopClientAttrib();
external (GLAPI) glPopMatrix();
external (GLAPI) glPopName();
external (GLAPI) glPrimitiveRestartIndex(_index: GLuint);
external (GLAPI) glPrioritizeTextures(_n: GLsizei, _textures: Pointer[GLuint], _priorities: Pointer[GLclampf]);
external (GLAPI) glProgramParameteriARB(_program: GLuint, _pname: GLenum, _value: GLint);
external (GLAPI) glProgramUniform1d(_program: GLuint, _location: GLint, _x: GLdouble);
external (GLAPI) glProgramUniform1dv(_program: GLuint, _location: GLint, _count: GLsizei, _value: Pointer[GLdouble]);
external (GLAPI) glProgramUniform2d(_program: GLuint, _location: GLint, _x: GLdouble, _y: GLdouble);
external (GLAPI) glProgramUniform2dv(_program: GLuint, _location: GLint, _count: GLsizei, _value: Pointer[GLdouble]);
external (GLAPI) glProgramUniform3d(_program: GLuint, _location: GLint, _x: GLdouble, _y: GLdouble, _z: GLdouble);
external (GLAPI) glProgramUniform3dv(_program: GLuint, _location: GLint, _count: GLsizei, _value: Pointer[GLdouble]);
external (GLAPI) glProgramUniform4d(_program: GLuint, _location: GLint, _x: GLdouble, _y: GLdouble, _z: GLdouble, _w: GLdouble);
external (GLAPI) glProgramUniform4dv(_program: GLuint, _location: GLint, _count: GLsizei, _value: Pointer[GLdouble]);
external (GLAPI) glProgramUniformMatrix2dv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLdouble]);
external (GLAPI) glProgramUniformMatrix2x3dv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLdouble]);
external (GLAPI) glProgramUniformMatrix2x4dv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLdouble]);
external (GLAPI) glProgramUniformMatrix3dv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLdouble]);
external (GLAPI) glProgramUniformMatrix3x2dv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLdouble]);
external (GLAPI) glProgramUniformMatrix3x4dv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLdouble]);
external (GLAPI) glProgramUniformMatrix4dv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLdouble]);
external (GLAPI) glProgramUniformMatrix4x2dv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLdouble]);
external (GLAPI) glProgramUniformMatrix4x3dv(_program: GLuint, _location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLdouble]);
external (GLAPI) glProvokingVertex(_mode: GLenum);
external (GLAPI) glPushAttrib(_mask: GLbitfield);
external (GLAPI) glPushClientAttrib(_mask: GLbitfield);
external (GLAPI) glPushMatrix();
external (GLAPI) glPushName(_name: GLuint);
external (GLAPI) glQueryCounter(_id: GLuint, _target: GLenum);
external (GLAPI) glRasterPos2d(_x: GLdouble, _y: GLdouble);
external (GLAPI) glRasterPos2dv(_v: Pointer[GLdouble]);
external (GLAPI) glRasterPos2f(_x: GLfloat, _y: GLfloat);
external (GLAPI) glRasterPos2fv(_v: Pointer[GLfloat]);
external (GLAPI) glRasterPos2i(_x: GLint, _y: GLint);
external (GLAPI) glRasterPos2iv(_v: Pointer[GLint]);
external (GLAPI) glRasterPos2s(_x: GLshort, _y: GLshort);
external (GLAPI) glRasterPos2sv(_v: Pointer[GLshort]);
external (GLAPI) glRasterPos3d(_x: GLdouble, _y: GLdouble, _z: GLdouble);
external (GLAPI) glRasterPos3dv(_v: Pointer[GLdouble]);
external (GLAPI) glRasterPos3f(_x: GLfloat, _y: GLfloat, _z: GLfloat);
external (GLAPI) glRasterPos3fv(_v: Pointer[GLfloat]);
external (GLAPI) glRasterPos3i(_x: GLint, _y: GLint, _z: GLint);
external (GLAPI) glRasterPos3iv(_v: Pointer[GLint]);
external (GLAPI) glRasterPos3s(_x: GLshort, _y: GLshort, _z: GLshort);
external (GLAPI) glRasterPos3sv(_v: Pointer[GLshort]);
external (GLAPI) glRasterPos4d(_x: GLdouble, _y: GLdouble, _z: GLdouble, _w: GLdouble);
external (GLAPI) glRasterPos4dv(_v: Pointer[GLdouble]);
external (GLAPI) glRasterPos4f(_x: GLfloat, _y: GLfloat, _z: GLfloat, _w: GLfloat);
external (GLAPI) glRasterPos4fv(_v: Pointer[GLfloat]);
external (GLAPI) glRasterPos4i(_x: GLint, _y: GLint, _z: GLint, _w: GLint);
external (GLAPI) glRasterPos4iv(_v: Pointer[GLint]);
external (GLAPI) glRasterPos4s(_x: GLshort, _y: GLshort, _z: GLshort, _w: GLshort);
external (GLAPI) glRasterPos4sv(_v: Pointer[GLshort]);
external (GLAPI) glReadBuffer(_mode: GLenum);
external (GLAPI) glReadPixels(_x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei, _format: GLenum, _type: GLenum, _pixels: Pointer[GLvoid]);
external (GLAPI) glRectd(_x1: GLdouble, _y1: GLdouble, _x2: GLdouble, _y2: GLdouble);
external (GLAPI) glRectdv(_v1: Pointer[GLdouble], _v2: Pointer[GLdouble]);
external (GLAPI) glRectf(_x1: GLfloat, _y1: GLfloat, _x2: GLfloat, _y2: GLfloat);
external (GLAPI) glRectfv(_v1: Pointer[GLfloat], _v2: Pointer[GLfloat]);
external (GLAPI) glRecti(_x1: GLint, _y1: GLint, _x2: GLint, _y2: GLint);
external (GLAPI) glRectiv(_v1: Pointer[GLint], _v2: Pointer[GLint]);
external (GLAPI) glRects(_x1: GLshort, _y1: GLshort, _x2: GLshort, _y2: GLshort);
external (GLAPI) glRectsv(_v1: Pointer[GLshort], _v2: Pointer[GLshort]);
external (GLAPI) glRenderMode(_mode: GLenum);
external (GLAPI) glRenderbufferStorage(_target: GLenum, _internalformat: GLenum, _width: GLsizei, _height: GLsizei);
external (GLAPI) glRenderbufferStorageMultisample(_target: GLenum, _samples: GLsizei, _internalformat: GLenum, _width: GLsizei, _height: GLsizei);
external (GLAPI) glResumeTransformFeedback();
external (GLAPI) glRotated(_angle: GLdouble, _x: GLdouble, _y: GLdouble, _z: GLdouble);
external (GLAPI) glRotatef(_angle: GLfloat, _x: GLfloat, _y: GLfloat, _z: GLfloat);
external (GLAPI) glSampleCoverage(_value: GLclampf, _invert: GLboolean);
external (GLAPI) glSampleMaski(_index: GLuint, _mask: GLbitfield);
external (GLAPI) glSamplerParameterIiv(_sampler: GLuint, _pname: GLenum, _param: Pointer[GLint]);
external (GLAPI) glSamplerParameterIuiv(_sampler: GLuint, _pname: GLenum, _param: Pointer[GLuint]);
external (GLAPI) glSamplerParameterf(_sampler: GLuint, _pname: GLenum, _param: GLfloat);
external (GLAPI) glSamplerParameterfv(_sampler: GLuint, _pname: GLenum, _param: Pointer[GLfloat]);
external (GLAPI) glSamplerParameteri(_sampler: GLuint, _pname: GLenum, _param: GLint);
external (GLAPI) glSamplerParameteriv(_sampler: GLuint, _pname: GLenum, _param: Pointer[GLint]);
external (GLAPI) glScaled(_x: GLdouble, _y: GLdouble, _z: GLdouble);
external (GLAPI) glScalef(_x: GLfloat, _y: GLfloat, _z: GLfloat);
external (GLAPI) glScissor(_x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei);
external (GLAPI) glSecondaryColor3b(_red: GLbyte, _green: GLbyte, _blue: GLbyte);
external (GLAPI) glSecondaryColor3bv(_v: Pointer[GLbyte]);
external (GLAPI) glSecondaryColor3d(_red: GLdouble, _green: GLdouble, _blue: GLdouble);
external (GLAPI) glSecondaryColor3dv(_v: Pointer[GLdouble]);
external (GLAPI) glSecondaryColor3f(_red: GLfloat, _green: GLfloat, _blue: GLfloat);
external (GLAPI) glSecondaryColor3fv(_v: Pointer[GLfloat]);
external (GLAPI) glSecondaryColor3i(_red: GLint, _green: GLint, _blue: GLint);
external (GLAPI) glSecondaryColor3iv(_v: Pointer[GLint]);
external (GLAPI) glSecondaryColor3s(_red: GLshort, _green: GLshort, _blue: GLshort);
external (GLAPI) glSecondaryColor3sv(_v: Pointer[GLshort]);
external (GLAPI) glSecondaryColor3ub(_red: GLubyte, _green: GLubyte, _blue: GLubyte);
external (GLAPI) glSecondaryColor3ubv(_v: Pointer[GLubyte]);
external (GLAPI) glSecondaryColor3ui(_red: GLuint, _green: GLuint, _blue: GLuint);
external (GLAPI) glSecondaryColor3uiv(_v: Pointer[GLuint]);
external (GLAPI) glSecondaryColor3us(_red: GLushort, _green: GLushort, _blue: GLushort);
external (GLAPI) glSecondaryColor3usv(_v: Pointer[GLushort]);
external (GLAPI) glSecondaryColorP3ui(_type: GLenum, _color: GLuint);
external (GLAPI) glSecondaryColorP3uiv(_type: GLenum, _color: Pointer[GLuint]);
external (GLAPI) glSecondaryColorPointer(_size: GLint, _type: GLenum, _stride: GLsizei, _pointer: Pointer[GLvoid]);
external (GLAPI) glSelectBuffer(_size: GLsizei, _buffer: Pointer[GLuint]);
external (GLAPI) glShadeModel(_mode: GLenum);
external (GLAPI) glShaderSource(_shader: GLuint, _count: GLsizei, _strings: Pointer[GLstring], _lengths: Pointer[GLint]);
external (GLAPI) glStencilFunc(_func: GLenum, _ref: GLint, _mask: GLuint);
external (GLAPI) glStencilFuncSeparate(_frontfunc: GLenum, _backfunc: GLenum, _ref: GLint, _mask: GLuint);
external (GLAPI) glStencilMask(_mask: GLuint);
external (GLAPI) glStencilMaskSeparate(_face: GLenum, _mask: GLuint);
external (GLAPI) glStencilOp(_fail: GLenum, _zfail: GLenum, _zpass: GLenum);
external (GLAPI) glStencilOpSeparate(_face: GLenum, _sfail: GLenum, _dpfail: GLenum, _dppass: GLenum);
external (GLAPI) glTexBuffer(_target: GLenum, _internalformat: GLenum, _buffer: GLuint);
external (GLAPI) glTexCoord1d(_s: GLdouble);
external (GLAPI) glTexCoord1dv(_v: Pointer[GLdouble]);
external (GLAPI) glTexCoord1f(_s: GLfloat);
external (GLAPI) glTexCoord1fv(_v: Pointer[GLfloat]);
external (GLAPI) glTexCoord1i(_s: GLint);
external (GLAPI) glTexCoord1iv(_v: Pointer[GLint]);
external (GLAPI) glTexCoord1s(_s: GLshort);
external (GLAPI) glTexCoord1sv(_v: Pointer[GLshort]);
external (GLAPI) glTexCoord2d(_s: GLdouble, _t: GLdouble);
external (GLAPI) glTexCoord2dv(_v: Pointer[GLdouble]);
external (GLAPI) glTexCoord2f(_s: GLfloat, _t: GLfloat);
external (GLAPI) glTexCoord2fv(_v: Pointer[GLfloat]);
external (GLAPI) glTexCoord2i(_s: GLint, _t: GLint);
external (GLAPI) glTexCoord2iv(_v: Pointer[GLint]);
external (GLAPI) glTexCoord2s(_s: GLshort, _t: GLshort);
external (GLAPI) glTexCoord2sv(_v: Pointer[GLshort]);
external (GLAPI) glTexCoord3d(_s: GLdouble, _t: GLdouble, _r: GLdouble);
external (GLAPI) glTexCoord3dv(_v: Pointer[GLdouble]);
external (GLAPI) glTexCoord3f(_s: GLfloat, _t: GLfloat, _r: GLfloat);
external (GLAPI) glTexCoord3fv(_v: Pointer[GLfloat]);
external (GLAPI) glTexCoord3i(_s: GLint, _t: GLint, _r: GLint);
external (GLAPI) glTexCoord3iv(_v: Pointer[GLint]);
external (GLAPI) glTexCoord3s(_s: GLshort, _t: GLshort, _r: GLshort);
external (GLAPI) glTexCoord3sv(_v: Pointer[GLshort]);
external (GLAPI) glTexCoord4d(_s: GLdouble, _t: GLdouble, _r: GLdouble, _q: GLdouble);
external (GLAPI) glTexCoord4dv(_v: Pointer[GLdouble]);
external (GLAPI) glTexCoord4f(_s: GLfloat, _t: GLfloat, _r: GLfloat, _q: GLfloat);
external (GLAPI) glTexCoord4fv(_v: Pointer[GLfloat]);
external (GLAPI) glTexCoord4i(_s: GLint, _t: GLint, _r: GLint, _q: GLint);
external (GLAPI) glTexCoord4iv(_v: Pointer[GLint]);
external (GLAPI) glTexCoord4s(_s: GLshort, _t: GLshort, _r: GLshort, _q: GLshort);
external (GLAPI) glTexCoord4sv(_v: Pointer[GLshort]);
external (GLAPI) glTexCoordP1ui(_type: GLenum, _coords: GLuint);
external (GLAPI) glTexCoordP1uiv(_type: GLenum, _coords: Pointer[GLuint]);
external (GLAPI) glTexCoordP2ui(_type: GLenum, _coords: GLuint);
external (GLAPI) glTexCoordP2uiv(_type: GLenum, _coords: Pointer[GLuint]);
external (GLAPI) glTexCoordP3ui(_type: GLenum, _coords: GLuint);
external (GLAPI) glTexCoordP3uiv(_type: GLenum, _coords: Pointer[GLuint]);
external (GLAPI) glTexCoordP4ui(_type: GLenum, _coords: GLuint);
external (GLAPI) glTexCoordP4uiv(_type: GLenum, _coords: Pointer[GLuint]);
external (GLAPI) glTexCoordPointer(_size: GLint, _type: GLenum, _stride: GLsizei, _ptr: Pointer[GLvoid]);
external (GLAPI) glTexEnvf(_target: GLenum, _pname: GLenum, _param: GLfloat);
external (GLAPI) glTexEnvfv(_target: GLenum, _pname: GLenum, _params: Pointer[GLfloat]);
external (GLAPI) glTexEnvi(_target: GLenum, _pname: GLenum, _param: GLint);
external (GLAPI) glTexEnviv(_target: GLenum, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glTexGend(_coord: GLenum, _pname: GLenum, _param: GLdouble);
external (GLAPI) glTexGendv(_coord: GLenum, _pname: GLenum, _params: Pointer[GLdouble]);
external (GLAPI) glTexGenf(_coord: GLenum, _pname: GLenum, _param: GLfloat);
external (GLAPI) glTexGenfv(_coord: GLenum, _pname: GLenum, _params: Pointer[GLfloat]);
external (GLAPI) glTexGeni(_coord: GLenum, _pname: GLenum, _param: GLint);
external (GLAPI) glTexGeniv(_coord: GLenum, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glTexImage1D(_target: GLenum, _level: GLint, _internalFormat: GLint, _width: GLsizei, _border: GLint, _format: GLenum, _type: GLenum, _pixels: Pointer[GLvoid]);
external (GLAPI) glTexImage2D(_target: GLenum, _level: GLint, _internalFormat: GLint, _width: GLsizei, _height: GLsizei, _border: GLint, _format: GLenum, _type: GLenum, _pixels: Pointer[GLvoid]);
external (GLAPI) glTexImage2DMultisample(_target: GLenum, _samples: GLsizei, _internalformat: GLint, _width: GLsizei, _height: GLsizei, _fixedsamplelocations: GLboolean);
external (GLAPI) glTexImage3D(_target: GLenum, _level: GLint, _internalFormat: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _border: GLint, _format: GLenum, _type: GLenum, _pixels: Pointer[GLvoid]);
external (GLAPI) glTexImage3DMultisample(_target: GLenum, _samples: GLsizei, _internalformat: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _fixedsamplelocations: GLboolean);
external (GLAPI) glTexParameterIiv(_target: GLenum, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glTexParameterIuiv(_target: GLenum, _pname: GLenum, _params: Pointer[GLuint]);
external (GLAPI) glTexParameterf(_target: GLenum, _pname: GLenum, _param: GLfloat);
external (GLAPI) glTexParameterfv(_target: GLenum, _pname: GLenum, _params: Pointer[GLfloat]);
external (GLAPI) glTexParameteri(_target: GLenum, _pname: GLenum, _param: GLint);
external (GLAPI) glTexParameteriv(_target: GLenum, _pname: GLenum, _params: Pointer[GLint]);
external (GLAPI) glTexSubImage1D(_target: GLenum, _level: GLint, _xoffset: GLint, _width: GLsizei, _format: GLenum, _type: GLenum, _pixels: Pointer[GLvoid]);
external (GLAPI) glTexSubImage2D(_target: GLenum, _level: GLint, _xoffset: GLint, _yoffset: GLint, _width: GLsizei, _height: GLsizei, _format: GLenum, _type: GLenum, _pixels: Pointer[GLvoid]);
external (GLAPI) glTexSubImage3D(_target: GLenum, _level: GLint, _xoffset: GLint, _yoffset: GLint, _zoffset: GLint, _width: GLsizei, _height: GLsizei, _depth: GLsizei, _format: GLenum, _type: GLenum, _pixels: Pointer[GLvoid]);
external (GLAPI) glTransformFeedbackVaryings(_program: GLuint, _count: GLsizei, _varyings: Pointer[GLstring], _bufferMode: GLenum);
external (GLAPI) glTranslated(_x: GLdouble, _y: GLdouble, _z: GLdouble);
external (GLAPI) glTranslatef(_x: GLfloat, _y: GLfloat, _z: GLfloat);
external (GLAPI) glUniform1d(_location: GLint, _x: GLdouble);
external (GLAPI) glUniform1dv(_location: GLint, _count: GLsizei, _value: Pointer[GLdouble]);
external (GLAPI) glUniform1f(_location: GLint, _v0: GLfloat);
external (GLAPI) glUniform1fv(_location: GLint, _count: GLsizei, _value: Pointer[GLfloat]);
external (GLAPI) glUniform1i(_location: GLint, _v0: GLint);
external (GLAPI) glUniform1iv(_location: GLint, _count: GLsizei, _value: Pointer[GLint]);
external (GLAPI) glUniform1ui(_location: GLint, _v0: GLuint);
external (GLAPI) glUniform1uiv(_location: GLint, _count: GLsizei, _value: Pointer[GLuint]);
external (GLAPI) glUniform2d(_location: GLint, _x: GLdouble, _y: GLdouble);
external (GLAPI) glUniform2dv(_location: GLint, _count: GLsizei, _value: Pointer[GLdouble]);
external (GLAPI) glUniform2f(_location: GLint, _v0: GLfloat, _v1: GLfloat);
external (GLAPI) glUniform2fv(_location: GLint, _count: GLsizei, _value: Pointer[GLfloat]);
external (GLAPI) glUniform2i(_location: GLint, _v0: GLint, _v1: GLint);
external (GLAPI) glUniform2iv(_location: GLint, _count: GLsizei, _value: Pointer[GLint]);
external (GLAPI) glUniform2ui(_location: GLint, _v0: GLuint, _v1: GLuint);
external (GLAPI) glUniform2uiv(_location: GLint, _count: GLsizei, _value: Pointer[GLuint]);
external (GLAPI) glUniform3d(_location: GLint, _x: GLdouble, _y: GLdouble, _z: GLdouble);
external (GLAPI) glUniform3dv(_location: GLint, _count: GLsizei, _value: Pointer[GLdouble]);
external (GLAPI) glUniform3f(_location: GLint, _v0: GLfloat, _v1: GLfloat, _v2: GLfloat);
external (GLAPI) glUniform3fv(_location: GLint, _count: GLsizei, _value: Pointer[GLfloat]);
external (GLAPI) glUniform3i(_location: GLint, _v0: GLint, _v1: GLint, _v2: GLint);
external (GLAPI) glUniform3iv(_location: GLint, _count: GLsizei, _value: Pointer[GLint]);
external (GLAPI) glUniform3ui(_location: GLint, _v0: GLuint, _v1: GLuint, _v2: GLuint);
external (GLAPI) glUniform3uiv(_location: GLint, _count: GLsizei, _value: Pointer[GLuint]);
external (GLAPI) glUniform4d(_location: GLint, _x: GLdouble, _y: GLdouble, _z: GLdouble, _w: GLdouble);
external (GLAPI) glUniform4dv(_location: GLint, _count: GLsizei, _value: Pointer[GLdouble]);
external (GLAPI) glUniform4f(_location: GLint, _v0: GLfloat, _v1: GLfloat, _v2: GLfloat, _v3: GLfloat);
external (GLAPI) glUniform4fv(_location: GLint, _count: GLsizei, _value: Pointer[GLfloat]);
external (GLAPI) glUniform4i(_location: GLint, _v0: GLint, _v1: GLint, _v2: GLint, _v3: GLint);
external (GLAPI) glUniform4iv(_location: GLint, _count: GLsizei, _value: Pointer[GLint]);
external (GLAPI) glUniform4ui(_location: GLint, _v0: GLuint, _v1: GLuint, _v2: GLuint, _v3: GLuint);
external (GLAPI) glUniform4uiv(_location: GLint, _count: GLsizei, _value: Pointer[GLuint]);
external (GLAPI) glUniformBlockBinding(_buffer: GLuint, _uniformBlockIndex: GLuint, _uniformBlockBinding: GLuint);
external (GLAPI) glUniformMatrix2dv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLdouble]);
external (GLAPI) glUniformMatrix2fv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLfloat]);
external (GLAPI) glUniformMatrix2x3dv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLdouble]);
external (GLAPI) glUniformMatrix2x3fv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLfloat]);
external (GLAPI) glUniformMatrix2x4dv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLdouble]);
external (GLAPI) glUniformMatrix2x4fv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLfloat]);
external (GLAPI) glUniformMatrix3dv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLdouble]);
external (GLAPI) glUniformMatrix3fv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLfloat]);
external (GLAPI) glUniformMatrix3x2dv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLdouble]);
external (GLAPI) glUniformMatrix3x2fv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLfloat]);
external (GLAPI) glUniformMatrix3x4dv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLdouble]);
external (GLAPI) glUniformMatrix3x4fv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLfloat]);
external (GLAPI) glUniformMatrix4dv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLdouble]);
external (GLAPI) glUniformMatrix4fv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLfloat]);
external (GLAPI) glUniformMatrix4x2dv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLdouble]);
external (GLAPI) glUniformMatrix4x2fv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLfloat]);
external (GLAPI) glUniformMatrix4x3dv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLdouble]);
external (GLAPI) glUniformMatrix4x3fv(_location: GLint, _count: GLsizei, _transpose: GLboolean, _value: Pointer[GLfloat]);
external (GLAPI) glUniformSubroutinesuiv(_shadertype: GLenum, _count: GLsizei, _indices: Pointer[GLuint]);
external (GLAPI) glUnmapBuffer(_target: GLenum);
external (GLAPI) glUseProgram(_program: GLuint);
external (GLAPI) glValidateProgram(_program: GLuint);
external (GLAPI) glVertex2d(_x: GLdouble, _y: GLdouble);
external (GLAPI) glVertex2dv(_v: Pointer[GLdouble]);
external (GLAPI) glVertex2f(_x: GLfloat, _y: GLfloat);
external (GLAPI) glVertex2fv(_v: Pointer[GLfloat]);
external (GLAPI) glVertex2i(_x: GLint, _y: GLint);
external (GLAPI) glVertex2iv(_v: Pointer[GLint]);
external (GLAPI) glVertex2s(_x: GLshort, _y: GLshort);
external (GLAPI) glVertex2sv(_v: Pointer[GLshort]);
external (GLAPI) glVertex3d(_x: GLdouble, _y: GLdouble, _z: GLdouble);
external (GLAPI) glVertex3dv(_v: Pointer[GLdouble]);
external (GLAPI) glVertex3f(_x: GLfloat, _y: GLfloat, _z: GLfloat);
external (GLAPI) glVertex3fv(_v: Pointer[GLfloat]);
external (GLAPI) glVertex3i(_x: GLint, _y: GLint, _z: GLint);
external (GLAPI) glVertex3iv(_v: Pointer[GLint]);
external (GLAPI) glVertex3s(_x: GLshort, _y: GLshort, _z: GLshort);
external (GLAPI) glVertex3sv(_v: Pointer[GLshort]);
external (GLAPI) glVertex4d(_x: GLdouble, _y: GLdouble, _z: GLdouble, _w: GLdouble);
external (GLAPI) glVertex4dv(_v: Pointer[GLdouble]);
external (GLAPI) glVertex4f(_x: GLfloat, _y: GLfloat, _z: GLfloat, _w: GLfloat);
external (GLAPI) glVertex4fv(_v: Pointer[GLfloat]);
external (GLAPI) glVertex4i(_x: GLint, _y: GLint, _z: GLint, _w: GLint);
external (GLAPI) glVertex4iv(_v: Pointer[GLint]);
external (GLAPI) glVertex4s(_x: GLshort, _y: GLshort, _z: GLshort, _w: GLshort);
external (GLAPI) glVertex4sv(_v: Pointer[GLshort]);
external (GLAPI) glVertexAttrib1d(_index: GLuint, _x: GLdouble);
external (GLAPI) glVertexAttrib1dv(_index: GLuint, _v: Pointer[GLdouble]);
external (GLAPI) glVertexAttrib1f(_index: GLuint, _x: GLfloat);
external (GLAPI) glVertexAttrib1fv(_index: GLuint, _v: Pointer[GLfloat]);
external (GLAPI) glVertexAttrib1s(_index: GLuint, _x: GLshort);
external (GLAPI) glVertexAttrib1sv(_index: GLuint, _v: Pointer[GLshort]);
external (GLAPI) glVertexAttrib2d(_index: GLuint, _x: GLdouble, _y: GLdouble);
external (GLAPI) glVertexAttrib2dv(_index: GLuint, _v: Pointer[GLdouble]);
external (GLAPI) glVertexAttrib2f(_index: GLuint, _x: GLfloat, _y: GLfloat);
external (GLAPI) glVertexAttrib2fv(_index: GLuint, _v: Pointer[GLfloat]);
external (GLAPI) glVertexAttrib2s(_index: GLuint, _x: GLshort, _y: GLshort);
external (GLAPI) glVertexAttrib2sv(_index: GLuint, _v: Pointer[GLshort]);
external (GLAPI) glVertexAttrib3d(_index: GLuint, _x: GLdouble, _y: GLdouble, _z: GLdouble);
external (GLAPI) glVertexAttrib3dv(_index: GLuint, _v: Pointer[GLdouble]);
external (GLAPI) glVertexAttrib3f(_index: GLuint, _x: GLfloat, _y: GLfloat, _z: GLfloat);
external (GLAPI) glVertexAttrib3fv(_index: GLuint, _v: Pointer[GLfloat]);
external (GLAPI) glVertexAttrib3s(_index: GLuint, _x: GLshort, _y: GLshort, _z: GLshort);
external (GLAPI) glVertexAttrib3sv(_index: GLuint, _v: Pointer[GLshort]);
external (GLAPI) glVertexAttrib4Nbv(_index: GLuint, _v: Pointer[GLbyte]);
external (GLAPI) glVertexAttrib4Niv(_index: GLuint, _v: Pointer[GLint]);
external (GLAPI) glVertexAttrib4Nsv(_index: GLuint, _v: Pointer[GLshort]);
external (GLAPI) glVertexAttrib4Nub(_index: GLuint, _x: GLubyte, _y: GLubyte, _z: GLubyte, _w: GLubyte);
external (GLAPI) glVertexAttrib4Nubv(_index: GLuint, _v: Pointer[GLubyte]);
external (GLAPI) glVertexAttrib4Nuiv(_index: GLuint, _v: Pointer[GLuint]);
external (GLAPI) glVertexAttrib4Nusv(_index: GLuint, _v: Pointer[GLushort]);
external (GLAPI) glVertexAttrib4bv(_index: GLuint, _v: Pointer[GLbyte]);
external (GLAPI) glVertexAttrib4d(_index: GLuint, _x: GLdouble, _y: GLdouble, _z: GLdouble, _w: GLdouble);
external (GLAPI) glVertexAttrib4dv(_index: GLuint, _v: Pointer[GLdouble]);
external (GLAPI) glVertexAttrib4f(_index: GLuint, _x: GLfloat, _y: GLfloat, _z: GLfloat, _w: GLfloat);
external (GLAPI) glVertexAttrib4fv(_index: GLuint, _v: Pointer[GLfloat]);
external (GLAPI) glVertexAttrib4iv(_index: GLuint, _v: Pointer[GLint]);
external (GLAPI) glVertexAttrib4s(_index: GLuint, _x: GLshort, _y: GLshort, _z: GLshort, _w: GLshort);
external (GLAPI) glVertexAttrib4sv(_index: GLuint, _v: Pointer[GLshort]);
external (GLAPI) glVertexAttrib4ubv(_index: GLuint, _v: Pointer[GLubyte]);
external (GLAPI) glVertexAttrib4uiv(_index: GLuint, _v: Pointer[GLuint]);
external (GLAPI) glVertexAttrib4usv(_index: GLuint, _v: Pointer[GLushort]);
external (GLAPI) glVertexAttribIPointer(_index: GLuint, _size: GLint, _type: GLenum, _stride: GLsizei, _pointer: Pointer[GLvoid]);
external (GLAPI) glVertexAttribP1ui(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: GLuint);
external (GLAPI) glVertexAttribP1uiv(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: Pointer[GLuint]);
external (GLAPI) glVertexAttribP2ui(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: GLuint);
external (GLAPI) glVertexAttribP2uiv(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: Pointer[GLuint]);
external (GLAPI) glVertexAttribP3ui(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: GLuint);
external (GLAPI) glVertexAttribP3uiv(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: Pointer[GLuint]);
external (GLAPI) glVertexAttribP4ui(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: GLuint);
external (GLAPI) glVertexAttribP4uiv(_index: GLuint, _type: GLenum, _normalized: GLboolean, _value: Pointer[GLuint]);
external (GLAPI) glVertexAttribPointer(_index: GLuint, _size: GLint, _type: GLenum, _normalized: GLboolean, _stride: GLsizei, _pointer: Pointer[GLvoid]);
external (GLAPI) glVertexP2ui(_type: GLenum, _value: GLuint);
external (GLAPI) glVertexP2uiv(_type: GLenum, _value: Pointer[GLuint]);
external (GLAPI) glVertexP3ui(_type: GLenum, _value: GLuint);
external (GLAPI) glVertexP3uiv(_type: GLenum, _value: Pointer[GLuint]);
external (GLAPI) glVertexP4ui(_type: GLenum, _value: GLuint);
external (GLAPI) glVertexP4uiv(_type: GLenum, _value: Pointer[GLuint]);
external (GLAPI) glVertexPointer(_size: GLint, _type: GLenum, _stride: GLsizei, _ptr: Pointer[GLvoid]);
external (GLAPI) glViewport(_x: GLint, _y: GLint, _width: GLsizei, _height: GLsizei);
external (GLAPI) glWaitSync(_sync: GLsync, _flags: GLbitfield, _timeout: GLuint64);
external (GLAPI) glWindowPos2d(_x: GLdouble, _y: GLdouble);
external (GLAPI) glWindowPos2dv(_p: Pointer[GLdouble]);
external (GLAPI) glWindowPos2f(_x: GLfloat, _y: GLfloat);
external (GLAPI) glWindowPos2fv(_p: Pointer[GLfloat]);
external (GLAPI) glWindowPos2i(_x: GLint, _y: GLint);
external (GLAPI) glWindowPos2iv(_p: Pointer[GLint]);
external (GLAPI) glWindowPos2s(_x: GLshort, _y: GLshort);
external (GLAPI) glWindowPos2sv(_p: Pointer[GLshort]);
external (GLAPI) glWindowPos3d(_x: GLdouble, _y: GLdouble, _z: GLdouble);
external (GLAPI) glWindowPos3dv(_p: Pointer[GLdouble]);
external (GLAPI) glWindowPos3f(_x: GLfloat, _y: GLfloat, _z: GLfloat);
external (GLAPI) glWindowPos3fv(_p: Pointer[GLfloat]);
external (GLAPI) glWindowPos3i(_x: GLint, _y: GLint, _z: GLint);
external (GLAPI) glWindowPos3iv(_p: Pointer[GLint]);
external (GLAPI) glWindowPos3s(_x: GLshort, _y: GLshort, _z: GLshort);
external (GLAPI) glWindowPos3sv(_p: Pointer[GLshort]);

record GLFunctions ();

overload fieldRef(gl:GLFunctions, ident) =
    forward fieldRef(self, IdentifierConcat(#gl, ident));
