The JUCE cross-platform C++ framework, with DISTRHO/KXStudio specific changes
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1419 lines
112KB

  1. /*
  2. ==============================================================================
  3. This file is part of the JUCE library.
  4. Copyright (c) 2022 - Raw Material Software Limited
  5. JUCE is an open source library subject to commercial or open-source
  6. licensing.
  7. By using JUCE, you agree to the terms of both the JUCE 7 End-User License
  8. Agreement and JUCE Privacy Policy.
  9. End User License Agreement: www.juce.com/juce-7-licence
  10. Privacy Policy: www.juce.com/juce-privacy-policy
  11. Or: You may also use this code under the terms of the GPL v3 (see
  12. www.gnu.org/licenses).
  13. JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
  14. EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
  15. DISCLAIMED.
  16. ==============================================================================
  17. */
  18. // This file was generated automatically using data from the opengl-registry
  19. // https://github.com/KhronosGroup/OpenGL-Registry
  20. // This file's corresponding header contains a reference to a function pointer
  21. // for each command in the GL spec. The functions from earlier GL versions are
  22. // (pretty much) guaranteed to be available in the platform GL library. For
  23. // these functions, the references will be initialised to point directly at the
  24. // library implementations. This behaviour is somewhat configurable:
  25. // preprocessor defs of the form `JUCE_STATIC_LINK_<some gl version>` will
  26. // ensure that the functions from a particular GL version are linked
  27. // statically. Of course, this may fail to link if the platform doesn't
  28. // implement the requested GL version. Any GL versions that are not explicitly
  29. // requested for static linking, along with all known GL extensions, are loaded
  30. // at runtime using gl::loadFunctions(). Again, these functions can be accessed
  31. // via the references in the header.
  32. // You should be aware that *any* of the functions declared in the header may
  33. // be nullptr if the implementation does not supply that function. If you
  34. // depend on specific GL features/extensions, it's probably a good idea to
  35. // check each function pointer to ensure that the function was loaded
  36. // successfully.
  37. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0 \
  38. X (void , glActiveTexture, (GLenum texture)) \
  39. X (void , glAttachShader, (GLuint program, GLuint shader)) \
  40. X (void , glBindAttribLocation, (GLuint program, GLuint index, const GLchar *name)) \
  41. X (void , glBindBuffer, (GLenum target, GLuint buffer)) \
  42. X (void , glBindFramebuffer, (GLenum target, GLuint framebuffer)) \
  43. X (void , glBindRenderbuffer, (GLenum target, GLuint renderbuffer)) \
  44. X (void , glBindTexture, (GLenum target, GLuint texture)) \
  45. X (void , glBlendColor, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)) \
  46. X (void , glBlendEquation, (GLenum mode)) \
  47. X (void , glBlendEquationSeparate, (GLenum modeRGB, GLenum modeAlpha)) \
  48. X (void , glBlendFunc, (GLenum sfactor, GLenum dfactor)) \
  49. X (void , glBlendFuncSeparate, (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)) \
  50. X (void , glBufferData, (GLenum target, GLsizeiptr size, const void *data, GLenum usage)) \
  51. X (void , glBufferSubData, (GLenum target, GLintptr offset, GLsizeiptr size, const void *data)) \
  52. X (GLenum , glCheckFramebufferStatus, (GLenum target)) \
  53. X (void , glClear, (GLbitfield mask)) \
  54. X (void , glClearColor, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)) \
  55. X (void , glClearDepthf, (GLfloat d)) \
  56. X (void , glClearStencil, (GLint s)) \
  57. X (void , glColorMask, (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)) \
  58. X (void , glCompileShader, (GLuint shader)) \
  59. X (void , glCompressedTexImage2D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data)) \
  60. X (void , glCompressedTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data)) \
  61. X (void , glCopyTexImage2D, (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)) \
  62. X (void , glCopyTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \
  63. X (GLuint , glCreateProgram, ()) \
  64. X (GLuint , glCreateShader, (GLenum type)) \
  65. X (void , glCullFace, (GLenum mode)) \
  66. X (void , glDeleteBuffers, (GLsizei n, const GLuint *buffers)) \
  67. X (void , glDeleteFramebuffers, (GLsizei n, const GLuint *framebuffers)) \
  68. X (void , glDeleteProgram, (GLuint program)) \
  69. X (void , glDeleteRenderbuffers, (GLsizei n, const GLuint *renderbuffers)) \
  70. X (void , glDeleteShader, (GLuint shader)) \
  71. X (void , glDeleteTextures, (GLsizei n, const GLuint *textures)) \
  72. X (void , glDepthFunc, (GLenum func)) \
  73. X (void , glDepthMask, (GLboolean flag)) \
  74. X (void , glDepthRangef, (GLfloat n, GLfloat f)) \
  75. X (void , glDetachShader, (GLuint program, GLuint shader)) \
  76. X (void , glDisable, (GLenum cap)) \
  77. X (void , glDisableVertexAttribArray, (GLuint index)) \
  78. X (void , glDrawArrays, (GLenum mode, GLint first, GLsizei count)) \
  79. X (void , glDrawElements, (GLenum mode, GLsizei count, GLenum type, const void *indices)) \
  80. X (void , glEnable, (GLenum cap)) \
  81. X (void , glEnableVertexAttribArray, (GLuint index)) \
  82. X (void , glFinish, ()) \
  83. X (void , glFlush, ()) \
  84. X (void , glFramebufferRenderbuffer, (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)) \
  85. X (void , glFramebufferTexture2D, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)) \
  86. X (void , glFrontFace, (GLenum mode)) \
  87. X (void , glGenBuffers, (GLsizei n, GLuint *buffers)) \
  88. X (void , glGenerateMipmap, (GLenum target)) \
  89. X (void , glGenFramebuffers, (GLsizei n, GLuint *framebuffers)) \
  90. X (void , glGenRenderbuffers, (GLsizei n, GLuint *renderbuffers)) \
  91. X (void , glGenTextures, (GLsizei n, GLuint *textures)) \
  92. X (void , glGetActiveAttrib, (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)) \
  93. X (void , glGetActiveUniform, (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)) \
  94. X (void , glGetAttachedShaders, (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders)) \
  95. X (GLint , glGetAttribLocation, (GLuint program, const GLchar *name)) \
  96. X (void , glGetBooleanv, (GLenum pname, GLboolean *data)) \
  97. X (void , glGetBufferParameteriv, (GLenum target, GLenum pname, GLint *params)) \
  98. X (GLenum , glGetError, ()) \
  99. X (void , glGetFloatv, (GLenum pname, GLfloat *data)) \
  100. X (void , glGetFramebufferAttachmentParameteriv, (GLenum target, GLenum attachment, GLenum pname, GLint *params)) \
  101. X (void , glGetIntegerv, (GLenum pname, GLint *data)) \
  102. X (void , glGetProgramiv, (GLuint program, GLenum pname, GLint *params)) \
  103. X (void , glGetProgramInfoLog, (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \
  104. X (void , glGetRenderbufferParameteriv, (GLenum target, GLenum pname, GLint *params)) \
  105. X (void , glGetShaderiv, (GLuint shader, GLenum pname, GLint *params)) \
  106. X (void , glGetShaderInfoLog, (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \
  107. X (void , glGetShaderPrecisionFormat, (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision)) \
  108. X (void , glGetShaderSource, (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source)) \
  109. X (const GLubyte *, glGetString, (GLenum name)) \
  110. X (void , glGetTexParameterfv, (GLenum target, GLenum pname, GLfloat *params)) \
  111. X (void , glGetTexParameteriv, (GLenum target, GLenum pname, GLint *params)) \
  112. X (void , glGetUniformfv, (GLuint program, GLint location, GLfloat *params)) \
  113. X (void , glGetUniformiv, (GLuint program, GLint location, GLint *params)) \
  114. X (GLint , glGetUniformLocation, (GLuint program, const GLchar *name)) \
  115. X (void , glGetVertexAttribfv, (GLuint index, GLenum pname, GLfloat *params)) \
  116. X (void , glGetVertexAttribiv, (GLuint index, GLenum pname, GLint *params)) \
  117. X (void , glGetVertexAttribPointerv, (GLuint index, GLenum pname, void **pointer)) \
  118. X (void , glHint, (GLenum target, GLenum mode)) \
  119. X (GLboolean , glIsBuffer, (GLuint buffer)) \
  120. X (GLboolean , glIsEnabled, (GLenum cap)) \
  121. X (GLboolean , glIsFramebuffer, (GLuint framebuffer)) \
  122. X (GLboolean , glIsProgram, (GLuint program)) \
  123. X (GLboolean , glIsRenderbuffer, (GLuint renderbuffer)) \
  124. X (GLboolean , glIsShader, (GLuint shader)) \
  125. X (GLboolean , glIsTexture, (GLuint texture)) \
  126. X (void , glLineWidth, (GLfloat width)) \
  127. X (void , glLinkProgram, (GLuint program)) \
  128. X (void , glPixelStorei, (GLenum pname, GLint param)) \
  129. X (void , glPolygonOffset, (GLfloat factor, GLfloat units)) \
  130. X (void , glReadPixels, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels)) \
  131. X (void , glReleaseShaderCompiler, ()) \
  132. X (void , glRenderbufferStorage, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height)) \
  133. X (void , glSampleCoverage, (GLfloat value, GLboolean invert)) \
  134. X (void , glScissor, (GLint x, GLint y, GLsizei width, GLsizei height)) \
  135. X (void , glShaderBinary, (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length)) \
  136. X (void , glShaderSource, (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length)) \
  137. X (void , glStencilFunc, (GLenum func, GLint ref, GLuint mask)) \
  138. X (void , glStencilFuncSeparate, (GLenum face, GLenum func, GLint ref, GLuint mask)) \
  139. X (void , glStencilMask, (GLuint mask)) \
  140. X (void , glStencilMaskSeparate, (GLenum face, GLuint mask)) \
  141. X (void , glStencilOp, (GLenum fail, GLenum zfail, GLenum zpass)) \
  142. X (void , glStencilOpSeparate, (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)) \
  143. X (void , glTexImage2D, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)) \
  144. X (void , glTexParameterf, (GLenum target, GLenum pname, GLfloat param)) \
  145. X (void , glTexParameterfv, (GLenum target, GLenum pname, const GLfloat *params)) \
  146. X (void , glTexParameteri, (GLenum target, GLenum pname, GLint param)) \
  147. X (void , glTexParameteriv, (GLenum target, GLenum pname, const GLint *params)) \
  148. X (void , glTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)) \
  149. X (void , glUniform1f, (GLint location, GLfloat v0)) \
  150. X (void , glUniform1fv, (GLint location, GLsizei count, const GLfloat *value)) \
  151. X (void , glUniform1i, (GLint location, GLint v0)) \
  152. X (void , glUniform1iv, (GLint location, GLsizei count, const GLint *value)) \
  153. X (void , glUniform2f, (GLint location, GLfloat v0, GLfloat v1)) \
  154. X (void , glUniform2fv, (GLint location, GLsizei count, const GLfloat *value)) \
  155. X (void , glUniform2i, (GLint location, GLint v0, GLint v1)) \
  156. X (void , glUniform2iv, (GLint location, GLsizei count, const GLint *value)) \
  157. X (void , glUniform3f, (GLint location, GLfloat v0, GLfloat v1, GLfloat v2)) \
  158. X (void , glUniform3fv, (GLint location, GLsizei count, const GLfloat *value)) \
  159. X (void , glUniform3i, (GLint location, GLint v0, GLint v1, GLint v2)) \
  160. X (void , glUniform3iv, (GLint location, GLsizei count, const GLint *value)) \
  161. X (void , glUniform4f, (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)) \
  162. X (void , glUniform4fv, (GLint location, GLsizei count, const GLfloat *value)) \
  163. X (void , glUniform4i, (GLint location, GLint v0, GLint v1, GLint v2, GLint v3)) \
  164. X (void , glUniform4iv, (GLint location, GLsizei count, const GLint *value)) \
  165. X (void , glUniformMatrix2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  166. X (void , glUniformMatrix3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  167. X (void , glUniformMatrix4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  168. X (void , glUseProgram, (GLuint program)) \
  169. X (void , glValidateProgram, (GLuint program)) \
  170. X (void , glVertexAttrib1f, (GLuint index, GLfloat x)) \
  171. X (void , glVertexAttrib1fv, (GLuint index, const GLfloat *v)) \
  172. X (void , glVertexAttrib2f, (GLuint index, GLfloat x, GLfloat y)) \
  173. X (void , glVertexAttrib2fv, (GLuint index, const GLfloat *v)) \
  174. X (void , glVertexAttrib3f, (GLuint index, GLfloat x, GLfloat y, GLfloat z)) \
  175. X (void , glVertexAttrib3fv, (GLuint index, const GLfloat *v)) \
  176. X (void , glVertexAttrib4f, (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)) \
  177. X (void , glVertexAttrib4fv, (GLuint index, const GLfloat *v)) \
  178. X (void , glVertexAttribPointer, (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer)) \
  179. X (void , glViewport, (GLint x, GLint y, GLsizei width, GLsizei height))
  180. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0 \
  181. X (void , glReadBuffer, (GLenum src)) \
  182. X (void , glDrawRangeElements, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices)) \
  183. X (void , glTexImage3D, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)) \
  184. 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)) \
  185. X (void , glCopyTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \
  186. X (void , glCompressedTexImage3D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)) \
  187. 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)) \
  188. X (void , glGenQueries, (GLsizei n, GLuint *ids)) \
  189. X (void , glDeleteQueries, (GLsizei n, const GLuint *ids)) \
  190. X (GLboolean , glIsQuery, (GLuint id)) \
  191. X (void , glBeginQuery, (GLenum target, GLuint id)) \
  192. X (void , glEndQuery, (GLenum target)) \
  193. X (void , glGetQueryiv, (GLenum target, GLenum pname, GLint *params)) \
  194. X (void , glGetQueryObjectuiv, (GLuint id, GLenum pname, GLuint *params)) \
  195. X (GLboolean , glUnmapBuffer, (GLenum target)) \
  196. X (void , glGetBufferPointerv, (GLenum target, GLenum pname, void **params)) \
  197. X (void , glDrawBuffers, (GLsizei n, const GLenum *bufs)) \
  198. X (void , glUniformMatrix2x3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  199. X (void , glUniformMatrix3x2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  200. X (void , glUniformMatrix2x4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  201. X (void , glUniformMatrix4x2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  202. X (void , glUniformMatrix3x4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  203. X (void , glUniformMatrix4x3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  204. X (void , glBlitFramebuffer, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)) \
  205. X (void , glRenderbufferStorageMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) \
  206. X (void , glFramebufferTextureLayer, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)) \
  207. X (void * , glMapBufferRange, (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)) \
  208. X (void , glFlushMappedBufferRange, (GLenum target, GLintptr offset, GLsizeiptr length)) \
  209. X (void , glBindVertexArray, (GLuint array)) \
  210. X (void , glDeleteVertexArrays, (GLsizei n, const GLuint *arrays)) \
  211. X (void , glGenVertexArrays, (GLsizei n, GLuint *arrays)) \
  212. X (GLboolean , glIsVertexArray, (GLuint array)) \
  213. X (void , glGetIntegeri_v, (GLenum target, GLuint index, GLint *data)) \
  214. X (void , glBeginTransformFeedback, (GLenum primitiveMode)) \
  215. X (void , glEndTransformFeedback, ()) \
  216. X (void , glBindBufferRange, (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)) \
  217. X (void , glBindBufferBase, (GLenum target, GLuint index, GLuint buffer)) \
  218. X (void , glTransformFeedbackVaryings, (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode)) \
  219. X (void , glGetTransformFeedbackVarying, (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name)) \
  220. X (void , glVertexAttribIPointer, (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)) \
  221. X (void , glGetVertexAttribIiv, (GLuint index, GLenum pname, GLint *params)) \
  222. X (void , glGetVertexAttribIuiv, (GLuint index, GLenum pname, GLuint *params)) \
  223. X (void , glVertexAttribI4i, (GLuint index, GLint x, GLint y, GLint z, GLint w)) \
  224. X (void , glVertexAttribI4ui, (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)) \
  225. X (void , glVertexAttribI4iv, (GLuint index, const GLint *v)) \
  226. X (void , glVertexAttribI4uiv, (GLuint index, const GLuint *v)) \
  227. X (void , glGetUniformuiv, (GLuint program, GLint location, GLuint *params)) \
  228. X (GLint , glGetFragDataLocation, (GLuint program, const GLchar *name)) \
  229. X (void , glUniform1ui, (GLint location, GLuint v0)) \
  230. X (void , glUniform2ui, (GLint location, GLuint v0, GLuint v1)) \
  231. X (void , glUniform3ui, (GLint location, GLuint v0, GLuint v1, GLuint v2)) \
  232. X (void , glUniform4ui, (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)) \
  233. X (void , glUniform1uiv, (GLint location, GLsizei count, const GLuint *value)) \
  234. X (void , glUniform2uiv, (GLint location, GLsizei count, const GLuint *value)) \
  235. X (void , glUniform3uiv, (GLint location, GLsizei count, const GLuint *value)) \
  236. X (void , glUniform4uiv, (GLint location, GLsizei count, const GLuint *value)) \
  237. X (void , glClearBufferiv, (GLenum buffer, GLint drawbuffer, const GLint *value)) \
  238. X (void , glClearBufferuiv, (GLenum buffer, GLint drawbuffer, const GLuint *value)) \
  239. X (void , glClearBufferfv, (GLenum buffer, GLint drawbuffer, const GLfloat *value)) \
  240. X (void , glClearBufferfi, (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)) \
  241. X (const GLubyte *, glGetStringi, (GLenum name, GLuint index)) \
  242. X (void , glCopyBufferSubData, (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)) \
  243. X (void , glGetUniformIndices, (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices)) \
  244. X (void , glGetActiveUniformsiv, (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params)) \
  245. X (GLuint , glGetUniformBlockIndex, (GLuint program, const GLchar *uniformBlockName)) \
  246. X (void , glGetActiveUniformBlockiv, (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params)) \
  247. X (void , glGetActiveUniformBlockName, (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName)) \
  248. X (void , glUniformBlockBinding, (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding)) \
  249. X (void , glDrawArraysInstanced, (GLenum mode, GLint first, GLsizei count, GLsizei instancecount)) \
  250. X (void , glDrawElementsInstanced, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount)) \
  251. X (GLsync , glFenceSync, (GLenum condition, GLbitfield flags)) \
  252. X (GLboolean , glIsSync, (GLsync sync)) \
  253. X (void , glDeleteSync, (GLsync sync)) \
  254. X (GLenum , glClientWaitSync, (GLsync sync, GLbitfield flags, GLuint64 timeout)) \
  255. X (void , glWaitSync, (GLsync sync, GLbitfield flags, GLuint64 timeout)) \
  256. X (void , glGetInteger64v, (GLenum pname, GLint64 *data)) \
  257. X (void , glGetSynciv, (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values)) \
  258. X (void , glGetInteger64i_v, (GLenum target, GLuint index, GLint64 *data)) \
  259. X (void , glGetBufferParameteri64v, (GLenum target, GLenum pname, GLint64 *params)) \
  260. X (void , glGenSamplers, (GLsizei count, GLuint *samplers)) \
  261. X (void , glDeleteSamplers, (GLsizei count, const GLuint *samplers)) \
  262. X (GLboolean , glIsSampler, (GLuint sampler)) \
  263. X (void , glBindSampler, (GLuint unit, GLuint sampler)) \
  264. X (void , glSamplerParameteri, (GLuint sampler, GLenum pname, GLint param)) \
  265. X (void , glSamplerParameteriv, (GLuint sampler, GLenum pname, const GLint *param)) \
  266. X (void , glSamplerParameterf, (GLuint sampler, GLenum pname, GLfloat param)) \
  267. X (void , glSamplerParameterfv, (GLuint sampler, GLenum pname, const GLfloat *param)) \
  268. X (void , glGetSamplerParameteriv, (GLuint sampler, GLenum pname, GLint *params)) \
  269. X (void , glGetSamplerParameterfv, (GLuint sampler, GLenum pname, GLfloat *params)) \
  270. X (void , glVertexAttribDivisor, (GLuint index, GLuint divisor)) \
  271. X (void , glBindTransformFeedback, (GLenum target, GLuint id)) \
  272. X (void , glDeleteTransformFeedbacks, (GLsizei n, const GLuint *ids)) \
  273. X (void , glGenTransformFeedbacks, (GLsizei n, GLuint *ids)) \
  274. X (GLboolean , glIsTransformFeedback, (GLuint id)) \
  275. X (void , glPauseTransformFeedback, ()) \
  276. X (void , glResumeTransformFeedback, ()) \
  277. X (void , glGetProgramBinary, (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary)) \
  278. X (void , glProgramBinary, (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length)) \
  279. X (void , glProgramParameteri, (GLuint program, GLenum pname, GLint value)) \
  280. X (void , glInvalidateFramebuffer, (GLenum target, GLsizei numAttachments, const GLenum *attachments)) \
  281. X (void , glInvalidateSubFramebuffer, (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height)) \
  282. X (void , glTexStorage2D, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)) \
  283. X (void , glTexStorage3D, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)) \
  284. X (void , glGetInternalformativ, (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params))
  285. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1 \
  286. X (void , glDispatchCompute, (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)) \
  287. X (void , glDispatchComputeIndirect, (GLintptr indirect)) \
  288. X (void , glDrawArraysIndirect, (GLenum mode, const void *indirect)) \
  289. X (void , glDrawElementsIndirect, (GLenum mode, GLenum type, const void *indirect)) \
  290. X (void , glFramebufferParameteri, (GLenum target, GLenum pname, GLint param)) \
  291. X (void , glGetFramebufferParameteriv, (GLenum target, GLenum pname, GLint *params)) \
  292. X (void , glGetProgramInterfaceiv, (GLuint program, GLenum programInterface, GLenum pname, GLint *params)) \
  293. X (GLuint , glGetProgramResourceIndex, (GLuint program, GLenum programInterface, const GLchar *name)) \
  294. X (void , glGetProgramResourceName, (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name)) \
  295. X (void , glGetProgramResourceiv, (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLint *params)) \
  296. X (GLint , glGetProgramResourceLocation, (GLuint program, GLenum programInterface, const GLchar *name)) \
  297. X (void , glUseProgramStages, (GLuint pipeline, GLbitfield stages, GLuint program)) \
  298. X (void , glActiveShaderProgram, (GLuint pipeline, GLuint program)) \
  299. X (GLuint , glCreateShaderProgramv, (GLenum type, GLsizei count, const GLchar *const*strings)) \
  300. X (void , glBindProgramPipeline, (GLuint pipeline)) \
  301. X (void , glDeleteProgramPipelines, (GLsizei n, const GLuint *pipelines)) \
  302. X (void , glGenProgramPipelines, (GLsizei n, GLuint *pipelines)) \
  303. X (GLboolean , glIsProgramPipeline, (GLuint pipeline)) \
  304. X (void , glGetProgramPipelineiv, (GLuint pipeline, GLenum pname, GLint *params)) \
  305. X (void , glProgramUniform1i, (GLuint program, GLint location, GLint v0)) \
  306. X (void , glProgramUniform2i, (GLuint program, GLint location, GLint v0, GLint v1)) \
  307. X (void , glProgramUniform3i, (GLuint program, GLint location, GLint v0, GLint v1, GLint v2)) \
  308. X (void , glProgramUniform4i, (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)) \
  309. X (void , glProgramUniform1ui, (GLuint program, GLint location, GLuint v0)) \
  310. X (void , glProgramUniform2ui, (GLuint program, GLint location, GLuint v0, GLuint v1)) \
  311. X (void , glProgramUniform3ui, (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)) \
  312. X (void , glProgramUniform4ui, (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)) \
  313. X (void , glProgramUniform1f, (GLuint program, GLint location, GLfloat v0)) \
  314. X (void , glProgramUniform2f, (GLuint program, GLint location, GLfloat v0, GLfloat v1)) \
  315. X (void , glProgramUniform3f, (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)) \
  316. X (void , glProgramUniform4f, (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)) \
  317. X (void , glProgramUniform1iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \
  318. X (void , glProgramUniform2iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \
  319. X (void , glProgramUniform3iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \
  320. X (void , glProgramUniform4iv, (GLuint program, GLint location, GLsizei count, const GLint *value)) \
  321. X (void , glProgramUniform1uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \
  322. X (void , glProgramUniform2uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \
  323. X (void , glProgramUniform3uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \
  324. X (void , glProgramUniform4uiv, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \
  325. X (void , glProgramUniform1fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \
  326. X (void , glProgramUniform2fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \
  327. X (void , glProgramUniform3fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \
  328. X (void , glProgramUniform4fv, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \
  329. X (void , glProgramUniformMatrix2fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  330. X (void , glProgramUniformMatrix3fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  331. X (void , glProgramUniformMatrix4fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  332. X (void , glProgramUniformMatrix2x3fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  333. X (void , glProgramUniformMatrix3x2fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  334. X (void , glProgramUniformMatrix2x4fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  335. X (void , glProgramUniformMatrix4x2fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  336. X (void , glProgramUniformMatrix3x4fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  337. X (void , glProgramUniformMatrix4x3fv, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  338. X (void , glValidateProgramPipeline, (GLuint pipeline)) \
  339. X (void , glGetProgramPipelineInfoLog, (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \
  340. X (void , glBindImageTexture, (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)) \
  341. X (void , glGetBooleani_v, (GLenum target, GLuint index, GLboolean *data)) \
  342. X (void , glMemoryBarrier, (GLbitfield barriers)) \
  343. X (void , glMemoryBarrierByRegion, (GLbitfield barriers)) \
  344. X (void , glTexStorage2DMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)) \
  345. X (void , glGetMultisamplefv, (GLenum pname, GLuint index, GLfloat *val)) \
  346. X (void , glSampleMaski, (GLuint maskNumber, GLbitfield mask)) \
  347. X (void , glGetTexLevelParameteriv, (GLenum target, GLint level, GLenum pname, GLint *params)) \
  348. X (void , glGetTexLevelParameterfv, (GLenum target, GLint level, GLenum pname, GLfloat *params)) \
  349. X (void , glBindVertexBuffer, (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)) \
  350. X (void , glVertexAttribFormat, (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)) \
  351. X (void , glVertexAttribIFormat, (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)) \
  352. X (void , glVertexAttribBinding, (GLuint attribindex, GLuint bindingindex)) \
  353. X (void , glVertexBindingDivisor, (GLuint bindingindex, GLuint divisor))
  354. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2 \
  355. X (void , glBlendBarrier, ()) \
  356. 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)) \
  357. X (void , glDebugMessageControl, (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled)) \
  358. X (void , glDebugMessageInsert, (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf)) \
  359. X (void , glDebugMessageCallback, (GLDEBUGPROC callback, const void *userParam)) \
  360. X (GLuint , glGetDebugMessageLog, (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog)) \
  361. X (void , glPushDebugGroup, (GLenum source, GLuint id, GLsizei length, const GLchar *message)) \
  362. X (void , glPopDebugGroup, ()) \
  363. X (void , glObjectLabel, (GLenum identifier, GLuint name, GLsizei length, const GLchar *label)) \
  364. X (void , glGetObjectLabel, (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label)) \
  365. X (void , glObjectPtrLabel, (const void *ptr, GLsizei length, const GLchar *label)) \
  366. X (void , glGetObjectPtrLabel, (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label)) \
  367. X (void , glGetPointerv, (GLenum pname, void **params)) \
  368. X (void , glEnablei, (GLenum target, GLuint index)) \
  369. X (void , glDisablei, (GLenum target, GLuint index)) \
  370. X (void , glBlendEquationi, (GLuint buf, GLenum mode)) \
  371. X (void , glBlendEquationSeparatei, (GLuint buf, GLenum modeRGB, GLenum modeAlpha)) \
  372. X (void , glBlendFunci, (GLuint buf, GLenum src, GLenum dst)) \
  373. X (void , glBlendFuncSeparatei, (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)) \
  374. X (void , glColorMaski, (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)) \
  375. X (GLboolean , glIsEnabledi, (GLenum target, GLuint index)) \
  376. X (void , glDrawElementsBaseVertex, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \
  377. X (void , glDrawRangeElementsBaseVertex, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \
  378. X (void , glDrawElementsInstancedBaseVertex, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex)) \
  379. X (void , glFramebufferTexture, (GLenum target, GLenum attachment, GLuint texture, GLint level)) \
  380. X (void , glPrimitiveBoundingBox, (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW)) \
  381. X (GLenum , glGetGraphicsResetStatus, ()) \
  382. X (void , glReadnPixels, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data)) \
  383. X (void , glGetnUniformfv, (GLuint program, GLint location, GLsizei bufSize, GLfloat *params)) \
  384. X (void , glGetnUniformiv, (GLuint program, GLint location, GLsizei bufSize, GLint *params)) \
  385. X (void , glGetnUniformuiv, (GLuint program, GLint location, GLsizei bufSize, GLuint *params)) \
  386. X (void , glMinSampleShading, (GLfloat value)) \
  387. X (void , glPatchParameteri, (GLenum pname, GLint value)) \
  388. X (void , glTexParameterIiv, (GLenum target, GLenum pname, const GLint *params)) \
  389. X (void , glTexParameterIuiv, (GLenum target, GLenum pname, const GLuint *params)) \
  390. X (void , glGetTexParameterIiv, (GLenum target, GLenum pname, GLint *params)) \
  391. X (void , glGetTexParameterIuiv, (GLenum target, GLenum pname, GLuint *params)) \
  392. X (void , glSamplerParameterIiv, (GLuint sampler, GLenum pname, const GLint *param)) \
  393. X (void , glSamplerParameterIuiv, (GLuint sampler, GLenum pname, const GLuint *param)) \
  394. X (void , glGetSamplerParameterIiv, (GLuint sampler, GLenum pname, GLint *params)) \
  395. X (void , glGetSamplerParameterIuiv, (GLuint sampler, GLenum pname, GLuint *params)) \
  396. X (void , glTexBuffer, (GLenum target, GLenum internalformat, GLuint buffer)) \
  397. X (void , glTexBufferRange, (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)) \
  398. X (void , glTexStorage3DMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations))
  399. #define JUCE_GL_FUNCTIONS_GL_AMD_framebuffer_multisample_advanced \
  400. X (void , glRenderbufferStorageMultisampleAdvancedAMD, (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height)) \
  401. X (void , glNamedRenderbufferStorageMultisampleAdvancedAMD, (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height))
  402. #define JUCE_GL_FUNCTIONS_GL_AMD_performance_monitor \
  403. X (void , glGetPerfMonitorGroupsAMD, (GLint *numGroups, GLsizei groupsSize, GLuint *groups)) \
  404. X (void , glGetPerfMonitorCountersAMD, (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters)) \
  405. X (void , glGetPerfMonitorGroupStringAMD, (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString)) \
  406. X (void , glGetPerfMonitorCounterStringAMD, (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString)) \
  407. X (void , glGetPerfMonitorCounterInfoAMD, (GLuint group, GLuint counter, GLenum pname, void *data)) \
  408. X (void , glGenPerfMonitorsAMD, (GLsizei n, GLuint *monitors)) \
  409. X (void , glDeletePerfMonitorsAMD, (GLsizei n, GLuint *monitors)) \
  410. X (void , glSelectPerfMonitorCountersAMD, (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList)) \
  411. X (void , glBeginPerfMonitorAMD, (GLuint monitor)) \
  412. X (void , glEndPerfMonitorAMD, (GLuint monitor)) \
  413. X (void , glGetPerfMonitorCounterDataAMD, (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten))
  414. #define JUCE_GL_FUNCTIONS_GL_ANGLE_framebuffer_blit \
  415. X (void , glBlitFramebufferANGLE, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter))
  416. #define JUCE_GL_FUNCTIONS_GL_ANGLE_framebuffer_multisample \
  417. X (void , glRenderbufferStorageMultisampleANGLE, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height))
  418. #define JUCE_GL_FUNCTIONS_GL_ANGLE_instanced_arrays \
  419. X (void , glDrawArraysInstancedANGLE, (GLenum mode, GLint first, GLsizei count, GLsizei primcount)) \
  420. X (void , glDrawElementsInstancedANGLE, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount)) \
  421. X (void , glVertexAttribDivisorANGLE, (GLuint index, GLuint divisor))
  422. #define JUCE_GL_FUNCTIONS_GL_ANGLE_translated_shader_source \
  423. X (void , glGetTranslatedShaderSourceANGLE, (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source))
  424. #define JUCE_GL_FUNCTIONS_GL_APPLE_copy_texture_levels \
  425. X (void , glCopyTextureLevelsAPPLE, (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount))
  426. #define JUCE_GL_FUNCTIONS_GL_APPLE_framebuffer_multisample \
  427. X (void , glRenderbufferStorageMultisampleAPPLE, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) \
  428. X (void , glResolveMultisampleFramebufferAPPLE, ())
  429. #define JUCE_GL_FUNCTIONS_GL_APPLE_sync \
  430. X (GLsync , glFenceSyncAPPLE, (GLenum condition, GLbitfield flags)) \
  431. X (GLboolean , glIsSyncAPPLE, (GLsync sync)) \
  432. X (void , glDeleteSyncAPPLE, (GLsync sync)) \
  433. X (GLenum , glClientWaitSyncAPPLE, (GLsync sync, GLbitfield flags, GLuint64 timeout)) \
  434. X (void , glWaitSyncAPPLE, (GLsync sync, GLbitfield flags, GLuint64 timeout)) \
  435. X (void , glGetInteger64vAPPLE, (GLenum pname, GLint64 *params)) \
  436. X (void , glGetSyncivAPPLE, (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values))
  437. #define JUCE_GL_FUNCTIONS_GL_EXT_EGL_image_storage \
  438. X (void , glEGLImageTargetTexStorageEXT, (GLenum target, GLeglImageOES image, const GLint* attrib_list)) \
  439. X (void , glEGLImageTargetTextureStorageEXT, (GLuint texture, GLeglImageOES image, const GLint* attrib_list))
  440. #define JUCE_GL_FUNCTIONS_GL_EXT_base_instance \
  441. X (void , glDrawArraysInstancedBaseInstanceEXT, (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance)) \
  442. X (void , glDrawElementsInstancedBaseInstanceEXT, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance)) \
  443. X (void , glDrawElementsInstancedBaseVertexBaseInstanceEXT, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance))
  444. #define JUCE_GL_FUNCTIONS_GL_EXT_blend_func_extended \
  445. X (void , glBindFragDataLocationIndexedEXT, (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name)) \
  446. X (void , glBindFragDataLocationEXT, (GLuint program, GLuint color, const GLchar *name)) \
  447. X (GLint , glGetProgramResourceLocationIndexEXT, (GLuint program, GLenum programInterface, const GLchar *name)) \
  448. X (GLint , glGetFragDataIndexEXT, (GLuint program, const GLchar *name))
  449. #define JUCE_GL_FUNCTIONS_GL_EXT_blend_minmax \
  450. X (void , glBlendEquationEXT, (GLenum mode))
  451. #define JUCE_GL_FUNCTIONS_GL_EXT_buffer_storage \
  452. X (void , glBufferStorageEXT, (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags))
  453. #define JUCE_GL_FUNCTIONS_GL_EXT_clear_texture \
  454. X (void , glClearTexImageEXT, (GLuint texture, GLint level, GLenum format, GLenum type, const void *data)) \
  455. 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))
  456. #define JUCE_GL_FUNCTIONS_GL_EXT_clip_control \
  457. X (void , glClipControlEXT, (GLenum origin, GLenum depth))
  458. #define JUCE_GL_FUNCTIONS_GL_EXT_copy_image \
  459. 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))
  460. #define JUCE_GL_FUNCTIONS_GL_EXT_debug_label \
  461. X (void , glLabelObjectEXT, (GLenum type, GLuint object, GLsizei length, const GLchar *label)) \
  462. X (void , glGetObjectLabelEXT, (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label))
  463. #define JUCE_GL_FUNCTIONS_GL_EXT_debug_marker \
  464. X (void , glInsertEventMarkerEXT, (GLsizei length, const GLchar *marker)) \
  465. X (void , glPushGroupMarkerEXT, (GLsizei length, const GLchar *marker)) \
  466. X (void , glPopGroupMarkerEXT, ())
  467. #define JUCE_GL_FUNCTIONS_GL_EXT_discard_framebuffer \
  468. X (void , glDiscardFramebufferEXT, (GLenum target, GLsizei numAttachments, const GLenum *attachments))
  469. #define JUCE_GL_FUNCTIONS_GL_EXT_disjoint_timer_query \
  470. X (void , glGenQueriesEXT, (GLsizei n, GLuint *ids)) \
  471. X (void , glDeleteQueriesEXT, (GLsizei n, const GLuint *ids)) \
  472. X (GLboolean , glIsQueryEXT, (GLuint id)) \
  473. X (void , glBeginQueryEXT, (GLenum target, GLuint id)) \
  474. X (void , glEndQueryEXT, (GLenum target)) \
  475. X (void , glQueryCounterEXT, (GLuint id, GLenum target)) \
  476. X (void , glGetQueryivEXT, (GLenum target, GLenum pname, GLint *params)) \
  477. X (void , glGetQueryObjectivEXT, (GLuint id, GLenum pname, GLint *params)) \
  478. X (void , glGetQueryObjectuivEXT, (GLuint id, GLenum pname, GLuint *params)) \
  479. X (void , glGetQueryObjecti64vEXT, (GLuint id, GLenum pname, GLint64 *params)) \
  480. X (void , glGetQueryObjectui64vEXT, (GLuint id, GLenum pname, GLuint64 *params)) \
  481. X (void , glGetInteger64vEXT, (GLenum pname, GLint64 *data))
  482. #define JUCE_GL_FUNCTIONS_GL_EXT_draw_buffers \
  483. X (void , glDrawBuffersEXT, (GLsizei n, const GLenum *bufs))
  484. #define JUCE_GL_FUNCTIONS_GL_EXT_draw_buffers_indexed \
  485. X (void , glEnableiEXT, (GLenum target, GLuint index)) \
  486. X (void , glDisableiEXT, (GLenum target, GLuint index)) \
  487. X (void , glBlendEquationiEXT, (GLuint buf, GLenum mode)) \
  488. X (void , glBlendEquationSeparateiEXT, (GLuint buf, GLenum modeRGB, GLenum modeAlpha)) \
  489. X (void , glBlendFunciEXT, (GLuint buf, GLenum src, GLenum dst)) \
  490. X (void , glBlendFuncSeparateiEXT, (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)) \
  491. X (void , glColorMaskiEXT, (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)) \
  492. X (GLboolean , glIsEnablediEXT, (GLenum target, GLuint index))
  493. #define JUCE_GL_FUNCTIONS_GL_EXT_draw_elements_base_vertex \
  494. X (void , glDrawElementsBaseVertexEXT, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \
  495. X (void , glDrawRangeElementsBaseVertexEXT, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \
  496. X (void , glDrawElementsInstancedBaseVertexEXT, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex)) \
  497. X (void , glMultiDrawElementsBaseVertexEXT, (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex))
  498. #define JUCE_GL_FUNCTIONS_GL_EXT_draw_instanced \
  499. X (void , glDrawArraysInstancedEXT, (GLenum mode, GLint start, GLsizei count, GLsizei primcount)) \
  500. X (void , glDrawElementsInstancedEXT, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount))
  501. #define JUCE_GL_FUNCTIONS_GL_EXT_draw_transform_feedback \
  502. X (void , glDrawTransformFeedbackEXT, (GLenum mode, GLuint id)) \
  503. X (void , glDrawTransformFeedbackInstancedEXT, (GLenum mode, GLuint id, GLsizei instancecount))
  504. #define JUCE_GL_FUNCTIONS_GL_EXT_external_buffer \
  505. X (void , glBufferStorageExternalEXT, (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags)) \
  506. X (void , glNamedBufferStorageExternalEXT, (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags))
  507. #define JUCE_GL_FUNCTIONS_GL_EXT_geometry_shader \
  508. X (void , glFramebufferTextureEXT, (GLenum target, GLenum attachment, GLuint texture, GLint level))
  509. #define JUCE_GL_FUNCTIONS_GL_EXT_instanced_arrays \
  510. X (void , glVertexAttribDivisorEXT, (GLuint index, GLuint divisor))
  511. #define JUCE_GL_FUNCTIONS_GL_EXT_map_buffer_range \
  512. X (void * , glMapBufferRangeEXT, (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)) \
  513. X (void , glFlushMappedBufferRangeEXT, (GLenum target, GLintptr offset, GLsizeiptr length))
  514. #define JUCE_GL_FUNCTIONS_GL_EXT_memory_object \
  515. X (void , glGetUnsignedBytevEXT, (GLenum pname, GLubyte *data)) \
  516. X (void , glGetUnsignedBytei_vEXT, (GLenum target, GLuint index, GLubyte *data)) \
  517. X (void , glDeleteMemoryObjectsEXT, (GLsizei n, const GLuint *memoryObjects)) \
  518. X (GLboolean , glIsMemoryObjectEXT, (GLuint memoryObject)) \
  519. X (void , glCreateMemoryObjectsEXT, (GLsizei n, GLuint *memoryObjects)) \
  520. X (void , glMemoryObjectParameterivEXT, (GLuint memoryObject, GLenum pname, const GLint *params)) \
  521. X (void , glGetMemoryObjectParameterivEXT, (GLuint memoryObject, GLenum pname, GLint *params)) \
  522. X (void , glTexStorageMem2DEXT, (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset)) \
  523. X (void , glTexStorageMem2DMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)) \
  524. X (void , glTexStorageMem3DEXT, (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset)) \
  525. X (void , glTexStorageMem3DMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)) \
  526. X (void , glBufferStorageMemEXT, (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset)) \
  527. X (void , glTextureStorageMem2DEXT, (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset)) \
  528. X (void , glTextureStorageMem2DMultisampleEXT, (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)) \
  529. X (void , glTextureStorageMem3DEXT, (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset)) \
  530. X (void , glTextureStorageMem3DMultisampleEXT, (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset)) \
  531. X (void , glNamedBufferStorageMemEXT, (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset)) \
  532. X (void , glTexStorageMem1DEXT, (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset)) \
  533. X (void , glTextureStorageMem1DEXT, (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset))
  534. #define JUCE_GL_FUNCTIONS_GL_EXT_memory_object_fd \
  535. X (void , glImportMemoryFdEXT, (GLuint memory, GLuint64 size, GLenum handleType, GLint fd))
  536. #define JUCE_GL_FUNCTIONS_GL_EXT_memory_object_win32 \
  537. X (void , glImportMemoryWin32HandleEXT, (GLuint memory, GLuint64 size, GLenum handleType, void *handle)) \
  538. X (void , glImportMemoryWin32NameEXT, (GLuint memory, GLuint64 size, GLenum handleType, const void *name))
  539. #define JUCE_GL_FUNCTIONS_GL_EXT_multi_draw_arrays \
  540. X (void , glMultiDrawArraysEXT, (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount)) \
  541. X (void , glMultiDrawElementsEXT, (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount))
  542. #define JUCE_GL_FUNCTIONS_GL_EXT_multi_draw_indirect \
  543. X (void , glMultiDrawArraysIndirectEXT, (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride)) \
  544. X (void , glMultiDrawElementsIndirectEXT, (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride))
  545. #define JUCE_GL_FUNCTIONS_GL_EXT_multisampled_render_to_texture \
  546. X (void , glRenderbufferStorageMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) \
  547. X (void , glFramebufferTexture2DMultisampleEXT, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples))
  548. #define JUCE_GL_FUNCTIONS_GL_EXT_multiview_draw_buffers \
  549. X (void , glReadBufferIndexedEXT, (GLenum src, GLint index)) \
  550. X (void , glDrawBuffersIndexedEXT, (GLint n, const GLenum *location, const GLint *indices)) \
  551. X (void , glGetIntegeri_vEXT, (GLenum target, GLuint index, GLint *data))
  552. #define JUCE_GL_FUNCTIONS_GL_EXT_polygon_offset_clamp \
  553. X (void , glPolygonOffsetClampEXT, (GLfloat factor, GLfloat units, GLfloat clamp))
  554. #define JUCE_GL_FUNCTIONS_GL_EXT_primitive_bounding_box \
  555. X (void , glPrimitiveBoundingBoxEXT, (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW))
  556. #define JUCE_GL_FUNCTIONS_GL_EXT_raster_multisample \
  557. X (void , glRasterSamplesEXT, (GLuint samples, GLboolean fixedsamplelocations))
  558. #define JUCE_GL_FUNCTIONS_GL_EXT_robustness \
  559. X (GLenum , glGetGraphicsResetStatusEXT, ()) \
  560. X (void , glReadnPixelsEXT, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data)) \
  561. X (void , glGetnUniformfvEXT, (GLuint program, GLint location, GLsizei bufSize, GLfloat *params)) \
  562. X (void , glGetnUniformivEXT, (GLuint program, GLint location, GLsizei bufSize, GLint *params))
  563. #define JUCE_GL_FUNCTIONS_GL_EXT_semaphore \
  564. X (void , glGenSemaphoresEXT, (GLsizei n, GLuint *semaphores)) \
  565. X (void , glDeleteSemaphoresEXT, (GLsizei n, const GLuint *semaphores)) \
  566. X (GLboolean , glIsSemaphoreEXT, (GLuint semaphore)) \
  567. X (void , glSemaphoreParameterui64vEXT, (GLuint semaphore, GLenum pname, const GLuint64 *params)) \
  568. X (void , glGetSemaphoreParameterui64vEXT, (GLuint semaphore, GLenum pname, GLuint64 *params)) \
  569. X (void , glWaitSemaphoreEXT, (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts)) \
  570. X (void , glSignalSemaphoreEXT, (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts))
  571. #define JUCE_GL_FUNCTIONS_GL_EXT_semaphore_fd \
  572. X (void , glImportSemaphoreFdEXT, (GLuint semaphore, GLenum handleType, GLint fd))
  573. #define JUCE_GL_FUNCTIONS_GL_EXT_semaphore_win32 \
  574. X (void , glImportSemaphoreWin32HandleEXT, (GLuint semaphore, GLenum handleType, void *handle)) \
  575. X (void , glImportSemaphoreWin32NameEXT, (GLuint semaphore, GLenum handleType, const void *name))
  576. #define JUCE_GL_FUNCTIONS_GL_EXT_separate_shader_objects \
  577. X (void , glUseShaderProgramEXT, (GLenum type, GLuint program)) \
  578. X (void , glActiveProgramEXT, (GLuint program)) \
  579. X (GLuint , glCreateShaderProgramEXT, (GLenum type, const GLchar *string)) \
  580. X (void , glActiveShaderProgramEXT, (GLuint pipeline, GLuint program)) \
  581. X (void , glBindProgramPipelineEXT, (GLuint pipeline)) \
  582. X (GLuint , glCreateShaderProgramvEXT, (GLenum type, GLsizei count, const GLchar **strings)) \
  583. X (void , glDeleteProgramPipelinesEXT, (GLsizei n, const GLuint *pipelines)) \
  584. X (void , glGenProgramPipelinesEXT, (GLsizei n, GLuint *pipelines)) \
  585. X (void , glGetProgramPipelineInfoLogEXT, (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog)) \
  586. X (void , glGetProgramPipelineivEXT, (GLuint pipeline, GLenum pname, GLint *params)) \
  587. X (GLboolean , glIsProgramPipelineEXT, (GLuint pipeline)) \
  588. X (void , glProgramParameteriEXT, (GLuint program, GLenum pname, GLint value)) \
  589. X (void , glProgramUniform1fEXT, (GLuint program, GLint location, GLfloat v0)) \
  590. X (void , glProgramUniform1fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \
  591. X (void , glProgramUniform1iEXT, (GLuint program, GLint location, GLint v0)) \
  592. X (void , glProgramUniform1ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value)) \
  593. X (void , glProgramUniform2fEXT, (GLuint program, GLint location, GLfloat v0, GLfloat v1)) \
  594. X (void , glProgramUniform2fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \
  595. X (void , glProgramUniform2iEXT, (GLuint program, GLint location, GLint v0, GLint v1)) \
  596. X (void , glProgramUniform2ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value)) \
  597. X (void , glProgramUniform3fEXT, (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)) \
  598. X (void , glProgramUniform3fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \
  599. X (void , glProgramUniform3iEXT, (GLuint program, GLint location, GLint v0, GLint v1, GLint v2)) \
  600. X (void , glProgramUniform3ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value)) \
  601. X (void , glProgramUniform4fEXT, (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)) \
  602. X (void , glProgramUniform4fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value)) \
  603. X (void , glProgramUniform4iEXT, (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)) \
  604. X (void , glProgramUniform4ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value)) \
  605. X (void , glProgramUniformMatrix2fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  606. X (void , glProgramUniformMatrix3fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  607. X (void , glProgramUniformMatrix4fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  608. X (void , glUseProgramStagesEXT, (GLuint pipeline, GLbitfield stages, GLuint program)) \
  609. X (void , glValidateProgramPipelineEXT, (GLuint pipeline)) \
  610. X (void , glProgramUniform1uiEXT, (GLuint program, GLint location, GLuint v0)) \
  611. X (void , glProgramUniform2uiEXT, (GLuint program, GLint location, GLuint v0, GLuint v1)) \
  612. X (void , glProgramUniform3uiEXT, (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)) \
  613. X (void , glProgramUniform4uiEXT, (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)) \
  614. X (void , glProgramUniform1uivEXT, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \
  615. X (void , glProgramUniform2uivEXT, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \
  616. X (void , glProgramUniform3uivEXT, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \
  617. X (void , glProgramUniform4uivEXT, (GLuint program, GLint location, GLsizei count, const GLuint *value)) \
  618. X (void , glProgramUniformMatrix2x3fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  619. X (void , glProgramUniformMatrix3x2fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  620. X (void , glProgramUniformMatrix2x4fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  621. X (void , glProgramUniformMatrix4x2fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  622. X (void , glProgramUniformMatrix3x4fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  623. X (void , glProgramUniformMatrix4x3fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))
  624. #define JUCE_GL_FUNCTIONS_GL_EXT_shader_framebuffer_fetch_non_coherent \
  625. X (void , glFramebufferFetchBarrierEXT, ())
  626. #define JUCE_GL_FUNCTIONS_GL_EXT_shader_pixel_local_storage2 \
  627. X (void , glFramebufferPixelLocalStorageSizeEXT, (GLuint target, GLsizei size)) \
  628. X (GLsizei , glGetFramebufferPixelLocalStorageSizeEXT, (GLuint target)) \
  629. X (void , glClearPixelLocalStorageuiEXT, (GLsizei offset, GLsizei n, const GLuint *values))
  630. #define JUCE_GL_FUNCTIONS_GL_EXT_sparse_texture \
  631. X (void , glTexPageCommitmentEXT, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit))
  632. #define JUCE_GL_FUNCTIONS_GL_EXT_tessellation_shader \
  633. X (void , glPatchParameteriEXT, (GLenum pname, GLint value))
  634. #define JUCE_GL_FUNCTIONS_GL_EXT_texture_border_clamp \
  635. X (void , glTexParameterIivEXT, (GLenum target, GLenum pname, const GLint *params)) \
  636. X (void , glTexParameterIuivEXT, (GLenum target, GLenum pname, const GLuint *params)) \
  637. X (void , glGetTexParameterIivEXT, (GLenum target, GLenum pname, GLint *params)) \
  638. X (void , glGetTexParameterIuivEXT, (GLenum target, GLenum pname, GLuint *params)) \
  639. X (void , glSamplerParameterIivEXT, (GLuint sampler, GLenum pname, const GLint *param)) \
  640. X (void , glSamplerParameterIuivEXT, (GLuint sampler, GLenum pname, const GLuint *param)) \
  641. X (void , glGetSamplerParameterIivEXT, (GLuint sampler, GLenum pname, GLint *params)) \
  642. X (void , glGetSamplerParameterIuivEXT, (GLuint sampler, GLenum pname, GLuint *params))
  643. #define JUCE_GL_FUNCTIONS_GL_EXT_texture_buffer \
  644. X (void , glTexBufferEXT, (GLenum target, GLenum internalformat, GLuint buffer)) \
  645. X (void , glTexBufferRangeEXT, (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size))
  646. #define JUCE_GL_FUNCTIONS_GL_EXT_texture_storage \
  647. X (void , glTexStorage1DEXT, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)) \
  648. X (void , glTexStorage2DEXT, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)) \
  649. X (void , glTexStorage3DEXT, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)) \
  650. X (void , glTextureStorage1DEXT, (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)) \
  651. X (void , glTextureStorage2DEXT, (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)) \
  652. X (void , glTextureStorage3DEXT, (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth))
  653. #define JUCE_GL_FUNCTIONS_GL_EXT_texture_view \
  654. X (void , glTextureViewEXT, (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers))
  655. #define JUCE_GL_FUNCTIONS_GL_NV_timeline_semaphore \
  656. X (void , glCreateSemaphoresNV, (GLsizei n, GLuint *semaphores)) \
  657. X (void , glSemaphoreParameterivNV, (GLuint semaphore, GLenum pname, const GLint *params)) \
  658. X (void , glGetSemaphoreParameterivNV, (GLuint semaphore, GLenum pname, GLint *params))
  659. #define JUCE_GL_FUNCTIONS_GL_EXT_win32_keyed_mutex \
  660. X (GLboolean , glAcquireKeyedMutexWin32EXT, (GLuint memory, GLuint64 key, GLuint timeout)) \
  661. X (GLboolean , glReleaseKeyedMutexWin32EXT, (GLuint memory, GLuint64 key))
  662. #define JUCE_GL_FUNCTIONS_GL_EXT_window_rectangles \
  663. X (void , glWindowRectanglesEXT, (GLenum mode, GLsizei count, const GLint *box))
  664. #define JUCE_GL_FUNCTIONS_GL_IMG_bindless_texture \
  665. X (GLuint64 , glGetTextureHandleIMG, (GLuint texture)) \
  666. X (GLuint64 , glGetTextureSamplerHandleIMG, (GLuint texture, GLuint sampler)) \
  667. X (void , glUniformHandleui64IMG, (GLint location, GLuint64 value)) \
  668. X (void , glUniformHandleui64vIMG, (GLint location, GLsizei count, const GLuint64 *value)) \
  669. X (void , glProgramUniformHandleui64IMG, (GLuint program, GLint location, GLuint64 value)) \
  670. X (void , glProgramUniformHandleui64vIMG, (GLuint program, GLint location, GLsizei count, const GLuint64 *values))
  671. #define JUCE_GL_FUNCTIONS_GL_IMG_framebuffer_downsample \
  672. X (void , glFramebufferTexture2DDownsampleIMG, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale)) \
  673. X (void , glFramebufferTextureLayerDownsampleIMG, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale))
  674. #define JUCE_GL_FUNCTIONS_GL_IMG_multisampled_render_to_texture \
  675. X (void , glRenderbufferStorageMultisampleIMG, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)) \
  676. X (void , glFramebufferTexture2DMultisampleIMG, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples))
  677. #define JUCE_GL_FUNCTIONS_GL_INTEL_framebuffer_CMAA \
  678. X (void , glApplyFramebufferAttachmentCMAAINTEL, ())
  679. #define JUCE_GL_FUNCTIONS_GL_INTEL_performance_query \
  680. X (void , glBeginPerfQueryINTEL, (GLuint queryHandle)) \
  681. X (void , glCreatePerfQueryINTEL, (GLuint queryId, GLuint *queryHandle)) \
  682. X (void , glDeletePerfQueryINTEL, (GLuint queryHandle)) \
  683. X (void , glEndPerfQueryINTEL, (GLuint queryHandle)) \
  684. X (void , glGetFirstPerfQueryIdINTEL, (GLuint *queryId)) \
  685. X (void , glGetNextPerfQueryIdINTEL, (GLuint queryId, GLuint *nextQueryId)) \
  686. 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)) \
  687. X (void , glGetPerfQueryDataINTEL, (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten)) \
  688. X (void , glGetPerfQueryIdByNameINTEL, (GLchar *queryName, GLuint *queryId)) \
  689. X (void , glGetPerfQueryInfoINTEL, (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask))
  690. #define JUCE_GL_FUNCTIONS_GL_KHR_blend_equation_advanced \
  691. X (void , glBlendBarrierKHR, ())
  692. #define JUCE_GL_FUNCTIONS_GL_KHR_debug \
  693. X (void , glDebugMessageControlKHR, (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled)) \
  694. X (void , glDebugMessageInsertKHR, (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf)) \
  695. X (void , glDebugMessageCallbackKHR, (GLDEBUGPROCKHR callback, const void *userParam)) \
  696. X (GLuint , glGetDebugMessageLogKHR, (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog)) \
  697. X (void , glPushDebugGroupKHR, (GLenum source, GLuint id, GLsizei length, const GLchar *message)) \
  698. X (void , glPopDebugGroupKHR, ()) \
  699. X (void , glObjectLabelKHR, (GLenum identifier, GLuint name, GLsizei length, const GLchar *label)) \
  700. X (void , glGetObjectLabelKHR, (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label)) \
  701. X (void , glObjectPtrLabelKHR, (const void *ptr, GLsizei length, const GLchar *label)) \
  702. X (void , glGetObjectPtrLabelKHR, (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label)) \
  703. X (void , glGetPointervKHR, (GLenum pname, void **params))
  704. #define JUCE_GL_FUNCTIONS_GL_KHR_robustness \
  705. X (GLenum , glGetGraphicsResetStatusKHR, ()) \
  706. X (void , glReadnPixelsKHR, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data)) \
  707. X (void , glGetnUniformfvKHR, (GLuint program, GLint location, GLsizei bufSize, GLfloat *params)) \
  708. X (void , glGetnUniformivKHR, (GLuint program, GLint location, GLsizei bufSize, GLint *params)) \
  709. X (void , glGetnUniformuivKHR, (GLuint program, GLint location, GLsizei bufSize, GLuint *params))
  710. #define JUCE_GL_FUNCTIONS_GL_KHR_parallel_shader_compile \
  711. X (void , glMaxShaderCompilerThreadsKHR, (GLuint count))
  712. #define JUCE_GL_FUNCTIONS_GL_MESA_framebuffer_flip_y \
  713. X (void , glFramebufferParameteriMESA, (GLenum target, GLenum pname, GLint param)) \
  714. X (void , glGetFramebufferParameterivMESA, (GLenum target, GLenum pname, GLint *params))
  715. #define JUCE_GL_FUNCTIONS_GL_NV_bindless_texture \
  716. X (GLuint64 , glGetTextureHandleNV, (GLuint texture)) \
  717. X (GLuint64 , glGetTextureSamplerHandleNV, (GLuint texture, GLuint sampler)) \
  718. X (void , glMakeTextureHandleResidentNV, (GLuint64 handle)) \
  719. X (void , glMakeTextureHandleNonResidentNV, (GLuint64 handle)) \
  720. X (GLuint64 , glGetImageHandleNV, (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format)) \
  721. X (void , glMakeImageHandleResidentNV, (GLuint64 handle, GLenum access)) \
  722. X (void , glMakeImageHandleNonResidentNV, (GLuint64 handle)) \
  723. X (void , glUniformHandleui64NV, (GLint location, GLuint64 value)) \
  724. X (void , glUniformHandleui64vNV, (GLint location, GLsizei count, const GLuint64 *value)) \
  725. X (void , glProgramUniformHandleui64NV, (GLuint program, GLint location, GLuint64 value)) \
  726. X (void , glProgramUniformHandleui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64 *values)) \
  727. X (GLboolean , glIsTextureHandleResidentNV, (GLuint64 handle)) \
  728. X (GLboolean , glIsImageHandleResidentNV, (GLuint64 handle))
  729. #define JUCE_GL_FUNCTIONS_GL_NV_blend_equation_advanced \
  730. X (void , glBlendParameteriNV, (GLenum pname, GLint value)) \
  731. X (void , glBlendBarrierNV, ())
  732. #define JUCE_GL_FUNCTIONS_GL_NV_clip_space_w_scaling \
  733. X (void , glViewportPositionWScaleNV, (GLuint index, GLfloat xcoeff, GLfloat ycoeff))
  734. #define JUCE_GL_FUNCTIONS_GL_NV_conditional_render \
  735. X (void , glBeginConditionalRenderNV, (GLuint id, GLenum mode)) \
  736. X (void , glEndConditionalRenderNV, ())
  737. #define JUCE_GL_FUNCTIONS_GL_NV_conservative_raster \
  738. X (void , glSubpixelPrecisionBiasNV, (GLuint xbits, GLuint ybits))
  739. #define JUCE_GL_FUNCTIONS_GL_NV_conservative_raster_pre_snap_triangles \
  740. X (void , glConservativeRasterParameteriNV, (GLenum pname, GLint param))
  741. #define JUCE_GL_FUNCTIONS_GL_NV_copy_buffer \
  742. X (void , glCopyBufferSubDataNV, (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size))
  743. #define JUCE_GL_FUNCTIONS_GL_NV_coverage_sample \
  744. X (void , glCoverageMaskNV, (GLboolean mask)) \
  745. X (void , glCoverageOperationNV, (GLenum operation))
  746. #define JUCE_GL_FUNCTIONS_GL_NV_draw_buffers \
  747. X (void , glDrawBuffersNV, (GLsizei n, const GLenum *bufs))
  748. #define JUCE_GL_FUNCTIONS_GL_NV_draw_instanced \
  749. X (void , glDrawArraysInstancedNV, (GLenum mode, GLint first, GLsizei count, GLsizei primcount)) \
  750. X (void , glDrawElementsInstancedNV, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount))
  751. #define JUCE_GL_FUNCTIONS_GL_NV_draw_vulkan_image \
  752. 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)) \
  753. X (GLVULKANPROCNV, glGetVkProcAddrNV, (const GLchar *name)) \
  754. X (void , glWaitVkSemaphoreNV, (GLuint64 vkSemaphore)) \
  755. X (void , glSignalVkSemaphoreNV, (GLuint64 vkSemaphore)) \
  756. X (void , glSignalVkFenceNV, (GLuint64 vkFence))
  757. #define JUCE_GL_FUNCTIONS_GL_NV_fence \
  758. X (void , glDeleteFencesNV, (GLsizei n, const GLuint *fences)) \
  759. X (void , glGenFencesNV, (GLsizei n, GLuint *fences)) \
  760. X (GLboolean , glIsFenceNV, (GLuint fence)) \
  761. X (GLboolean , glTestFenceNV, (GLuint fence)) \
  762. X (void , glGetFenceivNV, (GLuint fence, GLenum pname, GLint *params)) \
  763. X (void , glFinishFenceNV, (GLuint fence)) \
  764. X (void , glSetFenceNV, (GLuint fence, GLenum condition))
  765. #define JUCE_GL_FUNCTIONS_GL_NV_fragment_coverage_to_color \
  766. X (void , glFragmentCoverageColorNV, (GLuint color))
  767. #define JUCE_GL_FUNCTIONS_GL_NV_framebuffer_blit \
  768. X (void , glBlitFramebufferNV, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter))
  769. #define JUCE_GL_FUNCTIONS_GL_NV_framebuffer_mixed_samples \
  770. X (void , glCoverageModulationTableNV, (GLsizei n, const GLfloat *v)) \
  771. X (void , glGetCoverageModulationTableNV, (GLsizei bufSize, GLfloat *v)) \
  772. X (void , glCoverageModulationNV, (GLenum components))
  773. #define JUCE_GL_FUNCTIONS_GL_NV_framebuffer_multisample \
  774. X (void , glRenderbufferStorageMultisampleNV, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height))
  775. #define JUCE_GL_FUNCTIONS_GL_NV_gpu_shader5 \
  776. X (void , glUniform1i64NV, (GLint location, GLint64EXT x)) \
  777. X (void , glUniform2i64NV, (GLint location, GLint64EXT x, GLint64EXT y)) \
  778. X (void , glUniform3i64NV, (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z)) \
  779. X (void , glUniform4i64NV, (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w)) \
  780. X (void , glUniform1i64vNV, (GLint location, GLsizei count, const GLint64EXT *value)) \
  781. X (void , glUniform2i64vNV, (GLint location, GLsizei count, const GLint64EXT *value)) \
  782. X (void , glUniform3i64vNV, (GLint location, GLsizei count, const GLint64EXT *value)) \
  783. X (void , glUniform4i64vNV, (GLint location, GLsizei count, const GLint64EXT *value)) \
  784. X (void , glUniform1ui64NV, (GLint location, GLuint64EXT x)) \
  785. X (void , glUniform2ui64NV, (GLint location, GLuint64EXT x, GLuint64EXT y)) \
  786. X (void , glUniform3ui64NV, (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z)) \
  787. X (void , glUniform4ui64NV, (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w)) \
  788. X (void , glUniform1ui64vNV, (GLint location, GLsizei count, const GLuint64EXT *value)) \
  789. X (void , glUniform2ui64vNV, (GLint location, GLsizei count, const GLuint64EXT *value)) \
  790. X (void , glUniform3ui64vNV, (GLint location, GLsizei count, const GLuint64EXT *value)) \
  791. X (void , glUniform4ui64vNV, (GLint location, GLsizei count, const GLuint64EXT *value)) \
  792. X (void , glGetUniformi64vNV, (GLuint program, GLint location, GLint64EXT *params)) \
  793. X (void , glProgramUniform1i64NV, (GLuint program, GLint location, GLint64EXT x)) \
  794. X (void , glProgramUniform2i64NV, (GLuint program, GLint location, GLint64EXT x, GLint64EXT y)) \
  795. X (void , glProgramUniform3i64NV, (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z)) \
  796. X (void , glProgramUniform4i64NV, (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w)) \
  797. X (void , glProgramUniform1i64vNV, (GLuint program, GLint location, GLsizei count, const GLint64EXT *value)) \
  798. X (void , glProgramUniform2i64vNV, (GLuint program, GLint location, GLsizei count, const GLint64EXT *value)) \
  799. X (void , glProgramUniform3i64vNV, (GLuint program, GLint location, GLsizei count, const GLint64EXT *value)) \
  800. X (void , glProgramUniform4i64vNV, (GLuint program, GLint location, GLsizei count, const GLint64EXT *value)) \
  801. X (void , glProgramUniform1ui64NV, (GLuint program, GLint location, GLuint64EXT x)) \
  802. X (void , glProgramUniform2ui64NV, (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y)) \
  803. X (void , glProgramUniform3ui64NV, (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z)) \
  804. X (void , glProgramUniform4ui64NV, (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w)) \
  805. X (void , glProgramUniform1ui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value)) \
  806. X (void , glProgramUniform2ui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value)) \
  807. X (void , glProgramUniform3ui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value)) \
  808. X (void , glProgramUniform4ui64vNV, (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value))
  809. #define JUCE_GL_FUNCTIONS_GL_NV_instanced_arrays \
  810. X (void , glVertexAttribDivisorNV, (GLuint index, GLuint divisor))
  811. #define JUCE_GL_FUNCTIONS_GL_NV_internalformat_sample_query \
  812. X (void , glGetInternalformatSampleivNV, (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params))
  813. #define JUCE_GL_FUNCTIONS_GL_NV_memory_attachment \
  814. X (void , glGetMemoryObjectDetachedResourcesuivNV, (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params)) \
  815. X (void , glResetMemoryObjectParameterNV, (GLuint memory, GLenum pname)) \
  816. X (void , glTexAttachMemoryNV, (GLenum target, GLuint memory, GLuint64 offset)) \
  817. X (void , glBufferAttachMemoryNV, (GLenum target, GLuint memory, GLuint64 offset)) \
  818. X (void , glTextureAttachMemoryNV, (GLuint texture, GLuint memory, GLuint64 offset)) \
  819. X (void , glNamedBufferAttachMemoryNV, (GLuint buffer, GLuint memory, GLuint64 offset))
  820. #define JUCE_GL_FUNCTIONS_GL_NV_memory_object_sparse \
  821. X (void , glBufferPageCommitmentMemNV, (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit)) \
  822. 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)) \
  823. X (void , glNamedBufferPageCommitmentMemNV, (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit)) \
  824. 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))
  825. #define JUCE_GL_FUNCTIONS_GL_NV_mesh_shader \
  826. X (void , glDrawMeshTasksNV, (GLuint first, GLuint count)) \
  827. X (void , glDrawMeshTasksIndirectNV, (GLintptr indirect)) \
  828. X (void , glMultiDrawMeshTasksIndirectNV, (GLintptr indirect, GLsizei drawcount, GLsizei stride)) \
  829. X (void , glMultiDrawMeshTasksIndirectCountNV, (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride))
  830. #define JUCE_GL_FUNCTIONS_GL_NV_non_square_matrices \
  831. X (void , glUniformMatrix2x3fvNV, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  832. X (void , glUniformMatrix3x2fvNV, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  833. X (void , glUniformMatrix2x4fvNV, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  834. X (void , glUniformMatrix4x2fvNV, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  835. X (void , glUniformMatrix3x4fvNV, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) \
  836. X (void , glUniformMatrix4x3fvNV, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))
  837. #define JUCE_GL_FUNCTIONS_GL_NV_path_rendering \
  838. X (GLuint , glGenPathsNV, (GLsizei range)) \
  839. X (void , glDeletePathsNV, (GLuint path, GLsizei range)) \
  840. X (GLboolean , glIsPathNV, (GLuint path)) \
  841. X (void , glPathCommandsNV, (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords)) \
  842. X (void , glPathCoordsNV, (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords)) \
  843. X (void , glPathSubCommandsNV, (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords)) \
  844. X (void , glPathSubCoordsNV, (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords)) \
  845. X (void , glPathStringNV, (GLuint path, GLenum format, GLsizei length, const void *pathString)) \
  846. 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)) \
  847. X (void , glPathGlyphRangeNV, (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale)) \
  848. X (void , glWeightPathsNV, (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights)) \
  849. X (void , glCopyPathNV, (GLuint resultPath, GLuint srcPath)) \
  850. X (void , glInterpolatePathsNV, (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight)) \
  851. X (void , glTransformPathNV, (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues)) \
  852. X (void , glPathParameterivNV, (GLuint path, GLenum pname, const GLint *value)) \
  853. X (void , glPathParameteriNV, (GLuint path, GLenum pname, GLint value)) \
  854. X (void , glPathParameterfvNV, (GLuint path, GLenum pname, const GLfloat *value)) \
  855. X (void , glPathParameterfNV, (GLuint path, GLenum pname, GLfloat value)) \
  856. X (void , glPathDashArrayNV, (GLuint path, GLsizei dashCount, const GLfloat *dashArray)) \
  857. X (void , glPathStencilFuncNV, (GLenum func, GLint ref, GLuint mask)) \
  858. X (void , glPathStencilDepthOffsetNV, (GLfloat factor, GLfloat units)) \
  859. X (void , glStencilFillPathNV, (GLuint path, GLenum fillMode, GLuint mask)) \
  860. X (void , glStencilStrokePathNV, (GLuint path, GLint reference, GLuint mask)) \
  861. X (void , glStencilFillPathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues)) \
  862. X (void , glStencilStrokePathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues)) \
  863. X (void , glPathCoverDepthFuncNV, (GLenum func)) \
  864. X (void , glCoverFillPathNV, (GLuint path, GLenum coverMode)) \
  865. X (void , glCoverStrokePathNV, (GLuint path, GLenum coverMode)) \
  866. X (void , glCoverFillPathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)) \
  867. X (void , glCoverStrokePathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)) \
  868. X (void , glGetPathParameterivNV, (GLuint path, GLenum pname, GLint *value)) \
  869. X (void , glGetPathParameterfvNV, (GLuint path, GLenum pname, GLfloat *value)) \
  870. X (void , glGetPathCommandsNV, (GLuint path, GLubyte *commands)) \
  871. X (void , glGetPathCoordsNV, (GLuint path, GLfloat *coords)) \
  872. X (void , glGetPathDashArrayNV, (GLuint path, GLfloat *dashArray)) \
  873. X (void , glGetPathMetricsNV, (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics)) \
  874. X (void , glGetPathMetricRangeNV, (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics)) \
  875. X (void , glGetPathSpacingNV, (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing)) \
  876. X (GLboolean , glIsPointInFillPathNV, (GLuint path, GLuint mask, GLfloat x, GLfloat y)) \
  877. X (GLboolean , glIsPointInStrokePathNV, (GLuint path, GLfloat x, GLfloat y)) \
  878. X (GLfloat , glGetPathLengthNV, (GLuint path, GLsizei startSegment, GLsizei numSegments)) \
  879. X (GLboolean , glPointAlongPathNV, (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY)) \
  880. X (void , glMatrixLoad3x2fNV, (GLenum matrixMode, const GLfloat *m)) \
  881. X (void , glMatrixLoad3x3fNV, (GLenum matrixMode, const GLfloat *m)) \
  882. X (void , glMatrixLoadTranspose3x3fNV, (GLenum matrixMode, const GLfloat *m)) \
  883. X (void , glMatrixMult3x2fNV, (GLenum matrixMode, const GLfloat *m)) \
  884. X (void , glMatrixMult3x3fNV, (GLenum matrixMode, const GLfloat *m)) \
  885. X (void , glMatrixMultTranspose3x3fNV, (GLenum matrixMode, const GLfloat *m)) \
  886. X (void , glStencilThenCoverFillPathNV, (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode)) \
  887. X (void , glStencilThenCoverStrokePathNV, (GLuint path, GLint reference, GLuint mask, GLenum coverMode)) \
  888. X (void , glStencilThenCoverFillPathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)) \
  889. X (void , glStencilThenCoverStrokePathInstancedNV, (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues)) \
  890. X (GLenum , glPathGlyphIndexRangeNV, (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint *baseAndCount)) \
  891. X (GLenum , glPathGlyphIndexArrayNV, (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale)) \
  892. X (GLenum , glPathMemoryGlyphIndexArrayNV, (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale)) \
  893. X (void , glProgramPathFragmentInputGenNV, (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs)) \
  894. X (void , glGetProgramResourcefvNV, (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params)) \
  895. X (void , glPathColorGenNV, (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs)) \
  896. X (void , glPathTexGenNV, (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs)) \
  897. X (void , glPathFogGenNV, (GLenum genMode)) \
  898. X (void , glGetPathColorGenivNV, (GLenum color, GLenum pname, GLint *value)) \
  899. X (void , glGetPathColorGenfvNV, (GLenum color, GLenum pname, GLfloat *value)) \
  900. X (void , glGetPathTexGenivNV, (GLenum texCoordSet, GLenum pname, GLint *value)) \
  901. X (void , glGetPathTexGenfvNV, (GLenum texCoordSet, GLenum pname, GLfloat *value)) \
  902. X (void , glMatrixFrustumEXT, (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)) \
  903. X (void , glMatrixLoadIdentityEXT, (GLenum mode)) \
  904. X (void , glMatrixLoadTransposefEXT, (GLenum mode, const GLfloat *m)) \
  905. X (void , glMatrixLoadTransposedEXT, (GLenum mode, const GLdouble *m)) \
  906. X (void , glMatrixLoadfEXT, (GLenum mode, const GLfloat *m)) \
  907. X (void , glMatrixLoaddEXT, (GLenum mode, const GLdouble *m)) \
  908. X (void , glMatrixMultTransposefEXT, (GLenum mode, const GLfloat *m)) \
  909. X (void , glMatrixMultTransposedEXT, (GLenum mode, const GLdouble *m)) \
  910. X (void , glMatrixMultfEXT, (GLenum mode, const GLfloat *m)) \
  911. X (void , glMatrixMultdEXT, (GLenum mode, const GLdouble *m)) \
  912. X (void , glMatrixOrthoEXT, (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)) \
  913. X (void , glMatrixPopEXT, (GLenum mode)) \
  914. X (void , glMatrixPushEXT, (GLenum mode)) \
  915. X (void , glMatrixRotatefEXT, (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)) \
  916. X (void , glMatrixRotatedEXT, (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)) \
  917. X (void , glMatrixScalefEXT, (GLenum mode, GLfloat x, GLfloat y, GLfloat z)) \
  918. X (void , glMatrixScaledEXT, (GLenum mode, GLdouble x, GLdouble y, GLdouble z)) \
  919. X (void , glMatrixTranslatefEXT, (GLenum mode, GLfloat x, GLfloat y, GLfloat z)) \
  920. X (void , glMatrixTranslatedEXT, (GLenum mode, GLdouble x, GLdouble y, GLdouble z))
  921. #define JUCE_GL_FUNCTIONS_GL_NV_polygon_mode \
  922. X (void , glPolygonModeNV, (GLenum face, GLenum mode))
  923. #define JUCE_GL_FUNCTIONS_GL_NV_read_buffer \
  924. X (void , glReadBufferNV, (GLenum mode))
  925. #define JUCE_GL_FUNCTIONS_GL_NV_sample_locations \
  926. X (void , glFramebufferSampleLocationsfvNV, (GLenum target, GLuint start, GLsizei count, const GLfloat *v)) \
  927. X (void , glNamedFramebufferSampleLocationsfvNV, (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v)) \
  928. X (void , glResolveDepthValuesNV, ())
  929. #define JUCE_GL_FUNCTIONS_GL_NV_scissor_exclusive \
  930. X (void , glScissorExclusiveNV, (GLint x, GLint y, GLsizei width, GLsizei height)) \
  931. X (void , glScissorExclusiveArrayvNV, (GLuint first, GLsizei count, const GLint *v))
  932. #define JUCE_GL_FUNCTIONS_GL_NV_shading_rate_image \
  933. X (void , glBindShadingRateImageNV, (GLuint texture)) \
  934. X (void , glGetShadingRateImagePaletteNV, (GLuint viewport, GLuint entry, GLenum *rate)) \
  935. X (void , glGetShadingRateSampleLocationivNV, (GLenum rate, GLuint samples, GLuint index, GLint *location)) \
  936. X (void , glShadingRateImageBarrierNV, (GLboolean synchronize)) \
  937. X (void , glShadingRateImagePaletteNV, (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates)) \
  938. X (void , glShadingRateSampleOrderNV, (GLenum order)) \
  939. X (void , glShadingRateSampleOrderCustomNV, (GLenum rate, GLuint samples, const GLint *locations))
  940. #define JUCE_GL_FUNCTIONS_GL_NV_viewport_array \
  941. X (void , glViewportArrayvNV, (GLuint first, GLsizei count, const GLfloat *v)) \
  942. X (void , glViewportIndexedfNV, (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h)) \
  943. X (void , glViewportIndexedfvNV, (GLuint index, const GLfloat *v)) \
  944. X (void , glScissorArrayvNV, (GLuint first, GLsizei count, const GLint *v)) \
  945. X (void , glScissorIndexedNV, (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height)) \
  946. X (void , glScissorIndexedvNV, (GLuint index, const GLint *v)) \
  947. X (void , glDepthRangeArrayfvNV, (GLuint first, GLsizei count, const GLfloat *v)) \
  948. X (void , glDepthRangeIndexedfNV, (GLuint index, GLfloat n, GLfloat f)) \
  949. X (void , glGetFloati_vNV, (GLenum target, GLuint index, GLfloat *data)) \
  950. X (void , glEnableiNV, (GLenum target, GLuint index)) \
  951. X (void , glDisableiNV, (GLenum target, GLuint index)) \
  952. X (GLboolean , glIsEnablediNV, (GLenum target, GLuint index))
  953. #define JUCE_GL_FUNCTIONS_GL_NV_viewport_swizzle \
  954. X (void , glViewportSwizzleNV, (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew))
  955. #define JUCE_GL_FUNCTIONS_GL_OES_EGL_image \
  956. X (void , glEGLImageTargetTexture2DOES, (GLenum target, GLeglImageOES image)) \
  957. X (void , glEGLImageTargetRenderbufferStorageOES, (GLenum target, GLeglImageOES image))
  958. #define JUCE_GL_FUNCTIONS_GL_OES_copy_image \
  959. 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))
  960. #define JUCE_GL_FUNCTIONS_GL_OES_draw_buffers_indexed \
  961. X (void , glEnableiOES, (GLenum target, GLuint index)) \
  962. X (void , glDisableiOES, (GLenum target, GLuint index)) \
  963. X (void , glBlendEquationiOES, (GLuint buf, GLenum mode)) \
  964. X (void , glBlendEquationSeparateiOES, (GLuint buf, GLenum modeRGB, GLenum modeAlpha)) \
  965. X (void , glBlendFunciOES, (GLuint buf, GLenum src, GLenum dst)) \
  966. X (void , glBlendFuncSeparateiOES, (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)) \
  967. X (void , glColorMaskiOES, (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)) \
  968. X (GLboolean , glIsEnablediOES, (GLenum target, GLuint index))
  969. #define JUCE_GL_FUNCTIONS_GL_OES_draw_elements_base_vertex \
  970. X (void , glDrawElementsBaseVertexOES, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \
  971. X (void , glDrawRangeElementsBaseVertexOES, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex)) \
  972. X (void , glDrawElementsInstancedBaseVertexOES, (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex))
  973. #define JUCE_GL_FUNCTIONS_GL_OES_geometry_shader \
  974. X (void , glFramebufferTextureOES, (GLenum target, GLenum attachment, GLuint texture, GLint level))
  975. #define JUCE_GL_FUNCTIONS_GL_OES_get_program_binary \
  976. X (void , glGetProgramBinaryOES, (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary)) \
  977. X (void , glProgramBinaryOES, (GLuint program, GLenum binaryFormat, const void *binary, GLint length))
  978. #define JUCE_GL_FUNCTIONS_GL_OES_mapbuffer \
  979. X (void * , glMapBufferOES, (GLenum target, GLenum access)) \
  980. X (GLboolean , glUnmapBufferOES, (GLenum target)) \
  981. X (void , glGetBufferPointervOES, (GLenum target, GLenum pname, void **params))
  982. #define JUCE_GL_FUNCTIONS_GL_OES_primitive_bounding_box \
  983. X (void , glPrimitiveBoundingBoxOES, (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW))
  984. #define JUCE_GL_FUNCTIONS_GL_OES_sample_shading \
  985. X (void , glMinSampleShadingOES, (GLfloat value))
  986. #define JUCE_GL_FUNCTIONS_GL_OES_tessellation_shader \
  987. X (void , glPatchParameteriOES, (GLenum pname, GLint value))
  988. #define JUCE_GL_FUNCTIONS_GL_OES_texture_3D \
  989. X (void , glTexImage3DOES, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)) \
  990. 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)) \
  991. X (void , glCopyTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)) \
  992. X (void , glCompressedTexImage3DOES, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)) \
  993. 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)) \
  994. X (void , glFramebufferTexture3DOES, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset))
  995. #define JUCE_GL_FUNCTIONS_GL_OES_texture_border_clamp \
  996. X (void , glTexParameterIivOES, (GLenum target, GLenum pname, const GLint *params)) \
  997. X (void , glTexParameterIuivOES, (GLenum target, GLenum pname, const GLuint *params)) \
  998. X (void , glGetTexParameterIivOES, (GLenum target, GLenum pname, GLint *params)) \
  999. X (void , glGetTexParameterIuivOES, (GLenum target, GLenum pname, GLuint *params)) \
  1000. X (void , glSamplerParameterIivOES, (GLuint sampler, GLenum pname, const GLint *param)) \
  1001. X (void , glSamplerParameterIuivOES, (GLuint sampler, GLenum pname, const GLuint *param)) \
  1002. X (void , glGetSamplerParameterIivOES, (GLuint sampler, GLenum pname, GLint *params)) \
  1003. X (void , glGetSamplerParameterIuivOES, (GLuint sampler, GLenum pname, GLuint *params))
  1004. #define JUCE_GL_FUNCTIONS_GL_OES_texture_buffer \
  1005. X (void , glTexBufferOES, (GLenum target, GLenum internalformat, GLuint buffer)) \
  1006. X (void , glTexBufferRangeOES, (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size))
  1007. #define JUCE_GL_FUNCTIONS_GL_OES_texture_storage_multisample_2d_array \
  1008. X (void , glTexStorage3DMultisampleOES, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations))
  1009. #define JUCE_GL_FUNCTIONS_GL_OES_texture_view \
  1010. X (void , glTextureViewOES, (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers))
  1011. #define JUCE_GL_FUNCTIONS_GL_OES_vertex_array_object \
  1012. X (void , glBindVertexArrayOES, (GLuint array)) \
  1013. X (void , glDeleteVertexArraysOES, (GLsizei n, const GLuint *arrays)) \
  1014. X (void , glGenVertexArraysOES, (GLsizei n, GLuint *arrays)) \
  1015. X (GLboolean , glIsVertexArrayOES, (GLuint array))
  1016. #define JUCE_GL_FUNCTIONS_GL_OES_viewport_array \
  1017. X (void , glViewportArrayvOES, (GLuint first, GLsizei count, const GLfloat *v)) \
  1018. X (void , glViewportIndexedfOES, (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h)) \
  1019. X (void , glViewportIndexedfvOES, (GLuint index, const GLfloat *v)) \
  1020. X (void , glScissorArrayvOES, (GLuint first, GLsizei count, const GLint *v)) \
  1021. X (void , glScissorIndexedOES, (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height)) \
  1022. X (void , glScissorIndexedvOES, (GLuint index, const GLint *v)) \
  1023. X (void , glDepthRangeArrayfvOES, (GLuint first, GLsizei count, const GLfloat *v)) \
  1024. X (void , glDepthRangeIndexedfOES, (GLuint index, GLfloat n, GLfloat f)) \
  1025. X (void , glGetFloati_vOES, (GLenum target, GLuint index, GLfloat *data))
  1026. #define JUCE_GL_FUNCTIONS_GL_OVR_multiview \
  1027. X (void , glFramebufferTextureMultiviewOVR, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews))
  1028. #define JUCE_GL_FUNCTIONS_GL_OVR_multiview_multisampled_render_to_texture \
  1029. X (void , glFramebufferTextureMultisampleMultiviewOVR, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews))
  1030. #define JUCE_GL_FUNCTIONS_GL_QCOM_alpha_test \
  1031. X (void , glAlphaFuncQCOM, (GLenum func, GLclampf ref))
  1032. #define JUCE_GL_FUNCTIONS_GL_QCOM_driver_control \
  1033. X (void , glGetDriverControlsQCOM, (GLint *num, GLsizei size, GLuint *driverControls)) \
  1034. X (void , glGetDriverControlStringQCOM, (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString)) \
  1035. X (void , glEnableDriverControlQCOM, (GLuint driverControl)) \
  1036. X (void , glDisableDriverControlQCOM, (GLuint driverControl))
  1037. #define JUCE_GL_FUNCTIONS_GL_QCOM_extended_get \
  1038. X (void , glExtGetTexturesQCOM, (GLuint *textures, GLint maxTextures, GLint *numTextures)) \
  1039. X (void , glExtGetBuffersQCOM, (GLuint *buffers, GLint maxBuffers, GLint *numBuffers)) \
  1040. X (void , glExtGetRenderbuffersQCOM, (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers)) \
  1041. X (void , glExtGetFramebuffersQCOM, (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers)) \
  1042. X (void , glExtGetTexLevelParameterivQCOM, (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params)) \
  1043. X (void , glExtTexObjectStateOverrideiQCOM, (GLenum target, GLenum pname, GLint param)) \
  1044. 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)) \
  1045. X (void , glExtGetBufferPointervQCOM, (GLenum target, void **params))
  1046. #define JUCE_GL_FUNCTIONS_GL_QCOM_extended_get2 \
  1047. X (void , glExtGetShadersQCOM, (GLuint *shaders, GLint maxShaders, GLint *numShaders)) \
  1048. X (void , glExtGetProgramsQCOM, (GLuint *programs, GLint maxPrograms, GLint *numPrograms)) \
  1049. X (GLboolean , glExtIsProgramBinaryQCOM, (GLuint program)) \
  1050. X (void , glExtGetProgramBinarySourceQCOM, (GLuint program, GLenum shadertype, GLchar *source, GLint *length))
  1051. #define JUCE_GL_FUNCTIONS_GL_QCOM_framebuffer_foveated \
  1052. X (void , glFramebufferFoveationConfigQCOM, (GLuint framebuffer, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint *providedFeatures)) \
  1053. X (void , glFramebufferFoveationParametersQCOM, (GLuint framebuffer, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea))
  1054. #define JUCE_GL_FUNCTIONS_GL_QCOM_motion_estimation \
  1055. X (void , glTexEstimateMotionQCOM, (GLuint ref, GLuint target, GLuint output)) \
  1056. X (void , glTexEstimateMotionRegionsQCOM, (GLuint ref, GLuint target, GLuint output, GLuint mask))
  1057. #define JUCE_GL_FUNCTIONS_GL_QCOM_frame_extrapolation \
  1058. X (void , glExtrapolateTex2DQCOM, (GLuint src1, GLuint src2, GLuint output, GLfloat scaleFactor))
  1059. #define JUCE_GL_FUNCTIONS_GL_QCOM_texture_foveated \
  1060. X (void , glTextureFoveationParametersQCOM, (GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea))
  1061. #define JUCE_GL_FUNCTIONS_GL_QCOM_shader_framebuffer_fetch_noncoherent \
  1062. X (void , glFramebufferFetchBarrierQCOM, ())
  1063. #define JUCE_GL_FUNCTIONS_GL_QCOM_shading_rate \
  1064. X (void , glShadingRateQCOM, (GLenum rate))
  1065. #define JUCE_GL_FUNCTIONS_GL_QCOM_tiled_rendering \
  1066. X (void , glStartTilingQCOM, (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask)) \
  1067. X (void , glEndTilingQCOM, (GLbitfield preserveMask))
  1068. #if JUCE_STATIC_LINK_GL_ES_VERSION_2_0
  1069. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0_STATIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0
  1070. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0_DYNAMIC
  1071. #else
  1072. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0_STATIC
  1073. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0_DYNAMIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0
  1074. #endif
  1075. #if JUCE_STATIC_LINK_GL_ES_VERSION_3_0
  1076. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0_STATIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0
  1077. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0_DYNAMIC
  1078. #else
  1079. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0_STATIC
  1080. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0_DYNAMIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0
  1081. #endif
  1082. #if JUCE_STATIC_LINK_GL_ES_VERSION_3_1
  1083. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1_STATIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1
  1084. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1_DYNAMIC
  1085. #else
  1086. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1_STATIC
  1087. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1_DYNAMIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1
  1088. #endif
  1089. #if JUCE_STATIC_LINK_GL_ES_VERSION_3_2
  1090. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2_STATIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2
  1091. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2_DYNAMIC
  1092. #else
  1093. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2_STATIC
  1094. #define JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2_DYNAMIC JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2
  1095. #endif
  1096. #define JUCE_STATIC_GL_FUNCTIONS \
  1097. JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0_STATIC \
  1098. JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0_STATIC \
  1099. JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1_STATIC \
  1100. JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2_STATIC
  1101. #define JUCE_DYNAMIC_GL_FUNCTIONS \
  1102. JUCE_GL_FUNCTIONS_GL_ES_VERSION_2_0_DYNAMIC \
  1103. JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_0_DYNAMIC \
  1104. JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_1_DYNAMIC \
  1105. JUCE_GL_FUNCTIONS_GL_ES_VERSION_3_2_DYNAMIC
  1106. #define JUCE_EXTENSION_GL_FUNCTIONS \
  1107. JUCE_GL_FUNCTIONS_GL_AMD_framebuffer_multisample_advanced \
  1108. JUCE_GL_FUNCTIONS_GL_AMD_performance_monitor \
  1109. JUCE_GL_FUNCTIONS_GL_ANGLE_framebuffer_blit \
  1110. JUCE_GL_FUNCTIONS_GL_ANGLE_framebuffer_multisample \
  1111. JUCE_GL_FUNCTIONS_GL_ANGLE_instanced_arrays \
  1112. JUCE_GL_FUNCTIONS_GL_ANGLE_translated_shader_source \
  1113. JUCE_GL_FUNCTIONS_GL_APPLE_copy_texture_levels \
  1114. JUCE_GL_FUNCTIONS_GL_APPLE_framebuffer_multisample \
  1115. JUCE_GL_FUNCTIONS_GL_APPLE_sync \
  1116. JUCE_GL_FUNCTIONS_GL_EXT_EGL_image_storage \
  1117. JUCE_GL_FUNCTIONS_GL_EXT_base_instance \
  1118. JUCE_GL_FUNCTIONS_GL_EXT_blend_func_extended \
  1119. JUCE_GL_FUNCTIONS_GL_EXT_blend_minmax \
  1120. JUCE_GL_FUNCTIONS_GL_EXT_buffer_storage \
  1121. JUCE_GL_FUNCTIONS_GL_EXT_clear_texture \
  1122. JUCE_GL_FUNCTIONS_GL_EXT_clip_control \
  1123. JUCE_GL_FUNCTIONS_GL_EXT_copy_image \
  1124. JUCE_GL_FUNCTIONS_GL_EXT_debug_label \
  1125. JUCE_GL_FUNCTIONS_GL_EXT_debug_marker \
  1126. JUCE_GL_FUNCTIONS_GL_EXT_discard_framebuffer \
  1127. JUCE_GL_FUNCTIONS_GL_EXT_disjoint_timer_query \
  1128. JUCE_GL_FUNCTIONS_GL_EXT_draw_buffers \
  1129. JUCE_GL_FUNCTIONS_GL_EXT_draw_buffers_indexed \
  1130. JUCE_GL_FUNCTIONS_GL_EXT_draw_elements_base_vertex \
  1131. JUCE_GL_FUNCTIONS_GL_EXT_draw_instanced \
  1132. JUCE_GL_FUNCTIONS_GL_EXT_draw_transform_feedback \
  1133. JUCE_GL_FUNCTIONS_GL_EXT_external_buffer \
  1134. JUCE_GL_FUNCTIONS_GL_EXT_geometry_shader \
  1135. JUCE_GL_FUNCTIONS_GL_EXT_instanced_arrays \
  1136. JUCE_GL_FUNCTIONS_GL_EXT_map_buffer_range \
  1137. JUCE_GL_FUNCTIONS_GL_EXT_memory_object \
  1138. JUCE_GL_FUNCTIONS_GL_EXT_memory_object_fd \
  1139. JUCE_GL_FUNCTIONS_GL_EXT_memory_object_win32 \
  1140. JUCE_GL_FUNCTIONS_GL_EXT_multi_draw_arrays \
  1141. JUCE_GL_FUNCTIONS_GL_EXT_multi_draw_indirect \
  1142. JUCE_GL_FUNCTIONS_GL_EXT_multisampled_render_to_texture \
  1143. JUCE_GL_FUNCTIONS_GL_EXT_multiview_draw_buffers \
  1144. JUCE_GL_FUNCTIONS_GL_EXT_polygon_offset_clamp \
  1145. JUCE_GL_FUNCTIONS_GL_EXT_primitive_bounding_box \
  1146. JUCE_GL_FUNCTIONS_GL_EXT_raster_multisample \
  1147. JUCE_GL_FUNCTIONS_GL_EXT_robustness \
  1148. JUCE_GL_FUNCTIONS_GL_EXT_semaphore \
  1149. JUCE_GL_FUNCTIONS_GL_EXT_semaphore_fd \
  1150. JUCE_GL_FUNCTIONS_GL_EXT_semaphore_win32 \
  1151. JUCE_GL_FUNCTIONS_GL_EXT_separate_shader_objects \
  1152. JUCE_GL_FUNCTIONS_GL_EXT_shader_framebuffer_fetch_non_coherent \
  1153. JUCE_GL_FUNCTIONS_GL_EXT_shader_pixel_local_storage2 \
  1154. JUCE_GL_FUNCTIONS_GL_EXT_sparse_texture \
  1155. JUCE_GL_FUNCTIONS_GL_EXT_tessellation_shader \
  1156. JUCE_GL_FUNCTIONS_GL_EXT_texture_border_clamp \
  1157. JUCE_GL_FUNCTIONS_GL_EXT_texture_buffer \
  1158. JUCE_GL_FUNCTIONS_GL_EXT_texture_storage \
  1159. JUCE_GL_FUNCTIONS_GL_EXT_texture_view \
  1160. JUCE_GL_FUNCTIONS_GL_NV_timeline_semaphore \
  1161. JUCE_GL_FUNCTIONS_GL_EXT_win32_keyed_mutex \
  1162. JUCE_GL_FUNCTIONS_GL_EXT_window_rectangles \
  1163. JUCE_GL_FUNCTIONS_GL_IMG_bindless_texture \
  1164. JUCE_GL_FUNCTIONS_GL_IMG_framebuffer_downsample \
  1165. JUCE_GL_FUNCTIONS_GL_IMG_multisampled_render_to_texture \
  1166. JUCE_GL_FUNCTIONS_GL_INTEL_framebuffer_CMAA \
  1167. JUCE_GL_FUNCTIONS_GL_INTEL_performance_query \
  1168. JUCE_GL_FUNCTIONS_GL_KHR_blend_equation_advanced \
  1169. JUCE_GL_FUNCTIONS_GL_KHR_debug \
  1170. JUCE_GL_FUNCTIONS_GL_KHR_robustness \
  1171. JUCE_GL_FUNCTIONS_GL_KHR_parallel_shader_compile \
  1172. JUCE_GL_FUNCTIONS_GL_MESA_framebuffer_flip_y \
  1173. JUCE_GL_FUNCTIONS_GL_NV_bindless_texture \
  1174. JUCE_GL_FUNCTIONS_GL_NV_blend_equation_advanced \
  1175. JUCE_GL_FUNCTIONS_GL_NV_clip_space_w_scaling \
  1176. JUCE_GL_FUNCTIONS_GL_NV_conditional_render \
  1177. JUCE_GL_FUNCTIONS_GL_NV_conservative_raster \
  1178. JUCE_GL_FUNCTIONS_GL_NV_conservative_raster_pre_snap_triangles \
  1179. JUCE_GL_FUNCTIONS_GL_NV_copy_buffer \
  1180. JUCE_GL_FUNCTIONS_GL_NV_coverage_sample \
  1181. JUCE_GL_FUNCTIONS_GL_NV_draw_buffers \
  1182. JUCE_GL_FUNCTIONS_GL_NV_draw_instanced \
  1183. JUCE_GL_FUNCTIONS_GL_NV_draw_vulkan_image \
  1184. JUCE_GL_FUNCTIONS_GL_NV_fence \
  1185. JUCE_GL_FUNCTIONS_GL_NV_fragment_coverage_to_color \
  1186. JUCE_GL_FUNCTIONS_GL_NV_framebuffer_blit \
  1187. JUCE_GL_FUNCTIONS_GL_NV_framebuffer_mixed_samples \
  1188. JUCE_GL_FUNCTIONS_GL_NV_framebuffer_multisample \
  1189. JUCE_GL_FUNCTIONS_GL_NV_gpu_shader5 \
  1190. JUCE_GL_FUNCTIONS_GL_NV_instanced_arrays \
  1191. JUCE_GL_FUNCTIONS_GL_NV_internalformat_sample_query \
  1192. JUCE_GL_FUNCTIONS_GL_NV_memory_attachment \
  1193. JUCE_GL_FUNCTIONS_GL_NV_memory_object_sparse \
  1194. JUCE_GL_FUNCTIONS_GL_NV_mesh_shader \
  1195. JUCE_GL_FUNCTIONS_GL_NV_non_square_matrices \
  1196. JUCE_GL_FUNCTIONS_GL_NV_path_rendering \
  1197. JUCE_GL_FUNCTIONS_GL_NV_polygon_mode \
  1198. JUCE_GL_FUNCTIONS_GL_NV_read_buffer \
  1199. JUCE_GL_FUNCTIONS_GL_NV_sample_locations \
  1200. JUCE_GL_FUNCTIONS_GL_NV_scissor_exclusive \
  1201. JUCE_GL_FUNCTIONS_GL_NV_shading_rate_image \
  1202. JUCE_GL_FUNCTIONS_GL_NV_viewport_array \
  1203. JUCE_GL_FUNCTIONS_GL_NV_viewport_swizzle \
  1204. JUCE_GL_FUNCTIONS_GL_OES_EGL_image \
  1205. JUCE_GL_FUNCTIONS_GL_OES_copy_image \
  1206. JUCE_GL_FUNCTIONS_GL_OES_draw_buffers_indexed \
  1207. JUCE_GL_FUNCTIONS_GL_OES_draw_elements_base_vertex \
  1208. JUCE_GL_FUNCTIONS_GL_OES_geometry_shader \
  1209. JUCE_GL_FUNCTIONS_GL_OES_get_program_binary \
  1210. JUCE_GL_FUNCTIONS_GL_OES_mapbuffer \
  1211. JUCE_GL_FUNCTIONS_GL_OES_primitive_bounding_box \
  1212. JUCE_GL_FUNCTIONS_GL_OES_sample_shading \
  1213. JUCE_GL_FUNCTIONS_GL_OES_tessellation_shader \
  1214. JUCE_GL_FUNCTIONS_GL_OES_texture_3D \
  1215. JUCE_GL_FUNCTIONS_GL_OES_texture_border_clamp \
  1216. JUCE_GL_FUNCTIONS_GL_OES_texture_buffer \
  1217. JUCE_GL_FUNCTIONS_GL_OES_texture_storage_multisample_2d_array \
  1218. JUCE_GL_FUNCTIONS_GL_OES_texture_view \
  1219. JUCE_GL_FUNCTIONS_GL_OES_vertex_array_object \
  1220. JUCE_GL_FUNCTIONS_GL_OES_viewport_array \
  1221. JUCE_GL_FUNCTIONS_GL_OVR_multiview \
  1222. JUCE_GL_FUNCTIONS_GL_OVR_multiview_multisampled_render_to_texture \
  1223. JUCE_GL_FUNCTIONS_GL_QCOM_alpha_test \
  1224. JUCE_GL_FUNCTIONS_GL_QCOM_driver_control \
  1225. JUCE_GL_FUNCTIONS_GL_QCOM_extended_get \
  1226. JUCE_GL_FUNCTIONS_GL_QCOM_extended_get2 \
  1227. JUCE_GL_FUNCTIONS_GL_QCOM_framebuffer_foveated \
  1228. JUCE_GL_FUNCTIONS_GL_QCOM_motion_estimation \
  1229. JUCE_GL_FUNCTIONS_GL_QCOM_frame_extrapolation \
  1230. JUCE_GL_FUNCTIONS_GL_QCOM_texture_foveated \
  1231. JUCE_GL_FUNCTIONS_GL_QCOM_shader_framebuffer_fetch_noncoherent \
  1232. JUCE_GL_FUNCTIONS_GL_QCOM_shading_rate \
  1233. JUCE_GL_FUNCTIONS_GL_QCOM_tiled_rendering
  1234. #define X(returns, name, params) \
  1235. extern "C" KHRONOS_APICALL returns KHRONOS_APIENTRY name params; \
  1236. returns (KHRONOS_APIENTRY* const& ::juce::gl::name) params = ::name;
  1237. JUCE_STATIC_GL_FUNCTIONS
  1238. #undef X
  1239. #define X(returns, name, params) \
  1240. static returns (KHRONOS_APIENTRY* juce_ ## name) params = nullptr; \
  1241. returns (KHRONOS_APIENTRY* const& ::juce::gl::name) params = juce_ ## name;
  1242. JUCE_DYNAMIC_GL_FUNCTIONS
  1243. JUCE_EXTENSION_GL_FUNCTIONS
  1244. #undef X
  1245. void juce::gl::loadFunctions()
  1246. {
  1247. #define X(returns, name, params) \
  1248. juce_ ## name = reinterpret_cast<returns (KHRONOS_APIENTRY*) params> (::juce::OpenGLHelpers::getExtensionFunction (#name));
  1249. JUCE_DYNAMIC_GL_FUNCTIONS
  1250. #undef X
  1251. }
  1252. void juce::gl::loadExtensions()
  1253. {
  1254. #define X(returns, name, params) \
  1255. juce_ ## name = reinterpret_cast<returns (KHRONOS_APIENTRY*) params> (::juce::OpenGLHelpers::getExtensionFunction (#name));
  1256. JUCE_EXTENSION_GL_FUNCTIONS
  1257. #undef X
  1258. }
  1259. #undef JUCE_STATIC_GL_FUNCTIONS
  1260. #undef JUCE_DYNAMIC_GL_FUNCTIONS
  1261. #undef JUCE_EXTENSION_GL_FUNCTIONS