C++程序  |  335行  |  22.37 KB

// Copyright 2018 The SwiftShader Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//    http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#ifndef LIBGLESV2_ENTRY_POINTS_H_
#define LIBGLESV2_ENTRY_POINTS_H_

#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#include <GLES3/gl3.h>

namespace gl
{
	void ActiveTexture(GLenum texture);
	void AttachShader(GLuint program, GLuint shader);
	void BeginQueryEXT(GLenum target, GLuint name);
	void BindAttribLocation(GLuint program, GLuint index, const GLchar* name);
	void BindBuffer(GLenum target, GLuint buffer);
	void BindFramebuffer(GLenum target, GLuint framebuffer);
	void BindRenderbuffer(GLenum target, GLuint renderbuffer);
	void BindTexture(GLenum target, GLuint texture);
	void BlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
	void BlendEquation(GLenum mode);
	void BlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
	void BlendFunc(GLenum sfactor, GLenum dfactor);
	void BlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
	void BufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
	void BufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
	GLenum CheckFramebufferStatus(GLenum target);
	void Clear(GLbitfield mask);
	void ClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
	void ClearDepthf(GLclampf depth);
	void ClearStencil(GLint s);
	void ColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
	void CompileShader(GLuint shader);
	void CompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height,
		GLint border, GLsizei imageSize, const GLvoid* data);
	void CompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height,
		GLenum format, GLsizei imageSize, const GLvoid* data);
	void CopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
	void CopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
	GLuint CreateProgram(void);
	GLuint CreateShader(GLenum type);
	void CullFace(GLenum mode);
	void DeleteBuffers(GLsizei n, const GLuint* buffers);
	void DeleteFencesNV(GLsizei n, const GLuint* fences);
	void DeleteFramebuffers(GLsizei n, const GLuint* framebuffers);
	void DeleteProgram(GLuint program);
	void DeleteQueriesEXT(GLsizei n, const GLuint *ids);
	void DeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers);
	void DeleteShader(GLuint shader);
	void DeleteTextures(GLsizei n, const GLuint* textures);
	void DepthFunc(GLenum func);
	void DepthMask(GLboolean flag);
	void DepthRangef(GLclampf zNear, GLclampf zFar);
	void DetachShader(GLuint program, GLuint shader);
	void Disable(GLenum cap);
	void DisableVertexAttribArray(GLuint index);
	void DrawArrays(GLenum mode, GLint first, GLsizei count);
	void DrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices);
	void DrawArraysInstancedEXT(GLenum mode, GLint first, GLsizei count, GLsizei instanceCount);
	void DrawElementsInstancedEXT(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instanceCount);
	void VertexAttribDivisorEXT(GLuint index, GLuint divisor);
	void DrawArraysInstancedANGLE(GLenum mode, GLint first, GLsizei count, GLsizei instanceCount);
	void DrawElementsInstancedANGLE(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instanceCount);
	void VertexAttribDivisorANGLE(GLuint index, GLuint divisor);
	void Enable(GLenum cap);
	void EnableVertexAttribArray(GLuint index);
	void EndQueryEXT(GLenum target);
	void FinishFenceNV(GLuint fence);
	void Finish(void);
	void Flush(void);
	void FramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
	void FramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
	void FrontFace(GLenum mode);
	void GenBuffers(GLsizei n, GLuint* buffers);
	void GenerateMipmap(GLenum target);
	void GenFencesNV(GLsizei n, GLuint* fences);
	void GenFramebuffers(GLsizei n, GLuint* framebuffers);
	void GenQueriesEXT(GLsizei n, GLuint* ids);
	void GenRenderbuffers(GLsizei n, GLuint* renderbuffers);
	void GenTextures(GLsizei n, GLuint* textures);
	void GetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
	void GetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
	void GetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
	int GetAttribLocation(GLuint program, const GLchar* name);
	void GetBooleanv(GLenum pname, GLboolean* params);
	void GetBufferParameteriv(GLenum target, GLenum pname, GLint* params);
	GLenum GetError(void);
	void GetFenceivNV(GLuint fence, GLenum pname, GLint *params);
	void GetFloatv(GLenum pname, GLfloat* params);
	void GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params);
	GLenum GetGraphicsResetStatusEXT(void);
	void GetIntegerv(GLenum pname, GLint* params);
	void GetProgramiv(GLuint program, GLenum pname, GLint* params);
	void GetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog);
	void GetQueryivEXT(GLenum target, GLenum pname, GLint *params);
	void GetQueryObjectuivEXT(GLuint name, GLenum pname, GLuint *params);
	void GetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params);
	void GetShaderiv(GLuint shader, GLenum pname, GLint* params);
	void GetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog);
	void GetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
	void GetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
	const GLubyte* GetString(GLenum name);
	void GetTexParameterfv(GLenum target, GLenum pname, GLfloat* params);
	void GetTexParameteriv(GLenum target, GLenum pname, GLint* params);
	void GetnUniformfvEXT(GLuint program, GLint location, GLsizei bufSize, GLfloat* params);
	void GetUniformfv(GLuint program, GLint location, GLfloat* params);
	void GetnUniformivEXT(GLuint program, GLint location, GLsizei bufSize, GLint* params);
	void GetUniformiv(GLuint program, GLint location, GLint* params);
	int GetUniformLocation(GLuint program, const GLchar* name);
	void GetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params);
	void GetVertexAttribiv(GLuint index, GLenum pname, GLint* params);
	void GetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid** pointer);
	void Hint(GLenum target, GLenum mode);
	GLboolean IsBuffer(GLuint buffer);
	GLboolean IsEnabled(GLenum cap);
	GLboolean IsFenceNV(GLuint fence);
	GLboolean IsFramebuffer(GLuint framebuffer);
	GLboolean IsProgram(GLuint program);
	GLboolean IsQueryEXT(GLuint name);
	GLboolean IsRenderbuffer(GLuint renderbuffer);
	GLboolean IsShader(GLuint shader);
	GLboolean IsTexture(GLuint texture);
	void LineWidth(GLfloat width);
	void LinkProgram(GLuint program);
	void PixelStorei(GLenum pname, GLint param);
	void PolygonOffset(GLfloat factor, GLfloat units);
	void ReadnPixelsEXT(GLint x, GLint y, GLsizei width, GLsizei height,
		GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
	void ReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
	void ReleaseShaderCompiler(void);
	void RenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
	void RenderbufferStorageMultisampleANGLE(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
	void RenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
	void SampleCoverage(GLclampf value, GLboolean invert);
	void SetFenceNV(GLuint fence, GLenum condition);
	void Scissor(GLint x, GLint y, GLsizei width, GLsizei height);
	void ShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
	void ShaderSource(GLuint shader, GLsizei count, const GLchar *const *string, const GLint *length);
	void StencilFunc(GLenum func, GLint ref, GLuint mask);
	void StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
	void StencilMask(GLuint mask);
	void StencilMaskSeparate(GLenum face, GLuint mask);
	void StencilOp(GLenum fail, GLenum zfail, GLenum zpass);
	void StencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
	GLboolean TestFenceNV(GLuint fence);
	void TexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
		GLint border, GLenum format, GLenum type, const GLvoid* pixels);
	void TexParameterf(GLenum target, GLenum pname, GLfloat param);
	void TexParameterfv(GLenum target, GLenum pname, const GLfloat* params);
	void TexParameteri(GLenum target, GLenum pname, GLint param);
	void TexParameteriv(GLenum target, GLenum pname, const GLint* params);
	void TexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height,
		GLenum format, GLenum type, const GLvoid* pixels);
	void Uniform1f(GLint location, GLfloat x);
	void Uniform1fv(GLint location, GLsizei count, const GLfloat* v);
	void Uniform1i(GLint location, GLint x);
	void Uniform1iv(GLint location, GLsizei count, const GLint* v);
	void Uniform2f(GLint location, GLfloat x, GLfloat y);
	void Uniform2fv(GLint location, GLsizei count, const GLfloat* v);
	void Uniform2i(GLint location, GLint x, GLint y);
	void Uniform2iv(GLint location, GLsizei count, const GLint* v);
	void Uniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z);
	void Uniform3fv(GLint location, GLsizei count, const GLfloat* v);
	void Uniform3i(GLint location, GLint x, GLint y, GLint z);
	void Uniform3iv(GLint location, GLsizei count, const GLint* v);
	void Uniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
	void Uniform4fv(GLint location, GLsizei count, const GLfloat* v);
	void Uniform4i(GLint location, GLint x, GLint y, GLint z, GLint w);
	void Uniform4iv(GLint location, GLsizei count, const GLint* v);
	void UniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
	void UniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
	void UniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
	void UseProgram(GLuint program);
	void ValidateProgram(GLuint program);
	void VertexAttrib1f(GLuint index, GLfloat x);
	void VertexAttrib1fv(GLuint index, const GLfloat* values);
	void VertexAttrib2f(GLuint index, GLfloat x, GLfloat y);
	void VertexAttrib2fv(GLuint index, const GLfloat* values);
	void VertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z);
	void VertexAttrib3fv(GLuint index, const GLfloat* values);
	void VertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
	void VertexAttrib4fv(GLuint index, const GLfloat* values);
	void VertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr);
	void Viewport(GLint x, GLint y, GLsizei width, GLsizei height);
	void BlitFramebufferNV(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
	void BlitFramebufferANGLE(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
		GLbitfield mask, GLenum filter);
	void TexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth,
		GLint border, GLenum format, GLenum type, const GLvoid* pixels);
	void TexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
	void CopyTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
	void CompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
	void CompressedTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
	void FramebufferTexture3DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
	void EGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image);
	void EGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image);
	GLboolean IsRenderbufferOES(GLuint renderbuffer);
	void BindRenderbufferOES(GLenum target, GLuint renderbuffer);
	void DeleteRenderbuffersOES(GLsizei n, const GLuint* renderbuffers);
	void GenRenderbuffersOES(GLsizei n, GLuint* renderbuffers);
	void RenderbufferStorageOES(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
	void GetRenderbufferParameterivOES(GLenum target, GLenum pname, GLint* params);
	GLboolean IsFramebufferOES(GLuint framebuffer);
	void BindFramebufferOES(GLenum target, GLuint framebuffer);
	void DeleteFramebuffersOES(GLsizei n, const GLuint* framebuffers);
	void GenFramebuffersOES(GLsizei n, GLuint* framebuffers);
	GLenum CheckFramebufferStatusOES(GLenum target);
	void FramebufferRenderbufferOES(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
	void FramebufferTexture2DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
	void GetFramebufferAttachmentParameterivOES(GLenum target, GLenum attachment, GLenum pname, GLint* params);
	void GenerateMipmapOES(GLenum target);
	void DrawBuffersEXT(GLsizei n, const GLenum *bufs);
	void ReadBuffer(GLenum src);
	void DrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
	void TexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *data);
	void TexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
	void CopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
	void CompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
	void CompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
	void GenQueries(GLsizei n, GLuint *ids);
	void DeleteQueries(GLsizei n, const GLuint *ids);
	GLboolean IsQuery(GLuint id);
	void BeginQuery(GLenum target, GLuint id);
	void EndQuery(GLenum target);
	void GetQueryiv(GLenum target, GLenum pname, GLint *params);
	void GetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params);
	GLboolean UnmapBuffer(GLenum target);
	void GetBufferPointerv(GLenum target, GLenum pname, void **params);
	void DrawBuffers(GLsizei n, const GLenum *bufs);
	void UniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
	void UniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
	void UniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
	void UniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
	void UniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
	void UniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
	void BlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
	void FramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
	void *MapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
	void FlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length);
	void BindVertexArray(GLuint array);
	void BindVertexArrayOES(GLuint array);
	void DeleteVertexArrays(GLsizei n, const GLuint *arrays);
	void DeleteVertexArraysOES(GLsizei n, const GLuint *arrays);
	void GenVertexArrays(GLsizei n, GLuint *arrays);
	void GenVertexArraysOES(GLsizei n, GLuint *arrays);
	GLboolean IsVertexArray(GLuint array);
	GLboolean IsVertexArrayOES(GLuint array);
	void GetIntegeri_v(GLenum target, GLuint index, GLint *data);
	void BeginTransformFeedback(GLenum primitiveMode);
	void EndTransformFeedback(void);
	void BindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
	void BindBufferBase(GLenum target, GLuint index, GLuint buffer);
	void TransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode);
	void GetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
	void VertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
	void GetVertexAttribIiv(GLuint index, GLenum pname, GLint *params);
	void GetVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params);
	void VertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w);
	void VertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
	void VertexAttribI4iv(GLuint index, const GLint *v);
	void VertexAttribI4uiv(GLuint index, const GLuint *v);
	void GetUniformuiv(GLuint program, GLint location, GLuint *params);
	GLint GetFragDataLocation(GLuint program, const GLchar *name);
	void Uniform1ui(GLint location, GLuint v0);
	void Uniform2ui(GLint location, GLuint v0, GLuint v1);
	void Uniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2);
	void Uniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
	void Uniform1uiv(GLint location, GLsizei count, const GLuint *value);
	void Uniform2uiv(GLint location, GLsizei count, const GLuint *value);
	void Uniform3uiv(GLint location, GLsizei count, const GLuint *value);
	void Uniform4uiv(GLint location, GLsizei count, const GLuint *value);
	void ClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint *value);
	void ClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint *value);
	void ClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat *value);
	void ClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
	const GLubyte *GetStringi(GLenum name, GLuint index);
	void CopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
	void GetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices);
	void GetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
	GLuint GetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName);
	void GetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
	void GetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
	void UniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
	void DrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instanceCount);
	void DrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instanceCount);
	GLsync FenceSync(GLenum condition, GLbitfield flags);
	GLboolean IsSync(GLsync sync);
	void DeleteSync(GLsync sync);
	GLenum ClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
	void WaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
	void GetInteger64v(GLenum pname, GLint64 *data);
	void GetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
	void GetInteger64i_v(GLenum target, GLuint index, GLint64 *data);
	void GetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params);
	void GenSamplers(GLsizei count, GLuint *samplers);
	void DeleteSamplers(GLsizei count, const GLuint *samplers);
	GLboolean IsSampler(GLuint sampler);
	void BindSampler(GLuint unit, GLuint sampler);
	void SamplerParameteri(GLuint sampler, GLenum pname, GLint param);
	void SamplerParameteriv(GLuint sampler, GLenum pname, const GLint *param);
	void SamplerParameterf(GLuint sampler, GLenum pname, GLfloat param);
	void SamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *param);
	void GetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params);
	void GetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params);
	void VertexAttribDivisor(GLuint index, GLuint divisor);
	void BindTransformFeedback(GLenum target, GLuint id);
	void DeleteTransformFeedbacks(GLsizei n, const GLuint *ids);
	void GenTransformFeedbacks(GLsizei n, GLuint *ids);
	GLboolean IsTransformFeedback(GLuint id);
	void PauseTransformFeedback(void);
	void ResumeTransformFeedback(void);
	void GetProgramBinary(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary);
	void ProgramBinary(GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
	void ProgramParameteri(GLuint program, GLenum pname, GLint value);
	void InvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments);
	void InvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
	void TexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
	void TexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
	void GetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
}

#endif   // LIBGLESV2_ENTRY_POINTS_H_