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

#ifndef LIBGLESV2_ENTRY_POINTS_GLES_EXT_AUTOGEN_H_
#define LIBGLESV2_ENTRY_POINTS_GLES_EXT_AUTOGEN_H_

#include <GLES/gl.h>
#include <GLES/glext.h>
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#include <export.h>

namespace gl
{

// GL_ANGLE_framebuffer_blit
ANGLE_EXPORT void GL_APIENTRY BlitFramebufferANGLE(GLint srcX0,
                                                   GLint srcY0,
                                                   GLint srcX1,
                                                   GLint srcY1,
                                                   GLint dstX0,
                                                   GLint dstY0,
                                                   GLint dstX1,
                                                   GLint dstY1,
                                                   GLbitfield mask,
                                                   GLenum filter);

// GL_ANGLE_framebuffer_multisample
ANGLE_EXPORT void GL_APIENTRY RenderbufferStorageMultisampleANGLE(GLenum target,
                                                                  GLsizei samples,
                                                                  GLenum internalformat,
                                                                  GLsizei width,
                                                                  GLsizei height);

// GL_ANGLE_instanced_arrays
ANGLE_EXPORT void GL_APIENTRY DrawArraysInstancedANGLE(GLenum mode,
                                                       GLint first,
                                                       GLsizei count,
                                                       GLsizei primcount);
ANGLE_EXPORT void GL_APIENTRY DrawElementsInstancedANGLE(GLenum mode,
                                                         GLsizei count,
                                                         GLenum type,
                                                         const void *indices,
                                                         GLsizei primcount);
ANGLE_EXPORT void GL_APIENTRY VertexAttribDivisorANGLE(GLuint index, GLuint divisor);

// GL_ANGLE_translated_shader_source
ANGLE_EXPORT void GL_APIENTRY GetTranslatedShaderSourceANGLE(GLuint shader,
                                                             GLsizei bufsize,
                                                             GLsizei *length,
                                                             GLchar *source);

// GL_EXT_debug_marker
ANGLE_EXPORT void GL_APIENTRY InsertEventMarkerEXT(GLsizei length, const GLchar *marker);
ANGLE_EXPORT void GL_APIENTRY PopGroupMarkerEXT();
ANGLE_EXPORT void GL_APIENTRY PushGroupMarkerEXT(GLsizei length, const GLchar *marker);

// GL_EXT_discard_framebuffer
ANGLE_EXPORT void GL_APIENTRY DiscardFramebufferEXT(GLenum target,
                                                    GLsizei numAttachments,
                                                    const GLenum *attachments);

// GL_EXT_disjoint_timer_query
ANGLE_EXPORT void GL_APIENTRY BeginQueryEXT(GLenum target, GLuint id);
ANGLE_EXPORT void GL_APIENTRY DeleteQueriesEXT(GLsizei n, const GLuint *ids);
ANGLE_EXPORT void GL_APIENTRY EndQueryEXT(GLenum target);
ANGLE_EXPORT void GL_APIENTRY GenQueriesEXT(GLsizei n, GLuint *ids);
ANGLE_EXPORT void GL_APIENTRY GetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64 *params);
ANGLE_EXPORT void GL_APIENTRY GetQueryObjectivEXT(GLuint id, GLenum pname, GLint *params);
ANGLE_EXPORT void GL_APIENTRY GetQueryObjectui64vEXT(GLuint id, GLenum pname, GLuint64 *params);
ANGLE_EXPORT void GL_APIENTRY GetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint *params);
ANGLE_EXPORT void GL_APIENTRY GetQueryivEXT(GLenum target, GLenum pname, GLint *params);
ANGLE_EXPORT GLboolean GL_APIENTRY IsQueryEXT(GLuint id);
ANGLE_EXPORT void GL_APIENTRY QueryCounterEXT(GLuint id, GLenum target);

// GL_EXT_draw_buffers
ANGLE_EXPORT void GL_APIENTRY DrawBuffersEXT(GLsizei n, const GLenum *bufs);

// GL_EXT_map_buffer_range
ANGLE_EXPORT void GL_APIENTRY FlushMappedBufferRangeEXT(GLenum target,
                                                        GLintptr offset,
                                                        GLsizeiptr length);
ANGLE_EXPORT void *GL_APIENTRY MapBufferRangeEXT(GLenum target,
                                                 GLintptr offset,
                                                 GLsizeiptr length,
                                                 GLbitfield access);

// GL_EXT_occlusion_query_boolean

// GL_EXT_robustness
ANGLE_EXPORT GLenum GL_APIENTRY GetGraphicsResetStatusEXT();
ANGLE_EXPORT void GL_APIENTRY GetnUniformfvEXT(GLuint program,
                                               GLint location,
                                               GLsizei bufSize,
                                               GLfloat *params);
ANGLE_EXPORT void GL_APIENTRY GetnUniformivEXT(GLuint program,
                                               GLint location,
                                               GLsizei bufSize,
                                               GLint *params);
ANGLE_EXPORT void GL_APIENTRY ReadnPixelsEXT(GLint x,
                                             GLint y,
                                             GLsizei width,
                                             GLsizei height,
                                             GLenum format,
                                             GLenum type,
                                             GLsizei bufSize,
                                             void *data);

// GL_EXT_texture_storage
ANGLE_EXPORT void GL_APIENTRY TexStorage1DEXT(GLenum target,
                                              GLsizei levels,
                                              GLenum internalformat,
                                              GLsizei width);
ANGLE_EXPORT void GL_APIENTRY TexStorage2DEXT(GLenum target,
                                              GLsizei levels,
                                              GLenum internalformat,
                                              GLsizei width,
                                              GLsizei height);
ANGLE_EXPORT void GL_APIENTRY TexStorage3DEXT(GLenum target,
                                              GLsizei levels,
                                              GLenum internalformat,
                                              GLsizei width,
                                              GLsizei height,
                                              GLsizei depth);

// GL_KHR_debug
ANGLE_EXPORT void GL_APIENTRY DebugMessageCallbackKHR(GLDEBUGPROCKHR callback,
                                                      const void *userParam);
ANGLE_EXPORT void GL_APIENTRY DebugMessageControlKHR(GLenum source,
                                                     GLenum type,
                                                     GLenum severity,
                                                     GLsizei count,
                                                     const GLuint *ids,
                                                     GLboolean enabled);
ANGLE_EXPORT void GL_APIENTRY DebugMessageInsertKHR(GLenum source,
                                                    GLenum type,
                                                    GLuint id,
                                                    GLenum severity,
                                                    GLsizei length,
                                                    const GLchar *buf);
ANGLE_EXPORT GLuint GL_APIENTRY GetDebugMessageLogKHR(GLuint count,
                                                      GLsizei bufSize,
                                                      GLenum *sources,
                                                      GLenum *types,
                                                      GLuint *ids,
                                                      GLenum *severities,
                                                      GLsizei *lengths,
                                                      GLchar *messageLog);
ANGLE_EXPORT void GL_APIENTRY
GetObjectLabelKHR(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
ANGLE_EXPORT void GL_APIENTRY GetObjectPtrLabelKHR(const void *ptr,
                                                   GLsizei bufSize,
                                                   GLsizei *length,
                                                   GLchar *label);
ANGLE_EXPORT void GL_APIENTRY GetPointervKHR(GLenum pname, void **params);
ANGLE_EXPORT void GL_APIENTRY ObjectLabelKHR(GLenum identifier,
                                             GLuint name,
                                             GLsizei length,
                                             const GLchar *label);
ANGLE_EXPORT void GL_APIENTRY ObjectPtrLabelKHR(const void *ptr,
                                                GLsizei length,
                                                const GLchar *label);
ANGLE_EXPORT void GL_APIENTRY PopDebugGroupKHR();
ANGLE_EXPORT void GL_APIENTRY PushDebugGroupKHR(GLenum source,
                                                GLuint id,
                                                GLsizei length,
                                                const GLchar *message);

// GL_NV_fence
ANGLE_EXPORT void GL_APIENTRY DeleteFencesNV(GLsizei n, const GLuint *fences);
ANGLE_EXPORT void GL_APIENTRY FinishFenceNV(GLuint fence);
ANGLE_EXPORT void GL_APIENTRY GenFencesNV(GLsizei n, GLuint *fences);
ANGLE_EXPORT void GL_APIENTRY GetFenceivNV(GLuint fence, GLenum pname, GLint *params);
ANGLE_EXPORT GLboolean GL_APIENTRY IsFenceNV(GLuint fence);
ANGLE_EXPORT void GL_APIENTRY SetFenceNV(GLuint fence, GLenum condition);
ANGLE_EXPORT GLboolean GL_APIENTRY TestFenceNV(GLuint fence);

// GL_OES_EGL_image
ANGLE_EXPORT void GL_APIENTRY EGLImageTargetRenderbufferStorageOES(GLenum target,
                                                                   GLeglImageOES image);
ANGLE_EXPORT void GL_APIENTRY EGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image);

// GL_OES_draw_texture
ANGLE_EXPORT void GL_APIENTRY
DrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height);
ANGLE_EXPORT void GL_APIENTRY DrawTexfvOES(const GLfloat *coords);
ANGLE_EXPORT void GL_APIENTRY DrawTexiOES(GLint x, GLint y, GLint z, GLint width, GLint height);
ANGLE_EXPORT void GL_APIENTRY DrawTexivOES(const GLint *coords);
ANGLE_EXPORT void GL_APIENTRY
DrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height);
ANGLE_EXPORT void GL_APIENTRY DrawTexsvOES(const GLshort *coords);
ANGLE_EXPORT void GL_APIENTRY
DrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height);
ANGLE_EXPORT void GL_APIENTRY DrawTexxvOES(const GLfixed *coords);

// GL_OES_get_program_binary
ANGLE_EXPORT void GL_APIENTRY GetProgramBinaryOES(GLuint program,
                                                  GLsizei bufSize,
                                                  GLsizei *length,
                                                  GLenum *binaryFormat,
                                                  void *binary);
ANGLE_EXPORT void GL_APIENTRY ProgramBinaryOES(GLuint program,
                                               GLenum binaryFormat,
                                               const void *binary,
                                               GLint length);

// GL_OES_mapbuffer
ANGLE_EXPORT void GL_APIENTRY GetBufferPointervOES(GLenum target, GLenum pname, void **params);
ANGLE_EXPORT void *GL_APIENTRY MapBufferOES(GLenum target, GLenum access);
ANGLE_EXPORT GLboolean GL_APIENTRY UnmapBufferOES(GLenum target);

// GL_OES_matrix_palette
ANGLE_EXPORT void GL_APIENTRY CurrentPaletteMatrixOES(GLuint matrixpaletteindex);
ANGLE_EXPORT void GL_APIENTRY LoadPaletteFromModelViewMatrixOES();
ANGLE_EXPORT void GL_APIENTRY MatrixIndexPointerOES(GLint size,
                                                    GLenum type,
                                                    GLsizei stride,
                                                    const void *pointer);
ANGLE_EXPORT void GL_APIENTRY WeightPointerOES(GLint size,
                                               GLenum type,
                                               GLsizei stride,
                                               const void *pointer);

// GL_OES_point_size_array
ANGLE_EXPORT void GL_APIENTRY PointSizePointerOES(GLenum type, GLsizei stride, const void *pointer);

// GL_OES_query_matrix
ANGLE_EXPORT GLbitfield GL_APIENTRY QueryMatrixxOES(GLfixed *mantissa, GLint *exponent);

// GL_OES_vertex_array_object
ANGLE_EXPORT void GL_APIENTRY BindVertexArrayOES(GLuint array);
ANGLE_EXPORT void GL_APIENTRY DeleteVertexArraysOES(GLsizei n, const GLuint *arrays);
ANGLE_EXPORT void GL_APIENTRY GenVertexArraysOES(GLsizei n, GLuint *arrays);
ANGLE_EXPORT GLboolean GL_APIENTRY IsVertexArrayOES(GLuint array);
}  // namespace gl

#endif  // LIBGLESV2_ENTRY_POINTS_GLES_EXT_AUTOGEN_H_
