// GENERATED FILE - DO NOT EDIT.
// Generated by generate_entry_points.py using data from gl.xml.
//
// Copyright 2020 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_EXT_texture_lod_bias */                                                                  \
    /* GL_OES_blend_subtract */                                                                    \
    /* 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_point_sprite */                                                                      \
    /* 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);                              \
    /* GL_OES_texture_mirrored_repeat */                                                           \
                                                                                                   \
    /* GLES2+ Extensions */                                                                        \
                                                                                                   \
    /* GL_AMD_performance_monitor */                                                               \
    void beginPerfMonitor(GLuint monitor);                                                         \
    void deletePerfMonitors(GLsizei n, GLuint *monitors);                                          \
    void endPerfMonitor(GLuint monitor);                                                           \
    void genPerfMonitors(GLsizei n, GLuint *monitors);                                             \
    void getPerfMonitorCounterData(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data,   \
                                   GLint *bytesWritten);                                           \
    void getPerfMonitorCounterInfo(GLuint group, GLuint counter, GLenum pname, void *data);        \
    void getPerfMonitorCounterString(GLuint group, GLuint counter, GLsizei bufSize,                \
                                     GLsizei *length, GLchar *counterString);                      \
    void getPerfMonitorCounters(GLuint group, GLint *numCounters, GLint *maxActiveCounters,        \
                                GLsizei counterSize, GLuint *counters);                            \
    void getPerfMonitorGroupString(GLuint group, GLsizei bufSize, GLsizei *length,                 \
                                   GLchar *groupString);                                           \
    void getPerfMonitorGroups(GLint *numGroups, GLsizei groupsSize, GLuint *groups);               \
    void selectPerfMonitorCounters(GLuint monitor, GLboolean enable, GLuint group,                 \
                                   GLint numCounters, GLuint *counterList);                        \
    /* GL_ANDROID_extension_pack_es31a */                                                          \
    /* GL_ANGLE_depth_texture */                                                                   \
    /* GL_ANGLE_framebuffer_blit */                                                                \
    /* GL_ANGLE_instanced_arrays */                                                                \
    /* GL_ANGLE_pack_reverse_row_order */                                                          \
    /* GL_ANGLE_texture_usage */                                                                   \
    /* GL_ANGLE_translated_shader_source */                                                        \
    void getTranslatedShaderSource(ShaderProgramID shaderPacked, GLsizei bufSize, GLsizei *length, \
                                   GLchar *source);                                                \
    /* GL_APPLE_clip_distance */                                                                   \
    /* GL_ARM_rgba8 */                                                                             \
    /* GL_ARM_shader_framebuffer_fetch */                                                          \
    /* GL_ARM_shader_framebuffer_fetch_depth_stencil */                                            \
    /* GL_ARM_texture_unnormalized_coordinates */                                                  \
    /* GL_EXT_EGL_image_array */                                                                   \
    /* GL_EXT_EGL_image_external_wrap_modes */                                                     \
    /* GL_EXT_EGL_image_storage */                                                                 \
    void eGLImageTargetTexStorage(GLenum target, egl::ImageID imagePacked,                         \
                                  const GLint *attrib_list);                                       \
    /* GL_EXT_EGL_image_storage_compression */                                                     \
    /* GL_EXT_YUV_target */                                                                        \
    /* GL_EXT_base_instance */                                                                     \
    void drawElementsInstancedBaseInstance(PrimitiveMode modePacked, GLsizei count,                \
                                           DrawElementsType typePacked, const void *indices,       \
                                           GLsizei instancecount, GLuint baseinstance);            \
    /* 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_blend_minmax */                                                                      \
    /* GL_EXT_buffer_storage */                                                                    \
    void bufferStorage(BufferBinding targetPacked, GLsizeiptr size, const void *data,              \
                       GLbitfield flags);                                                          \
    /* GL_EXT_clear_texture */                                                                     \
    void clearTexImage(TextureID texturePacked, GLint level, GLenum format, GLenum type,           \
                       const void *data);                                                          \
    void clearTexSubImage(TextureID texturePacked, GLint level, GLint xoffset, GLint yoffset,      \
                          GLint zoffset, GLsizei width, GLsizei height, GLsizei depth,             \
                          GLenum format, GLenum type, const void *data);                           \
    /* GL_EXT_clip_control */                                                                      \
    /* GL_EXT_clip_cull_distance */                                                                \
    /* GL_EXT_color_buffer_float */                                                                \
    /* GL_EXT_color_buffer_half_float */                                                           \
    /* GL_EXT_compressed_ETC1_RGB8_sub_texture */                                                  \
    /* GL_EXT_conservative_depth */                                                                \
    /* GL_EXT_copy_image */                                                                        \
    /* GL_EXT_debug_label */                                                                       \
    void labelObject(GLenum type, GLuint object, GLsizei length, const GLchar *label);             \
    /* GL_EXT_debug_marker */                                                                      \
    void insertEventMarker(GLsizei length, const GLchar *marker);                                  \
    void popGroupMarker();                                                                         \
    void pushGroupMarker(GLsizei length, const GLchar *marker);                                    \
    /* GL_EXT_depth_clamp */                                                                       \
    /* GL_EXT_discard_framebuffer */                                                               \
    void discardFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments);     \
    /* GL_EXT_disjoint_timer_query */                                                              \
    void getQueryObjecti64v(QueryID idPacked, QueryObjectParameter pnamePacked, GLint64 *params);  \
    void getQueryObjectiv(QueryID idPacked, QueryObjectParameter pnamePacked, GLint *params);      \
    void getQueryObjectui64v(QueryID idPacked, QueryObjectParameter pnamePacked,                   \
                             GLuint64 *params);                                                    \
    void queryCounter(QueryID idPacked, QueryType targetPacked);                                   \
    /* GL_EXT_draw_buffers */                                                                      \
    /* GL_EXT_draw_buffers_indexed */                                                              \
    /* GL_EXT_draw_elements_base_vertex */                                                         \
    void multiDrawElementsBaseVertex(PrimitiveMode modePacked, const GLsizei *count,               \
                                     DrawElementsType typePacked, const void *const *indices,      \
                                     GLsizei drawcount, const GLint *basevertex);                  \
    /* GL_EXT_draw_instanced */                                                                    \
    /* GL_EXT_external_buffer */                                                                   \
    void bufferStorageExternal(BufferBinding targetPacked, GLintptr offset, GLsizeiptr size,       \
                               GLeglClientBufferEXT clientBuffer, GLbitfield flags);               \
    /* GL_EXT_float_blend */                                                                       \
    /* GL_EXT_frag_depth */                                                                        \
    /* GL_EXT_fragment_shading_rate */                                                             \
    void framebufferShadingRate(GLenum target, GLenum attachment, GLuint texture, GLint baseLayer, \
                                GLsizei numLayers, GLsizei texelWidth, GLsizei texelHeight);       \
    void getFragmentShadingRates(GLsizei samples, GLsizei maxCount, GLsizei *count,                \
                                 GLenum *shadingRates);                                            \
    /* GL_EXT_fragment_shading_rate_attachment */                                                  \
    /* GL_EXT_fragment_shading_rate_primitive */                                                   \
    /* GL_EXT_geometry_shader */                                                                   \
    /* GL_EXT_gpu_shader5 */                                                                       \
    /* GL_EXT_instanced_arrays */                                                                  \
    /* GL_EXT_map_buffer_range */                                                                  \
    /* GL_EXT_memory_object */                                                                     \
    void bufferStorageMem(TextureType targetPacked, GLsizeiptr size, MemoryObjectID memoryPacked,  \
                          GLuint64 offset);                                                        \
    void createMemoryObjects(GLsizei n, MemoryObjectID *memoryObjectsPacked);                      \
    void deleteMemoryObjects(GLsizei n, const MemoryObjectID *memoryObjectsPacked);                \
    void getMemoryObjectParameteriv(MemoryObjectID memoryObjectPacked, GLenum pname,               \
                                    GLint *params);                                                \
    void getUnsignedBytev(GLenum pname, GLubyte *data);                                            \
    void getUnsignedBytei_v(GLenum target, GLuint index, GLubyte *data);                           \
    GLboolean isMemoryObject(MemoryObjectID memoryObjectPacked) const;                             \
    void memoryObjectParameteriv(MemoryObjectID memoryObjectPacked, GLenum pname,                  \
                                 const GLint *params);                                             \
    void texStorageMem2D(TextureType targetPacked, GLsizei levels, GLenum internalFormat,          \
                         GLsizei width, GLsizei height, MemoryObjectID memoryPacked,               \
                         GLuint64 offset);                                                         \
    void texStorageMem2DMultisample(TextureType targetPacked, GLsizei samples,                     \
                                    GLenum internalFormat, GLsizei width, GLsizei height,          \
                                    GLboolean fixedSampleLocations, MemoryObjectID memoryPacked,   \
                                    GLuint64 offset);                                              \
    void texStorageMem3D(TextureType targetPacked, GLsizei levels, GLenum internalFormat,          \
                         GLsizei width, GLsizei height, GLsizei depth,                             \
                         MemoryObjectID memoryPacked, GLuint64 offset);                            \
    void texStorageMem3DMultisample(TextureType targetPacked, GLsizei samples,                     \
                                    GLenum internalFormat, GLsizei width, GLsizei height,          \
                                    GLsizei depth, GLboolean fixedSampleLocations,                 \
                                    MemoryObjectID memoryPacked, GLuint64 offset);                 \
    /* GL_EXT_memory_object_fd */                                                                  \
    void importMemoryFd(MemoryObjectID memoryPacked, GLuint64 size, HandleType handleTypePacked,   \
                        GLint fd);                                                                 \
    /* GL_EXT_multi_draw_arrays */                                                                 \
    /* GL_EXT_multi_draw_indirect */                                                               \
    void multiDrawArraysIndirect(PrimitiveMode modePacked, const void *indirect,                   \
                                 GLsizei drawcount, GLsizei stride);                               \
    void multiDrawElementsIndirect(PrimitiveMode modePacked, DrawElementsType typePacked,          \
                                   const void *indirect, GLsizei drawcount, GLsizei stride);       \
    /* GL_EXT_multisample_compatibility */                                                         \
    /* GL_EXT_multisampled_render_to_texture */                                                    \
    void framebufferTexture2DMultisample(GLenum target, GLenum attachment,                         \
                                         TextureTarget textargetPacked, TextureID texturePacked,   \
                                         GLint level, GLsizei samples);                            \
    void renderbufferStorageMultisampleEXT(GLenum target, GLsizei samples, GLenum internalformat,  \
                                           GLsizei width, GLsizei height);                         \
    /* GL_EXT_multisampled_render_to_texture2 */                                                   \
    /* GL_EXT_occlusion_query_boolean */                                                           \
    /* GL_EXT_polygon_offset_clamp */                                                              \
    /* GL_EXT_primitive_bounding_box */                                                            \
    /* GL_EXT_protected_textures */                                                                \
    /* GL_EXT_pvrtc_sRGB */                                                                        \
    /* GL_EXT_read_format_bgra */                                                                  \
    /* GL_EXT_render_snorm */                                                                      \
    /* GL_EXT_robustness */                                                                        \
    /* GL_EXT_sRGB */                                                                              \
    /* GL_EXT_sRGB_write_control */                                                                \
    /* 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) const;                                      \
    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_separate_depth_stencil */                                                            \
    /* GL_EXT_separate_shader_objects */                                                           \
    /* GL_EXT_shader_framebuffer_fetch */                                                          \
    /* GL_EXT_shader_framebuffer_fetch_non_coherent */                                             \
    void framebufferFetchBarrier();                                                                \
    /* GL_EXT_shader_io_blocks */                                                                  \
    /* GL_EXT_shader_non_constant_global_initializers */                                           \
    /* GL_EXT_shader_texture_lod */                                                                \
    /* GL_EXT_shader_texture_samples */                                                            \
    /* GL_EXT_shadow_samplers */                                                                   \
    /* GL_EXT_tessellation_shader */                                                               \
    /* GL_EXT_texture_border_clamp */                                                              \
    /* GL_EXT_texture_buffer */                                                                    \
    /* GL_EXT_texture_compression_astc_decode_mode */                                              \
    /* GL_EXT_texture_compression_astc_decode_mode_rgb9e5 */                                       \
    /* GL_EXT_texture_compression_bptc */                                                          \
    /* GL_EXT_texture_compression_dxt1 */                                                          \
    /* GL_EXT_texture_compression_rgtc */                                                          \
    /* GL_EXT_texture_compression_s3tc */                                                          \
    /* GL_EXT_texture_compression_s3tc_srgb */                                                     \
    /* GL_EXT_texture_cube_map_array */                                                            \
    /* GL_EXT_texture_filter_anisotropic */                                                        \
    /* GL_EXT_texture_filter_minmax */                                                             \
    /* GL_EXT_texture_format_BGRA8888 */                                                           \
    /* GL_EXT_texture_format_sRGB_override */                                                      \
    /* GL_EXT_texture_mirror_clamp_to_edge */                                                      \
    /* GL_EXT_texture_norm16 */                                                                    \
    /* GL_EXT_texture_query_lod */                                                                 \
    /* GL_EXT_texture_rg */                                                                        \
    /* GL_EXT_texture_sRGB_R8 */                                                                   \
    /* GL_EXT_texture_sRGB_RG8 */                                                                  \
    /* GL_EXT_texture_sRGB_decode */                                                               \
    /* GL_EXT_texture_shadow_lod */                                                                \
    /* GL_EXT_texture_storage */                                                                   \
    /* GL_EXT_texture_storage_compression */                                                       \
    void texStorageAttribs2D(TextureType targetPacked, GLsizei levels, GLenum internalformat,      \
                             GLsizei width, GLsizei height, const GLint *attrib_list);             \
    void texStorageAttribs3D(TextureType targetPacked, GLsizei levels, GLenum internalformat,      \
                             GLsizei width, GLsizei height, GLsizei depth,                         \
                             const GLint *attrib_list);                                            \
    /* GL_EXT_texture_type_2_10_10_10_REV */                                                       \
    /* GL_EXT_unpack_subimage */                                                                   \
    /* GL_IMG_texture_compression_pvrtc */                                                         \
    /* GL_IMG_texture_compression_pvrtc2 */                                                        \
    /* GL_KHR_blend_equation_advanced */                                                           \
    /* GL_KHR_blend_equation_advanced_coherent */                                                  \
    /* GL_KHR_debug */                                                                             \
    /* GL_KHR_no_error */                                                                          \
    /* GL_KHR_parallel_shader_compile */                                                           \
    void maxShaderCompilerThreads(GLuint count);                                                   \
    /* GL_KHR_robust_buffer_access_behavior */                                                     \
    /* GL_KHR_robustness */                                                                        \
    /* GL_KHR_texture_compression_astc_hdr */                                                      \
    /* GL_KHR_texture_compression_astc_ldr */                                                      \
    /* GL_KHR_texture_compression_astc_sliced_3d */                                                \
    /* GL_MESA_framebuffer_flip_y */                                                               \
    /* GL_NV_EGL_stream_consumer_external */                                                       \
    /* 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) const;                                              \
    void setFenceNV(FenceNVID fencePacked, GLenum condition);                                      \
    GLboolean testFenceNV(FenceNVID fencePacked);                                                  \
    /* GL_NV_framebuffer_blit */                                                                   \
    /* GL_NV_pack_subimage */                                                                      \
    /* GL_NV_pixel_buffer_object */                                                                \
    /* GL_NV_polygon_mode */                                                                       \
    /* GL_NV_read_depth */                                                                         \
    /* GL_NV_read_depth_stencil */                                                                 \
    /* GL_NV_read_stencil */                                                                       \
    /* GL_NV_robustness_video_memory_purge */                                                      \
    /* GL_NV_shader_noperspective_interpolation */                                                 \
    /* GL_OES_EGL_image */                                                                         \
    void eGLImageTargetRenderbufferStorage(GLenum target, egl::ImageID imagePacked);               \
    void eGLImageTargetTexture2D(TextureType targetPacked, egl::ImageID imagePacked);              \
    /* GL_OES_EGL_image_external */                                                                \
    /* GL_OES_EGL_image_external_essl3 */                                                          \
    /* GL_OES_EGL_sync */                                                                          \
    /* GL_OES_compressed_ETC1_RGB8_texture */                                                      \
    /* GL_OES_compressed_paletted_texture */                                                       \
    /* GL_OES_copy_image */                                                                        \
    /* GL_OES_depth24 */                                                                           \
    /* GL_OES_depth32 */                                                                           \
    /* GL_OES_depth_texture */                                                                     \
    /* GL_OES_depth_texture_cube_map */                                                            \
    /* GL_OES_draw_buffers_indexed */                                                              \
    /* GL_OES_draw_elements_base_vertex */                                                         \
    /* GL_OES_element_index_uint */                                                                \
    /* GL_OES_fbo_render_mipmap */                                                                 \
    /* GL_OES_geometry_shader */                                                                   \
    /* GL_OES_get_program_binary */                                                                \
    /* GL_OES_gpu_shader5 */                                                                       \
    /* GL_OES_mapbuffer */                                                                         \
    void *mapBuffer(BufferBinding targetPacked, GLenum access);                                    \
    /* GL_OES_packed_depth_stencil */                                                              \
    /* GL_OES_primitive_bounding_box */                                                            \
    /* GL_OES_required_internalformat */                                                           \
    /* GL_OES_rgb8_rgba8 */                                                                        \
    /* GL_OES_sample_shading */                                                                    \
    /* GL_OES_sample_variables */                                                                  \
    /* GL_OES_shader_image_atomic */                                                               \
    /* GL_OES_shader_io_blocks */                                                                  \
    /* GL_OES_shader_multisample_interpolation */                                                  \
    /* GL_OES_standard_derivatives */                                                              \
    /* GL_OES_surfaceless_context */                                                               \
    /* GL_OES_tessellation_shader */                                                               \
    /* GL_OES_texture_3D */                                                                        \
    void framebufferTexture3D(GLenum target, GLenum attachment, TextureTarget textargetPacked,     \
                              TextureID texturePacked, GLint level, GLint zoffset);                \
    /* GL_OES_texture_border_clamp */                                                              \
    /* GL_OES_texture_buffer */                                                                    \
    /* GL_OES_texture_compression_astc */                                                          \
    /* GL_OES_texture_cube_map_array */                                                            \
    /* GL_OES_texture_float */                                                                     \
    /* GL_OES_texture_float_linear */                                                              \
    /* GL_OES_texture_half_float */                                                                \
    /* GL_OES_texture_half_float_linear */                                                         \
    /* GL_OES_texture_npot */                                                                      \
    /* GL_OES_texture_stencil8 */                                                                  \
    /* GL_OES_texture_storage_multisample_2d_array */                                              \
    /* GL_OES_vertex_array_object */                                                               \
    /* GL_OES_vertex_half_float */                                                                 \
    /* GL_OES_vertex_type_10_10_10_2 */                                                            \
    /* GL_OVR_multiview */                                                                         \
    void framebufferTextureMultiview(GLenum target, GLenum attachment, TextureID texturePacked,    \
                                     GLint level, GLint baseViewIndex, GLsizei numViews);          \
    /* GL_OVR_multiview2 */                                                                        \
    /* GL_OVR_multiview_multisampled_render_to_texture */                                          \
    void framebufferTextureMultisampleMultiview(                                                   \
        GLenum target, GLenum attachment, TextureID texturePacked, GLint level, GLsizei samples,   \
        GLint baseViewIndex, GLsizei numViews);                                                    \
    /* GL_QCOM_framebuffer_foveated */                                                             \
    void framebufferFoveationConfig(FramebufferID framebufferPacked, GLuint numLayers,             \
                                    GLuint focalPointsPerLayer, GLuint requestedFeatures,          \
                                    GLuint *providedFeatures);                                     \
    void framebufferFoveationParameters(FramebufferID framebufferPacked, GLuint layer,             \
                                        GLuint focalPoint, GLfloat focalX, GLfloat focalY,         \
                                        GLfloat gainX, GLfloat gainY, GLfloat foveaArea);          \
    /* GL_QCOM_render_shared_exponent */                                                           \
    /* GL_QCOM_shading_rate */                                                                     \
    /* GL_QCOM_texture_foveated */                                                                 \
    void textureFoveationParameters(TextureID texturePacked, GLuint layer, GLuint focalPoint,      \
                                    GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY,  \
                                    GLfloat foveaArea);                                            \
    /* GL_QCOM_texture_lod_bias */                                                                 \
    /* GL_QCOM_tiled_rendering */                                                                  \
    void endTiling(GLbitfield preserveMask);                                                       \
    void startTiling(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);    \
                                                                                                   \
    /* ANGLE 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 void *indices, \
        GLsizei instanceCount, GLint baseVertex, GLuint baseInstance);                             \
    void multiDrawArraysInstancedBaseInstance(                                                     \
        PrimitiveMode modePacked, const GLint *firsts, const GLsizei *counts,                      \
        const GLsizei *instanceCounts, const GLuint *baseInstances, GLsizei drawcount);            \
    void multiDrawElementsInstancedBaseVertexBaseInstance(                                         \
        PrimitiveMode modePacked, const GLsizei *counts, DrawElementsType typePacked,              \
        const void *const *indices, const GLsizei *instanceCounts, const GLint *baseVertices,      \
        const GLuint *baseInstances, GLsizei drawcount);                                           \
    /* GL_ANGLE_base_vertex_base_instance_shader_builtin */                                        \
    /* GL_ANGLE_blob_cache */                                                                      \
    void blobCacheCallbacks(GLSETBLOBPROCANGLE set, GLGETBLOBPROCANGLE get,                        \
                            const void *userParam);                                                \
    /* GL_ANGLE_client_arrays */                                                                   \
    /* GL_ANGLE_clip_cull_distance */                                                              \
    /* GL_ANGLE_compressed_texture_etc */                                                          \
    /* 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_explicit_context */                                                                \
    /* GL_ANGLE_framebuffer_multisample */                                                         \
    /* GL_ANGLE_get_image */                                                                       \
    void getTexImage(TextureTarget targetPacked, GLint level, GLenum format, GLenum type,          \
                     void *pixels);                                                                \
    void getCompressedTexImage(TextureTarget targetPacked, GLint level, void *pixels);             \
    void getRenderbufferImage(GLenum target, GLenum format, GLenum type, void *pixels);            \
    /* GL_ANGLE_get_serialized_context_string */                                                   \
    /* GL_ANGLE_get_tex_level_parameter */                                                         \
    /* GL_ANGLE_logic_op */                                                                        \
    /* GL_ANGLE_memory_object_flags */                                                             \
    void texStorageMemFlags2D(TextureType targetPacked, GLsizei levels, GLenum internalFormat,     \
                              GLsizei width, GLsizei height, MemoryObjectID memoryPacked,          \
                              GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags,      \
                              const void *imageCreateInfoPNext);                                   \
    void texStorageMemFlags2DMultisample(                                                          \
        TextureType targetPacked, GLsizei samples, GLenum internalFormat, GLsizei width,           \
        GLsizei height, GLboolean fixedSampleLocations, MemoryObjectID memoryPacked,               \
        GLuint64 offset, GLbitfield createFlags, GLbitfield usageFlags,                            \
        const void *imageCreateInfoPNext);                                                         \
    void texStorageMemFlags3D(                                                                     \
        TextureType targetPacked, GLsizei levels, GLenum internalFormat, GLsizei width,            \
        GLsizei height, GLsizei depth, MemoryObjectID memoryPacked, GLuint64 offset,               \
        GLbitfield createFlags, GLbitfield usageFlags, const void *imageCreateInfoPNext);          \
    void texStorageMemFlags3DMultisample(                                                          \
        TextureType targetPacked, GLsizei samples, GLenum internalFormat, GLsizei width,           \
        GLsizei height, GLsizei depth, GLboolean fixedSampleLocations,                             \
        MemoryObjectID memoryPacked, GLuint64 offset, GLbitfield createFlags,                      \
        GLbitfield usageFlags, const void *imageCreateInfoPNext);                                  \
    /* GL_ANGLE_memory_object_fuchsia */                                                           \
    void importMemoryZirconHandle(MemoryObjectID memoryPacked, GLuint64 size,                      \
                                  HandleType handleTypePacked, GLuint handle);                     \
    /* GL_ANGLE_memory_size */                                                                     \
    /* 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 void *const *indices,                \
                           GLsizei drawcount);                                                     \
    void multiDrawElementsInstanced(PrimitiveMode modePacked, const GLsizei *counts,               \
                                    DrawElementsType typePacked, const void *const *indices,       \
                                    const GLsizei *instanceCounts, GLsizei drawcount);             \
    /* GL_ANGLE_multiview_multisample */                                                           \
    /* GL_ANGLE_polygon_mode */                                                                    \
    /* GL_ANGLE_program_binary */                                                                  \
    /* GL_ANGLE_program_binary_readiness_query */                                                  \
    /* GL_ANGLE_program_cache_control */                                                           \
    /* GL_ANGLE_provoking_vertex */                                                                \
    /* GL_ANGLE_read_only_depth_stencil_feedback_loops */                                          \
    /* GL_ANGLE_relaxed_vertex_attribute_type */                                                   \
    /* GL_ANGLE_renderability_validation */                                                        \
    /* GL_ANGLE_request_extension */                                                               \
    void requestExtension(const GLchar *name);                                                     \
    /* GL_ANGLE_rgbx_internal_format */                                                            \
    /* GL_ANGLE_robust_client_memory */                                                            \
    void getBooleanvRobust(GLenum pname, GLsizei paramCount, GLsizei *length, GLboolean *data);    \
    void getBufferParameterivRobust(BufferBinding targetPacked, BufferParam pnamePacked,           \
                                    GLsizei paramCount, GLsizei *length, GLint *params);           \
    void getFloatvRobust(GLenum pname, GLsizei paramCount, GLsizei *length, GLfloat *data);        \
    void getFramebufferAttachmentParameterivRobust(GLenum target, GLenum attachment, GLenum pname, \
                                                   GLsizei paramCount, GLsizei *length,            \
                                                   GLint *params);                                 \
    void getIntegervRobust(GLenum pname, GLsizei paramCount, GLsizei *length, GLint *data);        \
    void getProgramivRobust(ShaderProgramID programPacked, GLenum pname, GLsizei paramCount,       \
                            GLsizei *length, GLint *params);                                       \
    void getRenderbufferParameterivRobust(GLenum target, GLenum pname, GLsizei paramCount,         \
                                          GLsizei *length, GLint *params);                         \
    void getShaderivRobust(ShaderProgramID shaderPacked, ShaderParameter pnamePacked,              \
                           GLsizei paramCount, GLsizei *length, GLint *params);                    \
    void getTexParameterfvRobust(TextureType targetPacked, GLenum pname, GLsizei paramCount,       \
                                 GLsizei *length, GLfloat *params);                                \
    void getTexParameterivRobust(TextureType targetPacked, GLenum pname, GLsizei paramCount,       \
                                 GLsizei *length, GLint *params);                                  \
    void getUniformfvRobust(ShaderProgramID programPacked, UniformLocation locationPacked,         \
                            GLsizei bufSize, GLsizei *length, GLfloat *params);                    \
    void getUniformivRobust(ShaderProgramID programPacked, UniformLocation locationPacked,         \
                            GLsizei bufSize, GLsizei *length, GLint *params);                      \
    void getVertexAttribfvRobust(GLuint index, GLenum pname, GLsizei paramCount, GLsizei *length,  \
                                 GLfloat *params);                                                 \
    void getVertexAttribivRobust(GLuint index, GLenum pname, GLsizei paramCount, GLsizei *length,  \
                                 GLint *params);                                                   \
    void getVertexAttribPointervRobust(GLuint index, GLenum pname, GLsizei paramCount,             \
                                       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 paramCount,          \
                              const GLfloat *params);                                              \
    void texParameterivRobust(TextureType targetPacked, GLenum pname, GLsizei paramCount,          \
                              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 getQueryivRobust(QueryType targetPacked, QueryParameter pnamePacked, GLsizei paramCount,  \
                          GLsizei *length, GLint *params);                                         \
    void getQueryObjectuivRobust(QueryID idPacked, QueryObjectParameter pnamePacked,               \
                                 GLsizei paramCount, GLsizei *length, GLuint *params);             \
    void getBufferPointervRobust(BufferBinding targetPacked, GLenum pname, GLsizei paramCount,     \
                                 GLsizei *length, void **params);                                  \
    void getIntegeri_vRobust(GLenum target, GLuint index, GLsizei paramCount, GLsizei *length,     \
                             GLint *data);                                                         \
    void getInternalformativRobust(GLenum target, GLenum internalformat, GLenum pname,             \
                                   GLsizei paramCount, GLsizei *length, GLint *params);            \
    void getVertexAttribIivRobust(GLuint index, GLenum pname, GLsizei paramCount, GLsizei *length, \
                                  GLint *params);                                                  \
    void getVertexAttribIuivRobust(GLuint index, GLenum pname, GLsizei paramCount,                 \
                                   GLsizei *length, GLuint *params);                               \
    void getUniformuivRobust(ShaderProgramID programPacked, UniformLocation locationPacked,        \
                             GLsizei bufSize, GLsizei *length, GLuint *params);                    \
    void getActiveUniformBlockivRobust(                                                            \
        ShaderProgramID programPacked, UniformBlockIndex uniformBlockIndexPacked,                  \
        UniformBlockParameter pnamePacked, GLsizei paramCount, GLsizei *length, GLint *params);    \
    void getInteger64vRobust(GLenum pname, GLsizei paramCount, GLsizei *length, GLint64 *data);    \
    void getInteger64i_vRobust(GLenum target, GLuint index, GLsizei paramCount, GLsizei *length,   \
                               GLint64 *data);                                                     \
    void getBufferParameteri64vRobust(BufferBinding targetPacked, BufferParam pnamePacked,         \
                                      GLsizei paramCount, GLsizei *length, GLint64 *params);       \
    void samplerParameterivRobust(SamplerID samplerPacked, SamplerParameter pnamePacked,           \
                                  GLsizei paramCount, const GLint *param);                         \
    void samplerParameterfvRobust(SamplerID samplerPacked, SamplerParameter pnamePacked,           \
                                  GLsizei paramCount, const GLfloat *param);                       \
    void getSamplerParameterivRobust(SamplerID samplerPacked, SamplerParameter pnamePacked,        \
                                     GLsizei paramCount, GLsizei *length, GLint *params);          \
    void getSamplerParameterfvRobust(SamplerID samplerPacked, SamplerParameter pnamePacked,        \
                                     GLsizei paramCount, GLsizei *length, GLfloat *params);        \
    void getMultisamplefvRobust(GLenum pname, GLuint index, GLsizei paramCount, GLsizei *length,   \
                                GLfloat *val);                                                     \
    void getTexLevelParameterivRobust(TextureTarget targetPacked, GLint level,                     \
                                      TextureImageParameter pnamePacked, GLsizei paramCount,       \
                                      GLsizei *length, GLint *params);                             \
    void getTexLevelParameterfvRobust(TextureTarget targetPacked, GLint level,                     \
                                      TextureImageParameter pnamePacked, GLsizei paramCount,       \
                                      GLsizei *length, GLfloat *params);                           \
    void getQueryObjectivRobust(QueryID idPacked, QueryObjectParameter pnamePacked,                \
                                GLsizei paramCount, GLsizei *length, GLint *params);               \
    void getQueryObjecti64vRobust(QueryID idPacked, QueryObjectParameter pnamePacked,              \
                                  GLsizei paramCount, GLsizei *length, GLint64 *params);           \
    void getQueryObjectui64vRobust(QueryID idPacked, QueryObjectParameter pnamePacked,             \
                                   GLsizei paramCount, GLsizei *length, GLuint64 *params);         \
    void getFramebufferPixelLocalStorageParameterfvRobust(GLint plane, PlaneParameter pnamePacked, \
                                                          GLsizei paramCount, GLsizei *length,     \
                                                          GLfloat *params);                        \
    void getFramebufferPixelLocalStorageParameterivRobust(GLint plane, PlaneParameter pnamePacked, \
                                                          GLsizei paramCount, GLsizei *length,     \
                                                          GLint *params);                          \
    void getFramebufferPixelLocalStorageParameteruivRobust(                                        \
        GLint plane, PlaneParameter pnamePacked, GLsizei paramCount, GLsizei *length,              \
        GLuint *params);                                                                           \
    /* GL_ANGLE_robust_fragment_shader_output */                                                   \
    /* GL_ANGLE_robust_resource_initialization */                                                  \
    /* GL_ANGLE_semaphore_fuchsia */                                                               \
    void importSemaphoreZirconHandle(SemaphoreID semaphorePacked, HandleType handleTypePacked,     \
                                     GLuint handle);                                               \
    /* GL_ANGLE_shader_binary */                                                                   \
    /* GL_ANGLE_shader_pixel_local_storage */                                                      \
    void framebufferMemorylessPixelLocalStorage(GLint plane, GLenum internalformat,                \
                                                GLbitfield usage);                                 \
    void framebufferTexturePixelLocalStorage(GLint plane, TextureID backingtexturePacked,          \
                                             GLint level, GLint layer, GLbitfield usage);          \
    void framebufferPixelLocalClearValuefv(GLint plane, const GLfloat *value);                     \
    void framebufferPixelLocalClearValueiv(GLint plane, const GLint *value);                       \
    void framebufferPixelLocalClearValueuiv(GLint plane, const GLuint *value);                     \
    void beginPixelLocalStorage(GLsizei n, const GLenum *loadops);                                 \
    void endPixelLocalStorage(GLsizei n, const GLenum *storeops);                                  \
    void endPixelLocalStorageImplicit();                                                           \
    void pixelLocalStorageBarrier();                                                               \
    void framebufferPixelLocalStorageInterrupt();                                                  \
    void framebufferPixelLocalStorageRestore();                                                    \
    void getFramebufferPixelLocalStorageParameterfv(GLint plane, PlaneParameter pnamePacked,       \
                                                    GLfloat *params);                              \
    void getFramebufferPixelLocalStorageParameteriv(GLint plane, PlaneParameter pnamePacked,       \
                                                    GLint *params);                                \
    void getFramebufferPixelLocalStorageParameteruiv(GLint plane, PlaneParameter pnamePacked,      \
                                                     GLuint *params);                              \
    /* GL_ANGLE_shader_pixel_local_storage_coherent */                                             \
    /* GL_ANGLE_stencil_texturing */                                                               \
    /* GL_ANGLE_texture_compression_dxt3 */                                                        \
    /* GL_ANGLE_texture_compression_dxt5 */                                                        \
    /* GL_ANGLE_texture_multisample */                                                             \
    /* GL_ANGLE_texture_rectangle */                                                               \
    /* GL_ANGLE_vulkan_image */                                                                    \
    void acquireTextures(GLuint numTextures, const TextureID *texturesPacked,                      \
                         const GLenum *layouts);                                                   \
    void releaseTextures(GLuint numTextures, const TextureID *texturesPacked, GLenum *layouts);    \
    /* GL_ANGLE_webgl_compatibility */                                                             \
    /* GL_ANGLE_yuv_internal_format */                                                             \
    /* GL_CHROMIUM_bind_generates_resource */                                                      \
    /* GL_CHROMIUM_bind_uniform_location */                                                        \
    void bindUniformLocation(ShaderProgramID programPacked, UniformLocation locationPacked,        \
                             const GLchar *name);                                                  \
    /* GL_CHROMIUM_color_buffer_float_rgb */                                                       \
    /* GL_CHROMIUM_color_buffer_float_rgba */                                                      \
    /* 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 */                                                    \
    /* GL_CHROMIUM_lose_context */                                                                 \
    void loseContext(GraphicsResetStatus currentPacked, GraphicsResetStatus otherPacked);

#endif  // ANGLE_CONTEXT_API_EXT_AUTOGEN_H_
