// GENERATED FILE - DO NOT EDIT.
// Generated by generate_entry_points.py using data from gl.xml.
//
// Copyright 2019 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Context_gles_ext_autogen.h: Creates a macro for interfaces in Context.

#ifndef ANGLE_CONTEXT_GLES_EXT_AUTOGEN_H_
#define ANGLE_CONTEXT_GLES_EXT_AUTOGEN_H_

#define ANGLE_GLES_EXT_CONTEXT_API                                                                 \
                                                                                                   \
    /* GLES1 Extensions */                                                                         \
                                                                                                   \
    /* GL_OES_draw_texture */                                                                      \
    void drawTexf(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height);                 \
    void drawTexfv(const GLfloat *coords);                                                         \
    void drawTexi(GLint x, GLint y, GLint z, GLint width, GLint height);                           \
    void drawTexiv(const GLint *coords);                                                           \
    void drawTexs(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height);                 \
    void drawTexsv(const GLshort *coords);                                                         \
    void drawTexx(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height);                 \
    void drawTexxv(const GLfixed *coords);                                                         \
    /* GL_OES_framebuffer_object */                                                                \
    /* GL_OES_matrix_palette */                                                                    \
    void currentPaletteMatrix(GLuint matrixpaletteindex);                                          \
    void loadPaletteFromModelViewMatrix();                                                         \
    void matrixIndexPointer(GLint size, GLenum type, GLsizei stride, const void *pointer);         \
    void weightPointer(GLint size, GLenum type, GLsizei stride, const void *pointer);              \
    /* GL_OES_point_size_array */                                                                  \
    void pointSizePointer(VertexAttribType typePacked, GLsizei stride, const void *pointer);       \
    /* GL_OES_query_matrix */                                                                      \
    GLbitfield queryMatrixx(GLfixed *mantissa, GLint *exponent);                                   \
    /* GL_OES_texture_cube_map */                                                                  \
    void getTexGenfv(GLenum coord, GLenum pname, GLfloat *params);                                 \
    void getTexGeniv(GLenum coord, GLenum pname, GLint *params);                                   \
    void getTexGenxv(GLenum coord, GLenum pname, GLfixed *params);                                 \
    void texGenf(GLenum coord, GLenum pname, GLfloat param);                                       \
    void texGenfv(GLenum coord, GLenum pname, const GLfloat *params);                              \
    void texGeni(GLenum coord, GLenum pname, GLint param);                                         \
    void texGeniv(GLenum coord, GLenum pname, const GLint *params);                                \
    void texGenx(GLenum coord, GLenum pname, GLfixed param);                                       \
    void texGenxv(GLenum coord, GLenum pname, const GLfixed *params);                              \
                                                                                                   \
    /* ANGLE Extensions */                                                                         \
                                                                                                   \
    /* GL_ANGLE_copy_texture_3d */                                                                 \
    void copyTexture3D(TextureID sourceIdPacked, GLint sourceLevel,                                \
                       TextureTarget destTargetPacked, TextureID destIdPacked, GLint destLevel,    \
                       GLint internalFormat, GLenum destType, GLboolean unpackFlipY,               \
                       GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha);         \
    void copySubTexture3D(TextureID sourceIdPacked, GLint sourceLevel,                             \
                          TextureTarget destTargetPacked, TextureID destIdPacked, GLint destLevel, \
                          GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLint z,  \
                          GLint width, GLint height, GLint depth, GLboolean unpackFlipY,           \
                          GLboolean unpackPremultiplyAlpha, GLboolean unpackUnmultiplyAlpha);      \
    /* GL_ANGLE_request_extension */                                                               \
    void requestExtension(const GLchar *name);                                                     \
    /* GL_ANGLE_robust_client_memory */                                                            \
    void getBooleanvRobust(GLenum pname, GLsizei bufSize, GLsizei *length, GLboolean *params);     \
    void getBufferParameterivRobust(BufferBinding targetPacked, GLenum pname, GLsizei bufSize,     \
                                    GLsizei *length, GLint *params);                               \
    void getFloatvRobust(GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params);         \
    void getFramebufferAttachmentParameterivRobust(GLenum target, GLenum attachment, GLenum pname, \
                                                   GLsizei bufSize, GLsizei *length,               \
                                                   GLint *params);                                 \
    void getIntegervRobust(GLenum pname, GLsizei bufSize, GLsizei *length, GLint *data);           \
    void getProgramivRobust(ShaderProgramID programPacked, GLenum pname, GLsizei bufSize,          \
                            GLsizei *length, GLint *params);                                       \
    void getRenderbufferParameterivRobust(GLenum target, GLenum pname, GLsizei bufSize,            \
                                          GLsizei *length, GLint *params);                         \
    void getShaderivRobust(ShaderProgramID shaderPacked, GLenum pname, GLsizei bufSize,            \
                           GLsizei *length, GLint *params);                                        \
    void getTexParameterfvRobust(TextureType targetPacked, GLenum pname, GLsizei bufSize,          \
                                 GLsizei *length, GLfloat *params);                                \
    void getTexParameterivRobust(TextureType targetPacked, GLenum pname, GLsizei bufSize,          \
                                 GLsizei *length, GLint *params);                                  \
    void getUniformfvRobust(ShaderProgramID programPacked, GLint location, GLsizei bufSize,        \
                            GLsizei *length, GLfloat *params);                                     \
    void getUniformivRobust(ShaderProgramID programPacked, GLint location, GLsizei bufSize,        \
                            GLsizei *length, GLint *params);                                       \
    void getVertexAttribfvRobust(GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length,     \
                                 GLfloat *params);                                                 \
    void getVertexAttribivRobust(GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length,     \
                                 GLint *params);                                                   \
    void getVertexAttribPointervRobust(GLuint index, GLenum pname, GLsizei bufSize,                \
                                       GLsizei *length, void **pointer);                           \
    void readPixelsRobust(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format,          \
                          GLenum type, GLsizei bufSize, GLsizei *length, GLsizei *columns,         \
                          GLsizei *rows, void *pixels);                                            \
    void texImage2DRobust(TextureTarget targetPacked, GLint level, GLint internalformat,           \
                          GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, \
                          GLsizei bufSize, const void *pixels);                                    \
    void texParameterfvRobust(TextureType targetPacked, GLenum pname, GLsizei bufSize,             \
                              const GLfloat *params);                                              \
    void texParameterivRobust(TextureType targetPacked, GLenum pname, GLsizei bufSize,             \
                              const GLint *params);                                                \
    void texSubImage2DRobust(TextureTarget targetPacked, GLint level, GLint xoffset,               \
                             GLint yoffset, GLsizei width, GLsizei height, GLenum format,          \
                             GLenum type, GLsizei bufSize, const void *pixels);                    \
    void texImage3DRobust(TextureTarget targetPacked, GLint level, GLint internalformat,           \
                          GLsizei width, GLsizei height, GLsizei depth, GLint border,              \
                          GLenum format, GLenum type, GLsizei bufSize, const void *pixels);        \
    void texSubImage3DRobust(TextureTarget targetPacked, GLint level, GLint xoffset,               \
                             GLint yoffset, GLint zoffset, GLsizei width, GLsizei height,          \
                             GLsizei depth, GLenum format, GLenum type, GLsizei bufSize,           \
                             const void *pixels);                                                  \
    void compressedTexImage2DRobust(                                                               \
        TextureTarget targetPacked, GLint level, GLenum internalformat, GLsizei width,             \
        GLsizei height, GLint border, GLsizei imageSize, GLsizei dataSize, const GLvoid *data);    \
    void compressedTexSubImage2DRobust(                                                            \
        TextureTarget targetPacked, GLint level, GLsizei xoffset, GLsizei yoffset, GLsizei width,  \
        GLsizei height, GLenum format, GLsizei imageSize, GLsizei dataSize, const GLvoid *data);   \
    void compressedTexImage3DRobust(TextureTarget targetPacked, GLint level,                       \
                                    GLenum internalformat, GLsizei width, GLsizei height,          \
                                    GLsizei depth, GLint border, GLsizei imageSize,                \
                                    GLsizei dataSize, const GLvoid *data);                         \
    void compressedTexSubImage3DRobust(TextureTarget targetPacked, GLint level, GLint xoffset,     \
                                       GLint yoffset, GLint zoffset, GLsizei width,                \
                                       GLsizei height, GLsizei depth, GLenum format,               \
                                       GLsizei imageSize, GLsizei dataSize, const GLvoid *data);   \
    void getQueryivRobust(QueryType targetPacked, GLenum pname, GLsizei bufSize, GLsizei *length,  \
                          GLint *params);                                                          \
    void getQueryObjectuivRobust(QueryID idPacked, GLenum pname, GLsizei bufSize, GLsizei *length, \
                                 GLuint *params);                                                  \
    void getBufferPointervRobust(BufferBinding targetPacked, GLenum pname, GLsizei bufSize,        \
                                 GLsizei *length, void **params);                                  \
    void getIntegeri_vRobust(GLenum target, GLuint index, GLsizei bufSize, GLsizei *length,        \
                             GLint *data);                                                         \
    void getInternalformativRobust(GLenum target, GLenum internalformat, GLenum pname,             \
                                   GLsizei bufSize, GLsizei *length, GLint *params);               \
    void getVertexAttribIivRobust(GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length,    \
                                  GLint *params);                                                  \
    void getVertexAttribIuivRobust(GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length,   \
                                   GLuint *params);                                                \
    void getUniformuivRobust(ShaderProgramID programPacked, GLint location, GLsizei bufSize,       \
                             GLsizei *length, GLuint *params);                                     \
    void getActiveUniformBlockivRobust(ShaderProgramID programPacked, GLuint uniformBlockIndex,    \
                                       GLenum pname, GLsizei bufSize, GLsizei *length,             \
                                       GLint *params);                                             \
    void getInteger64vRobust(GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *data);       \
    void getInteger64i_vRobust(GLenum target, GLuint index, GLsizei bufSize, GLsizei *length,      \
                               GLint64 *data);                                                     \
    void getBufferParameteri64vRobust(BufferBinding targetPacked, GLenum pname, GLsizei bufSize,   \
                                      GLsizei *length, GLint64 *params);                           \
    void samplerParameterivRobust(SamplerID samplerPacked, GLuint pname, GLsizei bufSize,          \
                                  const GLint *param);                                             \
    void samplerParameterfvRobust(SamplerID samplerPacked, GLenum pname, GLsizei bufSize,          \
                                  const GLfloat *param);                                           \
    void getSamplerParameterivRobust(SamplerID samplerPacked, GLenum pname, GLsizei bufSize,       \
                                     GLsizei *length, GLint *params);                              \
    void getSamplerParameterfvRobust(SamplerID samplerPacked, GLenum pname, GLsizei bufSize,       \
                                     GLsizei *length, GLfloat *params);                            \
    void getFramebufferParameterivRobust(GLenum target, GLenum pname, GLsizei bufSize,             \
                                         GLsizei *length, GLint *params);                          \
    void getProgramInterfaceivRobust(ShaderProgramID programPacked, GLenum programInterface,       \
                                     GLenum pname, GLsizei bufSize, GLsizei *length,               \
                                     GLint *params);                                               \
    void getBooleani_vRobust(GLenum target, GLuint index, GLsizei bufSize, GLsizei *length,        \
                             GLboolean *data);                                                     \
    void getMultisamplefvRobust(GLenum pname, GLuint index, GLsizei bufSize, GLsizei *length,      \
                                GLfloat *val);                                                     \
    void getTexLevelParameterivRobust(TextureTarget targetPacked, GLint level, GLenum pname,       \
                                      GLsizei bufSize, GLsizei *length, GLint *params);            \
    void getTexLevelParameterfvRobust(TextureTarget targetPacked, GLint level, GLenum pname,       \
                                      GLsizei bufSize, GLsizei *length, GLfloat *params);          \
    void getPointervRobustANGLERobust(GLenum pname, GLsizei bufSize, GLsizei *length,              \
                                      void **params);                                              \
    void readnPixelsRobust(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format,         \
                           GLenum type, GLsizei bufSize, GLsizei *length, GLsizei *columns,        \
                           GLsizei *rows, void *data);                                             \
    void getnUniformfvRobust(ShaderProgramID programPacked, GLint location, GLsizei bufSize,       \
                             GLsizei *length, GLfloat *params);                                    \
    void getnUniformivRobust(ShaderProgramID programPacked, GLint location, GLsizei bufSize,       \
                             GLsizei *length, GLint *params);                                      \
    void getnUniformuivRobust(ShaderProgramID programPacked, GLint location, GLsizei bufSize,      \
                              GLsizei *length, GLuint *params);                                    \
    void texParameterIivRobust(TextureType targetPacked, GLenum pname, GLsizei bufSize,            \
                               const GLint *params);                                               \
    void texParameterIuivRobust(TextureType targetPacked, GLenum pname, GLsizei bufSize,           \
                                const GLuint *params);                                             \
    void getTexParameterIivRobust(TextureType targetPacked, GLenum pname, GLsizei bufSize,         \
                                  GLsizei *length, GLint *params);                                 \
    void getTexParameterIuivRobust(TextureType targetPacked, GLenum pname, GLsizei bufSize,        \
                                   GLsizei *length, GLuint *params);                               \
    void samplerParameterIivRobust(SamplerID samplerPacked, GLenum pname, GLsizei bufSize,         \
                                   const GLint *param);                                            \
    void samplerParameterIuivRobust(SamplerID samplerPacked, GLenum pname, GLsizei bufSize,        \
                                    const GLuint *param);                                          \
    void getSamplerParameterIivRobust(SamplerID samplerPacked, GLenum pname, GLsizei bufSize,      \
                                      GLsizei *length, GLint *params);                             \
    void getSamplerParameterIuivRobust(SamplerID samplerPacked, GLenum pname, GLsizei bufSize,     \
                                       GLsizei *length, GLuint *params);                           \
    void getQueryObjectivRobust(QueryID idPacked, GLenum pname, GLsizei bufSize, GLsizei *length,  \
                                GLint *params);                                                    \
    void getQueryObjecti64vRobust(QueryID idPacked, GLenum pname, GLsizei bufSize,                 \
                                  GLsizei *length, GLint64 *params);                               \
    void getQueryObjectui64vRobust(QueryID idPacked, GLenum pname, GLsizei bufSize,                \
                                   GLsizei *length, GLuint64 *params);                             \
    /* GL_ANGLE_texture_external_update */                                                         \
    void texImage2DExternal(TextureTarget targetPacked, GLint level, GLint internalformat,         \
                            GLsizei width, GLsizei height, GLint border, GLenum format,            \
                            GLenum type);                                                          \
    void invalidateTexture(TextureType targetPacked);                                              \
    /* GL_CHROMIUM_bind_uniform_location */                                                        \
    void bindUniformLocation(ShaderProgramID programPacked, GLint location, const GLchar *name);   \
    /* GL_CHROMIUM_copy_compressed_texture */                                                      \
    void compressedCopyTexture(TextureID sourceIdPacked, TextureID destIdPacked);                  \
    /* GL_CHROMIUM_copy_texture */                                                                 \
    void copyTexture(TextureID sourceIdPacked, GLint sourceLevel, TextureTarget destTargetPacked,  \
                     TextureID destIdPacked, GLint destLevel, GLint internalFormat,                \
                     GLenum destType, GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha,     \
                     GLboolean unpackUnmultiplyAlpha);                                             \
    void copySubTexture(TextureID sourceIdPacked, GLint sourceLevel,                               \
                        TextureTarget destTargetPacked, TextureID destIdPacked, GLint destLevel,   \
                        GLint xoffset, GLint yoffset, GLint x, GLint y, GLint width, GLint height, \
                        GLboolean unpackFlipY, GLboolean unpackPremultiplyAlpha,                   \
                        GLboolean unpackUnmultiplyAlpha);                                          \
    /* GL_CHROMIUM_framebuffer_mixed_samples */                                                    \
    void coverageModulation(GLenum components);                                                    \
    void matrixLoadf(GLenum matrixMode, const GLfloat *matrix);                                    \
    void matrixLoadIdentity(GLenum matrixMode);                                                    \
    /* GL_CHROMIUM_lose_context */                                                                 \
    void loseContext(GraphicsResetStatus currentPacked, GraphicsResetStatus otherPacked);          \
    /* GL_CHROMIUM_path_rendering */                                                               \
    GLuint genPaths(GLsizei range);                                                                \
    void deletePaths(PathID firstPacked, GLsizei range);                                           \
    GLboolean isPath(PathID pathPacked);                                                           \
    void pathCommands(PathID pathPacked, GLsizei numCommands, const GLubyte *commands,             \
                      GLsizei numCoords, GLenum coordType, const void *coords);                    \
    void pathParameterf(PathID pathPacked, GLenum pname, GLfloat value);                           \
    void pathParameteri(PathID pathPacked, GLenum pname, GLint value);                             \
    void getPathParameterfv(PathID pathPacked, GLenum pname, GLfloat *value);                      \
    void getPathParameteriv(PathID pathPacked, GLenum pname, GLint *value);                        \
    void pathStencilFunc(GLenum func, GLint ref, GLuint mask);                                     \
    void stencilFillPath(PathID pathPacked, GLenum fillMode, GLuint mask);                         \
    void stencilStrokePath(PathID pathPacked, GLint reference, GLuint mask);                       \
    void coverFillPath(PathID pathPacked, GLenum coverMode);                                       \
    void coverStrokePath(PathID pathPacked, GLenum coverMode);                                     \
    void stencilThenCoverFillPath(PathID pathPacked, GLenum fillMode, GLuint mask,                 \
                                  GLenum coverMode);                                               \
    void stencilThenCoverStrokePath(PathID pathPacked, GLint reference, GLuint mask,               \
                                    GLenum coverMode);                                             \
    void coverFillPathInstanced(GLsizei numPath, GLenum pathNameType, const void *paths,           \
                                PathID pathBasePacked, GLenum coverMode, GLenum transformType,     \
                                const GLfloat *transformValues);                                   \
    void coverStrokePathInstanced(GLsizei numPath, GLenum pathNameType, const void *paths,         \
                                  PathID pathBasePacked, GLenum coverMode, GLenum transformType,   \
                                  const GLfloat *transformValues);                                 \
    void stencilStrokePathInstanced(GLsizei numPath, GLenum pathNameType, const void *paths,       \
                                    PathID pathBasePacked, GLint reference, GLuint mask,           \
                                    GLenum transformType, const GLfloat *transformValues);         \
    void stencilFillPathInstanced(GLsizei numPaths, GLenum pathNameType, const void *paths,        \
                                  PathID pathBasePacked, GLenum fillMode, GLuint mask,             \
                                  GLenum transformType, const GLfloat *transformValues);           \
    void stencilThenCoverFillPathInstanced(GLsizei numPaths, GLenum pathNameType,                  \
                                           const void *paths, PathID pathBasePacked,               \
                                           GLenum fillMode, GLuint mask, GLenum coverMode,         \
                                           GLenum transformType, const GLfloat *transformValues);  \
    void stencilThenCoverStrokePathInstanced(                                                      \
        GLsizei numPaths, GLenum pathNameType, const void *paths, PathID pathBasePacked,           \
        GLint reference, GLuint mask, GLenum coverMode, GLenum transformType,                      \
        const GLfloat *transformValues);                                                           \
    void bindFragmentInputLocation(ShaderProgramID programsPacked, GLint location,                 \
                                   const GLchar *name);                                            \
    void programPathFragmentInputGen(ShaderProgramID programPacked, GLint location,                \
                                     GLenum genMode, GLint components, const GLfloat *coeffs);     \
                                                                                                   \
    /* GLES2+ Extensions */                                                                        \
                                                                                                   \
    /* GL_ANGLE_base_vertex_base_instance */                                                       \
    void drawArraysInstancedBaseInstance(PrimitiveMode modePacked, GLint first, GLsizei count,     \
                                         GLsizei instanceCount, GLuint baseInstance);              \
    void drawElementsInstancedBaseVertexBaseInstance(                                              \
        PrimitiveMode modePacked, GLsizei count, DrawElementsType typePacked,                      \
        const GLvoid *indices, GLsizei instanceCounts, GLint baseVertex, GLuint baseInstance);     \
    void multiDrawArraysInstancedBaseInstance(                                                     \
        PrimitiveMode modePacked, GLsizei drawcount, const GLsizei *counts,                        \
        const GLsizei *instanceCounts, const GLint *firsts, const GLuint *baseInstances);          \
    void multiDrawElementsInstancedBaseVertexBaseInstance(                                         \
        PrimitiveMode modePacked, DrawElementsType typePacked, GLsizei drawcount,                  \
        const GLsizei *counts, const GLsizei *instanceCounts, const GLvoid *const *indices,        \
        const GLint *baseVertices, const GLuint *baseInstances);                                   \
    /* GL_ANGLE_framebuffer_blit */                                                                \
    /* GL_ANGLE_framebuffer_multisample */                                                         \
    /* GL_ANGLE_instanced_arrays */                                                                \
    /* GL_ANGLE_multi_draw */                                                                      \
    void multiDrawArrays(PrimitiveMode modePacked, const GLint *firsts, const GLsizei *counts,     \
                         GLsizei drawcount);                                                       \
    void multiDrawArraysInstanced(PrimitiveMode modePacked, const GLint *firsts,                   \
                                  const GLsizei *counts, const GLsizei *instanceCounts,            \
                                  GLsizei drawcount);                                              \
    void multiDrawElements(PrimitiveMode modePacked, const GLsizei *counts,                        \
                           DrawElementsType typePacked, const GLvoid *const *indices,              \
                           GLsizei drawcount);                                                     \
    void multiDrawElementsInstanced(PrimitiveMode modePacked, const GLsizei *counts,               \
                                    DrawElementsType typePacked, const GLvoid *const *indices,     \
                                    const GLsizei *instanceCounts, GLsizei drawcount);             \
    /* GL_ANGLE_provoking_vertex */                                                                \
    void provokingVertex(ProvokingVertexConvention modePacked);                                    \
    /* GL_ANGLE_texture_multisample */                                                             \
    /* GL_ANGLE_translated_shader_source */                                                        \
    void getTranslatedShaderSource(ShaderProgramID shaderPacked, GLsizei bufsize, GLsizei *length, \
                                   GLchar *source);                                                \
    /* GL_EXT_blend_func_extended */                                                               \
    void bindFragDataLocation(ShaderProgramID programPacked, GLuint color, const GLchar *name);    \
    void bindFragDataLocationIndexed(ShaderProgramID programPacked, GLuint colorNumber,            \
                                     GLuint index, const GLchar *name);                            \
    GLint getFragDataIndex(ShaderProgramID programPacked, const GLchar *name);                     \
    GLint getProgramResourceLocationIndex(ShaderProgramID programPacked, GLenum programInterface,  \
                                          const GLchar *name);                                     \
    /* GL_EXT_debug_marker */                                                                      \
    void insertEventMarker(GLsizei length, const GLchar *marker);                                  \
    void popGroupMarker();                                                                         \
    void pushGroupMarker(GLsizei length, const GLchar *marker);                                    \
    /* GL_EXT_discard_framebuffer */                                                               \
    void discardFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments);     \
    /* GL_EXT_disjoint_timer_query */                                                              \
    void getQueryObjecti64v(QueryID idPacked, GLenum pname, GLint64 *params);                      \
    void getQueryObjectiv(QueryID idPacked, GLenum pname, GLint *params);                          \
    void getQueryObjectui64v(QueryID idPacked, GLenum pname, GLuint64 *params);                    \
    void queryCounter(QueryID idPacked, QueryType targetPacked);                                   \
    /* GL_EXT_draw_buffers */                                                                      \
    /* GL_EXT_geometry_shader */                                                                   \
    void framebufferTexture(GLenum target, GLenum attachment, TextureID texturePacked,             \
                            GLint level);                                                          \
    /* GL_EXT_instanced_arrays */                                                                  \
    /* GL_EXT_map_buffer_range */                                                                  \
    /* GL_EXT_memory_object */                                                                     \
    void bufferStorageMem(TextureType targetPacked, GLsizeiptr size, GLuint memory,                \
                          GLuint64 offset);                                                        \
    void createMemoryObjects(GLsizei n, GLuint *memoryObjects);                                    \
    void deleteMemoryObjects(GLsizei n, const GLuint *memoryObjects);                              \
    void getMemoryObjectParameteriv(GLuint memoryObject, GLenum pname, GLint *params);             \
    void getUnsignedBytev(GLenum pname, GLubyte *data);                                            \
    void getUnsignedBytei_v(GLenum target, GLuint index, GLubyte *data);                           \
    GLboolean isMemoryObject(GLuint memoryObject);                                                 \
    void memoryObjectParameteriv(GLuint memoryObject, GLenum pname, const GLint *params);          \
    void texStorageMem2D(TextureType targetPacked, GLsizei levels, GLenum internalFormat,          \
                         GLsizei width, GLsizei height, GLuint memory, GLuint64 offset);           \
    void texStorageMem2DMultisample(                                                               \
        TextureType targetPacked, GLsizei samples, GLenum internalFormat, GLsizei width,           \
        GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);           \
    void texStorageMem3D(TextureType targetPacked, GLsizei levels, GLenum internalFormat,          \
                         GLsizei width, GLsizei height, GLsizei depth, GLuint memory,              \
                         GLuint64 offset);                                                         \
    void texStorageMem3DMultisample(TextureType targetPacked, GLsizei samples,                     \
                                    GLenum internalFormat, GLsizei width, GLsizei height,          \
                                    GLsizei depth, GLboolean fixedSampleLocations, GLuint memory,  \
                                    GLuint64 offset);                                              \
    /* GL_EXT_memory_object_fd */                                                                  \
    void importMemoryFd(GLuint memory, GLuint64 size, HandleType handleTypePacked, GLint fd);      \
    /* GL_EXT_occlusion_query_boolean */                                                           \
    /* GL_EXT_robustness */                                                                        \
    GLenum getGraphicsResetStatus();                                                               \
    void getnUniformfv(ShaderProgramID programPacked, GLint location, GLsizei bufSize,             \
                       GLfloat *params);                                                           \
    void getnUniformiv(ShaderProgramID programPacked, GLint location, GLsizei bufSize,             \
                       GLint *params);                                                             \
    void readnPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type,  \
                     GLsizei bufSize, void *data);                                                 \
    /* GL_EXT_semaphore */                                                                         \
    void deleteSemaphores(GLsizei n, const SemaphoreID *semaphoresPacked);                         \
    void genSemaphores(GLsizei n, SemaphoreID *semaphoresPacked);                                  \
    void getSemaphoreParameterui64v(SemaphoreID semaphorePacked, GLenum pname, GLuint64 *params);  \
    GLboolean isSemaphore(SemaphoreID semaphorePacked);                                            \
    void semaphoreParameterui64v(SemaphoreID semaphorePacked, GLenum pname,                        \
                                 const GLuint64 *params);                                          \
    void signalSemaphore(SemaphoreID semaphorePacked, GLuint numBufferBarriers,                    \
                         const BufferID *buffersPacked, GLuint numTextureBarriers,                 \
                         const TextureID *texturesPacked, const GLenum *dstLayouts);               \
    void waitSemaphore(SemaphoreID semaphorePacked, GLuint numBufferBarriers,                      \
                       const BufferID *buffersPacked, GLuint numTextureBarriers,                   \
                       const TextureID *texturesPacked, const GLenum *srcLayouts);                 \
    /* GL_EXT_semaphore_fd */                                                                      \
    void importSemaphoreFd(SemaphoreID semaphorePacked, HandleType handleTypePacked, GLint fd);    \
    /* GL_EXT_texture_storage */                                                                   \
    void texStorage1D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);        \
    /* GL_KHR_debug */                                                                             \
    void debugMessageCallback(GLDEBUGPROCKHR callback, const void *userParam);                     \
    void debugMessageControl(GLenum source, GLenum type, GLenum severity, GLsizei count,           \
                             const GLuint *ids, GLboolean enabled);                                \
    void debugMessageInsert(GLenum source, GLenum type, GLuint id, GLenum severity,                \
                            GLsizei length, const GLchar *buf);                                    \
    GLuint getDebugMessageLog(GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types,       \
                              GLuint *ids, GLenum *severities, GLsizei *lengths,                   \
                              GLchar *messageLog);                                                 \
    void getObjectLabel(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length,          \
                        GLchar *label);                                                            \
    void getObjectPtrLabel(const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);      \
    void objectLabel(GLenum identifier, GLuint name, GLsizei length, const GLchar *label);         \
    void objectPtrLabel(const void *ptr, GLsizei length, const GLchar *label);                     \
    void popDebugGroup();                                                                          \
    void pushDebugGroup(GLenum source, GLuint id, GLsizei length, const GLchar *message);          \
    /* GL_KHR_parallel_shader_compile */                                                           \
    void maxShaderCompilerThreads(GLuint count);                                                   \
    /* GL_NV_fence */                                                                              \
    void deleteFencesNV(GLsizei n, const FenceNVID *fencesPacked);                                 \
    void finishFenceNV(FenceNVID fencePacked);                                                     \
    void genFencesNV(GLsizei n, FenceNVID *fencesPacked);                                          \
    void getFenceivNV(FenceNVID fencePacked, GLenum pname, GLint *params);                         \
    GLboolean isFenceNV(FenceNVID fencePacked);                                                    \
    void setFenceNV(FenceNVID fencePacked, GLenum condition);                                      \
    GLboolean testFenceNV(FenceNVID fencePacked);                                                  \
    /* GL_OES_EGL_image */                                                                         \
    void eGLImageTargetRenderbufferStorage(GLenum target, GLeglImageOES image);                    \
    void eGLImageTargetTexture2D(TextureType targetPacked, GLeglImageOES image);                   \
    /* GL_OES_get_program_binary */                                                                \
    /* GL_OES_mapbuffer */                                                                         \
    void *mapBuffer(BufferBinding targetPacked, GLenum access);                                    \
    /* GL_OES_texture_3D */                                                                        \
    void framebufferTexture3D(GLenum target, GLenum attachment, TextureTarget textargetPacked,     \
                              TextureID texturePacked, GLint level, GLint zoffset);                \
    /* GL_OES_texture_border_clamp */                                                              \
    void getSamplerParameterIiv(SamplerID samplerPacked, GLenum pname, GLint *params);             \
    void getSamplerParameterIuiv(SamplerID samplerPacked, GLenum pname, GLuint *params);           \
    void getTexParameterIiv(TextureType targetPacked, GLenum pname, GLint *params);                \
    void getTexParameterIuiv(TextureType targetPacked, GLenum pname, GLuint *params);              \
    void samplerParameterIiv(SamplerID samplerPacked, GLenum pname, const GLint *param);           \
    void samplerParameterIuiv(SamplerID samplerPacked, GLenum pname, const GLuint *param);         \
    void texParameterIiv(TextureType targetPacked, GLenum pname, const GLint *params);             \
    void texParameterIuiv(TextureType targetPacked, GLenum pname, const GLuint *params);           \
    /* GL_OES_texture_storage_multisample_2d_array */                                              \
    void texStorage3DMultisample(TextureType targetPacked, GLsizei samples, GLenum internalformat, \
                                 GLsizei width, GLsizei height, GLsizei depth,                     \
                                 GLboolean fixedsamplelocations);                                  \
    /* GL_OES_vertex_array_object */                                                               \
    /* GL_OVR_multiview */                                                                         \
    void framebufferTextureMultiview(GLenum target, GLenum attachment, TextureID texturePacked,    \
                                     GLint level, GLint baseViewIndex, GLsizei numViews);          \
    /* GL_OVR_multiview2 */

#endif  // ANGLE_CONTEXT_API_EXT_AUTOGEN_H_
