// GENERATED FILE - DO NOT EDIT.
// Generated by generate_entry_points.py using data from gl.xml and gl_angle_ext.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.
//
// validationES32_autogen.h:
//   Validation functions for the OpenGL ES 3.2 entry points.

#ifndef LIBANGLE_VALIDATION_ES32_AUTOGEN_H_
#define LIBANGLE_VALIDATION_ES32_AUTOGEN_H_

#include "common/PackedEnums.h"

namespace gl
{
class Context;

bool ValidateBlendBarrier(Context *context);
bool ValidateBlendEquationSeparatei(Context *context, GLuint buf, GLenum modeRGB, GLenum modeAlpha);
bool ValidateBlendEquationi(Context *context, GLuint buf, GLenum mode);
bool ValidateBlendFuncSeparatei(Context *context,
                                GLuint buf,
                                GLenum srcRGB,
                                GLenum dstRGB,
                                GLenum srcAlpha,
                                GLenum dstAlpha);
bool ValidateBlendFunci(Context *context, GLuint buf, GLenum src, GLenum dst);
bool ValidateColorMaski(Context *context,
                        GLuint index,
                        GLboolean r,
                        GLboolean g,
                        GLboolean b,
                        GLboolean a);
bool ValidateCopyImageSubData(Context *context,
                              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);
bool ValidateDebugMessageCallback(Context *context, GLDEBUGPROC callback, const void *userParam);
bool ValidateDebugMessageControl(Context *context,
                                 GLenum source,
                                 GLenum type,
                                 GLenum severity,
                                 GLsizei count,
                                 const GLuint *ids,
                                 GLboolean enabled);
bool ValidateDebugMessageInsert(Context *context,
                                GLenum source,
                                GLenum type,
                                GLuint id,
                                GLenum severity,
                                GLsizei length,
                                const GLchar *buf);
bool ValidateDisablei(Context *context, GLenum target, GLuint index);
bool ValidateDrawElementsBaseVertex(Context *context,
                                    PrimitiveMode modePacked,
                                    GLsizei count,
                                    DrawElementsType typePacked,
                                    const void *indices,
                                    GLint basevertex);
bool ValidateDrawElementsInstancedBaseVertex(Context *context,
                                             PrimitiveMode modePacked,
                                             GLsizei count,
                                             DrawElementsType typePacked,
                                             const void *indices,
                                             GLsizei instancecount,
                                             GLint basevertex);
bool ValidateDrawRangeElementsBaseVertex(Context *context,
                                         PrimitiveMode modePacked,
                                         GLuint start,
                                         GLuint end,
                                         GLsizei count,
                                         DrawElementsType typePacked,
                                         const void *indices,
                                         GLint basevertex);
bool ValidateEnablei(Context *context, GLenum target, GLuint index);
bool ValidateFramebufferTexture(Context *context,
                                GLenum target,
                                GLenum attachment,
                                TextureID texturePacked,
                                GLint level);
bool ValidateGetDebugMessageLog(Context *context,
                                GLuint count,
                                GLsizei bufSize,
                                GLenum *sources,
                                GLenum *types,
                                GLuint *ids,
                                GLenum *severities,
                                GLsizei *lengths,
                                GLchar *messageLog);
bool ValidateGetGraphicsResetStatus(Context *context);
bool ValidateGetObjectLabel(Context *context,
                            GLenum identifier,
                            GLuint name,
                            GLsizei bufSize,
                            GLsizei *length,
                            GLchar *label);
bool ValidateGetObjectPtrLabel(Context *context,
                               const void *ptr,
                               GLsizei bufSize,
                               GLsizei *length,
                               GLchar *label);
bool ValidateGetPointerv(Context *context, GLenum pname, void **params);
bool ValidateGetSamplerParameterIiv(Context *context,
                                    SamplerID samplerPacked,
                                    GLenum pname,
                                    GLint *params);
bool ValidateGetSamplerParameterIuiv(Context *context,
                                     SamplerID samplerPacked,
                                     GLenum pname,
                                     GLuint *params);
bool ValidateGetTexParameterIiv(Context *context,
                                TextureType targetPacked,
                                GLenum pname,
                                GLint *params);
bool ValidateGetTexParameterIuiv(Context *context,
                                 TextureType targetPacked,
                                 GLenum pname,
                                 GLuint *params);
bool ValidateGetnUniformfv(Context *context,
                           ShaderProgramID programPacked,
                           GLint location,
                           GLsizei bufSize,
                           GLfloat *params);
bool ValidateGetnUniformiv(Context *context,
                           ShaderProgramID programPacked,
                           GLint location,
                           GLsizei bufSize,
                           GLint *params);
bool ValidateGetnUniformuiv(Context *context,
                            ShaderProgramID programPacked,
                            GLint location,
                            GLsizei bufSize,
                            GLuint *params);
bool ValidateIsEnabledi(Context *context, GLenum target, GLuint index);
bool ValidateMinSampleShading(Context *context, GLfloat value);
bool ValidateObjectLabel(Context *context,
                         GLenum identifier,
                         GLuint name,
                         GLsizei length,
                         const GLchar *label);
bool ValidateObjectPtrLabel(Context *context, const void *ptr, GLsizei length, const GLchar *label);
bool ValidatePatchParameteri(Context *context, GLenum pname, GLint value);
bool ValidatePopDebugGroup(Context *context);
bool ValidatePrimitiveBoundingBox(Context *context,
                                  GLfloat minX,
                                  GLfloat minY,
                                  GLfloat minZ,
                                  GLfloat minW,
                                  GLfloat maxX,
                                  GLfloat maxY,
                                  GLfloat maxZ,
                                  GLfloat maxW);
bool ValidatePushDebugGroup(Context *context,
                            GLenum source,
                            GLuint id,
                            GLsizei length,
                            const GLchar *message);
bool ValidateReadnPixels(Context *context,
                         GLint x,
                         GLint y,
                         GLsizei width,
                         GLsizei height,
                         GLenum format,
                         GLenum type,
                         GLsizei bufSize,
                         void *data);
bool ValidateSamplerParameterIiv(Context *context,
                                 SamplerID samplerPacked,
                                 GLenum pname,
                                 const GLint *param);
bool ValidateSamplerParameterIuiv(Context *context,
                                  SamplerID samplerPacked,
                                  GLenum pname,
                                  const GLuint *param);
bool ValidateTexBuffer(Context *context,
                       GLenum target,
                       GLenum internalformat,
                       BufferID bufferPacked);
bool ValidateTexBufferRange(Context *context,
                            GLenum target,
                            GLenum internalformat,
                            BufferID bufferPacked,
                            GLintptr offset,
                            GLsizeiptr size);
bool ValidateTexParameterIiv(Context *context,
                             TextureType targetPacked,
                             GLenum pname,
                             const GLint *params);
bool ValidateTexParameterIuiv(Context *context,
                              TextureType targetPacked,
                              GLenum pname,
                              const GLuint *params);
bool ValidateTexStorage3DMultisample(Context *context,
                                     TextureType targetPacked,
                                     GLsizei samples,
                                     GLenum internalformat,
                                     GLsizei width,
                                     GLsizei height,
                                     GLsizei depth,
                                     GLboolean fixedsamplelocations);
}  // namespace gl

#endif  // LIBANGLE_VALIDATION_ES32_AUTOGEN_H_
