func Enable(cap uint32) {
	ccap, _ := (C.GLenum)(cap), cgoAllocsUnknown
	C.glEnable(ccap)
}
Enable function as declared in https://www.khronos.org/opengles/sdk/docs/man3/html/glEnable.xhtml
package gles3
import "C"
import "unsafe"
func ActiveTexture(texture uint32) {
	ctexture, _ := (C.GLenum)(texture), cgoAllocsUnknown
	C.glActiveTexture(ctexture)
}
func AttachShader(program uint32, shader uint32) {
	cprogram, _ := (C.GLuint)(program), cgoAllocsUnknown
	cshader, _ := (C.GLuint)(shader), cgoAllocsUnknown
	C.glAttachShader(cprogram, cshader)
}
func BindAttribLocation(program uint32, index uint32, name string) {
	cprogram, _ := (C.GLuint)(program), cgoAllocsUnknown
	cindex, _ := (C.GLuint)(index), cgoAllocsUnknown
	cname, _ := unpackPCharString(name)
	C.glBindAttribLocation(cprogram, cindex, cname)
}
func BindBuffer(target uint32, buffer uint32) {
	ctarget, _ := (C.GLenum)(target), cgoAllocsUnknown
	cbuffer, _ := (C.GLuint)(buffer), cgoAllocsUnknown
	C.glBindBuffer(ctarget, cbuffer)
}
func BindFramebuffer(target uint32, framebuffer uint32) {
	ctarget, _ := (C.GLenum)(target), cgoAllocsUnknown
	cframebuffer, _ := (C.GLuint)(framebuffer), cgoAllocsUnknown
	C.glBindFramebuffer(ctarget, cframebuffer)
}
func BindRenderbuffer(target uint32, renderbuffer uint32) {
	ctarget, _ := (C.GLenum)(target), cgoAllocsUnknown
	crenderbuffer, _ := (C.GLuint)(renderbuffer), cgoAllocsUnknown
	C.glBindRenderbuffer(ctarget, crenderbuffer)
}
func BindTexture(target uint32, texture uint32) {
	ctarget, _ := (C.GLenum)(target), cgoAllocsUnknown
	ctexture, _ := (C.GLuint)(texture), cgoAllocsUnknown
	C.glBindTexture(ctarget, ctexture)
}
func BlendColor(red float32, green float32, blue float32, alpha float32) {
	cred, _ := (C.GLfloat)(red), cgoAllocsUnknown
	cgreen, _ := (C.GLfloat)(green), cgoAllocsUnknown
	cblue, _ := (C.GLfloat)(blue), cgoAllocsUnknown
	calpha, _ := (C.GLfloat)(alpha), cgoAllocsUnknown
	C.glBlendColor(cred, cgreen, cblue, calpha)
}
func BlendEquation(mode uint32) {
	cmode, _ := (C.GLenum)(mode), cgoAllocsUnknown
	C.glBlendEquation(cmode)
}
func BlendEquationSeparate(modeRGB uint32, modeAlpha uint32) {
	cmodeRGB, _ := (C.GLenum)(modeRGB), cgoAllocsUnknown
	cmodeAlpha, _ := (C.GLenum)(modeAlpha), cgoAllocsUnknown
	C.glBlendEquationSeparate(cmodeRGB, cmodeAlpha)
}
func BlendFunc(sfactor uint32, dfactor uint32) {
	csfactor, _ := (C.GLenum)(sfactor), cgoAllocsUnknown
	cdfactor, _ := (C.GLenum)(dfactor), cgoAllocsUnknown
	C.glBlendFunc(csfactor, cdfactor)
}
func BlendFuncSeparate(sfactorRGB uint32, dfactorRGB uint32, sfactorAlpha uint32, dfactorAlpha uint32) {
	csfactorRGB, _ := (C.GLenum)(sfactorRGB), cgoAllocsUnknown
	cdfactorRGB, _ := (C.GLenum)(dfactorRGB), cgoAllocsUnknown
	csfactorAlpha, _ := (C.GLenum)(sfactorAlpha), cgoAllocsUnknown
	cdfactorAlpha, _ := (C.GLenum)(dfactorAlpha), cgoAllocsUnknown
	C.glBlendFuncSeparate(csfactorRGB, cdfactorRGB, csfactorAlpha, cdfactorAlpha)
}
func BufferData(target uint32, size int, data unsafe.Pointer, usage uint32) {
	ctarget, _ := (C.GLenum)(target), cgoAllocsUnknown
	csize, _ := (C.GLsizeiptr)(size), cgoAllocsUnknown
	cdata, _ := data, cgoAllocsUnknown
	cusage, _ := (C.GLenum)(usage), cgoAllocsUnknown
	C.glBufferData(ctarget, csize, cdata, cusage)
}
func BufferSubData(target uint32, offset int, size int, data unsafe.Pointer) {
	ctarget, _ := (C.GLenum)(target), cgoAllocsUnknown
	coffset, _ := (C.GLintptr)(offset), cgoAllocsUnknown
	csize, _ := (C.GLsizeiptr)(size), cgoAllocsUnknown
	cdata, _ := data, cgoAllocsUnknown
	C.glBufferSubData(ctarget, coffset, csize, cdata)
}
func CheckFramebufferStatus(target uint32) uint32 {
	ctarget, _ := (C.GLenum)(target), cgoAllocsUnknown
	__ret := C.glCheckFramebufferStatus(ctarget)
	__v := (uint32)(__ret)
	return __v
}
func Clear(mask uint32) {
	cmask, _ := (C.GLbitfield)(mask), cgoAllocsUnknown
	C.glClear(cmask)
}
func ClearColor(red float32, green float32, blue float32, alpha float32) {
	cred, _ := (C.GLfloat)(red), cgoAllocsUnknown
	cgreen, _ := (C.GLfloat)(green), cgoAllocsUnknown
	cblue, _ := (C.GLfloat)(blue), cgoAllocsUnknown
	calpha, _ := (C.GLfloat)(alpha), cgoAllocsUnknown
	C.glClearColor(cred, cgreen, cblue, calpha)
}
func ClearDepthf(d float32) {
	cd, _ := (C.GLfloat)(d), cgoAllocsUnknown
	C.glClearDepthf(cd)
}
func ClearStencil(s int32) {
	cs, _ := (C.GLint)(s), cgoAllocsUnknown
	C.glClearStencil(cs)
}
func ColorMask(red byte, green byte, blue byte, alpha byte) {
	cred, _ := (C.GLboolean)(red), cgoAllocsUnknown
	cgreen, _ := (C.GLboolean)(green), cgoAllocsUnknown
	cblue, _ := (C.GLboolean)(blue), cgoAllocsUnknown
	calpha, _ := (C.GLboolean)(alpha), cgoAllocsUnknown
	C.glColorMask(cred, cgreen, cblue, calpha)
}
func CompileShader(shader uint32) {
	cshader, _ := (C.GLuint)(shader), cgoAllocsUnknown
	C.glCompileShader(cshader)
}
func CompressedTexImage2D(target uint32, level int32, internalformat uint32, width int32, height int32, border int32, imageSize int32, data unsafe.Pointer) {
	ctarget, _ := (C.GLenum)(target), cgoAllocsUnknown
	clevel, _ := (C.GLint)(level), cgoAllocsUnknown
	cinternalformat, _ := (C.GLenum)(internalformat), cgoAllocsUnknown
	cwidth, _ := (C.GLsizei)(width), cgoAllocsUnknown
	cheight, _ := (C.GLsizei)(height), cgoAllocsUnknown
	cborder, _ := (C.GLint)(border), cgoAllocsUnknown
	cimageSize, _ := (C.GLsizei)(imageSize), cgoAllocsUnknown
	cdata, _ := data, cgoAllocsUnknown
	C.glCompressedTexImage2D(ctarget, clevel, cinternalformat, cwidth, cheight, cborder, cimageSize, cdata)
}
func CompressedTexSubImage2D(target uint32, level int32, xoffset int32, yoffset int32, width int32, height int32, format uint32, imageSize int32, data unsafe.Pointer) {
	ctarget, _ := (C.GLenum)(target), cgoAllocsUnknown
	clevel, _ := (C.GLint)(level), cgoAllocsUnknown
	cxoffset, _ := (C.GLint)(xoffset), cgoAllocsUnknown
	cyoffset, _ := (C.GLint)(yoffset), cgoAllocsUnknown
	cwidth, _ := (C.GLsizei)(width), cgoAllocsUnknown
	cheight, _ := (C.GLsizei)(height), cgoAllocsUnknown
	cformat, _ := (C.GLenum)(format), cgoAllocsUnknown
	cimageSize, _ := (C.GLsizei)(imageSize), cgoAllocsUnknown
	cdata, _ := data, cgoAllocsUnknown
	C.glCompressedTexSubImage2D(ctarget, clevel, cxoffset, cyoffset, cwidth, cheight, cformat, cimageSize, cdata)
}
func CopyTexImage2D(target uint32, level int32, internalformat uint32, x int32, y int32, width int32, height int32, border int32) {
	ctarget, _ := (C.GLenum)(target), cgoAllocsUnknown
	clevel, _ := (C.GLint)(level), cgoAllocsUnknown
	cinternalformat, _ := (C.GLenum)(internalformat), cgoAllocsUnknown
	cx, _ := (C.GLint)(x), cgoAllocsUnknown
	cy, _ := (C.GLint)(y), cgoAllocsUnknown
	cwidth, _ := (C.GLsizei)(width), cgoAllocsUnknown
	cheight, _ := (C.GLsizei)(height), cgoAllocsUnknown
	cborder, _ := (C.GLint)(border), cgoAllocsUnknown
	C.glCopyTexImage2D(ctarget, clevel, cinternalformat, cx, cy, cwidth, cheight, cborder)
}
func CopyTexSubImage2D(target uint32, level int32, xoffset int32, yoffset int32, x int32, y int32, width int32, height int32) {
	ctarget, _ := (C.GLenum)(target), cgoAllocsUnknown
	clevel, _ := (C.GLint)(level), cgoAllocsUnknown
	cxoffset, _ := (C.GLint)(xoffset), cgoAllocsUnknown
	cyoffset, _ := (C.GLint)(yoffset), cgoAllocsUnknown
	cx, _ := (C.GLint)(x), cgoAllocsUnknown
	cy, _ := (C.GLint)(y), cgoAllocsUnknown
	cwidth, _ := (C.GLsizei)(width), cgoAllocsUnknown
	cheight, _ := (C.GLsizei)(height), cgoAllocsUnknown
	C.glCopyTexSubImage2D(ctarget, clevel, cxoffset, cyoffset, cx, cy, cwidth, cheight)
}
func CreateProgram() uint32 {
	__ret := C.glCreateProgram()
	__v := (uint32)(__ret)
	return __v
}
func CreateShader(kind uint32) uint32 {
	ckind, _ := (C.GLenum)(kind), cgoAllocsUnknown
	__ret := C.glCreateShader(ckind)
	__v := (uint32)(__ret)
	return __v
}
func CullFace(mode uint32) {
	cmode, _ := (C.GLenum)(mode), cgoAllocsUnknown
	C.glCullFace(cmode)
}
func DeleteBuffers(n int32, buffers []uint32) {
	cn, _ := (C.GLsizei)(n), cgoAllocsUnknown
	cbuffers, _ := (*C.GLuint)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&buffers)).Data)), cgoAllocsUnknown
	C.glDeleteBuffers(cn, cbuffers)
}
func DeleteFramebuffers(n int32, framebuffers []uint32) {
	cn, _ := (C.GLsizei)(n), cgoAllocsUnknown
	cframebuffers, _ := (*C.GLuint)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&framebuffers)).Data)), cgoAllocsUnknown
	C.glDeleteFramebuffers(cn, cframebuffers)
}
func DeleteProgram(program uint32) {
	cprogram, _ := (C.GLuint)(program), cgoAllocsUnknown
	C.glDeleteProgram(cprogram)
}
func DeleteRenderbuffers(n int32, renderbuffers []uint32) {
	cn, _ := (C.GLsizei)(n), cgoAllocsUnknown
	crenderbuffers, _ := (*C.GLuint)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&renderbuffers)).Data)), cgoAllocsUnknown
	C.glDeleteRenderbuffers(cn, crenderbuffers)
}
func DeleteShader(shader uint32) {
	cshader, _ := (C.GLuint)(shader), cgoAllocsUnknown
	C.glDeleteShader(cshader)
}
func DeleteTextures(n int32, textures []uint32) {
	cn, _ := (C.GLsizei)(n), cgoAllocsUnknown
	ctextures, _ := (*C.GLuint)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&textures)).Data)), cgoAllocsUnknown
	C.glDeleteTextures(cn, ctextures)
}
func DepthFunc(_func uint32) {
	c_func, _ := (C.GLenum)(_func), cgoAllocsUnknown
	C.glDepthFunc(c_func)
}
func DepthMask(flag byte) {
	cflag, _ := (C.GLboolean)(flag), cgoAllocsUnknown
	C.glDepthMask(cflag)
}
func DepthRangef(n float32, f float32) {
	cn, _ := (C.GLfloat)(n), cgoAllocsUnknown
	cf, _ := (C.GLfloat)(f), cgoAllocsUnknown
	C.glDepthRangef(cn, cf)
}
func DetachShader(program uint32, shader uint32) {
	cprogram, _ := (C.GLuint)(program), cgoAllocsUnknown
	cshader, _ := (C.GLuint)(shader), cgoAllocsUnknown
	C.glDetachShader(cprogram, cshader)
}
func Disable(cap uint32) {
	ccap, _ := (C.GLenum)(cap), cgoAllocsUnknown
	C.glDisable(ccap)
}
func DisableVertexAttribArray(index uint32) {
	cindex, _ := (C.GLuint)(index), cgoAllocsUnknown
	C.glDisableVertexAttribArray(cindex)
}
func DrawArrays(mode uint32, first int32, count int32) {
	cmode, _ := (C.GLenum)(mode), cgoAllocsUnknown
	cfirst, _ := (C.GLint)(first), cgoAllocsUnknown
	ccount, _ := (C.GLsizei)(count), cgoAllocsUnknown
	C.glDrawArrays(cmode, cfirst, ccount)
}
func DrawElements(mode uint32, count int32, kind uint32, indices unsafe.Pointer) {
	cmode, _ := (C.GLenum)(mode), cgoAllocsUnknown
	ccount, _ := (C.GLsizei)(count), cgoAllocsUnknown
	ckind, _ := (C.GLenum)(kind), cgoAllocsUnknown
	cindices, _ := indices, cgoAllocsUnknown
	C.glDrawElements(cmode, ccount, ckind, cindices)
}