1 /* 2 * Copyright (C) 2021 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #pragma once 18 19 #include <GLES/gl.h> 20 #include <GLES2/gl2.h> 21 #include <GLES2/gl2ext.h> 22 #include <GLES3/gl3.h> 23 #include <GLES3/gl32.h> 24 25 typedef const GLubyte* GLconstubyteptr; 26 27 // clang-format off 28 #define FOR_EACH_GLES_COMMON_FUNCTION(X) \ 29 X(void, glActiveTexture, (GLenum texture), (texture)) \ 30 X(void, glBindBuffer, (GLenum target, GLuint buffer), (target, buffer)) \ 31 X(void, glBindTexture, (GLenum target, GLuint texture), (target, texture)) \ 32 X(void, glBlendFunc, (GLenum sfactor, GLenum dfactor), (sfactor, dfactor)) \ 33 X(void, glBlendEquation, (GLenum mode), (mode)) \ 34 X(void, glBlendEquationSeparate, (GLenum modeRGB, GLenum modeAlpha), (modeRGB, modeAlpha)) \ 35 X(void, glBlendFuncSeparate, (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha), (srcRGB, dstRGB, srcAlpha, dstAlpha)) \ 36 X(void, glBufferData, (GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage), (target, size, data, usage)) \ 37 X(void, glBufferSubData, (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid * data), (target, offset, size, data)) \ 38 X(void, glClear, (GLbitfield mask), (mask)) \ 39 X(void, glClearColor, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha), (red, green, blue, alpha)) \ 40 X(void, glClearDepthf, (GLfloat depth), (depth)) \ 41 X(void, glClearStencil, (GLint s), (s)) \ 42 X(void, glColorMask, (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha), (red, green, blue, alpha)) \ 43 X(void, glCompressedTexImage2D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data), (target, level, internalformat, width, height, border, imageSize, data)) \ 44 X(void, glCompressedTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data), (target, level, xoffset, yoffset, width, height, format, imageSize, data)) \ 45 X(void, glCopyTexImage2D, (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border), (target, level, internalFormat, x, y, width, height, border)) \ 46 X(void, glCopyTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height), (target, level, xoffset, yoffset, x, y, width, height)) \ 47 X(void, glCullFace, (GLenum mode), (mode)) \ 48 X(void, glDeleteBuffers, (GLsizei n, const GLuint * buffers), (n, buffers)) \ 49 X(void, glDeleteTextures, (GLsizei n, const GLuint * textures), (n, textures)) \ 50 X(void, glDepthFunc, (GLenum func), (func)) \ 51 X(void, glDepthMask, (GLboolean flag), (flag)) \ 52 X(void, glDepthRangef, (GLfloat zNear, GLfloat zFar), (zNear, zFar)) \ 53 X(void, glDisable, (GLenum cap), (cap)) \ 54 X(void, glDrawArrays, (GLenum mode, GLint first, GLsizei count), (mode, first, count)) \ 55 X(void, glDrawElements, (GLenum mode, GLsizei count, GLenum type, const GLvoid * indices), (mode, count, type, indices)) \ 56 X(void, glEnable, (GLenum cap), (cap)) \ 57 X(void, glFinish, (), ()) \ 58 X(void, glFlush, (), ()) \ 59 X(void, glFrontFace, (GLenum mode), (mode)) \ 60 X(void, glGenBuffers, (GLsizei n, GLuint * buffers), (n, buffers)) \ 61 X(void, glGenTextures, (GLsizei n, GLuint * textures), (n, textures)) \ 62 X(void, glGetBooleanv, (GLenum pname, GLboolean * params), (pname, params)) \ 63 X(void, glGetBufferParameteriv, (GLenum buffer, GLenum parameter, GLint * value), (buffer, parameter, value)) \ 64 X(GLenum, glGetError, (), ()) \ 65 X(void, glGetFloatv, (GLenum pname, GLfloat * params), (pname, params)) \ 66 X(void, glGetIntegerv, (GLenum pname, GLint * params), (pname, params)) \ 67 X(GLconstubyteptr, glGetString, (GLenum name), (name)) \ 68 X(void, glTexParameterf, (GLenum target, GLenum pname, GLfloat param), (target, pname, param)) \ 69 X(void, glTexParameterfv, (GLenum target, GLenum pname, const GLfloat * params), (target, pname, params)) \ 70 X(void, glGetTexImage, (GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels), (target, level, format, type, pixels)) \ 71 X(void, glGetTexParameterfv, (GLenum target, GLenum pname, GLfloat * params), (target, pname, params)) \ 72 X(void, glGetTexParameteriv, (GLenum target, GLenum pname, GLint * params), (target, pname, params)) \ 73 X(void, glGetTexLevelParameteriv, (GLenum target, GLint level, GLenum pname, GLint * params), (target, level, pname, params)) \ 74 X(void, glGetTexLevelParameterfv, (GLenum target, GLint level, GLenum pname, GLfloat * params), (target, level, pname, params)) \ 75 X(void, glHint, (GLenum target, GLenum mode), (target, mode)) \ 76 X(GLboolean, glIsBuffer, (GLuint buffer), (buffer)) \ 77 X(GLboolean, glIsEnabled, (GLenum cap), (cap)) \ 78 X(GLboolean, glIsTexture, (GLuint texture), (texture)) \ 79 X(void, glLineWidth, (GLfloat width), (width)) \ 80 X(void, glPolygonOffset, (GLfloat factor, GLfloat units), (factor, units)) \ 81 X(void, glPixelStorei, (GLenum pname, GLint param), (pname, param)) \ 82 X(void, glReadPixels, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels), (x, y, width, height, format, type, pixels)) \ 83 X(void, glRenderbufferStorageMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height), (target, samples, internalformat, width, height)) \ 84 X(void, glSampleCoverage, (GLclampf value, GLboolean invert), (value, invert)) \ 85 X(void, glScissor, (GLint x, GLint y, GLsizei width, GLsizei height), (x, y, width, height)) \ 86 X(void, glStencilFunc, (GLenum func, GLint ref, GLuint mask), (func, ref, mask)) \ 87 X(void, glStencilMask, (GLuint mask), (mask)) \ 88 X(void, glStencilOp, (GLenum fail, GLenum zfail, GLenum zpass), (fail, zfail, zpass)) \ 89 X(void, glTexImage2D, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels), (target, level, internalformat, width, height, border, format, type, pixels)) \ 90 X(void, glTexParameteri, (GLenum target, GLenum pname, GLint param), (target, pname, param)) \ 91 X(void, glTexParameteriv, (GLenum target, GLenum pname, const GLint * params), (target, pname, params)) \ 92 X(void, glTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels), (target, level, xoffset, yoffset, width, height, format, type, pixels)) \ 93 X(void, glViewport, (GLint x, GLint y, GLsizei width, GLsizei height), (x, y, width, height)) \ 94 X(void, glPushAttrib, (GLbitfield mask), (mask)) \ 95 X(void, glPushClientAttrib, (GLbitfield mask), (mask)) \ 96 X(void, glPopAttrib, (), ()) \ 97 X(void, glPopClientAttrib, (), ()) \ 98 99 #define FOR_EACH_GLES1_ONLY_FUNCTION(X) \ 100 X(void, glAlphaFunc, (GLenum func, GLclampf ref), (func, ref)) \ 101 X(void, glBegin, (GLenum mode), (mode)) \ 102 X(void, glClientActiveTexture, (GLenum texture), (texture)) \ 103 X(void, glClipPlane, (GLenum plane, const GLdouble * equation), (plane, equation)) \ 104 X(void, glColor4d, (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha), (red, green, blue, alpha)) \ 105 X(void, glColor4f, (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha), (red, green, blue, alpha)) \ 106 X(void, glColor4fv, (const GLfloat * v), (v)) \ 107 X(void, glColor4ub, (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha), (red, green, blue, alpha)) \ 108 X(void, glColor4ubv, (const GLubyte * v), (v)) \ 109 X(void, glColorPointer, (GLint size, GLenum type, GLsizei stride, const GLvoid * pointer), (size, type, stride, pointer)) \ 110 X(void, glDisableClientState, (GLenum array), (array)) \ 111 X(void, glEnableClientState, (GLenum array), (array)) \ 112 X(void, glEnd, (), ()) \ 113 X(void, glFogf, (GLenum pname, GLfloat param), (pname, param)) \ 114 X(void, glFogfv, (GLenum pname, const GLfloat * params), (pname, params)) \ 115 X(void, glFrustum, (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar), (left, right, bottom, top, zNear, zFar)) \ 116 X(void, glGetClipPlane, (GLenum plane, GLdouble * equation), (plane, equation)) \ 117 X(void, glGetDoublev, (GLenum pname, GLdouble * params), (pname, params)) \ 118 X(void, glGetLightfv, (GLenum light, GLenum pname, GLfloat * params), (light, pname, params)) \ 119 X(void, glGetMaterialfv, (GLenum face, GLenum pname, GLfloat * params), (face, pname, params)) \ 120 X(void, glGetPointerv, (GLenum pname, GLvoid* * params), (pname, params)) \ 121 X(void, glGetTexEnvfv, (GLenum target, GLenum pname, GLfloat * params), (target, pname, params)) \ 122 X(void, glGetTexEnviv, (GLenum target, GLenum pname, GLint * params), (target, pname, params)) \ 123 X(void, glLightf, (GLenum light, GLenum pname, GLfloat param), (light, pname, param)) \ 124 X(void, glLightfv, (GLenum light, GLenum pname, const GLfloat * params), (light, pname, params)) \ 125 X(void, glLightModelf, (GLenum pname, GLfloat param), (pname, param)) \ 126 X(void, glLightModelfv, (GLenum pname, const GLfloat * params), (pname, params)) \ 127 X(void, glLoadIdentity, (), ()) \ 128 X(void, glLoadMatrixf, (const GLfloat * m), (m)) \ 129 X(void, glLogicOp, (GLenum opcode), (opcode)) \ 130 X(void, glMaterialf, (GLenum face, GLenum pname, GLfloat param), (face, pname, param)) \ 131 X(void, glMaterialfv, (GLenum face, GLenum pname, const GLfloat * params), (face, pname, params)) \ 132 X(void, glMultiTexCoord2fv, (GLenum target, const GLfloat * v), (target, v)) \ 133 X(void, glMultiTexCoord2sv, (GLenum target, const GLshort * v), (target, v)) \ 134 X(void, glMultiTexCoord3fv, (GLenum target, const GLfloat * v), (target, v)) \ 135 X(void, glMultiTexCoord3sv, (GLenum target, const GLshort * v), (target, v)) \ 136 X(void, glMultiTexCoord4f, (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q), (target, s, t, r, q)) \ 137 X(void, glMultiTexCoord4fv, (GLenum target, const GLfloat * v), (target, v)) \ 138 X(void, glMultiTexCoord4sv, (GLenum target, const GLshort * v), (target, v)) \ 139 X(void, glMultMatrixf, (const GLfloat * m), (m)) \ 140 X(void, glNormal3f, (GLfloat nx, GLfloat ny, GLfloat nz), (nx, ny, nz)) \ 141 X(void, glNormal3fv, (const GLfloat * v), (v)) \ 142 X(void, glNormal3sv, (const GLshort * v), (v)) \ 143 X(void, glOrtho, (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar), (left, right, bottom, top, zNear, zFar)) \ 144 X(void, glPointParameterf, (GLenum param, GLfloat value), (param, value)) \ 145 X(void, glPointParameterfv, (GLenum param, const GLfloat * values), (param, values)) \ 146 X(void, glPointSize, (GLfloat size), (size)) \ 147 X(void, glRotatef, (GLfloat angle, GLfloat x, GLfloat y, GLfloat z), (angle, x, y, z)) \ 148 X(void, glScalef, (GLfloat x, GLfloat y, GLfloat z), (x, y, z)) \ 149 X(void, glTexEnvf, (GLenum target, GLenum pname, GLfloat param), (target, pname, param)) \ 150 X(void, glTexEnvfv, (GLenum target, GLenum pname, const GLfloat * params), (target, pname, params)) \ 151 X(void, glMatrixMode, (GLenum mode), (mode)) \ 152 X(void, glNormalPointer, (GLenum type, GLsizei stride, const GLvoid * pointer), (type, stride, pointer)) \ 153 X(void, glPopMatrix, (), ()) \ 154 X(void, glPushMatrix, (), ()) \ 155 X(void, glShadeModel, (GLenum mode), (mode)) \ 156 X(void, glTexCoordPointer, (GLint size, GLenum type, GLsizei stride, const GLvoid * pointer), (size, type, stride, pointer)) \ 157 X(void, glTexEnvi, (GLenum target, GLenum pname, GLint param), (target, pname, param)) \ 158 X(void, glTexEnviv, (GLenum target, GLenum pname, const GLint * params), (target, pname, params)) \ 159 X(void, glTranslatef, (GLfloat x, GLfloat y, GLfloat z), (x, y, z)) \ 160 X(void, glVertexPointer, (GLint size, GLenum type, GLsizei stride, const GLvoid * pointer), (size, type, stride, pointer)) \ 161 X(void, glClipPlanef, (GLenum plane, const GLfloat * equation), (plane, equation)) \ 162 X(void, glFrustumf, (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar), (left, right, bottom, top, zNear, zFar)) \ 163 X(void, glGetClipPlanef, (GLenum pname, GLfloat eqn[4]), (pname, eqn[4])) \ 164 X(void, glOrthof, (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar), (left, right, bottom, top, zNear, zFar)) \ 165 X(void, glAlphaFuncx, (GLenum func, GLclampx ref), (func, ref)) \ 166 X(void, glClearColorx, (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha), (red, green, blue, alpha)) \ 167 X(void, glClearDepthx, (GLclampx depth), (depth)) \ 168 X(void, glColor4x, (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha), (red, green, blue, alpha)) \ 169 X(void, glDepthRangex, (GLclampx zNear, GLclampx zFar), (zNear, zFar)) \ 170 X(void, glFogx, (GLenum pname, GLfixed param), (pname, param)) \ 171 X(void, glFogxv, (GLenum pname, const GLfixed * params), (pname, params)) \ 172 X(void, glFrustumx, (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar), (left, right, bottom, top, zNear, zFar)) \ 173 X(void, glClipPlanex, (GLenum pname, const GLfixed * eqn), (pname, eqn)) \ 174 X(void, glGetFixedv, (GLenum pname, GLfixed * params), (pname, params)) \ 175 X(void, glGetLightxv, (GLenum light, GLenum pname, GLfixed * params), (light, pname, params)) \ 176 X(void, glGetMaterialxv, (GLenum face, GLenum pname, GLfixed * params), (face, pname, params)) \ 177 X(void, glGetTexEnvxv, (GLenum env, GLenum pname, GLfixed * params), (env, pname, params)) \ 178 X(void, glGetTexParameterxv, (GLenum target, GLenum pname, GLfixed * params), (target, pname, params)) \ 179 X(void, glLightModelx, (GLenum pname, GLfixed param), (pname, param)) \ 180 X(void, glLightModelxv, (GLenum pname, const GLfixed * params), (pname, params)) \ 181 X(void, glLightx, (GLenum light, GLenum pname, GLfixed param), (light, pname, param)) \ 182 X(void, glLightxv, (GLenum light, GLenum pname, const GLfixed * params), (light, pname, params)) \ 183 X(void, glLineWidthx, (GLfixed width), (width)) \ 184 X(void, glLoadMatrixx, (const GLfixed * m), (m)) \ 185 X(void, glMaterialx, (GLenum face, GLenum pname, GLfixed param), (face, pname, param)) \ 186 X(void, glMaterialxv, (GLenum face, GLenum pname, const GLfixed * params), (face, pname, params)) \ 187 X(void, glMultMatrixx, (const GLfixed * m), (m)) \ 188 X(void, glMultiTexCoord4x, (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q), (target, s, t, r, q)) \ 189 X(void, glNormal3x, (GLfixed nx, GLfixed ny, GLfixed nz), (nx, ny, nz)) \ 190 X(void, glOrthox, (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar), (left, right, bottom, top, zNear, zFar)) \ 191 X(void, glPointParameterx, (GLenum pname, GLfixed param), (pname, param)) \ 192 X(void, glPointParameterxv, (GLenum pname, const GLfixed * params), (pname, params)) \ 193 X(void, glPointSizex, (GLfixed size), (size)) \ 194 X(void, glPolygonOffsetx, (GLfixed factor, GLfixed units), (factor, units)) \ 195 X(void, glRotatex, (GLfixed angle, GLfixed x, GLfixed y, GLfixed z), (angle, x, y, z)) \ 196 X(void, glSampleCoveragex, (GLclampx value, GLboolean invert), (value, invert)) \ 197 X(void, glScalex, (GLfixed x, GLfixed y, GLfixed z), (x, y, z)) \ 198 X(void, glTexEnvx, (GLenum target, GLenum pname, GLfixed param), (target, pname, param)) \ 199 X(void, glTexEnvxv, (GLenum target, GLenum pname, const GLfixed * params), (target, pname, params)) \ 200 X(void, glTexParameterx, (GLenum target, GLenum pname, GLfixed param), (target, pname, param)) \ 201 X(void, glTexParameterxv, (GLenum target, GLenum pname, const GLfixed * params), (target, pname, params)) \ 202 X(void, glTranslatex, (GLfixed x, GLfixed y, GLfixed z), (x, y, z)) \ 203 X(void, glGetClipPlanex, (GLenum pname, GLfixed eqn[4]), (pname, eqn[4])) \ 204 205 #define FOR_EACH_GLES2_ONLY_FUNCTION(X) \ 206 X(void, glBlendColor, (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha), (red, green, blue, alpha)) \ 207 X(void, glStencilFuncSeparate, (GLenum face, GLenum func, GLint ref, GLuint mask), (face, func, ref, mask)) \ 208 X(void, glStencilMaskSeparate, (GLenum face, GLuint mask), (face, mask)) \ 209 X(void, glStencilOpSeparate, (GLenum face, GLenum fail, GLenum zfail, GLenum zpass), (face, fail, zfail, zpass)) \ 210 X(GLboolean, glIsProgram, (GLuint program), (program)) \ 211 X(GLboolean, glIsShader, (GLuint shader), (shader)) \ 212 X(void, glVertexAttrib1f, (GLuint indx, GLfloat x), (indx, x)) \ 213 X(void, glVertexAttrib1fv, (GLuint indx, const GLfloat* values), (indx, values)) \ 214 X(void, glVertexAttrib2f, (GLuint indx, GLfloat x, GLfloat y), (indx, x, y)) \ 215 X(void, glVertexAttrib2fv, (GLuint indx, const GLfloat* values), (indx, values)) \ 216 X(void, glVertexAttrib3f, (GLuint indx, GLfloat x, GLfloat y, GLfloat z), (indx, x, y, z)) \ 217 X(void, glVertexAttrib3fv, (GLuint indx, const GLfloat* values), (indx, values)) \ 218 X(void, glVertexAttrib4f, (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w), (indx, x, y, z, w)) \ 219 X(void, glVertexAttrib4fv, (GLuint indx, const GLfloat* values), (indx, values)) \ 220 X(void, glVertexAttribPointer, (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr), (indx, size, type, normalized, stride, ptr)) \ 221 X(void, glDisableVertexAttribArray, (GLuint index), (index)) \ 222 X(void, glEnableVertexAttribArray, (GLuint index), (index)) \ 223 X(void, glGetVertexAttribfv, (GLuint index, GLenum pname, GLfloat* params), (index, pname, params)) \ 224 X(void, glGetVertexAttribiv, (GLuint index, GLenum pname, GLint* params), (index, pname, params)) \ 225 X(void, glGetVertexAttribPointerv, (GLuint index, GLenum pname, GLvoid** pointer), (index, pname, pointer)) \ 226 X(void, glUniform1f, (GLint location, GLfloat x), (location, x)) \ 227 X(void, glUniform1fv, (GLint location, GLsizei count, const GLfloat* v), (location, count, v)) \ 228 X(void, glUniform1i, (GLint location, GLint x), (location, x)) \ 229 X(void, glUniform1iv, (GLint location, GLsizei count, const GLint* v), (location, count, v)) \ 230 X(void, glUniform2f, (GLint location, GLfloat x, GLfloat y), (location, x, y)) \ 231 X(void, glUniform2fv, (GLint location, GLsizei count, const GLfloat* v), (location, count, v)) \ 232 X(void, glUniform2i, (GLint location, GLint x, GLint y), (location, x, y)) \ 233 X(void, glUniform2iv, (GLint location, GLsizei count, const GLint* v), (location, count, v)) \ 234 X(void, glUniform3f, (GLint location, GLfloat x, GLfloat y, GLfloat z), (location, x, y, z)) \ 235 X(void, glUniform3fv, (GLint location, GLsizei count, const GLfloat* v), (location, count, v)) \ 236 X(void, glUniform3i, (GLint location, GLint x, GLint y, GLint z), (location, x, y, z)) \ 237 X(void, glUniform3iv, (GLint location, GLsizei count, const GLint* v), (location, count, v)) \ 238 X(void, glUniform4f, (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w), (location, x, y, z, w)) \ 239 X(void, glUniform4fv, (GLint location, GLsizei count, const GLfloat* v), (location, count, v)) \ 240 X(void, glUniform4i, (GLint location, GLint x, GLint y, GLint z, GLint w), (location, x, y, z, w)) \ 241 X(void, glUniform4iv, (GLint location, GLsizei count, const GLint* v), (location, count, v)) \ 242 X(void, glUniformMatrix2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value), (location, count, transpose, value)) \ 243 X(void, glUniformMatrix3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value), (location, count, transpose, value)) \ 244 X(void, glUniformMatrix4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value), (location, count, transpose, value)) \ 245 X(void, glAttachShader, (GLuint program, GLuint shader), (program, shader)) \ 246 X(void, glBindAttribLocation, (GLuint program, GLuint index, const GLchar* name), (program, index, name)) \ 247 X(void, glCompileShader, (GLuint shader), (shader)) \ 248 X(GLuint, glCreateProgram, (), ()) \ 249 X(GLuint, glCreateShader, (GLenum type), (type)) \ 250 X(void, glDeleteProgram, (GLuint program), (program)) \ 251 X(void, glDeleteShader, (GLuint shader), (shader)) \ 252 X(void, glDetachShader, (GLuint program, GLuint shader), (program, shader)) \ 253 X(void, glLinkProgram, (GLuint program), (program)) \ 254 X(void, glUseProgram, (GLuint program), (program)) \ 255 X(void, glValidateProgram, (GLuint program), (program)) \ 256 X(void, glGetActiveAttrib, (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name), (program, index, bufsize, length, size, type, name)) \ 257 X(void, glGetActiveUniform, (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name), (program, index, bufsize, length, size, type, name)) \ 258 X(void, glGetAttachedShaders, (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders), (program, maxcount, count, shaders)) \ 259 X(int, glGetAttribLocation, (GLuint program, const GLchar* name), (program, name)) \ 260 X(void, glGetProgramiv, (GLuint program, GLenum pname, GLint* params), (program, pname, params)) \ 261 X(void, glGetProgramInfoLog, (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog), (program, bufsize, length, infolog)) \ 262 X(void, glGetShaderiv, (GLuint shader, GLenum pname, GLint* params), (shader, pname, params)) \ 263 X(void, glGetShaderInfoLog, (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog), (shader, bufsize, length, infolog)) \ 264 X(void, glGetShaderSource, (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source), (shader, bufsize, length, source)) \ 265 X(void, glGetUniformfv, (GLuint program, GLint location, GLfloat* params), (program, location, params)) \ 266 X(void, glGetUniformiv, (GLuint program, GLint location, GLint* params), (program, location, params)) \ 267 X(int, glGetUniformLocation, (GLuint program, const GLchar* name), (program, name)) \ 268 X(void, glShaderSource, (GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length), (shader, count, string, length)) \ 269 X(void, glBindFramebuffer, (GLenum target, GLuint framebuffer), (target, framebuffer)) \ 270 X(void, glGenFramebuffers, (GLsizei n, GLuint* framebuffers), (n, framebuffers)) \ 271 X(void, glFramebufferTexture2D, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level), (target, attachment, textarget, texture, level)) \ 272 X(GLenum, glCheckFramebufferStatus, (GLenum target), (target)) \ 273 X(GLboolean, glIsFramebuffer, (GLuint framebuffer), (framebuffer)) \ 274 X(void, glDeleteFramebuffers, (GLsizei n, const GLuint* framebuffers), (n, framebuffers)) \ 275 X(GLboolean, glIsRenderbuffer, (GLuint renderbuffer), (renderbuffer)) \ 276 X(void, glBindRenderbuffer, (GLenum target, GLuint renderbuffer), (target, renderbuffer)) \ 277 X(void, glDeleteRenderbuffers, (GLsizei n, const GLuint * renderbuffers), (n, renderbuffers)) \ 278 X(void, glGenRenderbuffers, (GLsizei n, GLuint * renderbuffers), (n, renderbuffers)) \ 279 X(void, glRenderbufferStorage, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height), (target, internalformat, width, height)) \ 280 X(void, glGetRenderbufferParameteriv, (GLenum target, GLenum pname, GLint * params), (target, pname, params)) \ 281 X(void, glFramebufferRenderbuffer, (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer), (target, attachment, renderbuffertarget, renderbuffer)) \ 282 X(void, glGetFramebufferAttachmentParameteriv, (GLenum target, GLenum attachment, GLenum pname, GLint * params), (target, attachment, pname, params)) \ 283 X(void, glGenerateMipmap, (GLenum target), (target)) \ 284 285 #define FOR_EACH_GLES3_ONLY_FUNCTION(X) \ 286 X(GLconstubyteptr, glGetStringi, (GLenum name, GLint index), (name, index)) \ 287 X(void, glGenVertexArrays, (GLsizei n, GLuint* arrays), (n, arrays)) \ 288 X(void, glBindVertexArray, (GLuint array), (array)) \ 289 X(void, glDeleteVertexArrays, (GLsizei n, const GLuint * arrays), (n, arrays)) \ 290 X(GLboolean, glIsVertexArray, (GLuint array), (array)) \ 291 X(void *, glMapBufferRange, (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access), (target, offset, length, access)) \ 292 X(GLboolean, glUnmapBuffer, (GLenum target), (target)) \ 293 X(void, glFlushMappedBufferRange, (GLenum target, GLintptr offset, GLsizeiptr length), (target, offset, length)) \ 294 X(void, glBindBufferRange, (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size), (target, index, buffer, offset, size)) \ 295 X(void, glBindBufferBase, (GLenum target, GLuint index, GLuint buffer), (target, index, buffer)) \ 296 X(void, glCopyBufferSubData, (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size), (readtarget, writetarget, readoffset, writeoffset, size)) \ 297 X(void, glClearBufferiv, (GLenum buffer, GLint drawBuffer, const GLint * value), (buffer, drawBuffer, value)) \ 298 X(void, glClearBufferuiv, (GLenum buffer, GLint drawBuffer, const GLuint * value), (buffer, drawBuffer, value)) \ 299 X(void, glClearBufferfv, (GLenum buffer, GLint drawBuffer, const GLfloat * value), (buffer, drawBuffer, value)) \ 300 X(void, glClearBufferfi, (GLenum buffer, GLint drawBuffer, GLfloat depth, GLint stencil), (buffer, drawBuffer, depth, stencil)) \ 301 X(void, glGetBufferParameteri64v, (GLenum target, GLenum value, GLint64 * data), (target, value, data)) \ 302 X(void, glGetBufferPointerv, (GLenum target, GLenum pname, GLvoid ** params), (target, pname, params)) \ 303 X(void, glUniformBlockBinding, (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding), (program, uniformBlockIndex, uniformBlockBinding)) \ 304 X(GLuint, glGetUniformBlockIndex, (GLuint program, const GLchar * uniformBlockName), (program, uniformBlockName)) \ 305 X(void, glGetUniformIndices, (GLuint program, GLsizei uniformCount, const GLchar ** uniformNames, GLuint * uniformIndices), (program, uniformCount, uniformNames, uniformIndices)) \ 306 X(void, glGetActiveUniformBlockiv, (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint * params), (program, uniformBlockIndex, pname, params)) \ 307 X(void, glGetActiveUniformBlockName, (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformBlockName), (program, uniformBlockIndex, bufSize, length, uniformBlockName)) \ 308 X(void, glUniform1ui, (GLint location, GLuint v0), (location, v0)) \ 309 X(void, glUniform2ui, (GLint location, GLuint v0, GLuint v1), (location, v0, v1)) \ 310 X(void, glUniform3ui, (GLint location, GLuint v0, GLuint v1, GLuint v2), (location, v0, v1, v2)) \ 311 X(void, glUniform4ui, (GLint location, GLint v0, GLuint v1, GLuint v2, GLuint v3), (location, v0, v1, v2, v3)) \ 312 X(void, glUniform1uiv, (GLint location, GLsizei count, const GLuint * value), (location, count, value)) \ 313 X(void, glUniform2uiv, (GLint location, GLsizei count, const GLuint * value), (location, count, value)) \ 314 X(void, glUniform3uiv, (GLint location, GLsizei count, const GLuint * value), (location, count, value)) \ 315 X(void, glUniform4uiv, (GLint location, GLsizei count, const GLuint * value), (location, count, value)) \ 316 X(void, glUniformMatrix2x3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat * value), (location, count, transpose, value)) \ 317 X(void, glUniformMatrix3x2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat * value), (location, count, transpose, value)) \ 318 X(void, glUniformMatrix2x4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat * value), (location, count, transpose, value)) \ 319 X(void, glUniformMatrix4x2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat * value), (location, count, transpose, value)) \ 320 X(void, glUniformMatrix3x4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat * value), (location, count, transpose, value)) \ 321 X(void, glUniformMatrix4x3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat * value), (location, count, transpose, value)) \ 322 X(void, glGetUniformuiv, (GLuint program, GLint location, GLuint * params), (program, location, params)) \ 323 X(void, glGetActiveUniformsiv, (GLuint program, GLsizei uniformCount, const GLuint * uniformIndices, GLenum pname, GLint * params), (program, uniformCount, uniformIndices, pname, params)) \ 324 X(void, glVertexAttribI4i, (GLuint index, GLint v0, GLint v1, GLint v2, GLint v3), (index, v0, v1, v2, v3)) \ 325 X(void, glVertexAttribI4ui, (GLuint index, GLuint v0, GLuint v1, GLuint v2, GLuint v3), (index, v0, v1, v2, v3)) \ 326 X(void, glVertexAttribI4iv, (GLuint index, const GLint * v), (index, v)) \ 327 X(void, glVertexAttribI4uiv, (GLuint index, const GLuint * v), (index, v)) \ 328 X(void, glVertexAttribIPointer, (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer), (index, size, type, stride, pointer)) \ 329 X(void, glGetVertexAttribIiv, (GLuint index, GLenum pname, GLint * params), (index, pname, params)) \ 330 X(void, glGetVertexAttribIuiv, (GLuint index, GLenum pname, GLuint * params), (index, pname, params)) \ 331 X(void, glVertexAttribDivisor, (GLuint index, GLuint divisor), (index, divisor)) \ 332 X(void, glDrawArraysInstanced, (GLenum mode, GLint first, GLsizei count, GLsizei primcount), (mode, first, count, primcount)) \ 333 X(void, glDrawElementsInstanced, (GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount), (mode, count, type, indices, primcount)) \ 334 X(void, glDrawRangeElements, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices), (mode, start, end, count, type, indices)) \ 335 X(GLsync, glFenceSync, (GLenum condition, GLbitfield flags), (condition, flags)) \ 336 X(GLenum, glClientWaitSync, (GLsync wait_on, GLbitfield flags, GLuint64 timeout), (wait_on, flags, timeout)) \ 337 X(void, glWaitSync, (GLsync wait_on, GLbitfield flags, GLuint64 timeout), (wait_on, flags, timeout)) \ 338 X(void, glDeleteSync, (GLsync to_delete), (to_delete)) \ 339 X(GLboolean, glIsSync, (GLsync sync), (sync)) \ 340 X(void, glGetSynciv, (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values), (sync, pname, bufSize, length, values)) \ 341 X(void, glDrawBuffers, (GLsizei n, const GLenum * bufs), (n, bufs)) \ 342 X(void, glReadBuffer, (GLenum src), (src)) \ 343 X(void, glBlitFramebuffer, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter), (srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter)) \ 344 X(void, glInvalidateFramebuffer, (GLenum target, GLsizei numAttachments, const GLenum * attachments), (target, numAttachments, attachments)) \ 345 X(void, glInvalidateSubFramebuffer, (GLenum target, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height), (target, numAttachments, attachments, x, y, width, height)) \ 346 X(void, glFramebufferTextureLayer, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer), (target, attachment, texture, level, layer)) \ 347 X(void, glGetInternalformativ, (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint * params), (target, internalformat, pname, bufSize, params)) \ 348 X(void, glTexStorage2D, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height), (target, levels, internalformat, width, height)) \ 349 X(void, glBeginTransformFeedback, (GLenum primitiveMode), (primitiveMode)) \ 350 X(void, glEndTransformFeedback, (), ()) \ 351 X(void, glGenTransformFeedbacks, (GLsizei n, GLuint * ids), (n, ids)) \ 352 X(void, glDeleteTransformFeedbacks, (GLsizei n, const GLuint * ids), (n, ids)) \ 353 X(void, glBindTransformFeedback, (GLenum target, GLuint id), (target, id)) \ 354 X(void, glPauseTransformFeedback, (), ()) \ 355 X(void, glResumeTransformFeedback, (), ()) \ 356 X(GLboolean, glIsTransformFeedback, (GLuint id), (id)) \ 357 X(void, glTransformFeedbackVaryings, (GLuint program, GLsizei count, const char ** varyings, GLenum bufferMode), (program, count, varyings, bufferMode)) \ 358 X(void, glGetTransformFeedbackVarying, (GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, char * name), (program, index, bufSize, length, size, type, name)) \ 359 X(void, glGenSamplers, (GLsizei n, GLuint * samplers), (n, samplers)) \ 360 X(void, glDeleteSamplers, (GLsizei n, const GLuint * samplers), (n, samplers)) \ 361 X(void, glBindSampler, (GLuint unit, GLuint sampler), (unit, sampler)) \ 362 X(void, glSamplerParameterf, (GLuint sampler, GLenum pname, GLfloat param), (sampler, pname, param)) \ 363 X(void, glSamplerParameteri, (GLuint sampler, GLenum pname, GLint param), (sampler, pname, param)) \ 364 X(void, glSamplerParameterfv, (GLuint sampler, GLenum pname, const GLfloat * params), (sampler, pname, params)) \ 365 X(void, glSamplerParameteriv, (GLuint sampler, GLenum pname, const GLint * params), (sampler, pname, params)) \ 366 X(void, glGetSamplerParameterfv, (GLuint sampler, GLenum pname, GLfloat * params), (sampler, pname, params)) \ 367 X(void, glGetSamplerParameteriv, (GLuint sampler, GLenum pname, GLint * params), (sampler, pname, params)) \ 368 X(GLboolean, glIsSampler, (GLuint sampler), (sampler)) \ 369 X(void, glGenQueries, (GLsizei n, GLuint * queries), (n, queries)) \ 370 X(void, glDeleteQueries, (GLsizei n, const GLuint * queries), (n, queries)) \ 371 X(void, glBeginQuery, (GLenum target, GLuint query), (target, query)) \ 372 X(void, glEndQuery, (GLenum target), (target)) \ 373 X(void, glGetQueryiv, (GLenum target, GLenum pname, GLint * params), (target, pname, params)) \ 374 X(void, glGetQueryObjectuiv, (GLuint query, GLenum pname, GLuint * params), (query, pname, params)) \ 375 X(GLboolean, glIsQuery, (GLuint query), (query)) \ 376 X(void, glProgramParameteri, (GLuint program, GLenum pname, GLint value), (program, pname, value)) \ 377 X(void, glProgramBinary, (GLuint program, GLenum binaryFormat, const void * binary, GLsizei length), (program, binaryFormat, binary, length)) \ 378 X(void, glGetProgramBinary, (GLuint program, GLsizei bufsize, GLsizei * length, GLenum * binaryFormat, void * binary), (program, bufsize, length, binaryFormat, binary)) \ 379 X(GLint, glGetFragDataLocation, (GLuint program, const char * name), (program, name)) \ 380 X(void, glGetInteger64v, (GLenum pname, GLint64 * data), (pname, data)) \ 381 X(void, glGetIntegeri_v, (GLenum target, GLuint index, GLint * data), (target, index, data)) \ 382 X(void, glGetInteger64i_v, (GLenum target, GLuint index, GLint64 * data), (target, index, data)) \ 383 X(void, glTexImage3D, (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * data), (target, level, internalFormat, width, height, depth, border, format, type, data)) \ 384 X(void, glTexStorage3D, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth), (target, levels, internalformat, width, height, depth)) \ 385 X(void, glTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * data), (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data)) \ 386 X(void, glCompressedTexImage3D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid * data), (target, level, internalformat, width, height, depth, border, imageSize, data)) \ 387 X(void, glCompressedTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid * data), (target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data)) \ 388 X(void, glCopyTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height), (target, level, xoffset, yoffset, zoffset, x, y, width, height)) \ 389 X(void, glDebugMessageControl, (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled), (source, type, severity, count, ids, enabled)) \ 390 X(void, glDebugMessageInsert, (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf), (source, type, id, severity, length, buf)) \ 391 X(void, glDebugMessageCallback, (GLDEBUGPROC callback, const void * userParam), (callback, userParam)) \ 392 X(GLuint, glGetDebugMessageLog, (GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog), (count, bufSize, sources, types, ids, severities, lengths, messageLog)) \ 393 X(void, glPushDebugGroup, (GLenum source, GLuint id, GLsizei length, const GLchar* message), (source, id, length, message)) \ 394 X(void, glPopDebugGroup, (), ()) \ 395 396 #define FOR_EACH_GLES_EXTENSION_FUNCTION(X) \ 397 X(void, glImportMemoryFdEXT, (GLuint memory, GLuint64 size, GLenum handleType, GLint fd), (memory, size, handleType, fd)) \ 398 X(void, glImportMemoryWin32HandleEXT, (GLuint memory, GLuint64 size, GLenum handleType, void* handle), (memory, size, handleType, handle)) \ 399 X(void, glDeleteMemoryObjectsEXT, (GLsizei n, const GLuint * memoryObjects), (n, memoryObjects)) \ 400 X(GLboolean, glIsMemoryObjectEXT, (GLuint memoryObject), (memoryObject)) \ 401 X(void, glCreateMemoryObjectsEXT, (GLsizei n, GLuint * memoryObjects), (n, memoryObjects)) \ 402 X(void, glMemoryObjectParameterivEXT, (GLuint memoryObject, GLenum pname, const GLint * params), (memoryObject, pname, params)) \ 403 X(void, glGetMemoryObjectParameterivEXT, (GLuint memoryObject, GLenum pname, GLint * params), (memoryObject, pname, params)) \ 404 X(void, glTexStorageMem2DEXT, (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset), (target, levels, internalFormat, width, height, memory, offset)) \ 405 X(void, glTexStorageMem2DMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset), (target, samples, internalFormat, width, height, fixedSampleLocations, memory, offset)) \ 406 X(void, glTexStorageMem3DEXT, (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset), (target, levels, internalFormat, width, height, depth, memory, offset)) \ 407 X(void, glTexStorageMem3DMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset), (target, samples, internalFormat, width, height, depth, fixedSampleLocations, memory, offset)) \ 408 X(void, glBufferStorageMemEXT, (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset), (target, size, memory, offset)) \ 409 X(void, glTexParameteriHOST, (GLenum target, GLenum pname, GLint param), (target, pname, param)) \ 410 X(void, glImportSemaphoreFdEXT, (GLuint semaphore, GLenum handleType, GLint fd), (semaphore, handleType, fd)) \ 411 X(void, glImportSemaphoreWin32HandleEXT, (GLuint semaphore, GLenum handleType, void* handle), (semaphore, handleType, handle)) \ 412 X(void, glGenSemaphoresEXT, (GLsizei n, GLuint * semaphores), (n, semaphores)) \ 413 X(void, glDeleteSemaphoresEXT, (GLsizei n, const GLuint * semaphores), (n, semaphores)) \ 414 X(GLboolean, glIsSemaphoreEXT, (GLuint semaphore), (semaphore)) \ 415 X(void, glSemaphoreParameterui64vEXT, (GLuint semaphore, GLenum pname, const GLuint64 * params), (semaphore, pname, params)) \ 416 X(void, glGetSemaphoreParameterui64vEXT, (GLuint semaphore, GLenum pname, GLuint64 * params), (semaphore, pname, params)) \ 417 X(void, glWaitSemaphoreEXT, (GLuint semaphore, GLuint numBufferBarriers, const GLuint * buffers, GLuint numTextureBarriers, const GLuint * textures, const GLenum * srcLayouts), (semaphore, numBufferBarriers, buffers, numTextureBarriers, textures, srcLayouts)) \ 418 X(void, glSignalSemaphoreEXT, (GLuint semaphore, GLuint numBufferBarriers, const GLuint * buffers, GLuint numTextureBarriers, const GLuint * textures, const GLenum * dstLayouts), (semaphore, numBufferBarriers, buffers, numTextureBarriers, textures, dstLayouts)) \ 419 X(void, glGetUnsignedBytevEXT, (GLenum pname, GLubyte* data), (pname, data)) \ 420 X(void, glGetUnsignedBytei_vEXT, (GLenum target, GLuint index, GLubyte* data), (target, index, data)) \ 421 422 #define FOR_EACH_GLES_FUNCTION(X) \ 423 FOR_EACH_GLES_COMMON_FUNCTION(X) \ 424 FOR_EACH_GLES_EXTENSION_FUNCTION(X) \ 425 FOR_EACH_GLES1_ONLY_FUNCTION(X) \ 426 FOR_EACH_GLES2_ONLY_FUNCTION(X) \ 427 FOR_EACH_GLES3_ONLY_FUNCTION(X) 428 429 // clang-format on 430