/* ============================================================================== This file is part of the JUCE library. Copyright (c) 2020 - Raw Material Software Limited JUCE is an open source library subject to commercial or open-source licensing. By using JUCE, you agree to the terms of both the JUCE 6 End-User License Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020). End User License Agreement: www.juce.com/juce-6-licence Privacy Policy: www.juce.com/juce-privacy-policy Or: You may also use this code under the terms of the GPL v3 (see www.gnu.org/licenses). JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE DISCLAIMED. ============================================================================== */ // This file was generated automatically using data from the opengl-registry // https://github.com/KhronosGroup/OpenGL-Registry // This file's corresponding header contains a reference to a function pointer // for each command in the GL spec. The functions from earlier GL versions are // (pretty much) guaranteed to be available in the platform GL library. For // these functions, the references will be initialised to point directly at the // library implementations. This behaviour is somewhat configurable: // preprocessor defs of the form `JUCE_STATIC_LINK_` will // ensure that the functions from a particular GL version are linked // statically. Of course, this may fail to link if the platform doesn't // implement the requested GL version. Any GL versions that are not explicitly // requested for static linking, along with all known GL extensions, are loaded // at runtime using gl::loadFunctions(). Again, these functions can be accessed // via the references in the header. // You should be aware that *any* of the functions declared in the header may // be nullptr if the implementation does not supply that function. If you // depend on specific GL features/extensions, it's probably a good idea to // check each function pointer to ensure that the function was loaded // successfully. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0 \ X (void , glActiveTexture, (GLenum texture)) \ X (void , glAttachShader, (GLuint program, GLuint shader)) \ X (void , glBindAttribLocation, (GLuint program, GLuint index, const GLchar *name)) \ X (void , glBindBuffer, (GLenum target, GLuint buffer)) \ X (void , glBindFramebuffer, (GLenum target, GLuint framebuffer)) \ X (void , glBindRenderbuffer, (GLenum target, GLuint renderbuffer)) \ X (void , glBindTexture, (GLenum target, GLuint texture)) \ X (void , glBlendColor, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)) \ X (void , glBlendEquation, (GLenum mode)) \ X (void , glBlendEquationSeparate, (GLenum modeRGB, GLenum modeAlpha)) \ X (void , glBlendFunc, (GLenum sfactor, GLenum dfactor)) \ X (void , glBlendFuncSeparate, (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)) \ X (void , glBufferData, (GLenum target, GLsizeiptr size, const void *data, GLenum usage)) \ X (void , glBufferSubData, (GLenum target, GLintptr offset, GLsizeiptr size, const void *data)) \ X (GLenum , glCheckFramebufferStatus, (GLenum target)) \ X (void , glClear, (GLbitfield mask)) \ X (void , glClearColor, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)) \ X (void , glClearDepthf, (GLfloat d)) \ X (void , glClearStencil, (GLint s)) \ X (void , glColorMask, (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)) \ X (void , glCompileShader, (GLuint shader)) \ X (void , glCompressedTexImage2D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data)) \ X (void , glCompressedTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data)) \ X (void , glCopyTexImage2D, (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)) \ X (void , glCopyTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \ X (GLuint , glCreateProgram, ()) \ X (GLuint , glCreateShader, (GLenum type)) \ X (void , glCullFace, (GLenum mode)) \ X (void , glDeleteBuffers, (GLsizei n, const GLuint *buffers)) \ X (void , glDeleteFramebuffers, (GLsizei n, const GLuint *framebuffers)) \ X (void , glDeleteProgram, (GLuint program)) \ X (void , glDeleteRenderbuffers, (GLsizei n, const GLuint *renderbuffers)) \ X (void , glDeleteShader, (GLuint shader)) \ X (void , glDeleteTextures, (GLsizei n, const GLuint *textures)) \ X (void , glDepthFunc, (GLenum func)) \ X (void , glDepthMask, (GLboolean flag)) \ X (void , glDepthRangef, (GLfloat n, GLfloat f)) \ X (void , glDetachShader, (GLuint program, GLuint shader)) \ X (void , glDisable, (GLenum cap)) \ X (void , glDisableVertexAttribArray, (GLuint index)) \ X (void , glDrawArrays, (GLenum mode, GLint first, GLsizei count)) \ X (void , glDrawElements, (GLenum mode, GLsizei count, GLenum type, const void *indices)) \ X (void , glEnable, (GLenum cap)) \ X (void , glEnableVertexAttribArray, (GLuint index)) \ X (void , glFinish, ()) \ X (void , glFlush, ()) \ X (void , glFramebufferRenderbuffer, (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)) \ X (void , glFramebufferTexture2D, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)) \ X (void , glFrontFace, (GLenum mode)) \ X (void , glGenBuffers, (GLsizei n, GLuint *buffers)) \ X (void , glGenerateMipmap, (GLenum target)) \ X (void , glGenFramebuffers, (GLsizei n, GLuint *framebuffers)) \ X (void , glGenRenderbuffers, (GLsizei n, GLuint *renderbuffers)) \ X (void , glGenTextures, (GLsizei n, GLuint *textures)) \ X (void , glGetActiveAttrib, (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)) \ X (void , glGetActiveUniform, (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)) \ X (void , glGetAttachedShaders, (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders)) \ X (GLint , glGetAttribLocation, (GLuint program, const GLchar *name)) \ X (void , glGetBooleanv, (GLenum pname, GLboolean *data)) \ X (void , glGetBufferParameteriv, (GLenum target, GLenum pname, GLint *params)) \ X (GLenum , glGetError, ()) \ X (void , glGetFloatv, (GLenum pname, GLfloat *data)) \ X (void , glGetFramebufferAttachmentParameteriv, (GLenum target, GLenum attachment, GLenum pname, GLint *params)) \ X (void , glGetIntegerv, (GLenum pname, GLint *data)) \ X (void , glGetProgramiv, (GLuint program, GLenum pname, GLint *params)) \ X (void , glGetProgramInfoLog, (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \ X (void , glGetRenderbufferParameteriv, (GLenum target, GLenum pname, GLint *params)) \ X (void , glGetShaderiv, (GLuint shader, GLenum pname, GLint *params)) \ X (void , glGetShaderInfoLog, (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \ X (void , glGetShaderPrecisionFormat, (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision)) \ X (void , glGetShaderSource, (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source)) \ X (const GLubyte *, glGetString, (GLenum name)) \ X (void , glGetTexParameterfv, (GLenum target, GLenum pname, GLfloat *params)) \ X (void , glGetTexParameteriv, (GLenum target, GLenum pname, GLint *params)) \ X (void , glGetUniformfv, (GLuint program, GLint location, GLfloat *params)) \ X (void , glGetUniformiv, (GLuint program, GLint location, GLint *params)) \ X (GLint , glGetUniformLocation, (GLuint program, const GLchar *name)) \ X (void , glGetVertexAttribfv, (GLuint index, GLenum pname, GLfloat *params)) \ X (void , glGetVertexAttribiv, (GLuint index, GLenum pname, GLint *params)) \ X (void , glGetVertexAttribPointerv, (GLuint index, GLenum pname, void **pointer)) \ X (void , glHint, (GLenum target, GLenum mode)) \ X (GLboolean , glIsBuffer, (GLuint buffer)) \ X (GLboolean , glIsEnabled, (GLenum cap)) \ X (GLboolean , glIsFramebuffer, (GLuint framebuffer)) \ X (GLboolean , glIsProgram, (GLuint program)) \ X (GLboolean , glIsRenderbuffer, (GLuint renderbuffer)) \ X (GLboolean , glIsShader, (GLuint shader)) \ X (GLboolean , glIsTexture, (GLuint texture)) \ X (void , glLineWidth, (GLfloat width)) \ X (void , glLinkProgram, (GLuint program)) \ X (void , glPixelStorei, (GLenum pname, GLint param)) \ X (void , glPolygonOffset, (GLfloat factor, GLfloat units)) \ X (void , glReadPixels, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels)) \ X (void , glReleaseShaderCompiler, ()) \ X (void , glRenderbufferStorage, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height)) \ X (void , glSampleCoverage, (GLfloat value, GLboolean invert)) \ X (void , glScissor, (GLint x, GLint y, GLsizei width, GLsizei height)) \ X (void , glShaderBinary, (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length)) \ X (void , glShaderSource, (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length)) \ X (void , glStencilFunc, (GLenum func, GLint ref, GLuint mask)) \ X (void , glStencilFuncSeparate, (GLenum face, GLenum func, GLint ref, GLuint mask)) \ X (void , glStencilMask, (GLuint mask)) \ X (void , glStencilMaskSeparate, (GLenum face, GLuint mask)) \ X (void , glStencilOp, (GLenum fail, GLenum zfail, GLenum zpass)) \ X (void , glStencilOpSeparate, (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)) \ X (void , glTexImage2D, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)) \ X (void , glTexParameterf, (GLenum target, GLenum pname, GLfloat param)) \ X (void , glTexParameterfv, (GLenum target, GLenum pname, const GLfloat *params)) \ X (void , glTexParameteri, (GLenum target, GLenum pname, GLint param)) \ X (void , glTexParameteriv, (GLenum target, GLenum pname, const GLint *params)) \ X (void , glTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)) \ X (void , glUniform1f, (GLint location, GLfloat v0)) \ X (void , glUniform1fv, (GLint location, GLsizei count, const GLfloat *value)) \ X (void , glUniform1i, (GLint location, GLint v0)) \ X (void , glUniform1iv, (GLint location, GLsizei count, const GLint *value)) \ X (void , glUniform2f, (GLint location, GLfloat v0, GLfloat v1)) \ X (void , glUniform2fv, (GLint location, GLsizei count, const GLfloat *value)) \ X (void , glUniform2i, (GLint location, GLint v0, GLint v1)) \ X (void , glUniform2iv, (GLint location, GLsizei count, const GLint *value)) \ X (void , glUniform3f, (GLint location, GLfloat v0, GLfloat v1, GLfloat v2)) \ X (void , glUniform3fv, (GLint location, GLsizei count, const GLfloat *value)) \ X (void , glUniform3i, (GLint location, GLint v0, GLint v1, GLint v2)) \ X (void , glUniform3iv, (GLint location, GLsizei count, const GLint *value)) \ X (void , glUniform4f, (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)) \ X (void , glUniform4fv, (GLint location, GLsizei count, const GLfloat *value)) \ X (void , glUniform4i, (GLint location, GLint v0, GLint v1, GLint v2, GLint v3)) \ X (void , glUniform4iv, (GLint location, GLsizei count, const GLint *value)) \ X (void , glUniformMatrix2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glUniformMatrix3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glUniformMatrix4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glUseProgram, (GLuint program)) \ X (void , glValidateProgram, (GLuint program)) \ X (void , glVertexAttrib1f, (GLuint index, GLfloat x)) \ X (void , glVertexAttrib1fv, (GLuint index, const GLfloat *v)) \ X (void , glVertexAttrib2f, (GLuint index, GLfloat x, GLfloat y)) \ X (void , glVertexAttrib2fv, (GLuint index, const GLfloat *v)) \ X (void , glVertexAttrib3f, (GLuint index, GLfloat x, GLfloat y, GLfloat z)) \ X (void , glVertexAttrib3fv, (GLuint index, const GLfloat *v)) \ X (void , glVertexAttrib4f, (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \ X (void , glVertexAttrib4fv, (GLuint index, const GLfloat *v)) \ X (void , glVertexAttribPointer, (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer)) \ X (void , glViewport, (GLint x, GLint y, GLsizei width, GLsizei height)) #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0 \ X (void , glReadBuffer, (GLenum src)) \ X (void , glDrawRangeElements, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices)) \ X (void , glTexImage3D, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)) \ X (void , glTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)) \ X (void , glCopyTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \ X (void , glCompressedTexImage3D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)) \ X (void , glCompressedTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)) \ X (void , glGenQueries, (GLsizei n, GLuint *ids)) \ X (void , glDeleteQueries, (GLsizei n, const GLuint *ids)) \ X (GLboolean , glIsQuery, (GLuint id)) \ X (void , glBeginQuery, (GLenum target, GLuint id)) \ X (void , glEndQuery, (GLenum target)) \ X (void , glGetQueryiv, (GLenum target, GLenum pname, GLint *params)) \ X (void , glGetQueryObjectuiv, (GLuint id, GLenum pname, GLuint *params)) \ X (GLboolean , glUnmapBuffer, (GLenum target)) \ X (void , glGetBufferPointerv, (GLenum target, GLenum pname, void **params)) \ X (void , glDrawBuffers, (GLsizei n, const GLenum *bufs)) \ X (void , glUniformMatrix2x3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glUniformMatrix3x2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glUniformMatrix2x4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glUniformMatrix4x2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glUniformMatrix3x4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glUniformMatrix4x3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glBlitFramebuffer, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)) \ X (void , glRenderbufferStorageMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) \ X (void , glFramebufferTextureLayer, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)) \ X (void * , glMapBufferRange, (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)) \ X (void , glFlushMappedBufferRange, (GLenum target, GLintptr offset, GLsizeiptr length)) \ X (void , glBindVertexArray, (GLuint array)) \ X (void , glDeleteVertexArrays, (GLsizei n, const GLuint *arrays)) \ X (void , glGenVertexArrays, (GLsizei n, GLuint *arrays)) \ X (GLboolean , glIsVertexArray, (GLuint array)) \ X (void , glGetIntegeri_v, (GLenum target, GLuint index, GLint *data)) \ X (void , glBeginTransformFeedback, (GLenum primitiveMode)) \ X (void , glEndTransformFeedback, ()) \ X (void , glBindBufferRange, (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)) \ X (void , glBindBufferBase, (GLenum target, GLuint index, GLuint buffer)) \ X (void , glTransformFeedbackVaryings, (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode)) \ X (void , glGetTransformFeedbackVarying, (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name)) \ X (void , glVertexAttribIPointer, (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)) \ X (void , glGetVertexAttribIiv, (GLuint index, GLenum pname, GLint *params)) \ X (void , glGetVertexAttribIuiv, (GLuint index, GLenum pname, GLuint *params)) \ X (void , glVertexAttribI4i, (GLuint index, GLint x, GLint y, GLint z, GLint w)) \ X (void , glVertexAttribI4ui, (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)) \ X (void , glVertexAttribI4iv, (GLuint index, const GLint *v)) \ X (void , glVertexAttribI4uiv, (GLuint index, const GLuint *v)) \ X (void , glGetUniformuiv, (GLuint program, GLint location, GLuint *params)) \ X (GLint , glGetFragDataLocation, (GLuint program, const GLchar *name)) \ X (void , glUniform1ui, (GLint location, GLuint v0)) \ X (void , glUniform2ui, (GLint location, GLuint v0, GLuint v1)) \ X (void , glUniform3ui, (GLint location, GLuint v0, GLuint v1, GLuint v2)) \ X (void , glUniform4ui, (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)) \ X (void , glUniform1uiv, (GLint location, GLsizei count, const GLuint *value)) \ X (void , glUniform2uiv, (GLint location, GLsizei count, const GLuint *value)) \ X (void , glUniform3uiv, (GLint location, GLsizei count, const GLuint *value)) \ X (void , glUniform4uiv, (GLint location, GLsizei count, const GLuint *value)) \ X (void , glClearBufferiv, (GLenum buffer, GLint drawbuffer, const GLint *value)) \ X (void , glClearBufferuiv, (GLenum buffer, GLint drawbuffer, const GLuint *value)) \ X (void , glClearBufferfv, (GLenum buffer, GLint drawbuffer, const GLfloat *value)) \ X (void , glClearBufferfi, (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)) \ X (const GLubyte *, glGetStringi, (GLenum name, GLuint index)) \ X (void , glCopyBufferSubData, (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)) \ X (void , glGetUniformIndices, (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices)) \ X (void , glGetActiveUniformsiv, (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params)) \ X (GLuint , glGetUniformBlockIndex, (GLuint program, const GLchar *uniformBlockName)) \ X (void , glGetActiveUniformBlockiv, (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params)) \ X (void , glGetActiveUniformBlockName, (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName)) \ X (void , glUniformBlockBinding, (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding)) \ X (void , glDrawArraysInstanced, (GLenum mode, GLint first, GLsizei count, GLsizei instancecount)) \ X (void , glDrawElementsInstanced, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount)) \ X (GLsync , glFenceSync, (GLenum condition, GLbitfield flags)) \ X (GLboolean , glIsSync, (GLsync sync)) \ X (void , glDeleteSync, (GLsync sync)) \ X (GLenum , glClientWaitSync, (GLsync sync, GLbitfield flags, GLuint64 timeout)) \ X (void , glWaitSync, (GLsync sync, GLbitfield flags, GLuint64 timeout)) \ X (void , glGetInteger64v, (GLenum pname, GLint64 *data)) \ X (void , glGetSynciv, (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values)) \ X (void , glGetInteger64i_v, (GLenum target, GLuint index, GLint64 *data)) \ X (void , glGetBufferParameteri64v, (GLenum target, GLenum pname, GLint64 *params)) \ X (void , glGenSamplers, (GLsizei count, GLuint *samplers)) \ X (void , glDeleteSamplers, (GLsizei count, const GLuint *samplers)) \ X (GLboolean , glIsSampler, (GLuint sampler)) \ X (void , glBindSampler, (GLuint unit, GLuint sampler)) \ X (void , glSamplerParameteri, (GLuint sampler, GLenum pname, GLint param)) \ X (void , glSamplerParameteriv, (GLuint sampler, GLenum pname, const GLint *param)) \ X (void , glSamplerParameterf, (GLuint sampler, GLenum pname, GLfloat param)) \ X (void , glSamplerParameterfv, (GLuint sampler, GLenum pname, const GLfloat *param)) \ X (void , glGetSamplerParameteriv, (GLuint sampler, GLenum pname, GLint *params)) \ X (void , glGetSamplerParameterfv, (GLuint sampler, GLenum pname, GLfloat *params)) \ X (void , glVertexAttribDivisor, (GLuint index, GLuint divisor)) \ X (void , glBindTransformFeedback, (GLenum target, GLuint id)) \ X (void , glDeleteTransformFeedbacks, (GLsizei n, const GLuint *ids)) \ X (void , glGenTransformFeedbacks, (GLsizei n, GLuint *ids)) \ X (GLboolean , glIsTransformFeedback, (GLuint id)) \ X (void , glPauseTransformFeedback, ()) \ X (void , glResumeTransformFeedback, ()) \ X (void , glGetProgramBinary, (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary)) \ X (void , glProgramBinary, (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length)) \ X (void , glProgramParameteri, (GLuint program, GLenum pname, GLint value)) \ X (void , glInvalidateFramebuffer, (GLenum target, GLsizei numAttachments, const GLenum *attachments)) \ X (void , glInvalidateSubFramebuffer, (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height)) \ X (void , glTexStorage2D, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)) \ X (void , glTexStorage3D, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)) \ X (void , glGetInternalformativ, (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params)) #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1 \ X (void , glDispatchCompute, (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)) \ X (void , glDispatchComputeIndirect, (GLintptr indirect)) \ X (void , glDrawArraysIndirect, (GLenum mode, const void *indirect)) \ X (void , glDrawElementsIndirect, (GLenum mode, GLenum type, const void *indirect)) \ X (void , glFramebufferParameteri, (GLenum target, GLenum pname, GLint param)) \ X (void , glGetFramebufferParameteriv, (GLenum target, GLenum pname, GLint *params)) \ X (void , glGetProgramInterfaceiv, (GLuint program, GLenum programInterface, GLenum pname, GLint *params)) \ X (GLuint , glGetProgramResourceIndex, (GLuint program, GLenum programInterface, const GLchar *name)) \ X (void , glGetProgramResourceName, (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name)) \ X (void , glGetProgramResourceiv, (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLint *params)) \ X (GLint , glGetProgramResourceLocation, (GLuint program, GLenum programInterface, const GLchar *name)) \ X (void , glUseProgramStages, (GLuint pipeline, GLbitfield stages, GLuint program)) \ X (void , glActiveShaderProgram, (GLuint pipeline, GLuint program)) \ X (GLuint , glCreateShaderProgramv, (GLenum type, GLsizei count, const GLchar *const*strings)) \ X (void , glBindProgramPipeline, (GLuint pipeline)) \ X (void , glDeleteProgramPipelines, (GLsizei n, const GLuint *pipelines)) \ X (void , glGenProgramPipelines, (GLsizei n, GLuint *pipelines)) \ X (GLboolean , glIsProgramPipeline, (GLuint pipeline)) \ X (void , glGetProgramPipelineiv, (GLuint pipeline, GLenum pname, GLint *params)) \ X (void , glProgramUniform1i, (GLuint program, GLint location, GLint v0)) \ X (void , glProgramUniform2i, (GLuint program, GLint location, GLint v0, GLint v1)) \ X (void , glProgramUniform3i, (GLuint program, GLint location, GLint v0, GLint v1, GLint v2)) \ X (void , glProgramUniform4i, (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)) \ X (void , glProgramUniform1ui, (GLuint program, GLint location, GLuint v0)) \ X (void , glProgramUniform2ui, (GLuint program, GLint location, GLuint v0, GLuint v1)) \ X (void , glProgramUniform3ui, (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)) \ X (void , glProgramUniform4ui, (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)) \ X (void , glProgramUniform1f, (GLuint program, GLint location, GLfloat v0)) \ X (void , glProgramUniform2f, (GLuint program, GLint location, GLfloat v0, GLfloat v1)) \ X (void , glProgramUniform3f, (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)) \ X (void , glProgramUniform4f, (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)) \ X (void , glProgramUniform1iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ X (void , glProgramUniform2iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ X (void , glProgramUniform3iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ X (void , glProgramUniform4iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ X (void , glProgramUniform1uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ X (void , glProgramUniform2uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ X (void , glProgramUniform3uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ X (void , glProgramUniform4uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ X (void , glProgramUniform1fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ X (void , glProgramUniform2fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ X (void , glProgramUniform3fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ X (void , glProgramUniform4fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ X (void , glProgramUniformMatrix2fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glProgramUniformMatrix3fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glProgramUniformMatrix4fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glProgramUniformMatrix2x3fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glProgramUniformMatrix3x2fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glProgramUniformMatrix2x4fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glProgramUniformMatrix4x2fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glProgramUniformMatrix3x4fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glProgramUniformMatrix4x3fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glValidateProgramPipeline, (GLuint pipeline)) \ X (void , glGetProgramPipelineInfoLog, (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \ X (void , glBindImageTexture, (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)) \ X (void , glGetBooleani_v, (GLenum target, GLuint index, GLboolean *data)) \ X (void , glMemoryBarrier, (GLbitfield barriers)) \ X (void , glMemoryBarrierByRegion, (GLbitfield barriers)) \ X (void , glTexStorage2DMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)) \ X (void , glGetMultisamplefv, (GLenum pname, GLuint index, GLfloat *val)) \ X (void , glSampleMaski, (GLuint maskNumber, GLbitfield mask)) \ X (void , glGetTexLevelParameteriv, (GLenum target, GLint level, GLenum pname, GLint *params)) \ X (void , glGetTexLevelParameterfv, (GLenum target, GLint level, GLenum pname, GLfloat *params)) \ X (void , glBindVertexBuffer, (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)) \ X (void , glVertexAttribFormat, (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)) \ X (void , glVertexAttribIFormat, (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)) \ X (void , glVertexAttribBinding, (GLuint attribindex, GLuint bindingindex)) \ X (void , glVertexBindingDivisor, (GLuint bindingindex, GLuint divisor)) #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2 \ X (void , glBlendBarrier, ()) \ X (void , glCopyImageSubData, (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)) \ X (void , glDebugMessageControl, (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled)) \ X (void , glDebugMessageInsert, (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf)) \ X (void , glDebugMessageCallback, (GLDEBUGPROC callback, const void *userParam)) \ X (GLuint , glGetDebugMessageLog, (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog)) \ X (void , glPushDebugGroup, (GLenum source, GLuint id, GLsizei length, const GLchar *message)) \ X (void , glPopDebugGroup, ()) \ X (void , glObjectLabel, (GLenum identifier, GLuint name, GLsizei length, const GLchar *label)) \ X (void , glGetObjectLabel, (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label)) \ X (void , glObjectPtrLabel, (const void *ptr, GLsizei length, const GLchar *label)) \ X (void , glGetObjectPtrLabel, (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label)) \ X (void , glGetPointerv, (GLenum pname, void **params)) \ X (void , glEnablei, (GLenum target, GLuint index)) \ X (void , glDisablei, (GLenum target, GLuint index)) \ X (void , glBlendEquationi, (GLuint buf, GLenum mode)) \ X (void , glBlendEquationSeparatei, (GLuint buf, GLenum modeRGB, GLenum modeAlpha)) \ X (void , glBlendFunci, (GLuint buf, GLenum src, GLenum dst)) \ X (void , glBlendFuncSeparatei, (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)) \ X (void , glColorMaski, (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)) \ X (GLboolean , glIsEnabledi, (GLenum target, GLuint index)) \ X (void , glDrawElementsBaseVertex, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \ X (void , glDrawRangeElementsBaseVertex, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \ X (void , glDrawElementsInstancedBaseVertex, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex)) \ X (void , glFramebufferTexture, (GLenum target, GLenum attachment, GLuint texture, GLint level)) \ X (void , glPrimitiveBoundingBox, (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW)) \ X (GLenum , glGetGraphicsResetStatus, ()) \ X (void , glReadnPixels, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data)) \ X (void , glGetnUniformfv, (GLuint program, GLint location, GLsizei bufSize, GLfloat *params)) \ X (void , glGetnUniformiv, (GLuint program, GLint location, GLsizei bufSize, GLint *params)) \ X (void , glGetnUniformuiv, (GLuint program, GLint location, GLsizei bufSize, GLuint *params)) \ X (void , glMinSampleShading, (GLfloat value)) \ X (void , glPatchParameteri, (GLenum pname, GLint value)) \ X (void , glTexParameterIiv, (GLenum target, GLenum pname, const GLint *params)) \ X (void , glTexParameterIuiv, (GLenum target, GLenum pname, const GLuint *params)) \ X (void , glGetTexParameterIiv, (GLenum target, GLenum pname, GLint *params)) \ X (void , glGetTexParameterIuiv, (GLenum target, GLenum pname, GLuint *params)) \ X (void , glSamplerParameterIiv, (GLuint sampler, GLenum pname, const GLint *param)) \ X (void , glSamplerParameterIuiv, (GLuint sampler, GLenum pname, const GLuint *param)) \ X (void , glGetSamplerParameterIiv, (GLuint sampler, GLenum pname, GLint *params)) \ X (void , glGetSamplerParameterIuiv, (GLuint sampler, GLenum pname, GLuint *params)) \ X (void , glTexBuffer, (GLenum target, GLenum internalformat, GLuint buffer)) \ X (void , glTexBufferRange, (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)) \ X (void , glTexStorage3DMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)) #define JUCE_GL_FUNCTIONS_GL_AMD_framebuffer_multisample_advanced \ X (void , glRenderbufferStorageMultisampleAdvancedAMD, (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height)) \ X (void , glNamedRenderbufferStorageMultisampleAdvancedAMD, (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height)) #define JUCE_GL_FUNCTIONS_GL_AMD_performance_monitor \ X (void , glGetPerfMonitorGroupsAMD, (GLint *numGroups, GLsizei groupsSize, GLuint *groups)) \ X (void , glGetPerfMonitorCountersAMD, (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters)) \ X (void , glGetPerfMonitorGroupStringAMD, (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString)) \ X (void , glGetPerfMonitorCounterStringAMD, (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString)) \ X (void , glGetPerfMonitorCounterInfoAMD, (GLuint group, GLuint counter, GLenum pname, void *data)) \ X (void , glGenPerfMonitorsAMD, (GLsizei n, GLuint *monitors)) \ X (void , glDeletePerfMonitorsAMD, (GLsizei n, GLuint *monitors)) \ X (void , glSelectPerfMonitorCountersAMD, (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList)) \ X (void , glBeginPerfMonitorAMD, (GLuint monitor)) \ X (void , glEndPerfMonitorAMD, (GLuint monitor)) \ X (void , glGetPerfMonitorCounterDataAMD, (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten)) #define JUCE_GL_FUNCTIONS_GL_ANGLE_framebuffer_blit \ X (void , glBlitFramebufferANGLE, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)) #define JUCE_GL_FUNCTIONS_GL_ANGLE_framebuffer_multisample \ X (void , glRenderbufferStorageMultisampleANGLE, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) #define JUCE_GL_FUNCTIONS_GL_ANGLE_instanced_arrays \ X (void , glDrawArraysInstancedANGLE, (GLenum mode, GLint first, GLsizei count, GLsizei primcount)) \ X (void , glDrawElementsInstancedANGLE, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount)) \ X (void , glVertexAttribDivisorANGLE, (GLuint index, GLuint divisor)) #define JUCE_GL_FUNCTIONS_GL_ANGLE_translated_shader_source \ X (void , glGetTranslatedShaderSourceANGLE, (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source)) #define JUCE_GL_FUNCTIONS_GL_APPLE_copy_texture_levels \ X (void , glCopyTextureLevelsAPPLE, (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount)) #define JUCE_GL_FUNCTIONS_GL_APPLE_framebuffer_multisample \ X (void , glRenderbufferStorageMultisampleAPPLE, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) \ X (void , glResolveMultisampleFramebufferAPPLE, ()) #define JUCE_GL_FUNCTIONS_GL_APPLE_sync \ X (GLsync , glFenceSyncAPPLE, (GLenum condition, GLbitfield flags)) \ X (GLboolean , glIsSyncAPPLE, (GLsync sync)) \ X (void , glDeleteSyncAPPLE, (GLsync sync)) \ X (GLenum , glClientWaitSyncAPPLE, (GLsync sync, GLbitfield flags, GLuint64 timeout)) \ X (void , glWaitSyncAPPLE, (GLsync sync, GLbitfield flags, GLuint64 timeout)) \ X (void , glGetInteger64vAPPLE, (GLenum pname, GLint64 *params)) \ X (void , glGetSyncivAPPLE, (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values)) #define JUCE_GL_FUNCTIONS_GL_EXT_EGL_image_storage \ X (void , glEGLImageTargetTexStorageEXT, (GLenum target, GLeglImageOES image, const GLint* attrib_list)) \ X (void , glEGLImageTargetTextureStorageEXT, (GLuint texture, GLeglImageOES image, const GLint* attrib_list)) #define JUCE_GL_FUNCTIONS_GL_EXT_base_instance \ X (void , glDrawArraysInstancedBaseInstanceEXT, (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance)) \ X (void , glDrawElementsInstancedBaseInstanceEXT, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance)) \ X (void , glDrawElementsInstancedBaseVertexBaseInstanceEXT, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance)) #define JUCE_GL_FUNCTIONS_GL_EXT_blend_func_extended \ X (void , glBindFragDataLocationIndexedEXT, (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name)) \ X (void , glBindFragDataLocationEXT, (GLuint program, GLuint color, const GLchar *name)) \ X (GLint , glGetProgramResourceLocationIndexEXT, (GLuint program, GLenum programInterface, const GLchar *name)) \ X (GLint , glGetFragDataIndexEXT, (GLuint program, const GLchar *name)) #define JUCE_GL_FUNCTIONS_GL_EXT_blend_minmax \ X (void , glBlendEquationEXT, (GLenum mode)) #define JUCE_GL_FUNCTIONS_GL_EXT_buffer_storage \ X (void , glBufferStorageEXT, (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags)) #define JUCE_GL_FUNCTIONS_GL_EXT_clear_texture \ X (void , glClearTexImageEXT, (GLuint texture, GLint level, GLenum format, GLenum type, const void *data)) \ X (void , glClearTexSubImageEXT, (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data)) #define JUCE_GL_FUNCTIONS_GL_EXT_clip_control \ X (void , glClipControlEXT, (GLenum origin, GLenum depth)) #define JUCE_GL_FUNCTIONS_GL_EXT_copy_image \ X (void , glCopyImageSubDataEXT, (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)) #define JUCE_GL_FUNCTIONS_GL_EXT_debug_label \ X (void , glLabelObjectEXT, (GLenum type, GLuint object, GLsizei length, const GLchar *label)) \ X (void , glGetObjectLabelEXT, (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label)) #define JUCE_GL_FUNCTIONS_GL_EXT_debug_marker \ X (void , glInsertEventMarkerEXT, (GLsizei length, const GLchar *marker)) \ X (void , glPushGroupMarkerEXT, (GLsizei length, const GLchar *marker)) \ X (void , glPopGroupMarkerEXT, ()) #define JUCE_GL_FUNCTIONS_GL_EXT_discard_framebuffer \ X (void , glDiscardFramebufferEXT, (GLenum target, GLsizei numAttachments, const GLenum *attachments)) #define JUCE_GL_FUNCTIONS_GL_EXT_disjoint_timer_query \ X (void , glGenQueriesEXT, (GLsizei n, GLuint *ids)) \ X (void , glDeleteQueriesEXT, (GLsizei n, const GLuint *ids)) \ X (GLboolean , glIsQueryEXT, (GLuint id)) \ X (void , glBeginQueryEXT, (GLenum target, GLuint id)) \ X (void , glEndQueryEXT, (GLenum target)) \ X (void , glQueryCounterEXT, (GLuint id, GLenum target)) \ X (void , glGetQueryivEXT, (GLenum target, GLenum pname, GLint *params)) \ X (void , glGetQueryObjectivEXT, (GLuint id, GLenum pname, GLint *params)) \ X (void , glGetQueryObjectuivEXT, (GLuint id, GLenum pname, GLuint *params)) \ X (void , glGetQueryObjecti64vEXT, (GLuint id, GLenum pname, GLint64 *params)) \ X (void , glGetQueryObjectui64vEXT, (GLuint id, GLenum pname, GLuint64 *params)) \ X (void , glGetInteger64vEXT, (GLenum pname, GLint64 *data)) #define JUCE_GL_FUNCTIONS_GL_EXT_draw_buffers \ X (void , glDrawBuffersEXT, (GLsizei n, const GLenum *bufs)) #define JUCE_GL_FUNCTIONS_GL_EXT_draw_buffers_indexed \ X (void , glEnableiEXT, (GLenum target, GLuint index)) \ X (void , glDisableiEXT, (GLenum target, GLuint index)) \ X (void , glBlendEquationiEXT, (GLuint buf, GLenum mode)) \ X (void , glBlendEquationSeparateiEXT, (GLuint buf, GLenum modeRGB, GLenum modeAlpha)) \ X (void , glBlendFunciEXT, (GLuint buf, GLenum src, GLenum dst)) \ X (void , glBlendFuncSeparateiEXT, (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)) \ X (void , glColorMaskiEXT, (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)) \ X (GLboolean , glIsEnablediEXT, (GLenum target, GLuint index)) #define JUCE_GL_FUNCTIONS_GL_EXT_draw_elements_base_vertex \ X (void , glDrawElementsBaseVertexEXT, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \ X (void , glDrawRangeElementsBaseVertexEXT, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \ X (void , glDrawElementsInstancedBaseVertexEXT, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex)) \ X (void , glMultiDrawElementsBaseVertexEXT, (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex)) #define JUCE_GL_FUNCTIONS_GL_EXT_draw_instanced \ X (void , glDrawArraysInstancedEXT, (GLenum mode, GLint start, GLsizei count, GLsizei primcount)) \ X (void , glDrawElementsInstancedEXT, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount)) #define JUCE_GL_FUNCTIONS_GL_EXT_draw_transform_feedback \ X (void , glDrawTransformFeedbackEXT, (GLenum mode, GLuint id)) \ X (void , glDrawTransformFeedbackInstancedEXT, (GLenum mode, GLuint id, GLsizei instancecount)) #define JUCE_GL_FUNCTIONS_GL_EXT_external_buffer \ X (void , glBufferStorageExternalEXT, (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags)) \ X (void , glNamedBufferStorageExternalEXT, (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags)) #define JUCE_GL_FUNCTIONS_GL_EXT_geometry_shader \ X (void , glFramebufferTextureEXT, (GLenum target, GLenum attachment, GLuint texture, GLint level)) #define JUCE_GL_FUNCTIONS_GL_EXT_instanced_arrays \ X (void , glVertexAttribDivisorEXT, (GLuint index, GLuint divisor)) #define JUCE_GL_FUNCTIONS_GL_EXT_map_buffer_range \ X (void * , glMapBufferRangeEXT, (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)) \ X (void , glFlushMappedBufferRangeEXT, (GLenum target, GLintptr offset, GLsizeiptr length)) #define JUCE_GL_FUNCTIONS_GL_EXT_memory_object \ X (void , glGetUnsignedBytevEXT, (GLenum pname, GLubyte *data)) \ X (void , glGetUnsignedBytei_vEXT, (GLenum target, GLuint index, GLubyte *data)) \ X (void , glDeleteMemoryObjectsEXT, (GLsizei n, const GLuint *memoryObjects)) \ X (GLboolean , glIsMemoryObjectEXT, (GLuint memoryObject)) \ X (void , glCreateMemoryObjectsEXT, (GLsizei n, GLuint *memoryObjects)) \ X (void , glMemoryObjectParameterivEXT, (GLuint memoryObject, GLenum pname, const GLint *params)) \ X (void , glGetMemoryObjectParameterivEXT, (GLuint memoryObject, GLenum pname, GLint *params)) \ X (void , glTexStorageMem2DEXT, (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset)) \ X (void , glTexStorageMem2DMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)) \ X (void , glTexStorageMem3DEXT, (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset)) \ X (void , glTexStorageMem3DMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)) \ X (void , glBufferStorageMemEXT, (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset)) \ X (void , glTextureStorageMem2DEXT, (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset)) \ X (void , glTextureStorageMem2DMultisampleEXT, (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)) \ X (void , glTextureStorageMem3DEXT, (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset)) \ X (void , glTextureStorageMem3DMultisampleEXT, (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)) \ X (void , glNamedBufferStorageMemEXT, (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset)) \ X (void , glTexStorageMem1DEXT, (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset)) \ X (void , glTextureStorageMem1DEXT, (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset)) #define JUCE_GL_FUNCTIONS_GL_EXT_memory_object_fd \ X (void , glImportMemoryFdEXT, (GLuint memory, GLuint64 size, GLenum handleType, GLint fd)) #define JUCE_GL_FUNCTIONS_GL_EXT_memory_object_win32 \ X (void , glImportMemoryWin32HandleEXT, (GLuint memory, GLuint64 size, GLenum handleType, void *handle)) \ X (void , glImportMemoryWin32NameEXT, (GLuint memory, GLuint64 size, GLenum handleType, const void *name)) #define JUCE_GL_FUNCTIONS_GL_EXT_multi_draw_arrays \ X (void , glMultiDrawArraysEXT, (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount)) \ X (void , glMultiDrawElementsEXT, (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount)) #define JUCE_GL_FUNCTIONS_GL_EXT_multi_draw_indirect \ X (void , glMultiDrawArraysIndirectEXT, (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride)) \ X (void , glMultiDrawElementsIndirectEXT, (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride)) #define JUCE_GL_FUNCTIONS_GL_EXT_multisampled_render_to_texture \ X (void , glRenderbufferStorageMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) \ X (void , glFramebufferTexture2DMultisampleEXT, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)) #define JUCE_GL_FUNCTIONS_GL_EXT_multiview_draw_buffers \ X (void , glReadBufferIndexedEXT, (GLenum src, GLint index)) \ X (void , glDrawBuffersIndexedEXT, (GLint n, const GLenum *location, const GLint *indices)) \ X (void , glGetIntegeri_vEXT, (GLenum target, GLuint index, GLint *data)) #define JUCE_GL_FUNCTIONS_GL_EXT_polygon_offset_clamp \ X (void , glPolygonOffsetClampEXT, (GLfloat factor, GLfloat units, GLfloat clamp)) #define JUCE_GL_FUNCTIONS_GL_EXT_primitive_bounding_box \ X (void , glPrimitiveBoundingBoxEXT, (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW)) #define JUCE_GL_FUNCTIONS_GL_EXT_raster_multisample \ X (void , glRasterSamplesEXT, (GLuint samples, GLboolean fixedsamplelocations)) #define JUCE_GL_FUNCTIONS_GL_EXT_robustness \ X (GLenum , glGetGraphicsResetStatusEXT, ()) \ X (void , glReadnPixelsEXT, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data)) \ X (void , glGetnUniformfvEXT, (GLuint program, GLint location, GLsizei bufSize, GLfloat *params)) \ X (void , glGetnUniformivEXT, (GLuint program, GLint location, GLsizei bufSize, GLint *params)) #define JUCE_GL_FUNCTIONS_GL_EXT_semaphore \ X (void , glGenSemaphoresEXT, (GLsizei n, GLuint *semaphores)) \ X (void , glDeleteSemaphoresEXT, (GLsizei n, const GLuint *semaphores)) \ X (GLboolean , glIsSemaphoreEXT, (GLuint semaphore)) \ X (void , glSemaphoreParameterui64vEXT, (GLuint semaphore, GLenum pname, const GLuint64 *params)) \ X (void , glGetSemaphoreParameterui64vEXT, (GLuint semaphore, GLenum pname, GLuint64 *params)) \ X (void , glWaitSemaphoreEXT, (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts)) \ X (void , glSignalSemaphoreEXT, (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts)) #define JUCE_GL_FUNCTIONS_GL_EXT_semaphore_fd \ X (void , glImportSemaphoreFdEXT, (GLuint semaphore, GLenum handleType, GLint fd)) #define JUCE_GL_FUNCTIONS_GL_EXT_semaphore_win32 \ X (void , glImportSemaphoreWin32HandleEXT, (GLuint semaphore, GLenum handleType, void *handle)) \ X (void , glImportSemaphoreWin32NameEXT, (GLuint semaphore, GLenum handleType, const void *name)) #define JUCE_GL_FUNCTIONS_GL_EXT_separate_shader_objects \ X (void , glUseShaderProgramEXT, (GLenum type, GLuint program)) \ X (void , glActiveProgramEXT, (GLuint program)) \ X (GLuint , glCreateShaderProgramEXT, (GLenum type, const GLchar *string)) \ X (void , glActiveShaderProgramEXT, (GLuint pipeline, GLuint program)) \ X (void , glBindProgramPipelineEXT, (GLuint pipeline)) \ X (GLuint , glCreateShaderProgramvEXT, (GLenum type, GLsizei count, const GLchar **strings)) \ X (void , glDeleteProgramPipelinesEXT, (GLsizei n, const GLuint *pipelines)) \ X (void , glGenProgramPipelinesEXT, (GLsizei n, GLuint *pipelines)) \ X (void , glGetProgramPipelineInfoLogEXT, (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \ X (void , glGetProgramPipelineivEXT, (GLuint pipeline, GLenum pname, GLint *params)) \ X (GLboolean , glIsProgramPipelineEXT, (GLuint pipeline)) \ X (void , glProgramParameteriEXT, (GLuint program, GLenum pname, GLint value)) \ X (void , glProgramUniform1fEXT, (GLuint program, GLint location, GLfloat v0)) \ X (void , glProgramUniform1fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ X (void , glProgramUniform1iEXT, (GLuint program, GLint location, GLint v0)) \ X (void , glProgramUniform1ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ X (void , glProgramUniform2fEXT, (GLuint program, GLint location, GLfloat v0, GLfloat v1)) \ X (void , glProgramUniform2fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ X (void , glProgramUniform2iEXT, (GLuint program, GLint location, GLint v0, GLint v1)) \ X (void , glProgramUniform2ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ X (void , glProgramUniform3fEXT, (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)) \ X (void , glProgramUniform3fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ X (void , glProgramUniform3iEXT, (GLuint program, GLint location, GLint v0, GLint v1, GLint v2)) \ X (void , glProgramUniform3ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ X (void , glProgramUniform4fEXT, (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)) \ X (void , glProgramUniform4fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \ X (void , glProgramUniform4iEXT, (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)) \ X (void , glProgramUniform4ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value)) \ X (void , glProgramUniformMatrix2fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glProgramUniformMatrix3fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glProgramUniformMatrix4fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glUseProgramStagesEXT, (GLuint pipeline, GLbitfield stages, GLuint program)) \ X (void , glValidateProgramPipelineEXT, (GLuint pipeline)) \ X (void , glProgramUniform1uiEXT, (GLuint program, GLint location, GLuint v0)) \ X (void , glProgramUniform2uiEXT, (GLuint program, GLint location, GLuint v0, GLuint v1)) \ X (void , glProgramUniform3uiEXT, (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)) \ X (void , glProgramUniform4uiEXT, (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)) \ X (void , glProgramUniform1uivEXT, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ X (void , glProgramUniform2uivEXT, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ X (void , glProgramUniform3uivEXT, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ X (void , glProgramUniform4uivEXT, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \ X (void , glProgramUniformMatrix2x3fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glProgramUniformMatrix3x2fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glProgramUniformMatrix2x4fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glProgramUniformMatrix4x2fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glProgramUniformMatrix3x4fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glProgramUniformMatrix4x3fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) #define JUCE_GL_FUNCTIONS_GL_EXT_shader_framebuffer_fetch_non_coherent \ X (void , glFramebufferFetchBarrierEXT, ()) #define JUCE_GL_FUNCTIONS_GL_EXT_shader_pixel_local_storage2 \ X (void , glFramebufferPixelLocalStorageSizeEXT, (GLuint target, GLsizei size)) \ X (GLsizei , glGetFramebufferPixelLocalStorageSizeEXT, (GLuint target)) \ X (void , glClearPixelLocalStorageuiEXT, (GLsizei offset, GLsizei n, const GLuint *values)) #define JUCE_GL_FUNCTIONS_GL_EXT_sparse_texture \ X (void , glTexPageCommitmentEXT, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit)) #define JUCE_GL_FUNCTIONS_GL_EXT_tessellation_shader \ X (void , glPatchParameteriEXT, (GLenum pname, GLint value)) #define JUCE_GL_FUNCTIONS_GL_EXT_texture_border_clamp \ X (void , glTexParameterIivEXT, (GLenum target, GLenum pname, const GLint *params)) \ X (void , glTexParameterIuivEXT, (GLenum target, GLenum pname, const GLuint *params)) \ X (void , glGetTexParameterIivEXT, (GLenum target, GLenum pname, GLint *params)) \ X (void , glGetTexParameterIuivEXT, (GLenum target, GLenum pname, GLuint *params)) \ X (void , glSamplerParameterIivEXT, (GLuint sampler, GLenum pname, const GLint *param)) \ X (void , glSamplerParameterIuivEXT, (GLuint sampler, GLenum pname, const GLuint *param)) \ X (void , glGetSamplerParameterIivEXT, (GLuint sampler, GLenum pname, GLint *params)) \ X (void , glGetSamplerParameterIuivEXT, (GLuint sampler, GLenum pname, GLuint *params)) #define JUCE_GL_FUNCTIONS_GL_EXT_texture_buffer \ X (void , glTexBufferEXT, (GLenum target, GLenum internalformat, GLuint buffer)) \ X (void , glTexBufferRangeEXT, (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)) #define JUCE_GL_FUNCTIONS_GL_EXT_texture_storage \ X (void , glTexStorage1DEXT, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)) \ X (void , glTexStorage2DEXT, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)) \ X (void , glTexStorage3DEXT, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)) \ X (void , glTextureStorage1DEXT, (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)) \ X (void , glTextureStorage2DEXT, (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)) \ X (void , glTextureStorage3DEXT, (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)) #define JUCE_GL_FUNCTIONS_GL_EXT_texture_view \ X (void , glTextureViewEXT, (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers)) #define JUCE_GL_FUNCTIONS_GL_NV_timeline_semaphore \ X (void , glCreateSemaphoresNV, (GLsizei n, GLuint *semaphores)) \ X (void , glSemaphoreParameterivNV, (GLuint semaphore, GLenum pname, const GLint *params)) \ X (void , glGetSemaphoreParameterivNV, (GLuint semaphore, GLenum pname, GLint *params)) #define JUCE_GL_FUNCTIONS_GL_EXT_win32_keyed_mutex \ X (GLboolean , glAcquireKeyedMutexWin32EXT, (GLuint memory, GLuint64 key, GLuint timeout)) \ X (GLboolean , glReleaseKeyedMutexWin32EXT, (GLuint memory, GLuint64 key)) #define JUCE_GL_FUNCTIONS_GL_EXT_window_rectangles \ X (void , glWindowRectanglesEXT, (GLenum mode, GLsizei count, const GLint *box)) #define JUCE_GL_FUNCTIONS_GL_IMG_bindless_texture \ X (GLuint64 , glGetTextureHandleIMG, (GLuint texture)) \ X (GLuint64 , glGetTextureSamplerHandleIMG, (GLuint texture, GLuint sampler)) \ X (void , glUniformHandleui64IMG, (GLint location, GLuint64 value)) \ X (void , glUniformHandleui64vIMG, (GLint location, GLsizei count, const GLuint64 *value)) \ X (void , glProgramUniformHandleui64IMG, (GLuint program, GLint location, GLuint64 value)) \ X (void , glProgramUniformHandleui64vIMG, (GLuint program, GLint location, GLsizei count, const GLuint64 *values)) #define JUCE_GL_FUNCTIONS_GL_IMG_framebuffer_downsample \ X (void , glFramebufferTexture2DDownsampleIMG, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale)) \ X (void , glFramebufferTextureLayerDownsampleIMG, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale)) #define JUCE_GL_FUNCTIONS_GL_IMG_multisampled_render_to_texture \ X (void , glRenderbufferStorageMultisampleIMG, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) \ X (void , glFramebufferTexture2DMultisampleIMG, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)) #define JUCE_GL_FUNCTIONS_GL_INTEL_framebuffer_CMAA \ X (void , glApplyFramebufferAttachmentCMAAINTEL, ()) #define JUCE_GL_FUNCTIONS_GL_INTEL_performance_query \ X (void , glBeginPerfQueryINTEL, (GLuint queryHandle)) \ X (void , glCreatePerfQueryINTEL, (GLuint queryId, GLuint *queryHandle)) \ X (void , glDeletePerfQueryINTEL, (GLuint queryHandle)) \ X (void , glEndPerfQueryINTEL, (GLuint queryHandle)) \ X (void , glGetFirstPerfQueryIdINTEL, (GLuint *queryId)) \ X (void , glGetNextPerfQueryIdINTEL, (GLuint queryId, GLuint *nextQueryId)) \ X (void , glGetPerfCounterInfoINTEL, (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue)) \ X (void , glGetPerfQueryDataINTEL, (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten)) \ X (void , glGetPerfQueryIdByNameINTEL, (GLchar *queryName, GLuint *queryId)) \ X (void , glGetPerfQueryInfoINTEL, (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask)) #define JUCE_GL_FUNCTIONS_GL_KHR_blend_equation_advanced \ X (void , glBlendBarrierKHR, ()) #define JUCE_GL_FUNCTIONS_GL_KHR_debug \ X (void , glDebugMessageControlKHR, (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled)) \ X (void , glDebugMessageInsertKHR, (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf)) \ X (void , glDebugMessageCallbackKHR, (GLDEBUGPROCKHR callback, const void *userParam)) \ X (GLuint , glGetDebugMessageLogKHR, (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog)) \ X (void , glPushDebugGroupKHR, (GLenum source, GLuint id, GLsizei length, const GLchar *message)) \ X (void , glPopDebugGroupKHR, ()) \ X (void , glObjectLabelKHR, (GLenum identifier, GLuint name, GLsizei length, const GLchar *label)) \ X (void , glGetObjectLabelKHR, (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label)) \ X (void , glObjectPtrLabelKHR, (const void *ptr, GLsizei length, const GLchar *label)) \ X (void , glGetObjectPtrLabelKHR, (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label)) \ X (void , glGetPointervKHR, (GLenum pname, void **params)) #define JUCE_GL_FUNCTIONS_GL_KHR_robustness \ X (GLenum , glGetGraphicsResetStatusKHR, ()) \ X (void , glReadnPixelsKHR, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data)) \ X (void , glGetnUniformfvKHR, (GLuint program, GLint location, GLsizei bufSize, GLfloat *params)) \ X (void , glGetnUniformivKHR, (GLuint program, GLint location, GLsizei bufSize, GLint *params)) \ X (void , glGetnUniformuivKHR, (GLuint program, GLint location, GLsizei bufSize, GLuint *params)) #define JUCE_GL_FUNCTIONS_GL_KHR_parallel_shader_compile \ X (void , glMaxShaderCompilerThreadsKHR, (GLuint count)) #define JUCE_GL_FUNCTIONS_GL_MESA_framebuffer_flip_y \ X (void , glFramebufferParameteriMESA, (GLenum target, GLenum pname, GLint param)) \ X (void , glGetFramebufferParameterivMESA, (GLenum target, GLenum pname, GLint *params)) #define JUCE_GL_FUNCTIONS_GL_NV_bindless_texture \ X (GLuint64 , glGetTextureHandleNV, (GLuint texture)) \ X (GLuint64 , glGetTextureSamplerHandleNV, (GLuint texture, GLuint sampler)) \ X (void , glMakeTextureHandleResidentNV, (GLuint64 handle)) \ X (void , glMakeTextureHandleNonResidentNV, (GLuint64 handle)) \ X (GLuint64 , glGetImageHandleNV, (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format)) \ X (void , glMakeImageHandleResidentNV, (GLuint64 handle, GLenum access)) \ X (void , glMakeImageHandleNonResidentNV, (GLuint64 handle)) \ X (void , glUniformHandleui64NV, (GLint location, GLuint64 value)) \ X (void , glUniformHandleui64vNV, (GLint location, GLsizei count, const GLuint64 *value)) \ X (void , glProgramUniformHandleui64NV, (GLuint program, GLint location, GLuint64 value)) \ X (void , glProgramUniformHandleui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64 *values)) \ X (GLboolean , glIsTextureHandleResidentNV, (GLuint64 handle)) \ X (GLboolean , glIsImageHandleResidentNV, (GLuint64 handle)) #define JUCE_GL_FUNCTIONS_GL_NV_blend_equation_advanced \ X (void , glBlendParameteriNV, (GLenum pname, GLint value)) \ X (void , glBlendBarrierNV, ()) #define JUCE_GL_FUNCTIONS_GL_NV_clip_space_w_scaling \ X (void , glViewportPositionWScaleNV, (GLuint index, GLfloat xcoeff, GLfloat ycoeff)) #define JUCE_GL_FUNCTIONS_GL_NV_conditional_render \ X (void , glBeginConditionalRenderNV, (GLuint id, GLenum mode)) \ X (void , glEndConditionalRenderNV, ()) #define JUCE_GL_FUNCTIONS_GL_NV_conservative_raster \ X (void , glSubpixelPrecisionBiasNV, (GLuint xbits, GLuint ybits)) #define JUCE_GL_FUNCTIONS_GL_NV_conservative_raster_pre_snap_triangles \ X (void , glConservativeRasterParameteriNV, (GLenum pname, GLint param)) #define JUCE_GL_FUNCTIONS_GL_NV_copy_buffer \ X (void , glCopyBufferSubDataNV, (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)) #define JUCE_GL_FUNCTIONS_GL_NV_coverage_sample \ X (void , glCoverageMaskNV, (GLboolean mask)) \ X (void , glCoverageOperationNV, (GLenum operation)) #define JUCE_GL_FUNCTIONS_GL_NV_draw_buffers \ X (void , glDrawBuffersNV, (GLsizei n, const GLenum *bufs)) #define JUCE_GL_FUNCTIONS_GL_NV_draw_instanced \ X (void , glDrawArraysInstancedNV, (GLenum mode, GLint first, GLsizei count, GLsizei primcount)) \ X (void , glDrawElementsInstancedNV, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount)) #define JUCE_GL_FUNCTIONS_GL_NV_draw_vulkan_image \ X (void , glDrawVkImageNV, (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1)) \ X (GLVULKANPROCNV, glGetVkProcAddrNV, (const GLchar *name)) \ X (void , glWaitVkSemaphoreNV, (GLuint64 vkSemaphore)) \ X (void , glSignalVkSemaphoreNV, (GLuint64 vkSemaphore)) \ X (void , glSignalVkFenceNV, (GLuint64 vkFence)) #define JUCE_GL_FUNCTIONS_GL_NV_fence \ X (void , glDeleteFencesNV, (GLsizei n, const GLuint *fences)) \ X (void , glGenFencesNV, (GLsizei n, GLuint *fences)) \ X (GLboolean , glIsFenceNV, (GLuint fence)) \ X (GLboolean , glTestFenceNV, (GLuint fence)) \ X (void , glGetFenceivNV, (GLuint fence, GLenum pname, GLint *params)) \ X (void , glFinishFenceNV, (GLuint fence)) \ X (void , glSetFenceNV, (GLuint fence, GLenum condition)) #define JUCE_GL_FUNCTIONS_GL_NV_fragment_coverage_to_color \ X (void , glFragmentCoverageColorNV, (GLuint color)) #define JUCE_GL_FUNCTIONS_GL_NV_framebuffer_blit \ X (void , glBlitFramebufferNV, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)) #define JUCE_GL_FUNCTIONS_GL_NV_framebuffer_mixed_samples \ X (void , glCoverageModulationTableNV, (GLsizei n, const GLfloat *v)) \ X (void , glGetCoverageModulationTableNV, (GLsizei bufSize, GLfloat *v)) \ X (void , glCoverageModulationNV, (GLenum components)) #define JUCE_GL_FUNCTIONS_GL_NV_framebuffer_multisample \ X (void , glRenderbufferStorageMultisampleNV, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) #define JUCE_GL_FUNCTIONS_GL_NV_gpu_shader5 \ X (void , glUniform1i64NV, (GLint location, GLint64EXT x)) \ X (void , glUniform2i64NV, (GLint location, GLint64EXT x, GLint64EXT y)) \ X (void , glUniform3i64NV, (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z)) \ X (void , glUniform4i64NV, (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w)) \ X (void , glUniform1i64vNV, (GLint location, GLsizei count, const GLint64EXT *value)) \ X (void , glUniform2i64vNV, (GLint location, GLsizei count, const GLint64EXT *value)) \ X (void , glUniform3i64vNV, (GLint location, GLsizei count, const GLint64EXT *value)) \ X (void , glUniform4i64vNV, (GLint location, GLsizei count, const GLint64EXT *value)) \ X (void , glUniform1ui64NV, (GLint location, GLuint64EXT x)) \ X (void , glUniform2ui64NV, (GLint location, GLuint64EXT x, GLuint64EXT y)) \ X (void , glUniform3ui64NV, (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z)) \ X (void , glUniform4ui64NV, (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w)) \ X (void , glUniform1ui64vNV, (GLint location, GLsizei count, const GLuint64EXT *value)) \ X (void , glUniform2ui64vNV, (GLint location, GLsizei count, const GLuint64EXT *value)) \ X (void , glUniform3ui64vNV, (GLint location, GLsizei count, const GLuint64EXT *value)) \ X (void , glUniform4ui64vNV, (GLint location, GLsizei count, const GLuint64EXT *value)) \ X (void , glGetUniformi64vNV, (GLuint program, GLint location, GLint64EXT *params)) \ X (void , glProgramUniform1i64NV, (GLuint program, GLint location, GLint64EXT x)) \ X (void , glProgramUniform2i64NV, (GLuint program, GLint location, GLint64EXT x, GLint64EXT y)) \ X (void , glProgramUniform3i64NV, (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z)) \ X (void , glProgramUniform4i64NV, (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w)) \ X (void , glProgramUniform1i64vNV, (GLuint program, GLint location, GLsizei count, const GLint64EXT *value)) \ X (void , glProgramUniform2i64vNV, (GLuint program, GLint location, GLsizei count, const GLint64EXT *value)) \ X (void , glProgramUniform3i64vNV, (GLuint program, GLint location, GLsizei count, const GLint64EXT *value)) \ X (void , glProgramUniform4i64vNV, (GLuint program, GLint location, GLsizei count, const GLint64EXT *value)) \ X (void , glProgramUniform1ui64NV, (GLuint program, GLint location, GLuint64EXT x)) \ X (void , glProgramUniform2ui64NV, (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y)) \ X (void , glProgramUniform3ui64NV, (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z)) \ X (void , glProgramUniform4ui64NV, (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w)) \ X (void , glProgramUniform1ui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value)) \ X (void , glProgramUniform2ui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value)) \ X (void , glProgramUniform3ui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value)) \ X (void , glProgramUniform4ui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value)) #define JUCE_GL_FUNCTIONS_GL_NV_instanced_arrays \ X (void , glVertexAttribDivisorNV, (GLuint index, GLuint divisor)) #define JUCE_GL_FUNCTIONS_GL_NV_internalformat_sample_query \ X (void , glGetInternalformatSampleivNV, (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params)) #define JUCE_GL_FUNCTIONS_GL_NV_memory_attachment \ X (void , glGetMemoryObjectDetachedResourcesuivNV, (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params)) \ X (void , glResetMemoryObjectParameterNV, (GLuint memory, GLenum pname)) \ X (void , glTexAttachMemoryNV, (GLenum target, GLuint memory, GLuint64 offset)) \ X (void , glBufferAttachMemoryNV, (GLenum target, GLuint memory, GLuint64 offset)) \ X (void , glTextureAttachMemoryNV, (GLuint texture, GLuint memory, GLuint64 offset)) \ X (void , glNamedBufferAttachMemoryNV, (GLuint buffer, GLuint memory, GLuint64 offset)) #define JUCE_GL_FUNCTIONS_GL_NV_memory_object_sparse \ X (void , glBufferPageCommitmentMemNV, (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit)) \ X (void , glTexPageCommitmentMemNV, (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit)) \ X (void , glNamedBufferPageCommitmentMemNV, (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit)) \ X (void , glTexturePageCommitmentMemNV, (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit)) #define JUCE_GL_FUNCTIONS_GL_NV_mesh_shader \ X (void , glDrawMeshTasksNV, (GLuint first, GLuint count)) \ X (void , glDrawMeshTasksIndirectNV, (GLintptr indirect)) \ X (void , glMultiDrawMeshTasksIndirectNV, (GLintptr indirect, GLsizei drawcount, GLsizei stride)) \ X (void , glMultiDrawMeshTasksIndirectCountNV, (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride)) #define JUCE_GL_FUNCTIONS_GL_NV_non_square_matrices \ X (void , glUniformMatrix2x3fvNV, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glUniformMatrix3x2fvNV, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glUniformMatrix2x4fvNV, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glUniformMatrix4x2fvNV, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glUniformMatrix3x4fvNV, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \ X (void , glUniformMatrix4x3fvNV, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) #define JUCE_GL_FUNCTIONS_GL_NV_path_rendering \ X (GLuint , glGenPathsNV, (GLsizei range)) \ X (void , glDeletePathsNV, (GLuint path, GLsizei range)) \ X (GLboolean , glIsPathNV, (GLuint path)) \ X (void , glPathCommandsNV, (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords)) \ X (void , glPathCoordsNV, (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords)) \ X (void , glPathSubCommandsNV, (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords)) \ X (void , glPathSubCoordsNV, (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords)) \ X (void , glPathStringNV, (GLuint path, GLenum format, GLsizei length, const void *pathString)) \ X (void , glPathGlyphsNV, (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale)) \ X (void , glPathGlyphRangeNV, (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale)) \ X (void , glWeightPathsNV, (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights)) \ X (void , glCopyPathNV, (GLuint resultPath, GLuint srcPath)) \ X (void , glInterpolatePathsNV, (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight)) \ X (void , glTransformPathNV, (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues)) \ X (void , glPathParameterivNV, (GLuint path, GLenum pname, const GLint *value)) \ X (void , glPathParameteriNV, (GLuint path, GLenum pname, GLint value)) \ X (void , glPathParameterfvNV, (GLuint path, GLenum pname, const GLfloat *value)) \ X (void , glPathParameterfNV, (GLuint path, GLenum pname, GLfloat value)) \ X (void , glPathDashArrayNV, (GLuint path, GLsizei dashCount, const GLfloat *dashArray)) \ X (void , glPathStencilFuncNV, (GLenum func, GLint ref, GLuint mask)) \ X (void , glPathStencilDepthOffsetNV, (GLfloat factor, GLfloat units)) \ X (void , glStencilFillPathNV, (GLuint path, GLenum fillMode, GLuint mask)) \ X (void , glStencilStrokePathNV, (GLuint path, GLint reference, GLuint mask)) \ X (void , glStencilFillPathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues)) \ X (void , glStencilStrokePathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues)) \ X (void , glPathCoverDepthFuncNV, (GLenum func)) \ X (void , glCoverFillPathNV, (GLuint path, GLenum coverMode)) \ X (void , glCoverStrokePathNV, (GLuint path, GLenum coverMode)) \ X (void , glCoverFillPathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)) \ X (void , glCoverStrokePathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)) \ X (void , glGetPathParameterivNV, (GLuint path, GLenum pname, GLint *value)) \ X (void , glGetPathParameterfvNV, (GLuint path, GLenum pname, GLfloat *value)) \ X (void , glGetPathCommandsNV, (GLuint path, GLubyte *commands)) \ X (void , glGetPathCoordsNV, (GLuint path, GLfloat *coords)) \ X (void , glGetPathDashArrayNV, (GLuint path, GLfloat *dashArray)) \ X (void , glGetPathMetricsNV, (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics)) \ X (void , glGetPathMetricRangeNV, (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics)) \ X (void , glGetPathSpacingNV, (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing)) \ X (GLboolean , glIsPointInFillPathNV, (GLuint path, GLuint mask, GLfloat x, GLfloat y)) \ X (GLboolean , glIsPointInStrokePathNV, (GLuint path, GLfloat x, GLfloat y)) \ X (GLfloat , glGetPathLengthNV, (GLuint path, GLsizei startSegment, GLsizei numSegments)) \ X (GLboolean , glPointAlongPathNV, (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY)) \ X (void , glMatrixLoad3x2fNV, (GLenum matrixMode, const GLfloat *m)) \ X (void , glMatrixLoad3x3fNV, (GLenum matrixMode, const GLfloat *m)) \ X (void , glMatrixLoadTranspose3x3fNV, (GLenum matrixMode, const GLfloat *m)) \ X (void , glMatrixMult3x2fNV, (GLenum matrixMode, const GLfloat *m)) \ X (void , glMatrixMult3x3fNV, (GLenum matrixMode, const GLfloat *m)) \ X (void , glMatrixMultTranspose3x3fNV, (GLenum matrixMode, const GLfloat *m)) \ X (void , glStencilThenCoverFillPathNV, (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode)) \ X (void , glStencilThenCoverStrokePathNV, (GLuint path, GLint reference, GLuint mask, GLenum coverMode)) \ X (void , glStencilThenCoverFillPathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)) \ X (void , glStencilThenCoverStrokePathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)) \ X (GLenum , glPathGlyphIndexRangeNV, (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint *baseAndCount)) \ X (GLenum , glPathGlyphIndexArrayNV, (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale)) \ X (GLenum , glPathMemoryGlyphIndexArrayNV, (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale)) \ X (void , glProgramPathFragmentInputGenNV, (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs)) \ X (void , glGetProgramResourcefvNV, (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params)) \ X (void , glPathColorGenNV, (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs)) \ X (void , glPathTexGenNV, (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs)) \ X (void , glPathFogGenNV, (GLenum genMode)) \ X (void , glGetPathColorGenivNV, (GLenum color, GLenum pname, GLint *value)) \ X (void , glGetPathColorGenfvNV, (GLenum color, GLenum pname, GLfloat *value)) \ X (void , glGetPathTexGenivNV, (GLenum texCoordSet, GLenum pname, GLint *value)) \ X (void , glGetPathTexGenfvNV, (GLenum texCoordSet, GLenum pname, GLfloat *value)) \ X (void , glMatrixFrustumEXT, (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)) \ X (void , glMatrixLoadIdentityEXT, (GLenum mode)) \ X (void , glMatrixLoadTransposefEXT, (GLenum mode, const GLfloat *m)) \ X (void , glMatrixLoadTransposedEXT, (GLenum mode, const GLdouble *m)) \ X (void , glMatrixLoadfEXT, (GLenum mode, const GLfloat *m)) \ X (void , glMatrixLoaddEXT, (GLenum mode, const GLdouble *m)) \ X (void , glMatrixMultTransposefEXT, (GLenum mode, const GLfloat *m)) \ X (void , glMatrixMultTransposedEXT, (GLenum mode, const GLdouble *m)) \ X (void , glMatrixMultfEXT, (GLenum mode, const GLfloat *m)) \ X (void , glMatrixMultdEXT, (GLenum mode, const GLdouble *m)) \ X (void , glMatrixOrthoEXT, (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)) \ X (void , glMatrixPopEXT, (GLenum mode)) \ X (void , glMatrixPushEXT, (GLenum mode)) \ X (void , glMatrixRotatefEXT, (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)) \ X (void , glMatrixRotatedEXT, (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)) \ X (void , glMatrixScalefEXT, (GLenum mode, GLfloat x, GLfloat y, GLfloat z)) \ X (void , glMatrixScaledEXT, (GLenum mode, GLdouble x, GLdouble y, GLdouble z)) \ X (void , glMatrixTranslatefEXT, (GLenum mode, GLfloat x, GLfloat y, GLfloat z)) \ X (void , glMatrixTranslatedEXT, (GLenum mode, GLdouble x, GLdouble y, GLdouble z)) #define JUCE_GL_FUNCTIONS_GL_NV_polygon_mode \ X (void , glPolygonModeNV, (GLenum face, GLenum mode)) #define JUCE_GL_FUNCTIONS_GL_NV_read_buffer \ X (void , glReadBufferNV, (GLenum mode)) #define JUCE_GL_FUNCTIONS_GL_NV_sample_locations \ X (void , glFramebufferSampleLocationsfvNV, (GLenum target, GLuint start, GLsizei count, const GLfloat *v)) \ X (void , glNamedFramebufferSampleLocationsfvNV, (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v)) \ X (void , glResolveDepthValuesNV, ()) #define JUCE_GL_FUNCTIONS_GL_NV_scissor_exclusive \ X (void , glScissorExclusiveNV, (GLint x, GLint y, GLsizei width, GLsizei height)) \ X (void , glScissorExclusiveArrayvNV, (GLuint first, GLsizei count, const GLint *v)) #define JUCE_GL_FUNCTIONS_GL_NV_shading_rate_image \ X (void , glBindShadingRateImageNV, (GLuint texture)) \ X (void , glGetShadingRateImagePaletteNV, (GLuint viewport, GLuint entry, GLenum *rate)) \ X (void , glGetShadingRateSampleLocationivNV, (GLenum rate, GLuint samples, GLuint index, GLint *location)) \ X (void , glShadingRateImageBarrierNV, (GLboolean synchronize)) \ X (void , glShadingRateImagePaletteNV, (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates)) \ X (void , glShadingRateSampleOrderNV, (GLenum order)) \ X (void , glShadingRateSampleOrderCustomNV, (GLenum rate, GLuint samples, const GLint *locations)) #define JUCE_GL_FUNCTIONS_GL_NV_viewport_array \ X (void , glViewportArrayvNV, (GLuint first, GLsizei count, const GLfloat *v)) \ X (void , glViewportIndexedfNV, (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h)) \ X (void , glViewportIndexedfvNV, (GLuint index, const GLfloat *v)) \ X (void , glScissorArrayvNV, (GLuint first, GLsizei count, const GLint *v)) \ X (void , glScissorIndexedNV, (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height)) \ X (void , glScissorIndexedvNV, (GLuint index, const GLint *v)) \ X (void , glDepthRangeArrayfvNV, (GLuint first, GLsizei count, const GLfloat *v)) \ X (void , glDepthRangeIndexedfNV, (GLuint index, GLfloat n, GLfloat f)) \ X (void , glGetFloati_vNV, (GLenum target, GLuint index, GLfloat *data)) \ X (void , glEnableiNV, (GLenum target, GLuint index)) \ X (void , glDisableiNV, (GLenum target, GLuint index)) \ X (GLboolean , glIsEnablediNV, (GLenum target, GLuint index)) #define JUCE_GL_FUNCTIONS_GL_NV_viewport_swizzle \ X (void , glViewportSwizzleNV, (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew)) #define JUCE_GL_FUNCTIONS_GL_OES_EGL_image \ X (void , glEGLImageTargetTexture2DOES, (GLenum target, GLeglImageOES image)) \ X (void , glEGLImageTargetRenderbufferStorageOES, (GLenum target, GLeglImageOES image)) #define JUCE_GL_FUNCTIONS_GL_OES_copy_image \ X (void , glCopyImageSubDataOES, (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)) #define JUCE_GL_FUNCTIONS_GL_OES_draw_buffers_indexed \ X (void , glEnableiOES, (GLenum target, GLuint index)) \ X (void , glDisableiOES, (GLenum target, GLuint index)) \ X (void , glBlendEquationiOES, (GLuint buf, GLenum mode)) \ X (void , glBlendEquationSeparateiOES, (GLuint buf, GLenum modeRGB, GLenum modeAlpha)) \ X (void , glBlendFunciOES, (GLuint buf, GLenum src, GLenum dst)) \ X (void , glBlendFuncSeparateiOES, (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)) \ X (void , glColorMaskiOES, (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)) \ X (GLboolean , glIsEnablediOES, (GLenum target, GLuint index)) #define JUCE_GL_FUNCTIONS_GL_OES_draw_elements_base_vertex \ X (void , glDrawElementsBaseVertexOES, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \ X (void , glDrawRangeElementsBaseVertexOES, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \ X (void , glDrawElementsInstancedBaseVertexOES, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex)) #define JUCE_GL_FUNCTIONS_GL_OES_geometry_shader \ X (void , glFramebufferTextureOES, (GLenum target, GLenum attachment, GLuint texture, GLint level)) #define JUCE_GL_FUNCTIONS_GL_OES_get_program_binary \ X (void , glGetProgramBinaryOES, (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary)) \ X (void , glProgramBinaryOES, (GLuint program, GLenum binaryFormat, const void *binary, GLint length)) #define JUCE_GL_FUNCTIONS_GL_OES_mapbuffer \ X (void * , glMapBufferOES, (GLenum target, GLenum access)) \ X (GLboolean , glUnmapBufferOES, (GLenum target)) \ X (void , glGetBufferPointervOES, (GLenum target, GLenum pname, void **params)) #define JUCE_GL_FUNCTIONS_GL_OES_primitive_bounding_box \ X (void , glPrimitiveBoundingBoxOES, (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW)) #define JUCE_GL_FUNCTIONS_GL_OES_sample_shading \ X (void , glMinSampleShadingOES, (GLfloat value)) #define JUCE_GL_FUNCTIONS_GL_OES_tessellation_shader \ X (void , glPatchParameteriOES, (GLenum pname, GLint value)) #define JUCE_GL_FUNCTIONS_GL_OES_texture_3D \ X (void , glTexImage3DOES, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)) \ X (void , glTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)) \ X (void , glCopyTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \ X (void , glCompressedTexImage3DOES, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)) \ X (void , glCompressedTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)) \ X (void , glFramebufferTexture3DOES, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)) #define JUCE_GL_FUNCTIONS_GL_OES_texture_border_clamp \ X (void , glTexParameterIivOES, (GLenum target, GLenum pname, const GLint *params)) \ X (void , glTexParameterIuivOES, (GLenum target, GLenum pname, const GLuint *params)) \ X (void , glGetTexParameterIivOES, (GLenum target, GLenum pname, GLint *params)) \ X (void , glGetTexParameterIuivOES, (GLenum target, GLenum pname, GLuint *params)) \ X (void , glSamplerParameterIivOES, (GLuint sampler, GLenum pname, const GLint *param)) \ X (void , glSamplerParameterIuivOES, (GLuint sampler, GLenum pname, const GLuint *param)) \ X (void , glGetSamplerParameterIivOES, (GLuint sampler, GLenum pname, GLint *params)) \ X (void , glGetSamplerParameterIuivOES, (GLuint sampler, GLenum pname, GLuint *params)) #define JUCE_GL_FUNCTIONS_GL_OES_texture_buffer \ X (void , glTexBufferOES, (GLenum target, GLenum internalformat, GLuint buffer)) \ X (void , glTexBufferRangeOES, (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)) #define JUCE_GL_FUNCTIONS_GL_OES_texture_storage_multisample_2d_array \ X (void , glTexStorage3DMultisampleOES, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)) #define JUCE_GL_FUNCTIONS_GL_OES_texture_view \ X (void , glTextureViewOES, (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers)) #define JUCE_GL_FUNCTIONS_GL_OES_vertex_array_object \ X (void , glBindVertexArrayOES, (GLuint array)) \ X (void , glDeleteVertexArraysOES, (GLsizei n, const GLuint *arrays)) \ X (void , glGenVertexArraysOES, (GLsizei n, GLuint *arrays)) \ X (GLboolean , glIsVertexArrayOES, (GLuint array)) #define JUCE_GL_FUNCTIONS_GL_OES_viewport_array \ X (void , glViewportArrayvOES, (GLuint first, GLsizei count, const GLfloat *v)) \ X (void , glViewportIndexedfOES, (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h)) \ X (void , glViewportIndexedfvOES, (GLuint index, const GLfloat *v)) \ X (void , glScissorArrayvOES, (GLuint first, GLsizei count, const GLint *v)) \ X (void , glScissorIndexedOES, (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height)) \ X (void , glScissorIndexedvOES, (GLuint index, const GLint *v)) \ X (void , glDepthRangeArrayfvOES, (GLuint first, GLsizei count, const GLfloat *v)) \ X (void , glDepthRangeIndexedfOES, (GLuint index, GLfloat n, GLfloat f)) \ X (void , glGetFloati_vOES, (GLenum target, GLuint index, GLfloat *data)) #define JUCE_GL_FUNCTIONS_GL_OVR_multiview \ X (void , glFramebufferTextureMultiviewOVR, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews)) #define JUCE_GL_FUNCTIONS_GL_OVR_multiview_multisampled_render_to_texture \ X (void , glFramebufferTextureMultisampleMultiviewOVR, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews)) #define JUCE_GL_FUNCTIONS_GL_QCOM_alpha_test \ X (void , glAlphaFuncQCOM, (GLenum func, GLclampf ref)) #define JUCE_GL_FUNCTIONS_GL_QCOM_driver_control \ X (void , glGetDriverControlsQCOM, (GLint *num, GLsizei size, GLuint *driverControls)) \ X (void , glGetDriverControlStringQCOM, (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString)) \ X (void , glEnableDriverControlQCOM, (GLuint driverControl)) \ X (void , glDisableDriverControlQCOM, (GLuint driverControl)) #define JUCE_GL_FUNCTIONS_GL_QCOM_extended_get \ X (void , glExtGetTexturesQCOM, (GLuint *textures, GLint maxTextures, GLint *numTextures)) \ X (void , glExtGetBuffersQCOM, (GLuint *buffers, GLint maxBuffers, GLint *numBuffers)) \ X (void , glExtGetRenderbuffersQCOM, (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers)) \ X (void , glExtGetFramebuffersQCOM, (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers)) \ X (void , glExtGetTexLevelParameterivQCOM, (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params)) \ X (void , glExtTexObjectStateOverrideiQCOM, (GLenum target, GLenum pname, GLint param)) \ X (void , glExtGetTexSubImageQCOM, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels)) \ X (void , glExtGetBufferPointervQCOM, (GLenum target, void **params)) #define JUCE_GL_FUNCTIONS_GL_QCOM_extended_get2 \ X (void , glExtGetShadersQCOM, (GLuint *shaders, GLint maxShaders, GLint *numShaders)) \ X (void , glExtGetProgramsQCOM, (GLuint *programs, GLint maxPrograms, GLint *numPrograms)) \ X (GLboolean , glExtIsProgramBinaryQCOM, (GLuint program)) \ X (void , glExtGetProgramBinarySourceQCOM, (GLuint program, GLenum shadertype, GLchar *source, GLint *length)) #define JUCE_GL_FUNCTIONS_GL_QCOM_framebuffer_foveated \ X (void , glFramebufferFoveationConfigQCOM, (GLuint framebuffer, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint *providedFeatures)) \ X (void , glFramebufferFoveationParametersQCOM, (GLuint framebuffer, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea)) #define JUCE_GL_FUNCTIONS_GL_QCOM_motion_estimation \ X (void , glTexEstimateMotionQCOM, (GLuint ref, GLuint target, GLuint output)) \ X (void , glTexEstimateMotionRegionsQCOM, (GLuint ref, GLuint target, GLuint output, GLuint mask)) #define JUCE_GL_FUNCTIONS_GL_QCOM_frame_extrapolation \ X (void , glExtrapolateTex2DQCOM, (GLuint src1, GLuint src2, GLuint output, GLfloat scaleFactor)) #define JUCE_GL_FUNCTIONS_GL_QCOM_texture_foveated \ X (void , glTextureFoveationParametersQCOM, (GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea)) #define JUCE_GL_FUNCTIONS_GL_QCOM_shader_framebuffer_fetch_noncoherent \ X (void , glFramebufferFetchBarrierQCOM, ()) #define JUCE_GL_FUNCTIONS_GL_QCOM_shading_rate \ X (void , glShadingRateQCOM, (GLenum rate)) #define JUCE_GL_FUNCTIONS_GL_QCOM_tiled_rendering \ X (void , glStartTilingQCOM, (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask)) \ X (void , glEndTilingQCOM, (GLbitfield preserveMask)) #if JUCE_STATIC_LINK_GL_ES_VERSION_2_0 #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0_STATIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0 #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0_DYNAMIC #else #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0_STATIC #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0_DYNAMIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0 #endif #if JUCE_STATIC_LINK_GL_ES_VERSION_3_0 #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0_STATIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0 #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0_DYNAMIC #else #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0_STATIC #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0_DYNAMIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0 #endif #if JUCE_STATIC_LINK_GL_ES_VERSION_3_1 #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1_STATIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1 #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1_DYNAMIC #else #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1_STATIC #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1_DYNAMIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1 #endif #if JUCE_STATIC_LINK_GL_ES_VERSION_3_2 #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2_STATIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2 #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2_DYNAMIC #else #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2_STATIC #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2_DYNAMIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2 #endif #define JUCE_STATIC_GL_FUNCTIONS \ JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0_STATIC \ JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0_STATIC \ JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1_STATIC \ JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2_STATIC #define JUCE_DYNAMIC_GL_FUNCTIONS \ JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0_DYNAMIC \ JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0_DYNAMIC \ JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1_DYNAMIC \ JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2_DYNAMIC #define JUCE_EXTENSION_GL_FUNCTIONS \ JUCE_GL_FUNCTIONS_GL_AMD_framebuffer_multisample_advanced \ JUCE_GL_FUNCTIONS_GL_AMD_performance_monitor \ JUCE_GL_FUNCTIONS_GL_ANGLE_framebuffer_blit \ JUCE_GL_FUNCTIONS_GL_ANGLE_framebuffer_multisample \ JUCE_GL_FUNCTIONS_GL_ANGLE_instanced_arrays \ JUCE_GL_FUNCTIONS_GL_ANGLE_translated_shader_source \ JUCE_GL_FUNCTIONS_GL_APPLE_copy_texture_levels \ JUCE_GL_FUNCTIONS_GL_APPLE_framebuffer_multisample \ JUCE_GL_FUNCTIONS_GL_APPLE_sync \ JUCE_GL_FUNCTIONS_GL_EXT_EGL_image_storage \ JUCE_GL_FUNCTIONS_GL_EXT_base_instance \ JUCE_GL_FUNCTIONS_GL_EXT_blend_func_extended \ JUCE_GL_FUNCTIONS_GL_EXT_blend_minmax \ JUCE_GL_FUNCTIONS_GL_EXT_buffer_storage \ JUCE_GL_FUNCTIONS_GL_EXT_clear_texture \ JUCE_GL_FUNCTIONS_GL_EXT_clip_control \ JUCE_GL_FUNCTIONS_GL_EXT_copy_image \ JUCE_GL_FUNCTIONS_GL_EXT_debug_label \ JUCE_GL_FUNCTIONS_GL_EXT_debug_marker \ JUCE_GL_FUNCTIONS_GL_EXT_discard_framebuffer \ JUCE_GL_FUNCTIONS_GL_EXT_disjoint_timer_query \ JUCE_GL_FUNCTIONS_GL_EXT_draw_buffers \ JUCE_GL_FUNCTIONS_GL_EXT_draw_buffers_indexed \ JUCE_GL_FUNCTIONS_GL_EXT_draw_elements_base_vertex \ JUCE_GL_FUNCTIONS_GL_EXT_draw_instanced \ JUCE_GL_FUNCTIONS_GL_EXT_draw_transform_feedback \ JUCE_GL_FUNCTIONS_GL_EXT_external_buffer \ JUCE_GL_FUNCTIONS_GL_EXT_geometry_shader \ JUCE_GL_FUNCTIONS_GL_EXT_instanced_arrays \ JUCE_GL_FUNCTIONS_GL_EXT_map_buffer_range \ JUCE_GL_FUNCTIONS_GL_EXT_memory_object \ JUCE_GL_FUNCTIONS_GL_EXT_memory_object_fd \ JUCE_GL_FUNCTIONS_GL_EXT_memory_object_win32 \ JUCE_GL_FUNCTIONS_GL_EXT_multi_draw_arrays \ JUCE_GL_FUNCTIONS_GL_EXT_multi_draw_indirect \ JUCE_GL_FUNCTIONS_GL_EXT_multisampled_render_to_texture \ JUCE_GL_FUNCTIONS_GL_EXT_multiview_draw_buffers \ JUCE_GL_FUNCTIONS_GL_EXT_polygon_offset_clamp \ JUCE_GL_FUNCTIONS_GL_EXT_primitive_bounding_box \ JUCE_GL_FUNCTIONS_GL_EXT_raster_multisample \ JUCE_GL_FUNCTIONS_GL_EXT_robustness \ JUCE_GL_FUNCTIONS_GL_EXT_semaphore \ JUCE_GL_FUNCTIONS_GL_EXT_semaphore_fd \ JUCE_GL_FUNCTIONS_GL_EXT_semaphore_win32 \ JUCE_GL_FUNCTIONS_GL_EXT_separate_shader_objects \ JUCE_GL_FUNCTIONS_GL_EXT_shader_framebuffer_fetch_non_coherent \ JUCE_GL_FUNCTIONS_GL_EXT_shader_pixel_local_storage2 \ JUCE_GL_FUNCTIONS_GL_EXT_sparse_texture \ JUCE_GL_FUNCTIONS_GL_EXT_tessellation_shader \ JUCE_GL_FUNCTIONS_GL_EXT_texture_border_clamp \ JUCE_GL_FUNCTIONS_GL_EXT_texture_buffer \ JUCE_GL_FUNCTIONS_GL_EXT_texture_storage \ JUCE_GL_FUNCTIONS_GL_EXT_texture_view \ JUCE_GL_FUNCTIONS_GL_NV_timeline_semaphore \ JUCE_GL_FUNCTIONS_GL_EXT_win32_keyed_mutex \ JUCE_GL_FUNCTIONS_GL_EXT_window_rectangles \ JUCE_GL_FUNCTIONS_GL_IMG_bindless_texture \ JUCE_GL_FUNCTIONS_GL_IMG_framebuffer_downsample \ JUCE_GL_FUNCTIONS_GL_IMG_multisampled_render_to_texture \ JUCE_GL_FUNCTIONS_GL_INTEL_framebuffer_CMAA \ JUCE_GL_FUNCTIONS_GL_INTEL_performance_query \ JUCE_GL_FUNCTIONS_GL_KHR_blend_equation_advanced \ JUCE_GL_FUNCTIONS_GL_KHR_debug \ JUCE_GL_FUNCTIONS_GL_KHR_robustness \ JUCE_GL_FUNCTIONS_GL_KHR_parallel_shader_compile \ JUCE_GL_FUNCTIONS_GL_MESA_framebuffer_flip_y \ JUCE_GL_FUNCTIONS_GL_NV_bindless_texture \ JUCE_GL_FUNCTIONS_GL_NV_blend_equation_advanced \ JUCE_GL_FUNCTIONS_GL_NV_clip_space_w_scaling \ JUCE_GL_FUNCTIONS_GL_NV_conditional_render \ JUCE_GL_FUNCTIONS_GL_NV_conservative_raster \ JUCE_GL_FUNCTIONS_GL_NV_conservative_raster_pre_snap_triangles \ JUCE_GL_FUNCTIONS_GL_NV_copy_buffer \ JUCE_GL_FUNCTIONS_GL_NV_coverage_sample \ JUCE_GL_FUNCTIONS_GL_NV_draw_buffers \ JUCE_GL_FUNCTIONS_GL_NV_draw_instanced \ JUCE_GL_FUNCTIONS_GL_NV_draw_vulkan_image \ JUCE_GL_FUNCTIONS_GL_NV_fence \ JUCE_GL_FUNCTIONS_GL_NV_fragment_coverage_to_color \ JUCE_GL_FUNCTIONS_GL_NV_framebuffer_blit \ JUCE_GL_FUNCTIONS_GL_NV_framebuffer_mixed_samples \ JUCE_GL_FUNCTIONS_GL_NV_framebuffer_multisample \ JUCE_GL_FUNCTIONS_GL_NV_gpu_shader5 \ JUCE_GL_FUNCTIONS_GL_NV_instanced_arrays \ JUCE_GL_FUNCTIONS_GL_NV_internalformat_sample_query \ JUCE_GL_FUNCTIONS_GL_NV_memory_attachment \ JUCE_GL_FUNCTIONS_GL_NV_memory_object_sparse \ JUCE_GL_FUNCTIONS_GL_NV_mesh_shader \ JUCE_GL_FUNCTIONS_GL_NV_non_square_matrices \ JUCE_GL_FUNCTIONS_GL_NV_path_rendering \ JUCE_GL_FUNCTIONS_GL_NV_polygon_mode \ JUCE_GL_FUNCTIONS_GL_NV_read_buffer \ JUCE_GL_FUNCTIONS_GL_NV_sample_locations \ JUCE_GL_FUNCTIONS_GL_NV_scissor_exclusive \ JUCE_GL_FUNCTIONS_GL_NV_shading_rate_image \ JUCE_GL_FUNCTIONS_GL_NV_viewport_array \ JUCE_GL_FUNCTIONS_GL_NV_viewport_swizzle \ JUCE_GL_FUNCTIONS_GL_OES_EGL_image \ JUCE_GL_FUNCTIONS_GL_OES_copy_image \ JUCE_GL_FUNCTIONS_GL_OES_draw_buffers_indexed \ JUCE_GL_FUNCTIONS_GL_OES_draw_elements_base_vertex \ JUCE_GL_FUNCTIONS_GL_OES_geometry_shader \ JUCE_GL_FUNCTIONS_GL_OES_get_program_binary \ JUCE_GL_FUNCTIONS_GL_OES_mapbuffer \ JUCE_GL_FUNCTIONS_GL_OES_primitive_bounding_box \ JUCE_GL_FUNCTIONS_GL_OES_sample_shading \ JUCE_GL_FUNCTIONS_GL_OES_tessellation_shader \ JUCE_GL_FUNCTIONS_GL_OES_texture_3D \ JUCE_GL_FUNCTIONS_GL_OES_texture_border_clamp \ JUCE_GL_FUNCTIONS_GL_OES_texture_buffer \ JUCE_GL_FUNCTIONS_GL_OES_texture_storage_multisample_2d_array \ JUCE_GL_FUNCTIONS_GL_OES_texture_view \ JUCE_GL_FUNCTIONS_GL_OES_vertex_array_object \ JUCE_GL_FUNCTIONS_GL_OES_viewport_array \ JUCE_GL_FUNCTIONS_GL_OVR_multiview \ JUCE_GL_FUNCTIONS_GL_OVR_multiview_multisampled_render_to_texture \ JUCE_GL_FUNCTIONS_GL_QCOM_alpha_test \ JUCE_GL_FUNCTIONS_GL_QCOM_driver_control \ JUCE_GL_FUNCTIONS_GL_QCOM_extended_get \ JUCE_GL_FUNCTIONS_GL_QCOM_extended_get2 \ JUCE_GL_FUNCTIONS_GL_QCOM_framebuffer_foveated \ JUCE_GL_FUNCTIONS_GL_QCOM_motion_estimation \ JUCE_GL_FUNCTIONS_GL_QCOM_frame_extrapolation \ JUCE_GL_FUNCTIONS_GL_QCOM_texture_foveated \ JUCE_GL_FUNCTIONS_GL_QCOM_shader_framebuffer_fetch_noncoherent \ JUCE_GL_FUNCTIONS_GL_QCOM_shading_rate \ JUCE_GL_FUNCTIONS_GL_QCOM_tiled_rendering #define X(returns, name, params) \ extern "C" KHRONOS_APICALL returns KHRONOS_APIENTRY name params; \ returns (KHRONOS_APIENTRY* const& ::juce::gl::name) params = ::name; JUCE_STATIC_GL_FUNCTIONS #undef X #define X(returns, name, params) \ static returns (KHRONOS_APIENTRY* juce_ ## name) params = nullptr; \ returns (KHRONOS_APIENTRY* const& ::juce::gl::name) params = juce_ ## name; JUCE_DYNAMIC_GL_FUNCTIONS JUCE_EXTENSION_GL_FUNCTIONS #undef X void juce::gl::loadFunctions() { #define X(returns, name, params) \ juce_ ## name = reinterpret_cast (::juce::OpenGLHelpers::getExtensionFunction (#name)); JUCE_DYNAMIC_GL_FUNCTIONS #undef X } void juce::gl::loadExtensions() { #define X(returns, name, params) \ juce_ ## name = reinterpret_cast (::juce::OpenGLHelpers::getExtensionFunction (#name)); JUCE_EXTENSION_GL_FUNCTIONS #undef X } #undef JUCE_STATIC_GL_FUNCTIONS #undef JUCE_DYNAMIC_GL_FUNCTIONS #undef JUCE_EXTENSION_GL_FUNCTIONS