// 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.
//
// validationGL45_autogen.h:
//   Validation functions for the OpenGL 4.5 entry points.

#ifndef LIBANGLE_VALIDATION_GL45_AUTOGEN_H_
#define LIBANGLE_VALIDATION_GL45_AUTOGEN_H_

#include "common/PackedEnums.h"

namespace gl
{
class Context;

bool ValidateBindTextureUnit(const Context *context, GLuint unit, TextureID texturePacked);
bool ValidateBlitNamedFramebuffer(const Context *context,
                                  GLuint readFramebuffer,
                                  GLuint drawFramebuffer,
                                  GLint srcX0,
                                  GLint srcY0,
                                  GLint srcX1,
                                  GLint srcY1,
                                  GLint dstX0,
                                  GLint dstY0,
                                  GLint dstX1,
                                  GLint dstY1,
                                  GLbitfield mask,
                                  GLenum filter);
bool ValidateCheckNamedFramebufferStatus(const Context *context,
                                         FramebufferID framebufferPacked,
                                         GLenum target);
bool ValidateClearNamedBufferData(const Context *context,
                                  BufferID bufferPacked,
                                  GLenum internalformat,
                                  GLenum format,
                                  GLenum type,
                                  const void *data);
bool ValidateClearNamedBufferSubData(const Context *context,
                                     BufferID bufferPacked,
                                     GLenum internalformat,
                                     GLintptr offset,
                                     GLsizeiptr size,
                                     GLenum format,
                                     GLenum type,
                                     const void *data);
bool ValidateClearNamedFramebufferfi(const Context *context,
                                     FramebufferID framebufferPacked,
                                     GLenum buffer,
                                     GLint drawbuffer,
                                     GLfloat depth,
                                     GLint stencil);
bool ValidateClearNamedFramebufferfv(const Context *context,
                                     FramebufferID framebufferPacked,
                                     GLenum buffer,
                                     GLint drawbuffer,
                                     const GLfloat *value);
bool ValidateClearNamedFramebufferiv(const Context *context,
                                     FramebufferID framebufferPacked,
                                     GLenum buffer,
                                     GLint drawbuffer,
                                     const GLint *value);
bool ValidateClearNamedFramebufferuiv(const Context *context,
                                      FramebufferID framebufferPacked,
                                      GLenum buffer,
                                      GLint drawbuffer,
                                      const GLuint *value);
bool ValidateClipControl(const Context *context, GLenum origin, GLenum depth);
bool ValidateCompressedTextureSubImage1D(const Context *context,
                                         TextureID texturePacked,
                                         GLint level,
                                         GLint xoffset,
                                         GLsizei width,
                                         GLenum format,
                                         GLsizei imageSize,
                                         const void *data);
bool ValidateCompressedTextureSubImage2D(const Context *context,
                                         TextureID texturePacked,
                                         GLint level,
                                         GLint xoffset,
                                         GLint yoffset,
                                         GLsizei width,
                                         GLsizei height,
                                         GLenum format,
                                         GLsizei imageSize,
                                         const void *data);
bool ValidateCompressedTextureSubImage3D(const Context *context,
                                         TextureID texturePacked,
                                         GLint level,
                                         GLint xoffset,
                                         GLint yoffset,
                                         GLint zoffset,
                                         GLsizei width,
                                         GLsizei height,
                                         GLsizei depth,
                                         GLenum format,
                                         GLsizei imageSize,
                                         const void *data);
bool ValidateCopyNamedBufferSubData(const Context *context,
                                    GLuint readBuffer,
                                    GLuint writeBuffer,
                                    GLintptr readOffset,
                                    GLintptr writeOffset,
                                    GLsizeiptr size);
bool ValidateCopyTextureSubImage1D(const Context *context,
                                   TextureID texturePacked,
                                   GLint level,
                                   GLint xoffset,
                                   GLint x,
                                   GLint y,
                                   GLsizei width);
bool ValidateCopyTextureSubImage2D(const Context *context,
                                   TextureID texturePacked,
                                   GLint level,
                                   GLint xoffset,
                                   GLint yoffset,
                                   GLint x,
                                   GLint y,
                                   GLsizei width,
                                   GLsizei height);
bool ValidateCopyTextureSubImage3D(const Context *context,
                                   TextureID texturePacked,
                                   GLint level,
                                   GLint xoffset,
                                   GLint yoffset,
                                   GLint zoffset,
                                   GLint x,
                                   GLint y,
                                   GLsizei width,
                                   GLsizei height);
bool ValidateCreateBuffers(const Context *context, GLsizei n, const BufferID *buffersPacked);
bool ValidateCreateFramebuffers(const Context *context, GLsizei n, const GLuint *framebuffers);
bool ValidateCreateProgramPipelines(const Context *context, GLsizei n, const GLuint *pipelines);
bool ValidateCreateQueries(const Context *context, GLenum target, GLsizei n, const GLuint *ids);
bool ValidateCreateRenderbuffers(const Context *context,
                                 GLsizei n,
                                 const RenderbufferID *renderbuffersPacked);
bool ValidateCreateSamplers(const Context *context, GLsizei n, const GLuint *samplers);
bool ValidateCreateTextures(const Context *context,
                            GLenum target,
                            GLsizei n,
                            const GLuint *textures);
bool ValidateCreateTransformFeedbacks(const Context *context, GLsizei n, const GLuint *ids);
bool ValidateCreateVertexArrays(const Context *context,
                                GLsizei n,
                                const VertexArrayID *arraysPacked);
bool ValidateDisableVertexArrayAttrib(const Context *context,
                                      VertexArrayID vaobjPacked,
                                      GLuint index);
bool ValidateEnableVertexArrayAttrib(const Context *context,
                                     VertexArrayID vaobjPacked,
                                     GLuint index);
bool ValidateFlushMappedNamedBufferRange(const Context *context,
                                         BufferID bufferPacked,
                                         GLintptr offset,
                                         GLsizeiptr length);
bool ValidateGenerateTextureMipmap(const Context *context, TextureID texturePacked);
bool ValidateGetCompressedTextureImage(const Context *context,
                                       TextureID texturePacked,
                                       GLint level,
                                       GLsizei bufSize,
                                       const void *pixels);
bool ValidateGetCompressedTextureSubImage(const Context *context,
                                          TextureID texturePacked,
                                          GLint level,
                                          GLint xoffset,
                                          GLint yoffset,
                                          GLint zoffset,
                                          GLsizei width,
                                          GLsizei height,
                                          GLsizei depth,
                                          GLsizei bufSize,
                                          const void *pixels);
bool ValidateGetNamedBufferParameteri64v(const Context *context,
                                         BufferID bufferPacked,
                                         GLenum pname,
                                         const GLint64 *params);
bool ValidateGetNamedBufferParameteriv(const Context *context,
                                       BufferID bufferPacked,
                                       GLenum pname,
                                       const GLint *params);
bool ValidateGetNamedBufferPointerv(const Context *context,
                                    BufferID bufferPacked,
                                    GLenum pname,
                                    void *const *params);
bool ValidateGetNamedBufferSubData(const Context *context,
                                   BufferID bufferPacked,
                                   GLintptr offset,
                                   GLsizeiptr size,
                                   const void *data);
bool ValidateGetNamedFramebufferAttachmentParameteriv(const Context *context,
                                                      FramebufferID framebufferPacked,
                                                      GLenum attachment,
                                                      GLenum pname,
                                                      const GLint *params);
bool ValidateGetNamedFramebufferParameteriv(const Context *context,
                                            FramebufferID framebufferPacked,
                                            GLenum pname,
                                            const GLint *param);
bool ValidateGetNamedRenderbufferParameteriv(const Context *context,
                                             RenderbufferID renderbufferPacked,
                                             GLenum pname,
                                             const GLint *params);
bool ValidateGetQueryBufferObjecti64v(const Context *context,
                                      GLuint id,
                                      BufferID bufferPacked,
                                      GLenum pname,
                                      GLintptr offset);
bool ValidateGetQueryBufferObjectiv(const Context *context,
                                    GLuint id,
                                    BufferID bufferPacked,
                                    GLenum pname,
                                    GLintptr offset);
bool ValidateGetQueryBufferObjectui64v(const Context *context,
                                       GLuint id,
                                       BufferID bufferPacked,
                                       GLenum pname,
                                       GLintptr offset);
bool ValidateGetQueryBufferObjectuiv(const Context *context,
                                     GLuint id,
                                     BufferID bufferPacked,
                                     GLenum pname,
                                     GLintptr offset);
bool ValidateGetTextureImage(const Context *context,
                             TextureID texturePacked,
                             GLint level,
                             GLenum format,
                             GLenum type,
                             GLsizei bufSize,
                             const void *pixels);
bool ValidateGetTextureLevelParameterfv(const Context *context,
                                        TextureID texturePacked,
                                        GLint level,
                                        GLenum pname,
                                        const GLfloat *params);
bool ValidateGetTextureLevelParameteriv(const Context *context,
                                        TextureID texturePacked,
                                        GLint level,
                                        GLenum pname,
                                        const GLint *params);
bool ValidateGetTextureParameterIiv(const Context *context,
                                    TextureID texturePacked,
                                    GLenum pname,
                                    const GLint *params);
bool ValidateGetTextureParameterIuiv(const Context *context,
                                     TextureID texturePacked,
                                     GLenum pname,
                                     const GLuint *params);
bool ValidateGetTextureParameterfv(const Context *context,
                                   TextureID texturePacked,
                                   GLenum pname,
                                   const GLfloat *params);
bool ValidateGetTextureParameteriv(const Context *context,
                                   TextureID texturePacked,
                                   GLenum pname,
                                   const GLint *params);
bool ValidateGetTextureSubImage(const Context *context,
                                TextureID texturePacked,
                                GLint level,
                                GLint xoffset,
                                GLint yoffset,
                                GLint zoffset,
                                GLsizei width,
                                GLsizei height,
                                GLsizei depth,
                                GLenum format,
                                GLenum type,
                                GLsizei bufSize,
                                const void *pixels);
bool ValidateGetTransformFeedbacki64_v(const Context *context,
                                       GLuint xfb,
                                       GLenum pname,
                                       GLuint index,
                                       const GLint64 *param);
bool ValidateGetTransformFeedbacki_v(const Context *context,
                                     GLuint xfb,
                                     GLenum pname,
                                     GLuint index,
                                     const GLint *param);
bool ValidateGetTransformFeedbackiv(const Context *context,
                                    GLuint xfb,
                                    GLenum pname,
                                    const GLint *param);
bool ValidateGetVertexArrayIndexed64iv(const Context *context,
                                       VertexArrayID vaobjPacked,
                                       GLuint index,
                                       GLenum pname,
                                       const GLint64 *param);
bool ValidateGetVertexArrayIndexediv(const Context *context,
                                     VertexArrayID vaobjPacked,
                                     GLuint index,
                                     GLenum pname,
                                     const GLint *param);
bool ValidateGetVertexArrayiv(const Context *context,
                              VertexArrayID vaobjPacked,
                              GLenum pname,
                              const GLint *param);
bool ValidateGetnColorTable(const Context *context,
                            GLenum target,
                            GLenum format,
                            GLenum type,
                            GLsizei bufSize,
                            const void *table);
bool ValidateGetnCompressedTexImage(const Context *context,
                                    GLenum target,
                                    GLint lod,
                                    GLsizei bufSize,
                                    const void *pixels);
bool ValidateGetnConvolutionFilter(const Context *context,
                                   GLenum target,
                                   GLenum format,
                                   GLenum type,
                                   GLsizei bufSize,
                                   const void *image);
bool ValidateGetnHistogram(const Context *context,
                           GLenum target,
                           GLboolean reset,
                           GLenum format,
                           GLenum type,
                           GLsizei bufSize,
                           const void *values);
bool ValidateGetnMapdv(const Context *context,
                       GLenum target,
                       GLenum query,
                       GLsizei bufSize,
                       const GLdouble *v);
bool ValidateGetnMapfv(const Context *context,
                       GLenum target,
                       GLenum query,
                       GLsizei bufSize,
                       const GLfloat *v);
bool ValidateGetnMapiv(const Context *context,
                       GLenum target,
                       GLenum query,
                       GLsizei bufSize,
                       const GLint *v);
bool ValidateGetnMinmax(const Context *context,
                        GLenum target,
                        GLboolean reset,
                        GLenum format,
                        GLenum type,
                        GLsizei bufSize,
                        const void *values);
bool ValidateGetnPixelMapfv(const Context *context,
                            GLenum map,
                            GLsizei bufSize,
                            const GLfloat *values);
bool ValidateGetnPixelMapuiv(const Context *context,
                             GLenum map,
                             GLsizei bufSize,
                             const GLuint *values);
bool ValidateGetnPixelMapusv(const Context *context,
                             GLenum map,
                             GLsizei bufSize,
                             const GLushort *values);
bool ValidateGetnPolygonStipple(const Context *context, GLsizei bufSize, const GLubyte *pattern);
bool ValidateGetnSeparableFilter(const Context *context,
                                 GLenum target,
                                 GLenum format,
                                 GLenum type,
                                 GLsizei rowBufSize,
                                 const void *row,
                                 GLsizei columnBufSize,
                                 const void *column,
                                 const void *span);
bool ValidateGetnTexImage(const Context *context,
                          GLenum target,
                          GLint level,
                          GLenum format,
                          GLenum type,
                          GLsizei bufSize,
                          const void *pixels);
bool ValidateGetnUniformdv(const Context *context,
                           ShaderProgramID programPacked,
                           UniformLocation locationPacked,
                           GLsizei bufSize,
                           const GLdouble *params);
bool ValidateInvalidateNamedFramebufferData(const Context *context,
                                            FramebufferID framebufferPacked,
                                            GLsizei numAttachments,
                                            const GLenum *attachments);
bool ValidateInvalidateNamedFramebufferSubData(const Context *context,
                                               FramebufferID framebufferPacked,
                                               GLsizei numAttachments,
                                               const GLenum *attachments,
                                               GLint x,
                                               GLint y,
                                               GLsizei width,
                                               GLsizei height);
bool ValidateMapNamedBuffer(const Context *context, BufferID bufferPacked, GLenum access);
bool ValidateMapNamedBufferRange(const Context *context,
                                 BufferID bufferPacked,
                                 GLintptr offset,
                                 GLsizeiptr length,
                                 GLbitfield access);
bool ValidateNamedBufferData(const Context *context,
                             BufferID bufferPacked,
                             GLsizeiptr size,
                             const void *data,
                             GLenum usage);
bool ValidateNamedBufferStorage(const Context *context,
                                BufferID bufferPacked,
                                GLsizeiptr size,
                                const void *data,
                                GLbitfield flags);
bool ValidateNamedBufferSubData(const Context *context,
                                BufferID bufferPacked,
                                GLintptr offset,
                                GLsizeiptr size,
                                const void *data);
bool ValidateNamedFramebufferDrawBuffer(const Context *context,
                                        FramebufferID framebufferPacked,
                                        GLenum buf);
bool ValidateNamedFramebufferDrawBuffers(const Context *context,
                                         FramebufferID framebufferPacked,
                                         GLsizei n,
                                         const GLenum *bufs);
bool ValidateNamedFramebufferParameteri(const Context *context,
                                        FramebufferID framebufferPacked,
                                        GLenum pname,
                                        GLint param);
bool ValidateNamedFramebufferReadBuffer(const Context *context,
                                        FramebufferID framebufferPacked,
                                        GLenum src);
bool ValidateNamedFramebufferRenderbuffer(const Context *context,
                                          FramebufferID framebufferPacked,
                                          GLenum attachment,
                                          GLenum renderbuffertarget,
                                          RenderbufferID renderbufferPacked);
bool ValidateNamedFramebufferTexture(const Context *context,
                                     FramebufferID framebufferPacked,
                                     GLenum attachment,
                                     TextureID texturePacked,
                                     GLint level);
bool ValidateNamedFramebufferTextureLayer(const Context *context,
                                          FramebufferID framebufferPacked,
                                          GLenum attachment,
                                          TextureID texturePacked,
                                          GLint level,
                                          GLint layer);
bool ValidateNamedRenderbufferStorage(const Context *context,
                                      RenderbufferID renderbufferPacked,
                                      GLenum internalformat,
                                      GLsizei width,
                                      GLsizei height);
bool ValidateNamedRenderbufferStorageMultisample(const Context *context,
                                                 RenderbufferID renderbufferPacked,
                                                 GLsizei samples,
                                                 GLenum internalformat,
                                                 GLsizei width,
                                                 GLsizei height);
bool ValidateTextureBarrier(const Context *context);
bool ValidateTextureBuffer(const Context *context,
                           TextureID texturePacked,
                           GLenum internalformat,
                           BufferID bufferPacked);
bool ValidateTextureBufferRange(const Context *context,
                                TextureID texturePacked,
                                GLenum internalformat,
                                BufferID bufferPacked,
                                GLintptr offset,
                                GLsizeiptr size);
bool ValidateTextureParameterIiv(const Context *context,
                                 TextureID texturePacked,
                                 GLenum pname,
                                 const GLint *params);
bool ValidateTextureParameterIuiv(const Context *context,
                                  TextureID texturePacked,
                                  GLenum pname,
                                  const GLuint *params);
bool ValidateTextureParameterf(const Context *context,
                               TextureID texturePacked,
                               GLenum pname,
                               GLfloat param);
bool ValidateTextureParameterfv(const Context *context,
                                TextureID texturePacked,
                                GLenum pname,
                                const GLfloat *param);
bool ValidateTextureParameteri(const Context *context,
                               TextureID texturePacked,
                               GLenum pname,
                               GLint param);
bool ValidateTextureParameteriv(const Context *context,
                                TextureID texturePacked,
                                GLenum pname,
                                const GLint *param);
bool ValidateTextureStorage1D(const Context *context,
                              TextureID texturePacked,
                              GLsizei levels,
                              GLenum internalformat,
                              GLsizei width);
bool ValidateTextureStorage2D(const Context *context,
                              TextureID texturePacked,
                              GLsizei levels,
                              GLenum internalformat,
                              GLsizei width,
                              GLsizei height);
bool ValidateTextureStorage2DMultisample(const Context *context,
                                         TextureID texturePacked,
                                         GLsizei samples,
                                         GLenum internalformat,
                                         GLsizei width,
                                         GLsizei height,
                                         GLboolean fixedsamplelocations);
bool ValidateTextureStorage3D(const Context *context,
                              TextureID texturePacked,
                              GLsizei levels,
                              GLenum internalformat,
                              GLsizei width,
                              GLsizei height,
                              GLsizei depth);
bool ValidateTextureStorage3DMultisample(const Context *context,
                                         TextureID texturePacked,
                                         GLsizei samples,
                                         GLenum internalformat,
                                         GLsizei width,
                                         GLsizei height,
                                         GLsizei depth,
                                         GLboolean fixedsamplelocations);
bool ValidateTextureSubImage1D(const Context *context,
                               TextureID texturePacked,
                               GLint level,
                               GLint xoffset,
                               GLsizei width,
                               GLenum format,
                               GLenum type,
                               const void *pixels);
bool ValidateTextureSubImage2D(const Context *context,
                               TextureID texturePacked,
                               GLint level,
                               GLint xoffset,
                               GLint yoffset,
                               GLsizei width,
                               GLsizei height,
                               GLenum format,
                               GLenum type,
                               const void *pixels);
bool ValidateTextureSubImage3D(const Context *context,
                               TextureID texturePacked,
                               GLint level,
                               GLint xoffset,
                               GLint yoffset,
                               GLint zoffset,
                               GLsizei width,
                               GLsizei height,
                               GLsizei depth,
                               GLenum format,
                               GLenum type,
                               const void *pixels);
bool ValidateTransformFeedbackBufferBase(const Context *context,
                                         GLuint xfb,
                                         GLuint index,
                                         BufferID bufferPacked);
bool ValidateTransformFeedbackBufferRange(const Context *context,
                                          GLuint xfb,
                                          GLuint index,
                                          BufferID bufferPacked,
                                          GLintptr offset,
                                          GLsizeiptr size);
bool ValidateUnmapNamedBuffer(const Context *context, BufferID bufferPacked);
bool ValidateVertexArrayAttribBinding(const Context *context,
                                      VertexArrayID vaobjPacked,
                                      GLuint attribindex,
                                      GLuint bindingindex);
bool ValidateVertexArrayAttribFormat(const Context *context,
                                     VertexArrayID vaobjPacked,
                                     GLuint attribindex,
                                     GLint size,
                                     GLenum type,
                                     GLboolean normalized,
                                     GLuint relativeoffset);
bool ValidateVertexArrayAttribIFormat(const Context *context,
                                      VertexArrayID vaobjPacked,
                                      GLuint attribindex,
                                      GLint size,
                                      GLenum type,
                                      GLuint relativeoffset);
bool ValidateVertexArrayAttribLFormat(const Context *context,
                                      VertexArrayID vaobjPacked,
                                      GLuint attribindex,
                                      GLint size,
                                      GLenum type,
                                      GLuint relativeoffset);
bool ValidateVertexArrayBindingDivisor(const Context *context,
                                       VertexArrayID vaobjPacked,
                                       GLuint bindingindex,
                                       GLuint divisor);
bool ValidateVertexArrayElementBuffer(const Context *context,
                                      VertexArrayID vaobjPacked,
                                      BufferID bufferPacked);
bool ValidateVertexArrayVertexBuffer(const Context *context,
                                     VertexArrayID vaobjPacked,
                                     GLuint bindingindex,
                                     BufferID bufferPacked,
                                     GLintptr offset,
                                     GLsizei stride);
bool ValidateVertexArrayVertexBuffers(const Context *context,
                                      VertexArrayID vaobjPacked,
                                      GLuint first,
                                      GLsizei count,
                                      const BufferID *buffersPacked,
                                      const GLintptr *offsets,
                                      const GLsizei *strides);
}  // namespace gl

#endif  // LIBANGLE_VALIDATION_GL45_AUTOGEN_H_
