// GENERATED FILE - DO NOT EDIT.
// Generated by generate_entry_points.py using data from gl.xml and wgl.xml.
//
// Copyright 2019 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(Context *context, GLuint unit, GLuint texture);
bool ValidateBlitNamedFramebuffer(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(Context *context, GLuint framebuffer, GLenum target);
bool ValidateClearNamedBufferData(Context *context,
                                  GLuint buffer,
                                  GLenum internalformat,
                                  GLenum format,
                                  GLenum type,
                                  const void *data);
bool ValidateClearNamedBufferSubData(Context *context,
                                     GLuint buffer,
                                     GLenum internalformat,
                                     GLintptr offset,
                                     GLsizeiptr size,
                                     GLenum format,
                                     GLenum type,
                                     const void *data);
bool ValidateClearNamedFramebufferfi(Context *context,
                                     GLuint framebuffer,
                                     GLenum buffer,
                                     GLint drawbuffer,
                                     GLfloat depth,
                                     GLint stencil);
bool ValidateClearNamedFramebufferfv(Context *context,
                                     GLuint framebuffer,
                                     GLenum buffer,
                                     GLint drawbuffer,
                                     const GLfloat *value);
bool ValidateClearNamedFramebufferiv(Context *context,
                                     GLuint framebuffer,
                                     GLenum buffer,
                                     GLint drawbuffer,
                                     const GLint *value);
bool ValidateClearNamedFramebufferuiv(Context *context,
                                      GLuint framebuffer,
                                      GLenum buffer,
                                      GLint drawbuffer,
                                      const GLuint *value);
bool ValidateClipControl(Context *context, GLenum origin, GLenum depth);
bool ValidateCompressedTextureSubImage1D(Context *context,
                                         GLuint texture,
                                         GLint level,
                                         GLint xoffset,
                                         GLsizei width,
                                         GLenum format,
                                         GLsizei imageSize,
                                         const void *data);
bool ValidateCompressedTextureSubImage2D(Context *context,
                                         GLuint texture,
                                         GLint level,
                                         GLint xoffset,
                                         GLint yoffset,
                                         GLsizei width,
                                         GLsizei height,
                                         GLenum format,
                                         GLsizei imageSize,
                                         const void *data);
bool ValidateCompressedTextureSubImage3D(Context *context,
                                         GLuint texture,
                                         GLint level,
                                         GLint xoffset,
                                         GLint yoffset,
                                         GLint zoffset,
                                         GLsizei width,
                                         GLsizei height,
                                         GLsizei depth,
                                         GLenum format,
                                         GLsizei imageSize,
                                         const void *data);
bool ValidateCopyNamedBufferSubData(Context *context,
                                    GLuint readBuffer,
                                    GLuint writeBuffer,
                                    GLintptr readOffset,
                                    GLintptr writeOffset,
                                    GLsizeiptr size);
bool ValidateCopyTextureSubImage1D(Context *context,
                                   GLuint texture,
                                   GLint level,
                                   GLint xoffset,
                                   GLint x,
                                   GLint y,
                                   GLsizei width);
bool ValidateCopyTextureSubImage2D(Context *context,
                                   GLuint texture,
                                   GLint level,
                                   GLint xoffset,
                                   GLint yoffset,
                                   GLint x,
                                   GLint y,
                                   GLsizei width,
                                   GLsizei height);
bool ValidateCopyTextureSubImage3D(Context *context,
                                   GLuint texture,
                                   GLint level,
                                   GLint xoffset,
                                   GLint yoffset,
                                   GLint zoffset,
                                   GLint x,
                                   GLint y,
                                   GLsizei width,
                                   GLsizei height);
bool ValidateCreateBuffers(Context *context, GLsizei n, GLuint *buffers);
bool ValidateCreateFramebuffers(Context *context, GLsizei n, GLuint *framebuffers);
bool ValidateCreateProgramPipelines(Context *context, GLsizei n, GLuint *pipelines);
bool ValidateCreateQueries(Context *context, GLenum target, GLsizei n, GLuint *ids);
bool ValidateCreateRenderbuffers(Context *context, GLsizei n, GLuint *renderbuffers);
bool ValidateCreateSamplers(Context *context, GLsizei n, GLuint *samplers);
bool ValidateCreateTextures(Context *context, GLenum target, GLsizei n, GLuint *textures);
bool ValidateCreateTransformFeedbacks(Context *context, GLsizei n, GLuint *ids);
bool ValidateCreateVertexArrays(Context *context, GLsizei n, GLuint *arrays);
bool ValidateDisableVertexArrayAttrib(Context *context, GLuint vaobj, GLuint index);
bool ValidateEnableVertexArrayAttrib(Context *context, GLuint vaobj, GLuint index);
bool ValidateFlushMappedNamedBufferRange(Context *context,
                                         GLuint buffer,
                                         GLintptr offset,
                                         GLsizeiptr length);
bool ValidateGenerateTextureMipmap(Context *context, GLuint texture);
bool ValidateGetCompressedTextureImage(Context *context,
                                       GLuint texture,
                                       GLint level,
                                       GLsizei bufSize,
                                       void *pixels);
bool ValidateGetCompressedTextureSubImage(Context *context,
                                          GLuint texture,
                                          GLint level,
                                          GLint xoffset,
                                          GLint yoffset,
                                          GLint zoffset,
                                          GLsizei width,
                                          GLsizei height,
                                          GLsizei depth,
                                          GLsizei bufSize,
                                          void *pixels);
bool ValidateGetGraphicsResetStatus(Context *context);
bool ValidateGetNamedBufferParameteri64v(Context *context,
                                         GLuint buffer,
                                         GLenum pname,
                                         GLint64 *params);
bool ValidateGetNamedBufferParameteriv(Context *context,
                                       GLuint buffer,
                                       GLenum pname,
                                       GLint *params);
bool ValidateGetNamedBufferPointerv(Context *context, GLuint buffer, GLenum pname, void **params);
bool ValidateGetNamedBufferSubData(Context *context,
                                   GLuint buffer,
                                   GLintptr offset,
                                   GLsizeiptr size,
                                   void *data);
bool ValidateGetNamedFramebufferAttachmentParameteriv(Context *context,
                                                      GLuint framebuffer,
                                                      GLenum attachment,
                                                      GLenum pname,
                                                      GLint *params);
bool ValidateGetNamedFramebufferParameteriv(Context *context,
                                            GLuint framebuffer,
                                            GLenum pname,
                                            GLint *param);
bool ValidateGetNamedRenderbufferParameteriv(Context *context,
                                             GLuint renderbuffer,
                                             GLenum pname,
                                             GLint *params);
bool ValidateGetQueryBufferObjecti64v(Context *context,
                                      GLuint id,
                                      GLuint buffer,
                                      GLenum pname,
                                      GLintptr offset);
bool ValidateGetQueryBufferObjectiv(Context *context,
                                    GLuint id,
                                    GLuint buffer,
                                    GLenum pname,
                                    GLintptr offset);
bool ValidateGetQueryBufferObjectui64v(Context *context,
                                       GLuint id,
                                       GLuint buffer,
                                       GLenum pname,
                                       GLintptr offset);
bool ValidateGetQueryBufferObjectuiv(Context *context,
                                     GLuint id,
                                     GLuint buffer,
                                     GLenum pname,
                                     GLintptr offset);
bool ValidateGetTextureImage(Context *context,
                             GLuint texture,
                             GLint level,
                             GLenum format,
                             GLenum type,
                             GLsizei bufSize,
                             void *pixels);
bool ValidateGetTextureLevelParameterfv(Context *context,
                                        GLuint texture,
                                        GLint level,
                                        GLenum pname,
                                        GLfloat *params);
bool ValidateGetTextureLevelParameteriv(Context *context,
                                        GLuint texture,
                                        GLint level,
                                        GLenum pname,
                                        GLint *params);
bool ValidateGetTextureParameterIiv(Context *context, GLuint texture, GLenum pname, GLint *params);
bool ValidateGetTextureParameterIuiv(Context *context,
                                     GLuint texture,
                                     GLenum pname,
                                     GLuint *params);
bool ValidateGetTextureParameterfv(Context *context, GLuint texture, GLenum pname, GLfloat *params);
bool ValidateGetTextureParameteriv(Context *context, GLuint texture, GLenum pname, GLint *params);
bool ValidateGetTextureSubImage(Context *context,
                                GLuint texture,
                                GLint level,
                                GLint xoffset,
                                GLint yoffset,
                                GLint zoffset,
                                GLsizei width,
                                GLsizei height,
                                GLsizei depth,
                                GLenum format,
                                GLenum type,
                                GLsizei bufSize,
                                void *pixels);
bool ValidateGetTransformFeedbacki64_v(Context *context,
                                       GLuint xfb,
                                       GLenum pname,
                                       GLuint index,
                                       GLint64 *param);
bool ValidateGetTransformFeedbacki_v(Context *context,
                                     GLuint xfb,
                                     GLenum pname,
                                     GLuint index,
                                     GLint *param);
bool ValidateGetTransformFeedbackiv(Context *context, GLuint xfb, GLenum pname, GLint *param);
bool ValidateGetVertexArrayIndexed64iv(Context *context,
                                       GLuint vaobj,
                                       GLuint index,
                                       GLenum pname,
                                       GLint64 *param);
bool ValidateGetVertexArrayIndexediv(Context *context,
                                     GLuint vaobj,
                                     GLuint index,
                                     GLenum pname,
                                     GLint *param);
bool ValidateGetVertexArrayiv(Context *context, GLuint vaobj, GLenum pname, GLint *param);
bool ValidateGetnColorTable(Context *context,
                            GLenum target,
                            GLenum format,
                            GLenum type,
                            GLsizei bufSize,
                            void *table);
bool ValidateGetnCompressedTexImage(Context *context,
                                    GLenum target,
                                    GLint lod,
                                    GLsizei bufSize,
                                    void *pixels);
bool ValidateGetnConvolutionFilter(Context *context,
                                   GLenum target,
                                   GLenum format,
                                   GLenum type,
                                   GLsizei bufSize,
                                   void *image);
bool ValidateGetnHistogram(Context *context,
                           GLenum target,
                           GLboolean reset,
                           GLenum format,
                           GLenum type,
                           GLsizei bufSize,
                           void *values);
bool ValidateGetnMapdv(Context *context, GLenum target, GLenum query, GLsizei bufSize, GLdouble *v);
bool ValidateGetnMapfv(Context *context, GLenum target, GLenum query, GLsizei bufSize, GLfloat *v);
bool ValidateGetnMapiv(Context *context, GLenum target, GLenum query, GLsizei bufSize, GLint *v);
bool ValidateGetnMinmax(Context *context,
                        GLenum target,
                        GLboolean reset,
                        GLenum format,
                        GLenum type,
                        GLsizei bufSize,
                        void *values);
bool ValidateGetnPixelMapfv(Context *context, GLenum map, GLsizei bufSize, GLfloat *values);
bool ValidateGetnPixelMapuiv(Context *context, GLenum map, GLsizei bufSize, GLuint *values);
bool ValidateGetnPixelMapusv(Context *context, GLenum map, GLsizei bufSize, GLushort *values);
bool ValidateGetnPolygonStipple(Context *context, GLsizei bufSize, GLubyte *pattern);
bool ValidateGetnSeparableFilter(Context *context,
                                 GLenum target,
                                 GLenum format,
                                 GLenum type,
                                 GLsizei rowBufSize,
                                 void *row,
                                 GLsizei columnBufSize,
                                 void *column,
                                 void *span);
bool ValidateGetnTexImage(Context *context,
                          GLenum target,
                          GLint level,
                          GLenum format,
                          GLenum type,
                          GLsizei bufSize,
                          void *pixels);
bool ValidateGetnUniformdv(Context *context,
                           GLuint program,
                           GLint location,
                           GLsizei bufSize,
                           GLdouble *params);
bool ValidateGetnUniformfv(Context *context,
                           GLuint program,
                           GLint location,
                           GLsizei bufSize,
                           GLfloat *params);
bool ValidateGetnUniformiv(Context *context,
                           GLuint program,
                           GLint location,
                           GLsizei bufSize,
                           GLint *params);
bool ValidateGetnUniformuiv(Context *context,
                            GLuint program,
                            GLint location,
                            GLsizei bufSize,
                            GLuint *params);
bool ValidateInvalidateNamedFramebufferData(Context *context,
                                            GLuint framebuffer,
                                            GLsizei numAttachments,
                                            const GLenum *attachments);
bool ValidateInvalidateNamedFramebufferSubData(Context *context,
                                               GLuint framebuffer,
                                               GLsizei numAttachments,
                                               const GLenum *attachments,
                                               GLint x,
                                               GLint y,
                                               GLsizei width,
                                               GLsizei height);
bool ValidateMapNamedBuffer(Context *context, GLuint buffer, GLenum access);
bool ValidateMapNamedBufferRange(Context *context,
                                 GLuint buffer,
                                 GLintptr offset,
                                 GLsizeiptr length,
                                 GLbitfield access);
bool ValidateNamedBufferData(Context *context,
                             GLuint buffer,
                             GLsizeiptr size,
                             const void *data,
                             GLenum usage);
bool ValidateNamedBufferStorage(Context *context,
                                GLuint buffer,
                                GLsizeiptr size,
                                const void *data,
                                GLbitfield flags);
bool ValidateNamedBufferSubData(Context *context,
                                GLuint buffer,
                                GLintptr offset,
                                GLsizeiptr size,
                                const void *data);
bool ValidateNamedFramebufferDrawBuffer(Context *context, GLuint framebuffer, GLenum buf);
bool ValidateNamedFramebufferDrawBuffers(Context *context,
                                         GLuint framebuffer,
                                         GLsizei n,
                                         const GLenum *bufs);
bool ValidateNamedFramebufferParameteri(Context *context,
                                        GLuint framebuffer,
                                        GLenum pname,
                                        GLint param);
bool ValidateNamedFramebufferReadBuffer(Context *context, GLuint framebuffer, GLenum src);
bool ValidateNamedFramebufferRenderbuffer(Context *context,
                                          GLuint framebuffer,
                                          GLenum attachment,
                                          GLenum renderbuffertarget,
                                          GLuint renderbuffer);
bool ValidateNamedFramebufferTexture(Context *context,
                                     GLuint framebuffer,
                                     GLenum attachment,
                                     GLuint texture,
                                     GLint level);
bool ValidateNamedFramebufferTextureLayer(Context *context,
                                          GLuint framebuffer,
                                          GLenum attachment,
                                          GLuint texture,
                                          GLint level,
                                          GLint layer);
bool ValidateNamedRenderbufferStorage(Context *context,
                                      GLuint renderbuffer,
                                      GLenum internalformat,
                                      GLsizei width,
                                      GLsizei height);
bool ValidateNamedRenderbufferStorageMultisample(Context *context,
                                                 GLuint renderbuffer,
                                                 GLsizei samples,
                                                 GLenum internalformat,
                                                 GLsizei width,
                                                 GLsizei height);
bool ValidateReadnPixels(Context *context,
                         GLint x,
                         GLint y,
                         GLsizei width,
                         GLsizei height,
                         GLenum format,
                         GLenum type,
                         GLsizei bufSize,
                         void *data);
bool ValidateTextureBarrier(Context *context);
bool ValidateTextureBuffer(Context *context, GLuint texture, GLenum internalformat, GLuint buffer);
bool ValidateTextureBufferRange(Context *context,
                                GLuint texture,
                                GLenum internalformat,
                                GLuint buffer,
                                GLintptr offset,
                                GLsizeiptr size);
bool ValidateTextureParameterIiv(Context *context,
                                 GLuint texture,
                                 GLenum pname,
                                 const GLint *params);
bool ValidateTextureParameterIuiv(Context *context,
                                  GLuint texture,
                                  GLenum pname,
                                  const GLuint *params);
bool ValidateTextureParameterf(Context *context, GLuint texture, GLenum pname, GLfloat param);
bool ValidateTextureParameterfv(Context *context,
                                GLuint texture,
                                GLenum pname,
                                const GLfloat *param);
bool ValidateTextureParameteri(Context *context, GLuint texture, GLenum pname, GLint param);
bool ValidateTextureParameteriv(Context *context, GLuint texture, GLenum pname, const GLint *param);
bool ValidateTextureStorage1D(Context *context,
                              GLuint texture,
                              GLsizei levels,
                              GLenum internalformat,
                              GLsizei width);
bool ValidateTextureStorage2D(Context *context,
                              GLuint texture,
                              GLsizei levels,
                              GLenum internalformat,
                              GLsizei width,
                              GLsizei height);
bool ValidateTextureStorage2DMultisample(Context *context,
                                         GLuint texture,
                                         GLsizei samples,
                                         GLenum internalformat,
                                         GLsizei width,
                                         GLsizei height,
                                         GLboolean fixedsamplelocations);
bool ValidateTextureStorage3D(Context *context,
                              GLuint texture,
                              GLsizei levels,
                              GLenum internalformat,
                              GLsizei width,
                              GLsizei height,
                              GLsizei depth);
bool ValidateTextureStorage3DMultisample(Context *context,
                                         GLuint texture,
                                         GLsizei samples,
                                         GLenum internalformat,
                                         GLsizei width,
                                         GLsizei height,
                                         GLsizei depth,
                                         GLboolean fixedsamplelocations);
bool ValidateTextureSubImage1D(Context *context,
                               GLuint texture,
                               GLint level,
                               GLint xoffset,
                               GLsizei width,
                               GLenum format,
                               GLenum type,
                               const void *pixels);
bool ValidateTextureSubImage2D(Context *context,
                               GLuint texture,
                               GLint level,
                               GLint xoffset,
                               GLint yoffset,
                               GLsizei width,
                               GLsizei height,
                               GLenum format,
                               GLenum type,
                               const void *pixels);
bool ValidateTextureSubImage3D(Context *context,
                               GLuint texture,
                               GLint level,
                               GLint xoffset,
                               GLint yoffset,
                               GLint zoffset,
                               GLsizei width,
                               GLsizei height,
                               GLsizei depth,
                               GLenum format,
                               GLenum type,
                               const void *pixels);
bool ValidateTransformFeedbackBufferBase(Context *context, GLuint xfb, GLuint index, GLuint buffer);
bool ValidateTransformFeedbackBufferRange(Context *context,
                                          GLuint xfb,
                                          GLuint index,
                                          GLuint buffer,
                                          GLintptr offset,
                                          GLsizeiptr size);
bool ValidateUnmapNamedBuffer(Context *context, GLuint buffer);
bool ValidateVertexArrayAttribBinding(Context *context,
                                      GLuint vaobj,
                                      GLuint attribindex,
                                      GLuint bindingindex);
bool ValidateVertexArrayAttribFormat(Context *context,
                                     GLuint vaobj,
                                     GLuint attribindex,
                                     GLint size,
                                     GLenum type,
                                     GLboolean normalized,
                                     GLuint relativeoffset);
bool ValidateVertexArrayAttribIFormat(Context *context,
                                      GLuint vaobj,
                                      GLuint attribindex,
                                      GLint size,
                                      GLenum type,
                                      GLuint relativeoffset);
bool ValidateVertexArrayAttribLFormat(Context *context,
                                      GLuint vaobj,
                                      GLuint attribindex,
                                      GLint size,
                                      GLenum type,
                                      GLuint relativeoffset);
bool ValidateVertexArrayBindingDivisor(Context *context,
                                       GLuint vaobj,
                                       GLuint bindingindex,
                                       GLuint divisor);
bool ValidateVertexArrayElementBuffer(Context *context, GLuint vaobj, GLuint buffer);
bool ValidateVertexArrayVertexBuffer(Context *context,
                                     GLuint vaobj,
                                     GLuint bindingindex,
                                     GLuint buffer,
                                     GLintptr offset,
                                     GLsizei stride);
bool ValidateVertexArrayVertexBuffers(Context *context,
                                      GLuint vaobj,
                                      GLuint first,
                                      GLsizei count,
                                      const GLuint *buffers,
                                      const GLintptr *offsets,
                                      const GLsizei *strides);
}  // namespace gl

#endif  // LIBANGLE_VALIDATION_GL45_AUTOGEN_H_
