module Graphics.OpenGLES.Base (
GL,
GLName,
GLboolean,
GLbyte,
GLubyte,
GLchar,
GLshort,
GLushort,
GLint,
GLuint,
GLfixed,
GLsizei,
GLenum,
GLintptr,
GLsizeiptr,
GLbitfield,
GLfloat,
GLclampf,
GLint64,
GLuint64,
GLsync,
GLhalf,
--isGLProcAvailable,
glActiveTexture,
glAttachShader,
glBindAttribLocation,
glBindBuffer,
glBindFramebuffer,
glBindRenderbuffer,
glBindTexture,
glBlendColor,
glBlendEquation,
glBlendEquationSeparate,
glBlendFunc,
glBlendFuncSeparate,
glBufferData,
glBufferSubData,
glCheckFramebufferStatus,
glClear,
glClearColor,
glClearDepthf,
glClearStencil,
glColorMask,
glCompileShader,
glCompressedTexImage2D,
glCompressedTexSubImage2D,
glCopyTexImage2D,
glCopyTexSubImage2D,
glCreateProgram,
glCreateShader,
glCullFace,
glDeleteBuffers,
glDeleteFramebuffers,
glDeleteProgram,
glDeleteRenderbuffers,
glDeleteShader,
glDeleteTextures,
glDepthFunc,
glDepthMask,
glDepthRangef,
glDetachShader,
glDisable,
glDisableVertexAttribArray,
glDrawArrays,
glDrawElements,
glEnable,
glEnableVertexAttribArray,
glFinish,
glFlush,
glFramebufferRenderbuffer,
glFramebufferTexture2D,
glFrontFace,
glGenBuffers,
glGenerateMipmap,
glGenFramebuffers,
glGenRenderbuffers,
glGenTextures,
glGetActiveAttrib,
glGetActiveUniform,
glGetAttachedShaders,
glGetAttribLocation,
glGetBooleanv,
glGetBufferParameteriv,
glGetError,
glGetFloatv,
glGetFramebufferAttachmentParameteriv,
glGetIntegerv,
glGetProgramiv,
glGetProgramInfoLog,
glGetRenderbufferParameteriv,
glGetShaderiv,
glGetShaderInfoLog,
glGetShaderPrecisionFormat,
glGetShaderSource,
glGetString,
glGetTexParameterfv,
glGetTexParameteriv,
glGetUniformfv,
glGetUniformiv,
glGetUniformLocation,
glGetVertexAttribfv,
glGetVertexAttribiv,
glGetVertexAttribPointerv,
glHint,
glIsBuffer,
glIsEnabled,
glIsFramebuffer,
glIsProgram,
glIsRenderbuffer,
glIsShader,
glIsTexture,
glLineWidth,
glLinkProgram,
glPixelStorei,
glPolygonOffset,
glReadPixels,
glReleaseShaderCompiler,
glRenderbufferStorage,
glSampleCoverage,
glScissor,
glShaderBinary,
glShaderSource,
glStencilFunc,
glStencilFuncSeparate,
glStencilMask,
glStencilMaskSeparate,
glStencilOp,
glStencilOpSeparate,
glTexImage2D,
glTexParameterf,
glTexParameterfv,
glTexParameteri,
glTexParameteriv,
glTexSubImage2D,
glUniform1f,
glUniform1fv,
glUniform1i,
glUniform1iv,
glUniform2f,
glUniform2fv,
glUniform2i,
glUniform2iv,
glUniform3f,
glUniform3fv,
glUniform3i,
glUniform3iv,
glUniform4f,
glUniform4fv,
glUniform4i,
glUniform4iv,
glUniformMatrix2fv,
glUniformMatrix3fv,
glUniformMatrix4fv,
glUseProgram,
glValidateProgram,
glVertexAttrib1f,
glVertexAttrib1fv,
glVertexAttrib2f,
glVertexAttrib2fv,
glVertexAttrib3f,
glVertexAttrib3fv,
glVertexAttrib4f,
glVertexAttrib4fv,
glVertexAttribPointer,
glViewport,
glReadBuffer,
glDrawRangeElements,
glTexImage3D,
glTexSubImage3D,
glCopyTexSubImage3D,
glCompressedTexImage3D,
glCompressedTexSubImage3D,
glGenQueries,
glDeleteQueries,
glIsQuery,
glBeginQuery,
glEndQuery,
glGetQueryiv,
glGetQueryObjectuiv,
glUnmapBuffer,
glGetBufferPointerv,
glDrawBuffers,
glUniformMatrix2x3fv,
glUniformMatrix3x2fv,
glUniformMatrix2x4fv,
glUniformMatrix4x2fv,
glUniformMatrix3x4fv,
glUniformMatrix4x3fv,
glBlitFramebuffer,
glRenderbufferStorageMultisample,
glFramebufferTextureLayer,
glMapBufferRange,
glFlushMappedBufferRange,
glBindVertexArray,
glDeleteVertexArrays,
glGenVertexArrays,
glIsVertexArray,
glGetIntegeri_v,
glBeginTransformFeedback,
glEndTransformFeedback,
glBindBufferRange,
glBindBufferBase,
glTransformFeedbackVaryings,
glGetTransformFeedbackVarying,
glVertexAttribIPointer,
glGetVertexAttribIiv,
glGetVertexAttribIuiv,
glVertexAttribI4i,
glVertexAttribI4ui,
glVertexAttribI4iv,
glVertexAttribI4uiv,
glGetUniformuiv,
glGetFragDataLocation,
glUniform1ui,
glUniform2ui,
glUniform3ui,
glUniform4ui,
glUniform1uiv,
glUniform2uiv,
glUniform3uiv,
glUniform4uiv,
glClearBufferiv,
glClearBufferuiv,
glClearBufferfv,
glClearBufferfi,
glGetStringi,
glCopyBufferSubData,
glGetUniformIndices,
glGetActiveUniformsiv,
glGetUniformBlockIndex,
glGetActiveUniformBlockiv,
glGetActiveUniformBlockName,
glUniformBlockBinding,
glDrawArraysInstanced,
glDrawElementsInstanced,
glFenceSync,
glIsSync,
glDeleteSync,
glClientWaitSync,
glWaitSync,
glGetInteger64v,
glGetSynciv,
glGetInteger64i_v,
glGetBufferParameteri64v,
glGenSamplers,
glDeleteSamplers,
glIsSampler,
glBindSampler,
glSamplerParameteri,
glSamplerParameteriv,
glSamplerParameterf,
glSamplerParameterfv,
glGetSamplerParameteriv,
glGetSamplerParameterfv,
glVertexAttribDivisor,
glBindTransformFeedback,
glDeleteTransformFeedbacks,
glGenTransformFeedbacks,
glIsTransformFeedback,
glPauseTransformFeedback,
glResumeTransformFeedback,
glGetProgramBinary,
glProgramBinary,
glProgramParameteri,
glInvalidateFramebuffer,
glInvalidateSubFramebuffer,
glTexStorage2D,
glTexStorage3D,
glGetInternalformativ,
glGenVertexArraysOES,
glBindVertexArrayOES,
glDeleteVertexArraysOES,
glIsVertexArrayOES,
glDrawTexiOES,
glMultiDrawArraysEXT,
glMultiDrawElementsEXT,
glDrawRangeElementsEXT,
glDispatchCompute,
glDispatchComputeIndirect,
glDrawArraysIndirect,
glDrawElementsIndirect,
glFramebufferParameteri,
glGetFramebufferParameteriv,
glGetProgramInterfaceiv,
glGetProgramResourceIndex,
glGetProgramResourceName,
glGetProgramResourceiv,
glGetProgramResourceLocation,
glUseProgramStages,
glActiveShaderProgram,
glCreateShaderProgramv,
glBindProgramPipeline,
glDeleteProgramPipelines,
glGenProgramPipelines,
glIsProgramPipeline,
glGetProgramPipelineiv,
glProgramUniform1i,
glProgramUniform2i,
glProgramUniform3i,
glProgramUniform4i,
glProgramUniform1ui,
glProgramUniform2ui,
glProgramUniform3ui,
glProgramUniform4ui,
glProgramUniform1f,
glProgramUniform2f,
glProgramUniform3f,
glProgramUniform4f,
glProgramUniform1iv,
glProgramUniform2iv,
glProgramUniform3iv,
glProgramUniform4iv,
glProgramUniform1uiv,
glProgramUniform2uiv,
glProgramUniform3uiv,
glProgramUniform4uiv,
glProgramUniform1fv,
glProgramUniform2fv,
glProgramUniform3fv,
glProgramUniform4fv,
glProgramUniformMatrix2fv,
glProgramUniformMatrix3fv,
glProgramUniformMatrix4fv,
glProgramUniformMatrix2x3fv,
glProgramUniformMatrix3x2fv,
glProgramUniformMatrix2x4fv,
glProgramUniformMatrix4x2fv,
glProgramUniformMatrix3x4fv,
glProgramUniformMatrix4x3fv,
glValidateProgramPipeline,
glGetProgramPipelineInfoLog,
glBindImageTexture,
glGetBooleani_v,
glMemoryBarrier,
glMemoryBarrierByRegion,
glTexStorage2DMultisample,
glGetMultisamplefv,
glSampleMaski,
glGetTexLevelParameteriv,
glGetTexLevelParameterfv,
glBindVertexBuffer,
glVertexAttribFormat,
glVertexAttribIFormat,
glVertexAttribBinding,
glVertexBindingDivisor
) where
import Foreign
import Foreign.C.String
import Graphics.OpenGLES.Base.Proc (glGetProcAddress)
type GL = IO
type GLName = String
type GLboolean = Word8
type GLbyte = Int8
type GLubyte = Word8
type GLchar = Int8
type GLshort = Int16
type GLushort = Word16
type GLint = Int32
type GLuint = Word32
type GLfixed = Int32
type GLsizei = Int32
type GLenum = Word32
type GLintptr = Int
type GLsizeiptr = Int
type GLbitfield = Word32
type GLfloat = Float
type GLclampf = Float
type GLint64 = Int64
type GLuint64 = Word64
type GLsync = Ptr ()
type GLhalf = Word16
#define STATIC(_procname, _typ) \
foreign import ccall unsafe "_procname" _procname :: _typ; \
#define DYNAMIC(_procname, _typ) \
foreign import ccall unsafe "dynamic" unwrap_/**/_procname :: FunPtr (_typ) -> _typ; \
_procname :: _typ; \
_procname = unwrap_/**/_procname (glGetProcAddress "_procname"); \
#if defined(STATIC_ES2)
#define GLES2 STATIC
#else
#define GLES2 DYNAMIC
#endif
#if defined(STATIC_ES3)
#define GLES3 STATIC
#else
#define GLES3 DYNAMIC
#endif
#define GLES31 DYNAMIC
#define GL_EXT DYNAMIC
GLES2(glActiveTexture, GLenum -> GL ())
GLES2(glAttachShader, GLuint -> GLuint -> GL ())
GLES2(glBindAttribLocation, GLuint -> GLuint -> CString -> GL ())
GLES2(glBindBuffer, GLenum -> GLuint -> GL ())
GLES2(glBindFramebuffer, GLenum -> GLuint -> GL ())
GLES2(glBindRenderbuffer, GLenum -> GLuint -> GL ())
GLES2(glBindTexture, GLenum -> GLuint -> GL ())
GLES2(glBlendColor, GLclampf -> GLclampf -> GLclampf -> GLclampf -> GL ())
GLES2(glBlendEquation, GLenum -> GL ())
GLES2(glBlendEquationSeparate, GLenum -> GLenum -> GL ())
GLES2(glBlendFunc, GLenum -> GLenum -> GL ())
GLES2(glBlendFuncSeparate, GLenum -> GLenum -> GLenum -> GLenum -> GL ())
GLES2(glBufferData, GLenum -> GLsizeiptr -> Ptr () -> GLenum -> GL ())
GLES2(glBufferSubData, GLenum -> GLintptr -> GLsizeiptr -> Ptr () -> GL ())
GLES2(glCheckFramebufferStatus, GLenum -> GL GLenum)
GLES2(glClear, GLbitfield -> GL ())
GLES2(glClearColor, GLclampf -> GLclampf -> GLclampf -> GLclampf -> GL ())
GLES2(glClearDepthf, GLclampf -> GL ())
GLES2(glClearStencil, GLint -> GL ())
GLES2(glColorMask, GLboolean -> GLboolean -> GLboolean -> GLboolean -> GL ())
GLES2(glCompileShader, GLuint -> GL ())
GLES2(glCompressedTexImage2D, GLenum -> GLint -> GLenum -> GLuint -> GLuint -> GLint -> GLsizei -> CString -> GL ())
GLES2(glCompressedTexSubImage2D, GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> GL ())
GLES2(glCopyTexImage2D, GLenum -> GLint -> GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GLint -> GL ())
GLES2(glCopyTexSubImage2D, GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GL ())
GLES2(glCreateProgram, GL GLuint)
GLES2(glCreateShader, GLenum -> GL GLuint)
GLES2(glCullFace, GLenum -> GL ())
GLES2(glDeleteBuffers, GLsizei -> Ptr GLuint -> GL ())
GLES2(glDeleteFramebuffers, GLsizei -> Ptr GLuint -> GL ())
GLES2(glDeleteProgram, GLuint -> GL ())
GLES2(glDeleteRenderbuffers, GLsizei -> Ptr GLuint -> GL ())
GLES2(glDeleteShader, GLuint -> GL ())
GLES2(glDeleteTextures, GLsizei -> Ptr GLuint -> GL ())
GLES2(glDepthFunc, GLenum -> GL ())
GLES2(glDepthMask, GLboolean -> GL ())
GLES2(glDepthRangef, GLclampf -> GLclampf -> GL ())
GLES2(glDetachShader, GLuint -> GLuint -> GL ())
GLES2(glDisable, GLenum -> GL ())
GLES2(glDisableVertexAttribArray, GLuint -> GL ())
GLES2(glDrawArrays, GLenum -> GLint -> GLsizei -> GL ())
GLES2(glDrawElements, GLenum -> GLsizei -> GLenum -> Ptr () -> GL ())
GLES2(glEnable, GLenum -> GL ())
GLES2(glEnableVertexAttribArray, GLuint -> GL ())
GLES2(glFinish, GL ())
GLES2(glFlush, GL ())
GLES2(glFramebufferRenderbuffer, GLenum -> GLenum -> GLenum -> GLuint -> GL ())
GLES2(glFramebufferTexture2D, GLenum -> GLenum -> GLenum -> GLuint -> GLint -> GL ())
GLES2(glFrontFace, GLenum -> GL ())
GLES2(glGenBuffers, GLsizei -> Ptr GLuint -> GL ())
GLES2(glGenerateMipmap, GLenum -> GL ())
GLES2(glGenFramebuffers, GLsizei -> Ptr GLuint -> GL ())
GLES2(glGenRenderbuffers, GLsizei -> Ptr GLuint -> GL ())
GLES2(glGenTextures, GLsizei -> Ptr GLuint -> GL ())
GLES2(glGetActiveAttrib, GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> CString -> GL ())
GLES2(glGetActiveUniform, GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLint -> Ptr GLenum -> CString -> GL ())
GLES2(glGetAttachedShaders, GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLuint -> GL ())
GLES2(glGetAttribLocation, GLuint -> CString -> GL GLint)
GLES2(glGetBooleanv, GLenum -> Ptr GLboolean -> GL ())
GLES2(glGetBufferParameteriv, GLenum -> GLenum -> Ptr GLint -> GL ())
GLES2(glGetError, GL GLenum)
GLES2(glGetFloatv, GLenum -> Ptr GLfloat -> GL ())
GLES2(glGetFramebufferAttachmentParameteriv, GLenum -> GLenum -> GLenum -> Ptr GLint -> GL ())
GLES2(glGetIntegerv, GLenum -> Ptr GLint -> GL ())
GLES2(glGetProgramiv, GLuint -> GLenum -> Ptr GLint -> GL ())
GLES2(glGetProgramInfoLog, GLuint -> GLsizei -> Ptr GLsizei -> CString -> GL ())
GLES2(glGetRenderbufferParameteriv, GLenum -> GLenum -> Ptr GLint -> GL ())
GLES2(glGetShaderiv, GLuint -> GLenum -> Ptr GLint -> GL ())
GLES2(glGetShaderInfoLog, GLuint -> GLsizei -> Ptr GLsizei -> CString -> GL ())
GLES2(glGetShaderPrecisionFormat, GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> GL ())
GLES2(glGetShaderSource, GLuint -> GLsizei -> Ptr GLsizei -> CString -> GL ())
GLES2(glGetString, GLenum -> GL CString)
GLES2(glGetTexParameterfv, GLenum -> GLenum -> Ptr GLfloat -> GL ())
GLES2(glGetTexParameteriv, GLenum -> GLenum -> Ptr GLint -> GL ())
GLES2(glGetUniformfv, GLuint -> GLint -> Ptr GLfloat -> GL ())
GLES2(glGetUniformiv, GLuint -> GLint -> Ptr GLint -> GL ())
GLES2(glGetUniformLocation, GLuint -> CString -> GL GLint)
GLES2(glGetVertexAttribfv, GLuint -> GLenum -> Ptr GLfloat -> GL ())
GLES2(glGetVertexAttribiv, GLuint -> GLenum -> Ptr GLint -> GL ())
GLES2(glGetVertexAttribPointerv, GLuint -> GLenum -> Ptr (Ptr ()) -> GL ())
GLES2(glHint, GLenum -> GLenum -> GL ())
GLES2(glIsBuffer, GLuint -> GL GLboolean)
GLES2(glIsEnabled, GLenum -> GL GLboolean)
GLES2(glIsFramebuffer, GLuint -> GL GLboolean)
GLES2(glIsProgram, GLuint -> GL GLboolean)
GLES2(glIsRenderbuffer, GLuint -> GL GLboolean)
GLES2(glIsShader, GLuint -> GL GLboolean)
GLES2(glIsTexture, GLuint -> GL GLboolean)
GLES2(glLineWidth, GLfloat -> GL ())
GLES2(glLinkProgram, GLuint -> GL ())
GLES2(glPixelStorei, GLenum -> GLint -> GL ())
GLES2(glPolygonOffset, GLfloat -> GLfloat -> GL ())
GLES2(glReadPixels, GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> GL ())
GLES2(glReleaseShaderCompiler, GL ())
GLES2(glRenderbufferStorage, GLenum -> GLenum -> GLsizei -> GLsizei -> GL ())
GLES2(glSampleCoverage, GLclampf -> GLboolean -> GL ())
GLES2(glScissor, GLint -> GLint -> GLsizei -> GLsizei -> GL ())
GLES2(glShaderBinary, GLsizei -> Ptr GLuint -> GLenum -> Ptr () -> GLsizei -> GL ())
GLES2(glShaderSource, GLuint -> GLsizei -> Ptr CString -> Ptr GLint -> GL ())
GLES2(glStencilFunc, GLenum -> GLint -> GLuint -> GL ())
GLES2(glStencilFuncSeparate, GLenum -> GLenum -> GLint -> GLuint -> GL ())
GLES2(glStencilMask, GLuint -> GL ())
GLES2(glStencilMaskSeparate, GLenum -> GLuint -> GL ())
GLES2(glStencilOp, GLenum -> GLenum -> GLenum -> GL ())
GLES2(glStencilOpSeparate, GLenum -> GLenum -> GLenum -> GLenum -> GL ())
GLES2(glTexImage2D, GLenum -> GLint -> GLenum -> GLuint -> GLuint -> GLint -> GLenum -> GLenum -> CString -> GL ())
GLES2(glTexParameterf, GLenum -> GLenum -> GLfloat -> GL ())
GLES2(glTexParameterfv, GLenum -> GLenum -> Ptr GLfloat -> GL ())
GLES2(glTexParameteri, GLenum -> GLenum -> GLint -> GL ())
GLES2(glTexParameteriv, GLenum -> GLenum -> Ptr GLint -> GL ())
GLES2(glTexSubImage2D, GLenum -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> GL ())
GLES2(glUniform1f, GLint -> GLfloat -> GL ())
GLES2(glUniform1fv, GLint -> GLsizei -> Ptr GLfloat -> GL ())
GLES2(glUniform1i, GLint -> GLint -> GL ())
GLES2(glUniform1iv, GLint -> GLsizei -> Ptr GLint -> GL ())
GLES2(glUniform2f, GLint -> GLfloat -> GLfloat -> GL ())
GLES2(glUniform2fv, GLint -> GLsizei -> Ptr GLfloat -> GL ())
GLES2(glUniform2i, GLint -> GLint -> GLint -> GL ())
GLES2(glUniform2iv, GLint -> GLsizei -> Ptr GLint -> GL ())
GLES2(glUniform3f, GLint -> GLfloat -> GLfloat -> GLfloat -> GL ())
GLES2(glUniform3fv, GLint -> GLsizei -> Ptr GLfloat -> GL ())
GLES2(glUniform3i, GLint -> GLint -> GLint -> GLint -> GL ())
GLES2(glUniform3iv, GLint -> GLsizei -> Ptr GLint -> GL ())
GLES2(glUniform4f, GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GL ())
GLES2(glUniform4fv, GLint -> GLsizei -> Ptr GLfloat -> GL ())
GLES2(glUniform4i, GLint -> GLint -> GLint -> GLint -> GLint -> GL ())
GLES2(glUniform4iv, GLint -> GLsizei -> Ptr GLint -> GL ())
GLES2(glUniformMatrix2fv, GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> GL ())
GLES2(glUniformMatrix3fv, GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> GL ())
GLES2(glUniformMatrix4fv, GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> GL ())
GLES2(glUseProgram, GLuint -> GL ())
GLES2(glValidateProgram, GLuint -> GL ())
GLES2(glVertexAttrib1f, GLuint -> GLfloat -> GL ())
GLES2(glVertexAttrib1fv, GLuint -> Ptr GLfloat -> GL ())
GLES2(glVertexAttrib2f, GLuint -> GLfloat -> GLfloat -> GL ())
GLES2(glVertexAttrib2fv, GLuint -> Ptr GLfloat -> GL ())
GLES2(glVertexAttrib3f, GLuint -> GLfloat -> GLfloat -> GLfloat -> GL ())
GLES2(glVertexAttrib3fv, GLuint -> Ptr GLfloat -> GL ())
GLES2(glVertexAttrib4f, GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GL ())
GLES2(glVertexAttrib4fv, GLuint -> Ptr GLfloat -> GL ())
GLES2(glVertexAttribPointer, GLuint -> GLint -> GLenum -> GLboolean -> GLsizei -> Ptr () -> GL ())
GLES2(glViewport, GLint -> GLint -> GLsizei -> GLsizei -> GL ())
GLES3(glReadBuffer, GLenum -> GL ())
GLES3(glDrawRangeElements, GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GL ())
GLES3(glTexImage3D, GLenum -> GLint -> GLenum -> GLuint -> GLuint -> GLuint -> GLint -> GLenum -> GLenum -> CString -> GL ())
GLES3(glTexSubImage3D, GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr () -> GL ())
GLES3(glCopyTexSubImage3D, GLenum -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GL ())
GLES3(glCompressedTexImage3D, GLenum -> GLint -> GLenum -> GLuint -> GLuint -> GLuint -> GLint -> GLsizei -> CString -> GL ())
GLES3(glCompressedTexSubImage3D, GLenum -> GLint -> GLint -> GLint -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLsizei -> Ptr () -> GL ())
GLES3(glGenQueries, GLsizei -> Ptr GLuint -> GL ())
GLES3(glDeleteQueries, GLsizei -> Ptr GLuint -> GL ())
GLES3(glIsQuery, GLuint -> GL GLboolean)
GLES3(glBeginQuery, GLenum -> GLuint -> GL ())
GLES3(glEndQuery, GLenum -> GL ())
GLES3(glGetQueryiv, GLenum -> GLenum -> Ptr GLint -> GL ())
GLES3(glGetQueryObjectuiv, GLuint -> GLenum -> Ptr GLuint -> GL ())
GLES3(glUnmapBuffer, GLenum -> GL GLboolean)
GLES3(glGetBufferPointerv, GLenum -> GLenum -> Ptr (Ptr ()) -> GL ())
GLES3(glDrawBuffers, GLsizei -> Ptr GLenum -> GL ())
GLES3(glUniformMatrix2x3fv, GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> GL ())
GLES3(glUniformMatrix3x2fv, GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> GL ())
GLES3(glUniformMatrix2x4fv, GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> GL ())
GLES3(glUniformMatrix4x2fv, GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> GL ())
GLES3(glUniformMatrix3x4fv, GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> GL ())
GLES3(glUniformMatrix4x3fv, GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> GL ())
GLES3(glBlitFramebuffer, GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLint -> GLbitfield -> GLenum -> GL ())
GLES3(glRenderbufferStorageMultisample, GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GL ())
GLES3(glFramebufferTextureLayer, GLenum -> GLenum -> GLuint -> GLint -> GLint -> GL ())
GLES3(glMapBufferRange, GLenum -> GLintptr -> GLsizeiptr -> GLbitfield -> GL (Ptr ()))
GLES3(glFlushMappedBufferRange, GLenum -> GLintptr -> GLsizeiptr -> GL ())
GLES3(glBindVertexArray, GLuint -> GL ())
GLES3(glDeleteVertexArrays, GLsizei -> Ptr GLuint -> GL ())
GLES3(glGenVertexArrays, GLsizei -> Ptr GLuint -> GL ())
GLES3(glIsVertexArray, GLuint -> GL GLboolean)
GLES3(glGetIntegeri_v, GLenum -> GLuint -> Ptr GLint -> GL ())
GLES3(glBeginTransformFeedback, GLenum -> GL ())
GLES3(glEndTransformFeedback, GL ())
GLES3(glBindBufferRange, GLenum -> GLuint -> GLuint -> GLintptr -> GLsizeiptr -> GL ())
GLES3(glBindBufferBase, GLenum -> GLuint -> GLuint -> GL ())
GLES3(glTransformFeedbackVaryings, GLuint -> GLsizei -> Ptr CString -> GLenum -> GL ())
GLES3(glGetTransformFeedbackVarying, GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLsizei -> Ptr GLenum -> CString -> GL ())
GLES3(glVertexAttribIPointer, GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> GL ())
GLES3(glGetVertexAttribIiv, GLuint -> GLenum -> Ptr GLint -> GL ())
GLES3(glGetVertexAttribIuiv, GLuint -> GLenum -> Ptr GLuint -> GL ())
GLES3(glVertexAttribI4i, GLuint -> GLint -> GLint -> GLint -> GLint -> GL ())
GLES3(glVertexAttribI4ui, GLuint -> GLuint -> GLuint -> GLuint -> GLuint -> GL ())
GLES3(glVertexAttribI4iv, GLuint -> Ptr GLint -> GL ())
GLES3(glVertexAttribI4uiv, GLuint -> Ptr GLuint -> GL ())
GLES3(glGetUniformuiv, GLuint -> GLint -> Ptr GLuint -> GL ())
GLES3(glGetFragDataLocation, GLuint -> CString-> GL GLint)
GLES3(glUniform1ui, GLint -> GLuint -> GL ())
GLES3(glUniform2ui, GLint -> GLuint -> GLuint -> GL ())
GLES3(glUniform3ui, GLint -> GLuint -> GLuint -> GLuint -> GL ())
GLES3(glUniform4ui, GLint -> GLuint -> GLuint -> GLuint -> GLuint -> GL ())
GLES3(glUniform1uiv, GLint -> GLsizei -> Ptr GLuint -> GL ())
GLES3(glUniform2uiv, GLint -> GLsizei -> Ptr GLuint -> GL ())
GLES3(glUniform3uiv, GLint -> GLsizei -> Ptr GLuint -> GL ())
GLES3(glUniform4uiv, GLint -> GLsizei -> Ptr GLuint -> GL ())
GLES3(glClearBufferiv, GLenum -> GLint -> Ptr GLint -> GL ())
GLES3(glClearBufferuiv, GLenum -> GLint -> Ptr GLuint -> GL ())
GLES3(glClearBufferfv, GLenum -> GLint -> Ptr GLfloat -> GL ())
GLES3(glClearBufferfi, GLenum -> GLint -> GLfloat -> GLint -> GL ())
GLES3(glGetStringi, GLenum -> GLuint -> GL CString)
GLES3(glCopyBufferSubData, GLenum -> GLenum -> GLintptr -> GLintptr -> GLsizeiptr -> GL ())
GLES3(glGetUniformIndices, GLuint -> GLsizei -> Ptr CString -> Ptr GLuint -> GL ())
GLES3(glGetActiveUniformsiv, GLuint -> GLsizei -> Ptr GLuint -> GLenum -> Ptr GLint -> GL ())
GLES3(glGetUniformBlockIndex, GLuint -> CString -> GL GLuint)
GLES3(glGetActiveUniformBlockiv, GLuint -> GLuint -> GLenum -> Ptr GLint -> GL ())
GLES3(glGetActiveUniformBlockName, GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> CString -> GL ())
GLES3(glUniformBlockBinding, GLuint -> GLuint -> GLuint -> GL ())
GLES3(glDrawArraysInstanced, GLenum -> GLint -> GLsizei -> GLsizei -> GL ())
GLES3(glDrawElementsInstanced, GLenum -> GLsizei -> GLenum -> Ptr () -> GLsizei -> GL ())
GLES3(glFenceSync, GLenum -> GLbitfield -> GL GLsync)
GLES3(glIsSync, GLsync -> GL GLboolean)
GLES3(glDeleteSync, GLsync -> GL ())
GLES3(glClientWaitSync, GLsync -> GLbitfield -> GLuint64 -> GL GLenum)
GLES3(glWaitSync, GLsync -> GLbitfield -> GLuint64 -> GL ())
GLES3(glGetInteger64v, GLenum -> Ptr GLint64 -> GL ())
GLES3(glGetSynciv, GLsync -> GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> GL ())
GLES3(glGetInteger64i_v, GLenum -> GLuint -> Ptr GLint64 -> GL ())
GLES3(glGetBufferParameteri64v, GLenum -> GLenum -> Ptr GLint64 -> GL ())
GLES3(glGenSamplers, GLsizei -> Ptr GLuint -> GL ())
GLES3(glDeleteSamplers, GLsizei -> Ptr GLuint -> GL ())
GLES3(glIsSampler, GLuint -> GL GLboolean)
GLES3(glBindSampler, GLuint -> GLuint -> GL ())
GLES3(glSamplerParameteri, GLuint -> GLenum -> GLint -> GL ())
GLES3(glSamplerParameteriv, GLuint -> GLenum -> Ptr GLint -> GL ())
GLES3(glSamplerParameterf, GLuint -> GLenum -> GLfloat -> GL ())
GLES3(glSamplerParameterfv, GLuint -> GLenum -> Ptr GLfloat -> GL ())
GLES3(glGetSamplerParameteriv, GLuint -> GLenum -> Ptr GLint -> GL ())
GLES3(glGetSamplerParameterfv, GLuint -> GLenum -> Ptr GLfloat -> GL ())
GLES3(glVertexAttribDivisor, GLuint -> GLuint -> GL ())
GLES3(glBindTransformFeedback, GLenum -> GLuint -> GL ())
GLES3(glDeleteTransformFeedbacks, GLsizei -> Ptr GLuint -> GL ())
GLES3(glGenTransformFeedbacks, GLsizei -> Ptr GLuint -> GL ())
GLES3(glIsTransformFeedback, GLuint -> GL GLboolean)
GLES3(glPauseTransformFeedback, GL ())
GLES3(glResumeTransformFeedback, GL ())
GLES3(glGetProgramBinary, GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLenum -> Ptr () -> GL ())
GLES3(glProgramBinary, GLuint -> GLenum -> Ptr () -> GLsizei -> GL ())
GLES3(glProgramParameteri, GLuint -> GLenum -> GLint -> GL ())
GLES3(glInvalidateFramebuffer, GLenum -> GLsizei -> Ptr GLenum -> GL ())
GLES3(glInvalidateSubFramebuffer, GLenum -> GLsizei -> Ptr GLenum -> GLint -> GLint -> GLsizei -> GLsizei -> GL ())
GLES3(glTexStorage2D, GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GL ())
GLES3(glTexStorage3D, GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLsizei -> GL ())
GLES3(glGetInternalformativ, GLenum -> GLenum -> GLenum -> GLsizei -> Ptr GLint -> GL ())
GL_EXT(glBindVertexArrayOES, GLuint -> GL ())
GL_EXT(glDeleteVertexArraysOES, GLsizei -> Ptr GLuint -> GL ())
GL_EXT(glGenVertexArraysOES, GLsizei -> Ptr GLuint -> GL ())
GL_EXT(glIsVertexArrayOES, GLuint -> GL GLboolean)
GL_EXT(glDrawTexiOES, GLint -> GLint -> GLint -> GLint -> GLint -> GL ())
GL_EXT(glMultiDrawArraysEXT, GLenum -> Ptr GLint -> Ptr GLsizei -> GLsizei -> GL ())
GL_EXT(glMultiDrawElementsEXT, GLenum -> Ptr GLsizei -> GLenum -> Ptr (Ptr ()) -> GLsizei -> GL ())
GL_EXT(glDrawRangeElementsEXT, GLenum -> GLuint -> GLuint -> GLsizei -> GLenum -> Ptr () -> GL ())
GLES31(glDispatchCompute, GLuint -> GLuint -> GLuint -> GL ())
GLES31(glDispatchComputeIndirect, GLintptr -> GL ())
GLES31(glDrawArraysIndirect, GLenum -> Ptr () -> GL ())
GLES31(glDrawElementsIndirect, GLenum -> GLenum -> Ptr () -> GL ())
GLES31(glFramebufferParameteri, GLenum -> GLenum -> GLint -> GL ())
GLES31(glGetFramebufferParameteriv, GLenum -> GLenum -> Ptr GLint -> GL ())
GLES31(glGetProgramInterfaceiv, GLuint -> GLenum -> GLenum -> Ptr GLint -> GL ())
GLES31(glGetProgramResourceIndex, GLuint -> GLenum -> Ptr GLchar -> GL ())
GLES31(glGetProgramResourceName, GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> GL ())
GLES31(glGetProgramResourceiv, GLuint -> GLenum -> GLuint -> GLsizei -> Ptr GLenum -> GLsizei -> Ptr GLsizei -> Ptr GLint -> GL ())
GLES31(glGetProgramResourceLocation, GLuint -> GLenum -> Ptr GLchar -> GL ())
GLES31(glUseProgramStages, GLuint -> GLbitfield -> GLuint -> GL ())
GLES31(glActiveShaderProgram, GLuint -> GLuint -> GL ())
GLES31(glCreateShaderProgramv, GLenum -> GLsizei -> Ptr CString -> GL ())
GLES31(glBindProgramPipeline, GLuint -> GL ())
GLES31(glDeleteProgramPipelines, GLsizei -> Ptr GLuint -> GL ())
GLES31(glGenProgramPipelines, GLsizei -> Ptr GLuint -> GL ())
GLES31(glIsProgramPipeline, GLuint -> GL ())
GLES31(glGetProgramPipelineiv, GLuint -> GLenum -> Ptr GLint -> GL ())
GLES31(glProgramUniform1i, GLuint -> GLint -> GLint -> GL ())
GLES31(glProgramUniform2i, GLuint -> GLint -> GLint -> GLint -> GL ())
GLES31(glProgramUniform3i, GLuint -> GLint -> GLint -> GLint -> GLint -> GL ())
GLES31(glProgramUniform4i, GLuint -> GLint -> GLint -> GLint -> GLint -> GLint -> GL ())
GLES31(glProgramUniform1ui, GLuint -> GLint -> GLuint -> GL ())
GLES31(glProgramUniform2ui, GLuint -> GLint -> GLuint -> GLuint -> GL ())
GLES31(glProgramUniform3ui, GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GL ())
GLES31(glProgramUniform4ui, GLuint -> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> GL ())
GLES31(glProgramUniform1f, GLuint -> GLint -> GLfloat -> GL ())
GLES31(glProgramUniform2f, GLuint -> GLint -> GLfloat -> GLfloat -> GL ())
GLES31(glProgramUniform3f, GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GL ())
GLES31(glProgramUniform4f, GLuint -> GLint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> GL ())
GLES31(glProgramUniform1iv, GLuint -> GLint -> GLsizei -> Ptr GLint -> GL ())
GLES31(glProgramUniform2iv, GLuint -> GLint -> GLsizei -> Ptr GLint -> GL ())
GLES31(glProgramUniform3iv, GLuint -> GLint -> GLsizei -> Ptr GLint -> GL ())
GLES31(glProgramUniform4iv, GLuint -> GLint -> GLsizei -> Ptr GLint -> GL ())
GLES31(glProgramUniform1uiv, GLuint -> GLint -> GLsizei -> Ptr GLuint -> GL ())
GLES31(glProgramUniform2uiv, GLuint -> GLint -> GLsizei -> Ptr GLuint -> GL ())
GLES31(glProgramUniform3uiv, GLuint -> GLint -> GLsizei -> Ptr GLuint -> GL ())
GLES31(glProgramUniform4uiv, GLuint -> GLint -> GLsizei -> Ptr GLuint -> GL ())
GLES31(glProgramUniform1fv, GLuint -> GLint -> GLsizei -> Ptr GLfloat -> GL ())
GLES31(glProgramUniform2fv, GLuint -> GLint -> GLsizei -> Ptr GLfloat -> GL ())
GLES31(glProgramUniform3fv, GLuint -> GLint -> GLsizei -> Ptr GLfloat -> GL ())
GLES31(glProgramUniform4fv, GLuint -> GLint -> GLsizei -> Ptr GLfloat -> GL ())
GLES31(glProgramUniformMatrix2fv, GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> GL ())
GLES31(glProgramUniformMatrix3fv, GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> GL ())
GLES31(glProgramUniformMatrix4fv, GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> GL ())
GLES31(glProgramUniformMatrix2x3fv, GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> GL ())
GLES31(glProgramUniformMatrix3x2fv, GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> GL ())
GLES31(glProgramUniformMatrix2x4fv, GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> GL ())
GLES31(glProgramUniformMatrix4x2fv, GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> GL ())
GLES31(glProgramUniformMatrix3x4fv, GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> GL ())
GLES31(glProgramUniformMatrix4x3fv, GLuint -> GLint -> GLsizei -> GLboolean -> Ptr GLfloat -> GL ())
GLES31(glValidateProgramPipeline, GLuint -> GL ())
GLES31(glGetProgramPipelineInfoLog, GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> GL ())
GLES31(glBindImageTexture, GLuint -> GLuint -> GLint -> GLboolean -> GLint -> GLenum -> GLenum -> GL ())
GLES31(glGetBooleani_v, GLenum -> GLuint -> Ptr GLboolean -> GL ())
GLES31(glMemoryBarrier, GLbitfield -> GL ())
GLES31(glMemoryBarrierByRegion, GLbitfield -> GL ())
GLES31(glTexStorage2DMultisample, GLenum -> GLsizei -> GLenum -> GLsizei -> GLsizei -> GLboolean -> GL ())
GLES31(glGetMultisamplefv, GLenum -> GLuint -> Ptr GLfloat -> GL ())
GLES31(glSampleMaski, GLuint -> GLbitfield -> GL ())
GLES31(glGetTexLevelParameteriv, GLenum -> GLint -> GLenum -> Ptr GLint -> GL ())
GLES31(glGetTexLevelParameterfv, GLenum -> GLint -> GLenum -> Ptr GLfloat -> GL ())
GLES31(glBindVertexBuffer, GLuint -> GLuint -> GLintptr -> GLsizei -> GL ())
GLES31(glVertexAttribFormat, GLuint -> GLint -> GLenum -> GLboolean -> GLuint -> GL ())
GLES31(glVertexAttribIFormat, GLuint -> GLint -> GLenum -> GLuint -> GL ())
GLES31(glVertexAttribBinding, GLuint -> GLuint -> GL ())
GLES31(glVertexBindingDivisor, GLuint -> GLuint -> GL ())