// Code generated by glow (https://github.com/go-gl/glow). DO NOT EDIT. // Copyright (c) 2010 Khronos Group. // This material may be distributed subject to the terms and conditions // set forth in the Open Publication License, v 1.0, 8 June 1999. // http://opencontent.org/openpub/. // // Copyright (c) 1991-2006 Silicon Graphics, Inc. // This document is licensed under the SGI Free Software B License. // For details, see http://oss.sgi.com/projects/FreeB. // Package gl implements Go bindings to OpenGL. // // This package was automatically generated using Glow: // https://github.com/go-gl/glow // package gl // #cgo darwin LDFLAGS: -framework OpenGL // #cgo linux,!android LDFLAGS: -lGL // #cgo freebsd,!android LDFLAGS: -lGL // #cgo windows LDFLAGS: -lopengl32 // #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) // #ifndef WIN32_LEAN_AND_MEAN // #define WIN32_LEAN_AND_MEAN 1 // #endif // #include // #endif // #ifndef APIENTRY // #define APIENTRY // #endif // #ifndef APIENTRYP // #define APIENTRYP APIENTRY * // #endif // #ifndef GLAPI // #define GLAPI extern // #endif // #include // typedef unsigned int GLenum; // typedef unsigned char GLboolean; // typedef unsigned int GLbitfield; // typedef signed char GLbyte; // typedef short GLshort; // typedef int GLint; // typedef unsigned char GLubyte; // typedef unsigned short GLushort; // typedef unsigned int GLuint; // typedef int GLsizei; // typedef float GLfloat; // typedef double GLdouble; // typedef char GLchar; // #include // typedef unsigned int GLenum; // typedef unsigned char GLboolean; // typedef unsigned int GLbitfield; // typedef int GLint; // typedef unsigned int GLuint; // typedef int GLsizei; // typedef char GLchar; // typedef khronos_uint8_t GLubyte; // typedef khronos_float_t GLfloat; // typedef khronos_intptr_t GLintptr; // typedef khronos_ssize_t GLsizeiptr; // typedef void (APIENTRYP GPACTIVETEXTURE)(GLenum texture); // typedef void (APIENTRYP GPATTACHSHADER)(GLuint program, GLuint shader); // typedef void (APIENTRYP GPBINDATTRIBLOCATION)(GLuint program, GLuint index, const GLchar * name); // typedef void (APIENTRYP GPBINDBUFFER)(GLenum target, GLuint buffer); // typedef void (APIENTRYP GPBINDFRAMEBUFFER)(GLenum target, GLuint framebuffer); // typedef void (APIENTRYP GPBINDRENDERBUFFER)(GLenum target, GLuint renderbuffer); // typedef void (APIENTRYP GPBINDTEXTURE)(GLenum target, GLuint texture); // typedef void (APIENTRYP GPBLENDCOLOR)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); // typedef void (APIENTRYP GPBLENDEQUATION)(GLenum mode); // typedef void (APIENTRYP GPBLENDEQUATIONSEPARATE)(GLenum modeRGB, GLenum modeAlpha); // typedef void (APIENTRYP GPBLENDFUNC)(GLenum sfactor, GLenum dfactor); // typedef void (APIENTRYP GPBLENDFUNCSEPARATE)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); // typedef void (APIENTRYP GPBUFFERDATA)(GLenum target, GLsizeiptr size, const void * data, GLenum usage); // typedef void (APIENTRYP GPBUFFERSUBDATA)(GLenum target, GLintptr offset, GLsizeiptr size, const void * data); // typedef GLenum (APIENTRYP GPCHECKFRAMEBUFFERSTATUS)(GLenum target); // typedef void (APIENTRYP GPCLEAR)(GLbitfield mask); // typedef void (APIENTRYP GPCLEARCOLOR)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); // typedef void (APIENTRYP GPCLEARSTENCIL)(GLint s); // typedef void (APIENTRYP GPCOLORMASK)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); // typedef void (APIENTRYP GPCOMPILESHADER)(GLuint shader); // typedef void (APIENTRYP GPCOMPRESSEDTEXIMAGE2D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data); // typedef void (APIENTRYP GPCOMPRESSEDTEXSUBIMAGE2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data); // typedef void (APIENTRYP GPCOPYTEXIMAGE2D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); // typedef void (APIENTRYP GPCOPYTEXSUBIMAGE2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); // typedef GLuint (APIENTRYP GPCREATEPROGRAM)(); // typedef GLuint (APIENTRYP GPCREATESHADER)(GLenum type); // typedef void (APIENTRYP GPCULLFACE)(GLenum mode); // typedef void (APIENTRYP GPDELETEBUFFERS)(GLsizei n, const GLuint * buffers); // typedef void (APIENTRYP GPDELETEFRAMEBUFFERS)(GLsizei n, const GLuint * framebuffers); // typedef void (APIENTRYP GPDELETEPROGRAM)(GLuint program); // typedef void (APIENTRYP GPDELETERENDERBUFFERS)(GLsizei n, const GLuint * renderbuffers); // typedef void (APIENTRYP GPDELETESHADER)(GLuint shader); // typedef void (APIENTRYP GPDELETETEXTURES)(GLsizei n, const GLuint * textures); // typedef void (APIENTRYP GPDEPTHFUNC)(GLenum func); // typedef void (APIENTRYP GPDEPTHMASK)(GLboolean flag); // typedef void (APIENTRYP GPDETACHSHADER)(GLuint program, GLuint shader); // typedef void (APIENTRYP GPDISABLE)(GLenum cap); // typedef void (APIENTRYP GPDISABLEVERTEXATTRIBARRAY)(GLuint index); // typedef void (APIENTRYP GPDRAWARRAYS)(GLenum mode, GLint first, GLsizei count); // typedef void (APIENTRYP GPDRAWELEMENTS)(GLenum mode, GLsizei count, GLenum type, const void * indices); // typedef void (APIENTRYP GPENABLE)(GLenum cap); // typedef void (APIENTRYP GPENABLEVERTEXATTRIBARRAY)(GLuint index); // typedef void (APIENTRYP GPFINISH)(); // typedef void (APIENTRYP GPFLUSH)(); // typedef void (APIENTRYP GPFRAMEBUFFERRENDERBUFFER)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); // typedef void (APIENTRYP GPFRAMEBUFFERTEXTURE2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); // typedef void (APIENTRYP GPFRONTFACE)(GLenum mode); // typedef void (APIENTRYP GPGENBUFFERS)(GLsizei n, GLuint * buffers); // typedef void (APIENTRYP GPGENFRAMEBUFFERS)(GLsizei n, GLuint * framebuffers); // typedef void (APIENTRYP GPGENRENDERBUFFERS)(GLsizei n, GLuint * renderbuffers); // typedef void (APIENTRYP GPGENTEXTURES)(GLsizei n, GLuint * textures); // typedef void (APIENTRYP GPGENERATEMIPMAP)(GLenum target); // typedef void (APIENTRYP GPGETACTIVEATTRIB)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name); // typedef void (APIENTRYP GPGETACTIVEUNIFORM)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name); // typedef void (APIENTRYP GPGETATTACHEDSHADERS)(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders); // typedef GLint (APIENTRYP GPGETATTRIBLOCATION)(GLuint program, const GLchar * name); // typedef void (APIENTRYP GPGETBOOLEANV)(GLenum pname, GLboolean * data); // typedef void (APIENTRYP GPGETBUFFERPARAMETERIV)(GLenum target, GLenum pname, GLint * params); // typedef GLenum (APIENTRYP GPGETERROR)(); // typedef void (APIENTRYP GPGETFLOATV)(GLenum pname, GLfloat * data); // typedef void (APIENTRYP GPGETFRAMEBUFFERATTACHMENTPARAMETERIV)(GLenum target, GLenum attachment, GLenum pname, GLint * params); // typedef void (APIENTRYP GPGETINTEGERV)(GLenum pname, GLint * data); // typedef void (APIENTRYP GPGETPROGRAMINFOLOG)(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog); // typedef void (APIENTRYP GPGETPROGRAMIV)(GLuint program, GLenum pname, GLint * params); // typedef void (APIENTRYP GPGETRENDERBUFFERPARAMETERIV)(GLenum target, GLenum pname, GLint * params); // typedef void (APIENTRYP GPGETSHADERINFOLOG)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog); // typedef void (APIENTRYP GPGETSHADERSOURCE)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source); // typedef void (APIENTRYP GPGETSHADERIV)(GLuint shader, GLenum pname, GLint * params); // typedef const GLubyte * (APIENTRYP GPGETSTRING)(GLenum name); // typedef void (APIENTRYP GPGETTEXPARAMETERFV)(GLenum target, GLenum pname, GLfloat * params); // typedef void (APIENTRYP GPGETTEXPARAMETERIV)(GLenum target, GLenum pname, GLint * params); // typedef GLint (APIENTRYP GPGETUNIFORMLOCATION)(GLuint program, const GLchar * name); // typedef void (APIENTRYP GPGETUNIFORMFV)(GLuint program, GLint location, GLfloat * params); // typedef void (APIENTRYP GPGETUNIFORMIV)(GLuint program, GLint location, GLint * params); // typedef void (APIENTRYP GPGETVERTEXATTRIBPOINTERV)(GLuint index, GLenum pname, void ** pointer); // typedef void (APIENTRYP GPGETVERTEXATTRIBFV)(GLuint index, GLenum pname, GLfloat * params); // typedef void (APIENTRYP GPGETVERTEXATTRIBIV)(GLuint index, GLenum pname, GLint * params); // typedef void (APIENTRYP GPHINT)(GLenum target, GLenum mode); // typedef GLboolean (APIENTRYP GPISBUFFER)(GLuint buffer); // typedef GLboolean (APIENTRYP GPISENABLED)(GLenum cap); // typedef GLboolean (APIENTRYP GPISFRAMEBUFFER)(GLuint framebuffer); // typedef GLboolean (APIENTRYP GPISPROGRAM)(GLuint program); // typedef GLboolean (APIENTRYP GPISRENDERBUFFER)(GLuint renderbuffer); // typedef GLboolean (APIENTRYP GPISSHADER)(GLuint shader); // typedef GLboolean (APIENTRYP GPISTEXTURE)(GLuint texture); // typedef void (APIENTRYP GPLINEWIDTH)(GLfloat width); // typedef void (APIENTRYP GPLINKPROGRAM)(GLuint program); // typedef void (APIENTRYP GPPIXELSTOREI)(GLenum pname, GLint param); // typedef void (APIENTRYP GPPOLYGONOFFSET)(GLfloat factor, GLfloat units); // typedef void (APIENTRYP GPREADPIXELS)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void * pixels); // typedef void (APIENTRYP GPRENDERBUFFERSTORAGE)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); // typedef void (APIENTRYP GPSAMPLECOVERAGE)(GLfloat value, GLboolean invert); // typedef void (APIENTRYP GPSCISSOR)(GLint x, GLint y, GLsizei width, GLsizei height); // typedef void (APIENTRYP GPSHADERSOURCE)(GLuint shader, GLsizei count, const GLchar *const* string, const GLint * length); // typedef void (APIENTRYP GPSTENCILFUNC)(GLenum func, GLint ref, GLuint mask); // typedef void (APIENTRYP GPSTENCILFUNCSEPARATE)(GLenum face, GLenum func, GLint ref, GLuint mask); // typedef void (APIENTRYP GPSTENCILMASK)(GLuint mask); // typedef void (APIENTRYP GPSTENCILMASKSEPARATE)(GLenum face, GLuint mask); // typedef void (APIENTRYP GPSTENCILOP)(GLenum fail, GLenum zfail, GLenum zpass); // typedef void (APIENTRYP GPSTENCILOPSEPARATE)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); // typedef void (APIENTRYP GPTEXIMAGE2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels); // typedef void (APIENTRYP GPTEXPARAMETERF)(GLenum target, GLenum pname, GLfloat param); // typedef void (APIENTRYP GPTEXPARAMETERFV)(GLenum target, GLenum pname, const GLfloat * params); // typedef void (APIENTRYP GPTEXPARAMETERI)(GLenum target, GLenum pname, GLint param); // typedef void (APIENTRYP GPTEXPARAMETERIV)(GLenum target, GLenum pname, const GLint * params); // typedef void (APIENTRYP GPTEXSUBIMAGE2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels); // typedef void (APIENTRYP GPUNIFORM1F)(GLint location, GLfloat v0); // typedef void (APIENTRYP GPUNIFORM1FV)(GLint location, GLsizei count, const GLfloat * value); // typedef void (APIENTRYP GPUNIFORM1I)(GLint location, GLint v0); // typedef void (APIENTRYP GPUNIFORM1IV)(GLint location, GLsizei count, const GLint * value); // typedef void (APIENTRYP GPUNIFORM2F)(GLint location, GLfloat v0, GLfloat v1); // typedef void (APIENTRYP GPUNIFORM2FV)(GLint location, GLsizei count, const GLfloat * value); // typedef void (APIENTRYP GPUNIFORM2I)(GLint location, GLint v0, GLint v1); // typedef void (APIENTRYP GPUNIFORM2IV)(GLint location, GLsizei count, const GLint * value); // typedef void (APIENTRYP GPUNIFORM3F)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); // typedef void (APIENTRYP GPUNIFORM3FV)(GLint location, GLsizei count, const GLfloat * value); // typedef void (APIENTRYP GPUNIFORM3I)(GLint location, GLint v0, GLint v1, GLint v2); // typedef void (APIENTRYP GPUNIFORM3IV)(GLint location, GLsizei count, const GLint * value); // typedef void (APIENTRYP GPUNIFORM4F)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); // typedef void (APIENTRYP GPUNIFORM4FV)(GLint location, GLsizei count, const GLfloat * value); // typedef void (APIENTRYP GPUNIFORM4I)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); // typedef void (APIENTRYP GPUNIFORM4IV)(GLint location, GLsizei count, const GLint * value); // typedef void (APIENTRYP GPUNIFORMMATRIX2FV)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); // typedef void (APIENTRYP GPUNIFORMMATRIX3FV)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); // typedef void (APIENTRYP GPUNIFORMMATRIX4FV)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); // typedef void (APIENTRYP GPUSEPROGRAM)(GLuint program); // typedef void (APIENTRYP GPVALIDATEPROGRAM)(GLuint program); // typedef void (APIENTRYP GPVERTEXATTRIB1F)(GLuint index, GLfloat x); // typedef void (APIENTRYP GPVERTEXATTRIB1FV)(GLuint index, const GLfloat * v); // typedef void (APIENTRYP GPVERTEXATTRIB2F)(GLuint index, GLfloat x, GLfloat y); // typedef void (APIENTRYP GPVERTEXATTRIB2FV)(GLuint index, const GLfloat * v); // typedef void (APIENTRYP GPVERTEXATTRIB3F)(GLuint index, GLfloat x, GLfloat y, GLfloat z); // typedef void (APIENTRYP GPVERTEXATTRIB3FV)(GLuint index, const GLfloat * v); // typedef void (APIENTRYP GPVERTEXATTRIB4F)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); // typedef void (APIENTRYP GPVERTEXATTRIB4FV)(GLuint index, const GLfloat * v); // typedef void (APIENTRYP GPVERTEXATTRIBPOINTER)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer); // typedef void (APIENTRYP GPVIEWPORT)(GLint x, GLint y, GLsizei width, GLsizei height); // static void glowActiveTexture(GPACTIVETEXTURE fnptr, GLenum texture) { // (*fnptr)(texture); // } // static void glowAttachShader(GPATTACHSHADER fnptr, GLuint program, GLuint shader) { // (*fnptr)(program, shader); // } // static void glowBindAttribLocation(GPBINDATTRIBLOCATION fnptr, GLuint program, GLuint index, const GLchar * name) { // (*fnptr)(program, index, name); // } // static void glowBindBuffer(GPBINDBUFFER fnptr, GLenum target, GLuint buffer) { // (*fnptr)(target, buffer); // } // static void glowBindFramebuffer(GPBINDFRAMEBUFFER fnptr, GLenum target, GLuint framebuffer) { // (*fnptr)(target, framebuffer); // } // static void glowBindRenderbuffer(GPBINDRENDERBUFFER fnptr, GLenum target, GLuint renderbuffer) { // (*fnptr)(target, renderbuffer); // } // static void glowBindTexture(GPBINDTEXTURE fnptr, GLenum target, GLuint texture) { // (*fnptr)(target, texture); // } // static void glowBlendColor(GPBLENDCOLOR fnptr, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) { // (*fnptr)(red, green, blue, alpha); // } // static void glowBlendEquation(GPBLENDEQUATION fnptr, GLenum mode) { // (*fnptr)(mode); // } // static void glowBlendEquationSeparate(GPBLENDEQUATIONSEPARATE fnptr, GLenum modeRGB, GLenum modeAlpha) { // (*fnptr)(modeRGB, modeAlpha); // } // static void glowBlendFunc(GPBLENDFUNC fnptr, GLenum sfactor, GLenum dfactor) { // (*fnptr)(sfactor, dfactor); // } // static void glowBlendFuncSeparate(GPBLENDFUNCSEPARATE fnptr, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) { // (*fnptr)(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha); // } // static void glowBufferData(GPBUFFERDATA fnptr, GLenum target, GLsizeiptr size, const void * data, GLenum usage) { // (*fnptr)(target, size, data, usage); // } // static void glowBufferSubData(GPBUFFERSUBDATA fnptr, GLenum target, GLintptr offset, GLsizeiptr size, const void * data) { // (*fnptr)(target, offset, size, data); // } // static GLenum glowCheckFramebufferStatus(GPCHECKFRAMEBUFFERSTATUS fnptr, GLenum target) { // return (*fnptr)(target); // } // static void glowClear(GPCLEAR fnptr, GLbitfield mask) { // (*fnptr)(mask); // } // static void glowClearColor(GPCLEARCOLOR fnptr, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) { // (*fnptr)(red, green, blue, alpha); // } // static void glowClearStencil(GPCLEARSTENCIL fnptr, GLint s) { // (*fnptr)(s); // } // static void glowColorMask(GPCOLORMASK fnptr, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) { // (*fnptr)(red, green, blue, alpha); // } // static void glowCompileShader(GPCOMPILESHADER fnptr, GLuint shader) { // (*fnptr)(shader); // } // static void glowCompressedTexImage2D(GPCOMPRESSEDTEXIMAGE2D fnptr, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data) { // (*fnptr)(target, level, internalformat, width, height, border, imageSize, data); // } // static void glowCompressedTexSubImage2D(GPCOMPRESSEDTEXSUBIMAGE2D fnptr, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data) { // (*fnptr)(target, level, xoffset, yoffset, width, height, format, imageSize, data); // } // static void glowCopyTexImage2D(GPCOPYTEXIMAGE2D fnptr, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) { // (*fnptr)(target, level, internalformat, x, y, width, height, border); // } // static void glowCopyTexSubImage2D(GPCOPYTEXSUBIMAGE2D fnptr, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) { // (*fnptr)(target, level, xoffset, yoffset, x, y, width, height); // } // static GLuint glowCreateProgram(GPCREATEPROGRAM fnptr) { // return (*fnptr)(); // } // static GLuint glowCreateShader(GPCREATESHADER fnptr, GLenum type) { // return (*fnptr)(type); // } // static void glowCullFace(GPCULLFACE fnptr, GLenum mode) { // (*fnptr)(mode); // } // static void glowDeleteBuffers(GPDELETEBUFFERS fnptr, GLsizei n, const GLuint * buffers) { // (*fnptr)(n, buffers); // } // static void glowDeleteFramebuffers(GPDELETEFRAMEBUFFERS fnptr, GLsizei n, const GLuint * framebuffers) { // (*fnptr)(n, framebuffers); // } // static void glowDeleteProgram(GPDELETEPROGRAM fnptr, GLuint program) { // (*fnptr)(program); // } // static void glowDeleteRenderbuffers(GPDELETERENDERBUFFERS fnptr, GLsizei n, const GLuint * renderbuffers) { // (*fnptr)(n, renderbuffers); // } // static void glowDeleteShader(GPDELETESHADER fnptr, GLuint shader) { // (*fnptr)(shader); // } // static void glowDeleteTextures(GPDELETETEXTURES fnptr, GLsizei n, const GLuint * textures) { // (*fnptr)(n, textures); // } // static void glowDepthFunc(GPDEPTHFUNC fnptr, GLenum func) { // (*fnptr)(func); // } // static void glowDepthMask(GPDEPTHMASK fnptr, GLboolean flag) { // (*fnptr)(flag); // } // static void glowDetachShader(GPDETACHSHADER fnptr, GLuint program, GLuint shader) { // (*fnptr)(program, shader); // } // static void glowDisable(GPDISABLE fnptr, GLenum cap) { // (*fnptr)(cap); // } // static void glowDisableVertexAttribArray(GPDISABLEVERTEXATTRIBARRAY fnptr, GLuint index) { // (*fnptr)(index); // } // static void glowDrawArrays(GPDRAWARRAYS fnptr, GLenum mode, GLint first, GLsizei count) { // (*fnptr)(mode, first, count); // } // static void glowDrawElements(GPDRAWELEMENTS fnptr, GLenum mode, GLsizei count, GLenum type, const void * indices) { // (*fnptr)(mode, count, type, indices); // } // static void glowEnable(GPENABLE fnptr, GLenum cap) { // (*fnptr)(cap); // } // static void glowEnableVertexAttribArray(GPENABLEVERTEXATTRIBARRAY fnptr, GLuint index) { // (*fnptr)(index); // } // static void glowFinish(GPFINISH fnptr) { // (*fnptr)(); // } // static void glowFlush(GPFLUSH fnptr) { // (*fnptr)(); // } // static void glowFramebufferRenderbuffer(GPFRAMEBUFFERRENDERBUFFER fnptr, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) { // (*fnptr)(target, attachment, renderbuffertarget, renderbuffer); // } // static void glowFramebufferTexture2D(GPFRAMEBUFFERTEXTURE2D fnptr, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) { // (*fnptr)(target, attachment, textarget, texture, level); // } // static void glowFrontFace(GPFRONTFACE fnptr, GLenum mode) { // (*fnptr)(mode); // } // static void glowGenBuffers(GPGENBUFFERS fnptr, GLsizei n, GLuint * buffers) { // (*fnptr)(n, buffers); // } // static void glowGenFramebuffers(GPGENFRAMEBUFFERS fnptr, GLsizei n, GLuint * framebuffers) { // (*fnptr)(n, framebuffers); // } // static void glowGenRenderbuffers(GPGENRENDERBUFFERS fnptr, GLsizei n, GLuint * renderbuffers) { // (*fnptr)(n, renderbuffers); // } // static void glowGenTextures(GPGENTEXTURES fnptr, GLsizei n, GLuint * textures) { // (*fnptr)(n, textures); // } // static void glowGenerateMipmap(GPGENERATEMIPMAP fnptr, GLenum target) { // (*fnptr)(target); // } // static void glowGetActiveAttrib(GPGETACTIVEATTRIB fnptr, GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name) { // (*fnptr)(program, index, bufSize, length, size, type, name); // } // static void glowGetActiveUniform(GPGETACTIVEUNIFORM fnptr, GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name) { // (*fnptr)(program, index, bufSize, length, size, type, name); // } // static void glowGetAttachedShaders(GPGETATTACHEDSHADERS fnptr, GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders) { // (*fnptr)(program, maxCount, count, shaders); // } // static GLint glowGetAttribLocation(GPGETATTRIBLOCATION fnptr, GLuint program, const GLchar * name) { // return (*fnptr)(program, name); // } // static void glowGetBooleanv(GPGETBOOLEANV fnptr, GLenum pname, GLboolean * data) { // (*fnptr)(pname, data); // } // static void glowGetBufferParameteriv(GPGETBUFFERPARAMETERIV fnptr, GLenum target, GLenum pname, GLint * params) { // (*fnptr)(target, pname, params); // } // static GLenum glowGetError(GPGETERROR fnptr) { // return (*fnptr)(); // } // static void glowGetFloatv(GPGETFLOATV fnptr, GLenum pname, GLfloat * data) { // (*fnptr)(pname, data); // } // static void glowGetFramebufferAttachmentParameteriv(GPGETFRAMEBUFFERATTACHMENTPARAMETERIV fnptr, GLenum target, GLenum attachment, GLenum pname, GLint * params) { // (*fnptr)(target, attachment, pname, params); // } // static void glowGetIntegerv(GPGETINTEGERV fnptr, GLenum pname, GLint * data) { // (*fnptr)(pname, data); // } // static void glowGetProgramInfoLog(GPGETPROGRAMINFOLOG fnptr, GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog) { // (*fnptr)(program, bufSize, length, infoLog); // } // static void glowGetProgramiv(GPGETPROGRAMIV fnptr, GLuint program, GLenum pname, GLint * params) { // (*fnptr)(program, pname, params); // } // static void glowGetRenderbufferParameteriv(GPGETRENDERBUFFERPARAMETERIV fnptr, GLenum target, GLenum pname, GLint * params) { // (*fnptr)(target, pname, params); // } // static void glowGetShaderInfoLog(GPGETSHADERINFOLOG fnptr, GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog) { // (*fnptr)(shader, bufSize, length, infoLog); // } // static void glowGetShaderSource(GPGETSHADERSOURCE fnptr, GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source) { // (*fnptr)(shader, bufSize, length, source); // } // static void glowGetShaderiv(GPGETSHADERIV fnptr, GLuint shader, GLenum pname, GLint * params) { // (*fnptr)(shader, pname, params); // } // static const GLubyte * glowGetString(GPGETSTRING fnptr, GLenum name) { // return (*fnptr)(name); // } // static void glowGetTexParameterfv(GPGETTEXPARAMETERFV fnptr, GLenum target, GLenum pname, GLfloat * params) { // (*fnptr)(target, pname, params); // } // static void glowGetTexParameteriv(GPGETTEXPARAMETERIV fnptr, GLenum target, GLenum pname, GLint * params) { // (*fnptr)(target, pname, params); // } // static GLint glowGetUniformLocation(GPGETUNIFORMLOCATION fnptr, GLuint program, const GLchar * name) { // return (*fnptr)(program, name); // } // static void glowGetUniformfv(GPGETUNIFORMFV fnptr, GLuint program, GLint location, GLfloat * params) { // (*fnptr)(program, location, params); // } // static void glowGetUniformiv(GPGETUNIFORMIV fnptr, GLuint program, GLint location, GLint * params) { // (*fnptr)(program, location, params); // } // static void glowGetVertexAttribPointerv(GPGETVERTEXATTRIBPOINTERV fnptr, GLuint index, GLenum pname, void ** pointer) { // (*fnptr)(index, pname, pointer); // } // static void glowGetVertexAttribfv(GPGETVERTEXATTRIBFV fnptr, GLuint index, GLenum pname, GLfloat * params) { // (*fnptr)(index, pname, params); // } // static void glowGetVertexAttribiv(GPGETVERTEXATTRIBIV fnptr, GLuint index, GLenum pname, GLint * params) { // (*fnptr)(index, pname, params); // } // static void glowHint(GPHINT fnptr, GLenum target, GLenum mode) { // (*fnptr)(target, mode); // } // static GLboolean glowIsBuffer(GPISBUFFER fnptr, GLuint buffer) { // return (*fnptr)(buffer); // } // static GLboolean glowIsEnabled(GPISENABLED fnptr, GLenum cap) { // return (*fnptr)(cap); // } // static GLboolean glowIsFramebuffer(GPISFRAMEBUFFER fnptr, GLuint framebuffer) { // return (*fnptr)(framebuffer); // } // static GLboolean glowIsProgram(GPISPROGRAM fnptr, GLuint program) { // return (*fnptr)(program); // } // static GLboolean glowIsRenderbuffer(GPISRENDERBUFFER fnptr, GLuint renderbuffer) { // return (*fnptr)(renderbuffer); // } // static GLboolean glowIsShader(GPISSHADER fnptr, GLuint shader) { // return (*fnptr)(shader); // } // static GLboolean glowIsTexture(GPISTEXTURE fnptr, GLuint texture) { // return (*fnptr)(texture); // } // static void glowLineWidth(GPLINEWIDTH fnptr, GLfloat width) { // (*fnptr)(width); // } // static void glowLinkProgram(GPLINKPROGRAM fnptr, GLuint program) { // (*fnptr)(program); // } // static void glowPixelStorei(GPPIXELSTOREI fnptr, GLenum pname, GLint param) { // (*fnptr)(pname, param); // } // static void glowPolygonOffset(GPPOLYGONOFFSET fnptr, GLfloat factor, GLfloat units) { // (*fnptr)(factor, units); // } // static void glowReadPixels(GPREADPIXELS fnptr, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void * pixels) { // (*fnptr)(x, y, width, height, format, type, pixels); // } // static void glowRenderbufferStorage(GPRENDERBUFFERSTORAGE fnptr, GLenum target, GLenum internalformat, GLsizei width, GLsizei height) { // (*fnptr)(target, internalformat, width, height); // } // static void glowSampleCoverage(GPSAMPLECOVERAGE fnptr, GLfloat value, GLboolean invert) { // (*fnptr)(value, invert); // } // static void glowScissor(GPSCISSOR fnptr, GLint x, GLint y, GLsizei width, GLsizei height) { // (*fnptr)(x, y, width, height); // } // static void glowShaderSource(GPSHADERSOURCE fnptr, GLuint shader, GLsizei count, const GLchar *const* string, const GLint * length) { // (*fnptr)(shader, count, string, length); // } // static void glowStencilFunc(GPSTENCILFUNC fnptr, GLenum func, GLint ref, GLuint mask) { // (*fnptr)(func, ref, mask); // } // static void glowStencilFuncSeparate(GPSTENCILFUNCSEPARATE fnptr, GLenum face, GLenum func, GLint ref, GLuint mask) { // (*fnptr)(face, func, ref, mask); // } // static void glowStencilMask(GPSTENCILMASK fnptr, GLuint mask) { // (*fnptr)(mask); // } // static void glowStencilMaskSeparate(GPSTENCILMASKSEPARATE fnptr, GLenum face, GLuint mask) { // (*fnptr)(face, mask); // } // static void glowStencilOp(GPSTENCILOP fnptr, GLenum fail, GLenum zfail, GLenum zpass) { // (*fnptr)(fail, zfail, zpass); // } // static void glowStencilOpSeparate(GPSTENCILOPSEPARATE fnptr, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) { // (*fnptr)(face, sfail, dpfail, dppass); // } // static void glowTexImage2D(GPTEXIMAGE2D fnptr, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels) { // (*fnptr)(target, level, internalformat, width, height, border, format, type, pixels); // } // static void glowTexParameterf(GPTEXPARAMETERF fnptr, GLenum target, GLenum pname, GLfloat param) { // (*fnptr)(target, pname, param); // } // static void glowTexParameterfv(GPTEXPARAMETERFV fnptr, GLenum target, GLenum pname, const GLfloat * params) { // (*fnptr)(target, pname, params); // } // static void glowTexParameteri(GPTEXPARAMETERI fnptr, GLenum target, GLenum pname, GLint param) { // (*fnptr)(target, pname, param); // } // static void glowTexParameteriv(GPTEXPARAMETERIV fnptr, GLenum target, GLenum pname, const GLint * params) { // (*fnptr)(target, pname, params); // } // static void glowTexSubImage2D(GPTEXSUBIMAGE2D fnptr, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels) { // (*fnptr)(target, level, xoffset, yoffset, width, height, format, type, pixels); // } // static void glowUniform1f(GPUNIFORM1F fnptr, GLint location, GLfloat v0) { // (*fnptr)(location, v0); // } // static void glowUniform1fv(GPUNIFORM1FV fnptr, GLint location, GLsizei count, const GLfloat * value) { // (*fnptr)(location, count, value); // } // static void glowUniform1i(GPUNIFORM1I fnptr, GLint location, GLint v0) { // (*fnptr)(location, v0); // } // static void glowUniform1iv(GPUNIFORM1IV fnptr, GLint location, GLsizei count, const GLint * value) { // (*fnptr)(location, count, value); // } // static void glowUniform2f(GPUNIFORM2F fnptr, GLint location, GLfloat v0, GLfloat v1) { // (*fnptr)(location, v0, v1); // } // static void glowUniform2fv(GPUNIFORM2FV fnptr, GLint location, GLsizei count, const GLfloat * value) { // (*fnptr)(location, count, value); // } // static void glowUniform2i(GPUNIFORM2I fnptr, GLint location, GLint v0, GLint v1) { // (*fnptr)(location, v0, v1); // } // static void glowUniform2iv(GPUNIFORM2IV fnptr, GLint location, GLsizei count, const GLint * value) { // (*fnptr)(location, count, value); // } // static void glowUniform3f(GPUNIFORM3F fnptr, GLint location, GLfloat v0, GLfloat v1, GLfloat v2) { // (*fnptr)(location, v0, v1, v2); // } // static void glowUniform3fv(GPUNIFORM3FV fnptr, GLint location, GLsizei count, const GLfloat * value) { // (*fnptr)(location, count, value); // } // static void glowUniform3i(GPUNIFORM3I fnptr, GLint location, GLint v0, GLint v1, GLint v2) { // (*fnptr)(location, v0, v1, v2); // } // static void glowUniform3iv(GPUNIFORM3IV fnptr, GLint location, GLsizei count, const GLint * value) { // (*fnptr)(location, count, value); // } // static void glowUniform4f(GPUNIFORM4F fnptr, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) { // (*fnptr)(location, v0, v1, v2, v3); // } // static void glowUniform4fv(GPUNIFORM4FV fnptr, GLint location, GLsizei count, const GLfloat * value) { // (*fnptr)(location, count, value); // } // static void glowUniform4i(GPUNIFORM4I fnptr, GLint location, GLint v0, GLint v1, GLint v2, GLint v3) { // (*fnptr)(location, v0, v1, v2, v3); // } // static void glowUniform4iv(GPUNIFORM4IV fnptr, GLint location, GLsizei count, const GLint * value) { // (*fnptr)(location, count, value); // } // static void glowUniformMatrix2fv(GPUNIFORMMATRIX2FV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) { // (*fnptr)(location, count, transpose, value); // } // static void glowUniformMatrix3fv(GPUNIFORMMATRIX3FV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) { // (*fnptr)(location, count, transpose, value); // } // static void glowUniformMatrix4fv(GPUNIFORMMATRIX4FV fnptr, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value) { // (*fnptr)(location, count, transpose, value); // } // static void glowUseProgram(GPUSEPROGRAM fnptr, GLuint program) { // (*fnptr)(program); // } // static void glowValidateProgram(GPVALIDATEPROGRAM fnptr, GLuint program) { // (*fnptr)(program); // } // static void glowVertexAttrib1f(GPVERTEXATTRIB1F fnptr, GLuint index, GLfloat x) { // (*fnptr)(index, x); // } // static void glowVertexAttrib1fv(GPVERTEXATTRIB1FV fnptr, GLuint index, const GLfloat * v) { // (*fnptr)(index, v); // } // static void glowVertexAttrib2f(GPVERTEXATTRIB2F fnptr, GLuint index, GLfloat x, GLfloat y) { // (*fnptr)(index, x, y); // } // static void glowVertexAttrib2fv(GPVERTEXATTRIB2FV fnptr, GLuint index, const GLfloat * v) { // (*fnptr)(index, v); // } // static void glowVertexAttrib3f(GPVERTEXATTRIB3F fnptr, GLuint index, GLfloat x, GLfloat y, GLfloat z) { // (*fnptr)(index, x, y, z); // } // static void glowVertexAttrib3fv(GPVERTEXATTRIB3FV fnptr, GLuint index, const GLfloat * v) { // (*fnptr)(index, v); // } // static void glowVertexAttrib4f(GPVERTEXATTRIB4F fnptr, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { // (*fnptr)(index, x, y, z, w); // } // static void glowVertexAttrib4fv(GPVERTEXATTRIB4FV fnptr, GLuint index, const GLfloat * v) { // (*fnptr)(index, v); // } // static void glowVertexAttribPointer(GPVERTEXATTRIBPOINTER fnptr, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer) { // (*fnptr)(index, size, type, normalized, stride, pointer); // } // static void glowViewport(GPVIEWPORT fnptr, GLint x, GLint y, GLsizei width, GLsizei height) { // (*fnptr)(x, y, width, height); // } import "C" import ( "errors" "unsafe" ) const ( ACTIVE_ATTRIBUTES = 0x8B89 ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A ACTIVE_TEXTURE = 0x84E0 ACTIVE_UNIFORMS = 0x8B86 ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87 ALIASED_LINE_WIDTH_RANGE = 0x846E ALIASED_POINT_SIZE_RANGE = 0x846D ALPHA = 0x1906 ALPHA_BITS = 0x0D55 ALWAYS = 0x0207 ARRAY_BUFFER = 0x8892 ARRAY_BUFFER_BINDING = 0x8894 ATTACHED_SHADERS = 0x8B85 BACK = 0x0405 BLEND = 0x0BE2 BLEND_DST_ALPHA = 0x80CA BLEND_DST_RGB = 0x80C8 BLEND_EQUATION_ALPHA = 0x883D BLEND_EQUATION_RGB = 0x8009 BLEND_SRC_ALPHA = 0x80CB BLEND_SRC_RGB = 0x80C9 BLUE_BITS = 0x0D54 BOOL = 0x8B56 BOOL_VEC2 = 0x8B57 BOOL_VEC3 = 0x8B58 BOOL_VEC4 = 0x8B59 BUFFER_SIZE = 0x8764 BUFFER_USAGE = 0x8765 BYTE = 0x1400 CCW = 0x0901 CLAMP_TO_EDGE = 0x812F COLOR_ATTACHMENT0 = 0x8CE0 COLOR_BUFFER_BIT = 0x00004000 COLOR_CLEAR_VALUE = 0x0C22 COLOR_WRITEMASK = 0x0C23 COMPILE_STATUS = 0x8B81 COMPRESSED_TEXTURE_FORMATS = 0x86A3 CONSTANT_ALPHA = 0x8003 CONSTANT_COLOR = 0x8001 CULL_FACE = 0x0B44 CULL_FACE_MODE = 0x0B45 CURRENT_PROGRAM = 0x8B8D CURRENT_VERTEX_ATTRIB = 0x8626 CW = 0x0900 DECR = 0x1E03 DECR_WRAP = 0x8508 DELETE_STATUS = 0x8B80 DEPTH_ATTACHMENT = 0x8D00 DEPTH_BITS = 0x0D56 DEPTH_BUFFER_BIT = 0x00000100 DEPTH_CLEAR_VALUE = 0x0B73 DEPTH_COMPONENT = 0x1902 DEPTH_COMPONENT16 = 0x81A5 DEPTH_FUNC = 0x0B74 DEPTH_RANGE = 0x0B70 DEPTH_TEST = 0x0B71 DEPTH_WRITEMASK = 0x0B72 DITHER = 0x0BD0 DONT_CARE = 0x1100 DST_ALPHA = 0x0304 DST_COLOR = 0x0306 DYNAMIC_DRAW = 0x88E8 ELEMENT_ARRAY_BUFFER = 0x8893 ELEMENT_ARRAY_BUFFER_BINDING = 0x8895 EQUAL = 0x0202 EXTENSIONS = 0x1F03 FALSE = 0 FASTEST = 0x1101 FLOAT = 0x1406 FLOAT_MAT2 = 0x8B5A FLOAT_MAT3 = 0x8B5B FLOAT_MAT4 = 0x8B5C FLOAT_VEC2 = 0x8B50 FLOAT_VEC3 = 0x8B51 FLOAT_VEC4 = 0x8B52 FRAGMENT_SHADER = 0x8B30 FRAMEBUFFER = 0x8D40 FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1 FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0 FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3 FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2 FRAMEBUFFER_BINDING = 0x8CA6 FRAMEBUFFER_COMPLETE = 0x8CD5 FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6 FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7 FRAMEBUFFER_UNSUPPORTED = 0x8CDD FRONT = 0x0404 FRONT_AND_BACK = 0x0408 FRONT_FACE = 0x0B46 FUNC_ADD = 0x8006 FUNC_REVERSE_SUBTRACT = 0x800B FUNC_SUBTRACT = 0x800A GENERATE_MIPMAP_HINT = 0x8192 GEQUAL = 0x0206 GREATER = 0x0204 GREEN_BITS = 0x0D53 INCR = 0x1E02 INCR_WRAP = 0x8507 INFO_LOG_LENGTH = 0x8B84 INT = 0x1404 INT_VEC2 = 0x8B53 INT_VEC3 = 0x8B54 INT_VEC4 = 0x8B55 INVALID_ENUM = 0x0500 INVALID_FRAMEBUFFER_OPERATION = 0x0506 INVALID_OPERATION = 0x0502 INVALID_VALUE = 0x0501 INVERT = 0x150A KEEP = 0x1E00 LEQUAL = 0x0203 LESS = 0x0201 LINEAR = 0x2601 LINEAR_MIPMAP_LINEAR = 0x2703 LINEAR_MIPMAP_NEAREST = 0x2701 LINES = 0x0001 LINE_LOOP = 0x0002 LINE_STRIP = 0x0003 LINE_WIDTH = 0x0B21 LINK_STATUS = 0x8B82 LUMINANCE = 0x1909 LUMINANCE_ALPHA = 0x190A MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C MAX_RENDERBUFFER_SIZE = 0x84E8 MAX_TEXTURE_IMAGE_UNITS = 0x8872 MAX_TEXTURE_SIZE = 0x0D33 MAX_VERTEX_ATTRIBS = 0x8869 MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C MAX_VIEWPORT_DIMS = 0x0D3A MIRRORED_REPEAT = 0x8370 NEAREST = 0x2600 NEAREST_MIPMAP_LINEAR = 0x2702 NEAREST_MIPMAP_NEAREST = 0x2700 NEVER = 0x0200 NICEST = 0x1102 NONE = 0 NOTEQUAL = 0x0205 NO_ERROR = 0 NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2 ONE = 1 ONE_MINUS_CONSTANT_ALPHA = 0x8004 ONE_MINUS_CONSTANT_COLOR = 0x8002 ONE_MINUS_DST_ALPHA = 0x0305 ONE_MINUS_DST_COLOR = 0x0307 ONE_MINUS_SRC_ALPHA = 0x0303 ONE_MINUS_SRC_COLOR = 0x0301 OUT_OF_MEMORY = 0x0505 PACK_ALIGNMENT = 0x0D05 POINTS = 0x0000 POLYGON_OFFSET_FACTOR = 0x8038 POLYGON_OFFSET_FILL = 0x8037 POLYGON_OFFSET_UNITS = 0x2A00 RED_BITS = 0x0D52 RENDERBUFFER = 0x8D41 RENDERBUFFER_ALPHA_SIZE = 0x8D53 RENDERBUFFER_BINDING = 0x8CA7 RENDERBUFFER_BLUE_SIZE = 0x8D52 RENDERBUFFER_DEPTH_SIZE = 0x8D54 RENDERBUFFER_GREEN_SIZE = 0x8D51 RENDERBUFFER_HEIGHT = 0x8D43 RENDERBUFFER_INTERNAL_FORMAT = 0x8D44 RENDERBUFFER_RED_SIZE = 0x8D50 RENDERBUFFER_STENCIL_SIZE = 0x8D55 RENDERBUFFER_WIDTH = 0x8D42 RENDERER = 0x1F01 REPEAT = 0x2901 REPLACE = 0x1E01 RGB = 0x1907 RGB5_A1 = 0x8057 RGBA = 0x1908 RGBA4 = 0x8056 SAMPLER_2D = 0x8B5E SAMPLER_CUBE = 0x8B60 SAMPLES = 0x80A9 SAMPLE_ALPHA_TO_COVERAGE = 0x809E SAMPLE_BUFFERS = 0x80A8 SAMPLE_COVERAGE = 0x80A0 SAMPLE_COVERAGE_INVERT = 0x80AB SAMPLE_COVERAGE_VALUE = 0x80AA SCISSOR_BOX = 0x0C10 SCISSOR_TEST = 0x0C11 SHADER_SOURCE_LENGTH = 0x8B88 SHADER_TYPE = 0x8B4F SHADING_LANGUAGE_VERSION = 0x8B8C SHORT = 0x1402 SRC_ALPHA = 0x0302 SRC_ALPHA_SATURATE = 0x0308 SRC_COLOR = 0x0300 STATIC_DRAW = 0x88E4 STENCIL_ATTACHMENT = 0x8D20 STENCIL_BACK_FAIL = 0x8801 STENCIL_BACK_FUNC = 0x8800 STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802 STENCIL_BACK_PASS_DEPTH_PASS = 0x8803 STENCIL_BACK_REF = 0x8CA3 STENCIL_BACK_VALUE_MASK = 0x8CA4 STENCIL_BACK_WRITEMASK = 0x8CA5 STENCIL_BITS = 0x0D57 STENCIL_BUFFER_BIT = 0x00000400 STENCIL_CLEAR_VALUE = 0x0B91 STENCIL_FAIL = 0x0B94 STENCIL_FUNC = 0x0B92 STENCIL_INDEX8 = 0x8D48 STENCIL_PASS_DEPTH_FAIL = 0x0B95 STENCIL_PASS_DEPTH_PASS = 0x0B96 STENCIL_REF = 0x0B97 STENCIL_TEST = 0x0B90 STENCIL_VALUE_MASK = 0x0B93 STENCIL_WRITEMASK = 0x0B98 STREAM_DRAW = 0x88E0 SUBPIXEL_BITS = 0x0D50 TEXTURE = 0x1702 TEXTURE0 = 0x84C0 TEXTURE1 = 0x84C1 TEXTURE10 = 0x84CA TEXTURE11 = 0x84CB TEXTURE12 = 0x84CC TEXTURE13 = 0x84CD TEXTURE14 = 0x84CE TEXTURE15 = 0x84CF TEXTURE16 = 0x84D0 TEXTURE17 = 0x84D1 TEXTURE18 = 0x84D2 TEXTURE19 = 0x84D3 TEXTURE2 = 0x84C2 TEXTURE20 = 0x84D4 TEXTURE21 = 0x84D5 TEXTURE22 = 0x84D6 TEXTURE23 = 0x84D7 TEXTURE24 = 0x84D8 TEXTURE25 = 0x84D9 TEXTURE26 = 0x84DA TEXTURE27 = 0x84DB TEXTURE28 = 0x84DC TEXTURE29 = 0x84DD TEXTURE3 = 0x84C3 TEXTURE30 = 0x84DE TEXTURE31 = 0x84DF TEXTURE4 = 0x84C4 TEXTURE5 = 0x84C5 TEXTURE6 = 0x84C6 TEXTURE7 = 0x84C7 TEXTURE8 = 0x84C8 TEXTURE9 = 0x84C9 TEXTURE_2D = 0x0DE1 TEXTURE_BINDING_2D = 0x8069 TEXTURE_BINDING_CUBE_MAP = 0x8514 TEXTURE_CUBE_MAP = 0x8513 TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516 TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518 TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515 TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517 TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519 TEXTURE_MAG_FILTER = 0x2800 TEXTURE_MIN_FILTER = 0x2801 TEXTURE_WRAP_S = 0x2802 TEXTURE_WRAP_T = 0x2803 TRIANGLES = 0x0004 TRIANGLE_FAN = 0x0006 TRIANGLE_STRIP = 0x0005 TRUE = 1 UNPACK_ALIGNMENT = 0x0CF5 UNSIGNED_BYTE = 0x1401 UNSIGNED_INT = 0x1405 UNSIGNED_SHORT = 0x1403 UNSIGNED_SHORT_4_4_4_4 = 0x8033 UNSIGNED_SHORT_5_5_5_1 = 0x8034 UNSIGNED_SHORT_5_6_5 = 0x8363 VALIDATE_STATUS = 0x8B83 VENDOR = 0x1F00 VERSION = 0x1F02 VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622 VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A VERTEX_ATTRIB_ARRAY_POINTER = 0x8645 VERTEX_ATTRIB_ARRAY_SIZE = 0x8623 VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624 VERTEX_ATTRIB_ARRAY_TYPE = 0x8625 VERTEX_SHADER = 0x8B31 VIEWPORT = 0x0BA2 ZERO = 0 ) var ( gpActiveTexture C.GPACTIVETEXTURE gpAttachShader C.GPATTACHSHADER gpBindAttribLocation C.GPBINDATTRIBLOCATION gpBindBuffer C.GPBINDBUFFER gpBindFramebuffer C.GPBINDFRAMEBUFFER gpBindRenderbuffer C.GPBINDRENDERBUFFER gpBindTexture C.GPBINDTEXTURE gpBlendColor C.GPBLENDCOLOR gpBlendEquation C.GPBLENDEQUATION gpBlendEquationSeparate C.GPBLENDEQUATIONSEPARATE gpBlendFunc C.GPBLENDFUNC gpBlendFuncSeparate C.GPBLENDFUNCSEPARATE gpBufferData C.GPBUFFERDATA gpBufferSubData C.GPBUFFERSUBDATA gpCheckFramebufferStatus C.GPCHECKFRAMEBUFFERSTATUS gpClear C.GPCLEAR gpClearColor C.GPCLEARCOLOR gpClearStencil C.GPCLEARSTENCIL gpColorMask C.GPCOLORMASK gpCompileShader C.GPCOMPILESHADER gpCompressedTexImage2D C.GPCOMPRESSEDTEXIMAGE2D gpCompressedTexSubImage2D C.GPCOMPRESSEDTEXSUBIMAGE2D gpCopyTexImage2D C.GPCOPYTEXIMAGE2D gpCopyTexSubImage2D C.GPCOPYTEXSUBIMAGE2D gpCreateProgram C.GPCREATEPROGRAM gpCreateShader C.GPCREATESHADER gpCullFace C.GPCULLFACE gpDeleteBuffers C.GPDELETEBUFFERS gpDeleteFramebuffers C.GPDELETEFRAMEBUFFERS gpDeleteProgram C.GPDELETEPROGRAM gpDeleteRenderbuffers C.GPDELETERENDERBUFFERS gpDeleteShader C.GPDELETESHADER gpDeleteTextures C.GPDELETETEXTURES gpDepthFunc C.GPDEPTHFUNC gpDepthMask C.GPDEPTHMASK gpDetachShader C.GPDETACHSHADER gpDisable C.GPDISABLE gpDisableVertexAttribArray C.GPDISABLEVERTEXATTRIBARRAY gpDrawArrays C.GPDRAWARRAYS gpDrawElements C.GPDRAWELEMENTS gpEnable C.GPENABLE gpEnableVertexAttribArray C.GPENABLEVERTEXATTRIBARRAY gpFinish C.GPFINISH gpFlush C.GPFLUSH gpFramebufferRenderbuffer C.GPFRAMEBUFFERRENDERBUFFER gpFramebufferTexture2D C.GPFRAMEBUFFERTEXTURE2D gpFrontFace C.GPFRONTFACE gpGenBuffers C.GPGENBUFFERS gpGenFramebuffers C.GPGENFRAMEBUFFERS gpGenRenderbuffers C.GPGENRENDERBUFFERS gpGenTextures C.GPGENTEXTURES gpGenerateMipmap C.GPGENERATEMIPMAP gpGetActiveAttrib C.GPGETACTIVEATTRIB gpGetActiveUniform C.GPGETACTIVEUNIFORM gpGetAttachedShaders C.GPGETATTACHEDSHADERS gpGetAttribLocation C.GPGETATTRIBLOCATION gpGetBooleanv C.GPGETBOOLEANV gpGetBufferParameteriv C.GPGETBUFFERPARAMETERIV gpGetError C.GPGETERROR gpGetFloatv C.GPGETFLOATV gpGetFramebufferAttachmentParameteriv C.GPGETFRAMEBUFFERATTACHMENTPARAMETERIV gpGetIntegerv C.GPGETINTEGERV gpGetProgramInfoLog C.GPGETPROGRAMINFOLOG gpGetProgramiv C.GPGETPROGRAMIV gpGetRenderbufferParameteriv C.GPGETRENDERBUFFERPARAMETERIV gpGetShaderInfoLog C.GPGETSHADERINFOLOG gpGetShaderSource C.GPGETSHADERSOURCE gpGetShaderiv C.GPGETSHADERIV gpGetString C.GPGETSTRING gpGetTexParameterfv C.GPGETTEXPARAMETERFV gpGetTexParameteriv C.GPGETTEXPARAMETERIV gpGetUniformLocation C.GPGETUNIFORMLOCATION gpGetUniformfv C.GPGETUNIFORMFV gpGetUniformiv C.GPGETUNIFORMIV gpGetVertexAttribPointerv C.GPGETVERTEXATTRIBPOINTERV gpGetVertexAttribfv C.GPGETVERTEXATTRIBFV gpGetVertexAttribiv C.GPGETVERTEXATTRIBIV gpHint C.GPHINT gpIsBuffer C.GPISBUFFER gpIsEnabled C.GPISENABLED gpIsFramebuffer C.GPISFRAMEBUFFER gpIsProgram C.GPISPROGRAM gpIsRenderbuffer C.GPISRENDERBUFFER gpIsShader C.GPISSHADER gpIsTexture C.GPISTEXTURE gpLineWidth C.GPLINEWIDTH gpLinkProgram C.GPLINKPROGRAM gpPixelStorei C.GPPIXELSTOREI gpPolygonOffset C.GPPOLYGONOFFSET gpReadPixels C.GPREADPIXELS gpRenderbufferStorage C.GPRENDERBUFFERSTORAGE gpSampleCoverage C.GPSAMPLECOVERAGE gpScissor C.GPSCISSOR gpShaderSource C.GPSHADERSOURCE gpStencilFunc C.GPSTENCILFUNC gpStencilFuncSeparate C.GPSTENCILFUNCSEPARATE gpStencilMask C.GPSTENCILMASK gpStencilMaskSeparate C.GPSTENCILMASKSEPARATE gpStencilOp C.GPSTENCILOP gpStencilOpSeparate C.GPSTENCILOPSEPARATE gpTexImage2D C.GPTEXIMAGE2D gpTexParameterf C.GPTEXPARAMETERF gpTexParameterfv C.GPTEXPARAMETERFV gpTexParameteri C.GPTEXPARAMETERI gpTexParameteriv C.GPTEXPARAMETERIV gpTexSubImage2D C.GPTEXSUBIMAGE2D gpUniform1f C.GPUNIFORM1F gpUniform1fv C.GPUNIFORM1FV gpUniform1i C.GPUNIFORM1I gpUniform1iv C.GPUNIFORM1IV gpUniform2f C.GPUNIFORM2F gpUniform2fv C.GPUNIFORM2FV gpUniform2i C.GPUNIFORM2I gpUniform2iv C.GPUNIFORM2IV gpUniform3f C.GPUNIFORM3F gpUniform3fv C.GPUNIFORM3FV gpUniform3i C.GPUNIFORM3I gpUniform3iv C.GPUNIFORM3IV gpUniform4f C.GPUNIFORM4F gpUniform4fv C.GPUNIFORM4FV gpUniform4i C.GPUNIFORM4I gpUniform4iv C.GPUNIFORM4IV gpUniformMatrix2fv C.GPUNIFORMMATRIX2FV gpUniformMatrix3fv C.GPUNIFORMMATRIX3FV gpUniformMatrix4fv C.GPUNIFORMMATRIX4FV gpUseProgram C.GPUSEPROGRAM gpValidateProgram C.GPVALIDATEPROGRAM gpVertexAttrib1f C.GPVERTEXATTRIB1F gpVertexAttrib1fv C.GPVERTEXATTRIB1FV gpVertexAttrib2f C.GPVERTEXATTRIB2F gpVertexAttrib2fv C.GPVERTEXATTRIB2FV gpVertexAttrib3f C.GPVERTEXATTRIB3F gpVertexAttrib3fv C.GPVERTEXATTRIB3FV gpVertexAttrib4f C.GPVERTEXATTRIB4F gpVertexAttrib4fv C.GPVERTEXATTRIB4FV gpVertexAttribPointer C.GPVERTEXATTRIBPOINTER gpViewport C.GPVIEWPORT ) // Helper functions func boolToInt(b bool) int { if b { return 1 } return 0 } func ActiveTexture(texture uint32) { C.glowActiveTexture(gpActiveTexture, (C.GLenum)(texture)) } func AttachShader(program uint32, shader uint32) { C.glowAttachShader(gpAttachShader, (C.GLuint)(program), (C.GLuint)(shader)) } func BindAttribLocation(program uint32, index uint32, name *uint8) { C.glowBindAttribLocation(gpBindAttribLocation, (C.GLuint)(program), (C.GLuint)(index), (*C.GLchar)(unsafe.Pointer(name))) } func BindBuffer(target uint32, buffer uint32) { C.glowBindBuffer(gpBindBuffer, (C.GLenum)(target), (C.GLuint)(buffer)) } func BindFramebuffer(target uint32, framebuffer uint32) { C.glowBindFramebuffer(gpBindFramebuffer, (C.GLenum)(target), (C.GLuint)(framebuffer)) } func BindRenderbuffer(target uint32, renderbuffer uint32) { C.glowBindRenderbuffer(gpBindRenderbuffer, (C.GLenum)(target), (C.GLuint)(renderbuffer)) } func BindTexture(target uint32, texture uint32) { C.glowBindTexture(gpBindTexture, (C.GLenum)(target), (C.GLuint)(texture)) } func BlendColor(red float32, green float32, blue float32, alpha float32) { C.glowBlendColor(gpBlendColor, (C.GLfloat)(red), (C.GLfloat)(green), (C.GLfloat)(blue), (C.GLfloat)(alpha)) } func BlendEquation(mode uint32) { C.glowBlendEquation(gpBlendEquation, (C.GLenum)(mode)) } func BlendEquationSeparate(modeRGB uint32, modeAlpha uint32) { C.glowBlendEquationSeparate(gpBlendEquationSeparate, (C.GLenum)(modeRGB), (C.GLenum)(modeAlpha)) } func BlendFunc(sfactor uint32, dfactor uint32) { C.glowBlendFunc(gpBlendFunc, (C.GLenum)(sfactor), (C.GLenum)(dfactor)) } func BlendFuncSeparate(sfactorRGB uint32, dfactorRGB uint32, sfactorAlpha uint32, dfactorAlpha uint32) { C.glowBlendFuncSeparate(gpBlendFuncSeparate, (C.GLenum)(sfactorRGB), (C.GLenum)(dfactorRGB), (C.GLenum)(sfactorAlpha), (C.GLenum)(dfactorAlpha)) } func BufferData(target uint32, size int, data unsafe.Pointer, usage uint32) { C.glowBufferData(gpBufferData, (C.GLenum)(target), (C.GLsizeiptr)(size), data, (C.GLenum)(usage)) } func BufferSubData(target uint32, offset int, size int, data unsafe.Pointer) { C.glowBufferSubData(gpBufferSubData, (C.GLenum)(target), (C.GLintptr)(offset), (C.GLsizeiptr)(size), data) } func CheckFramebufferStatus(target uint32) uint32 { ret := C.glowCheckFramebufferStatus(gpCheckFramebufferStatus, (C.GLenum)(target)) return (uint32)(ret) } func Clear(mask uint32) { C.glowClear(gpClear, (C.GLbitfield)(mask)) } func ClearColor(red float32, green float32, blue float32, alpha float32) { C.glowClearColor(gpClearColor, (C.GLfloat)(red), (C.GLfloat)(green), (C.GLfloat)(blue), (C.GLfloat)(alpha)) } func ClearStencil(s int32) { C.glowClearStencil(gpClearStencil, (C.GLint)(s)) } func ColorMask(red bool, green bool, blue bool, alpha bool) { C.glowColorMask(gpColorMask, (C.GLboolean)(boolToInt(red)), (C.GLboolean)(boolToInt(green)), (C.GLboolean)(boolToInt(blue)), (C.GLboolean)(boolToInt(alpha))) } func CompileShader(shader uint32) { C.glowCompileShader(gpCompileShader, (C.GLuint)(shader)) } func CompressedTexImage2D(target uint32, level int32, internalformat uint32, width int32, height int32, border int32, imageSize int32, data unsafe.Pointer) { C.glowCompressedTexImage2D(gpCompressedTexImage2D, (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLint)(border), (C.GLsizei)(imageSize), data) } func CompressedTexSubImage2D(target uint32, level int32, xoffset int32, yoffset int32, width int32, height int32, format uint32, imageSize int32, data unsafe.Pointer) { C.glowCompressedTexSubImage2D(gpCompressedTexSubImage2D, (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLenum)(format), (C.GLsizei)(imageSize), data) } func CopyTexImage2D(target uint32, level int32, internalformat uint32, x int32, y int32, width int32, height int32, border int32) { C.glowCopyTexImage2D(gpCopyTexImage2D, (C.GLenum)(target), (C.GLint)(level), (C.GLenum)(internalformat), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLint)(border)) } func CopyTexSubImage2D(target uint32, level int32, xoffset int32, yoffset int32, x int32, y int32, width int32, height int32) { C.glowCopyTexSubImage2D(gpCopyTexSubImage2D, (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height)) } func CreateProgram() uint32 { ret := C.glowCreateProgram(gpCreateProgram) return (uint32)(ret) } func CreateShader(xtype uint32) uint32 { ret := C.glowCreateShader(gpCreateShader, (C.GLenum)(xtype)) return (uint32)(ret) } func CullFace(mode uint32) { C.glowCullFace(gpCullFace, (C.GLenum)(mode)) } func DeleteBuffers(n int32, buffers *uint32) { C.glowDeleteBuffers(gpDeleteBuffers, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(buffers))) } func DeleteFramebuffers(n int32, framebuffers *uint32) { C.glowDeleteFramebuffers(gpDeleteFramebuffers, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(framebuffers))) } func DeleteProgram(program uint32) { C.glowDeleteProgram(gpDeleteProgram, (C.GLuint)(program)) } func DeleteRenderbuffers(n int32, renderbuffers *uint32) { C.glowDeleteRenderbuffers(gpDeleteRenderbuffers, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(renderbuffers))) } func DeleteShader(shader uint32) { C.glowDeleteShader(gpDeleteShader, (C.GLuint)(shader)) } func DeleteTextures(n int32, textures *uint32) { C.glowDeleteTextures(gpDeleteTextures, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(textures))) } func DepthFunc(xfunc uint32) { C.glowDepthFunc(gpDepthFunc, (C.GLenum)(xfunc)) } func DepthMask(flag bool) { C.glowDepthMask(gpDepthMask, (C.GLboolean)(boolToInt(flag))) } func DetachShader(program uint32, shader uint32) { C.glowDetachShader(gpDetachShader, (C.GLuint)(program), (C.GLuint)(shader)) } func Disable(cap uint32) { C.glowDisable(gpDisable, (C.GLenum)(cap)) } func DisableVertexAttribArray(index uint32) { C.glowDisableVertexAttribArray(gpDisableVertexAttribArray, (C.GLuint)(index)) } func DrawArrays(mode uint32, first int32, count int32) { C.glowDrawArrays(gpDrawArrays, (C.GLenum)(mode), (C.GLint)(first), (C.GLsizei)(count)) } func DrawElements(mode uint32, count int32, xtype uint32, indices unsafe.Pointer) { C.glowDrawElements(gpDrawElements, (C.GLenum)(mode), (C.GLsizei)(count), (C.GLenum)(xtype), indices) } func Enable(cap uint32) { C.glowEnable(gpEnable, (C.GLenum)(cap)) } func EnableVertexAttribArray(index uint32) { C.glowEnableVertexAttribArray(gpEnableVertexAttribArray, (C.GLuint)(index)) } func Finish() { C.glowFinish(gpFinish) } func Flush() { C.glowFlush(gpFlush) } func FramebufferRenderbuffer(target uint32, attachment uint32, renderbuffertarget uint32, renderbuffer uint32) { C.glowFramebufferRenderbuffer(gpFramebufferRenderbuffer, (C.GLenum)(target), (C.GLenum)(attachment), (C.GLenum)(renderbuffertarget), (C.GLuint)(renderbuffer)) } func FramebufferTexture2D(target uint32, attachment uint32, textarget uint32, texture uint32, level int32) { C.glowFramebufferTexture2D(gpFramebufferTexture2D, (C.GLenum)(target), (C.GLenum)(attachment), (C.GLenum)(textarget), (C.GLuint)(texture), (C.GLint)(level)) } func FrontFace(mode uint32) { C.glowFrontFace(gpFrontFace, (C.GLenum)(mode)) } func GenBuffers(n int32, buffers *uint32) { C.glowGenBuffers(gpGenBuffers, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(buffers))) } func GenFramebuffers(n int32, framebuffers *uint32) { C.glowGenFramebuffers(gpGenFramebuffers, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(framebuffers))) } func GenRenderbuffers(n int32, renderbuffers *uint32) { C.glowGenRenderbuffers(gpGenRenderbuffers, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(renderbuffers))) } func GenTextures(n int32, textures *uint32) { C.glowGenTextures(gpGenTextures, (C.GLsizei)(n), (*C.GLuint)(unsafe.Pointer(textures))) } func GenerateMipmap(target uint32) { C.glowGenerateMipmap(gpGenerateMipmap, (C.GLenum)(target)) } func GetActiveAttrib(program uint32, index uint32, bufSize int32, length *int32, size *int32, xtype *uint32, name *uint8) { C.glowGetActiveAttrib(gpGetActiveAttrib, (C.GLuint)(program), (C.GLuint)(index), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLint)(unsafe.Pointer(size)), (*C.GLenum)(unsafe.Pointer(xtype)), (*C.GLchar)(unsafe.Pointer(name))) } func GetActiveUniform(program uint32, index uint32, bufSize int32, length *int32, size *int32, xtype *uint32, name *uint8) { C.glowGetActiveUniform(gpGetActiveUniform, (C.GLuint)(program), (C.GLuint)(index), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLint)(unsafe.Pointer(size)), (*C.GLenum)(unsafe.Pointer(xtype)), (*C.GLchar)(unsafe.Pointer(name))) } func GetAttachedShaders(program uint32, maxCount int32, count *int32, shaders *uint32) { C.glowGetAttachedShaders(gpGetAttachedShaders, (C.GLuint)(program), (C.GLsizei)(maxCount), (*C.GLsizei)(unsafe.Pointer(count)), (*C.GLuint)(unsafe.Pointer(shaders))) } func GetAttribLocation(program uint32, name *uint8) int32 { ret := C.glowGetAttribLocation(gpGetAttribLocation, (C.GLuint)(program), (*C.GLchar)(unsafe.Pointer(name))) return (int32)(ret) } func GetBooleanv(pname uint32, data *bool) { C.glowGetBooleanv(gpGetBooleanv, (C.GLenum)(pname), (*C.GLboolean)(unsafe.Pointer(data))) } func GetBufferParameteriv(target uint32, pname uint32, params *int32) { C.glowGetBufferParameteriv(gpGetBufferParameteriv, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params))) } func GetError() uint32 { ret := C.glowGetError(gpGetError) return (uint32)(ret) } func GetFloatv(pname uint32, data *float32) { C.glowGetFloatv(gpGetFloatv, (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(data))) } func GetFramebufferAttachmentParameteriv(target uint32, attachment uint32, pname uint32, params *int32) { C.glowGetFramebufferAttachmentParameteriv(gpGetFramebufferAttachmentParameteriv, (C.GLenum)(target), (C.GLenum)(attachment), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params))) } func GetIntegerv(pname uint32, data *int32) { C.glowGetIntegerv(gpGetIntegerv, (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(data))) } func GetProgramInfoLog(program uint32, bufSize int32, length *int32, infoLog *uint8) { C.glowGetProgramInfoLog(gpGetProgramInfoLog, (C.GLuint)(program), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(infoLog))) } func GetProgramiv(program uint32, pname uint32, params *int32) { C.glowGetProgramiv(gpGetProgramiv, (C.GLuint)(program), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params))) } func GetRenderbufferParameteriv(target uint32, pname uint32, params *int32) { C.glowGetRenderbufferParameteriv(gpGetRenderbufferParameteriv, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params))) } func GetShaderInfoLog(shader uint32, bufSize int32, length *int32, infoLog *uint8) { C.glowGetShaderInfoLog(gpGetShaderInfoLog, (C.GLuint)(shader), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(infoLog))) } func GetShaderSource(shader uint32, bufSize int32, length *int32, source *uint8) { C.glowGetShaderSource(gpGetShaderSource, (C.GLuint)(shader), (C.GLsizei)(bufSize), (*C.GLsizei)(unsafe.Pointer(length)), (*C.GLchar)(unsafe.Pointer(source))) } func GetShaderiv(shader uint32, pname uint32, params *int32) { C.glowGetShaderiv(gpGetShaderiv, (C.GLuint)(shader), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params))) } func GetString(name uint32) *uint8 { ret := C.glowGetString(gpGetString, (C.GLenum)(name)) return (*uint8)(ret) } func GetTexParameterfv(target uint32, pname uint32, params *float32) { C.glowGetTexParameterfv(gpGetTexParameterfv, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params))) } func GetTexParameteriv(target uint32, pname uint32, params *int32) { C.glowGetTexParameteriv(gpGetTexParameteriv, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params))) } func GetUniformLocation(program uint32, name *uint8) int32 { ret := C.glowGetUniformLocation(gpGetUniformLocation, (C.GLuint)(program), (*C.GLchar)(unsafe.Pointer(name))) return (int32)(ret) } func GetUniformfv(program uint32, location int32, params *float32) { C.glowGetUniformfv(gpGetUniformfv, (C.GLuint)(program), (C.GLint)(location), (*C.GLfloat)(unsafe.Pointer(params))) } func GetUniformiv(program uint32, location int32, params *int32) { C.glowGetUniformiv(gpGetUniformiv, (C.GLuint)(program), (C.GLint)(location), (*C.GLint)(unsafe.Pointer(params))) } func GetVertexAttribPointerv(index uint32, pname uint32, pointer *unsafe.Pointer) { C.glowGetVertexAttribPointerv(gpGetVertexAttribPointerv, (C.GLuint)(index), (C.GLenum)(pname), pointer) } func GetVertexAttribfv(index uint32, pname uint32, params *float32) { C.glowGetVertexAttribfv(gpGetVertexAttribfv, (C.GLuint)(index), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params))) } func GetVertexAttribiv(index uint32, pname uint32, params *int32) { C.glowGetVertexAttribiv(gpGetVertexAttribiv, (C.GLuint)(index), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params))) } func Hint(target uint32, mode uint32) { C.glowHint(gpHint, (C.GLenum)(target), (C.GLenum)(mode)) } func IsBuffer(buffer uint32) bool { ret := C.glowIsBuffer(gpIsBuffer, (C.GLuint)(buffer)) return ret == TRUE } func IsEnabled(cap uint32) bool { ret := C.glowIsEnabled(gpIsEnabled, (C.GLenum)(cap)) return ret == TRUE } func IsFramebuffer(framebuffer uint32) bool { ret := C.glowIsFramebuffer(gpIsFramebuffer, (C.GLuint)(framebuffer)) return ret == TRUE } func IsProgram(program uint32) bool { ret := C.glowIsProgram(gpIsProgram, (C.GLuint)(program)) return ret == TRUE } func IsRenderbuffer(renderbuffer uint32) bool { ret := C.glowIsRenderbuffer(gpIsRenderbuffer, (C.GLuint)(renderbuffer)) return ret == TRUE } func IsShader(shader uint32) bool { ret := C.glowIsShader(gpIsShader, (C.GLuint)(shader)) return ret == TRUE } func IsTexture(texture uint32) bool { ret := C.glowIsTexture(gpIsTexture, (C.GLuint)(texture)) return ret == TRUE } func LineWidth(width float32) { C.glowLineWidth(gpLineWidth, (C.GLfloat)(width)) } func LinkProgram(program uint32) { C.glowLinkProgram(gpLinkProgram, (C.GLuint)(program)) } func PixelStorei(pname uint32, param int32) { C.glowPixelStorei(gpPixelStorei, (C.GLenum)(pname), (C.GLint)(param)) } func PolygonOffset(factor float32, units float32) { C.glowPolygonOffset(gpPolygonOffset, (C.GLfloat)(factor), (C.GLfloat)(units)) } func ReadPixels(x int32, y int32, width int32, height int32, format uint32, xtype uint32, pixels unsafe.Pointer) { C.glowReadPixels(gpReadPixels, (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLenum)(format), (C.GLenum)(xtype), pixels) } func RenderbufferStorage(target uint32, internalformat uint32, width int32, height int32) { C.glowRenderbufferStorage(gpRenderbufferStorage, (C.GLenum)(target), (C.GLenum)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height)) } func SampleCoverage(value float32, invert bool) { C.glowSampleCoverage(gpSampleCoverage, (C.GLfloat)(value), (C.GLboolean)(boolToInt(invert))) } func Scissor(x int32, y int32, width int32, height int32) { C.glowScissor(gpScissor, (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height)) } func ShaderSource(shader uint32, count int32, xstring **uint8, length *int32) { C.glowShaderSource(gpShaderSource, (C.GLuint)(shader), (C.GLsizei)(count), (**C.GLchar)(unsafe.Pointer(xstring)), (*C.GLint)(unsafe.Pointer(length))) } func StencilFunc(xfunc uint32, ref int32, mask uint32) { C.glowStencilFunc(gpStencilFunc, (C.GLenum)(xfunc), (C.GLint)(ref), (C.GLuint)(mask)) } func StencilFuncSeparate(face uint32, xfunc uint32, ref int32, mask uint32) { C.glowStencilFuncSeparate(gpStencilFuncSeparate, (C.GLenum)(face), (C.GLenum)(xfunc), (C.GLint)(ref), (C.GLuint)(mask)) } func StencilMask(mask uint32) { C.glowStencilMask(gpStencilMask, (C.GLuint)(mask)) } func StencilMaskSeparate(face uint32, mask uint32) { C.glowStencilMaskSeparate(gpStencilMaskSeparate, (C.GLenum)(face), (C.GLuint)(mask)) } func StencilOp(fail uint32, zfail uint32, zpass uint32) { C.glowStencilOp(gpStencilOp, (C.GLenum)(fail), (C.GLenum)(zfail), (C.GLenum)(zpass)) } func StencilOpSeparate(face uint32, sfail uint32, dpfail uint32, dppass uint32) { C.glowStencilOpSeparate(gpStencilOpSeparate, (C.GLenum)(face), (C.GLenum)(sfail), (C.GLenum)(dpfail), (C.GLenum)(dppass)) } func TexImage2D(target uint32, level int32, internalformat int32, width int32, height int32, border int32, format uint32, xtype uint32, pixels unsafe.Pointer) { C.glowTexImage2D(gpTexImage2D, (C.GLenum)(target), (C.GLint)(level), (C.GLint)(internalformat), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLint)(border), (C.GLenum)(format), (C.GLenum)(xtype), pixels) } func TexParameterf(target uint32, pname uint32, param float32) { C.glowTexParameterf(gpTexParameterf, (C.GLenum)(target), (C.GLenum)(pname), (C.GLfloat)(param)) } func TexParameterfv(target uint32, pname uint32, params *float32) { C.glowTexParameterfv(gpTexParameterfv, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLfloat)(unsafe.Pointer(params))) } func TexParameteri(target uint32, pname uint32, param int32) { C.glowTexParameteri(gpTexParameteri, (C.GLenum)(target), (C.GLenum)(pname), (C.GLint)(param)) } func TexParameteriv(target uint32, pname uint32, params *int32) { C.glowTexParameteriv(gpTexParameteriv, (C.GLenum)(target), (C.GLenum)(pname), (*C.GLint)(unsafe.Pointer(params))) } func TexSubImage2D(target uint32, level int32, xoffset int32, yoffset int32, width int32, height int32, format uint32, xtype uint32, pixels unsafe.Pointer) { C.glowTexSubImage2D(gpTexSubImage2D, (C.GLenum)(target), (C.GLint)(level), (C.GLint)(xoffset), (C.GLint)(yoffset), (C.GLsizei)(width), (C.GLsizei)(height), (C.GLenum)(format), (C.GLenum)(xtype), pixels) } func Uniform1f(location int32, v0 float32) { C.glowUniform1f(gpUniform1f, (C.GLint)(location), (C.GLfloat)(v0)) } func Uniform1fv(location int32, count int32, value *float32) { C.glowUniform1fv(gpUniform1fv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(value))) } func Uniform1i(location int32, v0 int32) { C.glowUniform1i(gpUniform1i, (C.GLint)(location), (C.GLint)(v0)) } func Uniform1iv(location int32, count int32, value *int32) { C.glowUniform1iv(gpUniform1iv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(value))) } func Uniform2f(location int32, v0 float32, v1 float32) { C.glowUniform2f(gpUniform2f, (C.GLint)(location), (C.GLfloat)(v0), (C.GLfloat)(v1)) } func Uniform2fv(location int32, count int32, value *float32) { C.glowUniform2fv(gpUniform2fv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(value))) } func Uniform2i(location int32, v0 int32, v1 int32) { C.glowUniform2i(gpUniform2i, (C.GLint)(location), (C.GLint)(v0), (C.GLint)(v1)) } func Uniform2iv(location int32, count int32, value *int32) { C.glowUniform2iv(gpUniform2iv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(value))) } func Uniform3f(location int32, v0 float32, v1 float32, v2 float32) { C.glowUniform3f(gpUniform3f, (C.GLint)(location), (C.GLfloat)(v0), (C.GLfloat)(v1), (C.GLfloat)(v2)) } func Uniform3fv(location int32, count int32, value *float32) { C.glowUniform3fv(gpUniform3fv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(value))) } func Uniform3i(location int32, v0 int32, v1 int32, v2 int32) { C.glowUniform3i(gpUniform3i, (C.GLint)(location), (C.GLint)(v0), (C.GLint)(v1), (C.GLint)(v2)) } func Uniform3iv(location int32, count int32, value *int32) { C.glowUniform3iv(gpUniform3iv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(value))) } func Uniform4f(location int32, v0 float32, v1 float32, v2 float32, v3 float32) { C.glowUniform4f(gpUniform4f, (C.GLint)(location), (C.GLfloat)(v0), (C.GLfloat)(v1), (C.GLfloat)(v2), (C.GLfloat)(v3)) } func Uniform4fv(location int32, count int32, value *float32) { C.glowUniform4fv(gpUniform4fv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLfloat)(unsafe.Pointer(value))) } func Uniform4i(location int32, v0 int32, v1 int32, v2 int32, v3 int32) { C.glowUniform4i(gpUniform4i, (C.GLint)(location), (C.GLint)(v0), (C.GLint)(v1), (C.GLint)(v2), (C.GLint)(v3)) } func Uniform4iv(location int32, count int32, value *int32) { C.glowUniform4iv(gpUniform4iv, (C.GLint)(location), (C.GLsizei)(count), (*C.GLint)(unsafe.Pointer(value))) } func UniformMatrix2fv(location int32, count int32, transpose bool, value *float32) { C.glowUniformMatrix2fv(gpUniformMatrix2fv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value))) } func UniformMatrix3fv(location int32, count int32, transpose bool, value *float32) { C.glowUniformMatrix3fv(gpUniformMatrix3fv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value))) } func UniformMatrix4fv(location int32, count int32, transpose bool, value *float32) { C.glowUniformMatrix4fv(gpUniformMatrix4fv, (C.GLint)(location), (C.GLsizei)(count), (C.GLboolean)(boolToInt(transpose)), (*C.GLfloat)(unsafe.Pointer(value))) } func UseProgram(program uint32) { C.glowUseProgram(gpUseProgram, (C.GLuint)(program)) } func ValidateProgram(program uint32) { C.glowValidateProgram(gpValidateProgram, (C.GLuint)(program)) } func VertexAttrib1f(index uint32, x float32) { C.glowVertexAttrib1f(gpVertexAttrib1f, (C.GLuint)(index), (C.GLfloat)(x)) } func VertexAttrib1fv(index uint32, v *float32) { C.glowVertexAttrib1fv(gpVertexAttrib1fv, (C.GLuint)(index), (*C.GLfloat)(unsafe.Pointer(v))) } func VertexAttrib2f(index uint32, x float32, y float32) { C.glowVertexAttrib2f(gpVertexAttrib2f, (C.GLuint)(index), (C.GLfloat)(x), (C.GLfloat)(y)) } func VertexAttrib2fv(index uint32, v *float32) { C.glowVertexAttrib2fv(gpVertexAttrib2fv, (C.GLuint)(index), (*C.GLfloat)(unsafe.Pointer(v))) } func VertexAttrib3f(index uint32, x float32, y float32, z float32) { C.glowVertexAttrib3f(gpVertexAttrib3f, (C.GLuint)(index), (C.GLfloat)(x), (C.GLfloat)(y), (C.GLfloat)(z)) } func VertexAttrib3fv(index uint32, v *float32) { C.glowVertexAttrib3fv(gpVertexAttrib3fv, (C.GLuint)(index), (*C.GLfloat)(unsafe.Pointer(v))) } func VertexAttrib4f(index uint32, x float32, y float32, z float32, w float32) { C.glowVertexAttrib4f(gpVertexAttrib4f, (C.GLuint)(index), (C.GLfloat)(x), (C.GLfloat)(y), (C.GLfloat)(z), (C.GLfloat)(w)) } func VertexAttrib4fv(index uint32, v *float32) { C.glowVertexAttrib4fv(gpVertexAttrib4fv, (C.GLuint)(index), (*C.GLfloat)(unsafe.Pointer(v))) } func VertexAttribPointer(index uint32, size int32, xtype uint32, normalized bool, stride int32, pointer unsafe.Pointer) { C.glowVertexAttribPointer(gpVertexAttribPointer, (C.GLuint)(index), (C.GLint)(size), (C.GLenum)(xtype), (C.GLboolean)(boolToInt(normalized)), (C.GLsizei)(stride), pointer) } func Viewport(x int32, y int32, width int32, height int32) { C.glowViewport(gpViewport, (C.GLint)(x), (C.GLint)(y), (C.GLsizei)(width), (C.GLsizei)(height)) } // Init initializes the OpenGL bindings by loading the function pointers (for // each OpenGL function) from the active OpenGL context. // // It must be called under the presence of an active OpenGL context, e.g., // always after calling window.MakeContextCurrent() and always before calling // any OpenGL functions exported by this package. // // On Windows, Init loads pointers that are context-specific (and hence you // must re-init if switching between OpenGL contexts, although not calling Init // again after switching between OpenGL contexts may work if the contexts belong // to the same graphics driver/device). // // On macOS and the other POSIX systems, the behavior is different, but code // written compatible with the Windows behavior is compatible with macOS and the // other POSIX systems. That is, always Init under an active OpenGL context, and // always re-init after switching graphics contexts. // // For information about caveats of Init, you should read the "Platform Specific // Function Retrieval" section of https://www.opengl.org/wiki/Load_OpenGL_Functions. func Init() error { return InitWithProcAddrFunc(getProcAddress) } // InitWithProcAddrFunc intializes the package using the specified OpenGL // function pointer loading function. For more cases Init should be used // instead. func InitWithProcAddrFunc(getProcAddr func(name string) unsafe.Pointer) error { gpActiveTexture = (C.GPACTIVETEXTURE)(getProcAddr("glActiveTexture")) if gpActiveTexture == nil { return errors.New("glActiveTexture") } gpAttachShader = (C.GPATTACHSHADER)(getProcAddr("glAttachShader")) if gpAttachShader == nil { return errors.New("glAttachShader") } gpBindAttribLocation = (C.GPBINDATTRIBLOCATION)(getProcAddr("glBindAttribLocation")) if gpBindAttribLocation == nil { return errors.New("glBindAttribLocation") } gpBindBuffer = (C.GPBINDBUFFER)(getProcAddr("glBindBuffer")) if gpBindBuffer == nil { return errors.New("glBindBuffer") } gpBindFramebuffer = (C.GPBINDFRAMEBUFFER)(getProcAddr("glBindFramebuffer")) if gpBindFramebuffer == nil { return errors.New("glBindFramebuffer") } gpBindRenderbuffer = (C.GPBINDRENDERBUFFER)(getProcAddr("glBindRenderbuffer")) if gpBindRenderbuffer == nil { return errors.New("glBindRenderbuffer") } gpBindTexture = (C.GPBINDTEXTURE)(getProcAddr("glBindTexture")) if gpBindTexture == nil { return errors.New("glBindTexture") } gpBlendColor = (C.GPBLENDCOLOR)(getProcAddr("glBlendColor")) if gpBlendColor == nil { return errors.New("glBlendColor") } gpBlendEquation = (C.GPBLENDEQUATION)(getProcAddr("glBlendEquation")) if gpBlendEquation == nil { return errors.New("glBlendEquation") } gpBlendEquationSeparate = (C.GPBLENDEQUATIONSEPARATE)(getProcAddr("glBlendEquationSeparate")) if gpBlendEquationSeparate == nil { return errors.New("glBlendEquationSeparate") } gpBlendFunc = (C.GPBLENDFUNC)(getProcAddr("glBlendFunc")) if gpBlendFunc == nil { return errors.New("glBlendFunc") } gpBlendFuncSeparate = (C.GPBLENDFUNCSEPARATE)(getProcAddr("glBlendFuncSeparate")) if gpBlendFuncSeparate == nil { return errors.New("glBlendFuncSeparate") } gpBufferData = (C.GPBUFFERDATA)(getProcAddr("glBufferData")) if gpBufferData == nil { return errors.New("glBufferData") } gpBufferSubData = (C.GPBUFFERSUBDATA)(getProcAddr("glBufferSubData")) if gpBufferSubData == nil { return errors.New("glBufferSubData") } gpCheckFramebufferStatus = (C.GPCHECKFRAMEBUFFERSTATUS)(getProcAddr("glCheckFramebufferStatus")) if gpCheckFramebufferStatus == nil { return errors.New("glCheckFramebufferStatus") } gpClear = (C.GPCLEAR)(getProcAddr("glClear")) if gpClear == nil { return errors.New("glClear") } gpClearColor = (C.GPCLEARCOLOR)(getProcAddr("glClearColor")) if gpClearColor == nil { return errors.New("glClearColor") } gpClearStencil = (C.GPCLEARSTENCIL)(getProcAddr("glClearStencil")) if gpClearStencil == nil { return errors.New("glClearStencil") } gpColorMask = (C.GPCOLORMASK)(getProcAddr("glColorMask")) if gpColorMask == nil { return errors.New("glColorMask") } gpCompileShader = (C.GPCOMPILESHADER)(getProcAddr("glCompileShader")) if gpCompileShader == nil { return errors.New("glCompileShader") } gpCompressedTexImage2D = (C.GPCOMPRESSEDTEXIMAGE2D)(getProcAddr("glCompressedTexImage2D")) if gpCompressedTexImage2D == nil { return errors.New("glCompressedTexImage2D") } gpCompressedTexSubImage2D = (C.GPCOMPRESSEDTEXSUBIMAGE2D)(getProcAddr("glCompressedTexSubImage2D")) if gpCompressedTexSubImage2D == nil { return errors.New("glCompressedTexSubImage2D") } gpCopyTexImage2D = (C.GPCOPYTEXIMAGE2D)(getProcAddr("glCopyTexImage2D")) if gpCopyTexImage2D == nil { return errors.New("glCopyTexImage2D") } gpCopyTexSubImage2D = (C.GPCOPYTEXSUBIMAGE2D)(getProcAddr("glCopyTexSubImage2D")) if gpCopyTexSubImage2D == nil { return errors.New("glCopyTexSubImage2D") } gpCreateProgram = (C.GPCREATEPROGRAM)(getProcAddr("glCreateProgram")) if gpCreateProgram == nil { return errors.New("glCreateProgram") } gpCreateShader = (C.GPCREATESHADER)(getProcAddr("glCreateShader")) if gpCreateShader == nil { return errors.New("glCreateShader") } gpCullFace = (C.GPCULLFACE)(getProcAddr("glCullFace")) if gpCullFace == nil { return errors.New("glCullFace") } gpDeleteBuffers = (C.GPDELETEBUFFERS)(getProcAddr("glDeleteBuffers")) if gpDeleteBuffers == nil { return errors.New("glDeleteBuffers") } gpDeleteFramebuffers = (C.GPDELETEFRAMEBUFFERS)(getProcAddr("glDeleteFramebuffers")) if gpDeleteFramebuffers == nil { return errors.New("glDeleteFramebuffers") } gpDeleteProgram = (C.GPDELETEPROGRAM)(getProcAddr("glDeleteProgram")) if gpDeleteProgram == nil { return errors.New("glDeleteProgram") } gpDeleteRenderbuffers = (C.GPDELETERENDERBUFFERS)(getProcAddr("glDeleteRenderbuffers")) if gpDeleteRenderbuffers == nil { return errors.New("glDeleteRenderbuffers") } gpDeleteShader = (C.GPDELETESHADER)(getProcAddr("glDeleteShader")) if gpDeleteShader == nil { return errors.New("glDeleteShader") } gpDeleteTextures = (C.GPDELETETEXTURES)(getProcAddr("glDeleteTextures")) if gpDeleteTextures == nil { return errors.New("glDeleteTextures") } gpDepthFunc = (C.GPDEPTHFUNC)(getProcAddr("glDepthFunc")) if gpDepthFunc == nil { return errors.New("glDepthFunc") } gpDepthMask = (C.GPDEPTHMASK)(getProcAddr("glDepthMask")) if gpDepthMask == nil { return errors.New("glDepthMask") } gpDetachShader = (C.GPDETACHSHADER)(getProcAddr("glDetachShader")) if gpDetachShader == nil { return errors.New("glDetachShader") } gpDisable = (C.GPDISABLE)(getProcAddr("glDisable")) if gpDisable == nil { return errors.New("glDisable") } gpDisableVertexAttribArray = (C.GPDISABLEVERTEXATTRIBARRAY)(getProcAddr("glDisableVertexAttribArray")) if gpDisableVertexAttribArray == nil { return errors.New("glDisableVertexAttribArray") } gpDrawArrays = (C.GPDRAWARRAYS)(getProcAddr("glDrawArrays")) if gpDrawArrays == nil { return errors.New("glDrawArrays") } gpDrawElements = (C.GPDRAWELEMENTS)(getProcAddr("glDrawElements")) if gpDrawElements == nil { return errors.New("glDrawElements") } gpEnable = (C.GPENABLE)(getProcAddr("glEnable")) if gpEnable == nil { return errors.New("glEnable") } gpEnableVertexAttribArray = (C.GPENABLEVERTEXATTRIBARRAY)(getProcAddr("glEnableVertexAttribArray")) if gpEnableVertexAttribArray == nil { return errors.New("glEnableVertexAttribArray") } gpFinish = (C.GPFINISH)(getProcAddr("glFinish")) if gpFinish == nil { return errors.New("glFinish") } gpFlush = (C.GPFLUSH)(getProcAddr("glFlush")) if gpFlush == nil { return errors.New("glFlush") } gpFramebufferRenderbuffer = (C.GPFRAMEBUFFERRENDERBUFFER)(getProcAddr("glFramebufferRenderbuffer")) if gpFramebufferRenderbuffer == nil { return errors.New("glFramebufferRenderbuffer") } gpFramebufferTexture2D = (C.GPFRAMEBUFFERTEXTURE2D)(getProcAddr("glFramebufferTexture2D")) if gpFramebufferTexture2D == nil { return errors.New("glFramebufferTexture2D") } gpFrontFace = (C.GPFRONTFACE)(getProcAddr("glFrontFace")) if gpFrontFace == nil { return errors.New("glFrontFace") } gpGenBuffers = (C.GPGENBUFFERS)(getProcAddr("glGenBuffers")) if gpGenBuffers == nil { return errors.New("glGenBuffers") } gpGenFramebuffers = (C.GPGENFRAMEBUFFERS)(getProcAddr("glGenFramebuffers")) if gpGenFramebuffers == nil { return errors.New("glGenFramebuffers") } gpGenRenderbuffers = (C.GPGENRENDERBUFFERS)(getProcAddr("glGenRenderbuffers")) if gpGenRenderbuffers == nil { return errors.New("glGenRenderbuffers") } gpGenTextures = (C.GPGENTEXTURES)(getProcAddr("glGenTextures")) if gpGenTextures == nil { return errors.New("glGenTextures") } gpGenerateMipmap = (C.GPGENERATEMIPMAP)(getProcAddr("glGenerateMipmap")) if gpGenerateMipmap == nil { return errors.New("glGenerateMipmap") } gpGetActiveAttrib = (C.GPGETACTIVEATTRIB)(getProcAddr("glGetActiveAttrib")) if gpGetActiveAttrib == nil { return errors.New("glGetActiveAttrib") } gpGetActiveUniform = (C.GPGETACTIVEUNIFORM)(getProcAddr("glGetActiveUniform")) if gpGetActiveUniform == nil { return errors.New("glGetActiveUniform") } gpGetAttachedShaders = (C.GPGETATTACHEDSHADERS)(getProcAddr("glGetAttachedShaders")) if gpGetAttachedShaders == nil { return errors.New("glGetAttachedShaders") } gpGetAttribLocation = (C.GPGETATTRIBLOCATION)(getProcAddr("glGetAttribLocation")) if gpGetAttribLocation == nil { return errors.New("glGetAttribLocation") } gpGetBooleanv = (C.GPGETBOOLEANV)(getProcAddr("glGetBooleanv")) if gpGetBooleanv == nil { return errors.New("glGetBooleanv") } gpGetBufferParameteriv = (C.GPGETBUFFERPARAMETERIV)(getProcAddr("glGetBufferParameteriv")) if gpGetBufferParameteriv == nil { return errors.New("glGetBufferParameteriv") } gpGetError = (C.GPGETERROR)(getProcAddr("glGetError")) if gpGetError == nil { return errors.New("glGetError") } gpGetFloatv = (C.GPGETFLOATV)(getProcAddr("glGetFloatv")) if gpGetFloatv == nil { return errors.New("glGetFloatv") } gpGetFramebufferAttachmentParameteriv = (C.GPGETFRAMEBUFFERATTACHMENTPARAMETERIV)(getProcAddr("glGetFramebufferAttachmentParameteriv")) if gpGetFramebufferAttachmentParameteriv == nil { return errors.New("glGetFramebufferAttachmentParameteriv") } gpGetIntegerv = (C.GPGETINTEGERV)(getProcAddr("glGetIntegerv")) if gpGetIntegerv == nil { return errors.New("glGetIntegerv") } gpGetProgramInfoLog = (C.GPGETPROGRAMINFOLOG)(getProcAddr("glGetProgramInfoLog")) if gpGetProgramInfoLog == nil { return errors.New("glGetProgramInfoLog") } gpGetProgramiv = (C.GPGETPROGRAMIV)(getProcAddr("glGetProgramiv")) if gpGetProgramiv == nil { return errors.New("glGetProgramiv") } gpGetRenderbufferParameteriv = (C.GPGETRENDERBUFFERPARAMETERIV)(getProcAddr("glGetRenderbufferParameteriv")) if gpGetRenderbufferParameteriv == nil { return errors.New("glGetRenderbufferParameteriv") } gpGetShaderInfoLog = (C.GPGETSHADERINFOLOG)(getProcAddr("glGetShaderInfoLog")) if gpGetShaderInfoLog == nil { return errors.New("glGetShaderInfoLog") } gpGetShaderSource = (C.GPGETSHADERSOURCE)(getProcAddr("glGetShaderSource")) if gpGetShaderSource == nil { return errors.New("glGetShaderSource") } gpGetShaderiv = (C.GPGETSHADERIV)(getProcAddr("glGetShaderiv")) if gpGetShaderiv == nil { return errors.New("glGetShaderiv") } gpGetString = (C.GPGETSTRING)(getProcAddr("glGetString")) if gpGetString == nil { return errors.New("glGetString") } gpGetTexParameterfv = (C.GPGETTEXPARAMETERFV)(getProcAddr("glGetTexParameterfv")) if gpGetTexParameterfv == nil { return errors.New("glGetTexParameterfv") } gpGetTexParameteriv = (C.GPGETTEXPARAMETERIV)(getProcAddr("glGetTexParameteriv")) if gpGetTexParameteriv == nil { return errors.New("glGetTexParameteriv") } gpGetUniformLocation = (C.GPGETUNIFORMLOCATION)(getProcAddr("glGetUniformLocation")) if gpGetUniformLocation == nil { return errors.New("glGetUniformLocation") } gpGetUniformfv = (C.GPGETUNIFORMFV)(getProcAddr("glGetUniformfv")) if gpGetUniformfv == nil { return errors.New("glGetUniformfv") } gpGetUniformiv = (C.GPGETUNIFORMIV)(getProcAddr("glGetUniformiv")) if gpGetUniformiv == nil { return errors.New("glGetUniformiv") } gpGetVertexAttribPointerv = (C.GPGETVERTEXATTRIBPOINTERV)(getProcAddr("glGetVertexAttribPointerv")) if gpGetVertexAttribPointerv == nil { return errors.New("glGetVertexAttribPointerv") } gpGetVertexAttribfv = (C.GPGETVERTEXATTRIBFV)(getProcAddr("glGetVertexAttribfv")) if gpGetVertexAttribfv == nil { return errors.New("glGetVertexAttribfv") } gpGetVertexAttribiv = (C.GPGETVERTEXATTRIBIV)(getProcAddr("glGetVertexAttribiv")) if gpGetVertexAttribiv == nil { return errors.New("glGetVertexAttribiv") } gpHint = (C.GPHINT)(getProcAddr("glHint")) if gpHint == nil { return errors.New("glHint") } gpIsBuffer = (C.GPISBUFFER)(getProcAddr("glIsBuffer")) if gpIsBuffer == nil { return errors.New("glIsBuffer") } gpIsEnabled = (C.GPISENABLED)(getProcAddr("glIsEnabled")) if gpIsEnabled == nil { return errors.New("glIsEnabled") } gpIsFramebuffer = (C.GPISFRAMEBUFFER)(getProcAddr("glIsFramebuffer")) if gpIsFramebuffer == nil { return errors.New("glIsFramebuffer") } gpIsProgram = (C.GPISPROGRAM)(getProcAddr("glIsProgram")) if gpIsProgram == nil { return errors.New("glIsProgram") } gpIsRenderbuffer = (C.GPISRENDERBUFFER)(getProcAddr("glIsRenderbuffer")) if gpIsRenderbuffer == nil { return errors.New("glIsRenderbuffer") } gpIsShader = (C.GPISSHADER)(getProcAddr("glIsShader")) if gpIsShader == nil { return errors.New("glIsShader") } gpIsTexture = (C.GPISTEXTURE)(getProcAddr("glIsTexture")) if gpIsTexture == nil { return errors.New("glIsTexture") } gpLineWidth = (C.GPLINEWIDTH)(getProcAddr("glLineWidth")) if gpLineWidth == nil { return errors.New("glLineWidth") } gpLinkProgram = (C.GPLINKPROGRAM)(getProcAddr("glLinkProgram")) if gpLinkProgram == nil { return errors.New("glLinkProgram") } gpPixelStorei = (C.GPPIXELSTOREI)(getProcAddr("glPixelStorei")) if gpPixelStorei == nil { return errors.New("glPixelStorei") } gpPolygonOffset = (C.GPPOLYGONOFFSET)(getProcAddr("glPolygonOffset")) if gpPolygonOffset == nil { return errors.New("glPolygonOffset") } gpReadPixels = (C.GPREADPIXELS)(getProcAddr("glReadPixels")) if gpReadPixels == nil { return errors.New("glReadPixels") } gpRenderbufferStorage = (C.GPRENDERBUFFERSTORAGE)(getProcAddr("glRenderbufferStorage")) if gpRenderbufferStorage == nil { return errors.New("glRenderbufferStorage") } gpSampleCoverage = (C.GPSAMPLECOVERAGE)(getProcAddr("glSampleCoverage")) if gpSampleCoverage == nil { return errors.New("glSampleCoverage") } gpScissor = (C.GPSCISSOR)(getProcAddr("glScissor")) if gpScissor == nil { return errors.New("glScissor") } gpShaderSource = (C.GPSHADERSOURCE)(getProcAddr("glShaderSource")) if gpShaderSource == nil { return errors.New("glShaderSource") } gpStencilFunc = (C.GPSTENCILFUNC)(getProcAddr("glStencilFunc")) if gpStencilFunc == nil { return errors.New("glStencilFunc") } gpStencilFuncSeparate = (C.GPSTENCILFUNCSEPARATE)(getProcAddr("glStencilFuncSeparate")) if gpStencilFuncSeparate == nil { return errors.New("glStencilFuncSeparate") } gpStencilMask = (C.GPSTENCILMASK)(getProcAddr("glStencilMask")) if gpStencilMask == nil { return errors.New("glStencilMask") } gpStencilMaskSeparate = (C.GPSTENCILMASKSEPARATE)(getProcAddr("glStencilMaskSeparate")) if gpStencilMaskSeparate == nil { return errors.New("glStencilMaskSeparate") } gpStencilOp = (C.GPSTENCILOP)(getProcAddr("glStencilOp")) if gpStencilOp == nil { return errors.New("glStencilOp") } gpStencilOpSeparate = (C.GPSTENCILOPSEPARATE)(getProcAddr("glStencilOpSeparate")) if gpStencilOpSeparate == nil { return errors.New("glStencilOpSeparate") } gpTexImage2D = (C.GPTEXIMAGE2D)(getProcAddr("glTexImage2D")) if gpTexImage2D == nil { return errors.New("glTexImage2D") } gpTexParameterf = (C.GPTEXPARAMETERF)(getProcAddr("glTexParameterf")) if gpTexParameterf == nil { return errors.New("glTexParameterf") } gpTexParameterfv = (C.GPTEXPARAMETERFV)(getProcAddr("glTexParameterfv")) if gpTexParameterfv == nil { return errors.New("glTexParameterfv") } gpTexParameteri = (C.GPTEXPARAMETERI)(getProcAddr("glTexParameteri")) if gpTexParameteri == nil { return errors.New("glTexParameteri") } gpTexParameteriv = (C.GPTEXPARAMETERIV)(getProcAddr("glTexParameteriv")) if gpTexParameteriv == nil { return errors.New("glTexParameteriv") } gpTexSubImage2D = (C.GPTEXSUBIMAGE2D)(getProcAddr("glTexSubImage2D")) if gpTexSubImage2D == nil { return errors.New("glTexSubImage2D") } gpUniform1f = (C.GPUNIFORM1F)(getProcAddr("glUniform1f")) if gpUniform1f == nil { return errors.New("glUniform1f") } gpUniform1fv = (C.GPUNIFORM1FV)(getProcAddr("glUniform1fv")) if gpUniform1fv == nil { return errors.New("glUniform1fv") } gpUniform1i = (C.GPUNIFORM1I)(getProcAddr("glUniform1i")) if gpUniform1i == nil { return errors.New("glUniform1i") } gpUniform1iv = (C.GPUNIFORM1IV)(getProcAddr("glUniform1iv")) if gpUniform1iv == nil { return errors.New("glUniform1iv") } gpUniform2f = (C.GPUNIFORM2F)(getProcAddr("glUniform2f")) if gpUniform2f == nil { return errors.New("glUniform2f") } gpUniform2fv = (C.GPUNIFORM2FV)(getProcAddr("glUniform2fv")) if gpUniform2fv == nil { return errors.New("glUniform2fv") } gpUniform2i = (C.GPUNIFORM2I)(getProcAddr("glUniform2i")) if gpUniform2i == nil { return errors.New("glUniform2i") } gpUniform2iv = (C.GPUNIFORM2IV)(getProcAddr("glUniform2iv")) if gpUniform2iv == nil { return errors.New("glUniform2iv") } gpUniform3f = (C.GPUNIFORM3F)(getProcAddr("glUniform3f")) if gpUniform3f == nil { return errors.New("glUniform3f") } gpUniform3fv = (C.GPUNIFORM3FV)(getProcAddr("glUniform3fv")) if gpUniform3fv == nil { return errors.New("glUniform3fv") } gpUniform3i = (C.GPUNIFORM3I)(getProcAddr("glUniform3i")) if gpUniform3i == nil { return errors.New("glUniform3i") } gpUniform3iv = (C.GPUNIFORM3IV)(getProcAddr("glUniform3iv")) if gpUniform3iv == nil { return errors.New("glUniform3iv") } gpUniform4f = (C.GPUNIFORM4F)(getProcAddr("glUniform4f")) if gpUniform4f == nil { return errors.New("glUniform4f") } gpUniform4fv = (C.GPUNIFORM4FV)(getProcAddr("glUniform4fv")) if gpUniform4fv == nil { return errors.New("glUniform4fv") } gpUniform4i = (C.GPUNIFORM4I)(getProcAddr("glUniform4i")) if gpUniform4i == nil { return errors.New("glUniform4i") } gpUniform4iv = (C.GPUNIFORM4IV)(getProcAddr("glUniform4iv")) if gpUniform4iv == nil { return errors.New("glUniform4iv") } gpUniformMatrix2fv = (C.GPUNIFORMMATRIX2FV)(getProcAddr("glUniformMatrix2fv")) if gpUniformMatrix2fv == nil { return errors.New("glUniformMatrix2fv") } gpUniformMatrix3fv = (C.GPUNIFORMMATRIX3FV)(getProcAddr("glUniformMatrix3fv")) if gpUniformMatrix3fv == nil { return errors.New("glUniformMatrix3fv") } gpUniformMatrix4fv = (C.GPUNIFORMMATRIX4FV)(getProcAddr("glUniformMatrix4fv")) if gpUniformMatrix4fv == nil { return errors.New("glUniformMatrix4fv") } gpUseProgram = (C.GPUSEPROGRAM)(getProcAddr("glUseProgram")) if gpUseProgram == nil { return errors.New("glUseProgram") } gpValidateProgram = (C.GPVALIDATEPROGRAM)(getProcAddr("glValidateProgram")) if gpValidateProgram == nil { return errors.New("glValidateProgram") } gpVertexAttrib1f = (C.GPVERTEXATTRIB1F)(getProcAddr("glVertexAttrib1f")) if gpVertexAttrib1f == nil { return errors.New("glVertexAttrib1f") } gpVertexAttrib1fv = (C.GPVERTEXATTRIB1FV)(getProcAddr("glVertexAttrib1fv")) if gpVertexAttrib1fv == nil { return errors.New("glVertexAttrib1fv") } gpVertexAttrib2f = (C.GPVERTEXATTRIB2F)(getProcAddr("glVertexAttrib2f")) if gpVertexAttrib2f == nil { return errors.New("glVertexAttrib2f") } gpVertexAttrib2fv = (C.GPVERTEXATTRIB2FV)(getProcAddr("glVertexAttrib2fv")) if gpVertexAttrib2fv == nil { return errors.New("glVertexAttrib2fv") } gpVertexAttrib3f = (C.GPVERTEXATTRIB3F)(getProcAddr("glVertexAttrib3f")) if gpVertexAttrib3f == nil { return errors.New("glVertexAttrib3f") } gpVertexAttrib3fv = (C.GPVERTEXATTRIB3FV)(getProcAddr("glVertexAttrib3fv")) if gpVertexAttrib3fv == nil { return errors.New("glVertexAttrib3fv") } gpVertexAttrib4f = (C.GPVERTEXATTRIB4F)(getProcAddr("glVertexAttrib4f")) if gpVertexAttrib4f == nil { return errors.New("glVertexAttrib4f") } gpVertexAttrib4fv = (C.GPVERTEXATTRIB4FV)(getProcAddr("glVertexAttrib4fv")) if gpVertexAttrib4fv == nil { return errors.New("glVertexAttrib4fv") } gpVertexAttribPointer = (C.GPVERTEXATTRIBPOINTER)(getProcAddr("glVertexAttribPointer")) if gpVertexAttribPointer == nil { return errors.New("glVertexAttribPointer") } gpViewport = (C.GPVIEWPORT)(getProcAddr("glViewport")) if gpViewport == nil { return errors.New("glViewport") } return nil }