// GENERATED FILE - DO NOT EDIT.
// Generated by generate_entry_points.py using data from gl.xml.
//
// Copyright 2017 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_enum_autogen.h:
//   Defines the GLES entry points enumeration.

#ifndef LIBGLESV2_ENTRYPOINTSENUM_AUTOGEN_H_
#define LIBGLESV2_ENTRYPOINTSENUM_AUTOGEN_H_

namespace gl
{
enum class EntryPoint
{
    Invalid,
    ActiveTexture,
    AttachShader,
    BindAttribLocation,
    BindBuffer,
    BindFramebuffer,
    BindRenderbuffer,
    BindTexture,
    BlendColor,
    BlendEquation,
    BlendEquationSeparate,
    BlendFunc,
    BlendFuncSeparate,
    BufferData,
    BufferSubData,
    CheckFramebufferStatus,
    Clear,
    ClearColor,
    ClearDepthf,
    ClearStencil,
    ColorMask,
    CompileShader,
    CompressedTexImage2D,
    CompressedTexSubImage2D,
    CopyTexImage2D,
    CopyTexSubImage2D,
    CreateProgram,
    CreateShader,
    CullFace,
    DeleteBuffers,
    DeleteFramebuffers,
    DeleteProgram,
    DeleteRenderbuffers,
    DeleteShader,
    DeleteTextures,
    DepthFunc,
    DepthMask,
    DepthRangef,
    DetachShader,
    Disable,
    DisableVertexAttribArray,
    DrawArrays,
    DrawElements,
    Enable,
    EnableVertexAttribArray,
    Finish,
    Flush,
    FramebufferRenderbuffer,
    FramebufferTexture2D,
    FrontFace,
    GenBuffers,
    GenerateMipmap,
    GenFramebuffers,
    GenRenderbuffers,
    GenTextures,
    GetActiveAttrib,
    GetActiveUniform,
    GetAttachedShaders,
    GetAttribLocation,
    GetBooleanv,
    GetBufferParameteriv,
    GetError,
    GetFloatv,
    GetFramebufferAttachmentParameteriv,
    GetIntegerv,
    GetProgramiv,
    GetProgramInfoLog,
    GetRenderbufferParameteriv,
    GetShaderiv,
    GetShaderInfoLog,
    GetShaderPrecisionFormat,
    GetShaderSource,
    GetString,
    GetTexParameterfv,
    GetTexParameteriv,
    GetUniformfv,
    GetUniformiv,
    GetUniformLocation,
    GetVertexAttribfv,
    GetVertexAttribiv,
    GetVertexAttribPointerv,
    Hint,
    IsBuffer,
    IsEnabled,
    IsFramebuffer,
    IsProgram,
    IsRenderbuffer,
    IsShader,
    IsTexture,
    LineWidth,
    LinkProgram,
    PixelStorei,
    PolygonOffset,
    ReadPixels,
    ReleaseShaderCompiler,
    RenderbufferStorage,
    SampleCoverage,
    Scissor,
    ShaderBinary,
    ShaderSource,
    StencilFunc,
    StencilFuncSeparate,
    StencilMask,
    StencilMaskSeparate,
    StencilOp,
    StencilOpSeparate,
    TexImage2D,
    TexParameterf,
    TexParameterfv,
    TexParameteri,
    TexParameteriv,
    TexSubImage2D,
    Uniform1f,
    Uniform1fv,
    Uniform1i,
    Uniform1iv,
    Uniform2f,
    Uniform2fv,
    Uniform2i,
    Uniform2iv,
    Uniform3f,
    Uniform3fv,
    Uniform3i,
    Uniform3iv,
    Uniform4f,
    Uniform4fv,
    Uniform4i,
    Uniform4iv,
    UniformMatrix2fv,
    UniformMatrix3fv,
    UniformMatrix4fv,
    UseProgram,
    ValidateProgram,
    VertexAttrib1f,
    VertexAttrib1fv,
    VertexAttrib2f,
    VertexAttrib2fv,
    VertexAttrib3f,
    VertexAttrib3fv,
    VertexAttrib4f,
    VertexAttrib4fv,
    VertexAttribPointer,
    Viewport,
    DrawElementsInstanced,
    DrawRangeElements,
    DrawElementsInstancedANGLE
};
}  // namespace gl
#endif  // LIBGLESV2_ENTRY_POINTS_ENUM_AUTOGEN_H_
