// 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.
//
// entry_points_gl_4_autogen.h:
//   Defines the Desktop GL 4.x entry points.

#ifndef LIBGL_ENTRY_POINTS_GL_4_AUTOGEN_H_
#define LIBGL_ENTRY_POINTS_GL_4_AUTOGEN_H_

#include <export.h>
#include "angle_gl.h"

namespace gl
{

// GL 4.0
ANGLE_EXPORT void GL_APIENTRY BeginQueryIndexed(GLenum target, GLuint index, GLuint id);
ANGLE_EXPORT void GL_APIENTRY BindTransformFeedback(GLenum target, GLuint id);
ANGLE_EXPORT void GL_APIENTRY BlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
ANGLE_EXPORT void GL_APIENTRY BlendEquationi(GLuint buf, GLenum mode);
ANGLE_EXPORT void GL_APIENTRY
BlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
ANGLE_EXPORT void GL_APIENTRY BlendFunci(GLuint buf, GLenum src, GLenum dst);
ANGLE_EXPORT void GL_APIENTRY DeleteTransformFeedbacks(GLsizei n, const GLuint *ids);
ANGLE_EXPORT void GL_APIENTRY DrawArraysIndirect(GLenum mode, const void *indirect);
ANGLE_EXPORT void GL_APIENTRY DrawElementsIndirect(GLenum mode, GLenum type, const void *indirect);
ANGLE_EXPORT void GL_APIENTRY DrawTransformFeedback(GLenum mode, GLuint id);
ANGLE_EXPORT void GL_APIENTRY DrawTransformFeedbackStream(GLenum mode, GLuint id, GLuint stream);
ANGLE_EXPORT void GL_APIENTRY EndQueryIndexed(GLenum target, GLuint index);
ANGLE_EXPORT void GL_APIENTRY GenTransformFeedbacks(GLsizei n, GLuint *ids);
ANGLE_EXPORT void GL_APIENTRY GetActiveSubroutineName(GLuint program,
                                                      GLenum shadertype,
                                                      GLuint index,
                                                      GLsizei bufsize,
                                                      GLsizei *length,
                                                      GLchar *name);
ANGLE_EXPORT void GL_APIENTRY GetActiveSubroutineUniformName(GLuint program,
                                                             GLenum shadertype,
                                                             GLuint index,
                                                             GLsizei bufsize,
                                                             GLsizei *length,
                                                             GLchar *name);
ANGLE_EXPORT void GL_APIENTRY GetActiveSubroutineUniformiv(GLuint program,
                                                           GLenum shadertype,
                                                           GLuint index,
                                                           GLenum pname,
                                                           GLint *values);
ANGLE_EXPORT void GL_APIENTRY GetProgramStageiv(GLuint program,
                                                GLenum shadertype,
                                                GLenum pname,
                                                GLint *values);
ANGLE_EXPORT void GL_APIENTRY GetQueryIndexediv(GLenum target,
                                                GLuint index,
                                                GLenum pname,
                                                GLint *params);
ANGLE_EXPORT GLuint GL_APIENTRY GetSubroutineIndex(GLuint program,
                                                   GLenum shadertype,
                                                   const GLchar *name);
ANGLE_EXPORT GLint GL_APIENTRY GetSubroutineUniformLocation(GLuint program,
                                                            GLenum shadertype,
                                                            const GLchar *name);
ANGLE_EXPORT void GL_APIENTRY GetUniformSubroutineuiv(GLenum shadertype,
                                                      GLint location,
                                                      GLuint *params);
ANGLE_EXPORT void GL_APIENTRY GetUniformdv(GLuint program, GLint location, GLdouble *params);
ANGLE_EXPORT GLboolean GL_APIENTRY IsTransformFeedback(GLuint id);
ANGLE_EXPORT void GL_APIENTRY MinSampleShading(GLfloat value);
ANGLE_EXPORT void GL_APIENTRY PatchParameterfv(GLenum pname, const GLfloat *values);
ANGLE_EXPORT void GL_APIENTRY PatchParameteri(GLenum pname, GLint value);
ANGLE_EXPORT void GL_APIENTRY PauseTransformFeedback();
ANGLE_EXPORT void GL_APIENTRY ResumeTransformFeedback();
ANGLE_EXPORT void GL_APIENTRY Uniform1d(GLint location, GLdouble x);
ANGLE_EXPORT void GL_APIENTRY Uniform1dv(GLint location, GLsizei count, const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY Uniform2d(GLint location, GLdouble x, GLdouble y);
ANGLE_EXPORT void GL_APIENTRY Uniform2dv(GLint location, GLsizei count, const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY Uniform3d(GLint location, GLdouble x, GLdouble y, GLdouble z);
ANGLE_EXPORT void GL_APIENTRY Uniform3dv(GLint location, GLsizei count, const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY
Uniform4d(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
ANGLE_EXPORT void GL_APIENTRY Uniform4dv(GLint location, GLsizei count, const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY UniformMatrix2dv(GLint location,
                                               GLsizei count,
                                               GLboolean transpose,
                                               const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY UniformMatrix2x3dv(GLint location,
                                                 GLsizei count,
                                                 GLboolean transpose,
                                                 const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY UniformMatrix2x4dv(GLint location,
                                                 GLsizei count,
                                                 GLboolean transpose,
                                                 const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY UniformMatrix3dv(GLint location,
                                               GLsizei count,
                                               GLboolean transpose,
                                               const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY UniformMatrix3x2dv(GLint location,
                                                 GLsizei count,
                                                 GLboolean transpose,
                                                 const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY UniformMatrix3x4dv(GLint location,
                                                 GLsizei count,
                                                 GLboolean transpose,
                                                 const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY UniformMatrix4dv(GLint location,
                                               GLsizei count,
                                               GLboolean transpose,
                                               const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY UniformMatrix4x2dv(GLint location,
                                                 GLsizei count,
                                                 GLboolean transpose,
                                                 const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY UniformMatrix4x3dv(GLint location,
                                                 GLsizei count,
                                                 GLboolean transpose,
                                                 const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY UniformSubroutinesuiv(GLenum shadertype,
                                                    GLsizei count,
                                                    const GLuint *indices);

// GL 4.1
ANGLE_EXPORT void GL_APIENTRY ActiveShaderProgram(GLuint pipeline, GLuint program);
ANGLE_EXPORT void GL_APIENTRY BindProgramPipeline(GLuint pipeline);
ANGLE_EXPORT void GL_APIENTRY ClearDepthf(GLfloat d);
ANGLE_EXPORT GLuint GL_APIENTRY CreateShaderProgramv(GLenum type,
                                                     GLsizei count,
                                                     const GLchar *const *strings);
ANGLE_EXPORT void GL_APIENTRY DeleteProgramPipelines(GLsizei n, const GLuint *pipelines);
ANGLE_EXPORT void GL_APIENTRY DepthRangeArrayv(GLuint first, GLsizei count, const GLdouble *v);
ANGLE_EXPORT void GL_APIENTRY DepthRangeIndexed(GLuint index, GLdouble n, GLdouble f);
ANGLE_EXPORT void GL_APIENTRY DepthRangef(GLfloat n, GLfloat f);
ANGLE_EXPORT void GL_APIENTRY GenProgramPipelines(GLsizei n, GLuint *pipelines);
ANGLE_EXPORT void GL_APIENTRY GetDoublei_v(GLenum target, GLuint index, GLdouble *data);
ANGLE_EXPORT void GL_APIENTRY GetFloati_v(GLenum target, GLuint index, GLfloat *data);
ANGLE_EXPORT void GL_APIENTRY GetProgramBinary(GLuint program,
                                               GLsizei bufSize,
                                               GLsizei *length,
                                               GLenum *binaryFormat,
                                               void *binary);
ANGLE_EXPORT void GL_APIENTRY GetProgramPipelineInfoLog(GLuint pipeline,
                                                        GLsizei bufSize,
                                                        GLsizei *length,
                                                        GLchar *infoLog);
ANGLE_EXPORT void GL_APIENTRY GetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params);
ANGLE_EXPORT void GL_APIENTRY GetShaderPrecisionFormat(GLenum shadertype,
                                                       GLenum precisiontype,
                                                       GLint *range,
                                                       GLint *precision);
ANGLE_EXPORT void GL_APIENTRY GetVertexAttribLdv(GLuint index, GLenum pname, GLdouble *params);
ANGLE_EXPORT GLboolean GL_APIENTRY IsProgramPipeline(GLuint pipeline);
ANGLE_EXPORT void GL_APIENTRY ProgramBinary(GLuint program,
                                            GLenum binaryFormat,
                                            const void *binary,
                                            GLsizei length);
ANGLE_EXPORT void GL_APIENTRY ProgramParameteri(GLuint program, GLenum pname, GLint value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform1d(GLuint program, GLint location, GLdouble v0);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform1dv(GLuint program,
                                                GLint location,
                                                GLsizei count,
                                                const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform1f(GLuint program, GLint location, GLfloat v0);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform1fv(GLuint program,
                                                GLint location,
                                                GLsizei count,
                                                const GLfloat *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform1i(GLuint program, GLint location, GLint v0);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform1iv(GLuint program,
                                                GLint location,
                                                GLsizei count,
                                                const GLint *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform1ui(GLuint program, GLint location, GLuint v0);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform1uiv(GLuint program,
                                                 GLint location,
                                                 GLsizei count,
                                                 const GLuint *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform2d(GLuint program,
                                               GLint location,
                                               GLdouble v0,
                                               GLdouble v1);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform2dv(GLuint program,
                                                GLint location,
                                                GLsizei count,
                                                const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform2f(GLuint program,
                                               GLint location,
                                               GLfloat v0,
                                               GLfloat v1);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform2fv(GLuint program,
                                                GLint location,
                                                GLsizei count,
                                                const GLfloat *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform2i(GLuint program, GLint location, GLint v0, GLint v1);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform2iv(GLuint program,
                                                GLint location,
                                                GLsizei count,
                                                const GLint *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform2ui(GLuint program,
                                                GLint location,
                                                GLuint v0,
                                                GLuint v1);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform2uiv(GLuint program,
                                                 GLint location,
                                                 GLsizei count,
                                                 const GLuint *value);
ANGLE_EXPORT void GL_APIENTRY
ProgramUniform3d(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform3dv(GLuint program,
                                                GLint location,
                                                GLsizei count,
                                                const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY
ProgramUniform3f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform3fv(GLuint program,
                                                GLint location,
                                                GLsizei count,
                                                const GLfloat *value);
ANGLE_EXPORT void GL_APIENTRY
ProgramUniform3i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform3iv(GLuint program,
                                                GLint location,
                                                GLsizei count,
                                                const GLint *value);
ANGLE_EXPORT void GL_APIENTRY
ProgramUniform3ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform3uiv(GLuint program,
                                                 GLint location,
                                                 GLsizei count,
                                                 const GLuint *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform4d(GLuint program,
                                               GLint location,
                                               GLdouble v0,
                                               GLdouble v1,
                                               GLdouble v2,
                                               GLdouble v3);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform4dv(GLuint program,
                                                GLint location,
                                                GLsizei count,
                                                const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY
ProgramUniform4f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform4fv(GLuint program,
                                                GLint location,
                                                GLsizei count,
                                                const GLfloat *value);
ANGLE_EXPORT void GL_APIENTRY
ProgramUniform4i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform4iv(GLuint program,
                                                GLint location,
                                                GLsizei count,
                                                const GLint *value);
ANGLE_EXPORT void GL_APIENTRY
ProgramUniform4ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
ANGLE_EXPORT void GL_APIENTRY ProgramUniform4uiv(GLuint program,
                                                 GLint location,
                                                 GLsizei count,
                                                 const GLuint *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniformMatrix2dv(GLuint program,
                                                      GLint location,
                                                      GLsizei count,
                                                      GLboolean transpose,
                                                      const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniformMatrix2fv(GLuint program,
                                                      GLint location,
                                                      GLsizei count,
                                                      GLboolean transpose,
                                                      const GLfloat *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniformMatrix2x3dv(GLuint program,
                                                        GLint location,
                                                        GLsizei count,
                                                        GLboolean transpose,
                                                        const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniformMatrix2x3fv(GLuint program,
                                                        GLint location,
                                                        GLsizei count,
                                                        GLboolean transpose,
                                                        const GLfloat *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniformMatrix2x4dv(GLuint program,
                                                        GLint location,
                                                        GLsizei count,
                                                        GLboolean transpose,
                                                        const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniformMatrix2x4fv(GLuint program,
                                                        GLint location,
                                                        GLsizei count,
                                                        GLboolean transpose,
                                                        const GLfloat *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniformMatrix3dv(GLuint program,
                                                      GLint location,
                                                      GLsizei count,
                                                      GLboolean transpose,
                                                      const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniformMatrix3fv(GLuint program,
                                                      GLint location,
                                                      GLsizei count,
                                                      GLboolean transpose,
                                                      const GLfloat *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniformMatrix3x2dv(GLuint program,
                                                        GLint location,
                                                        GLsizei count,
                                                        GLboolean transpose,
                                                        const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniformMatrix3x2fv(GLuint program,
                                                        GLint location,
                                                        GLsizei count,
                                                        GLboolean transpose,
                                                        const GLfloat *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniformMatrix3x4dv(GLuint program,
                                                        GLint location,
                                                        GLsizei count,
                                                        GLboolean transpose,
                                                        const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniformMatrix3x4fv(GLuint program,
                                                        GLint location,
                                                        GLsizei count,
                                                        GLboolean transpose,
                                                        const GLfloat *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniformMatrix4dv(GLuint program,
                                                      GLint location,
                                                      GLsizei count,
                                                      GLboolean transpose,
                                                      const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniformMatrix4fv(GLuint program,
                                                      GLint location,
                                                      GLsizei count,
                                                      GLboolean transpose,
                                                      const GLfloat *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniformMatrix4x2dv(GLuint program,
                                                        GLint location,
                                                        GLsizei count,
                                                        GLboolean transpose,
                                                        const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniformMatrix4x2fv(GLuint program,
                                                        GLint location,
                                                        GLsizei count,
                                                        GLboolean transpose,
                                                        const GLfloat *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniformMatrix4x3dv(GLuint program,
                                                        GLint location,
                                                        GLsizei count,
                                                        GLboolean transpose,
                                                        const GLdouble *value);
ANGLE_EXPORT void GL_APIENTRY ProgramUniformMatrix4x3fv(GLuint program,
                                                        GLint location,
                                                        GLsizei count,
                                                        GLboolean transpose,
                                                        const GLfloat *value);
ANGLE_EXPORT void GL_APIENTRY ReleaseShaderCompiler();
ANGLE_EXPORT void GL_APIENTRY ScissorArrayv(GLuint first, GLsizei count, const GLint *v);
ANGLE_EXPORT void GL_APIENTRY
ScissorIndexed(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
ANGLE_EXPORT void GL_APIENTRY ScissorIndexedv(GLuint index, const GLint *v);
ANGLE_EXPORT void GL_APIENTRY ShaderBinary(GLsizei count,
                                           const GLuint *shaders,
                                           GLenum binaryformat,
                                           const void *binary,
                                           GLsizei length);
ANGLE_EXPORT void GL_APIENTRY UseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program);
ANGLE_EXPORT void GL_APIENTRY ValidateProgramPipeline(GLuint pipeline);
ANGLE_EXPORT void GL_APIENTRY VertexAttribL1d(GLuint index, GLdouble x);
ANGLE_EXPORT void GL_APIENTRY VertexAttribL1dv(GLuint index, const GLdouble *v);
ANGLE_EXPORT void GL_APIENTRY VertexAttribL2d(GLuint index, GLdouble x, GLdouble y);
ANGLE_EXPORT void GL_APIENTRY VertexAttribL2dv(GLuint index, const GLdouble *v);
ANGLE_EXPORT void GL_APIENTRY VertexAttribL3d(GLuint index, GLdouble x, GLdouble y, GLdouble z);
ANGLE_EXPORT void GL_APIENTRY VertexAttribL3dv(GLuint index, const GLdouble *v);
ANGLE_EXPORT void GL_APIENTRY
VertexAttribL4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
ANGLE_EXPORT void GL_APIENTRY VertexAttribL4dv(GLuint index, const GLdouble *v);
ANGLE_EXPORT void GL_APIENTRY
VertexAttribLPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
ANGLE_EXPORT void GL_APIENTRY ViewportArrayv(GLuint first, GLsizei count, const GLfloat *v);
ANGLE_EXPORT void GL_APIENTRY
ViewportIndexedf(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
ANGLE_EXPORT void GL_APIENTRY ViewportIndexedfv(GLuint index, const GLfloat *v);

// GL 4.2
ANGLE_EXPORT void GL_APIENTRY BindImageTexture(GLuint unit,
                                               GLuint texture,
                                               GLint level,
                                               GLboolean layered,
                                               GLint layer,
                                               GLenum access,
                                               GLenum format);
ANGLE_EXPORT void GL_APIENTRY DrawArraysInstancedBaseInstance(GLenum mode,
                                                              GLint first,
                                                              GLsizei count,
                                                              GLsizei instancecount,
                                                              GLuint baseinstance);
ANGLE_EXPORT void GL_APIENTRY DrawElementsInstancedBaseInstance(GLenum mode,
                                                                GLsizei count,
                                                                GLenum type,
                                                                const void *indices,
                                                                GLsizei instancecount,
                                                                GLuint baseinstance);
ANGLE_EXPORT void GL_APIENTRY DrawElementsInstancedBaseVertexBaseInstance(GLenum mode,
                                                                          GLsizei count,
                                                                          GLenum type,
                                                                          const void *indices,
                                                                          GLsizei instancecount,
                                                                          GLint basevertex,
                                                                          GLuint baseinstance);
ANGLE_EXPORT void GL_APIENTRY DrawTransformFeedbackInstanced(GLenum mode,
                                                             GLuint id,
                                                             GLsizei instancecount);
ANGLE_EXPORT void GL_APIENTRY DrawTransformFeedbackStreamInstanced(GLenum mode,
                                                                   GLuint id,
                                                                   GLuint stream,
                                                                   GLsizei instancecount);
ANGLE_EXPORT void GL_APIENTRY GetActiveAtomicCounterBufferiv(GLuint program,
                                                             GLuint bufferIndex,
                                                             GLenum pname,
                                                             GLint *params);
ANGLE_EXPORT void GL_APIENTRY GetInternalformativ(GLenum target,
                                                  GLenum internalformat,
                                                  GLenum pname,
                                                  GLsizei bufSize,
                                                  GLint *params);
ANGLE_EXPORT void GL_APIENTRY MemoryBarrier(GLbitfield barriers);
ANGLE_EXPORT void GL_APIENTRY TexStorage1D(GLenum target,
                                           GLsizei levels,
                                           GLenum internalformat,
                                           GLsizei width);
ANGLE_EXPORT void GL_APIENTRY
TexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
ANGLE_EXPORT void GL_APIENTRY TexStorage3D(GLenum target,
                                           GLsizei levels,
                                           GLenum internalformat,
                                           GLsizei width,
                                           GLsizei height,
                                           GLsizei depth);

// GL 4.3
ANGLE_EXPORT void GL_APIENTRY BindVertexBuffer(GLuint bindingindex,
                                               GLuint buffer,
                                               GLintptr offset,
                                               GLsizei stride);
ANGLE_EXPORT void GL_APIENTRY
ClearBufferData(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data);
ANGLE_EXPORT void GL_APIENTRY ClearBufferSubData(GLenum target,
                                                 GLenum internalformat,
                                                 GLintptr offset,
                                                 GLsizeiptr size,
                                                 GLenum format,
                                                 GLenum type,
                                                 const void *data);
ANGLE_EXPORT void GL_APIENTRY CopyImageSubData(GLuint srcName,
                                               GLenum srcTarget,
                                               GLint srcLevel,
                                               GLint srcX,
                                               GLint srcY,
                                               GLint srcZ,
                                               GLuint dstName,
                                               GLenum dstTarget,
                                               GLint dstLevel,
                                               GLint dstX,
                                               GLint dstY,
                                               GLint dstZ,
                                               GLsizei srcWidth,
                                               GLsizei srcHeight,
                                               GLsizei srcDepth);
ANGLE_EXPORT void GL_APIENTRY DebugMessageCallback(GLDEBUGPROC callback, const void *userParam);
ANGLE_EXPORT void GL_APIENTRY DebugMessageControl(GLenum source,
                                                  GLenum type,
                                                  GLenum severity,
                                                  GLsizei count,
                                                  const GLuint *ids,
                                                  GLboolean enabled);
ANGLE_EXPORT void GL_APIENTRY DebugMessageInsert(GLenum source,
                                                 GLenum type,
                                                 GLuint id,
                                                 GLenum severity,
                                                 GLsizei length,
                                                 const GLchar *buf);
ANGLE_EXPORT void GL_APIENTRY DispatchCompute(GLuint num_groups_x,
                                              GLuint num_groups_y,
                                              GLuint num_groups_z);
ANGLE_EXPORT void GL_APIENTRY DispatchComputeIndirect(GLintptr indirect);
ANGLE_EXPORT void GL_APIENTRY FramebufferParameteri(GLenum target, GLenum pname, GLint param);
ANGLE_EXPORT GLuint GL_APIENTRY GetDebugMessageLog(GLuint count,
                                                   GLsizei bufSize,
                                                   GLenum *sources,
                                                   GLenum *types,
                                                   GLuint *ids,
                                                   GLenum *severities,
                                                   GLsizei *lengths,
                                                   GLchar *messageLog);
ANGLE_EXPORT void GL_APIENTRY GetFramebufferParameteriv(GLenum target, GLenum pname, GLint *params);
ANGLE_EXPORT void GL_APIENTRY GetInternalformati64v(GLenum target,
                                                    GLenum internalformat,
                                                    GLenum pname,
                                                    GLsizei bufSize,
                                                    GLint64 *params);
ANGLE_EXPORT void GL_APIENTRY
GetObjectLabel(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
ANGLE_EXPORT void GL_APIENTRY GetObjectPtrLabel(const void *ptr,
                                                GLsizei bufSize,
                                                GLsizei *length,
                                                GLchar *label);
ANGLE_EXPORT void GL_APIENTRY GetProgramInterfaceiv(GLuint program,
                                                    GLenum programInterface,
                                                    GLenum pname,
                                                    GLint *params);
ANGLE_EXPORT GLuint GL_APIENTRY GetProgramResourceIndex(GLuint program,
                                                        GLenum programInterface,
                                                        const GLchar *name);
ANGLE_EXPORT GLint GL_APIENTRY GetProgramResourceLocation(GLuint program,
                                                          GLenum programInterface,
                                                          const GLchar *name);
ANGLE_EXPORT GLint GL_APIENTRY GetProgramResourceLocationIndex(GLuint program,
                                                               GLenum programInterface,
                                                               const GLchar *name);
ANGLE_EXPORT void GL_APIENTRY GetProgramResourceName(GLuint program,
                                                     GLenum programInterface,
                                                     GLuint index,
                                                     GLsizei bufSize,
                                                     GLsizei *length,
                                                     GLchar *name);
ANGLE_EXPORT void GL_APIENTRY GetProgramResourceiv(GLuint program,
                                                   GLenum programInterface,
                                                   GLuint index,
                                                   GLsizei propCount,
                                                   const GLenum *props,
                                                   GLsizei bufSize,
                                                   GLsizei *length,
                                                   GLint *params);
ANGLE_EXPORT void GL_APIENTRY InvalidateBufferData(GLuint buffer);
ANGLE_EXPORT void GL_APIENTRY InvalidateBufferSubData(GLuint buffer,
                                                      GLintptr offset,
                                                      GLsizeiptr length);
ANGLE_EXPORT void GL_APIENTRY InvalidateFramebuffer(GLenum target,
                                                    GLsizei numAttachments,
                                                    const GLenum *attachments);
ANGLE_EXPORT void GL_APIENTRY InvalidateSubFramebuffer(GLenum target,
                                                       GLsizei numAttachments,
                                                       const GLenum *attachments,
                                                       GLint x,
                                                       GLint y,
                                                       GLsizei width,
                                                       GLsizei height);
ANGLE_EXPORT void GL_APIENTRY InvalidateTexImage(GLuint texture, GLint level);
ANGLE_EXPORT void GL_APIENTRY InvalidateTexSubImage(GLuint texture,
                                                    GLint level,
                                                    GLint xoffset,
                                                    GLint yoffset,
                                                    GLint zoffset,
                                                    GLsizei width,
                                                    GLsizei height,
                                                    GLsizei depth);
ANGLE_EXPORT void GL_APIENTRY MultiDrawArraysIndirect(GLenum mode,
                                                      const void *indirect,
                                                      GLsizei drawcount,
                                                      GLsizei stride);
ANGLE_EXPORT void GL_APIENTRY MultiDrawElementsIndirect(GLenum mode,
                                                        GLenum type,
                                                        const void *indirect,
                                                        GLsizei drawcount,
                                                        GLsizei stride);
ANGLE_EXPORT void GL_APIENTRY ObjectLabel(GLenum identifier,
                                          GLuint name,
                                          GLsizei length,
                                          const GLchar *label);
ANGLE_EXPORT void GL_APIENTRY ObjectPtrLabel(const void *ptr, GLsizei length, const GLchar *label);
ANGLE_EXPORT void GL_APIENTRY PopDebugGroup();
ANGLE_EXPORT void GL_APIENTRY PushDebugGroup(GLenum source,
                                             GLuint id,
                                             GLsizei length,
                                             const GLchar *message);
ANGLE_EXPORT void GL_APIENTRY ShaderStorageBlockBinding(GLuint program,
                                                        GLuint storageBlockIndex,
                                                        GLuint storageBlockBinding);
ANGLE_EXPORT void GL_APIENTRY TexBufferRange(GLenum target,
                                             GLenum internalformat,
                                             GLuint buffer,
                                             GLintptr offset,
                                             GLsizeiptr size);
ANGLE_EXPORT void GL_APIENTRY TexStorage2DMultisample(GLenum target,
                                                      GLsizei samples,
                                                      GLenum internalformat,
                                                      GLsizei width,
                                                      GLsizei height,
                                                      GLboolean fixedsamplelocations);
ANGLE_EXPORT void GL_APIENTRY TexStorage3DMultisample(GLenum target,
                                                      GLsizei samples,
                                                      GLenum internalformat,
                                                      GLsizei width,
                                                      GLsizei height,
                                                      GLsizei depth,
                                                      GLboolean fixedsamplelocations);
ANGLE_EXPORT void GL_APIENTRY TextureView(GLuint texture,
                                          GLenum target,
                                          GLuint origtexture,
                                          GLenum internalformat,
                                          GLuint minlevel,
                                          GLuint numlevels,
                                          GLuint minlayer,
                                          GLuint numlayers);
ANGLE_EXPORT void GL_APIENTRY VertexAttribBinding(GLuint attribindex, GLuint bindingindex);
ANGLE_EXPORT void GL_APIENTRY VertexAttribFormat(GLuint attribindex,
                                                 GLint size,
                                                 GLenum type,
                                                 GLboolean normalized,
                                                 GLuint relativeoffset);
ANGLE_EXPORT void GL_APIENTRY VertexAttribIFormat(GLuint attribindex,
                                                  GLint size,
                                                  GLenum type,
                                                  GLuint relativeoffset);
ANGLE_EXPORT void GL_APIENTRY VertexAttribLFormat(GLuint attribindex,
                                                  GLint size,
                                                  GLenum type,
                                                  GLuint relativeoffset);
ANGLE_EXPORT void GL_APIENTRY VertexBindingDivisor(GLuint bindingindex, GLuint divisor);

// GL 4.4
ANGLE_EXPORT void GL_APIENTRY BindBuffersBase(GLenum target,
                                              GLuint first,
                                              GLsizei count,
                                              const GLuint *buffers);
ANGLE_EXPORT void GL_APIENTRY BindBuffersRange(GLenum target,
                                               GLuint first,
                                               GLsizei count,
                                               const GLuint *buffers,
                                               const GLintptr *offsets,
                                               const GLsizeiptr *sizes);
ANGLE_EXPORT void GL_APIENTRY BindImageTextures(GLuint first,
                                                GLsizei count,
                                                const GLuint *textures);
ANGLE_EXPORT void GL_APIENTRY BindSamplers(GLuint first, GLsizei count, const GLuint *samplers);
ANGLE_EXPORT void GL_APIENTRY BindTextures(GLuint first, GLsizei count, const GLuint *textures);
ANGLE_EXPORT void GL_APIENTRY BindVertexBuffers(GLuint first,
                                                GLsizei count,
                                                const GLuint *buffers,
                                                const GLintptr *offsets,
                                                const GLsizei *strides);
ANGLE_EXPORT void GL_APIENTRY BufferStorage(GLenum target,
                                            GLsizeiptr size,
                                            const void *data,
                                            GLbitfield flags);
ANGLE_EXPORT void GL_APIENTRY
ClearTexImage(GLuint texture, GLint level, GLenum format, GLenum type, const void *data);
ANGLE_EXPORT void GL_APIENTRY ClearTexSubImage(GLuint texture,
                                               GLint level,
                                               GLint xoffset,
                                               GLint yoffset,
                                               GLint zoffset,
                                               GLsizei width,
                                               GLsizei height,
                                               GLsizei depth,
                                               GLenum format,
                                               GLenum type,
                                               const void *data);

// GL 4.5
ANGLE_EXPORT void GL_APIENTRY BindTextureUnit(GLuint unit, GLuint texture);
ANGLE_EXPORT void GL_APIENTRY BlitNamedFramebuffer(GLuint readFramebuffer,
                                                   GLuint drawFramebuffer,
                                                   GLint srcX0,
                                                   GLint srcY0,
                                                   GLint srcX1,
                                                   GLint srcY1,
                                                   GLint dstX0,
                                                   GLint dstY0,
                                                   GLint dstX1,
                                                   GLint dstY1,
                                                   GLbitfield mask,
                                                   GLenum filter);
ANGLE_EXPORT GLenum GL_APIENTRY CheckNamedFramebufferStatus(GLuint framebuffer, GLenum target);
ANGLE_EXPORT void GL_APIENTRY ClearNamedBufferData(GLuint buffer,
                                                   GLenum internalformat,
                                                   GLenum format,
                                                   GLenum type,
                                                   const void *data);
ANGLE_EXPORT void GL_APIENTRY ClearNamedBufferSubData(GLuint buffer,
                                                      GLenum internalformat,
                                                      GLintptr offset,
                                                      GLsizeiptr size,
                                                      GLenum format,
                                                      GLenum type,
                                                      const void *data);
ANGLE_EXPORT void GL_APIENTRY ClearNamedFramebufferfi(GLuint framebuffer,
                                                      GLenum buffer,
                                                      GLint drawbuffer,
                                                      GLfloat depth,
                                                      GLint stencil);
ANGLE_EXPORT void GL_APIENTRY ClearNamedFramebufferfv(GLuint framebuffer,
                                                      GLenum buffer,
                                                      GLint drawbuffer,
                                                      const GLfloat *value);
ANGLE_EXPORT void GL_APIENTRY ClearNamedFramebufferiv(GLuint framebuffer,
                                                      GLenum buffer,
                                                      GLint drawbuffer,
                                                      const GLint *value);
ANGLE_EXPORT void GL_APIENTRY ClearNamedFramebufferuiv(GLuint framebuffer,
                                                       GLenum buffer,
                                                       GLint drawbuffer,
                                                       const GLuint *value);
ANGLE_EXPORT void GL_APIENTRY ClipControl(GLenum origin, GLenum depth);
ANGLE_EXPORT void GL_APIENTRY CompressedTextureSubImage1D(GLuint texture,
                                                          GLint level,
                                                          GLint xoffset,
                                                          GLsizei width,
                                                          GLenum format,
                                                          GLsizei imageSize,
                                                          const void *data);
ANGLE_EXPORT void GL_APIENTRY CompressedTextureSubImage2D(GLuint texture,
                                                          GLint level,
                                                          GLint xoffset,
                                                          GLint yoffset,
                                                          GLsizei width,
                                                          GLsizei height,
                                                          GLenum format,
                                                          GLsizei imageSize,
                                                          const void *data);
ANGLE_EXPORT void GL_APIENTRY CompressedTextureSubImage3D(GLuint texture,
                                                          GLint level,
                                                          GLint xoffset,
                                                          GLint yoffset,
                                                          GLint zoffset,
                                                          GLsizei width,
                                                          GLsizei height,
                                                          GLsizei depth,
                                                          GLenum format,
                                                          GLsizei imageSize,
                                                          const void *data);
ANGLE_EXPORT void GL_APIENTRY CopyNamedBufferSubData(GLuint readBuffer,
                                                     GLuint writeBuffer,
                                                     GLintptr readOffset,
                                                     GLintptr writeOffset,
                                                     GLsizeiptr size);
ANGLE_EXPORT void GL_APIENTRY
CopyTextureSubImage1D(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
ANGLE_EXPORT void GL_APIENTRY CopyTextureSubImage2D(GLuint texture,
                                                    GLint level,
                                                    GLint xoffset,
                                                    GLint yoffset,
                                                    GLint x,
                                                    GLint y,
                                                    GLsizei width,
                                                    GLsizei height);
ANGLE_EXPORT void GL_APIENTRY CopyTextureSubImage3D(GLuint texture,
                                                    GLint level,
                                                    GLint xoffset,
                                                    GLint yoffset,
                                                    GLint zoffset,
                                                    GLint x,
                                                    GLint y,
                                                    GLsizei width,
                                                    GLsizei height);
ANGLE_EXPORT void GL_APIENTRY CreateBuffers(GLsizei n, GLuint *buffers);
ANGLE_EXPORT void GL_APIENTRY CreateFramebuffers(GLsizei n, GLuint *framebuffers);
ANGLE_EXPORT void GL_APIENTRY CreateProgramPipelines(GLsizei n, GLuint *pipelines);
ANGLE_EXPORT void GL_APIENTRY CreateQueries(GLenum target, GLsizei n, GLuint *ids);
ANGLE_EXPORT void GL_APIENTRY CreateRenderbuffers(GLsizei n, GLuint *renderbuffers);
ANGLE_EXPORT void GL_APIENTRY CreateSamplers(GLsizei n, GLuint *samplers);
ANGLE_EXPORT void GL_APIENTRY CreateTextures(GLenum target, GLsizei n, GLuint *textures);
ANGLE_EXPORT void GL_APIENTRY CreateTransformFeedbacks(GLsizei n, GLuint *ids);
ANGLE_EXPORT void GL_APIENTRY CreateVertexArrays(GLsizei n, GLuint *arrays);
ANGLE_EXPORT void GL_APIENTRY DisableVertexArrayAttrib(GLuint vaobj, GLuint index);
ANGLE_EXPORT void GL_APIENTRY EnableVertexArrayAttrib(GLuint vaobj, GLuint index);
ANGLE_EXPORT void GL_APIENTRY FlushMappedNamedBufferRange(GLuint buffer,
                                                          GLintptr offset,
                                                          GLsizeiptr length);
ANGLE_EXPORT void GL_APIENTRY GenerateTextureMipmap(GLuint texture);
ANGLE_EXPORT void GL_APIENTRY GetCompressedTextureImage(GLuint texture,
                                                        GLint level,
                                                        GLsizei bufSize,
                                                        void *pixels);
ANGLE_EXPORT void GL_APIENTRY GetCompressedTextureSubImage(GLuint texture,
                                                           GLint level,
                                                           GLint xoffset,
                                                           GLint yoffset,
                                                           GLint zoffset,
                                                           GLsizei width,
                                                           GLsizei height,
                                                           GLsizei depth,
                                                           GLsizei bufSize,
                                                           void *pixels);
ANGLE_EXPORT GLenum GL_APIENTRY GetGraphicsResetStatus();
ANGLE_EXPORT void GL_APIENTRY GetNamedBufferParameteri64v(GLuint buffer,
                                                          GLenum pname,
                                                          GLint64 *params);
ANGLE_EXPORT void GL_APIENTRY GetNamedBufferParameteriv(GLuint buffer, GLenum pname, GLint *params);
ANGLE_EXPORT void GL_APIENTRY GetNamedBufferPointerv(GLuint buffer, GLenum pname, void **params);
ANGLE_EXPORT void GL_APIENTRY GetNamedBufferSubData(GLuint buffer,
                                                    GLintptr offset,
                                                    GLsizeiptr size,
                                                    void *data);
ANGLE_EXPORT void GL_APIENTRY GetNamedFramebufferAttachmentParameteriv(GLuint framebuffer,
                                                                       GLenum attachment,
                                                                       GLenum pname,
                                                                       GLint *params);
ANGLE_EXPORT void GL_APIENTRY GetNamedFramebufferParameteriv(GLuint framebuffer,
                                                             GLenum pname,
                                                             GLint *param);
ANGLE_EXPORT void GL_APIENTRY GetNamedRenderbufferParameteriv(GLuint renderbuffer,
                                                              GLenum pname,
                                                              GLint *params);
ANGLE_EXPORT void GL_APIENTRY GetQueryBufferObjecti64v(GLuint id,
                                                       GLuint buffer,
                                                       GLenum pname,
                                                       GLintptr offset);
ANGLE_EXPORT void GL_APIENTRY GetQueryBufferObjectiv(GLuint id,
                                                     GLuint buffer,
                                                     GLenum pname,
                                                     GLintptr offset);
ANGLE_EXPORT void GL_APIENTRY GetQueryBufferObjectui64v(GLuint id,
                                                        GLuint buffer,
                                                        GLenum pname,
                                                        GLintptr offset);
ANGLE_EXPORT void GL_APIENTRY GetQueryBufferObjectuiv(GLuint id,
                                                      GLuint buffer,
                                                      GLenum pname,
                                                      GLintptr offset);
ANGLE_EXPORT void GL_APIENTRY GetTextureImage(GLuint texture,
                                              GLint level,
                                              GLenum format,
                                              GLenum type,
                                              GLsizei bufSize,
                                              void *pixels);
ANGLE_EXPORT void GL_APIENTRY GetTextureLevelParameterfv(GLuint texture,
                                                         GLint level,
                                                         GLenum pname,
                                                         GLfloat *params);
ANGLE_EXPORT void GL_APIENTRY GetTextureLevelParameteriv(GLuint texture,
                                                         GLint level,
                                                         GLenum pname,
                                                         GLint *params);
ANGLE_EXPORT void GL_APIENTRY GetTextureParameterIiv(GLuint texture, GLenum pname, GLint *params);
ANGLE_EXPORT void GL_APIENTRY GetTextureParameterIuiv(GLuint texture, GLenum pname, GLuint *params);
ANGLE_EXPORT void GL_APIENTRY GetTextureParameterfv(GLuint texture, GLenum pname, GLfloat *params);
ANGLE_EXPORT void GL_APIENTRY GetTextureParameteriv(GLuint texture, GLenum pname, GLint *params);
ANGLE_EXPORT void GL_APIENTRY GetTextureSubImage(GLuint texture,
                                                 GLint level,
                                                 GLint xoffset,
                                                 GLint yoffset,
                                                 GLint zoffset,
                                                 GLsizei width,
                                                 GLsizei height,
                                                 GLsizei depth,
                                                 GLenum format,
                                                 GLenum type,
                                                 GLsizei bufSize,
                                                 void *pixels);
ANGLE_EXPORT void GL_APIENTRY GetTransformFeedbacki64_v(GLuint xfb,
                                                        GLenum pname,
                                                        GLuint index,
                                                        GLint64 *param);
ANGLE_EXPORT void GL_APIENTRY GetTransformFeedbacki_v(GLuint xfb,
                                                      GLenum pname,
                                                      GLuint index,
                                                      GLint *param);
ANGLE_EXPORT void GL_APIENTRY GetTransformFeedbackiv(GLuint xfb, GLenum pname, GLint *param);
ANGLE_EXPORT void GL_APIENTRY GetVertexArrayIndexed64iv(GLuint vaobj,
                                                        GLuint index,
                                                        GLenum pname,
                                                        GLint64 *param);
ANGLE_EXPORT void GL_APIENTRY GetVertexArrayIndexediv(GLuint vaobj,
                                                      GLuint index,
                                                      GLenum pname,
                                                      GLint *param);
ANGLE_EXPORT void GL_APIENTRY GetVertexArrayiv(GLuint vaobj, GLenum pname, GLint *param);
ANGLE_EXPORT void GL_APIENTRY
GetnColorTable(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table);
ANGLE_EXPORT void GL_APIENTRY GetnCompressedTexImage(GLenum target,
                                                     GLint lod,
                                                     GLsizei bufSize,
                                                     void *pixels);
ANGLE_EXPORT void GL_APIENTRY
GetnConvolutionFilter(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image);
ANGLE_EXPORT void GL_APIENTRY GetnHistogram(GLenum target,
                                            GLboolean reset,
                                            GLenum format,
                                            GLenum type,
                                            GLsizei bufSize,
                                            void *values);
ANGLE_EXPORT void GL_APIENTRY GetnMapdv(GLenum target, GLenum query, GLsizei bufSize, GLdouble *v);
ANGLE_EXPORT void GL_APIENTRY GetnMapfv(GLenum target, GLenum query, GLsizei bufSize, GLfloat *v);
ANGLE_EXPORT void GL_APIENTRY GetnMapiv(GLenum target, GLenum query, GLsizei bufSize, GLint *v);
ANGLE_EXPORT void GL_APIENTRY GetnMinmax(GLenum target,
                                         GLboolean reset,
                                         GLenum format,
                                         GLenum type,
                                         GLsizei bufSize,
                                         void *values);
ANGLE_EXPORT void GL_APIENTRY GetnPixelMapfv(GLenum map, GLsizei bufSize, GLfloat *values);
ANGLE_EXPORT void GL_APIENTRY GetnPixelMapuiv(GLenum map, GLsizei bufSize, GLuint *values);
ANGLE_EXPORT void GL_APIENTRY GetnPixelMapusv(GLenum map, GLsizei bufSize, GLushort *values);
ANGLE_EXPORT void GL_APIENTRY GetnPolygonStipple(GLsizei bufSize, GLubyte *pattern);
ANGLE_EXPORT void GL_APIENTRY GetnSeparableFilter(GLenum target,
                                                  GLenum format,
                                                  GLenum type,
                                                  GLsizei rowBufSize,
                                                  void *row,
                                                  GLsizei columnBufSize,
                                                  void *column,
                                                  void *span);
ANGLE_EXPORT void GL_APIENTRY
GetnTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
ANGLE_EXPORT void GL_APIENTRY GetnUniformdv(GLuint program,
                                            GLint location,
                                            GLsizei bufSize,
                                            GLdouble *params);
ANGLE_EXPORT void GL_APIENTRY GetnUniformfv(GLuint program,
                                            GLint location,
                                            GLsizei bufSize,
                                            GLfloat *params);
ANGLE_EXPORT void GL_APIENTRY GetnUniformiv(GLuint program,
                                            GLint location,
                                            GLsizei bufSize,
                                            GLint *params);
ANGLE_EXPORT void GL_APIENTRY GetnUniformuiv(GLuint program,
                                             GLint location,
                                             GLsizei bufSize,
                                             GLuint *params);
ANGLE_EXPORT void GL_APIENTRY InvalidateNamedFramebufferData(GLuint framebuffer,
                                                             GLsizei numAttachments,
                                                             const GLenum *attachments);
ANGLE_EXPORT void GL_APIENTRY InvalidateNamedFramebufferSubData(GLuint framebuffer,
                                                                GLsizei numAttachments,
                                                                const GLenum *attachments,
                                                                GLint x,
                                                                GLint y,
                                                                GLsizei width,
                                                                GLsizei height);
ANGLE_EXPORT void *GL_APIENTRY MapNamedBuffer(GLuint buffer, GLenum access);
ANGLE_EXPORT void *GL_APIENTRY MapNamedBufferRange(GLuint buffer,
                                                   GLintptr offset,
                                                   GLsizeiptr length,
                                                   GLbitfield access);
ANGLE_EXPORT void GL_APIENTRY MemoryBarrierByRegion(GLbitfield barriers);
ANGLE_EXPORT void GL_APIENTRY NamedBufferData(GLuint buffer,
                                              GLsizeiptr size,
                                              const void *data,
                                              GLenum usage);
ANGLE_EXPORT void GL_APIENTRY NamedBufferStorage(GLuint buffer,
                                                 GLsizeiptr size,
                                                 const void *data,
                                                 GLbitfield flags);
ANGLE_EXPORT void GL_APIENTRY NamedBufferSubData(GLuint buffer,
                                                 GLintptr offset,
                                                 GLsizeiptr size,
                                                 const void *data);
ANGLE_EXPORT void GL_APIENTRY NamedFramebufferDrawBuffer(GLuint framebuffer, GLenum buf);
ANGLE_EXPORT void GL_APIENTRY NamedFramebufferDrawBuffers(GLuint framebuffer,
                                                          GLsizei n,
                                                          const GLenum *bufs);
ANGLE_EXPORT void GL_APIENTRY NamedFramebufferParameteri(GLuint framebuffer,
                                                         GLenum pname,
                                                         GLint param);
ANGLE_EXPORT void GL_APIENTRY NamedFramebufferReadBuffer(GLuint framebuffer, GLenum src);
ANGLE_EXPORT void GL_APIENTRY NamedFramebufferRenderbuffer(GLuint framebuffer,
                                                           GLenum attachment,
                                                           GLenum renderbuffertarget,
                                                           GLuint renderbuffer);
ANGLE_EXPORT void GL_APIENTRY NamedFramebufferTexture(GLuint framebuffer,
                                                      GLenum attachment,
                                                      GLuint texture,
                                                      GLint level);
ANGLE_EXPORT void GL_APIENTRY NamedFramebufferTextureLayer(GLuint framebuffer,
                                                           GLenum attachment,
                                                           GLuint texture,
                                                           GLint level,
                                                           GLint layer);
ANGLE_EXPORT void GL_APIENTRY NamedRenderbufferStorage(GLuint renderbuffer,
                                                       GLenum internalformat,
                                                       GLsizei width,
                                                       GLsizei height);
ANGLE_EXPORT void GL_APIENTRY NamedRenderbufferStorageMultisample(GLuint renderbuffer,
                                                                  GLsizei samples,
                                                                  GLenum internalformat,
                                                                  GLsizei width,
                                                                  GLsizei height);
ANGLE_EXPORT void GL_APIENTRY ReadnPixels(GLint x,
                                          GLint y,
                                          GLsizei width,
                                          GLsizei height,
                                          GLenum format,
                                          GLenum type,
                                          GLsizei bufSize,
                                          void *data);
ANGLE_EXPORT void GL_APIENTRY TextureBarrier();
ANGLE_EXPORT void GL_APIENTRY TextureBuffer(GLuint texture, GLenum internalformat, GLuint buffer);
ANGLE_EXPORT void GL_APIENTRY TextureBufferRange(GLuint texture,
                                                 GLenum internalformat,
                                                 GLuint buffer,
                                                 GLintptr offset,
                                                 GLsizeiptr size);
ANGLE_EXPORT void GL_APIENTRY TextureParameterIiv(GLuint texture,
                                                  GLenum pname,
                                                  const GLint *params);
ANGLE_EXPORT void GL_APIENTRY TextureParameterIuiv(GLuint texture,
                                                   GLenum pname,
                                                   const GLuint *params);
ANGLE_EXPORT void GL_APIENTRY TextureParameterf(GLuint texture, GLenum pname, GLfloat param);
ANGLE_EXPORT void GL_APIENTRY TextureParameterfv(GLuint texture,
                                                 GLenum pname,
                                                 const GLfloat *param);
ANGLE_EXPORT void GL_APIENTRY TextureParameteri(GLuint texture, GLenum pname, GLint param);
ANGLE_EXPORT void GL_APIENTRY TextureParameteriv(GLuint texture, GLenum pname, const GLint *param);
ANGLE_EXPORT void GL_APIENTRY TextureStorage1D(GLuint texture,
                                               GLsizei levels,
                                               GLenum internalformat,
                                               GLsizei width);
ANGLE_EXPORT void GL_APIENTRY TextureStorage2D(GLuint texture,
                                               GLsizei levels,
                                               GLenum internalformat,
                                               GLsizei width,
                                               GLsizei height);
ANGLE_EXPORT void GL_APIENTRY TextureStorage2DMultisample(GLuint texture,
                                                          GLsizei samples,
                                                          GLenum internalformat,
                                                          GLsizei width,
                                                          GLsizei height,
                                                          GLboolean fixedsamplelocations);
ANGLE_EXPORT void GL_APIENTRY TextureStorage3D(GLuint texture,
                                               GLsizei levels,
                                               GLenum internalformat,
                                               GLsizei width,
                                               GLsizei height,
                                               GLsizei depth);
ANGLE_EXPORT void GL_APIENTRY TextureStorage3DMultisample(GLuint texture,
                                                          GLsizei samples,
                                                          GLenum internalformat,
                                                          GLsizei width,
                                                          GLsizei height,
                                                          GLsizei depth,
                                                          GLboolean fixedsamplelocations);
ANGLE_EXPORT void GL_APIENTRY TextureSubImage1D(GLuint texture,
                                                GLint level,
                                                GLint xoffset,
                                                GLsizei width,
                                                GLenum format,
                                                GLenum type,
                                                const void *pixels);
ANGLE_EXPORT void GL_APIENTRY TextureSubImage2D(GLuint texture,
                                                GLint level,
                                                GLint xoffset,
                                                GLint yoffset,
                                                GLsizei width,
                                                GLsizei height,
                                                GLenum format,
                                                GLenum type,
                                                const void *pixels);
ANGLE_EXPORT void GL_APIENTRY TextureSubImage3D(GLuint texture,
                                                GLint level,
                                                GLint xoffset,
                                                GLint yoffset,
                                                GLint zoffset,
                                                GLsizei width,
                                                GLsizei height,
                                                GLsizei depth,
                                                GLenum format,
                                                GLenum type,
                                                const void *pixels);
ANGLE_EXPORT void GL_APIENTRY TransformFeedbackBufferBase(GLuint xfb, GLuint index, GLuint buffer);
ANGLE_EXPORT void GL_APIENTRY TransformFeedbackBufferRange(GLuint xfb,
                                                           GLuint index,
                                                           GLuint buffer,
                                                           GLintptr offset,
                                                           GLsizeiptr size);
ANGLE_EXPORT GLboolean GL_APIENTRY UnmapNamedBuffer(GLuint buffer);
ANGLE_EXPORT void GL_APIENTRY VertexArrayAttribBinding(GLuint vaobj,
                                                       GLuint attribindex,
                                                       GLuint bindingindex);
ANGLE_EXPORT void GL_APIENTRY VertexArrayAttribFormat(GLuint vaobj,
                                                      GLuint attribindex,
                                                      GLint size,
                                                      GLenum type,
                                                      GLboolean normalized,
                                                      GLuint relativeoffset);
ANGLE_EXPORT void GL_APIENTRY VertexArrayAttribIFormat(GLuint vaobj,
                                                       GLuint attribindex,
                                                       GLint size,
                                                       GLenum type,
                                                       GLuint relativeoffset);
ANGLE_EXPORT void GL_APIENTRY VertexArrayAttribLFormat(GLuint vaobj,
                                                       GLuint attribindex,
                                                       GLint size,
                                                       GLenum type,
                                                       GLuint relativeoffset);
ANGLE_EXPORT void GL_APIENTRY VertexArrayBindingDivisor(GLuint vaobj,
                                                        GLuint bindingindex,
                                                        GLuint divisor);
ANGLE_EXPORT void GL_APIENTRY VertexArrayElementBuffer(GLuint vaobj, GLuint buffer);
ANGLE_EXPORT void GL_APIENTRY VertexArrayVertexBuffer(GLuint vaobj,
                                                      GLuint bindingindex,
                                                      GLuint buffer,
                                                      GLintptr offset,
                                                      GLsizei stride);
ANGLE_EXPORT void GL_APIENTRY VertexArrayVertexBuffers(GLuint vaobj,
                                                       GLuint first,
                                                       GLsizei count,
                                                       const GLuint *buffers,
                                                       const GLintptr *offsets,
                                                       const GLsizei *strides);

// GL 4.6
ANGLE_EXPORT void GL_APIENTRY MultiDrawArraysIndirectCount(GLenum mode,
                                                           const void *indirect,
                                                           GLintptr drawcount,
                                                           GLsizei maxdrawcount,
                                                           GLsizei stride);
ANGLE_EXPORT void GL_APIENTRY MultiDrawElementsIndirectCount(GLenum mode,
                                                             GLenum type,
                                                             const void *indirect,
                                                             GLintptr drawcount,
                                                             GLsizei maxdrawcount,
                                                             GLsizei stride);
ANGLE_EXPORT void GL_APIENTRY PolygonOffsetClamp(GLfloat factor, GLfloat units, GLfloat clamp);
ANGLE_EXPORT void GL_APIENTRY SpecializeShader(GLuint shader,
                                               const GLchar *pEntryPoint,
                                               GLuint numSpecializationConstants,
                                               const GLuint *pConstantIndex,
                                               const GLuint *pConstantValue);
}  // namespace gl

#endif  // LIBGL_ENTRY_POINTS_GL_4_AUTOGEN_H_
